Isso foi algo que fiz para uma empresa de viagens de ônibus há muito tempo e nunca fiquei feliz com os resultados. Eu estava pensando naquele projeto antigo recentemente e pensei em revisitar esse problema.
Problema:
A empresa de viagens de ônibus possui vários ônibus com diferentes capacidades de passageiros (por exemplo, 15 ônibus de 50 passageiros, 25 ônibus de 30 passageiros ... etc). Eles se especializaram em oferecer transporte para grupos muito grandes (mais de 300 passageiros por grupo). Como cada grupo precisa viajar juntos, eles precisam gerenciar sua frota com eficiência para reduzir o desperdício.
Por exemplo, 88 passageiros são mais bem servidos por três ônibus de 30 passageiros (2 lugares vazios) do que por dois ônibus de 50 passageiros (12 lugares vazios). Outro exemplo: 75 passageiros seriam melhor atendidos por um ônibus de 50 passageiros e um de 30 passageiros, uma mistura de tipos.
O que é um bom algoritmo para fazer isso?