Você está na página 1de 15

O M´etodo H´ungaro de Otimiza¸c˜ao para o Problema da Aloca¸c˜ao de Tarefas

La´ıs B´assame Rodrigues

Flaviano Bahia P. Vieira

Edson Agustini

Faculdade de Matem´atica - Famat

Universidade Federal de Uberlˆandia - Ufu - MG

Abril de 2005

Resumo

Neste trabalho, apresentamos o estudo de um algoritmo de otimiza¸c˜ao de um caso particular de problema de transporte em programa¸c˜ao linear: o problema da aloca¸c˜ao de tarefas. O algoritmo ´e chamado de “M´etodo H´ungaro” e foi criado pelos h´ungaros D. K¨onig e E. Egerv´ary. Por tratar-se de um m´etodo discreto de otimiza¸c˜ao, baseado na manipula¸c˜ao de matrizes, no qual n˜ao ´e necess´ario o uso de C´alculo Diferencial e Integral, os pr´e-requisitos s˜ao m´ınimos, o que torna sua compreens˜ao e utiliza¸c˜ao extremamente acess´ıveis.

1

Introdu¸c˜ao

Em nossa sociedade, ´e muito freq¨uente depararmos com problemas que requerem tomadas de decis˜oes visando a melhoria da rela¸c˜ao custo-benef´ıcio por meio da maximiza¸c˜ao ou minimiza¸c˜ao de elementos do problema. Esse tipo de problema forma uma classe especial de problemas de otimiza¸c˜ao, ou seja, problemas cuja solu¸c˜ao consiste em maximizar ou minimizar uma fun¸c˜ao num´erica de um determinado n´umero de vari´aveis (ou fun¸c˜oes), estando estas sujeitas a certas restri¸c˜oes. Por exemplo: quantidades dadas x ij de um determinado produto est˜ao dispon´ıveis em cada origem i de um determinado n´umero m de origens (por exemplo, armaz´ens). Dese- jamos remeter essas quantidades de produto a cada destino j de um determinado n´umero

n de destinos (por exemplo, mercados varejistas).

E conhecido o custo do transporte

c ij da quantidade x ij de qualquer origem i para qualquer destino j. Considerando que ´e poss´ıvel embarcar de qualquer um dos armaz´ens para qualquer um dos mercados, estamos interessados em determinar os itiner´arios de menor custo dos armaz´ens aos mercados.

´

laisbassame@hotmail.com Orientanda do Programa de Educa¸c˜ao Tutorial da Faculdade de Matem´atica (PetMat) de jan/04 a dez/04. fbahia@mat.ufu.br Orientando do Programa de Educa¸c˜ao Tutorial da Faculdade de Matem´atica (PetMat) de jan/04 a dez/04. agustini@ufu.br Professor orientador.

O exemplo acima ´e um t´ıpico problema de transporte com mn vari´aveis e n + m

restri¸c˜oes, estudado e resolvido com t´ecnicas de programa¸c˜ao linear. Neste caso, a fun¸c˜ao

a ser minimizada ´e

sujeita as`

restri¸c˜oes

z

(x 11 , x 12 ,

,

x mn ) =

n

m

j=1

i=1 c ij x ij ,

n

j=1 x ij a i

m

i=1 x ij = b j

sendo a i a quantidade de produto dispon´ıvel na origem i e b j a quantidade do produto requerida no destino j.

Nosso objetivo neste trabalho ´e estudar um caso bastante particular de problema de transporte: os problemas de aloca¸c˜ao de tarefas, em que as vari´aveis x ij podem assumir apenas valores 0 ou 1 (portanto, minimiza¸c˜ao ou maximiza¸c˜ao de uma fun¸c˜ao z discreta); a i = b j = 1 e n = m. Um ponto do dom´ınio de z, sujeita `as restri¸c˜oes do par´agrafo acima, corresponde a uma aloca¸c˜ao de tarefas. A imagem de z no referido ponto ´e o custo da aloca¸c˜ao. Quando uma aloca¸c˜ao ´e efetuada (escolhida) tendo em vista a minimiza¸c˜ao ou maximiza¸c˜ao de z, temos uma aloca¸c˜ao ´otima de tarefas. A matriz

C =

c

c

11

.

.

.

n1

.

.

.

c

1n

.

c

nn

´e chamada de matriz-custo. Mais adiante redefiniremos esses conceitos baseados apenas na matriz-custo, particu- larizada para os casos que ser˜ao levados em conta nesse trabalho.

Mais especificamente, nas pr´oximas se¸c˜oes, objetivamos trabalhar um m´etodo (algo- ritmo) de otimiza¸c˜ao discreto sobre a matriz C para problemas de aloca¸c˜ao de tarefas chamado de M´etodo H´ungaro. Esse nome teve origem em 1955 devido a H. W. Kuhn, pesquisador na ´area de programa¸c˜ao linear, que em um de seus trabalhos, [7], fez home- nagem aos descobridores do algoritmo em 1931: os h´ungaros E. Egerv´ary [4] e D. K¨onig, sendo que este ultimo´ demonstrou um teorema combinat´orio em 1916 que serviu de base para o algoritmo (Teorema de K¨onig).

O M´etodo H´ungaro pode ser aplicado em diversos problemas pr´aticos de aloca¸c˜ao de

tarefas desde que se construa, de forma conveniente, a matriz-custo C com as informa¸c˜oes

de que dispomos do problema. A partir de C, ap´os a demonstra¸c˜ao de alguns resultados,

o referido algoritmo recursivo de execu¸c˜ao ´e montado e aplicado; podendo, inclusive, ser implementado computacionalmente, quando o volume de informa¸c˜oes do problema for muito grande. Algumas situa¸c˜oes e problemas s˜ao exemplificados no trabalho, dentre os quais alguns que possuem mais de uma aloca¸c˜ao ´otima de tarefas.

2

Um Problema de Aloca¸c˜ao de Tarefas

Consideremos o seguinte exemplo:

Uma construtora possui trˆes garagens cada qual possui uma escavadeira. As escav- adeiras devem ser transportadas para trˆes obras distintas e o custo do transporte de cada escavadeira para cada obra ´e dado pela seguinte matriz-custo:

 

Obra 1

Obra 2

Obra 3

Escavadeira 1

R$ 900,00

R$ 750,00

R$ 750,00

Escavadeira 2

R$ 350,00

R$ 850,00

R$ 550,00

Escavadeira 3

R$ 1.250,00

R$ 950,00

R$ 900,00

Cada poss´ıvel aloca¸c˜ao de tarefas (escavadeira ←→ obra) resulta em um certo custo.

Nosso objetivo ´e minimizar esse custo. custos poss´ıveis resolveria o problema:

´

E claro que, nesse exemplo, uma listagem dos seis

Escavadeira 1 - Obra 1

R$ 900,00

Escavadeira 1 - Obra 1

R$ 900,00

Escavadeira 2 - Obra 2

R$ 850,00

Escavadeira 2 - Obra 3

R$ 550,00

Escavadeira 3 - Obra 3

R$ 900,00

Escavadeira 3 - Obra 2

R$ 950,00

Total

R$ 2.650,00

Total

R$ 2.400,00

Escavadeira 1 - Obra 2

R$ 750,00

Escavadeira 1 - Obra 2

R$ 750,00

Escavadeira 2 - Obra 1

R$ 350,00

Escavadeira 2 - Obra 3

R$ 550,00

Escavadeira 3 - Obra 3

R$ 900,00

Escavadeira 3 - Obra 1

R$ 1.250,00

Total

R$ 2.000,00

Total

R$ 2.550,00

Escavadeira 1 - Obra 3

R$ 750,00

Escavadeira 1 - Obra 3

R$ 750,00

Escavadeira 2 - Obra 1

R$ 350,00

Escavadeira 2 - Obra 2

R$ 850,00

Escavadeira 3 - Obra 2

R$ 950,00

Escavadeira 3 - Obra 1

R$ 1.250,00

Total

R$ 2.050,00

Total

R$ 2.850,00

No entanto, para matrizes-custo maiores, esse procedimento se torna impratic´avel.

Observemos que, de acordo com o que descrevemos na Se¸c˜ao “Introdu¸c˜ao”, a fun¸c˜ao a ser minimizada ´e

sujeita as`

restri¸c˜oes:

z

(x 11 , x 12 ,

3

j=1 x

ij

1

3

i=1

x ij = 1


,

x 33 ) =

3

3

j=1

i=1 c ij x ij

x 11 + x 12 + x 13 x 21 + x 22 + x 23 x 31 + x 32 + x 33

x 11 + x 21 + x 31

1

1

1

= 1

e

x 12 + x 22 + x 32 = 1 .

x 13 + x 23 + x 33 = 1

Como x ij ∈ {0, 1} , temos que as restri¸c˜oes acima implicam que a matriz [x ij ] 3×3 deve possui apenas um “1” em cada linha e em cada coluna. O resto das entradas devem ser

“0”.

A matriz-custo ´e dada por:

C =

c

c

c

11

21

31

c

c

c

12

22

32

c

c

c

13

23

33

=

900

350

1250

750

850

950

750

550

900

Pelo rastreamento feito acima, z ter´a valor m´ınimo quando

Escavadeira 1 - Obra 2

x 12 = 1

Escavadeira 2 - Obra 1

x 21 = 1

Escavadeira 3 - Obra 3 x 33 = 1

e o resto dos x ij s s˜ao zeros. Assim,

z (0, 1, 0, 1, 0, 0, 0, 0, 1) = 900. (0) + 750. (1) + 750. (0)

+ 350. (1) + 850. (0) + 550. (0)

+ 1250. (0) + 950. (0) + 900. (1)

= 2000

´e o custo m´ınimo. Notemos tamb´em que z ´e a soma de todas as entradas da “matriz- produto”

c

c

c

11

21

31

c

c

c

12

22

32

c

c

c

13

23

33

.

x

x

x

11

12

13

x

x

x

21

22

23

x

x

x

31

32

33

=

c 11 x 11 c 21 x 21 c 31 x 31

c 12 x 12 c 22 x 22 c 32 x 32

c 13 x 13 c 23 x 23 c 33 x 33

H´a v´arias situa¸c˜oes onde problemas de otimiza¸c˜ao discretos aparecem. Al´em de maquin´ario em locais de constru¸c˜ao, podemos querer encontrar a melhor distribui¸c˜ao de trabalhadores em empregos, jogadores em posi¸c˜oes no campo, ofertas em leil˜oes e assim por diante. Adotando a nomenclatura tarefas e instala¸c˜oes independente da natureza do problema, para tratar o problema de aloca¸c˜ao de tarefas que estamos interessados, ´e necess´ario que haja n tarefas e n instala¸c˜oes. Assim, temos n maneiras de alocar a primeira tarefa, n 1 maneiras de alocar a segunda tarefa, n 2 maneiras de alocar a terceira tarefa e assim por diante. Ou seja, existem n! maneiras distintas de alocar as tarefas `as instala¸c˜oes.

´

3 Algumas Defini¸c˜oes e o Teorema da Aloca¸c˜ao Otima

Embora j´a tenhamos utilizado as nomenclaturas matriz-custo, aloca¸c˜ao de tarefas, custo da aloca¸c˜ao e aloca¸c˜ao ´otima de tarefas na Se¸c˜ao “Introdu¸c˜ao” quando cit´avamos o prob- lema de aloca¸c˜ao de tarefas em termos da fun¸c˜ao z e suas restri¸c˜oes, iremos redefinir esses termos com o objetivo de, doravante, simplificar as nota¸c˜oes e preparar os pr´e-requisitos para o M´etodo H´ungaro.

Defini¸c˜ao

Uma matriz-custo C ´e definida como sendo uma matriz n × n dada

por:

C =

c

11

21

.

.

.

c n1

c

c

c

12

22

.

c n2

.

.

.

c

c

1n

2n

.

c

nn

,

sendo c ij R o custo para alocar `a i-´esima instala¸c˜ao a j-´esima tarefa.

Dada uma matriz-custo C de ordem n, uma aloca¸c˜ao de tarefas ´e um

conjunto de n entradas da matriz tais que n˜ao h´a duas dessas n entradas em uma mesma linha e nem em uma mesma coluna.

Defini¸c˜ao

Uma aloca¸c˜ao com o menor custo poss´ıvel ´e denominada uma aloca¸c˜ao ´otima de tare-

fas.

O problema da aloca¸c˜ao de tarefas consiste em encontrar uma aloca¸c˜ao ´otima a partir de uma matriz-custo dada.

Se um n´umero real ´e somado ou subtra´ıdo de todas

as entradas de uma linha ou coluna de uma matriz-custo, ent˜ao uma aloca¸c˜ao ´otima para a matriz-custo resultante ´e tamb´em uma aloca¸c˜ao de tarefas ´otima para a matriz-custo original.

Demonstra¸c˜ao

Teorema (da Aloca¸c˜ao

Defini¸c˜ao

A soma das n entradas de uma aloca¸c˜ao ´e chamada de custo da aloca¸c˜ao.

´

Otima)

Seja a matriz n × n:

C =

c

11

21

.

.

.

c j1

.

.

.

c n1

c

c

12

22

.

c j 2

.

c

c n2

.

.

c

c

1i

2i

.

c

ji

c

.

ni

.

.

c

c

1n

2n

.

c

jn

.

c

nn

.

n×n

Suponhamos que as entradas da aloca¸c˜ao ´otima da matriz sejam c 1 k 1 , c 2 k 2 ,

sendo os ´ındices 1 k , 2 k ,

, n k diferentes dois a dois.

,

c

i k i ,

,

c

n k n ,

Logo, o custo m´ınimo de aloca¸c˜ao ´e a soma de todas as entradas acima, isto ´e:

S =

c 1 k 1 + c 2 k 2 +

+

c i k i +

+

c n k n .

Adicionando um valor p R em todas as entradas de uma coluna da matriz-custo C, temos a seguinte matriz:

D =

c

11

21

.

.

.

c j1

.

.

.

c n1

c

c

12

22

.

c j 2

.

c

c n2

.

.

c 1i + p c 2i + p

.

c ji + p

.

c ni + p

.

.

c

c

1n

2n

.

c

jn

.

c

nn

.

n×n

Utilizando as mesmas entradas da aloca¸c˜ao ´otima da matriz C, temos a seguinte soma:

S + p = c 1 k 1 + c 2 k 2 +

+ (c i k i + p) +

+ c n k n

e temos, mais uma vez, que essas entradas correspondem a uma aloca¸c˜ao ´otima. De fato, qualquer outra seq¨uˆencia de entradas de D fornece uma soma maior (ou igual) a S + p, uma vez que, na matriz-custo C a soma m´ınima ´e S e em D est˜ao sendo somados p s em todas as entradas de uma coluna. A demonstra¸c˜ao se processa de modo an´alogo no caso de adicionarmos p R a todas

as entradas de uma linha de C.

Observemos que se pudermos aplicar o teorema acima em uma matriz-custo n × n de tal modo a gerar uma matriz-custo que possua todas as entradas n˜ao negativas e, mais ainda, tal que possua n zeros de modo que dois deles n˜ao estejam na mesma linha ou coluna, n˜ao teremos dificuldades em achar a aloca¸c˜ao ´otima que, na ultima´ matriz, ter´a soma nula. O algoritmo chamado de M´etodo H´ungaro para aloca¸c˜ao ´otima de tarefas baseia-se nessa id´eia.

4 O M´etodo H´ungaro

Baseados no teorema da se¸c˜ao anterior, temos o seguinte algoritmo para descobrir uma aloca¸c˜ao ´otima para uma dada matriz-custo n × n:

Algoritmo justificado passo a passo.

(1) Subtraia a menor entrada de cada linha de todas as entradas da mesma linha.

Justificativa:

´

Otima, uma aloca¸c˜ao ´otima na matriz-custo resultante ´e

aloca¸c˜ao ´otima na matriz-custo original. Neste passo, estamos criando em cada linha pelo

menos uma entrada zero e, al´em disso, todas as outras entradas s˜ao n˜ao negativas.

Pelo Teorema da Aloca¸c˜ao

(2) Subtraia a menor entrada de cada coluna de todas as entradas da mesma coluna.

Justificativa:

Pelo teorema acima, uma aloca¸c˜ao ´otima na matriz-custo resultante ´e aloca¸c˜ao ´otima na matriz-custo original. Neste passo, estamos criando em cada coluna pelo menos uma entrada zero e, al´em disso, todas as outras entradas s˜ao n˜ao negativas.

(3) Risque um tra¸co ao longo de linhas e colunas de tal modo que todas as entradas zero da matriz-custo sejam riscadas e utilizando um n´umero m´ınimo de tra¸cos.

Justificativa:

Pode haver v´arias maneiras de realizar esse procedimento. O que ´e importante ´e usar o n´umero m´ınimo de tra¸cos que ´e, obviamente, menor ou igual a n.

(4) Teste de Otimalidade:

(4-i) Se o n´umero m´ınimo de tra¸cos necess´arios para cobrir os zeros ´e n, ent˜ao uma aloca¸c˜ao ´otima ´e poss´ıvel e encerramos o procedimento.

Justificativa:

Esta etapa ´e central no algoritmo. Provar a afirma¸c˜ao acima ´e o mesmo que provar que se n ´e o n´umero m´ınimo de tra¸cos para cobrir todos os zeros da matriz-custo, ent˜ao existem n zeros de tal modo que dois deles n˜ao est˜ao em uma mesma linha ou coluna (ou seja, existe uma aloca¸c˜ao ´otima correspondendo a essas entradas nulas). Esse ´e o “Teorema de K¨onig” cuja demonstra¸c˜ao pode ser encontrada em [7]. Por ser necess´ario diversos pr´e-requisitos de programa¸c˜ao linear, iremos omitir sua demonstra¸c˜ao.

(4-ii) Se o n´umero m´ınimo de tra¸cos para cobrir os zeros ´e menor que n continue at´e o pr´oximo passo.

Justificativa:

Observemos que se o n´umero m´ınimo de tra¸cos para cobrir os zeros ´e menor que n, n˜ao

´e poss´ıvel identificar uma aloca¸c˜ao ´otima na matriz-custo obtida. De fato, uma aloca¸c˜ao ´otima em tal matriz ser´a identificada quando existirem n zeros de tal modo que dois deles n˜ao estejam em uma mesma linha ou coluna. Ora, nessas condi¸c˜oes, s˜ao necess´arios no m´ınimo n tra¸cos para cobr´ı-los.

(5) Determine a menor entrada que n˜ao tenha sido riscada. Subtraia essa entrada de todas as entradas n˜ao riscadas e a some a todas as entradas riscadas tanto horizontalmente quanto verticalmente. Retorne ao passo (3).

Justificativa:

Sejam m o n´umero de linhas e colunas riscadas e a > 0 a menor entrada n˜ao riscada. Pelo teorema acima, podemos somar a a todas as entradas das linhas e colunas riscadas

e subtrair a de todas as entradas. Isso equivale a subtrair a de todas as entradas n˜ao

riscadas e somar a a todas as entradas riscadas tanto horizontalmente quanto vertical- mente. Notemos ainda que a diferen¸ca entre todas as entradas da matriz-custo inicial desse passo e da matriz-custo final desse passo ´e [m (na) n 2 a] = na (n m) > 0, pois n > m. Isso garante que a soma das entradas da matriz-custo final desse passo (que ´e positiva) est´a decrescendo, ou seja, haver´a uma itera¸c˜ao final nesse algoritmo.

´

E importante mencionar que para utilizarmos o M´etodo H´ungaro trˆes condi¸c˜oes tˆem

que ser satisfeitas:

O problema tem que ser de minimaza¸c˜ao. Para transformar um problema de max-

imiza¸c˜ao em um problema de minimiza¸c˜ao basta que multipliquemos todas as entradas da matriz-custo por 1.

A matriz-custo precisa ser quadrada. Caso isso n˜ao aconte¸ca, basta criar uma tarefa ou uma instala¸c˜ao fict´ıcia que n˜ao interfira no resultado final.

 

´

E

aconselh´avel que, ao utilizarmos softwares, as entradas da matriz-custo sejam

n´umeros inteiros, para evitarmos problemas de arredondamento. Em problemas pr´aticos, caso isso aconte¸ca, basta multiplicar as entradas da matriz por uma potˆencia conveniente de 10.

5

Exemplos

Exemplo 1 (o problema ´e de minimiza¸c˜ao e a matriz-custo ´e quadrada) Recon- siderando o exemplo da Se¸c˜ao “Um Problema de Aloca¸c˜ao de Tarefas”, temos:

Uma construtora possui trˆes garagens cada qual possui uma escavadeira. As escav- adeiras devem ser transportadas para trˆes obras distintas e o custo do transporte de cada escavadeira para cada obra ´e dado pela seguinte matriz-custo:

 

Obra 1

Obra 2

Obra 3

Escavadeira 1

R$ 900,00

R$ 750,00

R$ 750,00

Escavadeira 2

R$ 350,00

R$ 850,00

R$ 550,00

Escavadeira 3

R$ 1.250,00

R$ 950,00

R$ 900,00

Como devemos alocar as escavadeiras (uma em cada obra) de modo a minimizar o custo?

Resolu¸c˜ao

Aplicando o M´etodo H´ungaro na matriz custo:

Obra 1

Obra 2

Obra 3

Escavadeira 1

900

750

750

Escavadeira 2

350

850

550

Escavadeira 3

1250

950

900

temos:

Passo 1: subtra´ımos 750 das entradas da primeira linha, 350 das entradas da segunda e 900 das entradas da terceira. O resultado ´e

Obra 1

Obra 2

Obra 3

Escavadeira 1

150

0

0

Escavadeira 2

0

500

200

Escavadeira 3

350

50

0

Passo 2: subtra´ımos 0 das entradas da primeira coluna, 0 das entradas da segunda e 0 das entradas da terceira. O resultado (neste exemplo) permanece inalterado:

Escavadeira

1

Obra 1 − − 150 − −

Obra 2 − − 000 − −

Obra 3 − − 000 − −

Escavadeira

2

− − 000 − −

− − 500 − −

− − 200 − −

Escavadeira

3

− − 350 − −

− − 050 − −

− − 000 − −

Passos 3 e 4: o n´umero m´ınimo de tra¸cos para cobrir todos os zeros da matriz ´e trˆes. Logo, existem trˆes zeros, um em cada linha e em cada coluna da matriz, que corresponde `a aloca¸c˜ao ´otima:

Obra 1

Obra 2

Obra 3

Escavadeira 1

150

0
0

0

Escavadeira 2

0
0

500

200

Escavadeira 3

350

50

0
0

que neste caso ´e: Escavadeira 1 na Obra 2; Escavadeira 2 na Obra 1 e Escavadeira 3 na Obra 3 , perfazendo o custo m´ınimo de R $ 2 . 000 , 00 .

Exemplo 2 (o problema ´e de maximiza¸c˜ao e a matriz-custo n˜ao ´e quadrada) Um negociante de moedas vai vender quatro moedas raras em um leil˜ao eletrˆonico. Ele recebe propostas para cada uma das quatro moedas de cinco interessados, mas estes interessados tamb´em afirmam que podem honrar no m´aximo uma das propostas. As propostas s˜ao dadas pela seguinte tabela:

 

Moeda 1

Moeda 2

Moeda 3

Moeda 4

Interessado 1

R$ 150, 00

R$ 65, 00

R$ 210, 00

R$ 135, 00

Interessado 2

R$ 175, 00

R$ 75, 00

R$ 230, 00

R$ 155, 00

Interessado 3

R$ 135, 00

R$ 85, 00

R$ 200, 00

R$ 140, 00

Interessado 4

R$ 140, 00

R$ 70, 00

R$ 190, 00

R$ 130, 00

Interessado 5

R$ 170, 00

R$ 50, 00

R$ 200, 00

R$ 160, 00

Como o negociante deveria alocar as quatro moedas para maximizar a soma das pro- postas correspondentes?

Resolu¸c˜ao

Para utilizar o M´etodo H´ungaro, observamos que duas condi¸c˜oes n˜ao s˜ao satisfeitas:

a “matriz-custo” n˜ao ´e quadrada e esse problema ´e de maximiza¸c˜ao. Para resolver esses problemas, criamos uma moeda fict´ıcia (Moeda 5) e uma coluna de “zeros” de modo que ela n˜ao altere o resultado final (observe que quem receber a moeda fict´ıcia n˜ao estar´a recebendo nenhuma moeda real) e multiplicamos as entradas da matriz-custo por 1 de modo que esse se torne um problema de minimiza¸c˜ao.

Moeda 1

Moeda 2

Moeda 3

Moeda 4

Moeda 5

Interessado 1

150

65

210

135

0

Interessado 2

175

75

230

155

0

Interessado 3

135

85

200

140

0

Interessado 4

140

70

190

130

0

Interessado 5

170

50

200

160

0

Agora, podemos aplicar o M´etodo H´ungaro:

Passo 1: Subtra´ımos 210 das entradas da primeira linha, 230 da segunda, 200 da terceira, 190 da quarta e 200 da quinta.

Moeda 1

Moeda 2

Moeda 3

Moeda 4

Moeda 5

Interessado 1

60

145

0

75

210

Interessado 2

55

155

0

85

230

Interessado 3

65

115

0

60

200

Interessado 4

50

120

0

60

190

Interessado 5

30

150

0

40

200

Passo 2: Subtra´ımos 30 das entradas da primeira coluna, 115 da segunda, 0 da terceira, 40 da quarta e 190 da quinta.

 

Moeda 1

Moeda 2

Moeda 3

Moeda 4

Moeda 5

Interessado 1

30

30

00 |

35

20

Interessado 2

25

40

00 |

45

40

Interessado

3

− − 35 − −

− − 00 − −

− − 00 | − −

− − 20 − −

− − 10 − −

Interessado

4

− − 20 − −

− − 05 − −

− − 00 | − −

− − 20 − −

− − 00 − −

Interessado

5

− − 00 − −

− − 35 − −

− − 00 | − −

− − 00 − −

− − 10 − −

Passos 3 e 4: Como o n´umero m´ınimo de tra¸cos em linhas e colunas usados para riscar todos os zeros da matriz ´e inferior a quatro, ent˜ao ainda n˜ao ´e poss´ıvel uma aloca¸c˜ao ´otima de zeros.

Passo 5: Subtra´ımos 20 (que ´e a menor entrada n˜ao riscada) das entradas n˜ao riscadas e somamos esse valor `as entradas riscadas por dois tra¸cos.

 

Moeda 1

Moeda 2

Moeda 3

Moeda 4

Moeda 5

Interessado 1

10

10

00 |

15

00 |

Interessado 2

05

20

00 |

25

20 |

Interessado

3

− − 35 − −

− − 00 − −

− − 20 | − −

− − 20 − −

− − 10 | − −

Interessado 4

20

05

20 |

20

00 |

Interessado

5

− − 00 − −

− − 35 − −

− − 20 | − −

− − 00 − −

− − 10 | − −

Passos 3 e 4: Mais uma vez o n´umero de tra¸cos em linhas e colunas usados para riscar os zeros ´e menor que cinco, por isso ainda n˜ao ´e poss´ıvel uma aloca¸c˜ao ´otimo de zeros.

Passo 5: Subtra´ımos 5 (que ´e a menor entrada n˜ao riscada) das entradas n˜ao riscadas e somamos 5 `as entradas riscadas por dois tra¸cos.

Interessado

1

Moeda 1 − − 05 − −

Moeda 2 − − 05 − −

Moeda 3 − − 00 − −

Moeda 4 − − 10 − −

Moeda 5 − − 00 − −

Interessado

2

− − 00 − −

− − 15 − −

− − 00 − −

− − 20 − −

− − 20 − −

Interessado

3

− − 35 − −

− − 00 − −

− − 25 − −

− − 20 − −

− − 15 − −

Interessado

4

− − 15 − −

− − 00 − −

− − 20 − −

− − 15 − −

− − 00 − −

Interessado

5

− − 00 − −

− − 35 − −

− − 25 − −

− − 00 − −

− − 15 − −

Passos 3 e 4: Como o n´umero m´ınimo de tra¸cos usados para riscar os zeros ´e cinco, ent˜ao ´e poss´ıvel uma aloca¸c˜ao ´otima de zeros dada por:

Moeda 1

Moeda 2

Moeda 3

Moeda 4

Moeda 5

Interessado 1

5

5

0
0

10

0

Interessado 2

0
0

15

0

20

20

Interessado 3

35

0
0

25

20

15

Interessado 4

15

0

20

15

0
0

Interessado 5

0

35

25

0
0

15

indica que a maior quantia que ele poderia

amealhar seria com a venda da Moeda 1 ao Interessado 2, da Moeda 2 ao Interessado 3, da

A aloca¸c˜ao ´otima de zeros (que n˜ao ´e unica)´

Moeda 3 ao Interessado 1 e da Moeda 4 ao Interessado 5 ao passo que ao Interessado 4 n˜ao seria vendida nenhuma moeda. Isso significaria uma soma de R$ 175, 00 + R$ 85, 00 + R$ 210, 00 + R$ 160, 00 = R$ 630, 00.

Exemplo 3 (o problema ´e de maximiza¸c˜ao e a matriz-custo ´e quadrada) Dizem que o futebol moderno est´a se tornando cada vez mais t´ecnico ou t´atico. Excetuando-se o goleiro, um t´ecnico de um time de futebol pode mudar a escala¸c˜ao dos outros nove jogadores titulares em nove posi¸c˜oes diferentes. O t´ecnico testa os jogadores em cada posi¸c˜ao e classifica-os em uma escala de 0 a 25 para cada uma das posi¸c˜oes testadas. O resultado ´e a tabela seguinte:

Jog.1

Jog.2

Jog.3

Jog.4

Jog.5

Jog.6

Jog.7

Jog.8

Jog.9

Posi¸c˜ao 1

20

15

10

10

17

23

25

5

15

Posi¸c˜ao 2

10

10

12

15

9

7

8

7

8

Posi¸c˜ao 3

12

9

9

10

10

5

7

13

9

Posi¸c˜ao 4

13

14

10

15

15

5

8

20

10

Posi¸c˜ao 5

12

13

10

15

14

5

9

20

10

Posi¸c˜ao 6

15

14

15

16

15

5

10

20

10

Posi¸c˜ao 7

7

9

12

12

7

6

7

15

12

Posi¸c˜ao 8

5

6

8

8

5

4

5

10

7

Posi¸c˜ao 9

5

6

8

8

5

4

5

10

7

Como deveria o t´ecnico escalar os nove jogadores para maximizar o rendimento em jogo?

Resolu¸c˜ao

Como este ´e um problema de maximiza¸c˜ao, devemos multiplicar as entradas da matriz por 1 para que este se torne um problema de minimiza¸c˜ao e possamos utilizar o M´etodo H´ungaro.

 

Jog.1

Jog.2

Jog.3

Jog.4

Jog.5

Jog.6

Jog.7

Jog.8

Jog.9

Posi¸c˜ao 1

20

15

10

10

17

23

25

05

15

Posi¸c˜ao 2

10

10

12

15

09

07

08

07

08

Posi¸c˜ao 3

12

09

09

10

10

05

07

13

09

Posi¸c˜ao 4

13

14

10

15

15

05

08

20

10

Posi¸c˜ao 5

12

13

10

15

14

05

09

20

10

Posi¸c˜ao 6

15

14

15

16

15

05

10

20

10

Posi¸c˜ao 7

07

09

12

12

07

06

07

15

12

Posi¸c˜ao 8

05

06

08

08

05

04

05

10

07

Posi¸c˜ao 9

05

06

08

08

05

04

05

10

07

Passo 1: Subtra´ımos 25 de todas as entradas da primeira linha da matriz, 15 da segunda, 13 da terceira, 20 da quarta, 20 da quinta, 20 da sexta, 15 da s´etima,

10 da oitava e 10 da nona. E assim ficamos com a seguinte matriz:

 

Jog.1

Jog.2

Jog.3

Jog.4

Jog.5

Jog.6

Jog.7

Jog.8

Jog.9

Posi¸c˜ao 1

05

10

15

15

08

02

00

20

10

Posi¸c˜ao 2

05

05

03

00

06

08

07

08

07

Posi¸c˜ao 3

01

04

04

03

03

08

06

00

04

Posi¸c˜ao 4

07

06

10

05

05

15

12

00

10

Posi¸c˜ao 5

08

07

10

05

06

15

11

00

10

Posi¸c˜ao 6

05

06

05

04

05

15

10

00

10

Posi¸c˜ao 7

08

06

03

03

08

09

08

00

03

Posi¸c˜ao 8

05

04

02

02

05

06

05

00

03

Posi¸c˜ao 9

05

04

02

02

05

06

05

00

03

Passo 2: Subtra´ımos 1 de todas as entradas da primeira coluna, 4 da segunda, 2 da terceira, 0 da quarta, 3 da quinta, 2 da sexta, 0 da s´etima, 0 da oitava e 3 da nona.

 

Jog.1

Jog.2

Jog.3

Jog.4

Jog.5

Jog.6

Jog.7

Jog.8

Jog.9

Posi¸c˜ao 1

04

06

13

15

05

00

00

20

07

Posi¸c˜ao 2

04

01

01

00

03

06

07

08

04

Posi¸c˜ao 3

00

00

02

03

00

06

06

00

01

Posi¸c˜ao 4

06

02

08

05

02

13

12

00

07

Posi¸c˜ao 5

07

03

08

05

03

13

11

00

07

Posi¸c˜ao 6

04

02

03

04

02

13

10

00

07

Posi¸c˜ao 7

07

02

01

03

05

07

08

00

00

Posi¸c˜ao 8

04

00

00

02

02

04

05

00

00

Posi¸c˜ao 9

04

00

00

02

02

04

05

00

00

Passo 3: Riscamos todos os zeros da matriz com o menor n´umero de tra¸cos poss´ıvel.

 

Jog.1

Jog.2

Jog.3

Jog.4

Jog.5

Jog.6

Jog.7

Jog.8

Jog.9

Posi¸c˜ao 1

04

06

13

15

05

00

00

−| 20

−| 07

Posi¸c˜ao 2

04

01

01

00

03

06

07

−| 08

−| 04

Posi¸c˜ao 3

00

00

02

03

00

06

06

−| 00

−| 01

Posi¸c˜ao 4

06

02

08

05

02

13

12

| 00

| 07

Posi¸c˜ao 5

07

03

08

05

03

13

11

| 00

| 07

Posi¸c˜ao 6

04

02

03

04

02

13

10

| 00

| 07

Posi¸c˜ao 7

07

02

01

03

05

07

08

| 00

| 00

Posi¸c˜ao 8

04

00

00

02

02

04

05

−| 00

−| 00

Posi¸c˜ao 9

04

00

00

02

02

04

05

−| 00

−| 00

Passos 4 e 5: Como o n´umero de tra¸cos em linhas e colunas que cobrem zeros ´e menor que nove, devemos sutrair 1, que ´e a menor entrada n˜ao riscada, de todas as entradas n˜ao riscadas e somar 1 `as entradas riscadas por dois tra¸cos. Em seguida, riscamos todos os

zeros da matriz com o menor n´umero de tra¸cos poss´ıvel.

 

Jog.1

Jog.2

Jog.3

Jog.4

Jog.5

Jog.6

Jog.7

Jog.8

Jog.9

Posi¸c˜ao 1

04

−| 06

−| 13

15

05

00

00

−| 21

−| 08

Posi¸c˜ao 2

04

−| 01

−| 01

00

03

06

07

−| 09

−| 05

Posi¸c˜ao 3

00

−| 00

−| 02

03

00

06

06

−| 01

−| 02

Posi¸c˜ao 4

05

| 01

| 07

04

01

12

11

| 00

| 07

Posi¸c˜ao 5

06

| 02

| 07

04

02

12

10

| 00

| 07

Posi¸c˜ao 6

03

| 01

| 02

03

01

12

09

| 00

| 07

Posi¸c˜ao 7

06

| 01

| 00

02

04

06

07

| 00

| 00

Posi¸c˜ao 8

04

| 00

| 00

02

02

04

05

| 01

| 01

Posi¸c˜ao 9

04

| 00

| 00

02

02

04

05

| 01

| 01

Passos 3, 4 e 5: O n´umero de tra¸cos ainda ´e menor que nove, por isso devemos continuar o processo: subtra´ımos as entradas n˜ao riscadas por 1, somamos 1 `as entradas riscadas por dois tra¸cos e riscamos os zeros novamente.

 

Jog.1

Jog.2

Jog.3

Jog.4

Jog.5

Jog.6

Jog.7

Jog.8

Jog.9

Pos.1

04

−| 07

−| 14

15

−| 05

00

00

−| 22

−| 09

Pos.2

04

−| 02

−| 02

00

−| 03

06

07

−| 10