Questo è qualcosa che ho fatto per una compagnia di viaggi in autobus molto tempo fa e non sono mai stato contento dei risultati. Recentemente stavo pensando a quel vecchio progetto e ho pensato di rivisitare quel problema.
Problema:
La compagnia di autobus ha diversi autobus con diverse capacità passeggeri (ad es. 15 autobus da 50 passeggeri, 25 autobus da 30 passeggeri ... ecc.). Si sono specializzati nell'offrire trasporto a gruppi molto grandi (oltre 300 passeggeri per gruppo). Poiché ogni gruppo deve viaggiare insieme, è necessario gestire la propria flotta in modo efficiente per ridurre gli sprechi.
Ad esempio, 88 passeggeri sono meglio serviti da tre autobus da 30 passeggeri (2 posti vuoti) che da due autobus da 50 passeggeri (12 posti vuoti). Un altro esempio, 75 passeggeri sarebbero meglio serviti da un autobus da 50 passeggeri e un autobus da 30 passeggeri, un mix di tipi.
Qual è un buon algoritmo per farlo?