Busca Bidirecional

Estou com problemas no desenvolvimento de uma busca em largura que uma inicia pelo ponto inicial e outra é setada a partir da meta as duas buscas sao realizadas através de processo concorrente e as duas terminam quando as duas se encontram , näo estou conseguindo fazer a busca no sentido contrário será que alguem tem algum algoritmo que possa me ajudar.

Obrigado

Moacir

Estou tambem tentando desenvolver uma busca em dois sentidos, uma partindo da raiz e outra partindo da meta. Sei que terei que usar processos concorrentes, porem nao chego a um resultado safisfatório. Alguem pode me informar como posso fazer isso? :roll:

Estou tambem tentando desenvolver uma busca em dois sentidos, uma partindo da raiz e outra partindo da meta. Sei que terei que usar processos concorrentes, porem nao chego a um resultado safisfatório. Alguem pode me informar como posso fazer isso? :roll:

eae pessoal blz?

bom quanto a isso tenhu uma sugestão

vc’s podem usar o conceito de busca binaria somado com o conveito de percurso em grafo

bom usando o modelo de busca binaria RED, tera que ser feita algumas modificações quanto a estrutura do algoritmo

como um grafo é uma arvore de n braços no o sistema de busca tera que ser mudado para o genero

R ListaBraços ED

visitando as arestas de cada vertice do sentido da esquerda para a direita, ou caso essas arestas estejam armazenadas como uma lista simplesmente encadeada, percorrer a lista de arestas visitando cada aresta

paremetro para o algoritmo Origem e Destino

onde antes vc vai ter que localizar o seu vertice de Origem para entaum começar a sua busca

agora como o caso de busca bidirecional

vc pode pensar no seguinte tendo uma classe de busca que implementa esse modelo

vc tera duas threads que executarão a busca uma que tem um objeto da classe de busca recebera os paremetros de busca

Origem :arrow: Destino

e a outra thread

Destino :arrow: Origem

onde devera tb ter mais duas funcionalidades implementadas um método que te permitira verifica e compara a posição atual da busca entre as duas threads e outra funcionalidade tem um local onde será armazrenado o percurso ateh o atual momento

sendo a busca encerrada de acordo com os estados:

:arrow: posição atual no grafo da primeira busca que está sendo executada pela primeira thread igual a posição atual no grafo da segunda busca implementada na segunda thread

:arrow: localizar um caminho entre a Origem e o Destino em qq das duas threads disparadas

:arrow: todos os vertices segundo um controle de percurso marcados como visitados

mais ou menos esse esquema :wink:

:roll: procurem fundir os conhecimento de estrutura de dados com os comecimento de teoria de grafos para criar as adaptações necessarias no modelo de busca RED em arvore binária :grin:

[]'s manos

E ae Anjo Supremo, ta meio sumido do PJ ou e impressao minha?