• Nenhum resultado encontrado

Algoritmo de busca local

N/A
N/A
Protected

Academic year: 2022

Share "Algoritmo de busca local"

Copied!
105
0
0

Texto

(1)

Algoritmos de Aproximação

Segundo Semestre de 2012

Aproximação – p. 1

(2)

Escalonamento de máquinas idênticas

Dados: m máquinas

Dados: n tarefas ([n] = {1, . . . , n})

Dados: duração d[i] da tarefa i (i = 1, . . . , n)

um escalonamento é uma partição {M[1], . . . , M[m]} de [n]

tarefas máquinas

Encontrar escalonamento com tempo de conclusão mínimo.

Aproximação – p. 2

(3)

Algoritmo de busca local

Começa com um escalonamento qualquer.

Aproximação – p. 3

(4)

Algoritmo de busca local

Começa com um escalonamento qualquer.

Repita o seguinte:

Seja j uma tarefa que termina por último.

Aproximação – p. 3

(5)

Algoritmo de busca local

Começa com um escalonamento qualquer.

Repita o seguinte:

Seja j uma tarefa que termina por último.

Seja Cj o instante em que a tarefa j termina.

Aproximação – p. 3

(6)

Algoritmo de busca local

Começa com um escalonamento qualquer.

Repita o seguinte:

Seja j uma tarefa que termina por último.

Seja Cj o instante em que a tarefa j termina.

Se existe máquina i ociosa antes do instante Cj − dj, então mova a tarefa j para a máquina i.

Aproximação – p. 3

(7)

Algoritmo de busca local

Começa com um escalonamento qualquer.

Repita o seguinte:

Seja j uma tarefa que termina por último.

Seja Cj o instante em que a tarefa j termina.

Se existe máquina i ociosa antes do instante Cj − dj, então mova a tarefa j para a máquina i.

Quanto tempo consome este algoritmo?

Qual é a razão de aproximação?

Aproximação – p. 3

(8)

Exemplo

m = 3 n = 7

1 2 3 4 5 6 7 8 9 10 11 12 13 14

d[1] d[2] d[3] d[4] d[5] d[6] d[7]

1 2

2

3 7 5 6

M[1]

M[2]

M[3]

{{1, 4, 7}, {2, 5}, {3, 6}} ⇒ Tempo de conclusão = 13

Aproximação – p. 4

(9)

Exemplo

m = 3 n = 7

1 2 3 4 5 6 7 8 9 10 11 12 13 14

d[1] d[2] d[3] d[4] d[5] d[6] d[7]

1 2

2

3 7 5 6

M[1]

M[2]

M[3]

{{1, 4, 7}, {2, 5, 6}, {3}} ⇒ Tempo de conclusão = 10

Aproximação – p. 5

(10)

Exemplo

m = 3 n = 7

1 2 3 4 5 6 7 8 9 10 11 12 13 14

d[1] d[2] d[3] d[4] d[5] d[6] d[7]

1 2

2

3 7 5 6

M[1]

M[2]

M[3]

{{1, 4}, {2, 5, 6}, {3, 7}} ⇒ Tempo de conclusão = 9

Aproximação – p. 6

(11)

Consumo de tempo

Consideremos a variante do algoritmo que sempre escolhe a máquina i que fica ociosa mais cedo.

Aproximação – p. 7

(12)

Consumo de tempo

Consideremos a variante do algoritmo que sempre escolhe a máquina i que fica ociosa mais cedo.

Cada tarefa muda de máquina no máximo uma vez!

Aproximação – p. 7

(13)

Consumo de tempo

Consideremos a variante do algoritmo que sempre escolhe a máquina i que fica ociosa mais cedo.

Cada tarefa muda de máquina no máximo uma vez!

Seja Ci o instante em que a máquina i termina de executar suas tarefas.

Seja Cmin o valor do menor Ci.

Aproximação – p. 7

(14)

Consumo de tempo

Consideremos a variante do algoritmo que sempre escolhe a máquina i que fica ociosa mais cedo.

Cada tarefa muda de máquina no máximo uma vez!

Seja Ci o instante em que a máquina i termina de executar suas tarefas.

Seja Cmin o valor do menor Ci.

Veja que Cmin não diminui durante a execução do algoritmo.

Aproximação – p. 7

(15)

Consumo de tempo

Consideremos a variante do algoritmo que sempre escolhe a máquina i que fica ociosa mais cedo.

Cada tarefa muda de máquina no máximo uma vez!

Seja Ci o instante em que a máquina i termina de executar suas tarefas.

Seja Cmin o valor do menor Ci.

Veja que Cmin não diminui durante a execução do algoritmo.

Se a tarefa j foi de uma máquina i para i e

mais tarde de i para i′′, isso leva a uma contradição, pois i′′ teria que estar livre mais cedo que i.

Aproximação – p. 7

(16)

Qualidade do escalonamento produzido

A mesma análise do algoritmo de Graham se aplica!

Aproximação – p. 8

(17)

Qualidade do escalonamento produzido

A mesma análise do algoritmo de Graham se aplica!

O escalonamento produzido tem a mesma característica do Graham usada na análise: todas as máquinas estão

ocupadas até o instante T anterior à última tarefa a terminar começar a sua execução.

Aproximação – p. 8

(18)

Qualidade do escalonamento produzido

A mesma análise do algoritmo de Graham se aplica!

O escalonamento produzido tem a mesma característica do Graham usada na análise: todas as máquinas estão

ocupadas até o instante T anterior à última tarefa a terminar começar a sua execução.

1 2 3 4 . . . T TBL

M[1]

... M[j]

... M[m]

Aproximação – p. 8

(19)

Delimitações para OPT

OPT = menor tempo de conclusão de um escalonamento Duração da tarefa mais longa:

OPT ≥ max{d[1], d[2], . . . , d[n]}

Distribuição balanceada:

OPT ≥ d[1] + d[2] + · · · + d[n]

m

Aproximação – p. 9

(20)

Delimitações para OPT

OPT = menor tempo de conclusão de um escalonamento Duração da tarefa mais longa:

OPT ≥ max{d[1], d[2], . . . , d[n]}

Distribuição balanceada:

OPT ≥ d[1] + d[2] + · · · + d[n]

m

TBL ≤ d[1] + · · · + d[n]

m + max{d[1], . . , d[n]} ≤ 2 OPT

Aproximação – p. 9

(21)

Delimitações para OPT

OPT = menor tempo de conclusão de um escalonamento Duração da tarefa mais longa:

OPT ≥ max{d[1], d[2], . . . , d[n]}

Distribuição balanceada:

OPT ≥ d[1] + d[2] + · · · + d[n]

m

TBL ≤ d[1] + · · · + d[n]

m + max{d[1], . . , d[n]} ≤ 2 OPT

Teorema: O algoritmo de busca local é uma 2-aproximação.

Aproximação – p. 9

(22)

Problema do Corte Máximo

Grafo G = (V, E) sem laços.

Para X ⊆ V , denotamos por X¯ o complemento de X.

Aproximação – p. 10

(23)

Problema do Corte Máximo

Grafo G = (V, E) sem laços.

Para X ⊆ V , denotamos por X¯ o complemento de X. δ(X): conjunto das arestas com

δ(X): exatamente uma ponta em X. δ(X) é um corte em G.

Aproximação – p. 10

(24)

Problema do Corte Máximo

Grafo G = (V, E) sem laços.

Para X ⊆ V , denotamos por X¯ o complemento de X. δ(X): conjunto das arestas com

δ(X): exatamente uma ponta em X. δ(X) é um corte em G.

Problema: Dado G, encontrar um corte máximo em G.

Aproximação – p. 10

(25)

Problema do Corte Máximo

Grafo G = (V, E) sem laços.

Para X ⊆ V , denotamos por X¯ o complemento de X. δ(X): conjunto das arestas com

δ(X): exatamente uma ponta em X. δ(X) é um corte em G.

Problema: Dado G, encontrar um corte máximo em G.

Sabemos encontrar cortes mínimos em tempo polinomial.

Mas o problema acima é NP-difícil...

Aproximação – p. 10

(26)

Algoritmo de busca local

Comece com um corte δ(X) arbitrário de G.

Aproximação – p. 11

(27)

Algoritmo de busca local

Comece com um corte δ(X) arbitrário de G. Repita o seguinte:

Se existe v em X com mais vizinhos em X que em X¯, então remova v de X.

Se existe v em X¯ com mais vizinhos em X¯ que em X, então inclua v em X.

Aproximação – p. 11

(28)

Algoritmo de busca local

Comece com um corte δ(X) arbitrário de G. Repita o seguinte:

Se existe v em X com mais vizinhos em X que em X¯, então remova v de X.

Se existe v em X¯ com mais vizinhos em X¯ que em X, então inclua v em X.

Pare quando não houver mais alterações e devolva δ(X).

Aproximação – p. 11

(29)

Algoritmo de busca local

Comece com um corte δ(X) arbitrário de G. Repita o seguinte:

Se existe v em X com mais vizinhos em X que em X¯, então remova v de X.

Se existe v em X¯ com mais vizinhos em X¯ que em X, então inclua v em X.

Pare quando não houver mais alterações e devolva δ(X).

Aproximação – p. 11

(30)

Algoritmo de busca local

Para cada vértice v em G,

g(v) é o grau de v e δ(v) = δ({v}).

Aproximação – p. 12

(31)

Algoritmo de busca local

Para cada vértice v em G,

g(v) é o grau de v e δ(v) = δ({v}).

Comece com um corte δ(X) arbitrário de G. Repita o seguinte:

Se existe v tal que |δ(v) ∩ δ(X)| < |δ(v) \ δ(X)|, então X ← X ⊕ {v}.

Pare quando não houver mais alterações e devolva δ(X).

Aproximação – p. 12

(32)

Algoritmo de busca local

Para cada vértice v em G,

g(v) é o grau de v e δ(v) = δ({v}).

Comece com um corte δ(X) arbitrário de G. Repita o seguinte:

Se existe v tal que |δ(v) ∩ δ(X)| < |δ(v) \ δ(X)|, então X ← X ⊕ {v}.

Pare quando não houver mais alterações e devolva δ(X).

O algoritmo é polinomial:

a cada iteração, o corte δ(X) cresce.

Aproximação – p. 12

(33)

Algoritmo de busca local

Comece com um corte δ(X) arbitrário de G. Repita o seguinte:

Se existe v tal que |δ(v) ∩ δ(X)| < |δ(v) \ δ(X)|, então X ← X ⊕ {v}.

Pare quando não houver mais alterações e devolva δ(X).

Aproximação – p. 13

(34)

Algoritmo de busca local

Comece com um corte δ(X) arbitrário de G. Repita o seguinte:

Se existe v tal que |δ(v) ∩ δ(X)| < |δ(v) \ δ(X)|, então X ← X ⊕ {v}.

Pare quando não houver mais alterações e devolva δ(X).

Aproximação – p. 13

(35)

Algoritmo de busca local

Comece com um corte δ(X) arbitrário de G. Repita o seguinte:

Se existe v tal que |δ(v) ∩ δ(X)| < |δ(v) \ δ(X)|, então X ← X ⊕ {v}.

Pare quando não houver mais alterações e devolva δ(X).

Para cada vértice v em G,

pelo menos g(v)/2 arestas estão em δ(X).

Aproximação – p. 13

(36)

Algoritmo de busca local

Comece com um corte δ(X) arbitrário de G. Repita o seguinte:

Se existe v tal que |δ(v) ∩ δ(X)| < |δ(v) \ δ(X)|, então X ← X ⊕ {v}.

Pare quando não houver mais alterações e devolva δ(X).

Para cada vértice v em G,

pelo menos g(v)/2 arestas estão em δ(X). Então |δ(X)| ≥ 12 P

vV

g(v)

22|E|4 = |E2|OPT2 .

Aproximação – p. 13

(37)

Algoritmo de busca local

Comece com um corte δ(X) arbitrário de G. Repita o seguinte:

Se existe v tal que |δ(v) ∩ δ(X)| < |δ(v) \ δ(X)|, então X ← X ⊕ {v}.

Pare quando não houver mais alterações e devolva δ(X).

Para cada vértice v em G,

pelo menos g(v)/2 arestas estão em δ(X). Então |δ(X)| ≥ 12 P

vV

g(v)

22|E|4 = |E2|OPT2 . Teorema: O algoritmo acima é uma 2-aproximação.

Aproximação – p. 13

(38)

Algoritmo guloso

G = (V, E) X ⊆ V v ∈ V \ X

Seja β(v, X) o número de arestas em E de v para X.

Aproximação – p. 14

(39)

Algoritmo guloso

G = (V, E) X ⊆ V v ∈ V \ X

Seja β(v, X) o número de arestas em E de v para X.

GULOSO (n, E) V = {1, . . . , n}

1 X ← {1} Y ← ∅ 2 para i ← 2 até n faça 3 se β(i,X) ≤ β(i, Y )

4 então X ← X ∪ {i}

5 senão Y ← Y ∪ {i}

6 devolva δ(X)

Aproximação – p. 14

(40)

Algoritmo guloso

G = (V, E) X ⊆ V v ∈ V \ X

Seja β(v, X) o número de arestas em E de v para X.

GULOSO (n, E) V = {1, . . . , n}

1 X ← {1} Y ← ∅ 2 para i ← 2 até n faça 3 se β(i,X) ≤ β(i, Y )

4 então X ← X ∪ {i}

5 senão Y ← Y ∪ {i}

6 devolva δ(X)

Teorema: GULOSO é uma 2-aproximação.

Aproximação – p. 14

(41)

Algoritmo guloso

Teorema: GULOSO é uma 2-aproximação.

Aproximação – p. 15

(42)

Algoritmo guloso

Teorema: GULOSO é uma 2-aproximação.

ri: número de arestas de G pelas quais i é responsável

Aproximação – p. 15

(43)

Algoritmo guloso

Teorema: GULOSO é uma 2-aproximação.

ri: número de arestas de G pelas quais i é responsável Para X e Y da iteração i, temos que

ri := β(i, X) + β(i, Y )

Aproximação – p. 15

(44)

Algoritmo guloso

Teorema: GULOSO é uma 2-aproximação.

ri: número de arestas de G pelas quais i é responsável Para X e Y da iteração i, temos que

ri := β(i, X) + β(i, Y )

Vale que |E| = P

i ri.

Aproximação – p. 15

(45)

Algoritmo guloso

Teorema: GULOSO é uma 2-aproximação.

ri: número de arestas de G pelas quais i é responsável Para X e Y da iteração i, temos que

ri := β(i, X) + β(i, Y )

Vale que |E| = P

i ri.

|δ(X)| ≥ X

i

ri

2 ≥ |E|

2 ≥ OPT 2 .

Aproximação – p. 15

(46)

Problema do Caixeiro Viajante

Dados

grafo G

comprimento lij da aresta ij (ij ∈ EG)

Aproximação – p. 16

(47)

Problema do Caixeiro Viajante

Dados

grafo G

comprimento lij da aresta ij (ij ∈ EG)

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

Aproximação – p. 16

(48)

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.

Aproximação – p. 16

(49)

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

Aproximação – p. 17

(50)

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

TSP euclideano

Caso particular do métrico Vértices são pontos no plano

(ou num espaço euclideano qq de dimensão fixa)

lij é a distância euclideana entre i e j

Aproximação – p. 17

(51)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(52)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(53)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(54)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(55)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(56)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(57)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(58)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(59)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(60)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(61)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(62)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(63)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(64)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(65)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(66)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

Aproximação – p. 18

(67)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

A cada passo, aumenta no máximo 2 cij,

onde j é o ponto de fora mais próximo a um já incluído i.

Aproximação – p. 18

(68)

Algoritmo guloso para o TSP métrico

Começa com um par de pontos mais próximos.

Inclui um ponto mais próximo aos já incluídos.

A cada passo, aumenta no máximo 2 cij,

onde j é o ponto de fora mais próximo a um já incluído i. Teorema: O algoritmo acima é uma 2-aproximação.

Aproximação – p. 18

(69)

Algoritmo de Christofides

(1) Árvore geradora de comprimento mínimo

Aproximação – p. 19

(70)

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)

Aproximação – p. 19

(71)

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)

Aproximação – p. 19

(72)

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

Aproximação – p. 19

(73)

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

Aproximação – p. 19

(74)

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

Aproximação – p. 19

(75)

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 (6) Devolva C

Aproximação – p. 19

(76)

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)

Aproximação – p. 20

(77)

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)

Aproximação – p. 20

(78)

Algoritmo de Christofides

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

Aproximação – p. 21

(79)

Algoritmo de Christofides

Uma segunda delimitação para OPT: 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

Aproximação – p. 21

(80)

Algoritmo de Christofides

Uma segunda delimitação para OPT: 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

Aproximação – p. 21

(81)

Algoritmo de Christofides

Uma segunda delimitação para OPT: 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]: M1 e M2

Aproximação – p. 21

(82)

Algoritmo de Christofides

Uma segunda delimitação para OPT: 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 .

2

Aproximação – p. 22

(83)

Algoritmo de Christofides

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

Aproximação – p. 23

(84)

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 .

2

Aproximação – p. 23

(85)

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 .

2

Melhor algoritmo de aproximação conhecido para o TSP métrico.

Aproximação – p. 23

(86)

Algoritmo de Christofides

A análise é justa.

Aproximação – p. 24

(87)

Algoritmo de Christofides

A análise é justa.

Christofides

2n + 1 vértices

Aproximação – p. 24

(88)

Algoritmo de Christofides

A análise é justa.

Christofides

2n + 1 vértices

Aproximação – p. 24

(89)

Algoritmo de Christofides

A análise é justa.

Christofides

2n + 1 vértices Comprimento: 3n

Aproximação – p. 24

(90)

Algoritmo de Christofides

A análise é justa.

Christofides

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

Comprimento: 2n + 1

Aproximação – p. 24

(91)

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 Idéia:

Aproximação – p. 25

(92)

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 Idéia:

portal

Aproximação – p. 25

(93)

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 Idéia:

portal

Aproximação – p. 25

(94)

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 Idéia:

portal

Aproximação – p. 25

(95)

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 Idéia:

portal

Aproximação – p. 25

(96)

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 Idéia:

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.

Aproximação – p. 26

(97)

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.

Aproximação – p. 27

(98)

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]

Aproximação – p. 27

(99)

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

Aproximação – p. 28

(100)

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

Aproximação – p. 28

(101)

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”

então devolva “Não”

Aproximação – p. 28

(102)

Resultado de Inaproximabilidade

A polinomial ⇒ B polinomial

Aproximação – p. 29

(103)

Resultado de Inaproximabilidade

A polinomial ⇒ B polinomial

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

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

Aproximação – p. 29

(104)

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).

2

Aproximação – p. 29

(105)

Para completar...

Blabla

PO PTAS APX NPO

TSP

TSP Métrico

TSP Euclideano

Aproximação – p. 30

Referências

Documentos relacionados

O pastor Felipe Silva de Oliveira da Terceira Igreja Batista em Jardim Bom Retiro (São Gonçalo/RJ), é convidado para apresentar uma reflexão bíblica baseada na

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

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

Efetividade de gestão das unidades de conservação estaduais e federais de gestão e módulos de análise... no módulo recursos humanos é a existência de oportunidades de

BL B´asica ´e muito mais lenta do que as demais em todos os problemas, principalmente nas maiores instˆancias da classe ORM P e nas instˆancias SLM P, pois n˜ao apresenta o teste

Em cada &#34;nó&#34; da malha há duas opções de caminho a seguir e metade de cada grupo que ali chega segue por um, enquanto a outra metade segue pelo outro.. É correto

Esta atividade é importante para que você reforce os conceitos básicos vistos em sala de.. aula e os correlacione com uma aplicação prática, no caso o conceito de sistemas

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