26
Contents :; 1 SCHEDULING 3 1.1 Introduzione 3) 4/" 1.2 Parametrivalut~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 9 1.3.1 Tempidi completamento lO 1.3.2 Datediconsegna lO 1.3.3 Costi di inventarioe di utilizzo. . . . . . . . . . . '. Il 1.3.4 Relazioni fra le misuredi performance. . . . . . . .. 12 1.4 Classificazione dei problemi. . . . . . . . . . . . . . . . . " 15 ~-- 1.5 Problemi conuna singola macchina. . . . . . . . . . . . . . '18 J 1.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-updipendente dalla sequenza.. . . .. 25 1.6 Macchineinparallelo 26 1.6.1 Esempinotevoli 27 1.7 Problemi con più macchine. . . . . . . . . . . . . . . . . --: -:- 31 ,',".': 1.7.1 Problemi di tipo OPEN-SHOP . . . . . . . . . . . .. 31 1.7.2 Problemi di tipo FLOW-SHOP . . . . . . . . . . . . .- 32 :::=-.,.-. 1.7.3 Problemi di tipo JOB-SHOP . . . . .. 35! 2t.! L 2 PROGRAMMAZIONE DINAMICA 37 2.1 Introduzione 37 ti 2.1.1 Definizioni 37 212 P . " d. . al ' t ' An~\ .. nnclplo lottlm la ~~ 2.1.3 Relazioni ricorrenti: . . . . . . . . . . . . . . . . . .. 42 '2 8/ Y Y"~'fc.-.u]Q 1

Contentsweb.math.unifi.it/users/deluca/TC+IGA 2009-2010/Scheduling1.pdf · Nella costruzione di modelli per problemi reali come problemi di schedul- ... nel caso di macchine che ne

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • 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.