Questo è qualcosa che ho fatto per una compagnia di viaggi di autobus molto tempo fa, e non sono mai stato contento dei risultati. Stavo pensando a quel vecchio progetto di recente e ho pensato di rivisitare quel problema.
Problema:
La compagnia di viaggi di autobus ha diversi autobus con diverse capacità di passeggeri (ad esempio 15 autobus di 50 passeggeri, 25 autobus di 30 passeggeri ... ecc.). Si sono specializzati nell'offrire trasporti 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.
Che cos'è un buon algoritmo per fare questo?