Você está na página 1de 34

03 - Algoritmos

Mateus Oliveira de Figueiredo

12/09/2023
Problema
Dado um conjunto de pontos no R2 , encontrar o menor conjunto convexo que contém
todos os pontos (fecho convexo).
Problema
Dado um conjunto de pontos no R2 , encontrar o menor conjunto convexo que contém
todos os pontos (fecho convexo).
Algoritmos

Três algoritmos implementados:


▶ Algoritmo Triângulos: O(n4 )
▶ Algoritmo Segmentos: O(n3 )
▶ Algoritmo de Jarvis: O(hn), onde h é o número de vértices do fecho convexo.
Algoritmos

Três algoritmos implementados:


▶ Algoritmo Triângulos: O(n4 )
▶ Algoritmo Segmentos: O(n3 )
▶ Algoritmo de Jarvis: O(hn), onde h é o número de vértices do fecho convexo.

▶ Implementação em C++
▶ Disponı́vel em:
https://github.com/mtsodf/algoritmos/tree/main/semana03
Algoritmo Triângulos
Algoritmo Triângulos
Algoritmo Triângulos
Algoritmo Triângulos
Algoritmo Triângulos
Algoritmo Triângulos

Custo = O(n3 ) × O(n) + O(hlog (h)) = O(n4 ) (1)


| {z } | {z } | {z }
Triângulos Pontos dentro Ordenar pontos
Algoritmo Segmentos
Algoritmo Segmentos
Algoritmo Segmentos
Algoritmo Segmentos

Custo = O(n2 ) × O(n) + O(hlog (h)) = O(n3 ) (2)


| {z } | {z } | {z }
Segmentos CCW Pontos Ordenar pontos
Algoritmo Jarvis
Algoritmo Jarvis

(xmin , ymin )
Algoritmo Jarvis

(xmin , ymin )
Algoritmo Jarvis

(xmin , ymin )
Algoritmo Jarvis

(xmin , ymin )
Algoritmo Jarvis

(xmin , ymin )
Algoritmo Jarvis

(xmin , ymin )
Algoritmo Jarvis

(xmin , ymin )
Algoritmo Jarvis

(xmin , ymin )

Custo = h
|{z} ×( O(n) + O(n) ) = O(hn) (3)
| {z } | {z }
Região convexa Próximo Ponto Pontos dentro
Exemplos
Exemplos
Exemplos
Exemplos
Exemplos
Exemplos
Exemplos
Exemplos
Tempo de execução

▶ Pontos gerados
aleatoriamente dentro de um
cı́rculo de raio 1

▶ h ∼ n, onde h é o número
de vértices do fecho convexo.
Tempo de execução

Você também pode gostar