# Resolvedor do problema de atribuição (algoritmo húngaro)

Resolve problemas de atribuição 2–8 × 2–8 com o algoritmo húngaro de livro (matrizes retangulares aceitas, completadas com linhas/colunas fictícias de custo zero): redução por linhas e colunas, emparelhamento máximo de zeros com caminhos de aumento e, se faltar, cobertura mínima dos zeros por linhas segundo König, subtraindo o menor valor não coberto e somando nas interseções; problemas de maximização são resolvidos internamente na matriz negada. Mostra cada rodada e reporta a atribuição ótima e o custo total, verificados por substituição. Clássico: [[9,2,7],[6,4,3],[5,8,1]] mínimo → custo total 9.

> Página canônica: https://elysiatools.com/pt/tools/assignment-problem-solver

- **Categoria:** Math & Numbers

- **Palavras-chave:** problema de atribuição, algoritmo húngaro, kuhn-munkres, atribuição ótima, matriz de custos, emparelhamento, pesquisa operacional, atribuição de tarefas, trabalhador tarefa, otimização combinatória

## Visão geral

O Resolvedor do Problema de Atribuição utiliza o clássico algoritmo húngaro (Kuhn-Munkres) para calcular a distribuição ótima de recursos e tarefas em matrizes de 2×2 a 8×8. A ferramenta realiza reduções por linhas e colunas, aplica o teorema de König para cobrir zeros com o menor número de linhas e gera o emparelhamento perfeito de custo mínimo ou benefício máximo com detalhamento passo a passo.

## Entradas

- **Matriz de custos (uma linha por linha)** (textarea): Cost (or benefit) matrix, one row per worker, one column per task. 2–8 rows × 2–8 columns; rectangular matrices are padded with zero-cost dummies.
- **Objetivo** (select)
- **Casas decimais** (number)

## Quando usar

- Distribuir tarefas entre operadores ou máquinas com custos, tempos ou eficiências distintas.
- Alocar frotas ou veículos a rotas específicas buscando minimizar o custo total de deslocamento.
- Resolver exercícios acadêmicos e projetos de Pesquisa Operacional que exigem a demonstração do método húngaro.

## Como funciona

- Insira a matriz de custos ou benefícios separando colunas por vírgulas ou espaços e linhas por quebras de texto (dimensões de 2×2 até 8×8).
- Selecione o objetivo desejado entre 'Minimizar o custo total' ou 'Maximizar o benefício total' e defina o número de casas decimais.
- O sistema normaliza matrizes retangulares com elementos fictícios nulos, executa as reduções de linhas/colunas e localiza os zeros independentes por caminhos de aumento.
- Obtenha a relação exata de atribuição par a par e o valor global ótimo resultante, acompanhados pelo relatório de cada iteração.

## Casos de uso

- Escalonamento de técnicos especializados para chamados de suporte técnico baseando-se no tempo estimado de deslocamento.
- Designação de frotas de entrega para centros de distribuição com diferentes custos operacionais por rota.
- Atribuição de desenvolvedores a projetos de software conforme a pontuação de proficiência técnica para maximizar o rendimento.

## Perguntas frequentes

### Como o algoritmo trata matrizes retangulares com mais tarefas que trabalhadores?

A ferramenta preenche automaticamente a matriz com linhas ou colunas fictícias de custo zero até torná-la quadrada antes de iniciar as reduções.

### Como funciona a opção de maximização de benefício?

A ferramenta nega internamente a matriz de entrada para transformá-la em um problema de minimização equivalente e reconverte os valores no resultado final.

### Qual é o limite de dimensões suportado pelo resolvedor?

O resolvedor aceita matrizes de custos com dimensões entre 2 e 8 linhas e 2 e 8 colunas.

### O que acontece se uma linha ou coluna fictícia receber uma atribuição?

Uma atribuição vinculada a um elemento fictício indica que aquela tarefa sobrará ou que o recurso correspondente ficará ocioso.

### É possível utilizar valores decimais na matriz de custos?

Sim, você pode inserir valores decimais e ajustar a precisão numérica nas opções de cálculo.

## Ferramentas relacionadas

- [Calculadora de caminho mais curto (Dijkstra passo a passo)](https://elysiatools.com/pt/tools/graph-shortest-path): Auxílio ao cálculo manual de Dijkstra: informe 1–30 arestas (uma por linha: origem, destino, peso) e os nós de origem/destino; não dirigido por padrão, com opção dirigida. Cada iteração registra qual nó é fixado, com qual distância e como cada relaxamento atualiza a tabela tentativa; empates resolvem pelo menor nome lexicográfico, então o registro coincide com o traço de livro-texto; pesos negativos são rejeitados e um destino inalcançável é reportado como resposta válida. Clássico: A-B 4, A-C 2, B-C 5, B-D 10, C-E 3, D-E 4, D-F 11, E-F 8, de A para F → distância 13 via A→C→E→F.
- [Texto de Cabeça para Baixo](https://elysiatools.com/pt/tools/upside-down-text): Vira o texto de cabeça para baixo (ɥǝllo) por rotações letra a letra, com interruptores opcionais para manter a ordem de leitura e proteger URLs/emails. Texto Unicode puro, sem fonte.
- [Gerador de marcadores de capítulos de podcast (ID3 / Podcasting 2.0)](https://elysiatools.com/pt/tools/podcast-chapter-marker-builder): Cole uma lista de capítulos com timecodes e gere de uma vez todos os formatos de entrega: JSON de capítulos Podcasting 2.0 (v1.2.0) e tag RSS podcast:chapters, gravação opcional dos frames ID3v2.4 CHAP+CTOC direto num MP3 enviado (milissegundos como uint32 big-endian simples, offsets 0xFFFFFFFF, subframe TIT2 por capítulo, frames existentes preservados), pares de comentários Vorbis CHAPTER001 (OGG/Opus), texto mp4chaps, bloco de timestamps para a descrição do YouTube e sidecar SRT, mais a matriz real de suporte dos players (Apple aceita o JSON via RSS desde 2025; Pocket Casts/Overcast leem só ID3 embutido; Spotify ignora ambos).
- [Física STEM: tutor do gráfico velocidade-tempo](https://elysiatools.com/pt/tools/education-stem-physics-kinematics-velocity-time-graph): Tutor visual de cinemática: gráfico v-t (com solver SUVAT de aceleração constante, área = deslocamento), simulador de projétil (g ajustável + resistência do ar) e queda livre
- [Lista Indentada para Árvore ASCII](https://elysiatools.com/pt/tools/ascii-tree-from-indented-list): Converte uma lista hierárquica indentada (2/4 espaços ou tab; prefixos -, *, 1. opcionais) em uma árvore de diretórios ASCII copiável. Dois estilos: caixa Unicode e ASCII clássico. Opções para linhas guia completas, espaços finais e folhas entre colchetes.
- [Calculador de Dia da Semana](https://elysiatools.com/pt/tools/day-of-week-calculator): Calcula em que dia da semana uma determinada data cai
- [Transcritor de áudio para texto (IA)](https://elysiatools.com/pt/tools/audio-to-text-transcriber): Transcreve fala de áudio (wav/mp3/m4a/flac/ogg/webm/aac) em texto, SRT, VTT ou JSON com grok-stt. Até 10 min.
- [Redução de Ruído de Áudio FFmpeg](https://elysiatools.com/pt/tools/ffmpeg-audio-noise-reduction): Redução de ruído de áudio profissional usando filtros avançados FFmpeg (highpass, afftdn, loudnorm) para limpeza ótima de áudio

## Exemplos

- [Exemplos de Análise de Logs ELK Stack](https://elysiatools.com/pt/samples/elk-stack-samples): Exemplos completos de ELK Stack para agregação, processamento e visualização de logs em sistemas distribuídos
- [Amostras de Áudio MP3 Livres de Direitos Autorais](https://elysiatools.com/pt/samples/mp3-samples): Coleção de amostras de áudio livres de direitos autorais para testes e desenvolvimento, incluindo sons da natureza, música de meditação e áudio ambiente
- [Grupos de Captura Nomeados Regex](https://elysiatools.com/pt/samples/regex-named-groups): Coleção de padrões regex usando grupos de captura nomeados para extrair dados estruturados de texto. Grupos nomeados tornam os padrões mais legíveis e mantíveis atribuindo nomes significativos às partes capturadas.
- [Exemplos de Variáveis de Ambiente (.env)](https://elysiatools.com/pt/samples/env-samples): Exemplos de configuração de variáveis de ambiente para diferentes tipos de aplicativos e ambientes
