그래프 데이터베이스를 사용하여 증강 된 TSP 문제를 풀려고하고 있지만 고생하고 있습니다. SQL은 훌륭하지만 사이퍼의 멍청한 놈입니다. 도시 (노드)와 항공편 (관계)으로 간단한 그래프를 만들었습니다.Neo4J - 여행 세일즈맨
설정 : 가장 적은 총 비행 비용으로 8 개의 다른 도시로 여행 (주당 1 도시, 중복 없음). 나는 매주마다 변경되는 비행 비용을 최소화하기위한 최적의 경로를 해결하려고 노력하고 있습니다.
Here is a file on pastebin 내 노드가 포함되어 있습니다. & 관계. Neo4JShell과 비교하여 데이터를 삽입하면됩니다.
나는 근거로 this article를 사용하여 시작했다하지만 난이 비 실행/구문 끔찍 알고 있지만, 여기에 내가했습니다 무엇
을 변화하는 거리를 처리 (또는 내 경우 비행 비용)하지 않습니다 지금까지 단 두 번의 비행 만 가능합니다.
MATCH (a:CITY)-[F1:FLIGHT{week:1}]->(b:CITY) -[F2:FLIGHT{week:2}]->(c:CITY) RETURN a,b,c;
그러나 그것은 실행되지 않습니다.
다음으로, 난 그냥 모든 도시를 일주일에 한에서 & 항공권을 찾을 시도라고 생각하지만 잘 작동하지 않습니다 중 하나를 주 <> 1뿐만 아니라 1
MATCH (n) WHERE (n)-[:FLIGHT { week:1 }]->() RETURN n
누구든지 도와 줄 수 있습니까?
추신 - 나는 이것을 해결하기 위해 그래프 DB를 사용하지 않고 결혼에 대해 읽었을 뿐이며 시도해보기에 적합 할뿐만 아니라 나와 함께 일할 이유가 있다고 생각했지만 지금까지, 나는 (또는 어떤) 성공을 많이 가지고 있지 않다.
저는 David의 답변을 허용 된 솔루션으로 표시했습니다. Neo4J를 사용하기를 바랬지 만, 대신 IP 솔버를 조사해야하는 것처럼 들립니다. 더 많은 연구를 한 후에 Neo4J는 이런 유형의 관계 문제를 모델링하는 것이 더 좋을 수 있지만, 무차별 대항력보다 NP 하드 문제를 해결할만큼 계산 상으로는 충분하지 않습니다. – NumericOverflow