La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Principali Algoritmi di Scheduling

Presentazioni simili


Presentazione sul tema: "Principali Algoritmi di Scheduling"— Transcript della presentazione:

1 Principali Algoritmi di Scheduling
31/12/2018

2 1 / / F: Shortest Job First
p[1] p[2] p[n] (le misure sono in questo caso equivalenti) < < < C, W, L 31/12/2018

3 1 / / Lmax: Algoritmo di Jackson: Earliest Due Date First
d[1] d[2] d[n] < < < 31/12/2018

4 1 / / nT: Algoritmo di Moore-Hodgson:
Ordino secondo le date di consegna. Se il primo lavoro che fa ritardo è il k-esimo, escludo il più lungo fra i primi k e ricomincio. 31/12/2018

5 1 / ri / Lmax: è equivalente allo zaino
1 / ri , pi = 1 / Lmax: Jackson generalizzato (si schedula il primo che scade tra quelli arrivati) 1 / ri / Lmax: se le date di consegna sono tutte uguali si ordina in base a ri 31/12/2018

6 1 / / Tmax e : Algoritmo di Smith
Tra quelli con : dh Σ pi si mette per ultimo quello con ph massimo. F > 31/12/2018

7 1 / prec / fmax : Algoritmo di Lawler
Sia f(r,p,c,d) non decrescente rispetto a c e poniamo fi = f(ri, pi, ci, di). La misura fmax può essere minimizzata con il seguente algoritmo. Trovare il pozzo k che minimizza f( rk, pk, Σ pi, dk ), Metterlo all’ultimo posto disponibile, Procedere analogamente sui lavori rimanenti. 31/12/2018

8 Lawler. Esempio con f(c,d) = c-d = L.
1. Σ pi = 12, pozzi J4 e J5: f(12,d4) = 1 < f(12,d5) = 5. 2. Σ pi = 10, pozzi J2 e J5: f(10,d5) = 3 < f(10,d2) = 4. (p1=2, d1=3) (p2=3,d2=6) J1 J1 J2 J2 (p4=2,d4=11) 3. Σ pi = 9, pozzi J2 e J3: f(9,d3) = 1 < f(9,d2) = 3. J4 J4 J3 J3 (p3=4,d3=8) J5 J5 4. Pozzo J2 (p5=1,d5=7) 5. Pozzo J1 J1 J2 J3 J5 J4 31/12/2018

9 Algoritmi per macchine parallele
31/12/2018

10 P / / F: Si assegna il prossimo lavoro più corto alla macchina che ha lavorato meno. P2/ / Cmax: è NP-completo 31/12/2018

11 Algoritmo di McNaughton distribuire i lavori in modo che risulti:
Pm / preempt / Cmax: Algoritmo di McNaughton distribuire i lavori in modo che risulti: cmax = max( Σ pi / m, max pi ) (seguono esempi) 31/12/2018

12 Tre lavori unitari su due macchine:
McNaughton (Esempio 1). Tre lavori unitari su due macchine: J1 J2 J3 macchina 1 macchina 2 J1 J3 J3 J2 (è ammesso iniziare un lavoro in una macchina e finirlo su un’altra) 31/12/2018

13 McNaughton (Esempio 2). Due macchine.
Tre lavori con durate: 1, 1, J1 J2 J3 macchina 1 macchina 2 J1 J2 J3 31/12/2018

14 Pm / intree, pi = 1 / Cmax: Algoritmo di Hu
Etichettare i nodi con la distanza massima da un pozzo. Se il numero di sorgenti è minore di m, schedularle e rimuoverle, altrimenti schedulare le m sorgenti con etichette maggiori e rimuoverle. Se il grafo non è vuoto tornare al passo 2. 31/12/2018

15 Hu. Esempio con due macchine
2 1 2 2 3 1 2 31/12/2018

16 L’algoritmo di Hu può non funzionare se le precedenze non formano un intree
1 2 Cmax = 5 2 1 2 1 1 2 Cmax = 4 2 1 2 1 31/12/2018

17 Algoritmo di Muntz-Coffman
P2 / preempt, prec / Cmax: Algoritmo di Muntz-Coffman Rendere i lavori unitari (usare preempt e prec) Etichettare i nodi con la distanza massima da un pozzo. - Se vi è una sola sorgente schedularla e rimuoverla, - altrimenti: se vi è una sola sorgente con etichetta massima, accoppiarla ad una sorgente di etichetta massima tra quelle minori, schedulare la coppia e rimuoverla, - altrimenti: le sorgenti con etichetta massima sono almeno 2, schedulare tutte le sorgenti con etichetta massima (McNaughton) e rimuoverle. Se il grafo non è vuoto tornare al passo 3. 31/12/2018

18 3. Raggruppare e schedulare le sorgenti
Muntz-Coffman. Esempio con due macchine 3. Raggruppare e schedulare le sorgenti 2. Etichettare i nodi con la massima distanza da un pozzo 1. Rendere i lavori unitari J5 J1 1 3 J4 J2 J7 2 J3 J6 m1 m2 J1 J2 J3 J4/1 J5 J4/2 J6 J7 31/12/2018

19 Muntz-Coffman: quando vi è un sola sorgente con etichetta
massima è importante accoppiarla con una sola sorgente di etichetta massima minore (quando possibile). J5 J1 1 3 J4 J2 J7 3 2 1 J3 J6 3 1 m1 m2 J1 J2 J3 J4/1 J6 J5 J4/2 J7 31/12/2018

20 Algoritmi per macchine in serie (flow shop)
Flow shop: se un lavoro visita la macchina i e poi la macchina j, allora i<j (ossia un lavoro non può visitare la macchina i e poi un’altra macchina con indice più piccolo). 31/12/2018

21 Regola di Johnson per F2 / / Cmax: Se
Proprietà 1: Rispetto a una misura regolare, è sufficiente considerare schedule in cui la stessa sequenza di lavori si presenta nelle macchine 1 e 2. Proprietà 2: Rispetto alla misura Cmax, è sufficiente considerare schedule in cui la stessa sequenza di lavori si presenta nelle ultime due macchine. Regola di Johnson per F2 / / Cmax: Se min( pi1, pj2 ) < min( pi2, pj1 ) allora il lavoro i precede il lavoro j nello schedule ottimo. 31/12/2018

22 F2 / / Cmax: Algoritmo di Johnson
Trovare ph1 = mini( pi1 ) e pk2 = mini( pi2 ), Se ph1< pk2, si pone il lavoro h nella prima posizione libera da sinistra altrimenti, si pone il lavoro k nella prima posizione libera da destra Se ci sono ancora lavori tornare al passo 1. 31/12/2018

23 F2 / / Cmax: Algoritmo di Johnson: implementazione
Sia U = {i: pi1 < pi2 } e V = {i: pi1 > pi2 }, Ordinare U in ordine non decrescente di pi1, Ordinare V in ordine non crescente di pi2, Una sequenza ottima è data da U seguito da V. 31/12/2018


Scaricare ppt "Principali Algoritmi di Scheduling"

Presentazioni simili


Annunci Google