Sto lavorando su un problema simile alla programmazione della catena di montaggio con la programmazione dinamica. Il problema è che, diversamente dal classico problema in cui abbiamo stazioni predefinite, ora ho solo informazioni su quale attività dovrebbe essere eseguita prima di quale altra (potrebbe essere più di una ) attività.
Devo scoprire quali compiti mettere su quale linea minimizzare il tempo totale impiegato dalla produzione. Ovviamente, se i compiti sono su una singola riga, essi vengono eseguiti in modo seriale e quindi sono più lenti.
Quindi ho i seguenti problemi
- Come posso creare livelli / linee basati sul tempo poiché non ho una sequenza di tutte le attività? So solo quale attività viene eseguita prima di quale (una o più) attività. I livelli basati sul tempo sono necessari in quanto devo ridurre al minimo il tempo (cosa che succederebbe quando le attività sono eseguite in parallelo).
- Come posso determinare l'ordine ottimale delle attività per ridurre al minimo il tempo? Poiché diverse attività sarebbero in attesa di una singola attività, devo minimizzare anche questa volta.
- Come il problema originale, anche la comunicazione tra linee diverse avrebbe un costo. Devo determinare se questo costo di comunicazione vale la pena spostare l'attività su una riga separata (dalla sua attività di comunicazione)
tl; dr : una versione parallela della pianificazione della catena di montaggio (programmazione dinamica) in cui tutte le linee potrebbero essere occupate allo stesso tempo e non ho numerazioni / ordini di stazioni. So solo quali attività devono essere eseguite prima di quale.
Devo decidere quali compiti mettere sulla stessa linea e quali compiti mettere sulle diverse linee (dato il tempo di comunicazione quando le attività sono su linee diverse) per minimizzare il tempo di produzione.