FJSP-SMT2020-multishot

This work investigates solving semiconductor manufacturing scheduling tasks using Answer Set Programming (ASP). We tested our work (in progress) with small examples derived from the SMT2020 dataset.

  • The following features have been considered in this work:
    • Machine Maintenance
    • Machine Setup
    • Machine Assignment (Flexible/Fixed)
  • Our main objectives are to minimize the total completion time (makespan) of schedules and the machine-setup changes.

This repository includes the following files/folders:

File/FolderDescription
README.mdthis file
encoding_msw_multi-shot.lpmain scheduling encoding
parsing.lpauxiliary rules to reformat facts (included by encoding_msw_multi-shot.lp)
machine_selection.lpauxiliary rules to analyze machine groups (included by encoding_msw_multi-shot.lp)
instancesinstance files for testing

Usage

Our scheduling encoding and instances can be run with Clingo[DL] as illustrated by the following example calls.

We have two python versions for different packages:

  • Package[5.5.2]

    • Fixed machine assignment:

      • python dlO_multi-obj.py encoding_msw_multi-shot.lp instances/instance04.lp
    • Flexible machine assignment:

      • python dlO_multi-obj.py encoding_msw_multi-shot.lp instances/instance04.lp --const flex=1
  • Package[5.5.0]

    • Fixed machine assignment:

      • python dlO_5.5.0_multi-obj.py encoding_msw_multi-shot.lp instances/instance04.lp
    • Flexible machine assignment:

      • python dlO_5.5.0_multi-obj.py encoding_msw_multi-shot.lp instances/instance04.lp --const flex=1