Search

오일러경로, 해밀턴경로

오일러경로 == 한붓그리기

쾨니히스베르크 다리 문제 그러나 이 문제는 모든 정점이 짝수개의 차수를 갖지 않아 오일러 경로가 아니다
오일러는 쾨니히스베르크 다리에 a~g의 이름을 붙이고 도식화해 논문을 발표
그림의 스케치는 현대의 그래프 구조의 원형이 되었다.
A, B, C, D : 정점(vertex)
a~g : 간선(edge)
오일러의 “모든 정점이 짝수개의 차수(Degree)를 갖는다면 모든 다리를 한 번씩만 건너서 도달하는 것이 성립한다.” 는 주장을 100년도 더 뒤에 칼 히어홀저가 수학적으로 이를 증명한 것이 오일러 정리 이다.
⇒ 모든 간선을 한 번씩 방문하는 유한그래프(Finite Graph)를 오일러경로(Eulerian Trail, Eulerian Path)라고 한다

해밀턴경로

“각 정점을 한 번씩 방문하는 무향 혹은 유향 그래프 경로”
해밀턴경로
정점을 기준
오일러경로
간선을 기준
해밀턴 경로를 찾는 문제는 최적 알고리즘이 없는 대표적인 NP-Complete problem이다(NP문제 중 난해인 문제)
원래의 출발점으로 돌아오는 경로 : 특별히 해밀턴 순환 이라고 불린다
이 중 최단 거리를 찾는 문제는 알고리즘 분야에서 외판원 문제(Salesman Problem)로 유명하다
외판원 문제(Traveling Salesman Problem, TSP) : 각 도시를 방문하고 돌아오는 가장 짧은 경로를 찾는 문제 (최단 거리인 해밀턴 순환을 찾는 문제) , NP-Hard 문제로 Theoretical Computer Science 분야의 매우 중요한 문제 중 하나
이 문제에서 도시가 20개라면, 문제의 정답을 찾기 위해 다녀야하는 총 경로 수 =20!=2,432,902,008,176,640,000= 20! = 2,432,902,008,176,640,000

왜 해밀턴 경로 문제와 외판원 문제의 NP문제가 다를까?

해밀턴경로
한 번만 방문하는 경로
해밀턴순환
한 번만 방문해 출발지로 돌아오는 경로
외판원 문제
한 번만 방문하여 출발지로 돌아오는 경로 중 가장 짧은 경로
외판원 문제 재정의
NP-Complete Problem의 조건 1. NP 문제임 2. NP-Hard 문제임
1.
해밀턴 경로가 존재하는가? = dicision problem = 다항시간에 정답을 검증 가능 = NP문제이자 NP-Hard문제 = NP complete problem
2.
각 도시를 방문하고 돌아오는 가장 짧은 경로를 찾아라( 최단 거리의 해밀턴 순환을 찾아라 ) ≠ dicision problem ⇒ NP문제가 아닐 수도 있다. 증명할 수 있는 NP-Hard 문제이지만, NP문제가 아닐 수 있으므로 NP-complete problem이 아닌 NP-hard problem
두 문제 사이의 차이를 판별해야 한다.
외판원 문제는 후에 다룰 다이나믹 프로그래밍 기법을 활용하면 좀 더 최적화 할 수 있다. O(n22n)O(n^22^n)