algoritmo húngaro
DESCRIPTION
Algoritmo Húngaro - MatlabTRANSCRIPT
Mestrado Integrado em Engenharia Civil
Grupo 78
Rafael Lucas 75521
Susana Carrega 76322
Bernardo Cardoso 75162
Carlos de Almeida 76107
Computação e Programação
Relatório de Projecto
2012-2013
Lisboa, 9 de Dezembro de 2012
O programa desenvolvido pelo nosso grupo baseia-se no Algoritmo Húngaro para
resolver problemas de afetação (com matrizes de custo n x n).
Apresenta limitações, tais como: cada trabalhador só pode executar uma tarefa e uma
tarefa só pode ser atribuída a um trabalhador; no caso de encontrar mais do que uma
solução óptima o programa só apresenta uma delas.
Como utilizar o programa:
Para o programa resolver o problema, o utilizador tem de abrir o ficheiro
“mainmenu.m” e executá-lo no Matlab. De seguida deverá escolher a opção
“Carregar” para permitir ao utilizador carregar os ficheiros que contêm a matriz custo,
as identificações do 1º conjunto e as identificações do segundo conjunto. Depois,
deverá escolher a opção “Resolver Problema” para, através do algoritmo húngaro, o
programa resolver o problema de afetação e escrever num ficheiro texto “saida.txt” a
solução óptima e os custos respectivos.
Para mostrar a informação dos ficheiros carregados pelo utilizador, basta seleccionar
no menu inicial a opção “Mostrar” que permitirá ao utilizador escolher que informação
pretende visualizar.
Para sair do programa basta escolher a opção “Sair do Programa”.
Página 1 de 6
1º Caso teste
O ficheiro referente à matriz custos, “teste.txt”, contém a seguinte informação:
1 1 42 12 43
32 1 43 1 36
24 54 3 52 13
34 4 13 52 15
12 43 5 1 52
O ficheiro respeitante às identificações do 1º conjunto, “trabalhadores.txt”, contém a
seguinte informação:
José
João
Rodrigo
Joana
Susana
O ficheiro que contém as identificações do 2º conjunto, “tarefas.txt”, apresenta a
seguinte informação:
lavar a roupa
passar a roupa
cozinhar
lavar a loiça
limpar o pó
Página 2 de 6
O ficheiro onde se encontra registada a solução do problema, “saida.txt”, contém a
seguinte informação:
José --- lavar a roupa --- 1.000€
João --- passar a roupa --- 1.000€
Rodrigo --- cozinhar --- 3.000€
Susana --- lavar a loiça --- 1.000€
Joana --- limpar o pó --- 15.000€
Página 3 de 6
2º Caso teste
O ficheiro referente à matriz custos, “teste_dois.txt”, contém a seguinte informação:
303
948 1 10
1
928
384
77 9 18
2
729
46 6 81
726
3
537
51
416
2
534
3
645
131
524
3
342
4
44
212
332
4
143 3 12
223
140
4
92
1
120
O ficheiro respeitante às identificações do 1º conjunto, “tarefas_dois.txt”, contém a seguinte informação:
Tarefa 1
Tarefa 2
Tarefa 3
Tarefa 4
Tarefa 5
Tarefa 6
Tarefa 7
Página 4 de 6
O ficheiro que contém as identificações do 2º conjunto, “trabalhadores_dois.txt”,
apresenta a seguinte informação:
Trabalhador 1
Trabalhador 2
Trabalhador 3
Trabalhador 4
Trabalhador 5
Trabalhador 6
Trabalhador 7
O ficheiro onde se encontra registada a solução do problema, “saída_dois.txt”, contém
a seguinte informação:
Tarefa 4 --- Trabalhador 1 --- 5.000€
Tarefa 3 --- Trabalhador 2 --- 6.000€
Tarefa 2 --- Trabalhador 3 --- 7.000€
Tarefa 1 --- Trabalhador 4 --- 1.000€
Tarefa 7 --- Trabalhador 5 --- 2.000€
Tarefa 6 --- Trabalhador 6 --- 3.000€
Tarefa 5 --- Trabalhador 7 --- 4.000€
Página 5 de 6