Nei problemi multifase ogni job è individuato da una sequenza di operazioni, tali che due operazioni consecutive sono eseguite su macchine diverse.
Con la terna (i, j, k) si indicherà l’operazione j relativa al job i da eseguirsi sulla macchina k. Ad esempio (1,2,4) indica l’operazione 2 del job 1 sulla macchina 4.
Due operazioni consecutive dello stesso job i sono indicate da (i, j, k) e (i, j+1, k’) dovendo essere k≠k’.
I problemi fondamentali di tipo multifase sono i problemi:
Flow Shop
Tutti i jobs sono costituiti dalla stessa successione di operazioni.
Open shop
Tra le operazioni di ciascun job non ci sono vincoli di precedenza.
Job Shop
I jobs possono essere costituiti da un diverso numero di operazioni e/o diverse sucessioni di operazioni.
Siano dati
Per definire un Job Shop è necessario fornire:
Una soluzione di un problema di scheduling può essere:
Senza ritardo
Se non si verifica mai che una macchina, pur potendo effettuare un’operazione, resti inattiva.
Attiva
Se, per anticipare il completamento di una qualsiasi operazione, si provoca un ritardo nel completamento di altre operazioni.
Non attiva
Se non è attiva.
Una soluzione senza ritardo è anche attiva. Una soluzione attiva può essere con ritardo.
La soluzione ottima di un problema di scheduling è una soluzione attiva ma non necessariamente senza ritardo.
I problemi Job Shop sono in generale molto complessi.
Con riferimento al problema con obiettivo Cmax si analizzeranno i problemi:
J2 |nj≤2| Cmax
(Job Shop su 2 macchine in cui ogni job è costituito al massimo da 2 operazioni)
Problema polinomiale risolvibile con la regola di Jackson.
Jm || Cmax (m≥3)
Problema NP-hard.
Regola di Jackson per J2 |nj≤2| Cmax
Si suddividono i jobs in 4 sottoinsiemi:
J12 jobs che passano per la macchina 1 e poi per la macchina 2;
J21 jobs che passano per la macchina 2 e poi per la macchina 1;
J1 jobs da processare solo sulla macchina 1;
J2 jobs da processare solo sulla macchina 2;
e si assegnano alle macchine secondo il seguente ordine:
macchina 1: J12, J1, J21;
macchina 2: J21, J2, J12;
Poiché i jobs di J12 (J21) sono tutti caratterizzati dalla stessa sequenza di operazioni 1→2 (2→1) per la loro schedulazione è possibile utilizzare la regola di Johnson per un problema F2||Cmax.
Metodo per la generazione di soluzioni attive
Sintesi della procedura
1. Inizializzazione
Si pone t=1, S1=Ø; O1 è costituito dall’insieme delle prime operazioni di ogni job (O1={(i,1,k): i∈J}.
2. Selezione nuovo elemento da aggiungere alla soluzione parziale
Si calcola C(Ot)=min(i,j,k)∈Ot {rijk+pijk}
Si indica con k‘ la macchina corrispondente a C(Ot) e con O‘t={(i,j,k’): (i,j,k’)∈Ot, rijk’<C(Ot)}
Si schedula al più presto un’operazione (i’,j’,k’)∈Ot a caso o secondo un criterio prestabilito.
Si pone St+1=St∪{(i’,j’,k’)}, Ot+1=Ot-(i’,j’,k’)}∪{i’,j’+1,k’}
3. Criterio di arresto
Se la schedulazione è completa (Ot =Ø), l’algoritmo si arresta; altrimenti si ritorna al passo 2.
Metodo per la generazione di soluzioni senza ritardo
Una schedulazione senza ritardo, oltre ad essere attiva, non deve lasciare in nessun istante una macchina inattiva nel caso tale macchina possa processare qualche operazione.
La procedura è simile a quella per le soluzioni attive con la differenza che, all’interno di Ot, si seleziona l’operazione con il tempo di rilascio minore e si schedula a partire da esso: in questo modo la macchina non è mai lasciata inattiva.
2. Selezione nuovo elemento da aggiungere alla soluzione parziale
Si calcola ri’j'k’=min(i,j,k’)∈Ot rijk e si pone St+1= St∪{(i’,j’,k’)} e
Ot+1=Ot-{(i’,j’,k’)}∪{i’,j’+1,k’} e t=t+1.
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...