Eu tenho um conjunto de agentes e um conjunto de n tarefas, e preciso atribuir cada agente a exatamente uma tarefa, para que o custo seja minimizado. Alguns agentes são incompatíveis com algumas tarefas.
Eu tenho uma implementação do algoritmo húngaro que leva cerca de um minuto para resolver para o meu matriz. Para tarefas proibidas, defino o custo para ∞ . ( Sempre existe uma solução viável no meu problema).
Também o configurei como um programa binário no CPLEX, que leva cerca de 9 segundos para resolver o mesmo problema. O modelo BIP exclui atribuições proibidas imediatamente, omitindo essas variáveis.
Ainda não investiguei a configuração como um modelo de rede no CPLEX, mas esse provavelmente será o meu próximo passo. Há, no entanto, um custo de desempenho na comunicação com o CPLEX, portanto, tenho certeza de que um algoritmo dedicado deve obter melhor desempenho.
Esse problema de correspondência bipartida é um kernel dentro de outro algoritmo de pesquisa iterativo; portanto, ele deve ser executado o mais rápido possível .
Existe algum algoritmo que eu possa implementar que superará o algoritmo húngaro nesse caso? Ou você tem outras sugestões sobre como posso melhorar o desempenho deste kernel?