ArangoDB에서 최단 경로의 다양한 변종을 찾을 수 있습니까? 나는 첫번째 경로처럼, 많은 변종을 찾을 필요 - 거리를 2 제 2 경로 거리 3 등arangoDB에서 다중 경로 검색
이 있습니까 OOB가 algrorithm 포함되어 있습니까? 검색 결과에서 필수 노드를 지정하고 싶습니다.
벡터 가중치가 지원됩니까? 무게는 우선 순위에 따라 가중치가 적용되는 배열이 특징입니다.
미리 감사드립니다.
ArangoDB에서 최단 경로의 다양한 변종을 찾을 수 있습니까? 나는 첫번째 경로처럼, 많은 변종을 찾을 필요 - 거리를 2 제 2 경로 거리 3 등arangoDB에서 다중 경로 검색
이 있습니까 OOB가 algrorithm 포함되어 있습니까? 검색 결과에서 필수 노드를 지정하고 싶습니다.
벡터 가중치가 지원됩니까? 무게는 우선 순위에 따라 가중치가 적용되는 배열이 특징입니다.
미리 감사드립니다.
최단 경로 알고리즘은 하나의 최단 경로 만 결정할 수 있습니다. 이것은 전체 그래프 예를 들어
:
... 다음 C
-A
최단 경로 조회 경로 A -> B -> C
또는 A -> D -> C
을 반환하지만, 그 어느 미정의 (에지를 참가 여기에 가중치).
하면 최단 경로 길이를 결정하지만 효율적인 최단 경로 알고리즘을 사용할 수
RETURN LENGTH(
FOR v IN OUTBOUND
SHORTEST_PATH "verts/A" TO "verts/C" edges
RETURN v
)
결과는 예시적인 그래프 3은 (개시 정점을 포함한다). 이제, 1을 뺀 다음 가장자리 수/통과 깊이를 구합니다. 패턴 매칭 트래버스를 실행하여이 길이를 가진 모든 경로를 찾을 수 있습니다 (최소 깊이와 최대 깊이를 늘림으로써 길이가 긴 경로). 포인트를 시작하면 다시 A
이며, v
(또는 p.vertices[-1]
)의 문서 ID에 필터 우리는 C
에 종료 경로 검색 보장 :
FOR v, e, p IN 2..2 OUTBOUND "verts/A" edges
FILTER v._id == "verts/C"
RETURN CONCAT_SEPARATOR(" -> ", p.vertices[*]._key)
[
"A -> B -> C",
"A -> D -> C"
]
3..3
의 탐색 깊이가 A -> E -> F -> C
을 반환을 , 그리고 세 경로 모두 2..3
.
최소 및 최대 깊이가 표현이 될 수 없기 때문에 최단 경로 길이를 계산하고 최단 경로 길이 (1을 기준으로 함)를 기반으로 패턴 일치를 수행하려면 두 개의 개별 쿼리가 필요합니다. 사전에 숫자 리터럴 또는 바인드 매개 변수가 있어야 함).
이들은 세 가지 질문이며 별도로 게시해야합니다. 2와 3을 추가 설명과 함께 게시하십시오. 데이터베이스 쿼리 및 예상되는 결과에 대해 묻고있는 것이 명확하지 않으므로 게시하십시오. – CoDEmanX