작은 사이클을 찾기에서 평면 그래프
-
10-07-2019 - |
문제
가 기하학적 무방향 평면 그래프, 는 그래프는 각 노드가 위치하고 없는 2 개의 가장자리가 십자가를 지고 나를 찾으려 모든 사이클이 없는 가장자리를 건너다.
거기에 어떤 좋은 솔루션을 알려진 이 문제가?
내가 무슨 일을 계획하는 종류의 A*
다음과 같 솔루션:
- 삽입하는 모든 가장자리에서 분 힙로
- 확장 짧은 경로와 매 옵션
- 추려는 경로를 다시 반복하다가 시작(가 필요하지 않을 수 있습니다)
- 추려 경로는 것은 세 번째 사용하 ang 주어진 가장자리
사람이 볼 수 있는 문제와 이?그것은 심지어 일하는가?
해결책
나의 첫 번째 본능은 벽을 따르는 벽 미로 솔버. 본질적으로 가장자리를 따라 가고 항상 정점에서 가장 오른쪽 가장자리를 꺼냅니다. 이 방법으로 만난주기는 얼굴의 경계가됩니다. 당신은 어떤 방향으로 가로 지르는 가장자리를 추적해야합니다. 양방향으로 가장자리를 가로 지르면 분리 된 얼굴을 식별했습니다. 모든 가장자리가 양방향으로 가로 지르면 모든면을 경계로 식별 할 수 있습니다.
다른 팁
간단한 방법으로 이렇게 하는 단순 열거 각각의 얼굴입니다.원리는 간단하다:
- 우리는'α-문'과'β 방문한'플래그를 위한 각각의 가장자리,그리고 한 쌍의 이중 연결 목록의 가장자리에 방문하지 않은 각 등의 플래그입니다.는'α'과'β'사단에 해당하는 파티션의 비행기에 해당하는 줄리에서 질문;어느 쪽이 α 고 어느 쪽이 β 임의로 지정되었습니다.
- 에 대한 각각의 정점 V:
- 각 인접한 한 쌍의 가장자리 E=(V_1V),E=(V_2V)(즉,정렬하여 각도를 취 인접한 쌍뿐만 아니라,첫 번째+마지막):
- 결정하는 측면의 S E(S=α 또는 β)V_2 에 거짓말.
- 내 타일에서 시작,V,를 사용하여 측 S E,으로 아래에서 설명:
걷는 타일에 의해 수행됩:
- 자 V=V_init
- Loop:
- V_next=의 정점 E 지 않 V
- E=인접 가장자리를 전자서 V_next 에 있는 전류의 측 E
- S'=의 측 E'는 포함되 V
- 는 경우 V_next=V,우리가 발견한 루프;기록하는 모든 가장자리에 의해 전달되는 방법에,그리고 사람들을 표시 가장자리 쌍으로 방문합니다.
- 는 경우 E'=E(단 하나의 가장자리),그리고 우리는 죽은 끝을 명중;중단 이내
- 그렇지 않으면,우 V=V_next,E=전자',S=S'계속합니다.
이들 감;그것은 아마도요 다이어그램을 설명한다...
제휴하지 않습니다 StackOverflow