2011-03-24 2 views
0

거대한 그래프를 메모리에로드하고 x와 y의 다른 쌍에 대해 "x와 y 사이의 최단 경로"에 응답해야하는 응용 프로그램을 작성했습니다. 그래프는 정적이며 주 메모리에 모두 한번로드 할 수 있습니다.거대한 그래프를 메모리에로드하여 주어진 두 노드 사이의 최단 경로를 반복적으로 찾는 방법?

x와 y 사이의 최단 경로에 대한 쿼리는 PHP로 작성된 UI에 의해 수행됩니다. 어떻게 그래프를 메모리에로드 된 상태로 유지하고 효율적인 방법으로 최단 경로를 반복적으로 찾을 수 있습니까? 도움이 될 자바 데몬을 작성하고 있습니까?

+0

"거대한"을 정의하십시오 –

+0

1 백만 노드 – Csbhagav

답변

0

항상 실행되는 서비스/데몬을 작성하고 데이터를 메모리에 유지하려는 것처럼 들립니다. 거대하게, 얼마나 큰가?

+0

1 백만 노드가 조금 넘습니다. 네, 데몬을 써야한다는 것을 이해합니다. 하지만 어떻게 내가 자바에서 데몬을 작성할 수 있는지, 그리고 PHP 코드에서 JAVA Apis를 호출 할 수 있을지 잘 모르겠다. – Csbhagav

0

memcached를 사용하여 그래프를 메모리에로드 된 상태로 유지할 수 있습니다. PHP는 memcached에서 데이터를 쉽게 읽고 쓸 수 있습니다.

서버에서 데몬/서비스로 memcached를 실행해야합니다.

+0

memcached는 키 값 쌍을 저장한다고 생각합니다. 한 노드가 두 개 이상의 다른 노드에 연결될 수있는 DAG를 저장하려면 어떻게해야합니까? – Csbhagav

+0

한 가지 방법은 다음과 같습니다. 1. 모든 노드를 이름 값 쌍으로 유지합니다. 이름은 노드의 "ID"이고 값은 노드입니다. 2. 각 노드에 대해 속성 중 하나는 연결된 노드 목록입니다. –

관련 문제