Bem explicado algoritmos para indexação e pesquisa em espaços métricos

votos
3

Eu preciso implementar algum tipo de busca espaço métrico em Postgres (*) (PL ou PL / Python). Então, eu estou procurando boas fontes (ou papéis) com uma explicação muito clara e nítida da máquina por trás dessas ideias, de tal maneira que eu possa implementá-lo eu mesmo.

Eu preferiria clareza sobre a eficiência.

(*) A necessidade de que é descrito melhor aqui .

Publicado 15/10/2008 em 21:21
fonte usuário
Em outras línguas...                            


4 respostas

votos
2

Especialmente para dados geográficos, olhe para PostGIS primeiro para ver se você precisa para implementar qualquer coisa. Se fizer isso, começar com os papéis listados na entrada da Wikipedia sobre GiST .

Olhando para o seu link, parece que o seu espaço métrico é cordas com algum tipo de edição distância como a métrica. Uma visão geral bom, mas velhote de algumas soluções é dada por Navarro, Baeza-Yates, Sutinen e Tarhio, IEEE Dados de engenharia Bulletin de 2001 ; os papéis relacionados sobre citeseer também poderia ser útil. Localidade Hashing Sensitive é uma técnica mais recente que pode ser útil, mas um monte de papéis são pesados em matemática.

Respondeu 15/10/2008 em 21:31
fonte usuário

votos
0

Algumas técnicas que envolvem a busca espaço que pode ajudá-lo são Hill-Climbing, treinamento da rede neural, Algoritmo Genético, e Particle Swarm.

Você também vai precisar para definir uma métrica de distância sobre o seu espaço métrico. Você já fez isso? (e por curiosidade, o que é, se você tiver feito isso)

Respondeu 15/10/2008 em 21:35
fonte usuário

votos
1

BK-Trees são úteis para indexação e pesquisa tudo o que obedece a desigualdade triangular, espaços métricos incluídos. O exemplo canônico está à procura de cordas dentro de uma determinada distância de edição de um alvo. Eu escrevi um artigo sobre isso aqui .

Infelizmente, não há suporte embutido para isso no Postgres. Você poderia implementá-lo usando GIST , mas obviamente que vai ser um monte de trabalho. Eu não posso pensar em alguma maneira de implementá-lo sem escrever seus próprios índices curta de armazenar a árvore em uma tabela, o que obviamente não vai ser muito eficiente.

Respondeu 17/10/2008 em 08:59
fonte usuário

votos
1

Você pode tentar http://sisap.org onde muitos índices métricas modernos são listados, incluindo BK-árvores. Você pode encontrar o código em C para experimentar diferentes alternativas.

Respondeu 11/11/2008 em 11:10
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more