그리드 맵이 있는데 두 노드 사이의 최단 경로를 찾아야하지만 그 경로는 에 일부 노드을 포함해야합니다.일부 노드를 방문하는 그리드 맵에 대한 최단 경로 알고리즘
모든 순열을 시도해 보았지만 맵 크기와 필수 노드 수는 가변적이므로 최적의 알고리즘을 사용하고 싶습니다.
맵이 비슷한 것 : map
-Dark brown square at Y18 is the start point
-Light brown squares from B20 to S20 are the end point (can make just one end point if needed)
-White squares are walls (you cannot go through them)
-Blue squares means that the point in front of it is a must-pass (for example, the blue square at q5-q6 means must pass zone of p5-p6)
내가 자바를 사용하기 위하여려고하고있다, 나는 예를 들어, S10은 S9과 연결되어있는 동안 그가 (그들 사이의 연결이 그래프를지도 할 것이다, o10 및 s11).
도움을 주셔서 감사 드리며 궁금한 점이 있으시면 언제든지 문의하십시오.
우선 빠르게 답변 해 주셔서 감사합니다. 그래서 노드의 모든 쌍 사이에 모든 거리를 가져야합니까? 그러면 (0, a)와 (0, b), (0, a)와 (0, c) ... (20, y) 및 (20, z) 사이의 거리와 그들과 함께 해밀턴 경로를 사용합니까? –
@AlbertoMendiolagoitia : "S"의 모든 쌍 사이에 모든 거리를 가져와야합니다. 여기서 S는 [필수 노드 집합]과 2 요소 집합 {starting_node , ending_node}. must-pass 노드의 수를 노드의 총 수와 비교하는 방법에 따라 _all_ 쌍 사이의 거리를 구하는 것이 가장 빠른 방법 일 수는 없지만 그렇다면, 당신은 둘 다 S 노드가 아닌 노드 사이의 거리를 버릴 수 있습니다. –