ine5408 estruturas de dados gerência de arquivos -propriedades de Árvores k-d

16
INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Upload: aurora-batista-marreiro

Post on 07-Apr-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

INE5408Estruturas de Dados

Gerência de Arquivos

-Propriedades de Árvores k-D

Page 2: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada

• Algoritmo:– Sempre usamos o ponto mediano do

discriminante (coordenada) que estamos considerando neste momento para raiz da subárvore-kd

– Se houver duplicação, pegamos qualquer um dos repetidos.

• Adiante, um exemplo com um conjunto de coordenadas 2D

Page 3: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada• Suponha que queiramos inserir de forma

balanceada estes pontos bi-dimensionais em uma árvore kd:(0.03, 0.90), (0.37, 0.04), (0.56, 0.78),(0.01, 0.48), (0.41, 0.89), (0.95, 0.07),(0.97, 0.09), (0.54, 0.65), (0.04, 0.61),(0.73, 0.69), (0.46, 0.58), (0.08, 0.89),(0.04, 0.41), (0.94, 0.02), (0.33, 0.07),(0.55, 0.54), (0.06, 0.05), (0.04, 0.06),(0.74, 0.97), (0.29, 0.15), (0.05, 0.88),(0.23, 0.23), (0.55, 0.02), (0.02, 0.97),(0.05, 0.07), (0.06, 0.28), (0.09, 0.55),(0.02, 0.91), (0.05, 0.97), (0.68, 0.42),(0.97, 0.18)

Page 4: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada

• Ordenamos os pontos com relação à 1ª coordenada (que é o 1º discriminante) e achamos a mediana:

(0.01, 0.48), (0.02, 0.91), (0.02, 0.97), (0.03, 0.90),(0.04, 0.06), (0.04, 0.41), (0.04, 0.61), (0.05, 0.07),(0.05, 0.88), (0.05, 0.97), (0.06, 0.05), (0.06, 0.28),(0.08, 0.89), (0.09, 0.55), (0.23, 0.23), (0.29, 0.15),(0.33, 0.07), (0.37, 0.04), (0.41, 0.89), (0.46, 0.58),(0.54, 0.65), (0.55, 0.02), (0.55, 0.54), (0.56, 0.78),(0.68, 0.42), (0.73, 0.69), (0.74, 0.97), (0.94, 0.02),(0.95, 0.07), (0.97, 0.09), (0.97, 0.18)

Page 5: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada

• A mediana, (0.29, 0.15), forma a raiz da árvore kd:

Page 6: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada

• Isto particiona os pontos restantes em dois conjuntos idenependentes:{(0.01, 0.48), (0.02, 0.91), (0.02, 0.97), (0.03, 0.90), (0.04, 0.06), (0.04, 0.41), (0.04, 0.61), (0.05, 0.07), (0.05, 0.88), (0.05, 0.97), (0.06, 0.05), (0.06, 0.28), (0.08, 0.89), (0.09, 0.55), (0.23, 0.23)}

{(0.33, 0.07), (0.37, 0.04), (0.41, 0.89), (0.46, 0.58), (0.54, 0.65), (0.55, 0.02), (0.55, 0.54), (0.56, 0.78), (0.68, 0.42), (0.73, 0.69), (0.74, 0.97), (0.94, 0.02), (0.95, 0.07), (0.97, 0.09), (0.97, 0.18)}

Page 7: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada

• Iniciando com o primeiro conjunto, reordenamo-lo de acordo com o 2º discriminante: (0.06, 0.05), (0.04, 0.06), (0.05, 0.07), (0.23, 0.23), (0.06, 0.28), (0.04, 0.41), (0.01, 0.48), (0.09, 0.55), (0.04, 0.61), (0.03, 0.90), (0.02, 0.91), (0.02, 0.97), (0.05, 0.88), (0.08, 0.89), (0.05, 0.97)

Page 8: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada

• Este pontro será o filho da esquerda da raiz:

Page 9: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada

• Tomando o segundo conjunto, também ordenamo-lo de acordo com o segundo discriminante: (0.55, 0.02), (0.94, 0.02), (0.37, 0.04), (0.33, 0.07), (0.95, 0.07), (0.97, 0.09), (0.97, 0.18), (0.68, 0.42), (0.55, 0.54), (0.46, 0.58), (0.54, 0.65), (0.73, 0.69), (0.56, 0.78), (0.41, 0.89), (0.74, 0.97)

Page 10: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada

• Isto cria o filho da cireita da raiz:

Page 11: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada

• Ordenamos pela mediana do 1º discriminante para achar os filhos de (0.09, 0.55): (0.01, 0.48), (0.04, 0.06), (0.04, 0.41), (0.05, 0.07), (0.06, 0.05), (0.06, 0.28), (0.23, 0.23),

(0.02, 0.91), (0.02, 0.97), (0.03, 0.90), (0.04, 0.61), (0.05, 0.88), (0.05, 0.97), (0.08, 0.89)

Page 12: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada

• Fazemos o mesmo para as duas partições da direita: (0.33, 0.07), (0.37, 0.04), (0.55, 0.02), (0.94, 0.02), (0.95, 0.07), (0.97, 0.09), (0.97, 0.18)

(0.41, 0.89), (0.46, 0.58), (0.54, 0.65), (0.55, 0.54), (0.56, 0.78), (0.73, 0.69), (0.74, 0.97)

Page 13: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada

• No próximo nível ordenamos os pontos de peloo 2º discriminante e tomamos asa medianas: (0.04, 0.06), (0.04, 0.41), (0.01, 0.48) (0.06, 0.05), (0.23, 0.23), (0.06, 0.28) (0.03, 0.90), (0.02, 0.91), (0.02, 0.97) (0.05, 0.88), (0.08, 0.89), (0.05, 0.97) (0.55, 0.02), (0.37, 0.04), (0.33, 0.07) (0.95, 0.07), (0.97, 0.09), (0.97, 0.18) (0.46, 0.58), (0.54, 0.65), (0.41, 0.89) (0.73, 0.69), (0.56, 0.78), (0.74, 0.97)

Page 14: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Construindo uma Árvore k-D balanceada

• Os pontos restantes serão folhas, organizados pelo 1º discriminante

• Resulta uma árvore 2-d com 31 nodos.

Page 15: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Exemplo de divisão do espaço por uma Árvore 3-D:

Page 16: INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D

Atribuição-Uso Não-Comercial-Compartilhamento pela Licença 2.5 Brasil

Você pode: - copiar, distribuir, exibir e executar a obra - criar obras derivadas

Sob as seguintes condições:Atribuição — Você deve dar crédito ao autor original, da forma especificada pelo autor ou

licenciante. Uso Não-Comercial — Você não pode utilizar esta obra com finalidades comerciais. Compartilhamento pela mesma Licença — Se você alterar, transformar, ou criar outra obra

com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta.

Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/ ou mande uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.