2017-03-31 1 views
0

다음을 Python으로 구현하고 싶습니다. 그러나 시작할 위치를 모르겠습니다. 이 유형의 최단 경로 문제에 대한 우수한 모듈이 있습니까?일부 노드가 경로에서 금지 된 상태에서 설정된 노드에서 다른 모든 노드까지 최단 경로 계산

I는 XYZ의 주어진 집합 내의 특정 원자 (노드) 다른 원자 (노드)에에서 최단 경로를 정의하는 것을 시도하고는 3D 화학 구조 (그래프) 좌표. 원자 (노드) 사이의 결합은 노드에서 노드로의 이동이 허용되는 에지입니다.

나는 선택된 중심 노드에서 바깥쪽으로 연결을 기반으로 분자 (그래프)에서 특정 원자 (노드)를 필터링하려고합니다.

** 고려한 경로에 대해 특정 원자 (노드)가 교차하지 못하게하려고합니다. A에서 B까지의 최단 경로가 금지 된 노드를 통과하는 경우이 대답은 허용되지 않습니다. A부터 B까지의 최단 경로는 금지 된 노드를 포함해서는 안됩니다 **

선택된 중심 원자 (A)에서 다른 노드 (B) 로의 최단 경로가 금지 된 노드를 포함하고 사용 가능한 다른 경로가없는 경우 A에서 B로 가용 에지 (본드)를 통해 저장되면 노드 B는 저장 될 xyz 좌표 (노드)의 최종 세트에서 삭제되어야합니다.

이것은 구조 (그래프)의 다른 모든 원자 (노드)에 대해 A에서 C, A에서 D, A에서 E 등으로 반복해야합니다.

미리 도움을 주셔서 감사합니다.

답변

0

금단의 노드로 연결되는 모든 모서리가 무한한 비용을 가지며 사용하는 그래프 통과 알고리즘이 자동으로 처리되는지 확인하십시오.

또는 그래프 통과 알고리즘에서 금지 된 노드를 제거하십시오.

+0

감사합니다. 어떤 파일 형식과 파이썬 모듈을 권하고 싶습니까? –

0

질문의 첫 번째 부분에 답하려면 networkx.을 사용하는 것이 좋습니다. 내 생각에 꽤 쉽게 들어갈 수있는 범용 그래프 라이브러리입니다 (PhD에서 사용했습니다).

관련 문제