Skip to content

Início / Pesquisa Operacional / Calculadora do Problema de Designação

Pesquisa Operacional e Otimização

Calculadora do Problema de Designação (Método Húngaro)

Em resumo: o problema de designação emparelha agentes com tarefas um a um ao melhor total. Informe uma matriz de custo ou valor abaixo e escolha minimizar ou maximizar, e este solucionador com método húngaro devolve a designação ótima e o total, tratando números desiguais de agentes e tarefas automaticamente.

Resolva um problema de designação

emparelhe agentes com tarefas um a um → método húngaro → custo ou lucro total ótimo

Total ótimo

49

Informe uma matriz de custos para encontrar a designação ótima.

O que o problema de designação resolve

O problema de designação responde a uma pergunta que se repete em operações: dados um conjunto de agentes e um conjunto de tarefas, onde cada agente pode realizar cada tarefa a um custo ou com um valor conhecido, como emparelhá-los um a um para que o total seja o melhor? Cada agente pega exatamente uma tarefa e cada tarefa vai para exatamente um agente, e o objetivo é minimizar o custo total, de tempo, dinheiro ou distância, ou maximizar o valor total, de lucro, produção ou preferência. É o modelo por trás de escalar trabalhadores para trabalhos, máquinas para ordens, equipes para rotas, projetos para times e até jogadores para posições, sempre que o emparelhamento seja exclusivo e cada combinação carregue o seu próprio número.

O que torna o problema limpo é a exclusividade do emparelhamento. Como cada agente e cada tarefa são usados uma vez, a decisão é uma permutação, um emparelhamento, e o melhor pode ser encontrado de forma exata e rápida em vez de buscado por tentativa e erro. O número de designações possíveis cresce explosivamente com o tamanho, então verificá-las todas é inútil mesmo para problemas modestos, mas a estrutura especial faz com que um algoritmo dedicado, o método húngaro, vá direto ao ótimo. E como o seu pai, o problema de transporte, o problema de designação sempre devolve uma designação inteira limpa, nunca uma fracionária, porque essa mesma estrutura de rede garante soluções inteiras.

Esta calculadora encontra a designação ótima um a um para qualquer matriz de custo ou valor que você informar. Digite um agente por linha com um custo para cada tarefa, escolha minimizar ou maximizar, e ela devolve qual agente pega qual tarefa, o total ótimo e, quando os números de agentes e tarefas diferem, quais agentes ou tarefas ficam sem designação. Destaca as células escolhidas na matriz, plota o valor de cada emparelhamento e lida com os problemas retangulares automaticamente. Tudo roda no seu navegador e nada do que você informa é armazenado.

Como esta calculadora funciona, passo a passo

Comece escolhendo o objetivo. Selecione minimizar quando a matriz contém custos, tempos ou distâncias que você quer o menor possível, e maximizar quando contém lucros, pontuações ou produções que você quer o maior possível. Depois informe a matriz: um agente por linha, e em cada linha o custo ou valor daquele agente ao fazer cada tarefa, separados por espaços ou vírgulas, com as tarefas na mesma ordem entre linhas. A calculadora abre com uma minimização resolvida de quatro agentes e quatro tarefas já preenchida, para que você veja uma designação ótima completa e o seu total antes de mudar qualquer coisa.

Assim que a matriz é válida a ferramenta a resolve com o método húngaro. Se a matriz não é quadrada, ela a preenche até quadrada com agentes ou tarefas fictícios a custo zero para que o algoritmo possa rodar, depois retira os fictícios da resposta reportada. Para uma maximização primeiro converte os valores a uma forma de custo equivalente, resolve e traduz de volta, então o total que reporta está nas unidades que você informou. Todo o cálculo é instantâneo e roda de novo ao vivo enquanto você edita, então você pode ver como mudar um único custo reorganiza o emparelhamento ótimo.

O painel de resultados encabeça com o total ótimo, depois mostra a matriz de custos com as células escolhidas destacadas, para que você leia a designação num relance: cada célula destacada é um emparelhamento agente-tarefa no plano ótimo. Abaixo, uma nota indica se minimizou ou maximizou e lista quaisquer agentes ou tarefas sem designação quando o problema está não balanceado. Um gráfico mostra o custo ou valor de cada emparelhamento escolhido, o que aponta os emparelhamentos mais e menos custosos. Baixe um PDF ou CSV da designação ou compartilhe; tudo acontece localmente.

Como o método húngaro chega ao ótimo

O motor por trás desta calculadora é o método húngaro, o algoritmo projetado especificamente para o problema de designação, e a sua lógica é elegante o bastante para acompanhar mesmo que a calculadora faça a aritmética. Ele se apoia em uma observação simples: subtrair uma constante de cada entrada de uma linha, ou de uma coluna, não muda qual designação é ótima, porque cada designação completa usa exatamente uma célula daquela linha ou coluna e assim é reduzida pela mesma constante. O método usa essa liberdade para criar zeros. Subtrai a menor entrada de cada linha daquela linha, depois a menor de cada coluna daquela coluna, para que cada linha e coluna tenha ao menos um zero.

Com os zeros expostos, o objetivo se torna encontrar uma designação completa que use apenas células de custo zero, que então seria ótima na matriz reduzida e portanto na original. Se tal designação existe, o método termina.

Se não, cobre todos os zeros com a menor quantidade possível de linhas por linhas e colunas, encontra a menor entrada não coberta, a subtrai de todas as entradas não cobertas e a soma às entradas cobertas duas vezes, o que cria novos zeros sem perder a estrutura anterior, e tenta de novo.

Cada rodada aproxima uma designação completa de custo zero, e o processo está garantido a terminar no ótimo em um número de passos que cresce apenas como o cubo do tamanho da matriz. Esta calculadora implementa uma versão eficiente em tempo cúbico exatamente desse procedimento, então devolve a designação ótima comprovada com rapidez mesmo para matrizes grandes.

Vale apreciar o quanto essa eficiência importa, porque a alternativa é inútil. Uma busca por força bruta tentaria cada emparelhamento um a um possível, e o número desses cresce como o fatorial do tamanho da matriz: um problema cinco por cinco tem 120 designações, um dez por dez tem mais de três milhões, e um quinze por quinze tem mais de um trilhão, além de qualquer enumeração prática.

O método húngaro contorna essa explosão por completo trabalhando sobre a estrutura de custos e não sobre as designações, chegando ao ótimo em um número de operações que cresce apenas com o cubo do tamanho, então dobrar o problema multiplica o trabalho por cerca de oito em vez de por um fator astronômico.

Essa distância entre fatorial e cúbico é precisamente por que existe um algoritmo dedicado e por que o problema de designação é considerado resolvido de uma forma em que muitos problemas combinatórios superficialmente parecidos não estão.

Cinco exemplos resolvidos que você pode seguir

Exemplo 1: o quatro por quatro padrão

A calculadora abre minimizando uma matriz de custos de quatro agentes e quatro tarefas, e a designação ótima tem um custo total de 49. Ler as células destacadas mostra qual agente é emparelhado com qual tarefa, e você pode confirmar que cada agente tem exatamente uma tarefa e cada tarefa exatamente um agente. Esta é a forma canônica do problema: uma matriz quadrada, uma minimização e um ótimo de aparência única, e é um bom ponto de partida para mudar um único custo e observar como toda a designação se reorganiza em resposta, o que muitas vezes surpreende.

Exemplo 2: maximizar em vez disso

Mude o objetivo para maximizar e leia a mesma matriz como valores, digamos uma tabela do lucro que cada vendedor geraria em cada território. Agora a calculadora encontra a designação um a um com o maior total, emparelhando pessoas com territórios para maximizar o lucro combinado. A troca é um único controle, e demonstra que o modelo é agnóstico quanto à direção: custo a minimizar ou valor a maximizar, o método húngaro resolve ambos, e o resultado é reportado nas unidades que você informou, então o total se lê direto como reais, horas ou pontos.

Exemplo 3: mais agentes que tarefas

Informe uma matriz com mais linhas que colunas, digamos cinco trabalhadores mas só três trabalhos. A calculadora preenche a matriz com tarefas fictícias a custo zero, resolve e reporta os três emparelhamentos ótimos trabalhador-trabalho mais os dois trabalhadores sem designação. Esses agentes sem designação são a resposta prática a quem fica ocioso nesta rodada sob o plano mais barato, o que importa quando você decide não só como designar mas quem manter de reserva, e é informação que a matriz crua não te entrega até resolver o problema.

Exemplo 4: mais tarefas que agentes

O caso inverso é igualmente comum: mais trabalhos que pessoas para fazê-los. Informe mais colunas que linhas, e a calculadora preenche com agentes fictícios, resolve e reporta quais tarefas ficam sem fazer no plano ótimo. Isso diz não só como distribuir as pessoas que você tem para o maior efeito, mas exatamente qual trabalho não será coberto, para que você decida se contratar, adiar ou terceirizar as tarefas sobrantes. Tornar explícita a falta é uma das forças silenciosas de resolver o modelo em vez de designar à mão.

Exemplo 5: um caso verificável à mão

Experimente uma pequena matriz três por três onde você possa verificar a resposta sozinho, por exemplo custos que tornem um emparelhamento obviamente o mais barato. Com apenas seis designações possíveis em um problema três por três, você pode enumerá-las no papel e confirmar que a calculadora escolhe o mínimo, o que constrói confiança antes de confiar nela em uma matriz maior onde a enumeração é impossível. Um empate, onde duas designações distintas compartilham o total mais baixo, também vale a pena tentar: a calculadora devolve uma delas, e ver que uma resposta diferente igualmente ótima não está errada é uma lição útil.

Três dicas de especialista para uma solução limpa

Mantenha a matriz retangular e alinhada

Cada linha deve ter uma entrada por tarefa, na mesma ordem. A ferramenta balanceia as contagens desiguais por você, mas um custo deslocado ou faltando dentro de uma linha resolve em silêncio um problema diferente.

Leia a lista de sem designação

Em um problema não balanceado, os agentes ociosos ou as tarefas não cobertas são resultado real. Dizem quem sobra ou o que não será feito, que muitas vezes é a decisão que você de fato enfrenta.

Ajuste a direção à meta

Minimize custos e tempos; maximize lucros e pontuações. Resolver a direção errada dá uma resposta tecnicamente correta à pergunta oposta, então confirme o interruptor antes de confiar no total.

Minimizar ou maximizar: o mesmo modelo, duas direções

Uma das conveniências do modelo de designação é que ele lida tanto com a minimização quanto com a maximização sem mudança no método, apenas uma transformação dos números. Quando você quer o emparelhamento mais barato ou rápido, informa custos ou tempos e minimiza diretamente. Quando você quer o emparelhamento mais lucrativo ou de maior pontuação, informa valores e maximiza, e o truque padrão é converter a maximização em uma minimização subtraindo cada valor do maior valor da matriz. Isso vira o problema para que os emparelhamentos mais valiosos se tornem as células de menor custo, o método húngaro minimiza como sempre, e a designação que encontra é exatamente a que maximiza o total original.

Esta calculadora faz essa conversão por você quando você seleciona maximizar, e reporta a resposta de volta nas suas unidades originais, então o total que você vê é o lucro ou a pontuação máximo real, não a cifra transformada.

A conclusão prática é que uma única ferramenta cobre uma ampla gama de decisões reais que parecem diferentes mas compartilham a mesma estrutura: designar trabalhadores a trabalhos para minimizar o custo de mão de obra, designar vendedores a regiões para maximizar a receita, designar máquinas a ordens para minimizar o tempo de preparação, designar formandos a vagas para maximizar a satisfação de preferências.

O que as une é a exclusividade um a um e um total aditivo, e uma vez que um problema se encaixa nessa forma, escolher minimizar ou maximizar é a única decisão que você precisa tomar sobre a direção. Acertar esse interruptor importa, porque minimizar uma matriz de lucro ou maximizar uma de custo produz uma resposta de aparência válida mas exatamente errada.

Um caso especial do problema de transporte

O problema de designação não é uma espécie separada do problema de transporte; é o problema de transporte com cada oferta e cada demanda fixadas em um. Cada agente é uma origem com uma unidade a dar, cada tarefa é um destino que precisa de uma unidade, e o custo de enviar essa unidade é o custo do emparelhamento.

Visto assim, um problema de designação poderia ser entregue à calculadora de transporte ou até ao programa linear geral, e a resposta seria idêntica.

A razão de ele receber a sua própria ferramenta e o seu próprio algoritmo é a eficiência: a estrutura de apenas uns é tão especial que o método húngaro a explora para resolver o problema mais rápido que o método de transporte, que por sua vez supera o simplex geral.

Essa linhagem carrega uma garantia valiosa. Como o problema de designação é um programa linear com estrutura de rede, ele herda a propriedade de integralidade: com qualquer matriz de custos, a solução ótima é automaticamente um emparelhamento limpo um a um, nunca uma fração de um agente repartida entre tarefas. Por isso você nunca precisa arredondar o resultado, e é a mesma propriedade que faz o problema de transporte devolver envios inteiros.

O parentesco também esclarece quando buscar cada ferramenta. Se o seu problema genuinamente emparelha conjuntos do mesmo tamanho um a um, a calculadora de designação e o método húngaro são o instrumento mais afiado; se envia quantidades divisíveis de origens a destinos, encaixa a calculadora de transporte; e se tem uma estrutura mais geral, a calculadora de programação linear é o recurso.

As três vivem no grupo de otimização do hub de Pesquisa Operacional precisamente porque são variações do mesmo tema.

Há uma razão prática para a especialização importar além da velocidade pura. Como o problema de designação é o mais ajustado dos três modelos, formular uma decisão como uma designação impõe uma disciplina útil: obriga você a declarar a exclusividade explicitamente, um agente a uma tarefa, e a confrontar se isso é realmente verdade antes de resolver. Essa formulação muitas vezes esclarece a decisão em si.

Um gestor que diz casualmente “designe a equipe aos projetos” pode descobrir, ao construir a matriz, que duas pessoas são necessárias em um projeto ou que uma pessoa vai abranger dois, e essa descoberta, impulsionada pela forma estrita do modelo, é em si valiosa porque revela a estrutura real do problema.

Quando o quadro um a um de fato se encaixa, a sua rigidez rende uma resposta rápida, inequívoca e inteira; quando não, a tentativa de forçá-lo é o sinal para passar ao modelo de transporte ou ao linear geral, e a família de ferramentas da calculadora está disposta para que esse passo seja um movimento curto e não um reinício.

Erros comuns a evitar

Um punhado de erros se repete e produz designações erradas ou enganosas. Fique atento a eles.

  • Direção de objetivo errada. Minimizar uma tabela de lucro ou maximizar uma de custo dá uma resposta precisa à pergunta oposta. Ajuste o interruptor para coincidir com o que os números significam.
  • Linhas desalinhadas. A linha de cada agente deve listar um custo por tarefa na mesma ordem. Uma entrada deslocada ou faltando resolve uma matriz diferente sem aviso.
  • Ignorar a lista de sem designação. Em um problema não balanceado os agentes ociosos ou as tarefas não cobertas são o ponto, não sobras a descartar; são quem sobra ou o que fica sem fazer.
  • Forçar uma matriz quadrada à mão. Você não precisa preencher a matriz sozinho; a ferramenta o faz corretamente. Adicionar as suas próprias linhas fictícias com custos chutados pode distorcer o ótimo.
  • Supor que o ótimo é único. Empates são comuns quando os custos se repetem. Uma designação diferente com o mesmo total é igualmente ótima, não um erro.
  • Valor não aditivo. O modelo supõe que o valor de um emparelhamento não depende dos demais. Se designar A à tarefa 1 muda o que B vale na tarefa 2, o modelo simples de designação não se aplica.
  • Bloquear emparelhamentos impossíveis com um branco. Se um agente não pode fazer uma tarefa, dê àquela célula um custo muito grande (para minimizar) para que o otimizador a evite, em vez de deixá-la vazia.

Onde este modelo se encaixa nas ferramentas

O problema de designação está no grupo de otimização da pesquisa operacional, o menor e mais afiado dos três modelos de rede que o hub de Pesquisa Operacional agrupa.

É o caso especial um a um do problema de transporte, que por sua vez é um programa linear estruturado, então os três formam uma família do mais específico ao mais geral: use designação quando o emparelhamento é exclusivo e do mesmo tamanho, transporte quando quantidades divisíveis fluem de origens a destinos, e programação linear quando a estrutura é arbitrária.

Escolher a ferramenta mais específica que se encaixa dá a resposta mais rápida e limpa, por isso a calculadora de designação existe ao lado das outras em vez de se fundir a elas.

Além do grupo de otimização, as decisões de designação alimentam e se nutrem do resto das ferramentas. Os custos na matriz costumam vir de estudos de tempos, tarifas ou pontuações de capacidade medidos em outra parte, e a escala resultante alimenta os planos de programação e pessoal. Onde a teoria das filas dimensiona quantos servidores um sistema precisa, o problema de designação decide quais servidores ou pessoas específicas pegam quais deveres específicos uma vez fixado esse número.

Na gestão de projetos e operações o mesmo modelo emparelha equipes com trabalhos e equipamentos com locais, e o seu pressuposto de exclusividade é justo o que o torna a ferramenta certa para essas decisões um a um e a errada quando as tarefas podem ser compartilhadas. Visto em contexto, é o instrumento preciso para o emparelhamento exclusivo, um membro da família de otimização que você busca quando o emparelhamento deve ser limpo.

Volte ao hub de Pesquisa Operacional para o conjunto completo de modelos.

A origem do método húngaro

O problema de designação e o seu famoso algoritmo têm uma história genuinamente internacional e em camadas. O método foi publicado em 1955 pelo matemático estadunidense Harold Kuhn, que o chamou de método húngaro em homenagem aos dois matemáticos húngaros em cujos teoremas anteriores ele se apoia: Dénes König, cujo trabalho sobre emparelhamentos em grafos forneceu a espinha combinatória, e Jenő Egerváry, que generalizou um resultado chave. Kuhn construiu as ideias deles em um procedimento prático de tempo polinomial, e James Munkres depois o revisou e refinou, por isso o algoritmo também é chamado de Kuhn-Munkres.

Há uma reviravolta adicional que torna a história uma favorita na história da otimização: mais tarde surgiu que o método essencial havia sido descrito décadas antes, na década de 1890, pelo matemático alemão Carl Gustav Jacobi, em trabalho publicado postumamente em latim e por muito tempo negligenciado. Essa redescoberta não diminui a contribuição de Kuhn, que tornou o método utilizável e o conectou à teoria mais ampla da programação linear e da dualidade que cristalizava na década de 1950.

O método húngaro tem um lugar especial porque foi um dos primeiros problemas de otimização combinatória demonstrados resolúveis em tempo polinomial, um marco no caminho para a teoria moderna de algoritmos eficientes.

Que um procedimento limpo e seguível à mão sobre uma grade de custos tenha se revelado ao mesmo tempo praticamente indispensável e teoricamente profundo é por que o problema de designação continua sendo um fixo de todo curso de pesquisa operacional e por que uma calculadora que aplica o método húngaro a qualquer matriz é uma ferramenta genuinamente útil.

O alcance do método hoje é silenciosamente enorme. O mesmo algoritmo que Kuhn escreveu para emparelhar pessoas com trabalhos agora roda dentro de sistemas de rastreamento que emparelham detecções de radar com objetos quadro a quadro, dentro de plataformas de transporte que emparelham motoristas com passageiros, dentro de pipelines de visão computacional que ligam pontos entre imagens, e dentro de motores de programação em manufatura e logística. Cada um destes é, por baixo, a mesma matriz de custos e a mesma busca pelo melhor emparelhamento um a um, o que é uma demonstração notável de que uma abstração bem escolhida sobrevive ao problema que a inspirou.

Montar uma decisão real de emparelhamento

Transformar uma situação real em um modelo de designação é sobretudo nomear os dois conjuntos com limpeza e preencher um número honesto em cada célula. Os agentes são aquilo de que você tem exatamente um para dar por emparelhamento, trabalhadores, máquinas, equipes, veículos, e as tarefas são aquilo com que cada agente será emparelhado, trabalhos, ordens, rotas, turnos.

O teste definidor é a exclusividade: um agente pega uma tarefa e não mais, e uma tarefa é feita por um agente e não mais.

Se isso não for literalmente verdade, se um trabalhador pode pegar dois trabalhos, ou um trabalho precisa de duas pessoas, o modelo simples de designação é a forma errada e um modelo mais rico é necessário, então vale a pena verificar a exclusividade antes de tudo.

Cada célula contém o custo ou valor daquele emparelhamento específico, e torná-los comparáveis é o trabalho real. Cada entrada deve estar na mesma unidade e deve ser genuinamente o custo daquele agente ao fazer aquela tarefa isoladamente, as horas que levaria, o dinheiro que custaria, a receita que geraria, a pontuação de preferência que satisfaria. Se dois destes importam ao mesmo tempo, digamos custo e qualidade, você tem que combiná-los em um único número por célula primeiro, talvez uma pontuação ponderada, porque o método otimiza um total. Decida a direção para coincidir: minimizar para custos, tempos e distâncias; maximizar para lucros, produções e pontuações de satisfação.

Duas situações práticas surgem com frequência suficiente para planejá-las. Quando um agente específico simplesmente não pode fazer uma tarefa específica, não deixe a célula em branco; informe um custo proibitivamente grande (para uma minimização) ou um valor muito baixo (para uma maximização) para que o otimizador trate o emparelhamento como disponível em princípio mas nunca digno de escolher.

E quando os dois conjuntos são de tamanhos diferentes, informe a matriz retangular como está e deixe a ferramenta balanceá-la em vez de inventar as suas próprias linhas fictícias, porque o preenchimento deve ser feito a um custo neutro para evitar distorcer o ótimo.

Com os conjuntos nomeados, as células preenchidas de forma consistente, os emparelhamentos impossíveis bloqueados e a direção escolhida, o modelo é uma imagem fiel da decisão, e o solucionador faz o resto.

Quando o um a um é a forma errada

O modelo de designação é deliberadamente estreito, e a sua estreiteza é justamente a exclusividade que o torna rápido e limpo, então a fronteira honesta da ferramenta é o ponto onde essa exclusividade se rompe.

A partida mais comum é a capacidade: se um agente pode lidar com várias tarefas, ou uma tarefa precisa de vários agentes, o problema se torna um problema de designação generalizada, onde cada agente tem uma capacidade e cada tarefa um requisito, e precisa de métodos de programação inteira em vez do algoritmo húngaro.

Forçar tal problema a uma matriz um a um, dividindo agentes em cópias, às vezes é uma aproximação viável mas é fácil de errar sutilmente, então é melhor reconhecê-lo como um modelo diferente.

Uma segunda partida é o objetivo. O problema de designação simples minimiza ou maximiza uma soma, o que é certo quando os totais genuinamente somam, mas algumas decisões se importam com o pior emparelhamento em vez do total, por exemplo minimizar o tempo de término mais tardio entre todos os trabalhos em vez da soma dos tempos. Esse é o problema de designação de gargalo, e precisa de um método diferente porque o objetivo é um máximo, não uma soma.

Valores que interagem são uma terceira partida: o modelo simples supõe que o valor de emparelhar A com a tarefa 1 não muda o que B vale na tarefa 2, e quando existem sinergias ou conflitos entre emparelhamentos, o pressuposto aditivo falha e se aplica um modelo de designação quadrática, que é muito mais difícil.

Nenhum destes é razão para desconfiar da calculadora de designação nas muitas decisões que de fato são um a um com um total aditivo; simplesmente marcam onde você deveria buscar um modelo mais geral, e reconhecer a forma do seu problema antes de resolver é o que mantém a resposta significativa.

Além do total: empates, equidade e segundos critérios

O total ótimo é o titular, mas uma boa decisão de emparelhamento muitas vezes precisa considerar mais que o número único, e entender o que o modelo resolve e o que não resolve evita que você leia demais a sua saída. A sutileza mais comum são os empates: quando vários custos são iguais, mais de uma designação pode alcançar o mesmo total ótimo, e a calculadora devolve uma delas sem implicar que as outras sejam piores.

Se você tem uma preferência secundária, dar a um trabalhador específico um trabalho que ele prefere quando o custo é idêntico, evitar uma designação que alguém fez da última vez, o modelo não a conhecerá a menos que você a codifique, o que você pode fazer ajustando a célula relevante em uma quantidade minúscula para que o empate se rompa na direção que você quer sem mudar qual designação é genuinamente a mais barata.

A equidade é uma preocupação relacionada que o total simples ignora.

Minimizar a soma dos custos pode concentrar as tarefas desagradáveis ou caras em um agente enquanto o total permanece o mais baixo, o que pode ser eficiente mas não aceitável, e se o equilíbrio entre agentes importa você ou adiciona um termo de equidade a cada célula ou verifica o gráfico de valor por emparelhamento que a calculadora desenha para ver se a carga está desnivelada.

Esse gráfico, que mostra o custo ou valor de cada emparelhamento escolhido, é a forma mais rápida de detectar uma designação que é ótima no total mas desconfortável na distribuição, e muitas vezes motiva um pequeno ajuste manual que troca um pouco de custo total por muito equilíbrio.

Por fim, trate os custos como estimativas e contraste o plano com o bom senso. Se a designação ótima emparelha um agente com uma tarefa que a intuição diz ser um mau encaixe, vale a pena investigar: ou o custo foi mal informado, ou o modelo está revelando um emparelhamento genuinamente contraintuitivo mas melhor, e ambos os resultados são valiosos.

A calculadora de designação dá o emparelhamento matematicamente ótimo para os números que você fornece; julgar se esses números, e o quadro aditivo um a um, capturam a decisão real é trabalho do analista, e ler a designação com senso crítico em vez de aceitá-la cegamente é o que transforma a ferramenta de uma máquina de respostas em um auxílio para decidir.

Formato de entrada e referência rápida

Escolha minimizar ou maximizar, depois informe a matriz com um agente por linha e um custo ou valor para cada tarefa nessa linha, separados por espaços ou vírgulas, mantendo as tarefas na mesma ordem entre linhas. A matriz não precisa ser quadrada; a ferramenta a balanceia e reporta quaisquer agentes ou tarefas sem designação. A referência abaixo explica cada parte do resultado.

Como ler o resultado de designação
SaídaO que significa
Total ótimoO custo total mínimo, ou o valor total máximo, sobre todas as designações um a um
Células destacadasOs emparelhamentos agente-tarefa escolhidos que compõem a designação ótima
Agentes sem designaçãoAgentes sem tarefa, quando há mais agentes que tarefas
Tarefas sem designaçãoTarefas sem agente, quando há mais tarefas que agentes
Valor por emparelhamentoO custo ou valor de cada emparelhamento escolhido, plotado para comparação

Perguntas frequentes

O que é o problema de designação?

O problema de designação é um modelo de otimização clássico que emparelha um conjunto de agentes com um conjunto de tarefas um a um de modo que o custo total seja minimizado (ou o valor total maximizado). Cada agente pode realizar cada tarefa a um custo conhecido, e a regra é que cada agente recebe exatamente uma tarefa e cada tarefa exatamente um agente. Responde perguntas como qual trabalhador deve fazer qual trabalho, qual máquina deve rodar qual ordem ou qual equipe deve pegar qual projeto, sempre que o emparelhamento deva ser um a um e cada combinação tenha o seu próprio custo ou retorno.

O que é o método húngaro?

O método húngaro, também chamado de algoritmo de Kuhn-Munkres, é a técnica padrão para resolver o problema de designação de forma exata e eficiente. Trabalha sobre a matriz de custos subtraindo os mínimos de linhas e colunas para expor zeros, depois encontra uma designação que use apenas células de custo zero, ajusta a matriz e repete até existir uma designação completa assim. Leva o nome dos matemáticos húngaros König e Egerváry, em cujos teoremas se apoia, e roda em tempo cúbico, então resolve até problemas grandes com rapidez. Esta calculadora o implementa diretamente.

Ela pode maximizar lucro em vez de minimizar custo?

Sim. Mude o objetivo para maximizar e informe uma matriz de valor ou lucro em vez de uma de custos, e a calculadora encontra a designação um a um com o maior valor total. Internamente converte a maximização em uma minimização equivalente subtraindo cada valor do maior, resolve com o método húngaro e reporta o resultado nos seus termos originais. Assim, a mesma ferramenta lida tanto com minimizar o custo total quanto com maximizar o lucro total, a vazão ou a pontuação de preferência.

E se eu tiver número diferente de agentes e tarefas?

O método húngaro clássico precisa de uma matriz quadrada, mas os problemas reais costumam ser retangulares, com mais agentes que tarefas ou o contrário. Esta calculadora lida com isso automaticamente preenchendo a matriz até quadrada com agentes ou tarefas fictícios a custo zero, resolvendo e depois reportando quais agentes ou tarefas reais ficaram sem designação. Assim você pode informar qualquer matriz retangular; a ferramenta a balanceia, encontra o emparelhamento ótimo um a um do lado menor e diz o que sobra.

Como o problema de designação se relaciona com o de transporte?

O problema de designação é um caso especial do problema de transporte em que cada oferta e cada demanda é igual a um. Você poderia resolvê-lo com o método de transporte ou até o simplex geral, e obteria a mesma resposta, mas por causa dessa estrutura especial de apenas uns, um método dedicado, o algoritmo húngaro, é muito mais rápido e é a escolha padrão. Esse parentesco é por que o OpsCalculators agrupa os dois: ambos são programas lineares com estrutura de rede, e ambos devolvem soluções inteiras automaticamente.

A designação sempre sai em designações inteiras?

Sim. Como o problema de designação herda a propriedade de integralidade da sua estrutura de rede, a solução ótima é sempre um emparelhamento limpo um a um, nunca uma divisão fracionária de um agente entre tarefas. Cada agente é emparelhado com exatamente uma tarefa e cada tarefa com exatamente um agente, que é justo o que a decisão real exige. Você nunca precisa arredondar nem interpretar um resultado fracionário, então qualquer saída que pareça uma designação parcial indicaria um erro de entrada e não um ótimo real.

O que significa um agente ou tarefa sem designação?

Quando o problema está não balanceado, um lado tem membros que não podem todos ser emparelhados. Se há mais agentes que tarefas, alguns agentes ficam sem designação porque não sobra tarefa para eles; se há mais tarefas que agentes, algumas tarefas ficam sem fazer. A calculadora reporta isso explicitamente. São o resíduo prático do desbalanceamento: os trabalhadores sem trabalho nesta rodada, ou os trabalhos que não serão cobertos, e saber quais o plano ótimo deixa de fora muitas vezes é tão útil quanto a designação em si.

Os custos podem ser tempos, distâncias ou pontuações em vez de dinheiro?

Sim. A matriz pode conter qualquer medida por emparelhamento consistente que você queira otimizar: horas para completar, distância a percorrer, uma pontuação de qualidade ou preferência, ou um custo ou lucro monetário. Use minimizar para coisas que você quer em menor quantidade, como tempo ou custo, e maximizar para coisas que você quer em maior quantidade, como produção ou preferência. Os únicos requisitos são que cada entrada use a mesma unidade e que o valor de um emparelhamento não dependa dos demais, que é o que torna significativo o total aditivo.

Existe sempre uma designação ótima única?

Não necessariamente. Algumas matrizes de custos têm várias designações distintas que alcançam o mesmo total ótimo, sobretudo quando muitos custos são iguais. A calculadora devolve uma designação ótima; um emparelhamento diferente com o total idêntico é igualmente válido e não um erro. Se os empates importam por uma razão secundária, como preferir um trabalhador para um trabalho quando os custos são iguais, você pode desempatá-los ajustando ligeiramente o custo relevante e resolvendo de novo.

Estas calculadoras armazenam os números que eu informo?

Não. Esta calculadora funciona inteiramente no seu navegador. A matriz de custos que você informa nunca é enviada aos nossos servidores, armazenada ou compartilhada. Você pode baixar um PDF ou CSV da sua designação localmente, e nada sai do seu dispositivo. Consulte a nossa Política de Privacidade para mais detalhes.

A calculadora do problema de designação é gratuita?

Sim. A calculadora do problema de designação e método húngaro é totalmente gratuita, sem conta, cadastro ou paywall, e sem limite de uso. Devolve a designação ótima um a um, o custo total mínimo ou o lucro total máximo, quaisquer agentes ou tarefas sem designação em problemas não balanceados, e um gráfico de valor por emparelhamento, com exportação para PDF e CSV sem custo.

Fontes, aviso legal e transparência editorial

Esta calculadora resolve o problema de designação com o algoritmo húngaro (Kuhn-Munkres), o método padrão de pesquisa operacional, lidando com matrizes retangulares por preenchimento a custo zero e a maximização por transformação de custos. Esta calculadora e este guia são criados e revisados pela equipe da OpsCalculators; consulte a nossa Política Editorial para saber como cada ferramenta é pesquisada, construída e testada.

Os resultados são estimativas precisas para planejamento e educação, não consultoria de engenharia certificada, e pressupõem um emparelhamento exclusivo um a um com um total aditivo cujos valores por emparelhamento não interagem; problemas com tarefas compartilhadas ou valores que interagem precisam de um modelo diferente. Valide contra os seus próprios dados antes de comprometer designações. Consulte o nosso Aviso Legal completo. OpsCalculators.com é operado pela MAFHH INTERNATIONAL LTD. Os seus dados são processados no seu navegador e nunca são guardados; consulte a nossa Política de Privacidade.