Você está na página 1de 8

96

Cap tulo 3. Extenses da Programao Linear o ca

cedimento para todos os pares origem-destino. Com isso obtm-se um problema e equivalente com rotas diretas entre origens e destinos, ao qual o mtodo Simplex e para transportes pode ser aplicado. O procedimento acima vivel quanto o nmero de rotas ligando origens e a u destinos relativamente pequeno. Se este no for o caso, uma alternativa adotar e a e a estratgia de modelagem e resoluao conhecida como programao em redes. e c ca

3.4

Problemas de Atribuio ca

Nos chamados problemas de atribuiao (assignment), dados um conjunto de n c trabalhadores e um conjunto de n tarefas a serem executas, deseja-se associar cada trabalhador a uma unica tarefa. A formulaao geral do problema a seguinte: c e
n n

minimizar z =
i=1 j=1 n

cij xij xij = 1, j = 1, 2, . . . , n i = 1, 2, . . . , n, i = 1, 2, . . . , n; j = 1, 2, . . . , n,

(PA)

sujeito a
i=1 n

xij = 1,
j=1

xij = 0 ou xij = 1

sendo que xij = 1 signica que o trabalhador i atribu a tarefa j e xij = 0, caso e do ` contrrio. O valor de z representa o custo total da atribuiao dos n trabalhadores as a c ` n tarefas; cij o custo unitrio de se atribuir o trabalhador i a tarefa j. O primeiro e a ` conjunto de n restrioes de igualdade garante que cada tarefa executada por um c e unico trabalhador, o que no exclui a possibilidade de que um mesmo trabalhador a execute mais de uma tarefa. O segundo conjunto de n restrioes de igualdade c garante que cada trabalhador executa uma unica tarefa. A formulaao (PA) pode ser vista como um caso especial da formulaao (PT), c c problemas de transporte, nos quais as origens representam trabalhadores, os destinos, tarefas, e as produoes e as demandas so unitrias. O incoveniente de tratar c a a (PA) como um problema de transporte a alta degenerescncia das soluoes bsicas e e c a do problema. De fato, (PA) possui n2 variveis, 2n restrioes e 2n 1 restrioes a c c linearmente independentes, o mesmo nmero de variveis bsicas. Como apenas n u a a variveis assumem valor 1, existem sempre n 1 variveis bsicas com valor 0, o a a a que caracteriza soluoes bsicas degeneradas. A aplicaao do mtodo Simplex para c a c e problemas de transportes ao problema (PA) tenderia a ser ineciente.

Mtodo Hngaro e u
O mtodo hngaro, denominaao dada em homenagem aos pesquisadores e u c hngaros que o desenvolveram, explora ecientemente a estrutura do problema u de atribuiao. Como no problema de transporte, as restrioes do problema so c c a representadas por uma tabela, como indicada abaixo.

3.4. Problemas de Atribuio ca x11 x21 . . . xn1 x12 x22 . . . xn2 . . . x1n x2n . . . xnn

97

Observe que qualquer atribuiao vivel de trabalhadores a tarefas tal que c a e a soma de cada linha e a soma de cada coluna igual a 1. Logo, nenhuma linha e ou coluna pode ter mais do que uma varivel assumindo o valor 1. Uma tabela a similar utilizada para representar os custos unitrios do problema, por hiptese e a o no-negativos: a

c11 c21 . . . cn1

c12 c22 . . . cn2

. . .

c1n c2n . . . cnn

Suponha que xij , i, j = 1, 2, . . . , n, seja uma atribuiao fact do problema. c vel ` soma total dos produtos clula-a-clula das duas tabelas anteriores correspondente A e e o valor da funao-objetivo (custo total da atribuiao) do problema: c c z= c11 x11 + c12 x12 + c1n x1n + c21 x21 + c22 x22 + c2n x2n + . . . cn1 xn1 + cn2 xn2 + cnn xnn . Resolver o problema de atribuiao signica atribuir 1 a um conjunto de n c variveis (dentre n2 ) de tal forma que o valor de z seja m a nimo. Intuitivamente as variveis candidatas a assumirem valor 1 so aquelas com menores custos unitrios. a a a Em princ pio se poderia pensar em atribuir 1 as n variveis com os menores custos ` a unitrios, mas geralmente essa atribuiao viola as restrioes do problema. O mtodo a c c e hngaro manipula os custos unitrios do problema de forma a obter uma atribuiao u a c vivel de menor custo total. O mtodo hngaro pode ser justicado com base no a e u mtodo Simplex, mas uma abordagem mais direta utilizada nesta seao. e e c A abordagem adotada baseia-se na seguinte propriedade: a soluao otima de c um problema de otimizaao no se altera quando a funao-objetivo somada uma c a ` c e quantidade constante (positiva ou negativa), isto , para um escalar qualquer, e as soluoes otimas dos problema de minimizar z sujeito a restrioes e minimizar c c z = z + sujeito as mesmas restrioes so idnticas. ` c a e Assuma que xij , i, j = 1, 2, . . . , n uma atribuiao otima vivel do problema e c a (PA). Ento, para i qualquer e i = 1, 2, . . . , n, a i (xi1 + xi2 + + xin ) = i ,

98

Cap tulo 3. Extenses da Programao Linear o ca

pois se a soluao vivel, xi1 + xi2 + + xin = 1 para i = 1, 2, . . . , n. Da mesma c e a maneira, para j qualquer e j = 1, 2, . . . , n, j (x1j + x2j + + xnj ) = j . Denindo i = min{ci1 , ci2 , . . . , cin } e subtraindo i (xi1 + xi2 + + xin ), i = 1, 2, . . . , n

do valor de z, obtm-se uma nova funao-objetivo, cujo valor difere do valor original e c por uma constante (c = 1 2 n ), que apresenta pelo menos n novos custos unitrios nulos, e cujo valor m a nimo tambm atingido por meio da atribuiao e e c xij , i, j = 1, 2, . . . , n. Em seguida realiza-se uma operaao similar envolvendo as c quantidades j = min{c1j , c2j , . . . , cnj }, j = 1, 2, . . . , n. Mais uma vez mantm-se a e otimalidade de xij , i, j = 1, 2, . . . , n e custos unitrios nulos adicionais so criados. a a Variveis com custos nulos so potenciais candidatas a assumirem valor 1. Se a a existir um nmero suciente de custos nulos para permitir que n variveis assumam u a esse valor e ao mesmo tempo as restrioes sejam atendidas, ento o problema de c a atribuiao ter sido resolvido. c a

Mtodo hngaro algoritmo e u


Considere a tabela original de custos unitrios: a c11 c21 . . . cn1 c12 c22 . . . cn2 . . . c1n c2n . . . cnn

1: Encontre o custo m nimo de cada linha e construa uma nova tabela subtraindo os custos de cada linha da tabela original pelo seu custo m nimo; 2: De posse da nova tabela, encontre o custo m nimo de cada coluna e construa uma nova tabela subtraindo os custos de cada coluna pelo seu custo m nimo; 3: Determine o menor nmero de retas (horizontais e/ou verticais) necessrias para u a cobrir todos os zeros da tabela corrente de custos. (Podem haver vrias maneia ras de cobrir os zeros com o mesmo nmero m u nimo de retas). Se exatamente n retas forem determinadas, ento uma atribuiao de custo m a c nimo poder a ser obtida com base nos zeros cobertos pelas retas; o algoritmo trmina. Se e menos do que n retas forem determinadas, siga para o passo 4; 4: Encontre o menor elemento no-nulo, , da tabela corrente de custos nocoberto a a pelas retas determinadas no passo 3. Subtraia de cada elemento nocoberto a pelas retas, adicione a cada elemento coberto por duas retas e volte ao passo 3.

3.4. Problemas de Atribuio ca

99

Observe que as operaoes realizadas no passo 4 so equivalentes a adicionar c a a cada custo de uma linha coberta e subtrair de cada custo de coluna nocoberta. a Com isso, ao menos um novo custo torna-se zero, mantm-se a nonegatividade e a dos custos e a otimalidade da atribuiao. O passo 4 simplesmente executa essas c operaoes com uma pequena economia de clculos. c a Exemplo 3.13 Uma certa empresa possui 4 mquinas e 4 tarefas a serem execua tadas. Cada mquina deve ser atribu a uma unica tarefa; cada tarefa deve ser a da executada por uma unica mquina. Os tempos de preparaao (setup) das mquinas, a c a indicados na tabela abaixo, variam com o tipo de tarefa a ser executada. M/T 1 2 3 4 1 14 2 7 2 2 5 12 8 4 3 8 6 3 6 4 7 5 9 10

A empresa deseja obter a atribuiao de mquinas a tarefas que minimize o c a tempo total de setup. Observe que neste problema os tempos de setup fazem o papel de custos unitrios. (O custo de setup seria proporcional ao tempo requerido.) Observe a ainda que os menores tempos de setup das 4 tarefas so fornecidos pelas mquinas a a 2 ou 4, 4, 3 e 2, respectivamente, mas nenhuma destas atribuioes vivel mesma c e a mquina, duas tarefas. a O mtodo hngaro ser aplicado ao problema. Determina-se inicialmente os e u a tempos m nimos de cada linha da tabela a seguir. 14 2 7 2 5 12 8 4 8 6 3 6 7 5 9 10

Os valores m nimos so 5, 2, 3 e 2, respectivamente. Subtraindo cada linha a do seu respectivo m nimo, obtm-se a tabela abaixo: e 9 0 4 0 0 10 5 2 3 4 0 4 2 3 6 8

Os m nimos de cada coluna da nova tabela so 0, 0, 0 e 2. Subtrair cada a coluna da nova tabela do seu respectivo m nimo resulta na tabela

100 9 0 4 0

Cap tulo 3. Extenses da Programao Linear o ca 0 10 5 2 3 4 0 4 0 1 4 6

Os zeros da tabela anterior so cobertos por um m a nimo de 3 retas horizontais e/ou verticais. Por convenincia, em vez de traar as retas, enfatizamos em negrito e c os elementos das linhas e colunas correspondentes.

9 0 4 0

0 10 5 2

3 4 0 4

0 1 4 6

Como um nmero menor do que 4 retas foi obtido, executa-se o passo seguinte. u O menor valor no-coberto por retas (que no est em negrito) = 1 (posiao a a a e c (2,4)). Subtraindo 1 de cada elemento no-coberto pelas retas e adicionando 1 a a cada elemento coberto por duas retas, chega-se a tabela a seguir.

10 0 4 0

0 9 4 1

4 4 0 4

0 0 3 5

Os zeros da tabela acima so cobertos por um m a nimo de 4 retas horizontais e/ou verticais, como na tabela abaixo, o que indica o trmino do algoritmo. As e variveis que assumem valor 1 so determinadas entre aquelas associadas a custos a a nulos. 10 0 4 0 0 9 4 1 4 4 0 4 0 0 3 5

A anlise da tabela nal indica que a unica maneira da tarefa 2 ser executada a por meio da mquina 1, isto , x12 = 1. Com isso, x14 = 0. Da mesma forma, a e a e tarefa 3 s pode ser executada pela mquina 3, x33 = 1, e a tarefa 4, pela mquina o a a 2, x24 = 1. Com isso, x21 = 0. Finalmente, a tarefa 1 deve ser executada pela mquina 4, x41 = 1. As demais variveis so iguais a zero. a a a 2

3.4. Problemas de Atribuio ca

101

Exemplo 3.14 O revezamento 4100 medley envolve quatro nadadores diferentes, os quais nadam sucessivamente distncias de 100 m nos estilos costa, peito, borboleta a e livre. O treinador da equipe possui seis nadadores que podem fazer parte do revezamento. Os tempos mdios (em segundos) dos nadadores nos estilos individuais e so os seguintes: a Nadador 1 2 3 4 5 6 Costa 65 67 68 67 71 69 Peito 73 70 72 75 69 71 Borboleta 63 65 69 70 75 66 Livre 57 58 55 59 57 59

Como o treinador deve atribuir nadadores a estilos de forma a minimizar a soma dos tempos obtidos pelos quatro nadadores no revezamento ? Para resolver o problema pelo mtodo hngaro ser necessrio criar dois estilos e u a a adicionais, nos quais os 6 nadadores tero tempos mdios iguais a zero. Resolve-se a e o problema resultante e os nadadores designados para os estilos ct cios cam de fora do revezamento. A tabela inicial para a aplicaao do mtodo c e e 65 67 68 67 71 69 73 70 72 75 69 71 63 65 69 70 75 66 57 58 55 59 57 59 0 0 0 0 0 0 0 0 0 0 0 0

Os valores m nimos das linhas so todos iguais a zero. A tabela no alterada a a e no passo 1 do algoritmo. Os valores m nimos das colunas so 65, 69, 63, 55, 0 e 0. a Subtraindo os elementos das colunas dessas quantidades obtm-se a tabela abaixo. e 0 2 3 2 6 4 4 1 3 6 0 2 0 2 6 7 12 3 2 3 0 4 2 4 0 0 0 0 0 0 0 0 0 0 0 0

O menor nmero de retas cobrindo os zeros da tabela resultante 5. Uma u e alternativa de cobertura com 5 retas indicada na tabela a seguir. Em vez de retas, e os elementos das linhas e colunas cobertas esto enfatizados em negrito. a

102 0 2 3 2 6 4 4 1 3 6 0 2

Cap tulo 3. Extenses da Programao Linear o ca 0 2 6 7 12 3 2 3 0 4 2 4 0 0 0 0 0 0 0 0 0 0 0 0

Como um nmero de retas menor do que 6 foi determinado, executa-se o u prximo passo do algoritmo. O menor valor no-coberto pelas retas 1 (posiao o a e c (2,2)). Subtraindo 1 de cada elemento no-coberto pelas retas e adicionando 1 a a cada elemento coberto por duas retas, chega-se a tabela a seguir. 0 1 3 1 6 3 4 0 3 5 0 1 0 1 6 6 12 2 2 2 0 3 2 3 1 0 1 0 1 0 1 0 1 0 1 0

O menor nmeros de retas cobrindo os zeros da tabela acima novamente 5. u e Uma alternativa de cobertura com 5 retas indicada na tabela abaixo. e 0 1 3 1 6 3 4 0 3 5 0 1 0 1 6 6 12 2 2 2 0 3 2 3 1 0 1 0 1 0 1 0 1 0 1 0

O menor valor no-coberto pelas retas 1 (em duas posioes). Subtraindo 1 a e c de cada elemento no-coberto pelas retas e adicionando 1 a cada elemento coberto a por duas retas, chega-se a tabela a seguir. 0 0 3 0 5 2 5 0 4 5 0 1 0 0 6 5 11 1 2 1 0 2 1 2 2 0 2 0 1 0 2 0 2 0 1 0

Agora so necessrias 6 retas para cobrir os zeros da tabela. Uma alternativa a a de cobertura com 6 retas indicada na tabela abaixo. e

3.4. Problemas de Atribuio ca 0 0 3 0 5 2 5 0 4 5 0 1 0 0 6 5 11 1 2 1 0 2 1 2 2 0 2 0 1 0 2 0 2 0 1 0

103

Na ultima tabela existe pelo menos uma atribuiao de nadadores a estilos que c faz com que o tempo total do revezamento seja m nimo. O nadador 5 deve nadar o estilo 2, x52 = 1, implicando x22 = 0. O nadador 3 deve nadar o estilo 4, x34 = 1. a Se o nadador 1 nadar o estilo 1, x11 = 1, implicando x21 = x41 = 0, ento o estilo 3 deve ser nadado pelo nadador 2, x23 = 1. Os nadadores 4 e 6 no participam do a revezamento pois devem nadar os est ct los cios 5 e 6. Existe outra soluao para o revezamento que fornece tempo total m c nimo. O nadador 1 nada o estilo 3, o nadador dois nada o estilo 1, e estilos 2 e 4 pelos nadadores 5 e 3, como na soluao anterior. c 2

Você também pode gostar