Problema Ho n lavori da pianificare in P secondi su un numero illimitato di macchine con dipendenze tra i lavori, ad es. per ogni lavoro c'è una serie di lavori che devono essere programmati solo dopo che questo lavoro è finito. Il profitto per la pianificazione del lavoro i th in j th secondo su qualsiasi macchina è f (i, j), che è positivo.
E il mio obiettivo è massimizzare il profitto totale pianificando ogni lavoro esattamente una volta al massimo P secondi.Massimizza il profitto nelle attività dell'unità di pianificazione con dipendenze
Possiamo presumere che tutti i lavori possano essere programmati in P secondi sempre.
Tutto è noto in anticipo, ovvero un problema non in linea.
Anche 0 < = f (i, j) < = B. per tutto io, j.
e il numero di dipendenze è di O (n).
È questo problema facile? [Può essere causa di vincoli finiti]
Il mio approccio
Per semplicità, in primo luogo supporre che per un lavoro il suo profitto non dipende dal tempo.
Questo è f (i, j) è indipendente da j per tutti i e dipende solo da i.
Quindi funzionerà qualsiasi ordinamento topologico che si adatti a P secondi.
Se non c'è dipendenza, anche noi scegliamo il tempo di guadagno più alto per ogni lavoro e anche questo è facile.
Ma il problema è quando il profitto per un lavoro varia nel tempo con le dipendenze, in questo caso, non riesco a pensare ad alcun algoritmo generale.
Ho problemi a gestire le dipendenze tra i lavori. Esistono risorse per gli algoritmi di pianificazione delle attività dipendenti delle unità online?
Si prega di condividere qualsiasi idea che può aiutare ...
Aggiornamento: ho aggiunto i limiti per i vari parametri in quanto potrebbero essere necessari per l'analisi del problema.
I lavori vengono completati in 1 secondo? Cioè, se un lavoro è pianificato all'ora j, allora qualsiasi lavoro dipendente può essere eseguito al momento j + 1?Dato che sappiamo tutto in anticipo, è sempre possibile forzare la soluzione, ma presumo che tu stia chiedendo se esiste qualcosa di meglio. – dohashi
sì, qualsiasi lavoro dipendente IMMEDIATO può essere programmato al tempo j + 1 secondo. La forza bruta naive è molto inefficiente ed esponenziale per questo problema – v78
Forse puoi leggere l'editoriale quando viene pubblicato: http://www.codechef.com/DEC14/problems/RIN –