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/Folder | Description |
---|---|
README.md | this file |
encoding_msw_multi-shot.lp | main scheduling encoding |
parsing.lp | auxiliary rules to reformat facts (included by encoding_msw_multi-shot.lp) |
machine_selection.lp | auxiliary rules to analyze machine groups (included by encoding_msw_multi-shot.lp) |
instances | instance files for testing |
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
-