Sequencing Jobs on a Bottleneck Machine
{ Exmpl7.4-1_SequencingJobs.mpl }
{ Applications of Optimization with Xpress-MP }
{ Chapter 7.4, Sequencing Jobs on a Bottleneck Machine, Size: 48x71 Page 128 }
#define latestcomptime
!#define avgcomptime
!#define tardiness
TITLE
SequencingJobs;
DATA
Nj := 7;
INDEX
job := 1..Nj;
job2 := job;
DATA
Rel[job] := (2,5,4,0,0,8,9);
Dur[job] := (5,6,8,4,2,4,2);
Due[job] := (10,21,15,10,5,15,22);
VARIABLE
Rank[job,job2];
Start[job];
Comp[job];
Late[job];
Finish;
MODEL
#ifdef latestcomptime
MIN LatestCompTime = Finish;
#endif
#ifdef avgcomptime
MIN AvgCompTime = SUM(job: Comp);
#endif
#ifdef tardiness
MIN Tardiness = SUM(job: Late);
#endif
SUBJECT TO
OneJobPostionA[job] -> OJPA:
SUM(job2: Rank) = 1;
OneJobPostionB[job2] -> OJPB:
SUM(job: Rank) = 1;
SequenceJobs[job<>last(job)] -> SQJ:
Start[job+1] >= Start + SUM(job2: Dur[job:=job2] * Rank);
StartTimes[job] -> SRT:
Start >= SUM(job2: Rel[job:=job2] * Rank);
CompletionTime[job]:
Comp = Start + SUM(job2: Dur[job:=job2] * Rank);
CalcFinish[job] -> FIN:
Finish >= Comp;
TotalTardiness[job] -> TARD:
Late >= Comp - SUM(job2: Due[job:=job2] * Rank);
BINARY
Rank;
END
Back To Top
|
Maximal Home Page
|
List of Models |
Previous Page
|
Next Page