Você está na página 1de 15

O Metodo H ungaro de Otimizacao para o

Problema da Alocacao de Tarefas


Las Bassame Rodrigues

Flaviano Bahia P. Vieira

Edson Agustini

Faculdade de Matematica - Famat


Universidade Federal de Uberlandia - Ufu - MG
Abril de 2005
Resumo
Neste trabalho, apresentamos o estudo de um algoritmo de otimizacao de um
caso particular de problema de transporte em programacao linear: o problema da
alocacao de tarefas. O algoritmo e chamado de Metodo H ungaro e foi criado
pelos h ungaros D. Konig e E. Egervary. Por tratar-se de um metodo discreto de
otimizacao, baseado na manipulacao de matrizes, no qual nao e necessario o uso
de Calculo Diferencial e Integral, os pre-requisitos sao mnimos, o que torna sua
compreensao e utilizacao extremamente acessveis.
1 Introducao
Em nossa sociedade, e muito freq uente depararmos com problemas que requerem tomadas
de decisoes visando a melhoria da relac ao custo-benefcio por meio da maximizac ao ou
minimizacao de elementos do problema. Esse tipo de problema forma uma classe especial
de problemas de otimizacao, ou seja, problemas cuja soluc ao consiste em maximizar ou
minimizar uma func ao numerica de um determinado n umero de vari aveis (ou func oes),
estando estas sujeitas a certas restricoes.
Por exemplo: quantidades dadas x
ij
de um determinado produto estao disponveis em
cada origem i de um determinado n umero m de origens (por exemplo, armazens). 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
possvel embarcar de qualquer um dos armazens para qualquer um dos mercados, estamos
interessados em determinar os itinerarios de menor custo dos armazens aos mercados.

laisbassame@hotmail.com Orientanda do Programa de Educacao Tutorial da Faculdade de


Matematica (PetMat) de jan/04 a dez/04.

fbahia@mat.ufu.br Orientando do Programa de Educacao Tutorial da Faculdade de Matematica


(PetMat) de jan/04 a dez/04.

agustini@ufu.br Professor orientador.


FAMAT em Revista - Nmero 04 - Abril de 2005 25
O exemplo acima e um tpico problema de transporte com mn vari aveis e n + m
restricoes, estudado e resolvido com tecnicas de programac ao linear. Neste caso, a funcao
a ser minimizada e
z (x
11
, x
12
, ..., x
mn
) =
n

j=1
m

i=1
c
ij
x
ij
,
sujeita `as restric oes
n

j=1
x
ij
a
i
m

i=1
x
ij
= b
j
sendo a
i
a quantidade de produto disponvel 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 alocacao de tarefas, em que as vari aveis x
ij
podem assumir
apenas valores 0 ou 1 (portanto, minimizac ao ou maximizac ao de uma funcao z discreta);
a
i
= b
j
= 1 e n = m.
Um ponto do domnio de z, sujeita `as restric oes do paragrafo acima, corresponde a
uma alocacao de tarefas. A imagem de z no referido ponto e o custo da alocacao. Quando
uma alocac ao e efetuada (escolhida) tendo em vista a minimizacao ou maximizac ao de z,
temos uma alocacao otima de tarefas. A matriz
C =
_

_
c
11
... c
1n
.
.
.
.
.
.
.
.
.
c
n1
... c
nn
_

_
e chamada de matriz-custo.
Mais adiante redeniremos esses conceitos baseados apenas na matriz-custo, particu-
larizada para os casos que serao levados em conta nesse trabalho.
Mais especicamente, nas proximas sec oes, objetivamos trabalhar um metodo (algo-
ritmo) de otimizacao discreto sobre a matriz C para problemas de alocac ao de tarefas
chamado de Metodo H ungaro. Esse nome teve origem em 1955 devido a H. W. Kuhn,
pesquisador na area de programac ao linear, que em um de seus trabalhos, [7], fez home-
nagem aos descobridores do algoritmo em 1931: os h ungaros E. Egervary [4] e D. Konig,
sendo que este ultimo demonstrou um teorema combinatorio em 1916 que serviu de base
para o algoritmo (Teorema de Konig).
O Metodo H ungaro pode ser aplicado em diversos problemas praticos de alocacao de
tarefas desde que se construa, de forma conveniente, a matriz-custo C com as informacoes
de que dispomos do problema. A partir de C, apos a demonstracao de alguns resultados,
o referido algoritmo recursivo de execucao e montado e aplicado; podendo, inclusive, ser
implementado computacionalmente, quando o volume de informac oes do problema for
muito grande.
Algumas situacoes e problemas sao exemplicados no trabalho, dentre os quais alguns
que possuem mais de uma alocac ao otima de tarefas.
26 FAMAT em Revista - Nmero 04 - Abril de 2005
2 Um Problema de Alocacao de Tarefas
Consideremos o seguinte exemplo:
Uma construtora possui tres garagens cada qual possui uma escavadeira. As escav-
adeiras devem ser transportadas para tres 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 possvel alocac ao de tarefas (escavadeira obra) resulta em um certo custo.
Nosso objetivo e minimizar esse custo.

E claro que, nesse exemplo, uma listagem dos seis
custos possveis resolveria o problema:
Escavadeira 1 - Obra 1 R$ 900,00
Escavadeira 2 - Obra 2 R$ 850,00
Escavadeira 3 - Obra 3 R$ 900,00
Total R$ 2.650,00
Escavadeira 1 - Obra 1 R$ 900,00
Escavadeira 2 - Obra 3 R$ 550,00
Escavadeira 3 - Obra 2 R$ 950,00
Total R$ 2.400,00
Escavadeira 1 - Obra 2 R$ 750,00
Escavadeira 2 - Obra 1 R$ 350,00
Escavadeira 3 - Obra 3 R$ 900,00
Total R$ 2.000,00
Escavadeira 1 - Obra 2 R$ 750,00
Escavadeira 2 - Obra 3 R$ 550,00
Escavadeira 3 - Obra 1 R$ 1.250,00
Total R$ 2.550,00
Escavadeira 1 - Obra 3 R$ 750,00
Escavadeira 2 - Obra 1 R$ 350,00
Escavadeira 3 - Obra 2 R$ 950,00
Total R$ 2.050,00
Escavadeira 1 - Obra 3 R$ 750,00
Escavadeira 2 - Obra 2 R$ 850,00
Escavadeira 3 - Obra 1 R$ 1.250,00
Total R$ 2.850,00
No entanto, para matrizes-custo maiores, esse procedimento se torna impraticavel.
Observemos que, de acordo com o que descrevemos na Secao Introduc ao, a func ao
a ser minimizada e
z (x
11
, x
12
, ..., x
33
) =
3

j=1
3

i=1
c
ij
x
ij
sujeita `as restric oes:
3

j=1
x
ij
1
_
_
_
x
11
+ x
12
+ x
13
1
x
21
+ x
22
+ x
23
1
x
31
+ x
32
+ x
33
1
e
3

i=1
x
ij
= 1
_
_
_
x
11
+ x
21
+ x
31
= 1
x
12
+ x
22
+ x
32
= 1
x
13
+ x
23
+ x
33
= 1
.
FAMAT em Revista - Nmero 04 - Abril de 2005 27
Como x
ij
{0, 1} , temos que as restric oes acima implicam que a matriz [x
ij
]
33
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
11
c
12
c
13
c
21
c
22
c
23
c
31
c
32
c
33
_
_
=
_
_
900 750 750
350 850 550
1250 950 900
_
_
Pelo rastreamento feito acima, z tera valor mnimo 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 sao 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 mnimo. Notemos tambem que z e a soma de todas as entradas da matriz-
produto
_
_
c
11
c
12
c
13
c
21
c
22
c
23
c
31
c
32
c
33
_
_
.
_
_
x
11
x
21
x
31
x
12
x
22
x
32
x
13
x
23
x
33
_
_
=
_
_
c
11
x
11
c
12
x
12
c
13
x
13
c
21
x
21
c
22
x
22
c
23
x
23
c
31
x
31
c
32
x
32
c
33
x
33
_
_
Ha varias situac oes onde problemas de otimizacao discretos aparecem. Alem de
maquinario em locais de construc ao, podemos querer encontrar a melhor distribuic ao de
trabalhadores em empregos, jogadores em posic oes no campo, ofertas em leiloes e assim
por diante.
Adotando a nomenclatura tarefas e instalacoes independente da natureza do problema,
para tratar o problema de alocacao de tarefas que estamos interessados, e necessario que
haja n tarefas e n instalac oes. Assim, temos n maneiras de alocar a primeira tarefa, n1
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 instalac oes.
3 Algumas Denicoes e o Teorema da Alocacao

Otima
Embora ja tenhamos utilizado as nomenclaturas matriz-custo, alocacao de tarefas, custo
da alocacao e alocacao otima de tarefas na Sec ao Introducao quando citavamos o prob-
lema de alocac ao de tarefas em termos da func ao z e suas restric oes, iremos redenir esses
termos com o objetivo de, doravante, simplicar as notacoes e preparar os pre-requisitos
para o Metodo H ungaro.
28 FAMAT em Revista - Nmero 04 - Abril de 2005
Denicao Uma matriz-custo C e denida como sendo uma matriz n n dada
por:
C =
_

_
c
11
c
12
... c
1n
c
21
c
22
... c
2n
.
.
.
.
.
.
.
.
.
.
.
.
c
n1
c
n2
... c
nn
_

_
,
sendo c
ij
R o custo para alocar `a i-esima instalacao a j-esima tarefa.
Denicao Dada uma matriz-custo C de ordem n, uma aloca cao de tarefas e um
conjunto de n entradas da matriz tais que nao ha duas dessas n entradas em uma mesma
linha e nem em uma mesma coluna.
Denicao A soma das n entradas de uma alocacao e chamada de custo da aloca cao.
Uma alocacao com o menor custo possvel e denominada uma alocacao otima de tare-
fas.
O problema da alocacao de tarefas consiste em encontrar uma alocac ao otima a partir
de uma matriz-custo dada.
Teorema (da Alocacao

Otima) Se um n umero real e somado ou subtrado de todas
as entradas de uma linha ou coluna de uma matriz-custo, entao uma alocacao otima para
a matriz-custo resultante e tambem uma alocacao de tarefas otima para a matriz-custo
original.
Demonstracao
Seja a matriz n n:
C =
_

_
c
11
c
12
... c
1i
... c
1n
c
21
c
22
... c
2i
... c
2n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
j1
c
j
2
... c
ji
... c
jn
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
n1
c
n2
... c
ni
... c
nn
_

_
nn
.
Suponhamos que as entradas da alocac ao otima da matriz sejam c
1
k
1
, c
2
k
2
, ..., c
i
k
i
, ..., c
n
k
n
,
sendo os ndices 1
k
, 2
k
, ..., n
k
diferentes dois a dois.
Logo, o custo mnimo de alocacao 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
c
12
... c
1i
+ p ... c
1n
c
21
c
22
... c
2i
+ p ... c
2n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
j1
c
j
2
... c
ji
+ p ... c
jn
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
n1
c
n2
... c
ni
+ p ... c
nn
_

_
nn
.
FAMAT em Revista - Nmero 04 - Abril de 2005 29
Utilizando as mesmas entradas da alocac 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 alocacao otima. De fato,
qualquer outra seq uencia de entradas de D fornece uma soma maior (ou igual) a S + p,
uma vez que, na matriz-custo C a soma mnima e S e em D estao sendo somados p

s em
todas as entradas de uma coluna.
A demonstrac ao se processa de modo analogo 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 nao negativas e, mais
ainda, tal que possua n zeros de modo que dois deles nao estejam na mesma linha ou
coluna, nao teremos diculdades em achar a alocac ao otima que, na ultima matriz, tera
soma nula. O algoritmo chamado de Metodo H ungaro para alocac ao otima de tarefas
baseia-se nessa ideia.
4 O Metodo H ungaro
Baseados no teorema da secao anterior, temos o seguinte algoritmo para descobrir uma
alocac ao otima para uma dada matriz-custo n n:
Algoritmo justicado passo a passo.
(1) Subtraia a menor entrada de cada linha de todas as entradas da mesma linha.
Justicativa:
Pelo Teorema da Alocacao

Otima, uma alocacao otima na matriz-custo resultante e
alocacao otima na matriz-custo original. Neste passo, estamos criando em cada linha pelo
menos uma entrada zero e, alem disso, todas as outras entradas sao nao negativas.
(2) Subtraia a menor entrada de cada coluna de todas as entradas da mesma coluna.
Justicativa:
Pelo teorema acima, uma alocacao otima na matriz-custo resultante e alocacao otima
na matriz-custo original. Neste passo, estamos criando em cada coluna pelo menos uma
entrada zero e, alem disso, todas as outras entradas sao nao negativas.
(3) Risque um traco ao longo de linhas e colunas de tal modo que todas as entradas zero
da matriz-custo sejam riscadas e utilizando um n umero mnimo de tracos.
Justicativa:
Pode haver varias maneiras de realizar esse procedimento. O que e importante e usar
o n umero mnimo de tracos que e, obviamente, menor ou igual a n.
(4) Teste de Otimalidade:
30 FAMAT em Revista - Nmero 04 - Abril de 2005
(4-i) Se o n umero mnimo de tracos necessarios para cobrir os zeros e n, entao uma
alocac ao otima e possvel e encerramos o procedimento.
Justicativa:
Esta etapa e central no algoritmo. Provar a armacao acima e o mesmo que provar
que se n e o n umero mnimo de tracos para cobrir todos os zeros da matriz-custo, entao
existem n zeros de tal modo que dois deles nao estao em uma mesma linha ou coluna
(ou seja, existe uma alocacao otima correspondendo a essas entradas nulas). Esse e o
Teorema de Konig cuja demonstracao pode ser encontrada em [7]. Por ser necessario
diversos pre-requisitos de programac ao linear, iremos omitir sua demonstracao.
(4-ii) Se o n umero mnimo de tracos para cobrir os zeros e menor que n continue ate
o proximo passo.
Justicativa:
Observemos que se o n umero mnimo de tracos para cobrir os zeros e menor que n, nao
e possvel identicar uma alocacao otima na matriz-custo obtida. De fato, uma alocacao
otima em tal matriz sera identicada quando existirem n zeros de tal modo que dois deles
nao estejam em uma mesma linha ou coluna. Ora, nessas condicoes, sao necessarios no
mnimo n tracos para cobr-los.
(5) Determine a menor entrada que nao tenha sido riscada. Subtraia essa entrada de
todas as entradas nao riscadas e a some a todas as entradas riscadas tanto horizontalmente
quanto verticalmente. Retorne ao passo (3).
Justicativa:
Sejam m o n umero de linhas e colunas riscadas e a > 0 a menor entrada nao 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 nao
riscadas e somar a a todas as entradas riscadas tanto horizontalmente quanto vertical-
mente. Notemos ainda que a diferenca entre todas as entradas da matriz-custo inicial
desse passo e da matriz-custo nal 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 nal desse passo (que e
positiva) esta decrescendo, ou seja, havera uma iteracao nal nesse algoritmo.

E importante mencionar que para utilizarmos o Metodo H ungaro tres condic oes tem
que ser satisfeitas:
O problema tem que ser de minimazac ao. Para transformar um problema de max-
imizacao em um problema de minimizacao basta que multipliquemos todas as entradas
da matriz-custo por 1.
A matriz-custo precisa ser quadrada. Caso isso nao aconteca, basta criar uma tarefa
ou uma instalacao ctcia que nao interra no resultado nal.


E aconselhavel que, ao utilizarmos softwares, as entradas da matriz-custo sejam
n umeros inteiros, para evitarmos problemas de arredondamento. Em problemas praticos,
caso isso aconteca, basta multiplicar as entradas da matriz por uma potencia conveniente
de 10.
FAMAT em Revista - Nmero 04 - Abril de 2005 31
5 Exemplos
Exemplo 1 (o problema e de minimizacao e a matriz-custo e quadrada) Recon-
siderando o exemplo da Sec ao Um Problema de Alocac ao de Tarefas, temos:
Uma construtora possui tres garagens cada qual possui uma escavadeira. As escav-
adeiras devem ser transportadas para tres 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?
Resolucao
Aplicando o Metodo 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: subtramos 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: subtramos 0 das entradas da primeira coluna, 0 das entradas da segunda e 0
das entradas da terceira. O resultado (neste exemplo) permanece inalterado:
Obra 1 Obra 2 Obra 3
Escavadeira 1 150 000 000
Escavadeira 2 000 500 200
Escavadeira 3 350 050 000
Passos 3 e 4: o n umero mnimo de tracos para cobrir todos os zeros da matriz e tres.
Logo, existem tres zeros, um em cada linha e em cada coluna da matriz, que corresponde
`a alocacao otima:
Obra 1 Obra 2 Obra 3
Escavadeira 1 150 0 0
Escavadeira 2 0 500 200
Escavadeira 3 350 50 0
32 FAMAT em Revista - Nmero 04 - Abril de 2005
que neste caso e: Escavadeira 1 na Obra 2; Escavadeira 2 na Obra 1 e Escavadeira 3 na
Obra 3, perfazendo o custo mnimo de R$ 2.000, 00.
Exemplo 2 (o problema e de maximizacao e a matriz-custo nao e quadrada) Um
negociante de moedas vai vender quatro moedas raras em um leilao eletronico. Ele recebe
propostas para cada uma das quatro moedas de cinco interessados, mas estes interessados
tambem armam que podem honrar no maximo uma das propostas. As propostas sao
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?
Resolucao
Para utilizar o Metodo H ungaro, observamos que duas condicoes nao sao satisfeitas:
a matriz-custo nao e quadrada e esse problema e de maximizacao. Para resolver esses
problemas, criamos uma moeda ctcia (Moeda 5) e uma coluna de zeros de modo que
ela nao altere o resultado nal (observe que quem receber a moeda ctcia nao estara
recebendo nenhuma moeda real) e multiplicamos as entradas da matriz-custo por 1 de
modo que esse se torne um problema de minimizac 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 Metodo H ungaro:
Passo 1: Subtramos 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
FAMAT em Revista - Nmero 04 - Abril de 2005 33
Passo 2: Subtramos 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 mnimo de tracos em linhas e colunas usados para riscar
todos os zeros da matriz e inferior a quatro, ent ao ainda nao e possvel uma alocac ao
otima de zeros.
Passo 5: Subtramos 20 (que e a menor entrada nao riscada) das entradas nao riscadas
e somamos esse valor `as entradas riscadas por dois tracos.
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 tracos em linhas e colunas usados para riscar
os zeros e menor que cinco, por isso ainda nao e possvel uma alocacao otimo de zeros.
Passo 5: Subtramos 5 (que e a menor entrada nao riscada) das entradas nao riscadas e
somamos 5 `as entradas riscadas por dois tracos.
Moeda 1 Moeda 2 Moeda 3 Moeda 4 Moeda 5
Interessado 1 05 05 00 10 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 mnimo de tracos usados para riscar os zeros e cinco,
entao e possvel uma alocacao otima de zeros dada por:
Moeda 1 Moeda 2 Moeda 3 Moeda 4 Moeda 5
Interessado 1 5 5 0 10 0
Interessado 2 0 15 0 20 20
Interessado 3 35 0 25 20 15
Interessado 4 15 0 20 15 0
Interessado 5 0 35 25 0 15
A alocac ao otima de zeros (que nao e unica) 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
34 FAMAT em Revista - Nmero 04 - Abril de 2005
Moeda 3 ao Interessado 1 e da Moeda 4 ao Interessado 5 ao passo que ao Interessado 4 nao
seria vendida nenhuma moeda. Isso signicaria uma soma de R$ 175, 00 +R$ 85, 00 +R$
210, 00 + R$ 160, 00 = R$ 630, 00.
Exemplo 3 (o problema e de maximizacao e a matriz-custo e quadrada) Dizem que
o futebol moderno esta se tornando cada vez mais tecnico ou tatico. Excetuando-se
o goleiro, um tecnico de um time de futebol pode mudar a escalacao dos outros nove
jogadores titulares em nove posicoes diferentes. O tecnico testa os jogadores em cada
posic ao e classica-os em uma escala de 0 a 25 para cada uma das posic 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
Posic ao 1 20 15 10 10 17 23 25 5 15
Posic ao 2 10 10 12 15 9 7 8 7 8
Posic ao 3 12 9 9 10 10 5 7 13 9
Posic ao 4 13 14 10 15 15 5 8 20 10
Posic ao 5 12 13 10 15 14 5 9 20 10
Posic ao 6 15 14 15 16 15 5 10 20 10
Posic ao 7 7 9 12 12 7 6 7 15 12
Posic ao 8 5 6 8 8 5 4 5 10 7
Posic ao 9 5 6 8 8 5 4 5 10 7
Como deveria o tecnico escalar os nove jogadores para maximizar o rendimento em jogo?
Resolucao
Como este e um problema de maximizac ao, devemos multiplicar as entradas da matriz
por 1 para que este se torne um problema de minimizac ao e possamos utilizar o Metodo
H ungaro.
Jog.1 Jog.2 Jog.3 Jog.4 Jog.5 Jog.6 Jog.7 Jog.8 Jog.9
Posic ao 1 20 15 10 10 17 23 25 05 15
Posic ao 2 10 10 12 15 09 07 08 07 08
Posic ao 3 12 09 09 10 10 05 07 13 09
Posic ao 4 13 14 10 15 15 05 08 20 10
Posic ao 5 12 13 10 15 14 05 09 20 10
Posic ao 6 15 14 15 16 15 05 10 20 10
Posic ao 7 07 09 12 12 07 06 07 15 12
Posic ao 8 05 06 08 08 05 04 05 10 07
Posic ao 9 05 06 08 08 05 04 05 10 07
Passo 1: Subtramos 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 setima,
FAMAT em Revista - Nmero 04 - Abril de 2005 35
10 da oitava e 10 da nona. E assim camos com a seguinte matriz:
Jog.1 Jog.2 Jog.3 Jog.4 Jog.5 Jog.6 Jog.7 Jog.8 Jog.9
Posic ao 1 05 10 15 15 08 02 00 20 10
Posic ao 2 05 05 03 00 06 08 07 08 07
Posic ao 3 01 04 04 03 03 08 06 00 04
Posic ao 4 07 06 10 05 05 15 12 00 10
Posic ao 5 08 07 10 05 06 15 11 00 10
Posic ao 6 05 06 05 04 05 15 10 00 10
Posic ao 7 08 06 03 03 08 09 08 00 03
Posic ao 8 05 04 02 02 05 06 05 00 03
Posic ao 9 05 04 02 02 05 06 05 00 03
Passo 2: Subtramos 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 setima, 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
Posic ao 1 04 06 13 15 05 00 00 20 07
Posic ao 2 04 01 01 00 03 06 07 08 04
Posic ao 3 00 00 02 03 00 06 06 00 01
Posic ao 4 06 02 08 05 02 13 12 00 07
Posic ao 5 07 03 08 05 03 13 11 00 07
Posic ao 6 04 02 03 04 02 13 10 00 07
Posic ao 7 07 02 01 03 05 07 08 00 00
Posic ao 8 04 00 00 02 02 04 05 00 00
Posic 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 tracos possvel.
Jog.1 Jog.2 Jog.3 Jog.4 Jog.5 Jog.6 Jog.7 Jog.8 Jog.9
Posic ao 1 04 06 13 15 05 00 00 | 20 | 07
Posic ao 2 04 01 01 00 03 06 07 | 08 | 04
Posic ao 3 00 00 02 03 00 06 06 | 00 | 01
Posic ao 4 06 02 08 05 02 13 12 | 00 | 07
Posic ao 5 07 03 08 05 03 13 11 | 00 | 07
Posic ao 6 04 02 03 04 02 13 10 | 00 | 07
Posic ao 7 07 02 01 03 05 07 08 | 00 | 00
Posic ao 8 04 00 00 02 02 04 05 | 00 | 00
Posic ao 9 04 00 00 02 02 04 05 | 00 | 00
Passos 4 e 5: Como o n umero de tracos em linhas e colunas que cobrem zeros e menor
que nove, devemos sutrair 1, que e a menor entrada nao riscada, de todas as entradas nao
riscadas e somar 1 `as entradas riscadas por dois tracos. Em seguida, riscamos todos os
36 FAMAT em Revista - Nmero 04 - Abril de 2005
zeros da matriz com o menor n umero de tracos possvel.
Jog.1 Jog.2 Jog.3 Jog.4 Jog.5 Jog.6 Jog.7 Jog.8 Jog.9
Posic ao 1 04 | 06 | 13 15 05 00 00 | 21 | 08
Posic ao 2 04 | 01 | 01 00 03 06 07 | 09 | 05
Posic ao 3 00 | 00 | 02 03 00 06 06 | 01 | 02
Posic ao 4 05 | 01 | 07 04 01 12 11 | 00 | 07
Posic ao 5 06 | 02 | 07 04 02 12 10 | 00 | 07
Posic ao 6 03 | 01 | 02 03 01 12 09 | 00 | 07
Posic ao 7 06 | 01 | 00 02 04 06 07 | 00 | 00
Posic ao 8 04 | 00 | 00 02 02 04 05 | 01 | 01
Posic ao 9 04 | 00 | 00 02 02 04 05 | 01 | 01
Passos 3, 4 e 5: O n umero de tracos ainda e menor que nove, por isso devemos continuar
o processo: subtramos as entradas nao riscadas por 1, somamos 1 `as entradas riscadas
por dois tracos 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 | 06
Pos.3 00 | 01 | 03 03 | 00 06 06 | 02 | 03
Pos.4 04 | 01 | 07 03 | 00 11 10 | 00 | 07
Pos.5 05 | 02 | 07 03 | 01 11 09 | 00 | 07
Pos.6 02 | 01 | 02 02 | 00 11 08 | 00 | 07
Pos.7 05 | 01 | 00 01 | 03 05 06 | 00 | 00
Pos.8 03 | 00 | 00 01 | 01 03 04 | 01 | 01
Pos.9 03 | 00 | 00 01 | 01 03 04 | 01 | 01
Passo 3, 4 e 5: Conseguimos riscar os zeros com oito tracos. Assim, continuamos
subtraindo as entradas nao riscadas por 1 e somando 1 `as entradas nao riscadas. Depois,
riscamos os zeros.
Jog.1 Jog.2 Jog.3 Jog.4 Jog.5 Jog.6 Jog.7 Jog.8 Jog.9
Pos.1 | 04 | 08 | 15 | 15 | 06 00 00 | 23 | 10
Pos.2 | 04 | 03 | 03 | 00 | 04 06 07 | 11 | 07
Pos.3 | 00 | 02 | 04 | 03 | 01 06 06 | 03 | 04
Pos.4 | 03 | 01 | 07 | 02 | 00 10 09 | 00 | 07
Pos.5 | 04 | 02 | 07 | 02 | 01 10 08 | 00 | 07
Pos.6 | 01 | 01 | 02 | 01 | 00 10 07 | 00 | 07
Pos.7 | 04 | 01 | 00 | 00 | 03 04 05 | 00 | 00
Pos.8 | 02 | 00 | 00 | 00 | 01 02 03 | 01 | 01
Pos.9 | 02 | 00 | 00 | 00 | 01 02 03 | 01 | 01
Passos 3, 4 e 5: O n umero de tracos que cobrem os zeros ainda e inferior a nove, ent ao
subtramos 2 das entradas nao riscadas e somamos esse valor `as entradas riscadas por dois
FAMAT em Revista - Nmero 04 - Abril de 2005 37
tracos e, em seguida, riscamos os zeros.
Jog.1 Jog.2 Jog.3 Jog.4 Jog.5 Jog.6 Jog.7 Jog.8 Jog.9
Posic ao 1 06 10 17 17 | 08 00 00 | 25 12
Posic ao 2 04 03 03 00 | 04 04 05 | 11 07
Posic ao 3 00 02 04 03 | 01 04 04 | 03 04
Posic ao 4 03 01 07 02 | 00 08 07 | 00 07
Posic ao 5 04 02 07 02 | 01 08 06 | 00 07
Posic ao 6 01 01 02 01 | 00 08 05 | 00 07
Posic ao 7 04 01 00 00 | 03 02 03 | 00 00
Posic ao 8 02 00 00 00 | 01 00 01 | 01 01
Posic ao 9 02 00 00 00 | 01 00 01 | 01 01
Passo 3, 4 e 5: O n umero de tracos que cobrem os zeros ainda e inferior a nove, entao
subtramos 1 das entradas nao riscadas e somamos esse valor `as entradas riscadas por dois
tracos e, em seguida, riscamos os zeros.
Jog.1 Jog.2 Jog.3 Jog.4 Jog.5 Jog.6 Jog.7 Jog.8 Jog.9
Posic ao 1 06 10 17 17 09 00 00 26 12
Posic ao 2 04 03 03 00 05 04 05 12 07
Posic ao 3 00 02 04 03 02 04 04 04 04
Posic ao 4 02 01 06 01 00 07 06 00 06
Posic ao 5 03 01 06 01 01 07 05 00 06
Posic ao 6 00 00 01 00 00 07 04 00 06
Posic ao 7 04 01 00 00 04 02 03 01 00
Posic ao 8 02 00 00 00 02 00 01 02 01
Posic ao 9 02 00 00 00 02 00 01 02 01
Passos 3 e 4: Agora, o n umero mnimo de tracos utilizados para riscar todos os zeros
da matriz e nove e, pelo Metodo H ungaro, e possvel uma alocacao otima de zeros (nao
unica) dada abaixo:
Jog.1 Jog.2 Jog.3 Jog.4 Jog.5 Jog.6 Jog.7 Jog.8 Jog.9
Posic ao 1 6 10 17 17 9 0 0 26 12
Posic ao 2 4 3 3 0 5 4 5 12 7
Posic ao 3 0 2 4 3 2 4 4 4 4
Posic ao 4 2 1 6 1 0 7 6 0 6
Posic ao 5 3 1 6 1 1 7 5 0 6
Posic ao 6 0 0 1 0 0 7 4 0 6
Posic ao 7 4 1 0 0 4 2 3 1 0
Posic ao 8 2 0 0 0 2 0 1 2 1
Posic ao 9 2 0 0 0 2 0 1 2 1
Conclusao: Nesse caso, o treinador deve escalar o jogador 1 na posic ao 3, o jogador
2 na 6, o jogador 3 na 8, o jogador 4 na 2, o jogador 5 na 4, o jogador 6 na 9, o jogador
7 na 1, o jogador 8 na 5 e o jogador 9 na 7. Escalando o time desse jeito o tecnico tera o
melhor rendimento do time.
38 FAMAT em Revista - Nmero 04 - Abril de 2005
Referencias
[1] Anton, H & Rorres, C.

Algebra Linear com Aplicacoes. 8a. ed. Porto Alegre:
Editora Bookman, 2001.
[2] Bertsimas, D. & Tsitsiklis, J. N. Introduction to Linear Optimization. Belmont-
Massachussets: Athena Scientic, 1997.
[3] Bodrini, J. L.; Costa, S. I. R.; Figueiredo, V. L. & Wetzler, H. G.

Algebra
Linear. 3a. ed. Sao Paulo: Editora Harbra, 1980.
[4] Egervary, E. On Combinatorial Properties of Matrices. In: Matematikaes Fizikai
Lapok, vol. 38, 1931; translated as On Combinatorial Properties of Matrices by H. W.
Kuhn, Oce of Naval Research Logistics Project Report, Department of Mathematics,
Princeton University, Princeton, NJ, 1953.
[5] Gass, S. I. Linear Programming: methods and applications. 5
th
. ed. New York: Mc
Graw-Hill, 1985.
[6] Hadley, G. Programacao Linear. Rio de Janeiro: Editora Guanabara Dois, 1982.
[7] Kuhn, H. W. The Hungarian Method for the Assignment Problem. In: Naval
Research Logistics Quarterly, vol. 2, n. 1 e 2, 1955, pp. 83-97.
[8] Lipschutz S.

Algebra Linear. 3a. ed. (Colecao Schaum). Sao Paulo: Editora Makron
Books, 1994.
[9] Prado, D. Programacao Linear. 3
a
. ed. Belo Horizonte: Editora DG, 2003.
FAMAT em Revista - Nmero 04 - Abril de 2005 39