SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

Projeto Final da Disciplina
Análise de Algoritmo: Geometria Computacional

Aldisio Medeiros
aldisiog@gmail.com

Jovane Pires
jovane.amaro.pires@gmail.com

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

Sumário
1. Origem e Definição da Geometria Computacional
2. Operações Primitivas
a. Estruturas Básicas
b. Operações
i. Esquerda-Direita
ii. EmCírculo
3. Fecho Convexo 2D
a. Algoritmo Incremental
b. Algoritmo de Graham

4. Fecho Convexo 3D
5. Implementações e Aplicações
6. Conclusão

7. Referências

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

1. Origem e Definição da Geometria Computacional
➯

A Geometria Computacional emergiu da área de desenvolvimento e análise de algoritmos
em meados dos anos 70

➯

Todavia sua origem permeiam os fundamentos da geometria euclidiana
o

O caráter algorítmo já era observado

o

Existia um certo número de operações elementares com régua e compasso.

o

Ex:



c2. Traçar um círculo de centro o e raio igual ao segmento ab;


o

c1. Dados a e b, obter um segmento de reta;

c3. Obter a interseção de entre retas e ente círculos

Ex: Obter um circulo que contenha 3 pontos não colineares, a, b e c.

➯ “Geometria Computacional é o estudo sistemático de algoritmos eficientes para
problemas geométricos”

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

1. Origem e Definição da Geometria Computacional
➯

A Geometria Computacional preocupa-se em resolver problema geométricos também levando
em consideração a complexidade computacional;

➯

O que é um problema geométrico?
o
o

➯
➯

A entrada é um conjunto de objetos geométricos
A solução de um problema geométrico envolve aspectos geométricos (localização e
forma dos objetos) e aspectos topológicos (relações de adjacência e incidência entre os
objetos).

Como identificar qual o melhor algoritmo?
Alguns problemas:

1.1. Recontrução de Curvas:

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

1. Origem e Definição da Geometria Computacional
1.2. Triangulação

1.3. Diagrama de Voronoi

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

1. Origem e Definição da Geometria Computacional
1.4. Fecho Convexo 2D

1.5. Fecho Convexo 3D

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

1. Origem e Definição da Geometria Computacional
1.

Tipos de problemas em Geometria Computacional:
a. Seletivos: Descobrir relações topológicas. Exemplos: fecho convexo, triangulação,
árvore geradora mínima, simplicação de curvas e superfícies.
a. Construtivos: Nesses problemas temos que construir um ou mais
objetos geométricos novos a partir da entrada. Exemplos: interseção de polígonos,

círculo mínimo, diagrama de Voronoi.
a. Decisão: Nesses problemas temos somente que responder “ im”
s
ou “ ão”a uma pergunta. Ex: Dado um polígono e um ponto, o ponto está fora do
n
polígono?
a. Consultas: Dado um conjunto X de objetos geométricos, queremos
processá-lo previamente de modo a poder responder eficientemente
a consultas repetidas sobre ele. Ex: Conjunto de retângulos e a lista dos incidentes em
um certo retângulo

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

2. Operações Primitivas

As primitivas são as operações básicas de um algoritmo. Por exemplo, nos algoritmos de
ordenação a função para comparar dois elementos é uma primitiva, assim como a operação de
troca de elementos. Como contamos a eficiência de um algoritmo? Contando a quantidade de
operações primitivas executadas.
2. Exemplo de Primitivas:
a. Operações com vetores
b. Distância e angulos
c. Ângulos orientados no plano
d. Ponto é interno ao poligono
e. Produto Vetorial
f.

Esquerda-Direita

g. In-circle

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

2.1. Produto Vetorial
O produto vetorial pode ser calculado a partir do seguinte determinante:

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

2.1. Esquerda-Direita

Esta primitiva consiste em sabermos a posição de um ponto em relação a um vetor
(segmento orientado). Então dados três pontos A, B e C tal que AB é um segmento orientado,
temos que a primitiva Esquerda(A,B,C) é verdadeira se o ponto C está a esquerda da reta
formada ao estendermos o segmento AB nos dois sentidos. A primitiva é falsa caso contrário.
Analogamente temos a primitiva Direita.

Se esta for positiva, o ponto C está à esquerda ( a ); se for negativa, C está à direita ( b ). Se a área
calculada for nula, então A, B e C estão alinhados ( c ).

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

2.2. In-Circle

Esta primitiva consiste em sabermos a posição de um ponto em relação a uma
circunferência no plano. Sabemos que se tivermos três pontos de uma circunferência no plano
então conseguimos representá-la pois apenas uma circunferência pode passar por 3 pontos fixos.
Então dados quatro pontos A, B, C e D onde A, B e C representam uma única circunferência.
Digamos que seu centro seja M e seu raio R. Como observação,
distância(A,M) = distância(B,M) = distância(C,M) = R
A primitiva In-Circle(A,B,C,D) é verdadeira se o ponto D é interno à circunferência dada, isto é, a
distância(D,M) < R. Esta primitiva é falsa caso contrário.a

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
3.1. Definição

3.2. Algoritmo Incremental
3.3. Algoritmo QuickHull

3.4. Algoritmo Graham

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
3.1. Definição
3.1.1 Histórico

➯

Chand-Kappur desenvolvem o algoritmo do Embrulho que é eficiente para n pontos em
uma dimensão arbitrária 1970

➯ Graham desenvolve o primeiro algoritmo com Ordem de complexidade inferior a O(n²)
➯ Jarvis desenvolve uma especialização do método de Chand-Kappur
➯ Preparata e Hong desenvolvem o primeiro algoritmo para fechos Convexos 3D em
O(nlogn)
3.1.1 Definição

Exemplos: Pontos, segmentos de retas, discos, semiplanos, triângulos, etc

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
O’Rourke [ORou94] lista uma série de definições alternativas e equivalentes do fecho
convexo, as mais interessantes das quais estão relacionadas a seguir:
➯ O fecho convexo de um conjunto S de pontos do plano é o menor polígono convexo
P que contém S, sendo “menor” entendido no sentido de que não existe outro
polígono P’ tal que P ⊃ P' ⊃ S .
➯ O fecho convexo de um conjunto S de pontos é a interseção de todos os conjuntos
convexos que contêm S.
➯ O fecho convexo de um conjunto S de pontos do plano é a união de todos os
triângulos determinados por pontos pertencentes a S.

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
Definição:
Seja FC(s) o fecho convexo do conjunto s, temos o problema:

Problema: Como encontrar o polígono que define o fecho S ?
1. Encontrar as fronteiras do polígono FC(S)
2. Encontrar os vértices do polígono FC(S)

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
3.1. Algoritmo Incremental

➯ Um primeiro algoritmo para o cálculo do fecho convexo de um conjunto de pontos é o algoritmo
incremental. Algoritmos incrementais resolvem um dado problema para um subconjunto e,
passo a passo, calculam a solução inserindo novos elementos do conjunto inicial.
➯ No caso do fecho convexo de um conjunto de n pontos, o algoritmo calcula o fecho convexo
para n-1 pontos e compõe esse resultado com o novo ponto. Basta decidir se o novo ponto está
dentro ou fora do fecho convexo atual. Se estiver dentro, é um ponto interno ao fecho e não é
preciso atualizar nada. Se estiver fora, então é necessário "consertar" o fecho atual de forma a
incluí-lo entre os vértices. Nesse processo, pode acontecer de algum(s) dos antigos vértices
deixar de ser um vértice passando a ser mais um ponto interior.

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
➯ Utilizamos as primitivas Esquerda-Direita para saber a posição de um dado ponto em relação a
um lado do fecho convexo atual. A idéia é simplificada se assumirmos que o polígono tem a
seqüência de seus vértices orientada em um sentido (anti-horário, por exemplo). Assim, basta
verificar se um novo ponto está a esquerda (se o sentido adotado for anti-horário) de todos os
lados do fecho. Se isso for verdade, então trata-se de um ponto interno ao fecho, senão é um
ponto externo que será colocado como um vértice.
➯ Analisando a sua complexidade, podemos gastar tempo O(logn) para decidir se o novo ponto
está dentro ou fora do fecho convexo dos n-1 pontos anteriores. Em seguida temos que
"consertar" o fecho anterior com o novo ponto, o que pode levar-nos a mexer em (n-1)-1arestas
do fecho anterior (as arestas que "enxergam" o novo ponto). Portanto, esse passo gasta tempo
O(n). Assim, a complexidade da inserção de um ponto é dominada pelo segundo passo,
levando tempo O(n) para ser executado. Como vamos executar esse passo n vezes, então a
complexidade total do algoritmo é O(n2).

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
3.2. Algoritmo QuickHull

●

●

O QuickHull é um algoritmo que calcula o fecho convexo de pontos num plano, com
complexidade média O(n*logn), tornando-se um equivalente geométrico do algoritmo de
ordenação QuickSort. Ele divide o plano em 2 regiões, utilizando-se dos pontos mais extremos
(isto é, pontos com menor e maior coordenada x e maior e menor coordenada y) do conjunto. A
região interna a este quadrilátero é desprezada, pois obviamente não fará parte do fecho
convexo dos pontos (são todos pontos interiores).
A seguir aplica-se a cada uma das regiões restantes um algoritmo recursivo, que calcula o
ponto P mais distante do segmento correspondente (na primeira vez é um segmento do
quadrilátero) e divide o problema local em duas partes, como se o segmento da iteracao atual
fosse dividido em outros dois, tendo o ponto P em comum. A recursão é aplicada até uma parte
possuir somente dois pontos, que são então conectados.

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

Fecho Convexo 2D
3.2. Algoritmo QuickHull

●

Analisando a sua complexidade, esse algoritmo é quadrático no pior caso, mas
equivalentemente ao quicksort, podemos perceber sua eficiência: em exemplos com pontos
aleatoriamente distribuídos, muitos pontos estarão dentro do quadrilátero inicial e serão
descartados logo na primeira fase do algoritmo. Após diversos testes percebe-se que o
QuickHull se iguala ao algoritmo de Graham em relacão a tempo, quando nao possui
desempenho melhor. Como no Quicksort, o QuickHull possui no "caso médio" tempo O(n*logn).
Aqui a primitiva utiizada continua sendo a primitiva Esquerda-Direita.

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
3.3. Algoritmo Graham

O algoritmo de Graham calcula o fecho convexo de pontos num plano, com complexidade de
tempo O(n*logn). Ele encontra o ponto P com menor coordenada y e então ordena os pontos
restantes pelo ângulo em relação à linha horizontal que passa pelo ponto P. Agora, com ajuda
de uma pilha, o algoritmo trabalha em tempo linear. Empilhamos os dois primeiros pontos e
então basta percorrermos os pontos ordenados fazendo o seguinte:
se o ponto X em questão está a esquerda do vetor penúltimo-último elemento da pilha (último
elemento da pilha é o topo) então empilhamos e olhamos o próximo;
se o ponto X em questão está a direita deste mesmo vetor, então desempilhamos e voltamos a
analisar X.

•
•

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
➯ Ao final temos na pilha uma lista de pontos que forma o fecho convexo dos pontos. A
complexidade do algoritmo é O(n*logn) porque precisamos gastar esse tempo para ordená-los.
Já o processamento após os pontos estarem ordenados é linear, nao alterando a complexidade
final. O algoritmo de Graham é um algoritmo ótimo para o cálculo do fecho convexo. Aqui a
primitiva pode ser considerada a operação Esquerda que verifica se um ponto está a esquerda
de um vetor.
➯ Convém ressaltar que tudo funciona desse modo obedecendo a definição de que um polígono
seja definido como uma lista de vértices ordenados em um sentido. Assim, um ponto fora do
polígono estará a esquerda de todas as arestas orientadas do polígono se o sentido escolhido
for o sentido anti-horário. Se definirmos o polígono ordenado no sentido horário, um ponto
estará fora do polígono se estiver a direita das arestas orientadas.

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
Problema 1 .
Se origem em P0 , este não pertence ao fecho, o que no final precisaria de
um método para remover da pontos internos da pilha
Problema 2.
Se origem em P1 e P2 não fisse parte do fecho

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
Solução .
Se ordenamos os pontos a partir da coordenada y ou pelo ângulo formado
a partir de um ponto P0, e tomamos o ponto inicial o menor ponto desse
conjunto garantimos:
1. O ponto inicial fará parte do fecho (Problema 1 resolvido)
2. O ponto seguinte também fará parte do fecho (Problema 2 resolvido)

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
Problema 3 .
Casos onde existe colinearidade,Se origem em P0 , porém P1 é colinear de P2 ?

Solução.
Ordena-se a partir do ponto onde a expressão é verdadeira:

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

3. Fecho Convexo 2D
Qual a equação de recorrência do Algoritmo de Graham?

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

4. Fecho Convexo 3D

4.1. Definição
4.2. Dificuldade
4.3. Algumas implementações

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

4. Fecho Convexo 3D
3.1. Definição
O fecho convexo 3D é um Poliedro Convexo. Os poliedros são convexos quando se encontram todos
para o mesmo lado em relação ao plano de qualquer uma das suas faces, ou seja, quando as suas
faces deixam sempre as demais no mesmo semiespaço. Complicado? Vamos entender melhor isso!
Considere um poliedro e uma de suas faces: um octaedro, por exemplo. Imagine um plano apoiado
nessa face. O poliedro ficou todo de um lado só desse plano? Então ele é convexo! Veja:

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

4. Fecho Convexo 3D
4.2. Dificuldade

For a finite set of points, the convex hull is a convex polyhedron in three dimensions, or in general a
convex polytope for any number of dimensions, whose vertices are some of the points in the input
set. Its representation is not so simple as in the planar case, however. In higher dimensions, even
if the vertices of a convex polytope are known, construction of its faces is a non-trivial task, as is
the dual problem of constructing the vertices given the faces. The size of the output may be
exponentially larger than the size of the input, and even in cases where the input and output are
both of comparable size the known algorithms for high-dimensional convex hulls are not outputsensitive due both to issues with degenerate inputs and with intermediate results of high
complexity.

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

Comparativo
http://computacion.cs.cinvestav.mx/~anzures/geom/hull.php

Algorithm

Speed

Brute Force
Graham Scan
QuickHull
Incremental

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

Implementações
http://computacion.cs.cinvestav.mx/~anzures/geom/hull.php

http://www.cse.unsw.edu.au/~lambert/java/3d/hull.html
http://computacion.cs.cinvestav.mx/~anzures/geom/hull.php

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

Onde Aplicamos Fecho Convexo?

Aldisio Medeiros | Jovane Pires

Novembro, 08 de 2012 06 de 2013
Dezembro,
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

Conclusão...

Aldisio Medeiros | Jovane Pires

Novembro, 08 de 2012 06 de 2013
Dezembro,
Instituto Federal do Ceará - IFCE | Ciência da Computação

Aldisio Medeiros | Jovane Pires

Análise de Algoritmo - Geometria Computacional

Dezembro, 06 de 2013
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

Obrigado.

Aldisio Medeiros | Jovane Pires

Novembro, 08 de 2012 06 de 2013
Dezembro,
Instituto Federal do Ceará - IFCE | Ciência da Computação

Análise de Algoritmo - Geometria Computacional

Referências
http://www.ime.usp.br/~freitas/gc/fecho.html

http://www.ime.usp.br/~freitas/gc/java/FechoApp.html
http://lhf.impa.br/cursos/gc/notas.pdf

http://www.dpi.inpe.br/gilberto/livro/geocomp/geometria.pdf

Aldisio Medeiros | Jovane Pires

Dezembro, 06 de 2013

Mais conteúdo relacionado

Mais procurados

Introdução Ao Cálculo
Introdução Ao CálculoIntrodução Ao Cálculo
Introdução Ao Cálculoomineirinhobom
 
Teste modelo 4 - álgebra + funções (5.1-5.3) 10 ano
Teste modelo 4 - álgebra + funções (5.1-5.3) 10 anoTeste modelo 4 - álgebra + funções (5.1-5.3) 10 ano
Teste modelo 4 - álgebra + funções (5.1-5.3) 10 anoPedro Teixeira
 
Mat geometria analitica 001
Mat geometria analitica   001Mat geometria analitica   001
Mat geometria analitica 001trigono_metrico
 
2º lista de exercícios 3º ano geometria analítica
2º lista de exercícios 3º ano   geometria analítica2º lista de exercícios 3º ano   geometria analítica
2º lista de exercícios 3º ano geometria analíticacarlos josé gomes
 
Matematica 3 exercicios gabarito 08
Matematica 3 exercicios gabarito 08Matematica 3 exercicios gabarito 08
Matematica 3 exercicios gabarito 08comentada
 
Teoria de conjuntos fichas de exercícios
Teoria de conjuntos   fichas de exercícios Teoria de conjuntos   fichas de exercícios
Teoria de conjuntos fichas de exercícios wilkerfilipel
 
Números Complexos - Representação Geométrica
Números Complexos - Representação GeométricaNúmeros Complexos - Representação Geométrica
Números Complexos - Representação GeométricaRaphael Silveira
 
Lista de exercícios g
Lista de exercícios gLista de exercícios g
Lista de exercícios gjackpage
 
Matematica 3 exercicios gabarito 05
Matematica 3 exercicios gabarito 05Matematica 3 exercicios gabarito 05
Matematica 3 exercicios gabarito 05comentada
 
554 exercicios geometria_analitica_conicas_gabarito
554 exercicios geometria_analitica_conicas_gabarito554 exercicios geometria_analitica_conicas_gabarito
554 exercicios geometria_analitica_conicas_gabaritoJosé Willians
 
8ºano mat correcao questao aula 2(fev 2015)
8ºano mat correcao questao aula 2(fev 2015)8ºano mat correcao questao aula 2(fev 2015)
8ºano mat correcao questao aula 2(fev 2015)silvia_lfr
 

Mais procurados (20)

Resumo conjuntos numéricos
Resumo conjuntos numéricosResumo conjuntos numéricos
Resumo conjuntos numéricos
 
Introdução Ao Cálculo
Introdução Ao CálculoIntrodução Ao Cálculo
Introdução Ao Cálculo
 
Teste modelo 4 - álgebra + funções (5.1-5.3) 10 ano
Teste modelo 4 - álgebra + funções (5.1-5.3) 10 anoTeste modelo 4 - álgebra + funções (5.1-5.3) 10 ano
Teste modelo 4 - álgebra + funções (5.1-5.3) 10 ano
 
Conjuntos e Intervalos
Conjuntos e IntervalosConjuntos e Intervalos
Conjuntos e Intervalos
 
Mat geometria analitica 001
Mat geometria analitica   001Mat geometria analitica   001
Mat geometria analitica 001
 
2º lista de exercícios 3º ano geometria analítica
2º lista de exercícios 3º ano   geometria analítica2º lista de exercícios 3º ano   geometria analítica
2º lista de exercícios 3º ano geometria analítica
 
Matematica 3 exercicios gabarito 08
Matematica 3 exercicios gabarito 08Matematica 3 exercicios gabarito 08
Matematica 3 exercicios gabarito 08
 
Teoria de conjuntos fichas de exercícios
Teoria de conjuntos   fichas de exercícios Teoria de conjuntos   fichas de exercícios
Teoria de conjuntos fichas de exercícios
 
01 - Conjuntos
01 - Conjuntos01 - Conjuntos
01 - Conjuntos
 
Q1 a
Q1  aQ1  a
Q1 a
 
Números Complexos - Representação Geométrica
Números Complexos - Representação GeométricaNúmeros Complexos - Representação Geométrica
Números Complexos - Representação Geométrica
 
Lista de exercícios g
Lista de exercícios gLista de exercícios g
Lista de exercícios g
 
NÚMEROS COMPLEXOS - PARTE 01
NÚMEROS COMPLEXOS - PARTE 01NÚMEROS COMPLEXOS - PARTE 01
NÚMEROS COMPLEXOS - PARTE 01
 
Matematica 3 exercicios gabarito 05
Matematica 3 exercicios gabarito 05Matematica 3 exercicios gabarito 05
Matematica 3 exercicios gabarito 05
 
Geometria analítica2
Geometria analítica2Geometria analítica2
Geometria analítica2
 
Geometria analitica
Geometria analiticaGeometria analitica
Geometria analitica
 
Números Complexos
Números ComplexosNúmeros Complexos
Números Complexos
 
Matemática apostila 1 suely
Matemática   apostila 1 suelyMatemática   apostila 1 suely
Matemática apostila 1 suely
 
554 exercicios geometria_analitica_conicas_gabarito
554 exercicios geometria_analitica_conicas_gabarito554 exercicios geometria_analitica_conicas_gabarito
554 exercicios geometria_analitica_conicas_gabarito
 
8ºano mat correcao questao aula 2(fev 2015)
8ºano mat correcao questao aula 2(fev 2015)8ºano mat correcao questao aula 2(fev 2015)
8ºano mat correcao questao aula 2(fev 2015)
 

Semelhante a Apresentação geometria computacional

Sequência didática circunferência
Sequência didática circunferênciaSequência didática circunferência
Sequência didática circunferênciaeduardabotelho
 
MATEMATICA_Ciencia_Aplicacoes_V3_PNLD2018_PR.pdf
MATEMATICA_Ciencia_Aplicacoes_V3_PNLD2018_PR.pdfMATEMATICA_Ciencia_Aplicacoes_V3_PNLD2018_PR.pdf
MATEMATICA_Ciencia_Aplicacoes_V3_PNLD2018_PR.pdfSilvanioRodriguesCos
 
Execução do projeto de aprendizagem
Execução do projeto de aprendizagemExecução do projeto de aprendizagem
Execução do projeto de aprendizagemsilviamatematica
 
Área e perímetro de figuras planas
Área e perímetro de figuras planasÁrea e perímetro de figuras planas
Área e perímetro de figuras planasAdriana Rigobello
 
Prova brasil de matemática
Prova brasil de matemáticaProva brasil de matemática
Prova brasil de matemáticaZuleica costa
 
Erro na aritmética de ponto flutuante
Erro na aritmética de ponto flutuanteErro na aritmética de ponto flutuante
Erro na aritmética de ponto flutuanteAlexandre Grossi
 
Erro na aritmética de ponto flutuante
Erro na aritmética de ponto flutuanteErro na aritmética de ponto flutuante
Erro na aritmética de ponto flutuanteAlexandre Grossi
 
Topicos de econometria de séries temporais 2020_1
Topicos de econometria de séries temporais 2020_1 Topicos de econometria de séries temporais 2020_1
Topicos de econometria de séries temporais 2020_1 Adriano Figueiredo
 
MAT 1ª Série 3º Bimestre Professor.pdf
MAT 1ª Série 3º Bimestre Professor.pdfMAT 1ª Série 3º Bimestre Professor.pdf
MAT 1ª Série 3º Bimestre Professor.pdfGernciadeProduodeMat
 

Semelhante a Apresentação geometria computacional (9)

Sequência didática circunferência
Sequência didática circunferênciaSequência didática circunferência
Sequência didática circunferência
 
MATEMATICA_Ciencia_Aplicacoes_V3_PNLD2018_PR.pdf
MATEMATICA_Ciencia_Aplicacoes_V3_PNLD2018_PR.pdfMATEMATICA_Ciencia_Aplicacoes_V3_PNLD2018_PR.pdf
MATEMATICA_Ciencia_Aplicacoes_V3_PNLD2018_PR.pdf
 
Execução do projeto de aprendizagem
Execução do projeto de aprendizagemExecução do projeto de aprendizagem
Execução do projeto de aprendizagem
 
Área e perímetro de figuras planas
Área e perímetro de figuras planasÁrea e perímetro de figuras planas
Área e perímetro de figuras planas
 
Prova brasil de matemática
Prova brasil de matemáticaProva brasil de matemática
Prova brasil de matemática
 
Erro na aritmética de ponto flutuante
Erro na aritmética de ponto flutuanteErro na aritmética de ponto flutuante
Erro na aritmética de ponto flutuante
 
Erro na aritmética de ponto flutuante
Erro na aritmética de ponto flutuanteErro na aritmética de ponto flutuante
Erro na aritmética de ponto flutuante
 
Topicos de econometria de séries temporais 2020_1
Topicos de econometria de séries temporais 2020_1 Topicos de econometria de séries temporais 2020_1
Topicos de econometria de séries temporais 2020_1
 
MAT 1ª Série 3º Bimestre Professor.pdf
MAT 1ª Série 3º Bimestre Professor.pdfMAT 1ª Série 3º Bimestre Professor.pdf
MAT 1ª Série 3º Bimestre Professor.pdf
 

Apresentação geometria computacional

  • 1. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional Projeto Final da Disciplina Análise de Algoritmo: Geometria Computacional Aldisio Medeiros aldisiog@gmail.com Jovane Pires jovane.amaro.pires@gmail.com Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 2. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional Sumário 1. Origem e Definição da Geometria Computacional 2. Operações Primitivas a. Estruturas Básicas b. Operações i. Esquerda-Direita ii. EmCírculo 3. Fecho Convexo 2D a. Algoritmo Incremental b. Algoritmo de Graham 4. Fecho Convexo 3D 5. Implementações e Aplicações 6. Conclusão 7. Referências Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 3. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 1. Origem e Definição da Geometria Computacional ➯ A Geometria Computacional emergiu da área de desenvolvimento e análise de algoritmos em meados dos anos 70 ➯ Todavia sua origem permeiam os fundamentos da geometria euclidiana o O caráter algorítmo já era observado o Existia um certo número de operações elementares com régua e compasso. o Ex:   c2. Traçar um círculo de centro o e raio igual ao segmento ab;  o c1. Dados a e b, obter um segmento de reta; c3. Obter a interseção de entre retas e ente círculos Ex: Obter um circulo que contenha 3 pontos não colineares, a, b e c. ➯ “Geometria Computacional é o estudo sistemático de algoritmos eficientes para problemas geométricos” Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 4. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 1. Origem e Definição da Geometria Computacional ➯ A Geometria Computacional preocupa-se em resolver problema geométricos também levando em consideração a complexidade computacional; ➯ O que é um problema geométrico? o o ➯ ➯ A entrada é um conjunto de objetos geométricos A solução de um problema geométrico envolve aspectos geométricos (localização e forma dos objetos) e aspectos topológicos (relações de adjacência e incidência entre os objetos). Como identificar qual o melhor algoritmo? Alguns problemas: 1.1. Recontrução de Curvas: Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 5. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 1. Origem e Definição da Geometria Computacional 1.2. Triangulação 1.3. Diagrama de Voronoi Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 6. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 1. Origem e Definição da Geometria Computacional 1.4. Fecho Convexo 2D 1.5. Fecho Convexo 3D Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 7. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 1. Origem e Definição da Geometria Computacional 1. Tipos de problemas em Geometria Computacional: a. Seletivos: Descobrir relações topológicas. Exemplos: fecho convexo, triangulação, árvore geradora mínima, simplicação de curvas e superfícies. a. Construtivos: Nesses problemas temos que construir um ou mais objetos geométricos novos a partir da entrada. Exemplos: interseção de polígonos, círculo mínimo, diagrama de Voronoi. a. Decisão: Nesses problemas temos somente que responder “ im” s ou “ ão”a uma pergunta. Ex: Dado um polígono e um ponto, o ponto está fora do n polígono? a. Consultas: Dado um conjunto X de objetos geométricos, queremos processá-lo previamente de modo a poder responder eficientemente a consultas repetidas sobre ele. Ex: Conjunto de retângulos e a lista dos incidentes em um certo retângulo Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 8. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 2. Operações Primitivas As primitivas são as operações básicas de um algoritmo. Por exemplo, nos algoritmos de ordenação a função para comparar dois elementos é uma primitiva, assim como a operação de troca de elementos. Como contamos a eficiência de um algoritmo? Contando a quantidade de operações primitivas executadas. 2. Exemplo de Primitivas: a. Operações com vetores b. Distância e angulos c. Ângulos orientados no plano d. Ponto é interno ao poligono e. Produto Vetorial f. Esquerda-Direita g. In-circle Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 9. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 2.1. Produto Vetorial O produto vetorial pode ser calculado a partir do seguinte determinante: Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 10. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 2.1. Esquerda-Direita Esta primitiva consiste em sabermos a posição de um ponto em relação a um vetor (segmento orientado). Então dados três pontos A, B e C tal que AB é um segmento orientado, temos que a primitiva Esquerda(A,B,C) é verdadeira se o ponto C está a esquerda da reta formada ao estendermos o segmento AB nos dois sentidos. A primitiva é falsa caso contrário. Analogamente temos a primitiva Direita. Se esta for positiva, o ponto C está à esquerda ( a ); se for negativa, C está à direita ( b ). Se a área calculada for nula, então A, B e C estão alinhados ( c ). Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 11. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 2.2. In-Circle Esta primitiva consiste em sabermos a posição de um ponto em relação a uma circunferência no plano. Sabemos que se tivermos três pontos de uma circunferência no plano então conseguimos representá-la pois apenas uma circunferência pode passar por 3 pontos fixos. Então dados quatro pontos A, B, C e D onde A, B e C representam uma única circunferência. Digamos que seu centro seja M e seu raio R. Como observação, distância(A,M) = distância(B,M) = distância(C,M) = R A primitiva In-Circle(A,B,C,D) é verdadeira se o ponto D é interno à circunferência dada, isto é, a distância(D,M) < R. Esta primitiva é falsa caso contrário.a Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 12. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D 3.1. Definição 3.2. Algoritmo Incremental 3.3. Algoritmo QuickHull 3.4. Algoritmo Graham Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 13. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D 3.1. Definição 3.1.1 Histórico ➯ Chand-Kappur desenvolvem o algoritmo do Embrulho que é eficiente para n pontos em uma dimensão arbitrária 1970 ➯ Graham desenvolve o primeiro algoritmo com Ordem de complexidade inferior a O(n²) ➯ Jarvis desenvolve uma especialização do método de Chand-Kappur ➯ Preparata e Hong desenvolvem o primeiro algoritmo para fechos Convexos 3D em O(nlogn) 3.1.1 Definição Exemplos: Pontos, segmentos de retas, discos, semiplanos, triângulos, etc Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 14. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D O’Rourke [ORou94] lista uma série de definições alternativas e equivalentes do fecho convexo, as mais interessantes das quais estão relacionadas a seguir: ➯ O fecho convexo de um conjunto S de pontos do plano é o menor polígono convexo P que contém S, sendo “menor” entendido no sentido de que não existe outro polígono P’ tal que P ⊃ P' ⊃ S . ➯ O fecho convexo de um conjunto S de pontos é a interseção de todos os conjuntos convexos que contêm S. ➯ O fecho convexo de um conjunto S de pontos do plano é a união de todos os triângulos determinados por pontos pertencentes a S. Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 15. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D Definição: Seja FC(s) o fecho convexo do conjunto s, temos o problema: Problema: Como encontrar o polígono que define o fecho S ? 1. Encontrar as fronteiras do polígono FC(S) 2. Encontrar os vértices do polígono FC(S) Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 16. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D 3.1. Algoritmo Incremental ➯ Um primeiro algoritmo para o cálculo do fecho convexo de um conjunto de pontos é o algoritmo incremental. Algoritmos incrementais resolvem um dado problema para um subconjunto e, passo a passo, calculam a solução inserindo novos elementos do conjunto inicial. ➯ No caso do fecho convexo de um conjunto de n pontos, o algoritmo calcula o fecho convexo para n-1 pontos e compõe esse resultado com o novo ponto. Basta decidir se o novo ponto está dentro ou fora do fecho convexo atual. Se estiver dentro, é um ponto interno ao fecho e não é preciso atualizar nada. Se estiver fora, então é necessário "consertar" o fecho atual de forma a incluí-lo entre os vértices. Nesse processo, pode acontecer de algum(s) dos antigos vértices deixar de ser um vértice passando a ser mais um ponto interior. Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 17. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D ➯ Utilizamos as primitivas Esquerda-Direita para saber a posição de um dado ponto em relação a um lado do fecho convexo atual. A idéia é simplificada se assumirmos que o polígono tem a seqüência de seus vértices orientada em um sentido (anti-horário, por exemplo). Assim, basta verificar se um novo ponto está a esquerda (se o sentido adotado for anti-horário) de todos os lados do fecho. Se isso for verdade, então trata-se de um ponto interno ao fecho, senão é um ponto externo que será colocado como um vértice. ➯ Analisando a sua complexidade, podemos gastar tempo O(logn) para decidir se o novo ponto está dentro ou fora do fecho convexo dos n-1 pontos anteriores. Em seguida temos que "consertar" o fecho anterior com o novo ponto, o que pode levar-nos a mexer em (n-1)-1arestas do fecho anterior (as arestas que "enxergam" o novo ponto). Portanto, esse passo gasta tempo O(n). Assim, a complexidade da inserção de um ponto é dominada pelo segundo passo, levando tempo O(n) para ser executado. Como vamos executar esse passo n vezes, então a complexidade total do algoritmo é O(n2). Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 18. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D 3.2. Algoritmo QuickHull ● ● O QuickHull é um algoritmo que calcula o fecho convexo de pontos num plano, com complexidade média O(n*logn), tornando-se um equivalente geométrico do algoritmo de ordenação QuickSort. Ele divide o plano em 2 regiões, utilizando-se dos pontos mais extremos (isto é, pontos com menor e maior coordenada x e maior e menor coordenada y) do conjunto. A região interna a este quadrilátero é desprezada, pois obviamente não fará parte do fecho convexo dos pontos (são todos pontos interiores). A seguir aplica-se a cada uma das regiões restantes um algoritmo recursivo, que calcula o ponto P mais distante do segmento correspondente (na primeira vez é um segmento do quadrilátero) e divide o problema local em duas partes, como se o segmento da iteracao atual fosse dividido em outros dois, tendo o ponto P em comum. A recursão é aplicada até uma parte possuir somente dois pontos, que são então conectados. Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 19. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional Fecho Convexo 2D 3.2. Algoritmo QuickHull ● Analisando a sua complexidade, esse algoritmo é quadrático no pior caso, mas equivalentemente ao quicksort, podemos perceber sua eficiência: em exemplos com pontos aleatoriamente distribuídos, muitos pontos estarão dentro do quadrilátero inicial e serão descartados logo na primeira fase do algoritmo. Após diversos testes percebe-se que o QuickHull se iguala ao algoritmo de Graham em relacão a tempo, quando nao possui desempenho melhor. Como no Quicksort, o QuickHull possui no "caso médio" tempo O(n*logn). Aqui a primitiva utiizada continua sendo a primitiva Esquerda-Direita. Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 20. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D 3.3. Algoritmo Graham O algoritmo de Graham calcula o fecho convexo de pontos num plano, com complexidade de tempo O(n*logn). Ele encontra o ponto P com menor coordenada y e então ordena os pontos restantes pelo ângulo em relação à linha horizontal que passa pelo ponto P. Agora, com ajuda de uma pilha, o algoritmo trabalha em tempo linear. Empilhamos os dois primeiros pontos e então basta percorrermos os pontos ordenados fazendo o seguinte: se o ponto X em questão está a esquerda do vetor penúltimo-último elemento da pilha (último elemento da pilha é o topo) então empilhamos e olhamos o próximo; se o ponto X em questão está a direita deste mesmo vetor, então desempilhamos e voltamos a analisar X. • • Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 21. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D ➯ Ao final temos na pilha uma lista de pontos que forma o fecho convexo dos pontos. A complexidade do algoritmo é O(n*logn) porque precisamos gastar esse tempo para ordená-los. Já o processamento após os pontos estarem ordenados é linear, nao alterando a complexidade final. O algoritmo de Graham é um algoritmo ótimo para o cálculo do fecho convexo. Aqui a primitiva pode ser considerada a operação Esquerda que verifica se um ponto está a esquerda de um vetor. ➯ Convém ressaltar que tudo funciona desse modo obedecendo a definição de que um polígono seja definido como uma lista de vértices ordenados em um sentido. Assim, um ponto fora do polígono estará a esquerda de todas as arestas orientadas do polígono se o sentido escolhido for o sentido anti-horário. Se definirmos o polígono ordenado no sentido horário, um ponto estará fora do polígono se estiver a direita das arestas orientadas. Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 22. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 23. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D Problema 1 . Se origem em P0 , este não pertence ao fecho, o que no final precisaria de um método para remover da pontos internos da pilha Problema 2. Se origem em P1 e P2 não fisse parte do fecho Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 24. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D Solução . Se ordenamos os pontos a partir da coordenada y ou pelo ângulo formado a partir de um ponto P0, e tomamos o ponto inicial o menor ponto desse conjunto garantimos: 1. O ponto inicial fará parte do fecho (Problema 1 resolvido) 2. O ponto seguinte também fará parte do fecho (Problema 2 resolvido) Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 25. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 26. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D Problema 3 . Casos onde existe colinearidade,Se origem em P0 , porém P1 é colinear de P2 ? Solução. Ordena-se a partir do ponto onde a expressão é verdadeira: Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 27. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 28. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 29. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 3. Fecho Convexo 2D Qual a equação de recorrência do Algoritmo de Graham? Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 30. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 4. Fecho Convexo 3D 4.1. Definição 4.2. Dificuldade 4.3. Algumas implementações Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 31. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 4. Fecho Convexo 3D 3.1. Definição O fecho convexo 3D é um Poliedro Convexo. Os poliedros são convexos quando se encontram todos para o mesmo lado em relação ao plano de qualquer uma das suas faces, ou seja, quando as suas faces deixam sempre as demais no mesmo semiespaço. Complicado? Vamos entender melhor isso! Considere um poliedro e uma de suas faces: um octaedro, por exemplo. Imagine um plano apoiado nessa face. O poliedro ficou todo de um lado só desse plano? Então ele é convexo! Veja: Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 32. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional 4. Fecho Convexo 3D 4.2. Dificuldade For a finite set of points, the convex hull is a convex polyhedron in three dimensions, or in general a convex polytope for any number of dimensions, whose vertices are some of the points in the input set. Its representation is not so simple as in the planar case, however. In higher dimensions, even if the vertices of a convex polytope are known, construction of its faces is a non-trivial task, as is the dual problem of constructing the vertices given the faces. The size of the output may be exponentially larger than the size of the input, and even in cases where the input and output are both of comparable size the known algorithms for high-dimensional convex hulls are not outputsensitive due both to issues with degenerate inputs and with intermediate results of high complexity. Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 33. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional Comparativo http://computacion.cs.cinvestav.mx/~anzures/geom/hull.php Algorithm Speed Brute Force Graham Scan QuickHull Incremental Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 34. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional Implementações http://computacion.cs.cinvestav.mx/~anzures/geom/hull.php http://www.cse.unsw.edu.au/~lambert/java/3d/hull.html http://computacion.cs.cinvestav.mx/~anzures/geom/hull.php Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013
  • 35. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional Onde Aplicamos Fecho Convexo? Aldisio Medeiros | Jovane Pires Novembro, 08 de 2012 06 de 2013 Dezembro,
  • 36. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional Conclusão... Aldisio Medeiros | Jovane Pires Novembro, 08 de 2012 06 de 2013 Dezembro,
  • 37. Instituto Federal do Ceará - IFCE | Ciência da Computação Aldisio Medeiros | Jovane Pires Análise de Algoritmo - Geometria Computacional Dezembro, 06 de 2013
  • 38. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional Obrigado. Aldisio Medeiros | Jovane Pires Novembro, 08 de 2012 06 de 2013 Dezembro,
  • 39. Instituto Federal do Ceará - IFCE | Ciência da Computação Análise de Algoritmo - Geometria Computacional Referências http://www.ime.usp.br/~freitas/gc/fecho.html http://www.ime.usp.br/~freitas/gc/java/FechoApp.html http://lhf.impa.br/cursos/gc/notas.pdf http://www.dpi.inpe.br/gilberto/livro/geocomp/geometria.pdf Aldisio Medeiros | Jovane Pires Dezembro, 06 de 2013