Oltre ai problemi già trattati nella lezione precedente, tra i problemi a macchina singola ci sono altri problemi di particolare interesse. Tra questi i problemi
1 |sij| Cmax
Sequenziamento di operazioni in presenza di tempi di setup sij
1 || Σδj
Minimizzazione del numero di operazioni in ritardo
1 |sij| Cmax
Problema del sequenziamento di operazioni su una macchina
Siano date n operazioni da assegnare ad una macchina. Siano:
Si individui il sequenziamento delle operazioni che minimizzi il Cmax
(vedi figura)
Poiché i tempi di processamento sono fissati minimizzare il Cmax equivale a minimizzare la somma dei tempi di setup.
1 |sij| Cmax
Problema del sequenziamento di operazioni su una macchina
Il problema può essere ridotto ad un problema di TSP con n+1 nodi.
Appartiene alla clesse dei problemi NP-hard.
Per la sua risoluzione si possono adottare le tecniche euristiche utilizzabili per la risoluzione del TSP.
1 || Σδj
Minimizzazione del numero di operazioni in ritardo
Siano date n operazioni da assegnare ad una macchina. Siano:
Si individui il sequenziamento delle operazioni che minimizzi il numero di operazioni in ritardo Σδj.
Il problema è di tipo polinomiale e pertanto si può individuare la soluzione ottima attraverso l’algoritmo che viene descritto.
1 || Σδj
Si punta ad una soluzione che prevede prima l’esecuzione delle operazioni che si completano in anticipo rispetto alla scadenza e poi delle operazioni in ritardo (l’ordine secondo il quale le operazioni in ritardo vengono effettuate è del tutto irrilevante)
Per descrivere l’algoritmo in grado di individuare la soluzione ottima, considerando l’iterazione generica k, si indichi con
1 || Σδj
Alla iterazione k, si considera l’operazione j* di J”k che presenta il tempo di scadenza minore (regola EDD) e si ipotizza di schedularla a partire dal tempo di completamento dell’ultima operazione di Jk.
Se j* viene completata prima della propria scadenza, viene eseguita.
Se il suo tempo di completamento supera la scadenza, si individua l’operazione j** di Jk, provvisoriamente inserita nella sequenza, che presenta il tempo di processamento maggiore e si stabilisce definitivamente di schedularla in ritardo L’operazione j** viene così inserita nell’insieme J’k+1.
La procedura si arresta quando sono state analizzate tutte le operazioni.
1 || Σδj
1. Inizializzazione
Si pone k=0, Jo=Ø, J‘o=Ø, J“o=J e t=0.
2. Analisi di un nuovo elemento
Si individua l’operazione j* di J“k con il minimo tempo di scadenza (regola EDD) e la si inserisce in Jk+1=Jk∪{j*}.
Se Cj*=t+pj*>dj*, si individua j**∈j‘k+1 con tempo di processamento massimo che viene schedulata definitivamente in ritardo.
Quindi si pone Jk+1= Jk+1-{j**} e J’k+1=J’k∪{j**};
J”k+1=J“k-{j*}, t=Σj∈Jkpj, k=k+1.
3. Criterio di arresto
Se J“k=Ø l’algoritmo si arresta; si schedulano le operazioni di Jk secondo l’ordine individuato e le operazioni di J‘k secondo un ordine qualsiasi. In caso contrario si ritorna al passo 2.
I problemi su macchine parallele sono, in generale, più complessi dei rispettivi problemi su macchina singola.
Anche per questi problemi si applica il metodo delle liste di priorità (dispatching rules) a condizione di assegnare l’operazione alla macchina con più scarica, ovvero con il tempo di completamento minore.
Per alcuni problemi, scelta opportunamente la regola di priorità, il metodo ottiene la soluzione ottima.
Il metodo delle regole di priorità (dispatching rules)
1. Inizializzazione
Si ordinano le operazioni secondo una regola di priorità (j1,… jn) e si costruisce la soluzione parziale S={j1}.
2. Scelta elemento da aggiungere alla soluzione parziale
All’iterazione k si sceglie l’operazione jk, si assegna alla macchina più scarica e la si schedula al più presto in modo da rispettare i vincoli presenti
3. Criterio di arresto
Se tutte le operazioni sono state schedulate, l’algoritmo si arresta, altrimenti si torna al passo 2.
Pm||Cmax Pm|| ΣwjCj Pm||Lmax
Pm||Cmax
Problema NP-hard. Per una buona soluzione si può applicare la regola LPT.
Pm|| ΣwjCj
Problema polinomiale. La regola WSPT individua la soluzione ottima.
Pm||Lmax
Problema NP-hard. Per una buona soluzione si può applicare la regola EDD.
Pm|preemptive|Cmax
Problema polinomiale.
Rappresenta un rilassamento del problema P||Cmax dal momento che è possibile frazionare l’esecuzione di un’operazione. Di conseguenza la sua soluzione ottima C*max rappresenta un limite inferiore per il problema P||Cmax
In pratica la soluzione ottima è pari a (Σpj/m) quando è possibile ottenere il bilanciamento perfetto, mentre è pari a (max pj) quando è presente un’operazione con tempo di processamento maggiore di (Σpj/m).
1. Introduzione al corso di Ricerca operativa II
2. Generalità e classificazione dei sistemi di produzione
3. La logistica dei sistemi di produzione
4. Introduzione all'ottimizzazione combinatoria
5. Fondamenti di teoria della complessità computazionale
6. Algoritmi euristici costruttivi e migliorativi
10. Problemi di Localizzazione
12. Introduzione alla gestione delle scorte
13. Modelli stocastici per la gestione delle scorte
14. Modelli discreti per la gestione delle scorte
15. Introduzione allo scheduling
16. Scheduling su macchina singola
17. Problemi di scheduling su macchina singola e su macchine parall...