-
Contents :;
1 SCHEDULING 31.1 Introduzione 3) 4/"1.2 Parametri valut~tivi
p~r .pr.oblemi. di scheduling . . . . . . " 6.)_- ~ -. I
1.2.1 ParametrI relatIvI al tempI. . . . . . . . . . . . . .. 8
- !1.2.2 Parametri relativi ai job . . . . . . . . . . . . . . . ..
9
1.3 Misurediperformance 91.3.1 Tempi di completamento lO1.3.2
Datediconsegna lO1.3.3 Costi di inventario e di utilizzo. . . . . .
. . . . . '. Il1.3.4 Relazioni fra le misure di performance. . . .
. . . .. 12
1.4 Classificazione dei problemi. . . . . . . . . . . . . . . .
. " 15 ~--,1.5 Problemi con una singola macchina. . . . . . . . . .
. . . . '18 J1.5.1 l//i 18\~1
1.5.2 Schedule ottimi rispetto a più misure di performance -23
.1.5.3 Problemi con precedenza. . . . . . . . . . . . . . . .. 23
~1.5.4 Tempo di set-up dipendente dalla sequenza. . . . .. 25
1.6 Macchineinparallelo 261.6.1 Esempinotevoli 27 1.7 Problemi
con più macchine. . . . . . . . . . . . . . . . . --: -:- 31
,',".':
1.7.1 Problemi di tipo OPEN-SHOP . . . . . . . . . . . ..
311.7.2 Problemi di tipo FLOW-SHOP . . . . . . . . . . . . .- 32
:::=-.,.-.1.7.3 Problemi di tipo JOB-SHOP . . . . .. 35! 2t.!
LI
2 PROGRAMMAZIONE DINAMICA 372.1 Introduzione 37 ti
2.1.1 Definizioni 37212 P . " d. . al' t ' An~\.. nnclplo lottlm
la ~~2.1.3 Relazioni ricorrenti: . . . . . . . . . . . . . . . . .
.. 42 '2 8/ Y
Y"~'fc.-.u]Q1
-
2.2 Processi Monodimensionali 44 :l 9 / ~/2.2.1 P.ro?essi ~
~llocaz~one. ... . : . . . . . . . . . ~~. 4~==~"?J
2.3 ProblemI dI sostItuzIone dI macchinano. . . . . . : . .. 60
cE /S-/J -2.4 Problemi multi dimensionali . . . . . . . . . . . . .
. . . . .. 65 "t
2.4.1 Processi di allocazione non lineare. . . . . . . . . .. 65
-" ,2.4.2 Sostituzione del macchinar:io .. . . . . . . . . . . . ..
69 ~ /\-/12.4.3 Problema del commesso viaggiatore. . . . . . . . ..
70 ---
2.5 Problema dell'affidabilità. dei circuiti. . ~ . . . . . . .
. . .. 73 .( è. I~2.6 Problemi con più variabili decisionali. . . .
. . . . . . . . . .~ 2.7 Metodi di Riduzione 77
2.7.1 Moltiplicatori di Lagrange . . . . . . . . . . . . . . ..
77 - ~ 5/~/9t2.8 Approssimazioni Successive. . . . . . . . . . . .
. . . . . .. 84>
-
,
Chapter 1
SCHEDULING
1.1 Introduzione
I problemi di scheduling nascono quando bisogna stabilire un
ordinamentoper alcune operazioni che devono essere fatte nel tempo.
Letteralmente"scheduling" significa infatti "ordinamento e
tempificazione". La messa apunto di un orario dei treni è un
classico esempio di problema di scheduling.
I problemi di scheduling sono in alcuni casi abbastanza semplici
datrattare se si hanno dati di tipo deterministico, se invece i
dati sono ditipo stocastico (quando per esempio c'è aleatorietà
delle date di arrivo deglioggetti presi in considerazione) bisogna
ricorrere a modelli di tipo proba-bilistico ben più complessi da
trattare dei modelli deterministici usati peril primo tipo di
problemi. I modelli deterministici appartengono all' areadell'
ottimizzazione combinatoria, in cui si deve ottenere un
ordinamentoottimo, risolvere il problema della selezione oppure
assegnare n oggetti. Pertali modelli c'è una teoria formalmente
conclusa e ben definita il cui studiopuò essere visto come una
sottoarea della ricerca operativa.
n problema di assegnare n oggetti su una o due macchine, che li
elaboranoin tempo unitario, è semplice e si risolve in tempo
polinomiale (o( n2)); lostesso problema applicato a tre o più
macchine comporta invece un tempoesponenziale in n, in questo caso,
infatti (se non si vogliono consideraremodelli di tipo non
deterministico), bisogna esaminare tutti gli scheduleprima di
trovare quello ottimo: si ha un problema NP-completo.
Nella teoria dello scheduling, spesso ci si trova di fronte a
problemi NP-completi per i quali non si ha garanzia dell'ottimo (se
non nel caso in cui nè piccolo), in questi casi si deve ricorrere a
tecniche di tipo euristico.
3
-
Di seguito sono riportati, a titolo di esempio. due problemi di
scheduling:
1) ASSEGNAZIONE DI N OGGETTI sr DUE ~IACCHI!'\E
n problema consiste nell'assegnare, per esempio, sette oggetti,
detti"job", a due macchine in serie, MI ed M2, che li elaborano in
tempi di-versi, in modo tale che la lavorazione di tutti i job.
termini nel più brevetempo possibile. Si suppone inoltre che i job
siano tutti disponibili all' in-izio della lavorazione stessa
(l'importanza di questa ipotesi verrà. chiaritapiù ava.nti) e che
debbano passare prima attraverso -\[1 e poi M2
MI M2 iJ1 6 3 ,.
J2 2 9J3 4 3J4 1 8J5 7 1J6 4 5J7 7 6
Nella tabella sono riportati i tempi di lavorazione in unità di
tempo.Consideriamo un ordinamento casuale e schematizziamolo con il
dia-
gramma di Gantt (Fig. 1). In tale diagramma la durata di una
lavorazioneè rappresentata, sull' asse dei tempi, da un segmento
proporzionale alla du-rata stessa, l' istante t = O rappresenta
l'inizio della lavorazione.
Fig.1
H ~i- ~ -~- ~ -~ ~..J".. 1 1 -' l'i"'-~
I1'1 .J".3"-I J~ J4"5 J, .J~l, i4~1 '" 1 r
I II II ,
3j 4~ t ~
4
-
Si può osservare che su M2 è presente un tempo iniziale di
inattività masi possono avere tempi morti anche durante la
lavorazione dei vari job percui si dovrà cercare di ridurre il più
possibile questi tempi di attesa. Comeè già stato detto la
situazione si complica se consideriamo tre macchine.6
2) PROBLEMA DELLA LETTURA DEI GIORNALI
Supponiamo ci siano quattro persone che abitino in uno stesso
apparta-mento e che leggano la mattina il giornale; supponiamo
inoltre che abbianoa disposizione quattro giornali e che ognuno
abbia il suo ordine di lettura,impiegando un determinato tempo per
ciascun giornale. Essi vogliono ter-minare la lettura il più presto
possibile alle seguenti condizioni: nessunovuole alterare l'ordine
di lettura o interrompere la lettura di un giornale eciascuno
comincia la lettura ad ore differenti. S; v \A.~ M ì V\ ~ ~""t."t.
Ci"'\..( e '.:11. q., ,
Sia R=Repubblica ; CS=Corriere della Sera; Sp=Gazzetta dello
Sport; ol."-e-o~ oG=ll Giornale c 4"1 ~ + I
~~,evlettori disponibilità ordine di lettura (tempo in
minuti)
A 8.30 R(60) - CS(30) - Sp(2) - G(5)B 8.45 CS(75) - SP(3) -
R(25) - G(10)C 8.45 Sp(5) - CS(15) - R(10) - G(30)D 9.30 G(90) -
R(l) - CS(l) - Sp(l)
Si possono considerare i giornali come quattro macchine e le
personecome degli "oggetti" (job) che devono passare dalle quattro
macchine sec-ondo un ordine preciso, con tempi di lavorazione
uguali ai tempi di lettura.
Considerando fra i possibili schedule quello ottenuto mediante
la regolaF- 1- F- O cioè jirst - in, jirst - Qut (schematizzato in
Fig.2), si terminaalle ore Il.45, ci sono però schedule che fanno
terminare il processo alle Il.40e addirittura esistè una scelta in
cui tutti finiscono alle Il.30.
1 inizio letturo
5
-
c,. - - - - -~ .I) '~I C..-,I I II I II I I
~ - 1 lO. :~ ,,---~ : Fig.2I I I I I II I I I I
I I ,S - - t. . i ~ c t A 1 - - -1.- - - iI I " t ,~. II I , I I
II I l ,,' I
v. '., .~. ~--~---II I I I r I
~ao
Tenendo presente la Fig.2, si osserVd. che G è inattivo per un
'ora da.ll 'iniziodella lettura; si può quindi fare partire la
lettura a.lle 8.45 con C, seguito daA, cosiccl1é C incominci a
leggere il Giornale prima che D si alzi, riducendocos1 il periodo
di inattività di G.
Si cerca di minimizzare il tempo di inattività dei giornali: i
possibilischedule che abbiamo a disposizione sono (4!)4 [abbiamo
infatti 4! permu-tazioni per ogni macchina]. In generale (njob m
macchine) ho (n!)m possibili
com binazioni.6
1.2 Parametri valutativi per problemi di schedul-
ingTenendo presente l'ultimo esempio del paragrafo precedente,
vediamo diintrodurre una terminologia rigorosa per la teoria dello
scheduling. Abbiamogià visto che gli oggetti presi in
considerazione sono chiamati job, e che glienti su cui i job devono
essere elaborati sono detti macchine; nell' esempioinoltre, non
tutti i job erano disponibili allo stesso tempo, per questo
siintroducono i parametri Ti i quali al variare di i indicano il
tempo a cuiciascun job è disponibile per la lavorazione. Nel caso
in cui tutti i job sianodisponibili al tempo iniziale si ha Ti = O
Vi.
L'esecuzione di una operazione sul job Ji da parte della
macchina M jviene indicata con Oij ; in generale si ha:
m1 ~ L °ij ~ m,
j=1
6
-
con °ij = O se il job Ji non viene lavorato dalla macchina M j,
1 altrimenti.Nel problema della lettura dei giornali si verifica
l'uguaglianza (m=4), ma cipossono essere dei casi in cui alcuni job
devono essere lavorati solo su deter-minate macchine, da cui il
segno ~ nella seconda parte della disuguaglianza.
Infine, per misurare il tempo di esecuzione di ciascuna
operazione (com-preso il tempo di messa a punto della macchina ed
il trasferimento allamacchina successiva) si introduce la quantità
Pii che rappresenta il tempodi lavorazione del job Ji da parte
della macchina M j. Con Pi = Ei:1 Piiinvece indichiamo il tempo
globale di lavorazione del job Ji.
Nella costruzione di modelli per problemi reali come problemi di
schedul-ing si fanno in generale delle ipotesi che si possono
eventualmente rilassare:
1. non possono essere eseguite due operazioni contemporanee
sullostesso job (riferendosi al secondo esempio del paragrafo
prece-dente, una persona non può leggere due giornali
contempranea-mente); ciò può costituire a volte una forte
limitazione.
2. per ciascun job è prevista al massimo una operazione per
macchina;si suppone cioè, che ogni macchina svolga una sola
operazione:nel caso di macchine che ne facciano più di una, esse
vengonosdoppiate idealmente.
3. i job devono passare sulle macchine secondo un ordine
prestabil-ito, non si possono eliminare dei job a metà
lavorazione.
4. i tempi di lavorazione sono indipendenti dallo schedule:
questoè molto restrittivo poiché implica che i tempi di messa a
puntodelle macchine, sei - up, siano indipendenti dalla sequenza e
cosipure i tempi di trasferimento da una macchina all'altra
(entrambii tempi sono inglobati nei tempi di lavorazione Pij).
5. le operazioni sulle varie macchine non possono essere
interrotte( no - preempt) questa ipotesi viene spesso rilassata
poiché le in-terruzioni aiutano a ridurre la complessità dei
problemi ( da prob-lemi NP a problemi P).
6. i job attendono l'inizio della lavorazione all'interno di un
maga-zzino di capacità infinita, cioè non bloccano la macchina che
haeseguito l'ultima lavorazione su di loro finché non si sia
liberatala macchina su cui devono essere inseriti
successivamente.
7. c'è una macchina per ciascun tipo di lavorazione.
7
-
8. è possibile per le macchine avere dei tempi morti, esse
possonoquindi rimanere inattive.
9. ogni macchina può eseguire una sola operazione per volta
(ipotesicorrispondente per le macchine a quella già. fatta per i
job)
lO. una volta che una macchina inizia un servizio, questo non
puòessere interrotto, cioè le macchine sono disponibili per tutto
ilperiodo dello schedule.
Il. sono noti i vincoli tecnologici e sono note le
caratteristiche cheindividuano il problema (il modello di cui ci si
serve è infattideterministico), questa è una ipotesi semplificati
va, ma moltorestrittiva per i problemi reali per cui a volte si
deve ricorrere amodelli probabilistici.
Volendo fare una valutazione della misura delle prestazioni
delle variemacchine è necessario stabilire dei criteri di
ottimalità.: l'obiettivo, in unproblema di scheduling, può non
essere unico, anzi ce ne possono essere piùdi uno anche in
contrasto tra loro.
Nell'esempio della lettura dei giornali si è minimizzato il
tempo di per-manenza in casa che corrisponde a minimizzare il tempo
del job che è statodi più nel sistema, altrimenti si può cercare di
minimizzare il tempo di inat-tività. delle macchine.
Prima di definire le misure di performance in termini matematici
diamoaltre definizioni e introduciamo alcune notazioni.
1.2.1 Parametri relativi ai tempi
. di: tempo massimo entro il quale il job Ji deve essere
terminato.
. Wik: tempo di attesa del job Ji prima di essere lavorato nella
k-esimaoperazione (che può non corrispondere alla k-esima
macchina).
. Wi = Lk:1 Wi[k] tempo totale di attesa del job Ji, dove [.]
indica che iljob è processato come .-esimo.
. Ci = Ti + Li=1 (Pi(j] + Wi(j]): tempo di completamento della
lavorazionedel job Ji.
. Fi = Ci - Ti: tempo di flusso di Ji cioè il tempo che Ji
spende all'interno del sistema.
8
-
. Li = ci - di: distanza della data di consegna differenziata
fra ritardoe anticipo tramite il segno (positivo o negativo).
. Ti = max{O,Li}: ritardo.
. li = Cmaz - Ei:l Pii con cmaz = max{ci} rappresenta il tempo
diinattività della macchina Mi.
1.2.2 Parametri relativi ai job
. Nw(t) numero di job in attesa al tempo t
. Np(t) numero di job in lavorazione al tempo t
. Nc(t) numero di job completati al tempo t
. Nu(t) numero di job non ancora completati al tempo tOvviamente
si ha che Nw(t) + Np(t) + Nc(t) = n numero complessivo di
job ~~~\~\.ol"","q,.. ~ ~~O"'.
Nu(t) = Np(t) + Nw(t)
Nu(O) = n, Nu(cmaz) = o.
1.3 Misure di performance
Def. Una misura di performance '"( si dice regolare se è non
decrescenteris~tto ai tempi di completamento. C~oè se abbiamo due
sequenze# e s:-talI che Cl < Cl; C2 < G2;. ..; Cn < Gn SI
ha che
'"(CI,C2,...,Cn) :$'"(GI,G2,...,Cn).
Le misure di performance sono divise secondo alcuni criteri, di
solito siraggruppano in tre categorie principali:
1. Tempi di completamento
2. Date di consegna
3. Costi di inventario e di utilizzo
9
-
1.3.1 Tempi di completamento
Per quanto riguarda i criteri di questa classe, generalmente
consideriamocome funzioni da minimizzare
Fmar = max{Fi}, Cmar = max{ci},
- Ei=1 Fj - Ei=1 CjF - C -- , - .n n
Utilizziamo le misure relative ai tempi di completamento quando
il costoprimario dello schedule è direttamente dipendente dal tempo
messo a dispo-sizione dal sistema per la lavorazione dell' insieme
dei jobj se invece il costodello schedule è direttamente collegato
al job che ha tempo di permanenzapiù lungo nel sistema, allora
consideriamo come misura di performance Fmax.
Oss.lSe Ti = O, 'v'i (job disponibili tutti all' inizio della
lavorazione), allora
Ci = Fi e perciò minimizzare Fmar equivale a minimizzare Cmar.
In generaleCmar ;i Fmar le due richieste non coincidono e i
risultati ottenuti possonoessere differenti.
Cmar è detto anche tempo totale di produzione o Make-Span ed il
cri-terio più importante è proprio quello che minimizza Cmar e che
corrispondea ricercare il m~~imo temp~~~ produzione (mi!!.M~~~
Osso 2Lo schedule che minimizza F, minimizza anche c perchè c =
F + consto
Infatti: -F Ei:1Fi Ei=1(Ci-Ti) - -===C-Tn n
1.3.2 Date di consegna
Se il costo dipende fortemente dalle date di consegna
consideriamo comemisure di performance:
I, Lmax = max{Li},
T, Tmax = max{Ti},
nT
lO
-
dove: - Li=} LjL = , Lmax = max{Li},
n- Li=} Tj
{ }T = , Tmax = max Ti ,n
nT = numero dei job in ritardo.
Minimizzare L oppure Lmax ha senso se c' è un guadagno nel
terminare lalavorazione in anticipo, minimizzare T o T max ha senso
invece se si incorrein penalità. terminando in ritardo. A volte la
penalità. in cui si incorre ter-minando in ritardo non dipende
dall' entità. del ritardo stesso, consideriamoper esempio la
schedule relativo al problema degli atterraggi degli aerei inun
aereoporto: se consideriamo come job gli aerei e come date di
consegnagli istanti in cui gli aerei terminano la scorta di
carburante, chiaramentenon interessa l'entità. del ritardo; il
risultato sarà catastrofico sia dopo unminuto che dopo un' ora. È
ragionevole in tale caso minimizzare il numerodi job in ritardo
(nT).
1.3.3 Costi di inventario e di utilizzo
Se cerchiamo di ridurre i costi di inventario del sistema,
allora possiamoprendere come misura di performance N: oppure N-:.
Potrebbe anche in-teressarci minimizzare ~, numero medio di job
completati, perchè questoriduce il costo di inventario delle merci
finite (in cmax)' Se invece il nostroscopo è assicurare un
efficiente uso delle macchine, si minimizza l oppure[max,
rispettivamente tempo di inattività. medio e massimo delle
macchine.
Si può dimostrare che le misure viste cioè
c, Cmax, F, Fmax, T, TmaxL, Lmax, nT.S;Ono VV\1'S-ure .L~
~Q.rlortr\~L-\ce r-e.~9t~, .
Per esempio esaminiamo la regolarità di Cmax: se abbiamo due
sequenze {Ci}e {Ci} tali che Cl < Cl, C2 < C2,..., Cn < Cn
; per la definizione di massimosi ha che:
max{c},c2"",Cn} ~ max{C},C2,...,Cn}
quindi Cmax è una misura di performance regolare. Analogamente
si dimostraper le altre misure di performance.
Il
-
I.II.III~~.I.I.I. ~ -- ---- .~~===::r~~~-
1.3.4 Relazioni fra le misure di performance
Esistono relazioni di equivalenza fra le misure di
performance:Dei":Due misure si dicono equivalenti se ogni schedule
ottimo per una delle
due è tale anche per la seconda e viceversa.
Teorema 1.1 Le seguenti misure di performance sono fm loro
equivalenti
c,F,I,W.
Dim:Dalle definizioni
m
Ci = Fi + Ti = Wi + LPij + ri = Li + di.j=1
Sommando rispetto ai job e dividendo per n si ottiene:
- 1~~ - -c = F + r = w + - LI L...Pij + r = L + d.n. .
1=1 )=1
Ma r, E E Pij, d sono costanti per ogni problema e indipendenti
dallo sched-ule. Quindi uno schedule che minimizza c minimizza
anche F, I e W.Analogamente se si minimizza F, I o W si minimizzano
le altre misure. Lequattro misure sono perciò equivalenti.D
Osso '
Non vi è nessun risultato parallelo per i corrispondenti
massimi. Si cercacomunque di mettere in relazione queste misure:
Cmax è equivalente a Fmaxnel caso che Ti = O 'v'i, ed è equivalente
a Lmax nel caso in cui di = d 'v'i(stessa data di consegna per
tutti i job).
Facciamo vedere con un esempio che in generale Cmax :/: Fmax +
rmax.
EsempioConsideriamo due job su una macchina con le seguenti
informazioni:
m!ffi pr1 5 O2 1 lO
12
-
Nello scheduJtJl - h,
Cl = 5 C2 = 11 => Cmaz = 11Fl = 5 F2 = 1 => Fmaz = 5rl = O
r2 = 10 => rmaz = 10
Quindi Cmaz # Fmaz + rmaz.~
Notiamo ora la parziale equivalenza tra Lmaz e Tmaz.
Teorema 1.2 Se uno schedule è ottimo rispetto a Lmaz, lo è anche
rispettoa T max.
Dim:Partendo dalla definizione di T maz:
Tmaz = max{max(O, LI),..., max(O,Ln)} =
= max(O,Ll,...,Ln) = max(O,Lmaz),
quindi se uno schedule minimizza Lmaz,questo minimizza anche
Tmaz.O
OssoNon vale però il viceversa. Infatti Tmaz = O se vengono
rispettate le date
di consegna; comunque può esistere un altro schedule che, pur
mantenendoT maz = O, riduce Lmaz.
Teorema 1.3 Le seguenti misure sono equivalenti:
i) Cmaz, ii) N;, iii) I,
notando ~rò che al minimo di I e Cmax corrisponde il massimo di
N;.
Dim:Dimostriamo nell' ordine che i) è equivalente a ii), e che
i) è equivalente
a iii), (l'equivalenza tra ii) e iii) è immediata).
i)
-
essendo Np(t) il numero di job in esecuzione al tempo t. Sia
Di(t) ={ l se ~i è in.esecuzione al tempo tO altrImentI
alloraN,,(t) = sumi:IDi(t)
Nel periodo [O,cmax] Di(t) = 1 per un tempo pari a Ei=1 Pii,
cioè per iltempo totale di esecuzione del job Ji, quindi
lcmaz Di(t)dt = f:Pijo j=I
e quindi
lcmaz N" ( t )dt = t lcmaz Di (t )dt = t f: Piio i=I o i=1
j=1
da cui -N -b~p- .
CmaxQuindi massimizzare "N; è equivalente a minimizzare Cmax dal
momento cheE EPij = const indipendente dallo schedule.
i) -:::> ;ii)n
lj = Cmax - LPiji=1
quindi1 = mCmax - Ei=1 Ei:l Pii
mquindi
1 = cmax - const
da cui deriva l'equivalenza tra le due misure. O
Teorema 1.4 ~ e -L- sono tm loro misure equivalentiCmaz
Teorema 1.5 ~ e L sono misure di performance ~i t1""'Q...6-"",~.
Cmaz
14
-
Dal fatto che, per una singola macchina, Cmax è una costante
segue:
Corollario Per problemi su una singola macchina le seguenti
misuresono trn loro equivalenti"N;;:, C, N:, w, F, L.
1.4 Classificazione dei problemi
Un modello di scheduling è caratterizzato da alcuni insiemi di
parametri:
. a:per quanto rigÙ!
-
. al E {O,F,J} dove
. al = O indica un problema di tipo OPEN-SHOP, cioè in cui
abbiamon job che devono essere lavorati su m macchine e le
operazioni relativea ciascun job possono essere eseguite in un
ordine qualsiasi.
. al = F indica un problema di tipo FLOW-SHOP cioè in cui tutti
ijob devono essere lavorati in un determinato ordine uguale per
tutti(macchine in serie).
. al = J indica infine un problema di tipo JOB-SHOP in cui
ognijob deve essere lavorato secondo un proprio ordine particolare
dallemacchine.
OssoCon questo primo parametro si specifica quindi come vengono
utilizzate
le risorse.
Esaminiamo ora a2In generale a2 = m indica il numero delle
macchine a disposizione; se
a2 = 0 allora il numero delle macchine è variabile.
il) job e vincoli
~ 13 è composto da cinque componenti 13 E {131, 132,133,134,
13s} con i
seguenti significati:
1 131 specifica il tipo di lavorazione svolto dalle macchine
. 131 E {pmtn,0}
. 131 = pmtn nel caso che sia possibile interrompere la
lavorazioneche una macchina sta eseguendo su un particolare job
. 131 = , altrimenti2 132 specifica il tipo di relazioni
esistenti tra job
. 132 E {prec,tree,0}
. 132 = prec se esistono vincoli di precedenza fra job
rappresentabilitramite un grafo aciclico orientato G in cui i
vertici {l,..., n}sono i job. Se G contiene un cammino diretto data
k allora iljob Jj deve essere lavorato prima di Jk.
16
-
. /32 = tree se tali vincoli di precedenza sono rappresentabili
medi-ante un albero con radice, con al più un solo ingresso' una
solauscita per ciascun vertice.
. /32 = 0 se non è specificata nessuna relazione di
precedenza.
3 /33 rappresenta la disponibilità dei job all' inizio della
lavorazione
./33E{ri,0}
. /33 = 0 se tutti i job sono subito disponibibli, cioè ri = O
'v'i
. /33 = ri se sono specificati i diversi tempi ai quali i job
sono prontiper la lavorazione.
4 /34 riguarda il numero di operazioni esegui bili sui job
(questo parametroha senso solo se al = J )
. /34 E {0,mi ~ m}
. /34 = 0 nel caso che non si abbiano informazioni specifiche
sulnumero di operazioni alle quali ogni job deve sottostare
. /34 = mi ~ m se c' è un numero massimo di operazioni esegui
bilisu ciascun job.
5 /35 fornisce informazioni sui tempi di lavorazione
. /35 E {Pii = 1,0}
. /35 = Pii = 1 indica che ciascuna operazione sui job ha tempo
dilavorazione unitario
. /35 = 0 altrimenti
OssoPii = 1 è una ipotesi che ci permette di semplificare
problemi NP-
Completi riducendo la loro complessità da esponenziale a
polinomiale.
II) Misure di Performance
Attraverso questo parametro (ì), stabiliamo un criterio di
ottimalitàì E {/mar, Ei li,/} indicando con f una qualsiasi tra le
misure di per-
formance viste nel paragrafo 1.3.
17
-
1.5 Problemi con una singola macchina
Passiamo ora ad esaminare alcuni problemi di scheduling in cui
si haI 'utilizzodi una sola macchina. Chiaramente questi sono i
problemi più semplici chesi possono trattare, nei quali sono
utilizzate svariate misure di performancee tecniche di soluzione.
Per comprendere a fondo il comportamento di sis-temi complessi è
basilare capire il funzionamento delle loro componenti equindi il
problema della macchina singola assume maggior importanza es-sendo
componente fondamentale di un problema di scheduling di più
grandidimensioni e complessità. n problema di una macchina singola
consiste inquesto: dati n job, ciascuno di essi deve essere
lavorato dalla macchina unasola volta ed il fine è trovare la
sequenza di job che ci permette di minimiz-zare la misura di
performance scelta. I problemi su una singola macchinasono
rappresentati, secondo la precedente classificazione da:
1/{3/"Y.
In questo caso Cmax = Fmax = const dal momento che lavoriamo con
unasingola macchina. Se non ci sono tempi ~orti, Cmax = L::i:l Pi,
quindiCmax ed Fmax non possono in questo caso essere utilizzate
come misure diperformance. Chiaramente il tutto è vero se il tempo
di messa a punto èindipendente dalla sequenza dei job e può essere
quindi inglobato nel tempodi lavorazione.
1.5.1 1//,Non essendo stato specificato (3 non abbiamo la
possibilità di interrompere illavoro della macchina, non ci sono
precedenze fra i job, essi sono disponibilitutti
contemporaneamente, ognuno con il proprio tempo di lavorazione.
Teorema 1.6 Se "Y è regolare esiste uno schedule ottimo nel
quale non cisono tempi morti, quindi la macchina comincia a
lavorare al tempo t = O efinisre al tempo t = Cmax.
Si può, inoltre, dimostrare che:
Teorema 1.7 Anche se viene introdotta l'interruzione della
lavorazione nonsi ha miglioramento per quanto riguarda l'ottimo,
cioè il min( "Y) rimaneinvariato.
L'importanza di questi risultati risiede nel fatto che lo
schedule ottimosi trova quindi considerando solo le permutazioni
dei job.
18
-
Fra i problemi 1/ /ì andiamo a vedere in dettaglio che cosa
succede conle varie misure di performance.
l//PAbbiamo il seguente risultato:
Teorema 1.8 P è minimizzato ordinando i job in modo non
decrescenterispetto ai tempi di lavorazione (sequenza S.P. T.)
cioè:
P[l] ~ P[2] ~ . . . ~ P[n]
dove P[iJ è il tempo di lavornzione del job che viene lavorato
per i - esimo.
Dim:Consideriamo una sequenza S # S.P.T. e supponiamo per
assurdo che
sia la sequenza ottima. In S dovranno esistere due job adiacenti
Ji e J j, conJj che segue Ji tali che Pj ~ Pio Ora costruiamo una
nuova sequenza, S',ottenuta scambiando Ji con Jj. Chiamiamo B
l'insieme dei job che vengonolavorati prima di Ji e di Jj in
entrambi gli schedule e con A l'insieme deijob che vengono lavorati
dopo. Sia tB il tempo finale di lavorazione dei jobin B (che
chiaramente sarà uguale per entrambi gli schedule). Mostriamoora
che Li=l Fi in S'è minore che in S.
n
}::::Fi(S) = }:::: Fi(S) + Fi(S) + Fj(S) + }::::Fi(S) =i=l ieB
ieA
= }:::: Fi(S) + (tB + Pi) + (tB + Pi + pj) +}:::: Fi(S).ieB
ieA
n}::::Fi(S') = L Fi(S') + (tB + pj) + (tB + Pj + Pi) + L
Fi(S').i=l ieB ieA
Quindin nL Fi(S) - L Fi(S') = Pi - pj > O.
i=l i=l
Scambiare Ji con J j riduce il valore del flusso medio e quindi
S non può;essere sequenza ottima inoltre ogni sequenza che non sia
la S.P. T. può esseremodificata diminuendo il valore del flusso
medio e quindi la sequenza S.P. T.è la sequenza ottima. O
19
-
Sfuttando il precedente teorema abbiamo cosi un algoritmo che ci
per-mette di trovare l'ottimo in un tempo dell'ordine di o( n log
n), il tempo nec-essario per effettuare un ordinamento di n
elementi. Con questo algoritmosi trova l'ottimo anche rispetto alle
seguenti misure di performance:
c,W,I,~,"N:,dato che nel caso di una singola macchina sono tutte
equivalenti.
1/ / Lmax
Se ci sono delle date di consegna possiamo considerare come
misura di per-formance Lmax. Anche in questo caso abbiamo un
teorema fondamentale:
Teorema 1.9 Lmax è minimizzato ordinando i job in ordine non
decres-cente rispetto alla data di consegna (sequenza E.D.D.): h
.
. ICCI-()L,d[t) ~ d[2) ~ ... ~ d[n)
dove d[i) è la data di consegna del job che viene lavorato per i
- esimo. t> I
Dim: J i) CLa dimostrazione è analoga alla dimostrazione del
teorema precedente.
Consideriamo una sequenza S # E.D.D. e supponiamo per assurdo
che siala sequenza ottima. In S dovranno esistere due job adiacenti
Ji e J j, conJj che segue Ji tali che dj ~ di. Ora costruiamo una
nuova sequenza, S',ottenuta scambiando Ji con Jj. Abbiamo quindi: (
per il significato di B,A e tB si veda la dimostrazione del teorema
precedente),
Li(S) = tB + Pi - di Lj(S') = tB + Pj - djLj(S) = tB +Pi +Pj -
dj Li(S') = tB +Pj +Pi - di
da cui segue che Lj(S) > Li(S') e che Lj(S) > Lj(S').
Quindi Lj(S) >max(Li(S'), Lj(S'». Sia L = max(Lk, k E A o k E
B), si noti che L è lostesso sia in S che in S'. Allora
Lmax(S) = max(L,Li(S),Lj(S» ~ max(L,Li(S'),Lj(S') = Lmax(S')
Scambiare Ji con J j riduce il valore di Lmax e quindi S non può
esseresequenza ottima inoltre ogni sequenza che non sia la E.D.D.
può essere
20
-
modificata diminuendo il valore di Lmax e quindi la sequenza
E.D.D. è lasequenza ottima.D
~!,!:e.gQ1.~di Jackso.~, ci permette di trovare l'ottimo,
sfruttando il prece-dènte teorema, cioè ordinando i job secondo la
sequenza E.D.D., chiaramenteanche in questo caso si ha una
complessità pari ad o( n log n).
La versione statica del problema con una singola macchina si
riferiscealla situazione in cui tutti i job sono disponibili
contemporaneamente perla lavorazione. Molti problemi di scheduling
invece richiedono che i jobsiano disponibili in tempi diversi, in
questo caso si ha una versione dinamicadel problema. lntrod ucendo
delle date di arrivo differenziate, il problemaprecedente si
trasforma in l/Ti/ Lmax, ma il precedente criterio non è piùvalido
per trovare l'ottimo.
Nel caso l/Ti/ Lmax con alcune ipotesi aggiuntive esistono in
letteraturaalcuni algoritmi polinomiali, ad esempio se i job hanno
tutti la stessa datadi consegna d = di allora esiste un algoritmo
polinomiale che consistenell'ordinare i job in ordine non
decrescente rispetto alle date di arrivo:
T[l] ~ T[2] ~ .. . ~ T[n]
dove T[i] è la data di arrivo del job che viene lavorato per i -
esimo.Un' altra semplificazione possibile consiste nel considerare
tutti i job -r 1/
con tempo di lavorazione unitario: l/Ti, Pi = 1/ Lmax. In questo
caso si d
-
l//nT
Se vogliamo invece minimizzare il numero di job in ritardo,
sempre che cisiano date di consegna da rispettare, la sola sequenza
E.D.D. può non essereottima. Per risolvere il problema in modo
ottimo abbiamo quindi l'algoritmodi Moore-Hodgson:
. Algoritmo di Moore-Hodgson
1. Ordiniamo i job secondo la sequenza E.D.D. Creiamo poi
dueinsiemi di indici: N = {[l], [2],..., [n]} e R = 0.
2. Assegniamo i job secondo la sequenza di indici in N fino a
chenon troviamo il primo job in ritardo, supponiamo sia J[/). Senon
abbiamo job in ritardo allora stop e la sequenza ottima è
Nconcatenato con R.
3. Cerchiamo il job con un maggior tempo di lavorazione fra i
primil, supponiamo sia J[k]f...t~\':J-~~~ ~Q~ 0\0.. N}
4. Poniamo l'indice [k] in}R-e torniamo a ~).- ~
Alla fine otteniamo 2 liste, N costituita dagli indici dei job
non in ritardo eR costituita dagli indici dei job in ritardo.
Esempio:
J p d1 1 2
5 7. 3 8
9 135 7 Il
Si ordinano ijob: J1, h, J3, Js, J4. Quindi inizialmente N =
{1,2, 3, 5,4}e R = 0. Cominciamo ad assegnare i job: J1 viene
completato al tempot = 1, J2 al tempo t = 6 e J3 al tempo t = 9.
Dato che d3 = 8 J3 è il
...primo job in ritardo. h è il job con maggior tempo di
lavorazione fra iprimi 3 e quindi poniamo N = {1,3,5,4} ed R = {2}.
Ricominciamo poiad assegnare i job, il primo job in ritardo è J4 ed
è anche il job con maggiortempo di lavorazione fra i primi quattro,
poniamo allora N = {l, 3, 5} eR = {2,4}. Riassegnando i job non ne
troviamo più in ritardo e quindil'algoritmo termina con la
soluzione: {l, 3, 5, 2, 4} che è la sequenza di
indiciottima.i::!1
22
-
1.5.2 Schedule ottimi rispetto a più misure di performance
Si possono richiedere schedule ottimi rispetto a più misure di
performance,peresempio rispetto a T max ed F (è ovvio che devono
essere considerate fun-zioni non equivalenti). Se siamo nel caso in
cui sia possibile trovare unoschedule che realizza T max = O, cioè
che permette di rispettare tutte le datedi consegna, allora con
L~1m-Q~mi~possibile trovare uno schedule A.e~che realizza T max = O
e min F. Tale algori tmo ~~-~ ~~ seguente teorema: 51--
Teorema 1.10 Se abbiamo n job per una macchina ed esiste una
sequenzaper cui T max = O alloro esiste un ordinamento per cui il
job k-esimo puòessere messo nell 'ultima posizione ottenendo una
sequenza ottima per F see solo se sono verificate le seguenti
disuguaglianze:
n
1) dk ~ LPii=l
n2) Pk ~ PI'v' l t.c. di ~ LPi.
i=l
Una volta che con la regola di Smith è stato individuato
l'ultimo jobdella sequenza tra gli n job considerati, allora la
regola può essere applicataricorsivamente ai restanti n-l jobs. In
questo modo l' algoritmo costruiscela eventuale sequenza ottima a
partire dalla ultima posizione.
1.5.3 Problemi con precedenza.
Vediamo adesso cosa succede quando sono presenti vincoli di
precedenza frai vari job.
Consideriamo l/prec/ /max.Abbiamo in proposito l'algoritmo di
Lawler ('73) che minimizza una
funzione generica purchè regolare.Per esempio ")'( Ci) = Ci - di
= Li, cioè /max = Lmax.L'algoritmo sfrutta:
Teorema 1.11 Sia V l'insieme dei job che possono essere lavoroti
per ul-timi (che non hanno cioè la precedenza su altri job), ed Iv
l'insieme degliindici corrispondenti a tali job. Sia k l'indice che
realizza m i n")' ( Ci) coni E Iv, alloro esiste uno schedule
ottimo in cui J k è schedulato per ultimo.
23
-
Vediamo con un esempio come lavora l'algoritmo:
Sia Lmax la misura di performance.
J p d1 2 3
3 64 93 72 Il
6 1 7'. \" /\l
J1 ~ J2 ~ J3
Js
J~
-
1.5.4 Tempo di set-up dipendente dalla sequenza
Vediamo ora che cosa succede se invece il tempo di setup dipende
dalla se-quenza. Non si può più inglobare il tempo di messa a punto
della macchinanel tempo di lavorazione dei singoli job. In questa
situazione il tempo glob-ale, di lavorazione e messa a punto
relativo al job i-esimo, è dato da Cki +Pi,dove Cki è il tempo di
setup quando la macchina deve lavorare Ji dopo averlavorato Jk. il
tempo globale di completamento o makespan è dato da:
n+l nM = L C[I-l][1] + LPi,
1=1 i=1dove C[O][I] e C[n][n+l] indicano gli "stati liberi"
iniziale e finale necessari
per predisporre la macchina alla lavorazione del primo job della
sequenza eper riportare la macchina allo stato di inattività dopo
aver lavorato l'ultimojob.
Per una sola macchina,dato che U"=1 Pi = cost., minimizzare M
equiv-ale a minimizzare il tempo di setup, che rappresenta il tempo
totale nonproduttivo, cioè min(Ei::l C[I-l][I]) rispetto a tutte le
possibili permutazionidegli n job.
OssoVediamo come il problema di minimo makespan può, con
opportuni
accorgimenti,essere espresso come il problema del commesso
viaggiatore epuò quindi essere risolto mediante le tecniche
risolutive utilizzate per quest'ultimo. il problema del commesso
via~iatore è il seguente: Date n città, e dato Cij costo di
percorrenza per andare dalla città i alla città j, ilviaggiatore
deve visitare tutte le città una ed una sola volta e ritornare
allacittà di partenza minimizzando il costo totale di percorrenza
c. Si supponeinoltre che sia nota la città di partenza e che Cij =
Cji.
Tale problema può essere espresso come un problema di
programmazioneintera:
n n
min L L CijXijj=1 i=1
con i seguenti vincoli:
n
L Xij = 1 'v' i = 1,..., nj=1
25
-
n
LXii = lVj = l,...,ni=l
dove
{ O se non viene percorso l'arco dalla città i alla città jxii =
1 altrimenti
il viaggiatore può essere identificato con la macchina e le
città con glin job infatti ogni città deve essere visitata una.
sola. volta dal viaggiatore,e cii può essere interpretato come il
tempo di messa a punto che infatti èdipendente dall'ordine di
visita delle città. È necessa.rio però prendere unacittà fittizia,
che sarà quella. di partenza poiché nel problema di schedulingnon
si può imporre il primo job della sequenza. Inoltre non è detto che
cisia simmetria nei costi, come si ha nel problema. del commesso
viaggiatoreclassico, ma questo ~ complica la risoluzione. il
problema del commessoviaggiatore è NP-Completo e per risolverlo si
usano tecniche come la pro-grammazione dinamica ed il Branch and
Bound con tempi di soluzione moltoelevati.
"o.