Ho un problema del mondo reale che sto cercando di rappresentare e automatizzare. L'ho semplificato e riassunto in basso:
- Ci sono n posti di lavoro (P1, P2, ..., Pn).
- Ogni luogo, Pn ha una chiave, Kn.
- Ci sono m lavoratori, (W1, W2, ..., Wm).
- Per lavorare in Pn, un lavoratore deve tenere premuto Kn.
- Ogni chiave può essere conservata da un lavoratore o lasciata allo scambio, E.
-
Un lavoratore può effettuare un viaggio nello scambio in qualsiasi momento per prelevare alcune chiavi non reclamate o rilasciare alcune chiavi che altri possono usare.
-
Ora, c'è un programma di lavoro esogeno che deve essere completato in un ordine rigoroso. Ad esempio:
- 2016-04-21 W1 deve funzionare su P6
- 2016-04-21 W2 deve funzionare su P3
- ** necessario lo scambio di chiavi **
- 2016-04-22 W3 deve funzionare su P3
- 2016-04-22 W2 deve funzionare a P6
-
Un numero qualsiasi di lavoratori potrebbe dover lavorare a Pn in qualche momento nel loro pianificazione, anche se mai nello stesso giorno
Sappiamo:
- La posizione iniziale di tutte le chiavi, sia con worker che con E
- I futuri ordini di lavoro che ciascun lavoratore dovrà soddisfare
Quindi, sto lottando per modellare questa intera situazione. Puoi suggerire strutture e algoritmi di dati che dovrei guardare per controllarlo e iniziare a ottimizzare i viaggi nello scambio per ciascun lavoratore?
Quello che voglio minimizzare è il numero totale di viaggi verso E. Un obiettivo secondario sarebbe quello di garantire che nessun lavoratore faccia un numero sproporzionato di viaggi.
Grazie in anticipo !!