의 조건은 I 노드의 목록을 가지고 : 내가 어떤 그래프를 만들하려는동적 생성은 파이썬과 Networkx
n = [a1, a2, a3, a4, b1, b2, b3, b4]
, 이는 두 개의 임의의 노드를 선택하고 내가 nx.shortest_path
을 것이다 찾은 후 트리플의 모든 조합을 얻을 :
comb = [[A, A, A], [A, A, B], [A, B, A], [A, B, B], [B, A, A], [B, A, B], [B, B, A], [B, B, B]]
경우 A
및 B
노드 a1, a2, a3, a4, b1, b2, b3, b4
의 대응이다.
예를 들어, 알고리즘은 나를 위해 노드 사이의 경로를 생성하는 경우 : 다음
(a1, b1), (a2, a3), (a3, a4), (a3, b1), (b1, b2), (b2, b3)
:
nx.shortest_path(g, a2, a4) == (a2, a3, a4), as a case representation (A, A, A)
nx.shortest_path(g, a2, b1) == (a2, a3, b1), as a case representation (A, A, B)
nx.shortest_path(g, a3, a1) == (a3, b1, a1), as a case representation (A, B, A)
and so on all combinations with 'comb'.
어떻게 당신이 알고리즘 측면에서 걸릴 것입니까?
나는 작업을 이해하는 데 어려움이 있습니다. 더 자세하게 설명 할 수 있습니까? – Pavel
즉, 노드 목록 만 있으면 가장 짧은 경로를 사용하여 '빗'으로 표현할 수있는 그래프를 만듭니다. 물론 노드 수에 따라 이러한 조건을 충족하는 많은 그래프를 작성할 수 있지만 하나만 찾는 것에는 관심이 있습니다. 왜냐하면 내 경우에는 더 많은 노드가 있기 때문입니다. –
이고 문제는 연속 경로를 추가하여 이전에 발견 된 최단 경로를 혼란시키는 것이 쉽다는 것입니다. –