Sto cercando di automatizzare un'attività e mi manca il vocabolario giusto per cercare l'algoritmo corretto. Sembra davvero un problema comune che è stato probabilmente risolto molte volte prima.
Tutto quello che sto cercando è che qualcuno mi indichi la direzione giusta o mi aiuti con i giusti termini di ricerca per cercare una soluzione / algoritmo. Se ti capita di sapere di una libreria actuall (javascript), allora ancora meglio.
Scenario creato
Dire che ho 3 "secchi", Bucket A
, Bucket B
e Bucket C
. Ognuno di questi può contenere un certo numero di "palle".
-
Bucket A
: Capacity 10 balls. -
Bucket B
: Capacity 15 balls. -
Bucket C
: Capacità 5 palline.
Ora, ho anche un inventario di palle e ognuno può solo
essere messo in certi "secchi".
Una palla può andare solo in Bucket 2
, la palla successiva può entrare
Bucket 1
OR Bucket 3
e così via.
Ora ... ho bisogno di determinare il modo migliore per posizionare le palle per cercare di riempire ogni "secchio" alla sua capacità (o il più vicino possibile).
Scenario reale
Il mio vero motivo è di pianificare people
(palle) per visitare locations
(bucket) per un numero di ore richiesto (capacità del bucket). Però,
a causa dei seguenti motivi tutte le librerie / algoritmi che ho trovato durante la ricerca di "pianificazione" finora
non funziona nel mio scenario.
- Non mi interessa affatto le ore di inizio / fine, solo
person
- > %codice% - Le mie persone (palle) hanno tutte un elenco rigoroso di luoghi che possono visitare. Ognuno è unico.
- Ogni persona è disponibile per un numero arbitrario di intere ore (intere) che possono trascorrere a esattamente una
location
. Utilizzare qualcuno disponibile per 8 ore solo per 7 di queste ore è OK. - Ogni posizione (bucket) richiede un certo numero di ore che cerco di soddisfare al meglio delle mie capacità con qualsiasi combinazione di persone.
Ho ~ 50 località e ~ 100 persone. Non è un requisito che ottengo una soluzione perfect , ma "abbastanza vicino".
Ho trovato schedule.js che sembra fantastico, ma non sono riuscito ad abusarne per soddisfare le mie esigenze.