Traveling Salesman Problem – 개요 (1/2)

Slides:



Advertisements
Similar presentations
최적화 문제 해결 현대 생산  운영관리 부산대학교 산업대학원 2012 년 2 학기 하병현.
Advertisements

폭력. 폭력이란 무엇인가 우상의 눈물 물리적인 폭력 ( 최기표 ) VS 지능적인 폭력 ( 임형우, 담임선생님 )
1 박 2 일 !!! 인천마장초등학교 유수아. 1 박 2 일 멤버 인기순 위 1 위 이승기 2 위 엄태웅 3 위 은지원 4 위 김종민, 이수근 ※인터넷에서 본것이기 때문에 사람에따라 서 다를 수 있다. ※
석관중앙교회 5남전도회 석 관 중 앙 교 회 회원 소식 통권 05-04호 발행일 : 2005년 04월 회 장 : 장진호 집사
방카슈랑스 성공추진 전략 2012년 하반기 영업점 방카추진 활성화 교육 WM사업부 방카마케팅팀
안녕하십니까! 아파하는 이웃을 위한 치료제, 약 사 팀의 발표를 시작하겠습니다..
그래프.
15 장. 알고리즘의 설계 알고리즘 설계 학습목표 기본 패턴 패턴의 한계점 일곱 가지 패턴의 알고리즘 설계 기법을 이해한다.
지역사회복지론 1조. 요양보호시설에 대해서 황성국 임재형 이동영
캐주얼 온라인게임의 시장 세분화 기능성 게임의 약진과 비전
Design of Waveguide Filter for 5G Phased Array Antenna System (WR-34)
Shortest Path Algorithm
2017 법인관련 개정세법 곽장미 세무사.
두벌식 자판과 완성형 코드가 잘못된 까닭과 속내
한우TMR 사용의 문제점과 개선방안 제일사료㈜ 김 덕 영.
『대기업-중소협력업체 안전보건 공생협력 프로그램』 추진 사업
연장근로와 야간·휴일근로 김영호 노무사 나눔 노사관계연구소 소장 연세대 일반대학원 박사 수료 고려사이버대 법학과 외래교수
I 문학의 개념과 역할 1. 문학의 개념 (1) 언어 예술로서의 문학 (2) 소통 활동으로서의 문학
워크샵 진행계획(안) 일정 : (금),19:00~1.30(토),12:00 (1박2일,합숙)
4. 목적론적 윤리와 의무론적 윤리 01. 경험주의와 이성주의 01. 경험주의와 이성주의 02. 결과론적 윤리와 공리주의
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 1 강원대학교 컴퓨터과학전공 문양세.
CHAP 10:그래프 순천향대학교 하상호.
부분집합의 합 구하기 문제 부분집합의 합 구하기(Sum-of-Subsets) 문제
CHAP 10 : 그래프 C로 쉽게 풀어쓴 자료구조 생능출판사 학기 데이터구조.
CHAP 10 : 그래프 C로 쉽게 풀어쓴 자료구조 Slide 1 (of 62).
연결리스트 (Linked List) 충북대학교 컴퓨터공학과 서 영 훈.
물류관리사 화물운송론 조 윤 성.
Genetic Algorithm 신희성.
 Branch-and-Bound (분기한정)
알고리즘(Algorithm) – Greedy Method (탐욕적 방법)
그래프(graph) 연결되어 있는 객체 간의 관계를 표현하는 자료구조 가장 일반적인 자료구조 형태
이산수학(Discrete Mathematics)
제 7 장 직장인과 세금 목 차 1. 직장인과 연말정산 2. 봉급생활자와 세금 3. 퇴직금과 세금 4. 연금소득
개항기 조선과 동아시아 박 범 한국역사입문Ⅱ.
동적 계획(Dynamic Programming)
Ch.06 Branch-and-Bound (분기한정법) (Ch.05-7 포함)
월 정례조회.
Ch.03 Dynamic Programming (동적 프로그래밍 or 동적 계획법)
제 7 장 정수계획법 정수계획법의 모형화 정수계획법의 해법 분단탐색법 정수계획법 적용사례.
2016년 연말정산 항목별 유의사항 등.
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 년 봄학기
Homework #5 (1/3) Backtracking, Branch-and-Bound
이산수학(Discrete Mathematics)
2d game pRogramming 1차 발표 이재남.
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
대구의 부도심 대구의 주요축 동대구 부도심 4조 강민석 / 박성균 / 최은지/ 황재현/김예지.
2. 윤리학의 원리와 적용 가. 상대주의와 절대주의.
동적계획법과 최적화 문제 Dynamic Programming을 사용한 최적화 문제를 해결하는 알고리즘 설계 절차
2010년 연말정산 교육자료 센터운영팀 인사파트
3장. 탐색.
0-1 Knapsack – 개선된 BFS 기반 알고리즘
강의 프레젠테이션 현대 사회와 미디어 12강. 미디어 문화.
기술 진화와 진보.
사도행전 13장 22절 말씀 –아멘 다 윗 을 왕 으 로 세 우 시 고 증 언 하 여 이 르 시 되 내 가 이 새 의 아 들
CHAP 10 : 그래프.
탐색 (Lecture Note #3) 인공지능 이복주 단국대학교 컴퓨터공학과 Modified from the slides
 Branch-and-Bound (분기한정)
Homework #5 (1/3) Backtracking, Branch-and-Bound
탐색 (Search) 컴퓨터가 문제를 자율적으로 해결하기 위해 해 혹은 해에 이르기 위한 경로를 찾아가는 과정
경찰행정과 세미나 결과를 공개해야한다. VS 비공개로 해야한다. 경찰의 근무성적평정 제도.
상황별/유형별 고객응대법.
올바른 부모교육으로 육아를 교육하자 해피트리.
켈러의 경영경제통계학 제11장 모집단에 관한 추론.
제 4장 그리디 알고리즘.
영상으로 읽는 한국사 02 삼국은 서로를 한 ‘민족’으로 생각했나? - 삼국통일의 의미-.
삶을 풍요롭게 만드는 의사소통.
Traditional Methods – Part 1
Traveling Salesman Problem – 개요 (1/2)
Traveling Salesman Problem – 개요 (1/2)
Presentation transcript:

Traveling Salesman Problem – 개요 (1/2) 외판원이 자신의 집이 위치하고 있는 도시에서 출발하여 다른 도시들을 “각각 한번씩만 방문”하고, “다시 자기 도시로 돌아오는” 가장 짧은 일주여행경로(tour)를 결정하는 문제이다. 일반적으로, 이 문제는 음이 아닌 가중치가 있는, 방향성 그래프를 대상으로 한다. 그래프 상에서 일주여행경로는 한 정점을 출발하여 다른 모든 정점을 한번씩 만 거쳐서 다시 그 정점으로 돌아오는 경로이다. 여러 개의 일주여행경로 중에서 길이가 최소가 되는 경로가 최적일주여행경로(optimal tour)가 된다.

Traveling Salesman Problem – 개요 (2/2) 무작정 알고리즘: 가능한 모든 일주여행경로를 다 고려한 후, 그 중에서 가장 짧은 일주여행경로를 선택한다.  Complete Graph에서 가능한 일주여행경로의 총 개수는 (n – 1)!이다.

TSP – 무작정 vs. DP n = 20일 때, n = 40이라면? DP 또한 6년 이상 걸린다. 무작정 알고리즘: 각 일주여행경로의 길이를 계산하는데 걸리는 시간은 1sec이라고 할 때, (20 - 1)! = 19!sec = 3857년이 걸린다. DP 기반 알고리즘 (P.128 참조): 기본동작을 수행하는데 걸리는 시간을 1sec이라고 할 때, T(20) = (20 - 1)(20 - 2)220-3sec = 45초가 걸리고, M(20) = 20  220 = 20,971,520의 배열 슬롯이 필요하다. n = 40이라면? DP 또한 6년 이상 걸린다. Dynamic Programming 방법 또한 실용적인 해결책인 아니다.

TSP – BnB 기반 접근법 – Running Example 보기: 다음 인접행렬로 표현된 그래프를 살펴보시오. 완전 연결그래프의 인접행렬 표현 최적 일주여행경로 14 v1 v2 4 8 11 10 7 5 7 7 v4 v3 9 20 18 16 2 7 17 4 v5

TSP – BnB 기반 상태공간트리 구축 (1/2) 각 노드는 출발노드로부터의 일주여행경로를 나타내게 되는데, 몇 개 만 예를 들어 보면 다음과 같다. 루트노드의 여행경로는 [1]이 되고, 루트노드에서 뻗어 나가는 수준 1에 있는 여행경로는 각각 [1,2], [1,3], …, [1,5]가 된다. 노드 [1,2]에서 뻗어 나가는 수준 2에 있는 노드들의 여행경로는 각각 [1,2,3], [1,2,4], [1,2,5]가 된다. 이런 식으로 뻗어 나가서 단말노드에 도달하게 되면 완전한 일주여행경로를 가지게 된다. 최적일주여행경로를 구하는 방법: 단말노드에 있는 일주여행경로를 모두 검사하여 그 중에서 가장 비용이 낮은 일주여행경로를 찾으면 된다.

TSP – BnB 기반 상태공간트리 구축 (2/2) 구축된 상태공간 트리의 일부 예 참고: 각 노드에 저장되어 있는 노드가 4개가 되면 더 이상 뻗어 나갈 필요가 없다. 왜냐하면, 5번째 노드는 더 이상 뻗어 나가지 않고도 알 수 있기 때문이다.

TSP – BnB-Best First Search 개요 (1/6) 분기한정 가지치기로 최고우선 검색을 사용하기 위해서 각 노드의 한계치(bound)를 구할 수 있어야 한다. 이 문제에서는 주어진 노드에서 뻗어 나가서 얻을 수 있는 여행경로 길이의 하한(최소치, lower bound)을 구하여 한계치로 한다. 각 노드를 검색할 때 최소여행경로의 길이 보다 한계치가 작은 경우 그 노드는 유망하다고 한다. 반대로, 최소 여행경로의 길이가 한계치보다 큰 경우는 Pruning을 수행하여 검색 공간을 줄인다.

TSP – BnB-Best First Search 개요 (2/6) 루트노드의 하한 구하기 근거: 어떤 일주여행경로라도 각 정점을 최소한 한번은 방문 후 떠나야 하므로, 각 정점을 떠나는 이음선의 최소값의 합이 하한이 된다. v1  min(14, 4, 10, 20) = 4 v2  min(14, 7, 8, 7) = 7 v3  min(4, 5, 7, 16) = 4 v4  min(11, 7, 9, 2) = 2 v5  min(18, 7, 17, 4) = 4 따라서, 일주여행경로 길이의 하한은 21(= 4+7+4+2+4)이 된다. 주의할 점은 “이 길이의 일주여행경로가 있다는 말이 아니라, 이보다 더 짧은 일주여행경로가 있을 수 없다”는 것이다. 그래서 하한(lower bound)이라는 말을 사용한다.

TSP – BnB-Best First Search 개요 (3/6) 루트노드가 아닌 다른 노드의 한계치 구하기 주어진 총 정점: [v1, …, vk, vk+1, …, vn] [v1, …, vk] 여행경로를 가진 노드의 한계치 (bound) = [v1, …, vk] 경로 상의 총 거리a + vk 에서 V - [v1, …, vk] 에 속한 정점으로 가는 이음선의 길이들 중에서 최소치b + vk+1 에서 V - [v2, …, vk, vk+1] 에 속한 정점으로 가는 이음선의 길이들 중에서 최소치c + vk+2 에서 V - [v2, …, vk, vk+2] 에 속한 정점으로 가는 이음선의 길이들 중에서 최소치c + … + vn 에서 V - [v2, …, vk, vn] 에 속한 정점으로 가는 이음선의 길이들 중에서 최소치c

TSP – BnB-Best First Search 개요 (4/6) 노드 [1, 2]를 선택한 경우의 하한 구하기 근거: 이미 v2를 선택하였음을 의미하므로, v1  v2의 비용은 이음선의 가중치인 14가 된다. 나머지는 앞서와 동일한 방법으로 구한다. v1  v2 = 14a v2  min(7, 8, 7) = 7b v3  min(4, 7, 16) = 4c v4  min(11, 9, 2) = 2c v5  min(18, 17, 4) = 4c 따라서, [1, 2]를 포함하는 노드에서 확장하여 구한 일주여행경로 길이의 하한은 31(= 14+7+4+2+4)가 된다. bound=21 bound=31

TSP – BnB-Best First Search 개요 (5/6) 노드 [1, 2, 3]를 선택한 경우의 하한 구하기 근거: 이미 v2와 v3를 선택하였음을 의미하므로, v1  v2  v3의 비용은 21(=14+7)이 된다. 나머지는 앞서와 동일한 방법으로 구한다. v1  v2 = 14a v2  v3 = 7a v3  min(7, 16) = 7b v4  min(11, 2) = 2c v5  min(18, 4) = 4c 따라서, [1, 2, 3]을 포함하는 노드에서 확장하여 구한 일주여행경로 길이의 하한은 34(= 14+7+7+2+4)이 된다. bound=21 bound=31 bound=34

TSP – BnB-Best First Search 개요 (6/6) 한계치(lower bound)와 최소여행경로(Min Length)의 비교 최소여행경로(Min Length) 의 초기값은 로 놓는다. 완전한 여행경로를 처음 얻을 때 까지는 한계치가 무조건 최소여행경로의 길이 (Min Length) 보다 작게 되므로 모든 노드는 유망하다. 완전한 여행경로를 얻은 후에는 많은 노드의 한계치가 그러한 최소여행경로의 길이(Min Length)보다 크기 때문에 Pruning의 효과가 발생한다.

TSP – BFS 기반 상태공간트리 구축 (1/5) 루트노드 구성 (bound = 21, minLen = ) 노드 [1, 2] (LB = 31) 노드 [1, 3] (LB = 22) 노드 [1, 4] (LB = 30) 노드 [1, 5] (LB = 42) BFS에 따라 한계 값이 가장 작은 [1, 3]을 방문한다.

TSP – BFS 기반 상태공간트리 구축 (3/5) 노드 [1, 3, 2] (LB = 22) 노드 [1, 3, 4] (LB = 27) 노드 [1, 3, 5] (LB = 39) BFS에 따라 한계 값이 가장 작은 [1, 3, 2]를 방문한다.

TSP – BFS 기반 상태공간트리 구축 (4/5) 노드 [1, 3, 2, 4] 단말노드 이므로 일주여행경로의 길이를 계산한다. 이 길이가 37이고, 37 < 이므로, minLen = 37이 된다. [1, 5]와 [1, 3, 5]는 한계값 (각각 42, 39)이 minLen 보다 크므로 Pruning 할 수 있다.

TSP – BFS 기반 상태공간트리 구축 (4/5) 노드 [1, 3, 2, 5] 방문 결과 minLen = 31이 된다. [1, 2]를 가지치기 할 수 있다. 다음으로, [1, 3, 4]를 선택한다. 상기 과정을 계속 반복하면, 왼편 그림의 Length = 30을 최소 길이로 구할 수 있다.

TSP – BFS 기반 상태공간트리 구축 (1/5)

TSP – BFS 기반 상태공간트리 구축 (5/5) 원래 상태공간 트리의 전체 노드 개수는 41개가 될 수 있다. (1 + 4 + 4 x 3 + 4 x 3 x 2 = 41) 반면에, BnB-BFS에서 구성한 상태공간트리를 보면 노드 개수가 17개이다. 결국, 효과적인 Pruning이 이뤄짐을 알 수 있다.

TSP – BFS 기반 알고리즘 자세한 알고리즘은 생략 (교재 p. 247 참조) 아직도 알고리즘의 시간복잡도는 지수적 시간에 거의 가깝다! 증명 생략 다시 말해서 n = 40이 되면 문제를 풀 수 없는 것과 다름없다고 할 수 있다. 다른 방법이 있을까? 근사(approximation) 알고리즘: 최적의 해답을 준다는 보장은 없지만, 무리 없이 최적에 가까운 해답을 주는 알고리즘이다 (수업 범위 외)