,)}}}: the penalty of job j is p<

>
{{{tot_penalty()}}}: the total penalty of the schedule is tp<

>
{{{rescheduled()}}}: job j has been re-scheduled after execution had already started
== Example(s) ==
A given input is:
{{{
max_value(20).
device(d1). instances(d1,1).
device(d2). instances(d2,2).
offline_instance(d2,1).
%
job(j1). job_device(j1,d1). job_len(j1,4).
job(j2). job_device(j2,d2). job_len(j2,5). deadline(j2,10). importance(j2,1).
precedes(j1,j2).
job(j3). job_device(j3,d2). job_len(j3,4). deadline(j3,12). importance(j3,2).
%
max_total_penalty(3).
%
curr_job_start(j1,0). curr_on_instance(j1,1).
curr_job_start(j2,4). curr_on_instance(j2,1).
%
curr_time(2).
}}}
Resulting in:
{{{
start(j1,0).
on_instance(j1,1).
%
start(j2,7).
on_instance(j2,2).
penalty(j2,2).
%
start(j3,2).
on_instance(j3,2).
penalty(j3,0).
%
tot_penalty(2).
}}}
Additional sample instances: [[https://www.mat.unical.it/aspcomp2013/files/samples/incremental_scheduling-sample.zip|download]]
== Notes and Updates ==
Note that the notion of end time is not explicitly defined: we assume the value of the end time E as traditionally set to E=S+L, where S is the start time and L is the length (aka duration). So, if the start time is 2 and the length is 5, the end time is 7. "End time" intuitively means that the jobs has been completed by that time, and thus is ready.
== Author(s) ==
* Author: Marcello Balduccini
* Affiliation: Kodak Research Laboratories
* Author: Yuliya Lierler
* Affiliation: University of Kentucky