Considerare la pianificazione , il compito di assegnare lavori con determinate durate e scadenze alle macchine. Assumiamo un tempo discreto. Molti di questi problemi sono NP (O) -hard.
1∣ri∣Lmax
- su una macchina
- problemi con le date di uscita e noi
- minimizzare il ritardo massimo , ovvero la differenza massima tra scadenza e tempo di completamento su tutti i lavori.Lmax
La versione decisionale di questo problema è NP-difficile; questo può essere visto dalla riduzione da 3PARTITION .
È interessante notare che, se consentiamo la prelazione , ovvero lo scambio di lavori attivi, il problema può essere risolto in tempo quadratico dalla prima euristica Prima scadenza prima euristica (con date di scadenza modificate). È facile vedere che la soluzione ottimale di questa variante non può essere peggiore della soluzione ottimale del problema originale.
Ora, per applicare Branch & Bound a questo problema, dobbiamo correggere alcuni parametri:
- Calcoliamo limiti inferiori consentendo la prelazione e utilizzando EDD.
- Ci ramifichiamo fissando tutti i lavori non programmati come il prossimo.
- Andiamo dal bambino con i limiti inferiori piccoli per primi.
Devi farlo per ogni applicazione di B&B.
Per un esempio concreto, considerare questa istanza di :1∣ri∣Lmax
ipiridi1408221123631145510
con i tempi di elaborazione dei lavori, le date di rilascio e le date di scadenza.r i d ipiridi
Eseguendo B&B come sopra specificato, ciò accade:
Questa GIF non esegue il loop. Ricaricalo in una nuova scheda per vedere dall'inizio.
[ fonte ] [ versione statica ]
Si noti che su 41 nodi, solo quattro vengono visitati correttamente e solo per dieci vengono calcolati limiti inferiori.