... | ... | @@ -4,6 +4,7 @@ We consider a variant of the job-shop scheduling problem, in which: |
|
|
* the operations of the job are *partially ordered*
|
|
|
* there are *multiple resources* that have to be used to execute the operations
|
|
|
* each resource is able to execute *multiple operations*
|
|
|
|
|
|
The goal is to find a feasible schedule that *minimizes* the *total tardiness* of a schedule.
|
|
|
|
|
|
## Proposed solution
|
... | ... | @@ -15,13 +16,15 @@ The two search approaches can be summarized as follows: |
|
|
|
|
|
The search is controlled by a [main](uploads/main.py) script in Python.
|
|
|
|
|
|
We also propose a basic [ASP encoding with Difference Logic](uploads/scheduling.lp), where the bound is not computed with multi-shot solving, but is computed in advance as simple sum of all the job operations processing times.
|
|
|
|
|
|
## Experimental evaluation
|
|
|
Experiments are conducted on a set of instances describing different daily routines occurring in the Failure Analysis Lab of Infineon Technologies, Austria. Ten operational days have been extracted from the historical data, and the resulting instances have been split into sub instances of increasing size to perform the tests.
|
|
|
|
|
|
## Usage
|
|
|
To run the tests, first install [Clingo](https://potassco.org/clingo/) via [Conda](https://anaconda.org/potassco/clingo).
|
|
|
To run the tests, first install [Clingo](https://potassco.org/clingo/) via [Conda](https://anaconda.org/potassco/clingo), then download the [source code](uploads/d77c0f3e341a74e1ef26b62358d1d823/mpf-jss_hybrid_asp.zip).
|
|
|
|
|
|
Then, to run for example [instance 5](uploads/experiments/Day1/instance5.lp) of Day 1, type:
|
|
|
To run for example [instance 5](uploads/experiments/Day1/instance5.lp) of Day 1, type:
|
|
|
```
|
|
|
python main.py exp need.lp sched_exponential.lp experiments/Day1/instance5.lp
|
|
|
|
... | ... | @@ -31,4 +34,9 @@ for the exponential version, and |
|
|
python main.py inc need.lp sched_incremental.lp experiments/Day1/instance5.lp
|
|
|
|
|
|
```
|
|
|
for the incremental one. |
|
|
\ No newline at end of file |
|
|
for the incremental one.
|
|
|
|
|
|
To test the single-shot version, type:
|
|
|
```
|
|
|
clingo-dl scheduling.lp need.lp experiments/Day1/instance5_bound.lp experiments/Day1/instance5.lp
|
|
|
``` |