• Nenhum resultado encontrado

Variantes do Caixeiro Viajante

N/A
N/A
Protected

Academic year: 2022

Share "Variantes do Caixeiro Viajante"

Copied!
85
0
0

Texto

(1)

Análise de Algoritmos

Parte destes slides são adaptações de slides

do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina.

(2)

Problema do Caixeiro Viajante

Dados

grafo G

comprimento lij da aresta ij (ij ∈ EG)

(3)

Problema do Caixeiro Viajante

Dados

grafo G

comprimento lij da aresta ij (ij ∈ EG)

Circuito hamiltoniano: circuito que passa por todos os vértices

(4)

Problema do Caixeiro Viajante

Dados

grafo G

comprimento lij da aresta ij (ij ∈ EG)

Circuito hamiltoniano: circuito que passa por todos os vértices

Problema (TSP): Dados G e l, encontrar circuito

hamiltoniano C em G de comprimento l(C) mínimo.

(5)

Variantes do Caixeiro Viajante

TSP métrico

grafo completo

função comprimento l satisfaz

desigualdade triangular: lij ≤ lik + lkj ∀i, j, k ∈ VG

j i

k

(6)

Variantes do Caixeiro Viajante

TSP métrico

grafo completo

função comprimento l satisfaz

desigualdade triangular: lij ≤ lik + lkj ∀i, j, k ∈ VG

j i

k

Resultados Conhecidos:

NP-difícil mesmo se le ∈ {1, 2} para toda aresta e [GJ79]

Difícil de aproximar [SG76]

3/2-aproximação para o caso métrico [C76]

PTAS para o caso euclideano [A98,M99]

(7)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices têm grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(8)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices tem grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(9)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices tem grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(10)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices tem grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(11)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices tem grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(12)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices tem grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(13)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices tem grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(14)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices tem grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(15)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices tem grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(16)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices tem grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(17)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices tem grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(18)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices tem grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(19)

2 -aproximação p/o TSP Métrico

(1) Árvore geradora de comprimento mínimo (polinomial)

(2) Dobre as arestas da árvore (todos os vértices tem grau par)

(3) Obtenha ciclo euleriano P (polinomial) ciclo euleriano: passeio fechado que passa

exatamente uma vez por cada aresta

(4) Obtenha de P circuito hamiltoniano C (5) Devolva C

(20)

2 -Aproximação p/o TSP Métrico

Algoritmo TSPM-Rosenkrantz-Stearn-Lewis (G, l) T ← MST(G, l)

T ← T + T

P ← EULER(T) C ← ATALHO(P ) devolve C

(21)

2 -Aproximação p/o TSP Métrico

Algoritmo TSPM-Rosenkrantz-Stearn-Lewis (G, l) T ← MST(G, l)

T ← T + T

P ← EULER(T) C ← ATALHO(P ) devolve C

Tempo de execução: m log n n: o número de vértices de G m: o número de arestas de G

(22)

2 -Aproximação p/o TSP Métrico

Delimitação inferior: OPT ≥ l(T )

onde T é árvore geradora de comprimento mínimo

(23)

2 -Aproximação p/o TSP Métrico

Delimitação inferior: OPT ≥ l(T )

onde T é árvore geradora de comprimento mínimo Prova:

C: circuito hamiltoniano de comprimento mínimo e: aresta de C

C − e é árvore geradora

(24)

2 -Aproximação p/o TSP Métrico

Delimitação inferior: OPT ≥ l(T )

onde T é árvore geradora de comprimento mínimo Prova:

C: circuito hamiltoniano de comprimento mínimo e: aresta de C

C − e é árvore geradora

OPT = l(C) ≥ l(C − e) ≥ l(T). ✷

(25)

2 -Aproximação p/o TSP Métrico

Delimitação inferior: OPT ≥ l(T )

onde T é árvore geradora de comprimento mínimo Prova:

C: circuito hamiltoniano de comprimento mínimo e: aresta de C

C − e é árvore geradora

OPT = l(C) ≥ l(C − e) ≥ l(T). ✷

Teorema: TSPM-Rosenkrantz-Stearn-Lewis é uma 2-aproximação polinomial para o TSP métrico.

(26)

2 -Aproximação p/o TSP Métrico

Delimitação inferior: OPT ≥ l(T )

onde T é árvore geradora de comprimento mínimo Prova:

C: circuito hamiltoniano de comprimento mínimo e: aresta de C

C − e é árvore geradora

OPT = l(C) ≥ l(C − e) ≥ l(T). ✷

Teorema: TSPM-Rosenkrantz-Stearn-Lewis é uma 2-aproximação polinomial para o TSP métrico.

Prova: l(C) ≤ l(P) = l(T) = 2 l(T ) ≤ 2 OPT. ✷

(27)

Algoritmo de Christofides

(1) Árvore geradora de comprimento mínimo

(28)

Algoritmo de Christofides

(1) Árvore geradora de comprimento mínimo

(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)

(29)

Algoritmo de Christofides

(1) Árvore geradora de comprimento mínimo

(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)

(30)

Algoritmo de Christofides

(1) Árvore geradora de comprimento mínimo

(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)

(3) Junte os dois obtendo T euleriano

(31)

Algoritmo de Christofides

(1) Árvore geradora de comprimento mínimo

(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)

(3) Junte os dois obtendo T euleriano (4) Obtenha ciclo euleriano P de T

(32)

Algoritmo de Christofides

(1) Árvore geradora de comprimento mínimo

(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)

(3) Junte os dois obtendo T euleriano (4) Obtenha ciclo euleriano P de T

(5) Obtenha de P circuito hamiltoniano C

(33)

Algoritmo de Christofides

(1) Árvore geradora de comprimento mínimo

(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)

(3) Junte os dois obtendo T euleriano (4) Obtenha ciclo euleriano P de T

(5) Obtenha de circuito hamiltoniano

(34)

Algoritmo de Christofides

Algoritmo TSPM-Christofides (G, l) T ← MST(G, l)

I ← conjunto de vértices de grau ímpar de T M ← EDMONDS(G[I], l)

T ← T + M P ← EULER(T) C ← ATALHO(P ) devolve C

(G[I]: subgrafo de G induzido por I)

(35)

Algoritmo de Christofides

Algoritmo TSPM-Christofides (G, l) T ← MST(G, l)

I ← conjunto de vértices de grau ímpar de T M ← EDMONDS(G[I], l)

T ← T + M P ← EULER(T) C ← ATALHO(P ) devolve C

(G[I]: subgrafo de G induzido por I) Tempo de execução: n3

(n: o número de vértices de G)

(36)

Algoritmo de Christofides

Uma segunda delimitação inferior: OPT ≥ 2 l(M) onde M é e. p. de comprimento mínimo em G[I]

(37)

Algoritmo de Christofides

Uma segunda delimitação inferior: OPT ≥ 2 l(M) onde M é e. p. de comprimento mínimo em G[I]

Pr: C: circuito hamiltoniano de comprimento mínimo I: conj. vért. de grau ímpar de T (|I| é par)

C: circuito induzido por C em I

(38)

Algoritmo de Christofides

Uma segunda delimitação inferior: OPT ≥ 2 l(M) onde M é e. p. de comprimento mínimo em G[I]

Pr: C: circuito hamiltoniano de comprimento mínimo I: conj. vért. de grau ímpar de T (|I| é par)

C: circuito induzido por C em I

(39)

Algoritmo de Christofides

Uma segunda delimitação inferior: OPT ≥ 2 l(M) onde M é e. p. de comprimento mínimo em G[I]

Pr: C: circuito hamiltoniano de comprimento mínimo I: conj. vért. de grau ímpar de T (|I| é par)

C: circuito induzido por C em I

C determina dois e. p. em G[I]: M e M

(40)

Algoritmo de Christofides

Uma segunda delimitação inferior: OPT ≥ 2 l(M) onde M é e. p. de comprimento mínimo em G[I].

Prova:

2 l(M) ≤ l(M1) + l(M2)

= l(C)

≤ l(C) (pela desigualdade triangular)

= OPT .

(41)

Algoritmo de Christofides

Teorema: TSPM-Christofides é uma 1,5-aproximação polinomial para o TSP métrico.

(42)

Algoritmo de Christofides

Teorema: TSPM-Christofides é uma 1,5-aproximação polinomial para o TSP métrico.

Prova:

l(C) ≤ l(P )

= l(T )

= l(T ) + l(M)

≤ OPT + 1

2 OPT

= 3

2 OPT .

(43)

Algoritmo de Christofides

Teorema: TSPM-Christofides é uma 1,5-aproximação polinomial para o TSP métrico.

Prova:

l(C) ≤ l(P )

= l(T )

= l(T ) + l(M)

≤ OPT + 1

2 OPT

= 3

2 OPT .

✷ Melhor algoritmo de aproximação conhecido

(44)

Algoritmo de Christofides

A análise é justa.

(45)

Algoritmo de Christofides

A análise é justa.

Christofides

2n + 1 vértices

(46)

Algoritmo de Christofides

A análise é justa.

Christofides

2n + 1 vértices

(47)

Algoritmo de Christofides

A análise é justa.

Christofides

2n + 1 vértices Comprimento: 3n

(48)

Algoritmo de Christofides

A análise é justa.

Christofides

2n + 1 vértices Comprimento: 3n Circuito ótimo

Comprimento: 2n + 1

(49)

TSP Euclideano

PTAS: esquema de aproximação polinomial

(1 + ǫ)-aproximação polinomial para todo ǫ > 0 fixo

Arora’96 e Mitchel’96: PTAS para o TSP euclideano Ideia:

(50)

TSP Euclideano

PTAS: esquema de aproximação polinomial

(1 + ǫ)-aproximação polinomial para todo ǫ > 0 fixo

Arora’96 e Mitchel’96: PTAS para o TSP euclideano Ideia:

portal

(51)

TSP Euclideano

PTAS: esquema de aproximação polinomial

(1 + ǫ)-aproximação polinomial para todo ǫ > 0 fixo

Arora’96 e Mitchel’96: PTAS para o TSP euclideano Ideia:

portal

(52)

TSP Euclideano

PTAS: esquema de aproximação polinomial

(1 + ǫ)-aproximação polinomial para todo ǫ > 0 fixo

Arora’96 e Mitchel’96: PTAS para o TSP euclideano Ideia:

portal

(53)

TSP Euclideano

PTAS: esquema de aproximação polinomial

(1 + ǫ)-aproximação polinomial para todo ǫ > 0 fixo

Arora’96 e Mitchel’96: PTAS para o TSP euclideano Ideia:

portal

(54)

TSP Euclideano

PTAS: esquema de aproximação polinomial

(1 + ǫ)-aproximação polinomial para todo ǫ > 0 fixo

Arora’96 e Mitchel’96: PTAS para o TSP euclideano Ideia:

Circuito que respeita portal: entra e sai dos quadrados da dissecção através de portais.

Algoritmo: Encontra um circuito hamiltoniano mais curto que respeita os portais por programação dinâmica.

Tal circuito está tão próximo quando se queira de um TSP tour.

(55)

Resultado de Inaproximabilidade

α : N N função polinomialmente computável

Teorema (Sahni e Gonzalez ’76): Se existir

α(n)-aproximação polinomial p/o TSP(G, l), onde n := |VG|, então P=NP.

(56)

Resultado de Inaproximabilidade

α : N N função polinomialmente computável

Teorema (Sahni e Gonzalez ’76): Se existir

α(n)-aproximação polinomial p/o TSP(G, l), onde n := |VG|, então P=NP.

Problema HC: Dado G, decidir se G tem ou não um circuito hamiltoniano.

NP-completo [K72]

(57)

Resultado de Inaproximabilidade

Teorema (Sahni e Gonzalez ’76): Se existir

α(n)-aproximação polinomial p/o TSP(G, l), onde n := |VG|, então P=NP.

Pr: ← A α(n)-aproximação polinomial p/o TSP ← A

← B algoritmo polinomial p/o HC ← B

(58)

Resultado de Inaproximabilidade

Teorema (Sahni e Gonzalez ’76): Se existir

α(n)-aproximação polinomial p/o TSP(G, l), onde n := |VG|, então P=NP.

Pr: ← A α(n)-aproximação polinomial p/o TSP ← A

← B algoritmo polinomial p/o HC ← B

(59)

Resultado de Inaproximabilidade

Teorema (Sahni e Gonzalez ’76): Se existir

α(n)-aproximação polinomial p/o TSP(G, l), onde n := |VG|, então P=NP.

Pr: ← A α(n)-aproximação polinomial p/o TSP ← A

← B algoritmo polinomial p/o HC ← B

Algoritmo B (G)

H grafo completo em VG

para cada e em EG faça le 1

para cada e em EH \ EG faça le α(|VG|)|VG| + 1 C A(H, l)

se l(C) α(|VG|)|VG|

então devolva “Sim”

(60)

Resultado de Inaproximabilidade

A polinomial ⇒ B polinomial

(61)

Resultado de Inaproximabilidade

A polinomial ⇒ B polinomial

se existe circuito hamiltoniano em G, então OPT = |VG| e

l(C) ≤ α(|VG|) OPT = α(|VG|)|VG|.

(62)

Resultado de Inaproximabilidade

A polinomial ⇒ B polinomial

se existe circuito hamiltoniano em G, então OPT = |VG| e

l(C) ≤ α(|VG|) OPT = α(|VG|)|VG|.

se não existe circuito hamiltoniano em G, então

l(C) ≥ α(|VG|)|VG| + 1 pois qq circ. hamilt. usa e 6∈ EG

(i.e., le = α(|VG|)|VG| + 1).

(63)

Para completar...

Blabla

PO PTAS APX NPO

TSPTSP Métrico

TSP Euclideano

(64)

Cobertura por conjuntos

Instância:

conjunto base finito E

coleção S = {S1, . . . , Sm} de subconjuntos de E custo cj > 0 para cada Sj em S

(65)

Cobertura por conjuntos

Instância:

conjunto base finito E

coleção S = {S1, . . . , Sm} de subconjuntos de E custo cj > 0 para cada Sj em S

Objetivo: encontrar cobertura S ⊆ S de E de custo mínimo.

(66)

Cobertura por conjuntos

Instância:

conjunto base finito E

coleção S = {S1, . . . , Sm} de subconjuntos de E custo cj > 0 para cada Sj em S

Objetivo: encontrar cobertura S ⊆ S de E de custo mínimo.

Relaxação linear: Dados E, S e c, encontrar x que minimize P

j cj xj sujeito a P

j:eSj xj ≥ 1 para cada e em E sujeito a P

j:eSjxj ≥ 0 para j = 1, . . . , m

(67)

Cobertura por conjuntos

Instância:

conjunto base finito E

coleção S = {S1, . . . , Sm} de subconjuntos de E custo cj > 0 para cada Sj em S

Objetivo: encontrar cobertura S ⊆ S de E de custo mínimo.

Relaxação linear: Dados E, S e c, encontrar x que minimize P

j cj xj sujeito a P

j:eSj xj ≥ 1 para cada e em E sujeito a P

j:eS xj ≥ 0 para j = 1, . . . , m

(68)

Arredondamento determinístico

ARREDDET (E, S, c) ✄ S = {S1, . . . , Sm} 1 x ← solução da relaxação linear (P) 2 para cada e em E faça

3 fe ← |{j : e ∈ Sj}|

4 f ← max{fe : e ∈ E} 5 I ← {j : xj ≥ 1/f} 6 devolva I

(69)

Arredondamento determinístico

ARREDDET (E, S, c) ✄ S = {S1, . . . , Sm} 1 x ← solução da relaxação linear (P) 2 para cada e em E faça

3 fe ← |{j : e ∈ Sj}|

4 f ← max{fe : e ∈ E} 5 I ← {j : xj ≥ 1/f} 6 devolva I

Como (P) pode ser resolvido em tempo polinomial, o consumo de tempo do algoritmo é polinomial.

(70)

Arredondamento determinístico

ARREDDET (E, S, c) ✄ S = {S1, . . . , Sm} 1 x ← solução da relaxação linear (P) 2 para cada e em E faça

3 fe ← |{j : e ∈ Sj}|

4 f ← max{fe : e ∈ E} 5 I ← {j : xj ≥ 1/f} 6 devolva I

Como (P) pode ser resolvido em tempo polinomial, o consumo de tempo do algoritmo é polinomial.

Mas I é mesmo uma cobertura?

(71)

Arredondamento determinístico

ARREDDET (E, S, c) ✄ S = {S1, . . . , Sm} 1 x ← solução da relaxação linear (P) 2 para cada e em E faça

3 fe ← |{j : e ∈ Sj}|

4 f ← max{fe : e ∈ E} 5 I ← {j : xj ≥ 1/f} 6 devolva I

Como (P) pode ser resolvido em tempo polinomial, o consumo de tempo do algoritmo é polinomial.

Mas I é mesmo uma cobertura?

Como P

j:e∈Sj xj ≥ 1 tem exatamente fe ≤ f termos,

(72)

Arredondamento determinístico

ARREDDET (E, S, c) ✄ S = {S1, . . . , Sm} 1 x ← solução da relaxação linear (P) 2 para cada e em E faça

3 fe ← |{j : e ∈ Sj}|

4 f ← max{fe : e ∈ E} 5 I ← {j : xj ≥ 1/f} 6 devolva I

Lema: I é uma cobertura.

Prova: Como P

j:e∈Sj xj ≥ 1 tem exatamente fe ≤ f termos, um deles tem que valer pelo menos 1/f.

(73)

Arredondamento determinístico

ARREDDET (E, S, c) ✄ S = {S1, . . . , Sm} 1 x ← solução da relaxação linear (P) 2 para cada e em E faça

3 fe ← |{j : e ∈ Sj}|

4 f ← max{fe : e ∈ E} 5 I ← {j : xj ≥ 1/f} 6 devolva I

Lema: I é uma cobertura.

Prova: Como P

j:e∈Sj xj ≥ 1 tem exatamente fe ≤ f termos, um deles tem que valer pelo menos 1/f.

Teorema: ARREDDET é uma -aproximação.

(74)

Arredondamento de solução dual

ARREDDUAL (E, S, c) ✄ S = {S1, . . . , Sm}

1 y ← solução do dual da relaxação linear (P) 2 I ← {j : P

e∈Sj ye = cj} 3 devolva I

(75)

Arredondamento de solução dual

ARREDDUAL (E, S, c) ✄ S = {S1, . . . , Sm}

1 y ← solução do dual da relaxação linear (P) 2 I ← {j : P

e∈Sj ye = cj} 3 devolva I

O consumo de tempo é polinomial.

(76)

Arredondamento de solução dual

ARREDDUAL (E, S, c) ✄ S = {S1, . . . , Sm}

1 y ← solução do dual da relaxação linear (P) 2 I ← {j : P

e∈Sj ye = cj} 3 devolva I

O consumo de tempo é polinomial.

Lema: I é uma cobertura.

Prova feita na aula.

(77)

Arredondamento de solução dual

ARREDDUAL (E, S, c) ✄ S = {S1, . . . , Sm}

1 y ← solução do dual da relaxação linear (P) 2 I ← {j : P

e∈Sj ye = cj} 3 devolva I

O consumo de tempo é polinomial.

Lema: I é uma cobertura.

Prova feita na aula.

Teorema: ARREDDUAL é uma f-aproximação.

Prova feita na aula.

(78)

Algoritmo primal-dual

PRIMALDUAL (E, S, c) ✄ S = {S1, . . . , Sm} 1 para cada e em E faça ye ← 0

2 I ← {j : P

eSj ye = cj}

3 enquanto existe e que não é coberto por I faça 4 ǫ ← min{cj − P

e∈Sj ye : j tal que e ∈ Sj} 5 ye ← ye + ǫ

6 I ← {j : P

eSj ye = cj} 7 devolva I

(79)

Algoritmo primal-dual

PRIMALDUAL (E, S, c) ✄ S = {S1, . . . , Sm} 1 para cada e em E faça ye ← 0

2 I ← {j : P

eSj ye = cj}

3 enquanto existe e que não é coberto por I faça 4 ǫ ← min{cj − P

e∈Sj ye : j tal que e ∈ Sj} 5 ye ← ye + ǫ

6 I ← {j : P

eSj ye = cj} 7 devolva I

Consumo de tempo polinomial, sem resolução de PL!

(80)

Algoritmo primal-dual

PRIMALDUAL (E, S, c) ✄ S = {S1, . . . , Sm} 1 para cada e em E faça ye ← 0

2 I ← {j : P

eSj ye = cj}

3 enquanto existe e que não é coberto por I faça 4 ǫ ← min{cj − P

e∈Sj ye : j tal que e ∈ Sj} 5 ye ← ye + ǫ

6 I ← {j : P

eSj ye = cj} 7 devolva I

Consumo de tempo polinomial, sem resolução de PL!

Claro que I é uma cobertura.

(81)

Algoritmo primal-dual

PRIMALDUAL (E, S, c) ✄ S = {S1, . . . , Sm} 1 para cada e em E faça ye ← 0

2 I ← {j : P

eSj ye = cj}

3 enquanto existe e que não é coberto por I faça 4 ǫ ← min{cj − P

e∈Sj ye : j tal que e ∈ Sj} 5 ye ← ye + ǫ

6 I ← {j : P

eSj ye = cj} 7 devolva I

Consumo de tempo polinomial, sem resolução de PL!

Claro que I é uma cobertura.

Teorema: PRIMALDUAL é uma f-aproximação.

(82)

Algoritmo guloso

GULOSO (E, S, c) ✄ S = {S1, . . . , Sm} 1 I ← ∅

2 para j ← 1 até m faça Sˆj ← Sj

3 enquanto I não é uma cobertura faça 4 k arg min{ cj

|Sˆj| : j é tal que Sˆj 6= ∅}

5 I ← I ∪ {k}

6 para j ← 1 até m faça 7 Sˆj Sˆj \ Sk

8 devolva I

(83)

Algoritmo guloso

GULOSO (E, S, c) ✄ S = {S1, . . . , Sm} 1 I ← ∅

2 para j ← 1 até m faça Sˆj ← Sj

3 enquanto I não é uma cobertura faça 4 k arg min{ cj

|Sˆj| : j é tal que Sˆj 6= ∅}

5 I ← I ∪ {k}

6 para j ← 1 até m faça 7 Sˆj Sˆj \ Sk

8 devolva I

Consumo de tempo polinomial, sem resolução de PL!

(84)

Algoritmo guloso

GULOSO (E, S, c) ✄ S = {S1, . . . , Sm} 1 I ← ∅

2 para j ← 1 até m faça Sˆj ← Sj

3 enquanto I não é uma cobertura faça 4 k arg min{ cj

|Sˆj| : j é tal que Sˆj 6= ∅}

5 I ← I ∪ {k}

6 para j ← 1 até m faça 7 Sˆj Sˆj \ Sk

8 devolva I

Consumo de tempo polinomial, sem resolução de PL!

Claro que I é uma cobertura.

(85)

Algoritmo guloso

GULOSO (E, S, c) ✄ S = {S1, . . . , Sm} 1 I ← ∅

2 para j ← 1 até m faça Sˆj ← Sj

3 enquanto I não é uma cobertura faça 4 k arg min{ cj

|Sˆj| : j é tal que Sˆj 6= ∅}

5 I ← I ∪ {k}

6 para j ← 1 até m faça 7 Sˆj Sˆj \ Sk

8 devolva I

Consumo de tempo polinomial, sem resolução de PL!

Claro que I é uma cobertura.

Teorema: GULOSO é uma -aproximação, onde .

Referências

Documentos relacionados

divaricata a 4% apresentaram uma menor área de ferida no 7º e no 10º dia de tratamento, indicando que a formulação pode apresentar resultados benéficos ao processo

Convenio para desenvolvimento de servicos assistenciais de natureza continuada, para atendimento da populacao local em situacAo de vulnerabilidade, compreendidos na area

Para obter a solução otimizada da rota, utilizou-se da metodologia do Problema do Caixeiro Viajante (PCV), desenvolvendo-se um algoritmo na ferramenta

Fonte documental sobre a formação territorial de São Paulo, Walter Pires; História nacional em São Paulo: o Museu Paulista em 1922, Ana Claúdia Fonseca Brefe; Museu Paulista: espaço

Pois a piscina privativa está presente em cada um dos 39 banga- lôs Super Luxo do Nannai, permitindo total privacidade para casais, famílias ou grupos de amigos... Apartamentos Luxo

Buscando propor novas alternativas de fármacos que combate esta doença um grupo de sul coreanos sintetizaram e testaram in vitro e in vivo os derivados análogos da

A análise de PCA indica que para a molécula se tornar mais ativa precisa ter os valores numéricos de carga no átomo 15 aumentado, ou seja, a densidade eletrônica sobre

Identification of overexpressed genes by in silico EST subtraction and of novel transcripts in yeast- form cells recovered from infected mice.. To select transcripts upregulated