Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C...

18
PESQUISA OPERACIONAL Problema de Designação Professor Volmir Wilhelm Professora Mariana Kleina

Transcript of Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C...

Page 1: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

PESQUISA OPERACIONAL Problema de Designação

Professor Volmir Wilhelm Professora Mariana Kleina

Page 2: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

Caso particular de Transporte

2

Destinos

A B C Oferta

O

rige

ns

1 32 50 200 1

2 40 68 80 1

3 120 104 60 1

Demanda 1 1 1

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 3: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

1

2

3

A

B

C

3

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 4: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

1

2

3

A

B

C

x1A

1,0,,,,,,, 333222111 CBACBACBA xxxxxxxxx

4

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 5: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

Suponhamos que temos m origens e n destinos e a matriz de custos C = cij

njmix

njx

mixas

xcZ

ij

m

iij

n

jij

m

i

n

jijij

,...,2,1,...,2,11,0

,...,2,11

,...,2,11.

min

1

1

1 1

5

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 6: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

njmix

njx

mixas

xcZ

ij

m

iij

n

jij

m

i

n

jijij

,...,2,1,...,2,11,0

,...,2,11

,...,2,11.

min

1

1

1 1

mxm

i

n

jij

1 1

nxm

i

n

jij

1 1

nm

6

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 7: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

7

RESOLUÇÃO VIA ALGORITMO HÚNGARO

i. Balancear ii. Zeros na matriz iii. Designações possíveis iv. Uso do algoritmo iterativo para obter a solução

viável ótima

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 8: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

Algoritmo Húngaro

1º. DEVE-SE IGUALAR NÚMERO DE ORIGENS E DE DESTINOS

BALANCEAR

•Se o número de destinos é menor que o de origens (m > n), basta incluir destinos

fictícios com custos de designação nulos.

•Se o número de origens é menor que o de destinos (m < n), basta incluir origens

fictícias com custos de designação nulos.

8

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 9: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

9

2º. DE MODO ORGANIZADO, GERAR ZEROS NA MATRIZ

•Encontre o custo mínimo de cada uma das n linha e construa uma nova tabela

subtraindo os custos de cada linha da tabela original pelo seu custo mínimo.

•De posse da nova tabela, encontre o custo mínimo de cada uma das n coluna e

construa uma nova tabela subtraindo os custos de cada coluna pelo seu custo mínimo.

Problema de Designação

Algoritmo Húngaro

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 10: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

Gerar zeros na matriz de custos

10

1,0,,,,,,,

1

1

1

1

1

1.

601041208068402005032min

333222111

221

321

321

333

222

111

333222111

CBACBACBA

CBC

BBB

AAA

CBA

CBA

CBA

CBACBACBA

xxxxxxxxx

xxx

xxx

xxx

xxx

xxx

xxxas

xxxxxxxxxZ

CBACBACBA xxxxxxxxxZ 333222111 601041208068402005032

CBACBACBA xxxxxxxxxZ 333222111 601041208068402005032'

ZxxxZZ CBA 111' Z e Z’ possuem os mesmos pontos críticos

a) Procedendo a seguinte alteração

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 11: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

11

1,0,,,,,,,

1

1

1

1

1

1.

601041208068402005032min

333222111

321

321

321

333

222

111

333222111

CBACBACBA

CCC

BBB

AAA

CBA

CBA

CBA

CBACBACBA

xxxxxxxxx

xxx

xxx

xxx

xxx

xxx

xxxas

xxxxxxxxxZ

CBACBACBA xxxxxxxxxZ 333222111 601041208068402005032''

ZxxxZZ AAA 321'' Z e Z’’ possuem os mesmos pontos críticos

b) Procedendo a outra alteração

CBACBACBA xxxxxxxxxZ 333222111 601041208068402005032

Gerar zeros na matriz de custos

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 12: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

12

A B C mínimo

1 32 50 200 32

2 40 68 80 40

3 120 104 60 60

A B C

1 0 18 168

2 0 28 40

3 60 44 0

mínimo 0 18 0

12

A B C

1 0 0 168

2 0 10 40

3 60 26 0

Gerar zeros na matriz de custos – Exemplo

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 13: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

13

3º. DETERMINAR A SOLUÇÃO VIÁVEL ÓTIMA

Passo 1: Usando a matriz com maior número de zeros possíveis, faça as designações

possíveis. Se as n designações forem efetuadas, pare.

Passo 2: Determine o menor número de retas (horizontais e/ou verticais) necessárias para cobrir todos os zeros da tabela corrente de custos. Se forem determinadas n retas, e n for o menor número de retas, então uma atribuição de custo mínimo poderá ser obtida com base nos zeros cobertos pelas retas; neste caso o algoritmo termina. Se menos de n retas forem determinadas, siga para o Passo 3;

Passo 3: Encontre o menor elemento não nulo M, da tabela atual de custos não coberto pelas retas determinadas no Passo 2. Subtraia M de cada elemento não coberto pelas retas, adicione M a cada elemento coberto por duas retas e volte ao Passo 1.

Algoritmo Húngaro

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 14: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

14 14

0 168

10 40

60 26

0

0

0

160604060

1

1

1

Solução

3

2

1

Z

x

x

x

C

A

B

Exemplo 1

A B C

1 32 50 200

2 40 68 80

3 120 104 60

A B C

1 0 0 168

2 0 10 40

3 60 26 0

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 15: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

Exemplo 2

15

14 5 8

2 12 6

7 8 3

2 4 6

14 5 8 0

2 12 6 0

7 8 3 0

2 4 6 0

14 5 8 0

2 12 6 0

7 8 3 0

2 4 6 0

2 4 3 0

12 1 5 0

0 8 3 0

5 4 0 0

0 0 3 0

12 1 5

8 3 0

5 4 0

0 3 0

0

0

0

0

1º (balancear)

5º (anular)

7º 8º

(mínimo)

Problema de Designação

Page 16: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

Exemplo 3

16

14 5 8

2 12 6

7 8 6

2 4 3

14 5 8 0

2 12 6 0

7 8 6 0

2 4 3 0

12 1 5 0

0 8 3 0

5 4 3 0

0 0 0 0

12 1 5

8 3 0

5 4 3 0

0 0 0

0

0

0

continua...

14 5 8 0

2 12 6 0

7 8 6 0

2 4 3 0

2 4 3 0

5º (anular)

8º 9º 7º

Problema de Designação

Page 17: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

Exemplo 3

17

12 1 5

8 3 0

5 4 3 0

0 0 0

0

0

0

11 4 0

8 3 1

4 3 2

0 0 1

0 0

0

0 1

1

1

1

4

3

2

1

D

F

A

B

x

x

x

x

1º 4º

4º 5º

6º 7º

Encontre o menor elemento não nulo M, da

tabela atual de custos não coberto pelas

retas determinadas no Passo anterior.

Subtraia M de cada elemento não coberto

pelas retas, adicione M a cada elemento

coberto por duas retas

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Page 18: Problema de Transportesvolmir/PO_I_12_designacao.pdfCaso particular de Transporte 2 Destinos A B C Oferta s 1 32 50 200 1 2 40 68 80 1 3 120 104 60 1 Demanda 1 1 1 Problema de Designação

18

Problema de Designação

Prof. Volmir Eugênio Wilhelm – Professora Mariana Kleina

Algoritmo Seja um problema de designar n tarefas a n agentes. Passo 1: Gerar zeros

a) Redução por linha: Subtrair a entrada mínima de cada linha de todas as entradas da respectiva linha na matriz de custo. b) Redução por Coluna: Após a conclusão da redução de linha, subtraia a entrada mínima de cada coluna de todas as entradas da respectiva coluna.

Passo 2: Designar zeros

a) Começando com a primeira linha da matriz gerada no Passo 1, examine as linhas uma por uma até encontrar uma linha contendo exatamente um único zero. Em seguida, uma designação, indicada por "", é marcada para esse zero. Então elimine/cruze ("") todos os zeros na coluna em que a designação foi feita. Este procedimento deve ser adotado para cada designação por linha.

b) Quando o conjunto de linhas foi completamente examinado, um procedimento idêntico é aplicado sucessivamente às colunas. Começando com a coluna 1, examine todas as colunas até que uma coluna contendo exatamente um único zero seja encontrada. Em seguida, faça uma designação nessa posição (marque com "") e elimine (cruze com ) os outros zeros na linha em que a designação foi feita.

Continue essas operações sucessivas em linhas e colunas até que todos os zeros tenham sido designados (com ) ou eliminados (com ). Agora existem duas possibilidades:

a) Todos os zeros foram designados ou eliminados/cruzados, ou, b) Pelo menos dois zeros permanecem para designação ou para eliminação em cada linha ou coluna. Nesta situação, tente excluir alguns dos zeros

pelo método de tentativa e erro. Por exemplo, designe o primeiro zero encontrado e continue o procedimento descrito no início do Passo 2. Isso conclui o Passo 2. Após este passo, podemos obter duas situações.

a) Total de zeros designados é igual a n: a designação é ótima. b) Total de zeros designados é menor que n: nesta situação use o Passo 3 e em diante.

Passo 3: Gerar o menor número de linhas para “cobrir/riscar” todos os zeros

Para cobrir/riscar todos os zeros, pelo menos, uma vez você pode adotar o procedimento a seguir. i. Marque (com ) todas as linhas nas quais nenhuma designação foi feita. ii. Procure as posições de zeros nas linhas marcadas e então marque (com ) as colunas correspondentes. iii. Procure as colunas marcadas e encontre as posições dos zeros designados e, em seguida, marque (com ) as linhas correspondentes que não

estão marcadas até agora. iv. Repita o procedimento ii. e iii. até a conclusão da marcação. v. Cubra/risque retas nas linhas desmarcadas e nas colunas marcadas.

Passo 4: Selecionar o mínimo dos elementos não cobertos (não riscados) e fazer: a) Subtraia este menor elemento de todos os elementos não riscados/cobertos. b) Adicione este menor elemento a todos os elementos que estão nas intersecções de duas retas.

Passo 5: Assim, aumenta-se o número de zeros. Agora, modifique a matriz e retorne do Passo 2 para encontrar a designação necessária.