• Nenhum resultado encontrado

Geometria Computacional

N/A
N/A
Protected

Academic year: 2021

Share "Geometria Computacional"

Copied!
72
0
0

Texto

(1)

Geometria Computacional

Aula 21

ED para fecho convexo 3D

Cap 4 do livro do O’Rourke e parte do Cap 11 do livro de de Berg et al.

(2)

Estrutura de dados

Problema: Dado um conjunto finito P de pontos no IR3, encontrar o fecho convexo conv(P) dos pontos em P. Estrutura de dados winged-edge (arestas aladas)

(3)

Estrutura de dados

Problema: Dado um conjunto finito P de pontos no IR3, encontrar o fecho convexo conv(P) dos pontos em P. Estrutura de dados winged-edge (arestas aladas)

A ED mantém uma lista devértices,arestas efaces onde

Vértice. cada vérticev mantém as suas coordenadas (x, y, z) e um apontador av(v) para uma aresta arbitrária incidente av;

(4)

Estrutura de dados

Problema: Dado um conjunto finito P de pontos no IR3, encontrar o fecho convexo conv(P) dos pontos em P. Estrutura de dados winged-edge (arestas aladas)

A ED mantém uma lista devértices,arestas efaces onde

Vértice. cada vérticev mantém as suas coordenadas (x, y, z) e um apontador av(v) para uma aresta arbitrária incidente av;

Face. cada facef mantém um apontador para uma aresta arbitrária af(f ) da fronteira de f ;

(5)

Estrutura de dados

Problema: Dado um conjunto finito P de pontos no IR3, encontrar o fecho convexo conv(P) dos pontos em P. Estrutura de dados winged-edge (arestas aladas)

A ED mantém uma lista devértices,arestas efaces onde

Vértice. cada vérticev mantém as suas coordenadas (x, y, z) e um apontador av(v) para uma aresta arbitrária incidente av;

Face. cada facef mantém um apontador para uma aresta arbitrária af(f ) da fronteira de f ; Aresta. cada arestae tem oito apontadores...

(6)

Arestas aladas

Cada aresta e tem oito apontadores:

 Dois apontadores para os extremos v1(e) e v2(e) de e. A ordem destes vértices fornece uma orientação parae.

(7)

Arestas aladas

Cada aresta e tem oito apontadores:

 Dois apontadores para os extremos v1(e) e v2(e) de e. A ordem destes vértices fornece uma orientação parae.

 Apontadores fccw(e) e fcw(e) para as duas faces incidentes ae. A face fccw(e) é a esquerda de e = v1(e)v2(e) e a face fcw(e) é a direita.

(8)

Arestas aladas

Cada aresta e tem oito apontadores:

 Dois apontadores para os extremos v1(e) e v2(e) de e. A ordem destes vértices fornece uma orientação parae.

 Apontadores fccw(e) e fcw(e) para as duas faces incidentes ae. A face fccw(e) é a esquerda de e = v1(e)v2(e) e a face fcw(e) é a direita.

 Quatro apontadores para asasas (wings) de e:

(9)

Arestas aladas

Cada aresta e tem oito apontadores:

 Dois apontadores para os extremos v1(e) e v2(e) de e. A ordem destes vértices fornece uma orientação parae.

 Apontadores fccw(e) e fcw(e) para as duas faces incidentes ae. A face fccw(e) é a esquerda de e = v1(e)v2(e) e a face fcw(e) é a direita.

 Quatro apontadores para asasas (wings) de e:

arestas que precedem e sucedem e em fccw(e) e fcw(e). Especificamente, pccw(e) e nccw(e) representam as arestas que precedem e sucedeme na face fccw(e) (sentido anti-horário).

(10)

Arestas aladas

Cada aresta e tem oito apontadores:

 Dois apontadores para os extremos v1(e) e v2(e) de e. A ordem destes vértices fornece uma orientação parae.

 Apontadores fccw(e) e fcw(e) para as duas faces incidentes ae. A face fccw(e) é a esquerda de e = v1(e)v2(e) e a face fcw(e) é a direita.

 Quatro apontadores para asasas (wings) de e:

arestas que precedem e sucedem e em fccw(e) e fcw(e). Especificamente, pccw(e) e nccw(e) representam as arestas que precedem e sucedeme na face fccw(e) (sentido anti-horário).

Analogamente, pcw(e) e ncw(e) representam

(11)

Arestas aladas

f

0

f

1 2 v (e) 1 v (e) pccw(e) nccw(e) fccw(e) e fcw(e) ncw(e) pcw(e)

(12)

Embrulho para presente

Embrulho para presente 2D: Jarvis.

(13)

Embrulho para presente

Embrulho para presente 2D: Jarvis.

Para dimensões arbitrárias: Chand & Kapur. Consumo de tempo para calcular conv(P):

(14)

Embrulho para presente

Embrulho para presente 2D: Jarvis.

Para dimensões arbitrárias: Chand & Kapur. Consumo de tempo para calcular conv(P):

O(nh), onde n= |P| eh é o número de arestas deconv(P). Suponha que |P| ≥ 4.

Hipótese simplificadora: pontos de P estão em posição geral, ou seja, não existem quatro pontos em P que sejam coplanares.

(15)

Embrulho para presente

Embrulho para presente 2D: Jarvis.

Para dimensões arbitrárias: Chand & Kapur. Consumo de tempo para calcular conv(P):

O(nh), onde n= |P| eh é o número de arestas deconv(P). Suponha que |P| ≥ 4.

Hipótese simplificadora: pontos de P estão em posição geral, ou seja, não existem quatro pontos em P que sejam coplanares. Consequência: conv(P) é simplicial (faces triangulares).

(16)

Embrulho para presente

Ilustração de um passo do algoritmo Embrulho3D.

f

e p p p p p0 p1 2 3 4 5

(17)

Embrulho para presente

(18)

Embrulho para presente

O algoritmo é iterativo.

Cada iteração começa com um conjunto de faces do fecho já determinadas, e um conjunto de arestas a serem processadas: arestas que estão em exatamente uma das faces já determinadas.

(19)

Embrulho para presente

O algoritmo é iterativo.

Cada iteração começa com um conjunto de faces do fecho já determinadas, e um conjunto de arestas a serem processadas: arestas que estão em exatamente uma das faces já determinadas. A cada iteração, o algoritmo toma uma destas arestas, e

determina a segunda face do fecho que a contém, incluindo

(20)

Inicialização do algoritmo Embrulho

Encontre um ponto extremop0:

(21)

Inicialização do algoritmo Embrulho

Encontre um ponto extremop0:

Tome um ponto com coordenada Z menor possível. Encontre uma face contendo p0:

Tome a reta por p0 paralela ao eixo das abscissas e o semi-plano horizontal π contendo p0 e orientado positivamente na direção do eixo y.

(22)

Inicialização do algoritmo Embrulho

Encontre um ponto extremop0:

Tome um ponto com coordenada Z menor possível. Encontre uma face contendo p0:

Tome a reta por p0 paralela ao eixo das abscissas e o semi-plano horizontal π contendo p0 e orientado positivamente na direção do eixo y. Gire π no sentido de Y para Z

(23)

Inicialização do algoritmo Embrulho

Encontre um ponto extremop0:

Tome um ponto com coordenada Z menor possível. Encontre uma face contendo p0:

Tome a reta por p0 paralela ao eixo das abscissas e o semi-plano horizontal π contendo p0 e orientado positivamente na direção do eixo y. Gire π no sentido de Y para Z

até encontrar outro ponto extremo p1 da coleção. Encontre uma face (triangular) contendo p0p1: Gire o novo plano π em torno da aresta p0p1

(24)

Embrulho para presente

Embrulho3D(P, n)

1 CrieFila(Q)  fila com as faces encontradas

2 CrieWE(T )  ED winged edges para conv(S)

3 f ←FaceInicial(P, n) 4 InsiraFila(Q, f )

(25)

Embrulho para presente

Embrulho3D(P, n)

1 CrieFila(Q)  fila com as faces encontradas

2 CrieWE(T )  ED winged edges para conv(S)

3 f ←FaceInicial(P, n) 4 InsiraFila(Q, f )

5 InsiraWE(T , f )

6 enquanto não FilaVazia(Q) faça

7 f ←RemovaFila(Q)

8 para cada aresta livree de f faça 9 f←FaceAdjacente(f , e)

(26)

Embrulho para presente

Embrulho3D(P, n)

1 CrieFila(Q)  fila com as faces encontradas

2 CrieWE(T )  ED winged edges para conv(S)

3 f ←FaceInicial(P, n) 4 InsiraFila(Q, f )

5 InsiraWE(T , f )

6 enquanto não FilaVazia(Q) faça

7 f ←RemovaFila(Q)

8 para cada aresta livree de f faça 9 f←FaceAdjacente(f , e) 10 InsiraFila(Q, f)

11 InsiraWE(T , f ) 12 devolva T

(27)

Embrulho para presente

Embrulho3D(P, n)

1 CrieFila(Q)  fila com as faces encontradas

2 CrieWE(T )  ED winged edges para conv(S)

3 f ←FaceInicial(P, n) 4 InsiraFila(Q, f )

5 InsiraWE(T , f )

6 enquanto não FilaVazia(Q) faça

7 f ←RemovaFila(Q)

8 para cada aresta livree de f faça 9 f←FaceAdjacente(f , e) 10 InsiraFila(Q, f)

11 InsiraWE(T , f ) 12 devolva T

Consumo de tempo:

(28)

Algoritmo incremental

Incremental(P, n)

(29)

Algoritmo incremental

Incremental(P, n)

1 P3 ← conv({p0, p1, p2, p3}) 2 para k ← 4 até n − 1 faça 3 Pk ← conv(Pk−1∪ {pk})

(30)

Algoritmo incremental

Incremental(P, n)

1 P3 ← conv({p0, p1, p2, p3}) 2 para k ← 4 até n − 1 faça 3 Pk ← conv(Pk−1∪ {pk}) 4 devolva Pn−1

(31)

Algoritmo incremental

Incremental(P, n)

1 P3 ← conv({p0, p1, p2, p3}) 2 para k ← 4 até n − 1 faça 3 Pk ← conv(Pk−1∪ {pk}) 4 devolva Pn−1

Linha 3: dois casos a serem tratados.

 pk ∈ Pk−1

Esta decisão pode ser feita em O(n), usando a rotina Volume6.

(32)

Algoritmo incremental

Incremental(P, n)

1 P3 ← conv({p0, p1, p2, p3}) 2 para k ← 4 até n − 1 faça 3 Pk ← conv(Pk−1∪ {pk}) 4 devolva Pn−1

Linha 3: dois casos a serem tratados.

 pk ∈ Pk−1

Esta decisão pode ser feita em O(n), usando a rotina Volume6.

 pk ∈ Pk−1

(33)

Se

p

k

∈ P

k−1

...

No caso 2D, encontrávamos as duas retas que passavam pelo ponto pk e que são tangentes ao polígono Pk−1.

(34)

Se

p

k

∈ P

k−1

...

No caso 2D, encontrávamos as duas retas que passavam pelo ponto pk e que são tangentes ao polígono Pk−1. No caso 3D, encontramosplanos tangentes

(35)

Se

p

k

∈ P

k−1

...

No caso 2D, encontrávamos as duas retas que passavam pelo ponto pk e que são tangentes ao polígono Pk−1. No caso 3D, encontramosplanos tangentes

em vez de retas tangentes.

Estes planos tangentes determinam um cone que tem como faces triângulos e tem como bico o ponto pk.

(36)

Se

p

k

∈ P

k−1

...

No caso 2D, encontrávamos as duas retas que passavam pelo ponto pk e que são tangentes ao polígono Pk−1. No caso 3D, encontramosplanos tangentes

em vez de retas tangentes.

Estes planos tangentes determinam um cone que tem como faces triângulos e tem como bico o ponto pk.

pk pk

(37)

Como encontrar tais faces?

Faces de Pk−1 a serem descartadas:

(38)

Como encontrar tais faces?

Faces de Pk−1 a serem descartadas:

aquelas que são visíveis da posição que está o pontopk. Faces visíveis: têm orientação positiva olhando depk. Face f = (a,b,c) é visível de p se

(39)

Como encontrar tais faces?

Faces de Pk−1 a serem descartadas:

aquelas que são visíveis da posição que está o pontopk. Faces visíveis: têm orientação positiva olhando depk. Face f = (a,b,c) é visível de p se

o sinal do volume do tetraedro formado por a,b,c ep é positivo. Arestas na fronteira das faces visíveis:

(40)

Como encontrar tais faces?

Faces de Pk−1 a serem descartadas:

aquelas que são visíveis da posição que está o pontopk. Faces visíveis: têm orientação positiva olhando depk. Face f = (a,b,c) é visível de p se

o sinal do volume do tetraedro formado por a,b,c ep é positivo. Arestas na fronteira das faces visíveis:

formarão as faces triangulares do cone com o ponto pk. Suponha que e é uma aresta dePk−1 tal que

(41)

Como encontrar tais faces?

Faces de Pk−1 a serem descartadas:

aquelas que são visíveis da posição que está o pontopk. Faces visíveis: têm orientação positiva olhando depk. Face f = (a,b,c) é visível de p se

o sinal do volume do tetraedro formado por a,b,c ep é positivo. Arestas na fronteira das faces visíveis:

formarão as faces triangulares do cone com o ponto pk. Suponha que e é uma aresta dePk−1 tal que

o plano contendo e e o pontopk é tangente aPk−1. Cada aresta é compartilhada por exatamente duas faces.

Uma das faces incidentes ae é visível a partir depk e a outra não. Logo, e está na fronteira da região visível depk.

(42)

Algoritmo incremental

Incremental3D(P, n)

(43)

Algoritmo incremental

Incremental3D(P, n)

1 P3 Tetraedro(p0, p1, p2, p3) 2 para k ← 4 até n − 1 faça 3 para cada face f dePk−1 faça 4 v Volume6(f ,pk)

(44)

Algoritmo incremental

Incremental3D(P, n)

1 P3 Tetraedro(p0, p1, p2, p3) 2 para k ← 4 até n − 1 faça 3 para cada face f dePk−1 faça 4 v Volume6(f ,pk)

5 sev > 0 então marque f como visível depk 6 se nenhuma face é visível depk

(45)

Algoritmo incremental

Incremental3D(P, n)

1 P3 Tetraedro(p0, p1, p2, p3) 2 para k ← 4 até n − 1 faça 3 para cada face f dePk−1 faça 4 v Volume6(f ,pk)

5 sev > 0 então marque f como visível depk 6 se nenhuma face é visível depk

7 então Pk ← Pk−1

8 senão para cadae na fronteira das faces visíveis 9 construa a face determinada por e e pk

(46)

Algoritmo incremental

Incremental3D(P, n)

1 P3 Tetraedro(p0, p1, p2, p3) 2 para k ← 4 até n − 1 faça 3 para cada face f dePk−1 faça 4 v Volume6(f ,pk)

5 sev > 0 então marque f como visível depk 6 se nenhuma face é visível depk

7 então Pk ← Pk−1

8 senão para cadae na fronteira das faces visíveis 9 construa a face determinada por e e pk 10 para cada face visívelf

11 remova f dePk−1

(47)

Algoritmo incremental

Incremental3D(P, n)

1 P3 Tetraedro(p0, p1, p2, p3) 2 para k ← 4 até n − 1 faça 3 para cada face f dePk−1 faça 4 v Volume6(f ,pk)

5 sev > 0 então marque f como visível depk 6 se nenhuma face é visível depk

7 então Pk ← Pk−1

8 senão para cadae na fronteira das faces visíveis 9 construa a face determinada por e e pk 10 para cada face visívelf

11 remova f dePk−1

12 faça os acertos finais obtendoPk 13 devolva Pn−1

(48)

Algoritmo incremental

Incremental3D(P, n)

1 P3 Tetraedro(p0, p1, p2, p3) 2 para k ← 4 até n − 1 faça 3 para cada face f dePk−1 faça 4 v Volume6(f ,pk)

5 sev > 0 então marque f como visível depk 6 se nenhuma face é visível depk

7 então Pk ← Pk−1

8 senão para cadae na fronteira das faces visíveis 9 construa a face determinada por e e pk 10 para cada face visívelf

11 remova f dePk−1

12 faça os acertos finais obtendoPk 13 devolva Pn−1

(49)

Algoritmo incremental probabilístico

A versão probabilística do algoritmo escolhe uma permutação uniformemente dosn pontos dados, e os processa nesta ordem.

(50)

Algoritmo incremental probabilístico

A versão probabilística do algoritmo escolhe uma permutação uniformemente dosn pontos dados, e os processa nesta ordem. Essa versão consome tempo O(n lg n).

(51)

Algoritmo incremental probabilístico

A versão probabilística do algoritmo escolhe uma permutação uniformemente dosn pontos dados, e os processa nesta ordem. Essa versão consome tempo O(n lg n).

Isso está provado na seção 11.3 do livro de de Berg et al. Lema: O número esperado de faces criadas por

(52)

Algoritmo incremental probabilístico

A versão probabilística do algoritmo escolhe uma permutação uniformemente dosn pontos dados, e os processa nesta ordem. Essa versão consome tempo O(n lg n).

Isso está provado na seção 11.3 do livro de de Berg et al. Lema: O número esperado de faces criadas por

esta variante do Incremental3Dé no máximo 6n − 20. Esboço da prova: O 1-esqueleto é um grafo planar.

(53)

Algoritmo incremental probabilístico

A versão probabilística do algoritmo escolhe uma permutação uniformemente dosn pontos dados, e os processa nesta ordem. Essa versão consome tempo O(n lg n).

Isso está provado na seção 11.3 do livro de de Berg et al. Lema: O número esperado de faces criadas por

esta variante do Incremental3Dé no máximo 6n − 20. Esboço da prova: O 1-esqueleto é um grafo planar.

O vértice pk é um dos vértices dePk com probabilidade uniforme. O número de faces criadas para inserir pk é o grau de pk em Pk.

(54)

Algoritmo incremental probabilístico

A versão probabilística do algoritmo escolhe uma permutação uniformemente dosn pontos dados, e os processa nesta ordem. Essa versão consome tempo O(n lg n).

Isso está provado na seção 11.3 do livro de de Berg et al. Lema: O número esperado de faces criadas por

esta variante do Incremental3Dé no máximo 6n − 20. Esboço da prova: O 1-esqueleto é um grafo planar.

O vértice pk é um dos vértices dePk com probabilidade uniforme. O número de faces criadas para inserir pk é o grau de pk em Pk. O grau esperado de pk é o grau médio do 1-esqueleto dePk,

(55)

Algoritmo incremental probabilístico

A versão probabilística do algoritmo escolhe uma permutação uniformemente dosn pontos dados, e os processa nesta ordem. Essa versão consome tempo O(n lg n).

Isso está provado na seção 11.3 do livro de de Berg et al. Lema: O número esperado de faces criadas por

esta variante do Incremental3Dé no máximo 6n − 20. Esboço da prova: O 1-esqueleto é um grafo planar.

O vértice pk é um dos vértices dePk com probabilidade uniforme. O número de faces criadas para inserir pk é o grau de pk em Pk. O grau esperado de pk é o grau médio do 1-esqueleto dePk, que é ≤ 2(3k − 6)/k < 6.

(56)

Algoritmo incremental probabilístico

A versão probabilística do algoritmo escolhe uma permutação uniformemente dosn pontos dados, e os processa nesta ordem. Essa versão consome tempo O(n lg n).

Isso está provado na seção 11.3 do livro de de Berg et al. Lema: O número esperado de faces criadas por

esta variante do Incremental3Dé no máximo 6n − 20. Observe que o lema acima garante que o custo total para construir os fechos P1, . . . , Pn poderia serO(n) em princípio.

(57)

Algoritmo incremental probabilístico

A versão probabilística do algoritmo escolhe uma permutação uniformemente dosn pontos dados, e os processa nesta ordem. Essa versão consome tempo O(n lg n).

Isso está provado na seção 11.3 do livro de de Berg et al. Lema: O número esperado de faces criadas por

esta variante do Incremental3Dé no máximo 6n − 20. Observe que o lema acima garante que o custo total para construir os fechos P1, . . . , Pn poderia serO(n) em princípio. No entanto, para isso, temos que ser capazes de encontrar as faces visíveis sem testar a visibilidade face a face.

(58)

Algoritmo incremental probabilístico

(59)

Algoritmo incremental probabilístico

Para isso, o algoritmo carrega um grafo bipartido G onde um lado da bipartição são os vértices pk, . . . , pn onde e do outro lado da bipartição as faces dePk−1.

(60)

Algoritmo incremental probabilístico

Para isso, o algoritmo carrega um grafo bipartido G onde um lado da bipartição são os vértices pk, . . . , pn onde e do outro lado da bipartição as faces dePk−1. Um vértice pt é adjacente a uma facef se enxerga f .

(61)

Algoritmo incremental probabilístico

Para isso, o algoritmo carrega um grafo bipartido G onde um lado da bipartição são os vértices pk, . . . , pn onde e do outro lado da bipartição as faces dePk−1. Um vértice pt é adjacente a uma facef se enxerga f . Fconflito(p): conjunto das faces vizinhas em G ao vértice p

(62)

Algoritmo incremental probabilístico

Para isso, o algoritmo carrega um grafo bipartido G onde um lado da bipartição são os vértices pk, . . . , pn onde e do outro lado da bipartição as faces dePk−1. Um vértice pt é adjacente a uma facef se enxerga f . Fconflito(p): conjunto das faces vizinhas em G ao vértice p

Pconflito(f ): conjunto dos vértices vizinhos emG à face f Em cada iteração,

Fconflito(pk) são as faces a serem removidas de Pk−1. Remova as faces de Fconflito(pk) da ED das arestas aladas.

(63)

Algoritmo incremental probabilístico

Enquanto remove as faces de Fconflito(pk),

(64)

Algoritmo incremental probabilístico

Enquanto remove as faces de Fconflito(pk),

determine o conjunto L das arestas na borda da região visível. Para cada aresta e do conjunto L,

acrescente uma nova face com e e pk na ED das arestas aladas, para obter a representação de Pk.

(65)

Algoritmo incremental probabilístico

Enquanto remove as faces de Fconflito(pk),

determine o conjunto L das arestas na borda da região visível. Para cada aresta e do conjunto L,

acrescente uma nova face com e e pk na ED das arestas aladas, para obter a representação de Pk.

O tempo para isso é proporcional à soma do tamanho

(66)

Algoritmo incremental probabilístico

Enquanto remove as faces de Fconflito(pk),

determine o conjunto L das arestas na borda da região visível. Para cada aresta e do conjunto L,

acrescente uma nova face com e e pk na ED das arestas aladas, para obter a representação de Pk.

O tempo para isso é proporcional à soma do tamanho

dos dois conjuntos, e isso, pelo lema anterior, é O(n) no total. Mas... adicionalmente precisamos atualizar G.

Isso envolve:

 remover pk;

 remover as faces de Fconflito(pk);

 inserir as faces novas, uma para cada e ∈L;

(67)

Algoritmo incremental probabilístico

Como determinar o conjunto Pconflito(f ) para cada f ? Esta é a parte do algoritmo que consome O(n lg n) no total.

(68)

Algoritmo incremental probabilístico

Como determinar o conjunto Pconflito(f ) para cada f ? Esta é a parte do algoritmo que consome O(n lg n) no total. Para mostrar isso, primeiro observe que, see ∈ L

e f é a nova aresta formada pore e pk, então

Pconflito(f )⊆ Pconflito(f1) ∪ Pconflito(f2)

(69)

Algoritmo incremental probabilístico

Como determinar o conjunto Pconflito(f ) para cada f ? Esta é a parte do algoritmo que consome O(n lg n) no total. Para mostrar isso, primeiro observe que, see ∈ L

e f é a nova aresta formada pore e pk, então

Pconflito(f )⊆ Pconflito(f1) ∪ Pconflito(f2)

onde f1 ef2 são as faces de Pk−1 que compartilhame. Seja P(e) = Pconflito(f1) ∪ Pconflito(f2).

(70)

Algoritmo incremental probabilístico

Seja P(e) = Pconflito(f1) ∪ Pconflito(f2). Usando a rotina Volume6, podemos calcular

(71)

Algoritmo incremental probabilístico

Seja P(e) = Pconflito(f1) ∪ Pconflito(f2). Usando a rotina Volume6, podemos calcular

o conjunto Pconflito(f )para cada face nova f em tempo O(|P(e)|). No livro de de Berg et al., se encontra a prova de que

E[e|P(e)|] = O(n lg n)

onde a soma é sobre todas as arestas que

(72)

Algoritmo incremental probabilístico

Seja P(e) = Pconflito(f1) ∪ Pconflito(f2). Usando a rotina Volume6, podemos calcular

o conjunto Pconflito(f )para cada face nova f em tempo O(|P(e)|). No livro de de Berg et al., se encontra a prova de que

E[e|P(e)|] = O(n lg n)

onde a soma é sobre todas as arestas que

fizeram parte de L em alguma iteração do algoritmo. Então... Lema:

O consumo de tempo esperado desta variante do Incremental3D é O(n lg n) para calcular o fecho convexo de n pontos do IR3.

Referências

Documentos relacionados

Pode usar os seguintes sete tipos de papel para imprimir cópias: Carta, A4, B5, A5, B6, A6 e Executivo e dois tamanhos para imprimir faxes: Carta, e A4. Quando altera o tamanho

As pedras de um dominó usual são compostas por dois quadrados, com 7 possíveis marcas (de zero pontos até 6 pontos).. Um brinquedo infantil caminhão-cegonha é formado por uma

No dia da prova, o estudante deverá apresentar um documento de identidade original com foto atual e o comprovante de inscrição impresso ou em meio digital. É responsabilidade do

descobre tal elemento por meio de uma busca linear, o algoritmo abaixo mantém o trecho não ordenado num monte, de forma que a seleção do maior elemento pode ser feita em tempo O(lg

#cortes r , o n´ umero de cortes adicionados pelo usu´ ario na resolu¸c˜ ao da raiz; tempo r , o tempo computacional em segundos para a resolu¸c˜ ao da raiz; #n´ os, o n´ umero de

Assim, a memória necessária para o armazenamento da estrutura de dados dos métodos que usam G pontos de âncora é da ordem de G.N, ao invés de N 2 , como para o algoritmo AESA [8]..

Sendo essa a problemática e a via na qual segue esse trabalho, utiliza-se dos conceitos de Mito de Mircea Eliade e de Joseph Campbell, do de rito de Maria Angela

A UMAS SAUDADES (257) Parti, coração, parti, navegai sem vos deter, ide-vos, minhas saudades.. a meu