3.2 Algoritmo di Moore per la minimizzazione dei lavori in ritardo

Slides:



Advertisements
Presentazioni simili
Automi temporizzati.
Advertisements

Il problema del cammino minimo tra 2 nodi in un grafo non cooperativo
I.T.C.G. Mosè Bianchi Mauro Bosisio Classe A2 Geometri Anno scolastico 2000\2001.
Il problema del minimo albero ricoprente in un grafo non cooperativo
Il TEOREMA.
Algoritmi e Strutture Dati (Mod. B)
Precorsi di Informatica Dott. Antonio Cisternino Settembre 2003
Modello Macchina Singola
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Scenario Archi di un grafo controllati da agenti egoistici
R. Soncini Sessa, MODSS, L 24b Analisi a molti obiettivi-esempi Rodolfo Soncini Sessa MODSS Copyright 2004 © Rodolfo Soncini Sessa.
L 16 Progetto delle alternative Andrea Castelletti Modellistica e Controllo dei Sistemi Ambientali.
Macchine non completamente specificate
Circuiti di memorizzazione elementari: i Flip Flop
Analisi e Sintesi di circuiti sequenziali
Il problema del minimo albero ricoprente in un grafo con archi privati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Risorse condivise e sovraccarichi nei sistemi in tempo reale E.Mumolo
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Sistemi di equazioni lineari
Modelli e Algoritmi della Logistica
Controllo delle operazioni su una macchina
Analisi e Sintesi di circuiti sequenziali. Definizione Una macchina sequenziale é un sistema nel quale, detto I(t) l'insieme degli ingressi in t, O(t)
Studente Claudia Puzzo
Heap binomiali Gli heap binomiali sono strutture dati su cui si possono eseguire efficientemente le operazioni: Make(H) : crea uno heap vuoto Insert(H,
Elaborato di Teoria dello Sviluppo dei Processi Chimici
Radix-Sort(A,d) // A[i] = cd...c2c1
Prof. Cerulli – Dott.ssa Gentili
PARTE SECONDA: Reti Senza Fili
Per valutare la complessità ammortizzata scomponiamo ogni Union: nelle due FindSet e nella Link che la costituiscono e valuteremo la complessità in funzione.
Programmazione di calcolatori
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Prof. Cerulli – Dott.ssa Gentili
28 ottobre Mergesort F. Bombi 28 ottobre 2003.
ESTENSIONI SEMPLICI e TEOREMA DELL’ELEMENTO PRIMITIVO
delle operazioni con precedenze
Algoritmi CHE COS’è UN ALGORITMO di ORDINAMENTO?
Array (ordinamento) CORDA – Informatica A. Ferrari.
alberi completamente sbilanciati
Complessità del problema Se non facciamo ipotesi sul tipo degli elementi della sequenza le uniche operazioni permesse sono confronti e assegnazioni. Problema.
Misure ed Errori.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Claudio Arbib Università dell’Aquila Ricerca Operativa Metodo del simplesso per problemi di distribuzione single-commodity.
Capitolo 12 Minimo albero ricoprente Algoritmi e Strutture Dati.
Clipping Antonio Cisternino Parte di queste slides sono a cura del Dott. Cignoni.
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Quinta giornata Risolvere efficientemente un problema in P: ancora sulla sequenza di Fibonacci.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
L 18 Progetto delle alternative Rodolfo Soncini Sessa MODSS Copyright 2004 © Rodolfo Soncini Sessa.
Dynamic Programming Testi di riferimento per approfondimenti: Dimitri Bertsekas, Dynamic Programming, deterministic and stochastic models, Prentice-Hall.
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

3.2 Algoritmo di Moore per la minimizzazione dei lavori in ritardo

Massimo numero pezzi in tempo Algoritmo di Moore J1 J2 J3 J4 Jn d1 d2 d3=d4 dn 1) Si scelgono gli indici in ordine EDD (non sempre è unico: es. J3 e J4 sopra)

J3 Jn J1 J2 J4 d1 d2 d3=d4 dn 1’) La sequenza ottenuta è la sequenza corrente S1 (la prima) ; si pone i=1 2) Si individua il primo lavoro in ritardo Jl(i) nella sequenza corrente, se non esiste: stop

J3 Jn J1 J2 J4 d1 d2 d3=d4 dn 3) Si individua il lavoro più lungo Jr(i) con r  l(i), nella sequenza corrente Si 4) Si ottiene una nuova sequenza corrente Si+1 escludendo Jr(i) e si torna al passo 2), con i:= i+1

Traduzione logica dell’intuizione Moore costruisce una sequenza con il massimo numero di lavori terminati in tempo e con il minimo tempo totale di processamento  Sn Moore e’ ottima. sK : = { i1… ik } indici di una generica sequenza dei primi k lavori Nk : = massimo numero di lavori in tempo, rispetto a tutte le possibili Sk IP d1  d2  …  dn ( i lavori sono ordinati secondo EDD )

Sk di Moore e’ tale che: - il numero di lavori processati in tempo e’ pari ad Nk - il tempo di processamento totale e’ minimo Praticamente Moore trova l’ottimo per i primi k lavori Dimostriamo per INDUZIONE che Sn e’ ottima S1 e’ banalmente ottima. Sk assumiamola ottima. Sk+1 e’ ottima?

Sk+1 e’ ottima? Costruiamo la sequenza Sk+1 a partire da Sk - se jk+1 e’ processato in tempo ottengo ancora una sequenza ottima, in cui i lavori che arrivano in tempo sono ( Nk + 1 ). - se jk+1 non e’ processato in tempo, elimino il lavoro con tempo di processamento più lungo, fra gli ( Nk + 1 ). Ottengo una sequenza di k+1 lavori, di cui Nk+1 = Nk arrivano in tempo, con tempo di processamento totale minimo.

nT numero di pezzi che vanno rifiutati Algoritmo di Moore min nT S 1968 nT numero di pezzi che vanno rifiutati (T: Tardiness) Ipotesi di lavoro: S0 ottima Sempre: S0: A0 R0 ammessi o in anticipo rifiutati o in ritardo

Si può posticipare Jr(k) mantenendo l’ottimalità Sempre: S0: A0 R0 Infatti se Ja(1) ... ... Jr (k) Ja (z) Jr (1) ... Jr (l) S0: Si può posticipare Jr(k) mantenendo l’ottimalità

Infatti in A0: Lmax £ 0, inoltre: EDD S0 : A0 R0 scelti gli indici dei lavori secondo una qualsiasi S EDD i < j di  dj Si può sempre riordinare A0 come la EDD scelta: h<k a(h) < a(k) Infatti in A0: Lmax £ 0, inoltre: EDD min Lmax S Il riordino può essere necessario solo se $ di = dj

Algoritmo di Moore Definizione di l(1): Jr(1) : max ph = pr(1) min nT S Definizione di l(1): S1: J1 Ja(1) Ja(2) Jr(1) Jl(1) Ja(z) Jl(i) Jn dl(1) Jr(1) : max ph = pr(1) h=1,l(1)

Definizione ricorsiva di Jr (k) , da k=2 k £ i Jr(k-1)-1 Jr(k) Jl(k) Ak: Jr(k-1)+1 dl(k) Jr (h) con h < k non ci sono in Ak Jl (k) ultimo lavoro in Ak; unico in ritardo Jr (k)  Ak : max ph = pr (k) h: Jh  Ak

m 1 := numero lavori di { J1 ....Jl(1) } = :A1 assenti in A0 Ja(1) Ja(2) Jl(1) Ja(z) presenti in A0 assente in A0 m 1 := numero lavori di { J1 ....Jl(1) } = :A1 assenti in A0 m 1 > 0 (almeno uno è assente, altrimenti Jl(1) sarebbe presente e in ritardo, cosa impossibile, per definizione di A0)

Algoritmo di Moore Jq(1) : max ph = pq (1) min nT S pq(1) £ pr(1) q(1) £ l(1) h=1,l(1) h ¹ a (·) £ l(1) pq(1) £ pr(1) Lavoro di peso massimo fra quelli in J1 ....Jl(1) assenti in A0 q(1) può coincidere con r(1)

Passo i-esimo: 1 < k £ i Definizione ricorsiva di l(k), iniziando da k=2: J1 Ja(1) Ja(2) Jr(k-1)-1 Jr(k-1)+1 Jl(k) Jn Sk: dl(k) Jr (h) con h < k, rifiutati al passo h, non ci sono in Sk Sk : sequenza corrente al passo k

Sn +1 (sequenza corrente) : J1 Ja(1) Jr(n)-1 Jr(n)+1 Jl(n) Jn Se l(n+1) non esiste Ultimo passo: i = n +1 Sn : J1 Ja(1) Jr(n)-1 Jr(n) Jr(n)+1 Jl(n) Jn pr(n) dl(n) dn Sn +1 (sequenza corrente) : pr(n) pr(n) J1 Ja(1) Jr(n)-1 Jr(n)+1 Jl(n) Jn dl(n) dn

mk : numero lavori in J1 ....Jl(k) assenti in A0 Jq(k) è un lavoro di peso massimo tra i mk in J1 … Jl(k) fuori da A0 , non già abbinati  J1 ....Jl(k)  A0 Jq(k)

Definizione ricorsiva di Jq(k) :  J1 ....Jl(k) A0 Ï {Jq(1) ... Jq(k-1) } Bk Jq(k) => h £ l(k) Jq(k) => ÏA0 È {Jq(1) ... Jq(k-1)} Jq(k) : pq(k) = ph q(k) £ l(k) max h £ l(k) Jh Ï Bk abbinato a Jr(k)

Algoritmo di Moore Ipotesi: Tesi: min nT S Passo i-esimo: a) mi ³ i b) $ Jq(1) ... Jq(i) : pq(k) £ pr(k) Ipotesi: A) mi+1 ³ i +1 B) $ Jq(i+1) : pq (i+1) £ pr (i+1) Tesi:

A) mi+1 ³ i +1 B) $ Jq(i+1) : pq (i+1) £ pr (i+1) Tesi: Se la tesi è dimostrata, m1 ³ 1  mn ³ n dimostra che l’algoritmo dà un ottimo Mu con nu è il numero di lavori rifiutati nell’ipotetica ottima da giei uno a giei nu

Se mi >i mi+1 ³ mi ³ i +1 Se mi = i i Jq(1) ... Jq(i), abbinati a Jr (1) ... Jr(i) q (k) £ l (k) pq(k) £ pr(k) k = 1,…,i sono esattamente tutti i lavori assenti in A0 tra J1 ... Jl(i)

ritardati di ( å h pr (h) - å h pq (h)) Ja(1) Ja(2) Jr(i) Jl(i) Jl(i+1) Ja(z) J1 Si dl(i) dl(i+1) Ja(1) Ja(2) Jl(i) J1 Jl(i+1) Ja(z) Si+1 dl(i) dl(i+1) Ja(1) Ja(2) Jl(i) Jl(i+1) Ja(z) A0 I lavori da giei elle i in poi vengono anticipati di somma di pi qu di acca nell’ipotetica ottima e di somma di pi erre acca in esse i più uno ritardati di ( å h pr (h) - å h pq (h)) rispetto a Si+1 i i 1 1 mi = i

Jr (h) con h < k non ci sono in Ak Tesi B) $ Jq(i+1) : pq (i+1) £ pr (i+1) Jr (k-1)-1 Jr (k) Jl(k) Ak: Jr (k-1)+1 dl(k) Jr (h) con h < k non ci sono in Ak con l (i) < q(i+1) £ l (i+1) perché mi = i

$ Jr (h’) “nasconde” Jq(i+1) = Jr (h’) tempo di processo massimo dei lavori in A i+1 Jq(i+1) Î A i+1 pq(i+1) £ pr(i+1) Jq (i+1) Ï A i+1 $ Jr (h’) “nasconde” Jq(i+1) = Jr (h’) Jq(k) è un lavoro di peso massimo tra i mk in J1 ....Jl(k) fuori da A0 ,non già abbinati

pq(i+1) £ pq(h’) £ pr(h’) = pq(i+1) h’’’ < h’’ < h’ £ i A h’’’ Jr (h’’’) A h” Jr (h’’) Jq (h’) pq (h’) = A h’ pq(i+1) £ pq(h’) £ pr(h’) = pq(i+1) q(i+1) £ l(h’) A i+1 pq (i+1) Jq (i+1) Jr (h’) Jr (i+1) Jq(h”) Ï A i+1 Jq(h’) Ï A i+1 sono indicati solo i lavori rifiutati in Ak o assenti in A0 Jq (h) pq (h) = Jq (h’’) pq (h’’) = Sia h il valore per cui $ Jr =Jq(h) ($ h sempre,perché i Jq sono più dei Jr): allora Jq(h) Î A i+1 pq(i+1) = pq(h) £ pr(i+1)