Algoritmo da IFT 2 / 16. Algoritmo da IFT Estrutura da fila de prioridade Resolvendo empates. Algoritmo 1 Algoritmo geral da IFT

Documentos relacionados
Transformada Imagem-Floresta (IFT)

Transformada Imagem-Floresta (IFT)

Processamento de Imagens usando Grafos (MAC6903)

Algoritmo de Dijkstra Estudo e Implementação

Processamento de Imagens usando Grafos (MAC6903)

Árvore de componentes Aula 8

Processamento de Imagens usando Grafos (MAC6903)

Árvore de componentes

Aplicações de listas e outras estruturas

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I

Aplicações de listas Outras estruturas

Universidade de São Paulo

Algoritmos de segmentação por corte em grafo generalizado

Teoria dos Grafos Aula 3

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

INF 1010 Estruturas de Dados Avançadas

Lista de Exercícios 04

Estruturas de Dados Estruturas de Dados Fundamentais

Otimização em Grafos

Estruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

Árvores B. Definição: Seja t a ordem da árvore B. Uma árvore B de ordem t é uma árvore ordenada que é vazia, ou que satisfaz as seguintes condições:

INF1010 Lista de Exercícios 2

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I

Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares)

Instituto de C. Filas. Luis Martí Instituto de Computação Universidade Federal Fluminense -

Pilhas e Filas. Nádia Félix e Hebert Coelho

Estrutura de Dados. Aleardo Manacero Jr.

Lista de Prioridades. Estrutura de Dados II Prof. Erinaldo

Teoria dos Grafos Aula 6

Estruturas de Dados - Filas

Aplicações de listas e outras estruturas

Teoria dos Grafos Aula 8

Fila e Deque. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Estrutura de dados - Listas Encadeadas

Algoritmos e Estruturas de Dados II IEC013

Facebook. Um grafo é uma rede. Estrutura de dados fundamental em Informática, tal como listas e árvores.

Teoria dos Grafos Aula 8

Lista de Exercícios sobre Listas Implementadas por Encadeamento

Capítulo 8: Abstrações de dados

Estrutura de Dados: Aula 3 - Linguagem C

Lista de Exercícios. Av. Trabalhador São-carlense, 400. centro. São Carlos - SP cep Brasil.

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Pilhas. ser acessada somente por uma de suas extremidades. pelo topo. S Uma pilha é uma estrutura linear de dados que pode

S U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas

Árvores Auto-ajustadas

ESTRUTURA DE DADOS LISTAS LINEARES

AED2 - Aula 22 Busca em largura, cálculo de distâncias

Matrizes Esparsas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

INF 1010 Estruturas de Dados Avançadas

ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS ESTRUTURA DE DADOS

Filas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista

Aula 7 e 8 Filas e suas Aplicações. Prof. Leticia Winkler

Estruturas de Dados I

Pesquisa em Memória Secundária. Prof. Jonas Potros

Grafos - Representação

Disciplina que estuda as técnicas computacionais para a organização e manipulação eficiente de quaisquer quantidades de informação.

Estruturas de dados para listas arrays e listas ligadas

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

Representações de Grafos

Fila e Deque. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

Prova Substitutiva PMR3201 1o. semestre 2018 Prof. Thiago Martins

Gerência de Memória. Algoritmos de Substituição de Páginas. (Aula 20)

Listas e matrizes esparsas Orthogonal List Representation (Listas Cruzadas) 21/10/2010

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação

AULA 00 Estrutura de Dados Professor Pedro Henrique Chagas Freitas

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

Grafos COM11087-Tópicos Especiais em Programação II

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

Filas. Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing,

DAINF - Departamento de Informática

ESTRUTURAS DE DADOS E ALGORITMOS HEAP BINÁRIA

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Estruturas de Dados. Árvores. Onde Estamos? Introdução à estrutura de dados. Alocação dinâmica de memória. Pilhas. Filas.

3. Conteúdo de um vértice v é conteúdo dos filhos de v.

ICET CURSO: Ciência da Computação e Sistemas de Informação (Estrutura de Dados) Estudos Disciplinares Campus: Data: / / Nome:

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Grupo 2 - Implementação de uma Classe Simples

# Estrutura de Dados # Aula 06 Pilhas Estáticas. Prof. Leinylson Fontinele Pereira

Árvores de Suporte de Custo Mínimo

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 9

Grafos Direcionados. > Grafos Direcionados Representações Computacionais 1/36

Classificação e Pesquisa

10.1. Aula 10: Pilhas. O conceito de pilha. Algoritmos de inserção e remoção. Exemplo: Notação Polonesa

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Otimização em Grafos

Grafos: componentes fortemente conexos, árvores geradoras mínimas

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

Métodos de Ordenação Parte 4

Filas de Prioridade & Heaps

1. Listas sequenciais versus listas ligadas. Lista sequencial

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Transcrição:

Transformada Imagem-Floresta (Estrutura de dados) Prof. Dr. Paulo A. V. de Miranda Instituto de Matemática e Estatística (IME), Universidade de São Paulo (USP) pmiranda@vision.ime.usp.br 1 / 16

Algoritmo 1 Algoritmo geral da IFT Entrada: Imagem Î = (D I, I), adjacência A, e função de conexidade f. Saída: Imagens ˆP = (D I,P) de predecessores, e ˆV = (D I,V ) de conexidade. Auxiliares: Fila de Q, variável tmp, e vetor de estado inicialmente zerado. 1. Para Cada t D I, Faça P(t) nil e V (t) f( t ). Se V (t) +, Então insira t em Q. 2. Enquanto Q, Faça 3. Remova um pixel s de Q cujo valor V (s) seja minimo. 4. estado(s) 1. 5. Para Cada t A(s), tal que estado(t) = 0, Faça 6. tmp f(π s s,t ). 7. Se tmp < V (t), Então 8. Se V (t) +, Então remova t de Q. 9. P(t) s, V (t) tmp, e insira t em Q. 2 / 16

A fila tem que suportar as três operações seguintes, de acordo com as linhas 3, 8 e 9 do algoritmo da IFT: remover um spel s de precedência máxima, ou seja com V(s) mínimo (linha 3). remover um dado spel t de Q (linha 8). inserir um dado spel t em Q (linha 9). Na verdade, essas operações dependem da estrutura exata da fila utilizada. 3 / 16

A implementação mais fácil para a fila Q usa um heap binário. Neste caso o algoritmo da IFT terá complexidade O((M +N)logN), onde N é o número de nós (pixels) e M o número de arestas do grafo. 4 / 16

Na maioria das aplicações, porém, podemos usar funções de custo de caminho com incrementos de custo inteiros e limitados a uma constante K ao longo do caminho. Isto permite a utilização da fila circular de Dial com K +1 posições. Cada posição i, i = 0,1,...,K, deve armazenar uma lista duplamente ligada de todos os pixels p com custo V(p) tal que i = V(p)%(K +1). 5 / 16

t 5 2 1 0 K K 1 t 4 t 4 t 1 t 6 2 1 0 K K 1 t 1 t 2 t 3 t 5 t 6 t 2 t 3 (a) Estrutura de Dial para a fila Q. (b) Estrutura proposta por A.X. Falcão. Como sabemos o tamanho máximo N do grafo, essas listas podem ser implementadas em uma única matriz X de ponteiros X.next(p) e X.prev(p) com N elementos. 6 / 16

A estrutura da fila proposta por Falcão possui: Um conjunto de K +1 buckets (K = máximo incremento de custo), e Um vetor de N estruturas (N = tamanho da imagem), representando os spels inseridos na fila. Assim, a estrutura de fila usa O(K +N) de memória. 7 / 16

Cada estrutura do segundo vetor corresponde a um nó da lista duplamente ligada (DLL node). Cada nó DLL tem dois ponteiros Anterior (prev) e próximo (next). Cada bucket do primeiro vetor aponta para o nó DLL do último spel inserido naquele bucket (os outros spels inseridos no mesmo bucket são recuperados, seguindo a lista ligada). 8 / 16

O nó DLL de um dado spel t pode ser obtido em tempo O(1): O spel t tem um identificador (isto é, um número no intervalo [0,N 1]), que é utilizado como índice para acessar o seu nó DLL no segundo array. 9 / 16

Vamos considerar o exemplo a seguir, onde N = 4 e K = 2. Uma fila vazia seria representada da seguinte forma: 10 / 16

Os spels podem ser referenciados por seus índices no intervalo [0,3]. Agora, suponha que os spels 3,2 e 0 foram inseridos, nessa ordem, no primeiro bucket. Teremos: 11 / 16

Na verdade, a fim de suportar inserção e remoção FIFO ou LIFO, nós geralmente consideramos também um apontador para o primeiro elemento em cada bucket: 12 / 16

Poderíamos, também, representar a estrutura utilizando os índices dos spels em vez de usar ponteiros: 13 / 16

O que fazer quando um pixel é alcançado por dois ou mais caminhos de mesmo custo? 0 5 5 5 5 5 5 0 0 5 5 5 5 5 5 0 0 5 5 5 5 5 5 0 Exemplos de tie-breaking. (a) Poĺıtica FIFO. (b) Poĺıtica LIFO. (c) Poĺıtica FIFO com adjacência vizinhos-8. 14 / 16

No caso da estrutura da fila proposta por Falcão, o algoritmo da IFT terá complexidade O(M +N K). Para alguns casos particulares, a complexidade é ainda melhor O(M +N +K) (e.g., função f max ). Se a adjacência definir um grafo esparso, a IFT levará tempo proporcional ao número N de pixels, pois o número de pixels adjacentes pode ser considerado uma constante pequena. 15 / 16

Note que a cada instante existe um valor mínimo V mim e um valor máximo V max de custo para os pixels armazenados em Q. A diferença V max V min K deve ser mantida para garantir a corretude da fila. Em algumas aplicações sabemos que os incrementos são inteiros e limitados, mas não conhecemos o valor de K. Neste caso, a fila circular inicia com um dado tamanho K, mas antes de inserir um novo pixel devemos verificar a necessidade de realocar ou não mais elementos para a fila. 16 / 16