Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal...

47
Teorema da Galeria de Arte Quantos guardas são necessários? Geometria Computacional – p.1/23

Transcript of Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal...

Page 1: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teorema da Galeria de Arte

Quantos guardas são necessários?

Geometria Computacional – p.1/23

Page 2: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teorema da Galeria de Arte

Quantos guardas são necessários? Quatro?

Geometria Computacional – p.2/23

Page 3: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com nvértices, existe uma maneira de dispormos no máximo⌊n/3⌋ guardas neste polígono de modo que cada ponto dopolígono seja coberto por pelo menos um guarda.

Geometria Computacional – p.3/23

Page 4: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com nvértices, existe uma maneira de dispormos no máximo⌊n/3⌋ guardas neste polígono de modo que cada ponto dopolígono seja coberto por pelo menos um guarda.

Primeira prova: Chvátal

Prova que veremos: Fisk

Ingredientes:triangulação de polígonos e coloração de grafos

Geometria Computacional – p.3/23

Page 5: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Triangulação de polígonosUma triangulação de P é obtida adicionando-se a P umconjunto maximal de diagonais de P que duas a duas nãose cruzam.

Geometria Computacional – p.4/23

Page 6: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Triangulação de polígonosUma triangulação de P é obtida adicionando-se a P umconjunto maximal de diagonais de P que duas a duas nãose cruzam.

Triangulação: conjunto de triângulos que cobrem P e quese intersectam apenas em vértices ou diagonais de P .

Geometria Computacional – p.4/23

Page 7: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Triangulação de polígonosUma triangulação de P é obtida adicionando-se a P umconjunto maximal de diagonais de P que duas a duas nãose cruzam.

Triangulação: conjunto de triângulos que cobrem P e quese intersectam apenas em vértices ou diagonais de P .

Teorema 1 (Triangulação): Todo polígono pode serparticionado em triângulos através da inclusão dediagonais.

Geometria Computacional – p.4/23

Page 8: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Coloração de grafos

Um grafo G = (V,E) tem uma k-coloração (ou é k-colorível)se existe uma função c : V ← {1, . . . , k} tal que c(u) 6= c(v)para toda aresta uv em E.

Geometria Computacional – p.5/23

Page 9: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Coloração de grafos

Um grafo G = (V,E) tem uma k-coloração (ou é k-colorível)se existe uma função c : V ← {1, . . . , k} tal que c(u) 6= c(v)para toda aresta uv em E.

P : polígono T : triangulação de P

GT = (V,E) grafo onde V são os vértices de P eGT = (V,E) uv ∈ E sse uv está em T

Geometria Computacional – p.5/23

Page 10: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Coloração de grafos

Um grafo G = (V,E) tem uma k-coloração (ou é k-colorível)se existe uma função c : V ← {1, . . . , k} tal que c(u) 6= c(v)para toda aresta uv em E.

P : polígono T : triangulação de P

GT = (V,E) grafo onde V são os vértices de P eGT = (V,E) uv ∈ E sse uv está em T

GT é um grafo outerplanar(planar com todos os vértices na face externa)

Teorema 2 (Coloração de grafos de triangulação): Seja GT

o grafo associado à triangulação T de um polígono P .Então GT tem uma 3-coloração.

Geometria Computacional – p.5/23

Page 11: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Coloração de grafos

Teorema 2 (Coloração de grafos de triangulação): Seja GT

o grafo associado à triangulação T de um polígono P .Então GT tem uma 3-coloração.

Geometria Computacional – p.6/23

Page 12: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com nvértices, existe uma maneira de dispormos no máximo⌊n/3⌋ guardas neste polígono de modo que cada ponto dopolígono seja coberto por pelo menos um guarda.

Geometria Computacional – p.7/23

Page 13: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com nvértices, existe uma maneira de dispormos no máximo⌊n/3⌋ guardas neste polígono de modo que cada ponto dopolígono seja coberto por pelo menos um guarda.

Prova: Seja P um polígono com n vértices.Pelo teorema 1, existe uma triangulação T de P .

Geometria Computacional – p.7/23

Page 14: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com nvértices, existe uma maneira de dispormos no máximo⌊n/3⌋ guardas neste polígono de modo que cada ponto dopolígono seja coberto por pelo menos um guarda.

Prova: Seja P um polígono com n vértices.Pelo teorema 1, existe uma triangulação T de P .

Pelo teorema 2, o grafo GT tem uma 3-coloração.

Geometria Computacional – p.7/23

Page 15: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com nvértices, existe uma maneira de dispormos no máximo⌊n/3⌋ guardas neste polígono de modo que cada ponto dopolígono seja coberto por pelo menos um guarda.

Prova: Seja P um polígono com n vértices.Pelo teorema 1, existe uma triangulação T de P .

Pelo teorema 2, o grafo GT tem uma 3-coloração.

Se colocarmos um guarda em cada um dos vértices de GT

de uma das cores, o polígono P está coberto. Isso porquetodo triângulo de T tem um vértice de cada uma das trêscores, e os triângulos de T cobrem P .

Geometria Computacional – p.7/23

Page 16: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teorema de Chvátal

Teorema da Galeria de Arte: Dado um polígono com nvértices, existe uma maneira de dispormos no máximo⌊n/3⌋ guardas neste polígono de modo que cada ponto dopolígono seja coberto por pelo menos um guarda.

Prova: Seja P um polígono com n vértices.Pelo teorema 1, existe uma triangulação T de P .

Pelo teorema 2, o grafo GT tem uma 3-coloração.

Se colocarmos um guarda em cada um dos vértices de GT

de uma das cores, o polígono P está coberto. Isso porquetodo triângulo de T tem um vértice de cada uma das trêscores, e os triângulos de T cobrem P .

Uma das cores é usada no máximo ⌊n/3⌋ vezes nacoloração.

Geometria Computacional – p.7/23

Page 17: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Exemplo

Geometria Computacional – p.8/23

Page 18: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teoria de triangulação

Lema: Todo polígono tem um vértice estritamente convexo.

Geometria Computacional – p.9/23

Page 19: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teoria de triangulação

Lema: Todo polígono tem um vértice estritamente convexo.

Prova: (Feita na aula passada.)

v

l

Geometria Computacional – p.9/23

Page 20: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teoria de triangulação

Lema (Meister): Todo polígono com pelo menos 4 vérticestem uma diagonal.

Geometria Computacional – p.10/23

Page 21: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teoria de triangulação

Lema (Meister): Todo polígono com pelo menos 4 vérticestem uma diagonal.

Prova: (Feita na aula.)

vl

u w

tL

Geometria Computacional – p.10/23

Page 22: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teoria de triangulação

Teorema 1 (Triangulação): Todo polígono com n vérticespode ser particionado em n− 2 triângulos através dainclusão de n− 3 diagonais.

Geometria Computacional – p.11/23

Page 23: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teoria de triangulação

Teorema 1 (Triangulação): Todo polígono com n vérticespode ser particionado em n− 2 triângulos através dainclusão de n− 3 diagonais.

Prova: (Feita na aula.)

d

d

d

Geometria Computacional – p.11/23

Page 24: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teoria de triangulação

Teorema 1 (Triangulação): Todo polígono com n vérticespode ser particionado em n− 2 triângulos através dainclusão de n− 3 diagonais.

Geometria Computacional – p.12/23

Page 25: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teoria de triangulação

Teorema 1 (Triangulação): Todo polígono com n vérticespode ser particionado em n− 2 triângulos através dainclusão de n− 3 diagonais.

Lema extra (soma dos ângulos): A soma dos ângulosinternos de um polígono de n vértices é (n− 2)π.

Geometria Computacional – p.12/23

Page 26: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Teoria de triangulação

Teorema 1 (Triangulação): Todo polígono com n vérticespode ser particionado em n− 2 triângulos através dainclusão de n− 3 diagonais.

Lema extra (soma dos ângulos): A soma dos ângulosinternos de um polígono de n vértices é (n− 2)π.

Prova: Conseqüência direta do Teorema da Triangulação.

Geometria Computacional – p.12/23

Page 27: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Orelhas de polígonos

Três vértices consecutivos u, v, w de um polígono P formamuma orelha de P se uw é uma diagonal de P .

Geometria Computacional – p.13/23

Page 28: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Orelhas de polígonos

Três vértices consecutivos u, v, w de um polígono P formamuma orelha de P se uw é uma diagonal de P .

Duas orelhas não se sobrepõem se seus interiores sãodisjuntos.

Geometria Computacional – p.13/23

Page 29: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Orelhas de polígonos

Três vértices consecutivos u, v, w de um polígono P formamuma orelha de P se uw é uma diagonal de P .

Duas orelhas não se sobrepõem se seus interiores sãodisjuntos.

Teorema (Meister’s Two Ears Theorem): Todo polígono compelo menos 4 vértices possui pelo menos duas orelhas.

Geometria Computacional – p.13/23

Page 30: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Orelhas de polígonos

Teorema (Meister’s Two Ears Theorem): Todo polígono compelo menos 4 vértices possui pelo menos duas orelhas.

Geometria Computacional – p.14/23

Page 31: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Orelhas de polígonos

Teorema (Meister’s Two Ears Theorem): Todo polígono compelo menos 4 vértices possui pelo menos duas orelhas.

Segue do teorema abaixo.

Geometria Computacional – p.14/23

Page 32: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Orelhas de polígonos

Teorema (Meister’s Two Ears Theorem): Todo polígono compelo menos 4 vértices possui pelo menos duas orelhas.

Segue do teorema abaixo.

Teorema 3: Seja P um polígono com pelo menos 4 vérticese T uma triangulação de P . Então pelo menos doistriangulos de T formam orelhas de P .

Prova: (Feita na aula.)

Geometria Computacional – p.14/23

Page 33: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Coloração do grafo de triangulação

Teorema 2 (Coloração de grafos de triangulação): Seja GT

o grafo associado à triangulação T de um polígono P .Então GT tem uma 3-coloração.

Geometria Computacional – p.15/23

Page 34: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Coloração do grafo de triangulação

Teorema 2 (Coloração de grafos de triangulação): Seja GT

o grafo associado à triangulação T de um polígono P .Então GT tem uma 3-coloração.

Prova: (Feita na aula.)

Geometria Computacional – p.15/23

Page 35: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Algoritmos para triangulação

Como encontrar uma diagonal?

Geometria Computacional – p.16/23

Page 36: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Algoritmos para triangulação

Como encontrar uma diagonal?

Intersecção de segmentos: como decidir se doissegmentos se intersectam ou não?

Geometria Computacional – p.16/23

Page 37: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Algoritmos para triangulação

Como encontrar uma diagonal?

Intersecção de segmentos: como decidir se doissegmentos se intersectam ou não?

Algoritmo super ingênuo: O(n4)

Algoritmo um pouco menos ingênuo:O(n2), usando orelhas!

Geometria Computacional – p.16/23

Page 38: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Algoritmos para triangulação

Como encontrar uma diagonal?

Intersecção de segmentos: como decidir se doissegmentos se intersectam ou não?

Algoritmo super ingênuo: O(n4)

Algoritmo um pouco menos ingênuo:O(n2), usando orelhas!

Algoritmos mais rápidos:

O(n lg n), veremos em breve...

O(n), complicado... não estudaremos...

O(n lg∗ n), mais simples e rápido na prática

Geometria Computacional – p.16/23

Page 39: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Representação de ponto

Ponto: vetor de dimensão apropriada

Geometria Computacional – p.17/23

Page 40: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Representação de ponto

Ponto: vetor de dimensão apropriada

Ficar nos inteiros enquanto for possível

Geometria Computacional – p.17/23

Page 41: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Representação de ponto

Ponto: vetor de dimensão apropriada

Ficar nos inteiros enquanto for possível

#define X 0

#define Y 1

#define DIM 2 / * dimensão do espaço * /

/ * tipo ponto inteiro * /

typedef int tPointi[DIM];

/ * tipo ponto real * /typedef double tPointd[DIM];

Geometria Computacional – p.17/23

Page 42: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Representação de polígono

Polígono: vetor ou lista ligada de pontos

Geometria Computacional – p.18/23

Page 43: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Representação de polígono

Polígono: vetor ou lista ligada de pontos

Qual das duas opções escolher? Depende...

Geometria Computacional – p.18/23

Page 44: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Representação de polígono

Polígono: vetor ou lista ligada de pontos

Qual das duas opções escolher? Depende...

Com vetor...

/ * número máximo de pontos em um polígono * /

#define PMAX 1000

/ * tipo polígono de pontos inteiros * /

typedef tPointi tPolygoni[PMAX];

/ * tipo polígono de pontos reais * /typedef tPointd tPolygond[PMAX];

Geometria Computacional – p.18/23

Page 45: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Cálculos de área

Triângulo

Geometria Computacional – p.19/23

Page 46: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Cálculos de área

Triângulo

int Area2 (tPointi a, b, c) {

return a[X] * b[Y]-a[Y] * b[X]+a[Y] * c[X]

-a[X] * c[Y]+b[X] * c[Y]-c[X] * b[Y];}

Geometria Computacional – p.19/23

Page 47: Teorema da Galeria de Artecris/aulas/07_2_331/notas-de... · 2007-08-15 · Teorema de Chvátal Teorema da Galeria de Arte: Dado um polígono com n vértices, existe uma maneira de

Cálculos de área

Triângulo

int Area2 (tPointi a, b, c) {

return a[X] * b[Y]-a[Y] * b[X]+a[Y] * c[X]

-a[X] * c[Y]+b[X] * c[Y]-c[X] * b[Y];}

Com menos multiplicações e em pseudocódigo:

Area2(a, b, c)1 devolva (a[X]− c[X]) ∗ (b[Y ]− c[Y ])−1 devolva (a[Y ]− c[Y ]) ∗ (b[X]− c[X])

Geometria Computacional – p.19/23