Considera il seguente problema:
Descrizione :
Ci sono n lavori J 1 ... J n con tempi di ciclo C 1 .... C n . Trova un quantum del tempo e una tabella di pianificazione considerando che:
- qualsiasi elemento della tabella contiene al massimo un lavoro
- il gestore lavori elaborerà un elemento alla volta, ad esempio eseguirà il lavoro (se presente) quindi, dopo che un tempo quantum passa, passerà all'elemento successivo.
- il gestore lavori eseguirà il loopback, ovvero dopo l'ultimo elemento continuerà con il primo.
- la ciclicità deve essere mantenuta, ovvero la distanza tra due eventuali occorrenze consecutivi (compresi i loopback) del lavoro J k (k = 1, n) deve essere uguale a C k / tempo quantum .
- la tabella deve essere il più breve possibile.
Esempio :
- J 1 - 4 secondi ciclicità
- J 2 - 6 secondi ciclicità
- J 3 - ciclicità di 8 secondi
Soluzione di esempio :
tempo quantum = 1 s
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 seconds
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|J1|J2|J3| |J1| | |J2|J1| |J3| |J1|J2| | |J1| |J3|J2|J1| | | |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
La mia sensazione è che questo appartiene alla famiglia dei problemi di pianificazione e che potrebbe essere un caso speciale di un problema più generale. È così? Ho provato a cercarlo online ma non ho trovato nulla di simile. Dal momento che non ho alcuna esperienza con i problemi di pianificazione non sono nemmeno sicuro di cosa cercare.
Da quello che vedo:
- la durata totale della tabella di pianificazione dovrebbe essere il multiplo comune più piccolo di C 1 ... C n .
- il tempo quantico dovrebbe essere almeno GCD (C 1 , ..., C n ) / n. - Questa non è necessariamente la soluzione ottimale.
Questo mi porta a credere che esista una soluzione diretta e non una che coinvolga la programmazione dinamica. È così?
Qualcuno potrebbe indicarmi alcune risorse, forse anche un algoritmo, per questo problema?
Sono anche curioso di variazioni in cui i lavori possono essere distribuiti tra più di una tabella di pianificazione.
GCD = Greatest Common Divider
Modifica : non sto chiedendo come pianificare N lavori con determinati tempi di ciclo; Sono sicuro che ci sono modi più dinamici per farlo come alcuni hanno suggerito. Il mio problema è " Trova un quantum del tempo e una tabella di pianificazione considerando che: [...] ". È anche possibile che possa avere le sue radici in alcune parti della matematica.