algoritmo húngaro

8
Mestrado Integrado em Engenharia Grupo 78 Rafael Lucas 75521 Susana Carrega 76322 Bernardo Cardoso Computação e Programação Relatório de Projecto 2012-2013 Lisboa, 9 de Dezembro de

Upload: rafael-lucas

Post on 08-Dec-2015

2 views

Category:

Documents


0 download

DESCRIPTION

Algoritmo Húngaro - Matlab

TRANSCRIPT

Page 1: Algoritmo Húngaro

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

Page 2: Algoritmo Húngaro

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

Page 3: Algoritmo Húngaro

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

Page 4: Algoritmo Húngaro

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

Page 5: Algoritmo Húngaro

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

Page 6: Algoritmo Húngaro

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