Abbiamo l'obbligo di essere in grado di abbinare le persone con le posizioni in base alla disponibilità e a determinate condizioni.
Diciamo che ho un gruppo di persone ognuna con 3 tipi di cose che potrebbero aver bisogno di parcheggiare. Una macchina, un camion e una barca. Ogni persona indica anche la posizione di parcheggio preferita (scelte 1, 2 e 3).
Ho anche una lista di parcheggi che possono gestire un certo numero di ciascuna di queste cose. L'obiettivo è quello di abbinare tutti in modo che il massimo utilizzo. Il requisito principale è che ogni singola persona debba essere in grado di parcheggiare tutto nella stessa posizione OPPURE di non parcheggiare affatto.
Esempio:
A partire dalle posizioni di parcheggio che ho:
Lot Cars Trucks Boats
A 2 0 2
B 2 1 3
C 0 5 0
Per le persone che ho:
Person Cars Trucks Boats Choice 1 Choice 2 Choice 3
Tom 2 1 0 A B C
Betty 1 0 1 B C A
Sam 0 2 0 C A B
Pat 3 2 1 A C B
Il mio pensiero iniziale è quello di ordinare semplicemente le persone in base al numero di elementi che hanno (dal più grande al più piccolo). Quindi provare a posizionare ciascuno in base alla scelta. IE: proverei a posizionare Pat prima (la maggior parte degli oggetti), ma non potrei perché non c'è molto che soddisfi i requisiti. Poi proverei Tom, che andrebbe in Lot B. Etc.
Conosci qualche problema con questo approccio?
Punti bonus: esiste un nome per questo tipo di problema?