emparelhamentos de peso máximo - ime-uspcoelho/mac0325-2008/aulas/aula12.pdf · problema problema...

41
AULA 12 Otimização Combinatória – p. 342

Upload: others

Post on 11-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

AULA 12

Otimização Combinatória – p. 342

Page 2: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Emparelhamentos de peso máximo

Otimização Combinatória – p. 343

Page 3: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

EmparelhamentosUm emparelhamento em um grafo (não-orientado) é umconjunto de arestas que duas-a-duas não tem ponta emcomum.

Exemplo: {b, d} e {c, e} formam um emparelhamento

a

b

c

d

e

f

Otimização Combinatória – p. 344

Page 4: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Peso de arestasSeja G = (N,E) um grafo (não-orientado) e w : E → Z umafunção-peso. O peso de um conjunto de arestas M é

w(M) :=∑

e∈M

w(e) .

Exemplo: Peso das arestas vermelhas é 2

a

b

c

d

e

f

2

2

3

−4

−1

1

5

Otimização Combinatória – p. 345

Page 5: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

ProblemaProblema do emparelhamento de peso máximo: Dado umagrafo bipartido G = (N,E) e uma função-peso w : E → Z,encontrar um emparelhamento de peso máximo.

Otimização Combinatória – p. 346

Page 6: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

ProblemaProblema do emparelhamento de peso máximo: Dado umagrafo bipartido G = (N,E) e uma função-peso w : E → Z,encontrar um emparelhamento de peso máximo.Entra:

a

b

c

d

e

f

1

1

1

1

1

1

1

Otimização Combinatória – p. 346

Page 7: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

ProblemaProblema do emparelhamento de peso máximo: Dado umagrafo bipartido G = (N,E) e uma função-peso w : E → Z,encontrar um emparelhamento de peso máximo.Sai:

a

b

c

d

e

f

1

1

1

1

1

1

1

Otimização Combinatória – p. 346

Page 8: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

ProblemaProblema do emparelhamento de peso máximo: Dado umagrafo bipartido G = (N,E) e uma função-peso w : E → Z,encontrar um emparelhamento de peso máximo.Entra:

a

b

c

d

e

f

−1

1

2

1

3

2

1

Otimização Combinatória – p. 346

Page 9: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

ProblemaProblema do emparelhamento de peso máximo: Dado umagrafo bipartido G = (N,E) e uma função-peso w : E → Z,encontrar um emparelhamento de peso máximo.Sai:

a

b

c

d

e

f

−1

1

2

1

3

2

1

Otimização Combinatória – p. 346

Page 10: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Caminhos aumentadoresSeja M um emparelhamento em um grafo G.Um caminho 〈v0, v1, v2, . . . , vt〉 é M -aumentador se

t é ímpar e v0, v1, . . . , vt são distintos;

v1v2, v3v4, . . . , vt−2vt−1 então em M ;

v0 e v1 não são pontas de arestas em M .

Exemplo: 〈a, b, c, d, e, f〉 é um caminho M -aumentador

a b c d e f

Se P é um caminho M -aumentador, então M ′ = M ⊕ P éum emparelhamento tal que |M ′| = |M | + 1

Otimização Combinatória – p. 347

Page 11: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Método húngaroDesenvolvido por H.W. Kuhn [1955], usando trabalho deEgerváry [1931].

Um emparelhamento M é extremo se tem peso máximodentre os emparelhamentos com |M | arestas.

O método húngaro encontra, iterativamente,

emparelhamentos extremos M0,M1,M2, . . . taisque |Mk| = k

e devolve o emparelhamento de peso máximo entreM0,M1,M2, . . .

Otimização Combinatória – p. 348

Page 12: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

IteraçãoSuponha que M é um emparelhamento extremo.

Defina uma função-custo c : E → Z da seguinte maneira:

c(e) := w(e) se e ∈ M

c(e) := −w(e) se e 6∈ M

Vale que

Se P é um caminho M -aumentador de customínimo, então M ′ := M ⊕ P é um emparelhamentoextremo.

Otimização Combinatória – p. 349

Page 13: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a

b

c

d

e

f

−1

1

2

1

3

2

1

M 0

Otimização Combinatória – p. 350

Page 14: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a

b

c

d

e

f

1

−1

−2

−1

−3

−2

−1

M 0

Otimização Combinatória – p. 350

Page 15: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a

b

c

d

e

f

−1

1

2

1

3

2

1

M 1

Otimização Combinatória – p. 350

Page 16: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a

b

c

d

e

f

1

−1

−2

−1

3

−2

−1

M 1

Otimização Combinatória – p. 350

Page 17: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a

b

c

d

e

f

−1

1

2

1

3

2

1

M 2

Otimização Combinatória – p. 350

Page 18: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a

b

c

d

e

f

1

−1

2

−1

3

−2

−1

M 2

Otimização Combinatória – p. 350

Page 19: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a

b

c

d

e

f

1

−1

2

−1

3

−2

−1

M 2

Otimização Combinatória – p. 350

Page 20: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a

b

c

d

e

f

−1

1

2

1

3

2

1

M 3

Otimização Combinatória – p. 350

Page 21: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

DemonstraçãoConsidere qualquer emparelhamento N com |M | + 1arestas.

Como |N | > |M |, então M ∪ N contém um componente Q

que é um caminho M -aumentador.

0

bc

d

e

f

g

h

i

k

l

m

Otimização Combinatória – p. 351

Page 22: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

DemonstraçãoConsidere qualquer emparelhamento N com |M | + 1arestas.

Como |N | > |M |, então M ∪ N contém um componente Q

que é um caminho M -aumentador.

0

bc

d

e

f

g

h

i

k

l

m

Otimização Combinatória – p. 351

Page 23: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

DemonstraçãoComo P é um caminho M -aumentador de custo mínimotemos que c(Q) ≥ c(P ).

Como N ⊕Q é um emparelhamento com |M | arestas e M éextremo, temos que

w(N ⊕ Q) ≤ w(M).

Portanto,

w(N) = w(N ⊕ Q) − c(Q)

≤ w(M) − c(Q)

≤ w(M) − c(P )

= w(M ⊕ P ) = w(M ′).

Otimização Combinatória – p. 352

Page 24: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Caminho aumentador mínimoRecebe uma grafo bipartido (N,E) com bipartição (U,W ),uma função-custo c : E → Z e um emparelhamento M e

Devolve um caminho M -aumentador P de custo mínimo, seum tal caminho existe.

Oriente cada aresta uw do grafo, com u em U e w em W daseguinte maneira:

se uw está em M oriente a aresta de w para u,

se uw não está em M oriente a aresta de u para w.

Seja (N,A) o grafo (orientado) resultante.

Otimização Combinatória – p. 353

Page 25: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Caminho aumentador mínimo

Seja U ′ os nós em U que não são pontas em M .

Seja W ′ os nós em W que não são pontas em M .

A todo caminho M -aumentador em (N,E) corresponde umcaminho em (N,A) com ponta inicial em U ′ e ponta final emW ′ de mesmo custo e vice-versa.

O algoritmo devolve um caminho M -aumentador P quecorresponde a um caminho de custo mínimo de U ′ a W ′ narede (N,A, c).

Otimização Combinatória – p. 354

Page 26: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a b

c d

e f

gh i

64

324

4

2 5 0

8 27

3

Otimização Combinatória – p. 355

Page 27: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a b

c d

e f

gh i

−6−4 −3

−2−4

−4

−2 −50

−8 −2 −7

−3

Otimização Combinatória – p. 355

Page 28: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a b

c d

e f

gh i

6

4 3

24

4

25 0

8 2 7

3

Otimização Combinatória – p. 355

Page 29: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a b

c d

e f

gh i

−6

−4 −3−2

−4

−4

−2 −5 08 −2 −7

−3

Otimização Combinatória – p. 355

Page 30: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a b

c d

e f

gh i

−6

−4 −3

−2−4

−4

−2 −5 08 −2 −7

−3

Otimização Combinatória – p. 355

Page 31: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a b

c d

e f

gh i

6

4 3

24

4

2 5 08 2 7

3

Otimização Combinatória – p. 355

Page 32: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a b

c d

e f

gh i

6

−4 −3

−2−4

−4

−2 −5 0−8

−2 7

−3

Otimização Combinatória – p. 355

Page 33: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a b

c d

e f

gh i

6

−4 −3

−2−4

−4

−2 −5 0−8

−2 7

−3

Otimização Combinatória – p. 355

Page 34: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a b

c d

e f

gh i

6

4 3

24

4

2 5 08

2 7

3

Otimização Combinatória – p. 355

Page 35: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a b

c d

e f

gh i

6

−4 −3

−24

−4

−2 −5 0−8

−2 7

−3

Otimização Combinatória – p. 355

Page 36: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a b

c d

e f

gh i

6

−4 −3

−24

−4

−2 −5 0−8

−2 7

−3

Otimização Combinatória – p. 355

Page 37: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Exemplo

Interferência!puta que o pariu!!!

a b

c d

e f

gh i

6

4 3

24

4

2 5 08

2 7

3

Otimização Combinatória – p. 355

Page 38: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Caminhos de custo mínimoFato. Se M é extremo, então a rede auxiliar (N,A, c)contruída em cada iteração não possui ciclos negativos.

Demonstração: Suponha que O é um circuito tal quec(O) < 0.

Podemos supor O = 〈u0, w1, u1, . . . , wt, ut〉 com u0 = ut,u1, . . . , ut em U e w1, . . . , wt em W .

Assim, as aresta w1u1, . . . , wtut estão em M e as arestasu0w1, . . . , ut−1wt não estão em M .

Logo, M ′ = M ⊕ O é um emparelhamento com |M | arestastal que

w(M ′) = w(M) − c(O) > w(M),

contrariando o fato de que M é extremo.

Otimização Combinatória – p. 356

Page 39: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Consumo de tempo

O consumo de tempo de cada iteração é o consumo detempo de um algoritmo para o problema do caminhomínimo em redes com custos negativos, mas sem ciclosnegativos. O algoritmo FORD-BELLMAN faz o serviço.

Assim, temos a seguinte conclusão:

O consumo de tempo do algoritmo descrito paraencontrar um emparelhamento de peso máximo em

um grafo bipartido é O(n(nm)) = O(n2m).

Otimização Combinatória – p. 357

Page 40: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

Aplicação: optimal assignmentSuponha que temos n tarefas que devem ser executadasem m máquinas. Além disso, seja c(ij) o custo de executara tarefa j na máquina i. Deseja-se executar as tarefas comcusto total mínimo (suponha m ≥ n).

Este problema pode ser resolvido através do métodohúngaro para encontrar um emparelhamento de pesomáximo:

construa um grafo bipartido completo em que os nos deuma parte correspondam às tarefas e os da outra àsmáquinas;

seja C := max{c(ij) : i é máquina e j é tarefa};

defina o peso w(ij) da aresta ij como W − c(ij).

Assim, um emparelhamento de peso máximo correspondea uma atribuição ótima de máquinas às tarefas.

Otimização Combinatória – p. 358

Page 41: Emparelhamentos de peso máximo - IME-USPcoelho/mac0325-2008/aulas/aula12.pdf · Problema Problema do emparelhamento de peso máximo: Dado uma grafo bipartido G = (N,E) e uma função-pesow

ExercíciosExercício 12.AMostre como utilizando o método húngaro pode-se obter um emparelhamento perfeito depeso mínimo de um grafo bipartido. Um emparelhamento M é perfeito se cada nó do grafoé ponta de uma aresta em M .

Exercício 12.BSeja A = (A1, A2, . . . , An) uma família de subconjuntos de um conjunto finito X. Umsubconjunto Y de X é chamado de uma transversal ou de um sistema de representantesdistintos (SRD) de A se existe uma bijeção π : {1, 2, . . . , n} → Y tal que π(i) está em Ai

para cada i = 1, . . . , n.Dados um família A e uma função-peso w : X → Z, mostre como através do métodohúngaro pode-se obter um SRD de peso mínimo.

Otimização Combinatória – p. 359