disclaimer · tsptw 의 해결을 위하여 동적 계획법(dynamic programming)을 사용한...

42
저작자표시 2.0 대한민국 이용자는 아래의 조건을 따르는 경우에 한하여 자유롭게 l 이 저작물을 복제, 배포, 전송, 전시, 공연 및 방송할 수 있습니다. l 이차적 저작물을 작성할 수 있습니다. l 이 저작물을 영리 목적으로 이용할 수 있습니다. 다음과 같은 조건을 따라야 합니다: l 귀하는, 이 저작물의 재이용이나 배포의 경우, 이 저작물에 적용된 이용허락조건 을 명확하게 나타내어야 합니다. l 저작권자로부터 별도의 허가를 받으면 이러한 조건들은 적용되지 않습니다. 저작권법에 따른 이용자의 권리는 위의 내용에 의하여 영향을 받지 않습니다. 이것은 이용허락규약 ( Legal Code) 을 이해하기 쉽게 요약한 것입니다. Disclaimer 저작자표시. 귀하는 원저작자를 표시하여야 합니다.

Upload: others

Post on 06-Nov-2019

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

저 시 2.0 한민

는 아래 조건 르는 경 에 한하여 게

l 저 물 복제, 포, 전송, 전시, 공연 송할 수 습니다.

l 차적 저 물 성할 수 습니다.

l 저 물 리 목적 할 수 습니다.

다 과 같 조건 라야 합니다:

l 하는, 저 물 나 포 경 , 저 물에 적 된 허락조건 명확하게 나타내어야 합니다.

l 저 터 허가를 면 러한 조건들 적 되지 않습니다.

저 에 른 리는 내 에 하여 향 지 않습니다.

것 허락규약(Legal Code) 해하 쉽게 약한 것 니다.

Disclaimer

저 시. 하는 원저 를 시하여야 합니다.

Page 2: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

공학석사학위논문

시간제약이 있는 외판원 문제 해결을 위한

회피 가능한 경로 패턴을 이용한 제약 프로그래밍

Constraint Programming using Avoidable Patterns

for Traveling Salesperson Problem

with Time Windows

2010년 02월

인하대학교 대학원

정보공학과

이 현 진

Page 3: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

공학석사학위논문

시간제약이 있는 외판원 문제 해결을 위한

회피 가능한 경로 패턴을 이용한 제약 프로그래밍

Constraint Programming using Avoidable Patterns

for Traveling Salesperson Problem

with Time Windows

2010년 02월

지도교수 조근식

이 논문을 공학석사논문으로 제출함

인하대학교 대학원

정보공학과

이 현 진

Page 4: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

이 논문을 이현진의 석사학위 논문으로 인정함.

2010년 02월

주심 심 정 섭 (인)

부심 조 근 식 (인)

위원 이 상 철 (인)

Page 5: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

i

요 약

시간제약이 있는 외판원 문제는 외판원이 본사를 발하여

시간제약이 있는 모든 고객을 방문하고 돌아오는 최소비용의

경로를 선정하는 문제이다. 본 논문에서는 시간제약이 있는 외판원

문제의 해결을 위하여 회피 가능한 경로 패턴을 활용한 제약

프로그래밍 기반의 탐색 전략을 제안한다.

본 탐색 전략은 높은 비용을 구성하는 해의 집합에서 발생하는

경로의 패턴을 추출하여 해당 패턴이 나타나는 탐색 공간을 사전에

제거하는 탐색 전략이다. 제약 프로그래밍에 의한 최적 알고리즘은

제약조건의 수에 의존하여 성능이 결정된다. 따라서 본 논문에서는

회피 가능한 경로 패턴을 제약조건에 추가하는 전략을 사용하였다.

추가적으로 본 탐색 전략을 발견적 알고리즘 수준의 속도 유지를

위하여 도메인 제거 기법을 추가적으로 제안하였다. 제안하는 탐색

전략의 성능 평가를 위하여 TSPTW 벤치마크 자료를 사용하였으며,

최적해를 산출해내는 기준 아래 다른 최적 알고리즘보다 속도

측면에서 향상된 결과를 확인할 수 있었다. 도메인 제거 기법을

추가적으로 적용한 탐색 전략의 경우 다른 발견적 알고리즘과

동등하거나 그 이상의 해를 발견해 낼 수 있었다.

키워드 : 시간 제약이 있는 외판원 문제, 제약 프로그래밍, 회피

가능한 경로 패턴

Page 6: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

ii

ABSTRACT

Traveling salesperson problem with time windows (TSPTW) is

the problem of finding a minimum-cost path visiting a set of

cities exactly once, where each city must be visited within a

specific time window. This paper presents a search strategy for

solving the TSPTW that merges constraint programming

propagation algorithms.

This search strategy removes bad path patterns in advance. As

a result, we can reduce the size of search space. Performance of

exact algorithms using the constraint programming depends on

the number of constraints. Therefore we improved the

performance of proposed search strategy by exploiting avoidable

path patterns as constraints. We also added domain reduction

phase in the search strategy for keeping up search speed with

other heuristics. Computational tests performed on TSTPW

benchmark problem instances show that the proposed search

strategy generates optimal or near-optimal solutions in most

cases. The proposed method results much faster than other

exact approaches. In addition, it generates more qualitative

solutions than other heuristics.

Keyword : Traveling Salesperson Problem with Time

Windows(TSPTW), Constraint Programming, Avoidable Patterns

Page 7: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

iii

목 차

요 약 ........................................................................................ i

ABSTRACT .................................................................................. ii

목 차 ...................................................................................... iii

제 1 장 서 론 ........................................................................ 1

제 2 장 관련 연구 ....................................................................... 4

2.1. 최적 알고리즘 .................................................................. 4

2.2. 발견적 알고리즘 .............................................................. 5

2.3. 제약 프로그래밍 .............................................................. 6

제 3 장 회피 경로 패턴 탐색전략 ................................................ 9

3.1. TSPTW 모델링 ............................................................... 9

3.2. 회피 경로 패턴의 설정 .................................................. 12

3.2.1. 회피 경로 패턴의 추출 ......................................... 13

3.2.2. 회피 경로 패턴의 정제화 ..................................... 17

3.3. 도메인 제거 ................................................................... 18

3.4. 회피 경로 패턴 탐색전략 ............................................... 22

제 4 장 실험 결과 ..................................................................... 27

4.1. 최적 알고리즘과의 비교 ................................................ 27

Page 8: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

iv

4.2. 발견적 알고리즘과의 비교 ............................................. 29

제 5 장 결론 및 향후 연구 ........................................................ 31

참고문헌 ..................................................................................... 33

Page 9: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

1

제 1 장 서 론

시간제약이 있는 외판원 문제(Traveling Salesperson Problem with

Time Windows, TSPTW)는 1959 년 아일랜드의 수학자인

Hamilton 에 의해 알려진 외판원 문제(Traveling Salesperson

Problem, TSP)의 확장된 문제로써 외판원이 본사를 출발하여

시간제약이 있는 모든 고객을 방문하고 돌아오는 최소비용의

경로를 선정하는 문제이다. 고객의 시간제약에는 방문 시작 시각과

방문 만기 시각이 존재한다. 외판원은 고객의 방문 만기 시각전에

도착해야 하며, 방문 시작 시각전에 도착했을 경우 방문 시작

시각까지 대기를 해야만 한다. TSP 에 비해서 TSPTW 는 보다

현실적인 모형으로써, 이와 같은 모형은 차량경로문제(Vehicle

Routing Problem, VRP)나 다양한 스케쥴링 문제(Scheduling

Problem)에서도 발생한다. TSPTW 에서 최소 비용을 측정하는

평가함수는 전체 경로를 순회하는데 사용되는 거리를 최소화 하는

것과 전체 경로를 순회하는데 소요되는 시간을 최소화하는 것으로

나뉘게 된다. 본 논문에서의 평가함수는 다른 알고리즘과 균등한

비교를 위하여 전체 경로를 순회하는데 사용되는 거리를

최소화하는 것으로 선택하였다.

Savelsbergh 는 TSPTW 가 다항식의 계산량을 갖는 알고리즘이

발견되지 않은 NP-Complete 문제임을 증명하였다[1]. 즉, 문제의

크기가 커질수록 최적의 해를 구하는데 소요되는 시간이

지수적으로 증가함을 의미한다.

이러한 TSPTW 를 해결하기 위하여 다양한 최적 알고리즘과

최적해를 보장하지 않으나 상대적으로 빠른 시간 내에 근사해를

Page 10: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

2

찾는 발견적 알고리즘이 제안되어 왔다. 최적 알고리즘에는 제약

프로그래밍(Constraint Programming, CP)과 동적 계획법(Dynamic

Programming)이 있으며, 발견적 알고리즘에는 다양한 경로 구성

알고리즘과 경로 개선 알고리즘이 있다.

제약 프로그래밍에 의한 최적 알고리즘은 제약조건의 크기에

의존하여 해를 발견하는 데 소요되는 시간이 결정된다. 그러나

TSPTW 에서 주어지는 제약조건이 각 고객에게 방문해야 하는

시간조건외에는 주어지지 않기 때문에 최적 알고리즘을 사용하여

합리적인 시간내에 해를 구하는데 어려움을 겪고 있다. 따라서

충분한 제약조건을 추가할 수 있다면 최적 알고리즘의 성능 향상을

예측할 수 있다. 반면, 발견적 알고리즘은 지역탐색을 통하여

다양한 근사해를 빠르게 발견할 수 있다. 특별히, 발견적

알고리즘을 통한 TSPTW 의 발생 가능한 다양한 해의 집합에서

상위 계층의 해와 하위 계층의 해의 결과를 분석해보면 특정한

경로가 반복되어 나타남을 확인할 수 있다.

본 논문에서는 이러한 점에 착안하여 특정한 경로 패턴과 제약

프로그래밍 기반의 최적 알고리즘을 결합한 새로운 탐색전략을

제안한다. 본 탐색전략은 발견적 알고리즘의 목적함수를 역으로

설정함으로써 불필요하다고 예상되는 경로 패턴을 추출한다. 이러한

패턴을 본 논문에서는 ‘회피 경로 패턴’이라 부르기로 한다.

추출되는 회피 경로 패턴을 제약 프로그래밍 기반의 알고리즘에

활용하는 방식을 사용한다.

제안하는 탐색전략의 성능 평가를 위하여 본 논문에서는 TSPTW

벤치마크(Benchmark) 자료인 Potvin and Bengio 의 자료를

Page 11: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

3

사용하였으며, 잘 알려진 최적 알고리즘과 다양한 발견적

알고리즘과의 비교를 수행하였다.

본 논문은 다음과 같이 구성되어 있다. 2 장에서는 TSPTW 를

해결하기 위한 기존의 다양한 연구를 최적 알고리즘과 발견적

알고리즘으로 나누어 분석하고 본 논문에서 적용하는 제약

프로그래밍 기법에 관하여 설명한다. 3 장에서는 본 논문에서

제안하는 회피 경로 패턴을 활용한 탐색전략에 관하여 설명하고

4 장에서는 벤치마크 자료를 바탕으로 알고리즘의 성능을 평가한다.

마지막으로 5 장에서는 결론을 제시한다.

Page 12: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

4

제 2 장 관련 연구

2.1. 최적 알고리즘

TSPTW 를 해결하기 위한 최적 알고리즘에는 트리 구조의 탐색

공간에서 불필요하다고 예상되는 하위 트리 탐색을 제한하는 분기

한정법과 다단계에 걸친 의사결정의 최적화를 추구하기 위한

수리적 계획법인 동적 계획법을 사용한 방법, 그리고 제약

프로그래밍 기반의 방법으로 나뉜다.

분기 한정법(Branch and Bound)은 다양한 최적화 문제, 특히

조합 최적화에서 최적해를 찾기 위한 일반적인 방법이다. 이는 모든

후보해를 체계적으로 늘어놓으면서 최적화할 수치의 상한과 하한을

추정하여 가망이 없다고 판정이 되는 해를 제거해 나간다. 분기

한정법은 다양한 발견적 알고리즘의 기초가 될 수 있다. 예를 들면

최적화할 수치의 상한값과 하한값 사이의 차이가 사전에 정의한

기준 값보다 작게 되면 분기를 멈출 수 있다. 이것은 그 해법이

실제적인 목적을 위해서 충분히 좋다고 판단될 때 사용되며 필요한

계산량을 크게 줄일 수 있다. 분기 한정법은 1960 년에 선형

프로그래밍을 위해 A. H. Land 와 A. G. Doig 가 처음으로

소개하였다[2].

TSPTW 의 해결을 위하여 동적 계획법(Dynamic

Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해

소개 되었다[3]. 이 알고리즘은 상태 공간 안정화 기술을 사용하여

탐색 공간을 줄일 수 있는 분기 함수를 포함하고 있다.

Page 13: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

5

TSPTW 를 해결하기 위한 제약 프로그래밍 기반의 방법으로는

선행 예측 탐색전략인 포워드체킹(Forward Checking) 기법을 주로

사용한다. 제약 만족 프로그래밍은 변수와 변수가 포함하고 있는

도메인내의 값을 선택함으로써 해를 탐색하는 기법이다. 이는

변수에 할당할 수 없는 값을 미리 예측함으로써 도메인에 포함된

불필요한 값을 삭제한다. 이를 통하여 전체 탐색 공간의 크기를

줄이는 방식을 취한다[4]. 1997 년 Caecau 는 제약 프로그래밍

기반의 방법을 사용하여 TSPTW 를 여러개의 부분 문제로

분할하고 이를 결합하여 최종 해를 구하는 시도를 하였다[5].

2.2. 발견적 알고리즘

발견적 알고리즘은 최적해를 보장하는 최적 알고리즘보다 빠른

시간 내에 근사해를 찾기 위하여 연구되고 있다.

Savelsbergh 는 지역 탐색을 수행하는 2-interchange 와 Or-

interchange 를 사용하여 계산 복잡도를 증가시키지 않고 시간 제약

문제를 다룰 수 있는 방법을 제안하였다. 또한 시간 제약에

위배되지 않는 고객을 삽입하고 삽입할 수 없는 고객이 발생하면

알고리즘을 종료하는 삽입 기반의 알고리즘을 제안하였다[1].

Langevin 은 LP 안정화에 의한 분기 한정법 기반의 알고리즘을

제안하였다. 이는 제약조건을 활용하여 부분적으로 구성된 경로를

제거하는 방식을 사용하였다[6].

Dumas 는 동적 계획법을 사용하여 상태공간을 줄이고 상태

변환을 통한 3 단계 시간제약 제거 방식을 제안하였다. 그러나 해당

알고리즘은 시간제약 범위의 폭에 따라 상태공간이 지수적으로

Page 14: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

6

확장되는 문제를 가지고 있다. 따라서 상태 공간의 확장에 따라

메모리 초과 문제를 발생시켰다[7].

Calvo 는 TSPTW 를 할당 안정화 문제(Relaxed Assignment

Problem, Relaxed AP)로 변환하여 공식화하였다. Relaxed AP 를

해결함으로써 TSPTW 에서 생성될 수 있는 부분 경로를 생성하고,

만약 부분 경로가 생성된다면 최종 경로 설정을 위하여 부분

경로를 하나씩 삽입하는 방식을 사용하였다. 생성된 최종 경로의

개선을 위한 지역 탐색 기법을 추가적으로 제안하였으며 이는 탐색

공간을 이동하며 3-opt 교환을 시도하는 방법을 사용하였다[8].

2.3. 제약 프로그래밍

본 논문에서 제안하는 제약 프로그래밍 기반의 탐색전략을

설명하기 위하여 먼저 제약 프로그래밍의 기본 원리를 설명한다.

제약 프로그래밍은 인공지능(Artificial Intelligence) 분야의 기법중

하나로써 선언형 프로그래밍(Declarative Programming)과 제약조건

처리가 결합된 프로그래밍 언어군에 속한다.

제약 프로그래밍 언어는 변수(Variable), 도메인(Domain),

제약조건(Constraints)으로 구성된다. 이는 변수에 할당 가능한

값을 포함하는 도메인의 범위가 변수간의 제약조건에 의해

제약전파(Constraint Propagation)가 일어남으로써 도메인

감소(Domain Reduction)를 발생시킨다. 이를 통하여 불필요한

탐색공간의 접근을 제한하게 된다. 제약조건은 수식 제약조건(예:

X>Y, X≠Y)이나 기호 제약조건(Symbolic constraints)으로 표현될

수 있으며 변수는 이러한 제약조건들과 연결되어 있다. 기호

제약조건을 사용하면 주어진 문제의 모델링을 간결하게 할 수 있는

Page 15: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

7

반면 세밀한 제약전파 알고리즘을 포함해야한다. 예를 들어 주로

사용되는 기호 제약조건에는 AllDiff 가 있다. AllDiff 제약조건을

가진 변수들(Vars)의 집합은 모두 다른 값을 가져야만 한다. 즉,

Vars 에 포함된 변수 Xj 에 k 값이 할당되었다면, Vars 에 포함된

변수 Xi(i≠j)의 도메인에서 k 값의 삭제가 가능하다. 추가적으로 더

정교한 제약전파가 수행이 가능하며 이들에 대한 정보는 [9]에

자세히 기술되어 있다.

제약전파 알고리즘은 특정 제약조건을 포함하는 변수의 도메인이

수정됨에 따라 불필요한 탐색 공간을 제거할 수 있게 한다.

일반적인 제약전파 알고리즘의 역할은 값의 제거, 도메인 분기값의

축소, 변수의 초기화를 수행한다. 대표적인 방법으로

백트래킹(Backtracking, BT), 백점핑(Back Jumping, BJ),

백체킹(Back Checking, BC), 포워드체킹 기법이 있다. 일반적인

제약전파 알고리즘은 다음 세 가지의 가능한 조건을 만족할 때

종료하게 된다.

(i) 도메인 안에 선택 가능한 값이 없다.

(ii) 모든 변수에 각각 하나의 값이 할당되었다.

(iii) 도메인에 두 개 이상의 값이 포함된다. 이 경우는 제약전파

알고리즘이 불완전한 것이므로 남아있는 탐색 공간을 검색하기

위하여 추가적 탐색 전략이 필요하다.

이러한 단계는 일반적인 최적 알고리즘인 분기 한정법과 상당히

유사하지만 문제를 완화시켜 최적해의 찾기 위해 사용하는

분기값에 의존하지 않는다.

본 논문에서는 이러한 제약 프로그래밍의 일반성을 유지하는

범위에서 TSPTW 의 모델을 정의한다. 그러나 TSPTW 를 제약

Page 16: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

8

프로그래밍의 기본 원리에 따라 모델링을 하여 문제를 해결하고자

할 때, 주어진 제약조건이 제한됨으로 인하여 탐색 시간이 오래

걸린다는 단점이 있다. 이를 해결하기 위하여 3 장에서는 제약

프로그래밍 기반의 TSPTW 의 모델과 본 논문에서 제안하는 회피

경로 패턴을 활용함으로써 탐색 시간을 개선하는 효율적인

탐색전략을 소개한다.

Page 17: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

9

제 3 장 회피 경로 패턴 탐색전략

제약 프로그래밍을 사용한 TSPTW 의 해결은 얼마나 효과적인

제약 분기가 일어나는가에 성능이 평가될 수 있다. TSPTW 의

목적은 하나의 차량이 최소 비용으로 거점을 출발하여 다시 그

거점을 돌아오는 경로를 찾아내는 것이다. TSPTW 는 일반적인

외판원 문제에 각각의 고객에게 방문해야 하는 시간제약(Time

Window)이 추가된 문제이다. 이러한 시간제약에 의하여 각 고객은

사전에 정해진 시간대에 서비스를 받아야 한다. 즉, 고객 i 는

[ai, bi]의 시간 동안만 서비스를 받을 수 있다. 만약 차량이 정해진

시각 ai 보다 먼저 도착했을 경우, 시각 ai 까지 기다린 후 서비스를

수행해야 한다. 이러한 문제는 차량 경로 문제, 스케쥴링 문제등

실생활의 다양한 모델로써 등장하기 때문에 OR(Operations

Research)분야나 제약 프로그래밍 분야에서 활발히 연구되고

있다[10].

3.1. TSPTW 모델링

이 절에서는 TSPTW 의 제약 프로그래밍을 위한 모델을 설명하고

설정 가능한 제약조건을 기술한다. 먼저 무방향성 그래프

G=(V,A)를 정의한다. V 는 노드의 집합으로써 V={0,1,2,...,n}

형식으로 표현되며, 노드 1, ..., n-1 은 방문 할 고객을 의미한다.

노드 0 과 노드 n 은 출발 거점과 도착 거점을 의미한다.

사용되는 기호와 변수들의 정의는 표 1 에 기술되어 있다.

Page 18: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

10

[표 1] TSPTW 모델에 사용된 기호와 변수

[기호]

i, j : 고객 지점 번호(i, j = 0, 1, 2, …n)

i,j 가 0, n 인 경우 거점을 의미한다.

TWi : 고객 i 의 서비스시간대

ai : 고객 i 의 서비스시간대 하한

bi : 고객 i 의 서비스시간대 상한

duri : 고객 i 의 서비스 수행 시간

tij : 고객 i 에서 고객 j 로의 이동시간

[변수]

Nexti : 고객 i 이후의 방문해야 할 고객

Costi : 고객 i 에서 Nexti로 이동하는데 소요되는 비용

Starti : 고객 i 에 서비스가 시작되는 시간

각 노드는 고객 i 가 서비스를 받을 수 있는 시간 제약 TWi=[ai,

bi]를 가진다. 또한 각 노드는 고객 i 에게 서비스가 수행되는 시각

duri 가 존재한다. 각각의 노드 i 와 j 에 대하여 tij 는 고객 i 와 고객

j 사이의 이동 시간이 되겠다.

제약 프로그래밍을 위한 변수로써 본 논문에서는 각 노드당 세

개의 변수를 정의한다. 첫 번째 변수인 Nexti 는 고객 i 이후의

방문해야 할 고객을 의미한다. Nexti 의 도메인은 [1, n]의 값을

취할 수 있으며, 예외적으로 Nextn 의 값은 0 으로 설정된다. 두

번째 변수 Costi 는 고객 i 에서 Nexti 로 이동하는데 소요되는

비용으로 설정한다(iNextit ). 마지막으로 변수 Starti 는 고객 i 에

서비스가 시작되는 시간으로 설정한다. 단, 최초 시작 지점인 고객

0 에 대해서 Start0 은 0 으로 설정한다.

Page 19: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

11

TSPTW 의 가능한 해를 산출하기 위해서 각 변수들의 도메인은

서로 다른 값을 가져야 하는 기호 제약조건 AllDiff 를 가진다. 각

변수들이 취하게 된 값은 시간제약을 만족해야 하며 중복된

서비스를 방지하기 위하여 정확히 한번씩 선택되어야 한다. 최종

목적함수는 경로를 수행하는 비용 iNextit 값이 최소인 경로를 찾는

것이 되겠다.

앞서 소개한 변수들을 사용하여 TSPTW 를 제약 프로그래밍

모델화한 것은 다음과 같다.

Vi

iCostmin:functionObject

VibStarta

V,ji, ,StartCostdurStartjNext

V,ji, ,tCostjNext

NextNextPath

to subject

iii

jiiii

ijii

n

,

]), ..., ,([

0

이러한 TSPTW 모델은 최적 조합 문제(Combinatorial

Optimization Problem)인 TSP 와 스케쥴링 문제를 결합한 것으로

볼 수 있다. 두 가지 모두 NP-hard 문제로써 해를 구하는데

여전히 어려움을 겪고 있다. 제약 프로그래밍 기법을 통하여 탐색

공간을 줄인다 하여도 현재 모델의 제약 조건만으로는 여전히 해를

구하는데 합리적인 시간내에 해결을 보이지 못하기 때문에

추가적이 제약조건이 필요하다. 따라서 다음 절에서는 제약 조건을

어떻게 추가할 수 있는지에 대하여 설명한다.

Page 20: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

12

3.2. 회피 경로 패턴의 설정

제약 프로그래밍의 특성상 많은 제약에 의하여 변수의 도메인의

범위가 줄어든다면 성능의 향상을 기대할 수 있다. 하지만

TSPTW 에서 제약 조건의 종류가 제한되어 있기 때문에 합리적인

시간내에 해를 구하는데 어려움을 겪고 있다. 따라서 많은

연구들에서는 다양한 발견적 알고리즘을 사용하여 근사해를 찾고자

한다. 그러나 문제의 성격에 따라 발견적 알고리즘은 사용자들이

만족할만한 근사해에 도달하지 못하고 있다. 본 논문에서는 이러한

발견적 알고리즘의 목적함수를 역으로 둠으로써 좋지 않은 해를

찾아낸다. 그리고 이러한 해의 분석을 통하여 목적함수에 역행하는

경로 패턴을 제약 프로그래밍의 제약 조건으로 활용한다. 이를

통하여 앞서 기술한 제약 프로그래밍의 단점을 보완하고자 한다.

본 논문에서는 빠른 시간내에 결과가 도출되는 발견적 알고리즘

중에 하나인 2-opt 기법을 이용하여 회피 경로 패턴을 찾아낸다.

중요한 점은 TSPTW 의 목적함수인 최소 비용의 경로를 구성하는

것이 아니라 이에 역행하는 최대 비용의 경로를 찾아내는 것이다.

즉, 목적함수를 iNextitmax 로 설정한다.

회피 경로 패턴이라 함은 최대 비용의 경로를 구성하는데 자주

나타나는 경로 패턴을 의미한다. 회피 경로 패턴을 어떻게 설정하는

가에 따라서 본 논문에서 제안하는 탐색 전략의 성능이 좌우된다.

따라서 이러한 회피 경로 패턴을 설정하는데 회피 경로 패턴의

크기와 회피 경로 패턴의 추출 범위도 논의해 볼 필요성이 있다.

먼저 회피 경로 패턴의 크기는 제약 프로그래밍에 있어서 제약

전파를 수행하는 범위와 밀접한 관계가 있다, 예를 들어 경로

Page 21: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

13

패턴의 크기가 2 인 {고객 1, 고객 2}가 회피 경로 패턴으로

기억되어 있다면 이는 탐색 과정에서 {고객 1, 고객 2}의 경로

패턴이 발견되었을 경우 더 이상 하위 트리 공간을 탐색하지

않는다. 마찬가지로 크기가 3 인 {고객 3, 고객 4, 고객 5}의 경로

패턴은 탐색 과정에서 {고객 3, 고객 4, 고객 5}의 경로 패턴이

발견되었을 때 하위 트리 공간을 더 이상 탐색하지 않음을

의미한다. 따라서 경로 패턴 크기의 값을 어떻게 지정하는가에

따라서 전체 탐색 공간의 크기를 조정할 수 있다.

회피 경로 패턴의 추출 범위는 회피 경로 패턴의 신뢰성과

관련이 있다. 다시 말해 발견적 알고리즘으로 찾아내는 해의 집합

중 추출할 범위에서 따라서 추출되는 회피 경로 패턴의 신뢰성이

결정된다. 이러한 회피 경로 패턴의 크기와 추출범위를 설정하는

구체적인 방법은 3.2.1 절에서 기술한다.

추출되는 회피 경로 패턴은 불필요한 탐색 공간을 제거할 수

있지만 적절한 경로 패턴이 추출되지 않았다면 최적해가 존재하는

공간의 탐색을 제한하는 요소가 될 수 있다. 따라서 추출된 회피

경로 패턴을 정제할 수 있는 방법이 필요하며 이는 3.2.2 절에서

기술한다.

3.2.1. 회피 경로 패턴의 추출

먼저 해결하고자 하는 TSPTW 의 서비스 고객 수에 따라 추출할

회피 경로 패턴의 최대 크기를 설정한다. 추출되는 회피 경로

패턴은 제약 프로그래밍의 제약 조건으로 설정되며, 해당 패턴이

발견될 경우 하위 트리 탐색이 제한된다. 회피 경로 패턴의 최대

크기가 s 일 경우 추출 되는 패턴들은 2 이상 s 이하인 크기의 경로

Page 22: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

14

패턴들을 반환하게 된다. 해결해야 할 TSPTW 의 서비스 고객 수가

n 이라 하였을 때, 추출할 경로 패턴의 최대 크기는 식(1)과 같다.

1)( ],[ n

2ns (1)

설정되는 회피 경로 패턴의 크기가 커질수록 전체 탐색 공간의

크기가 줄어들게 되지만 최적해를 발견할 수 있는 가능성 또한

줄어들게 된다. 따라서 적절한 α값을 지정해야만 한다. 본

논문에서는 Potvin and Bengio 자료를 이용한 실험을 통하여 α값을

설정했다. 그림 1 에서 α값에 따른 성능의 평가를 확인할 수 있다.

해당 그래프는 Potvin and Bengio 자료 30 개의 평균값을 나타낸다.

실험을 통하여 α값이 0.4 인 지점까지 최적해를 유지하였으며,

α값이 0.3 인 지점에서 탐색 공간이 크게 감소함을 확인할 수

있었다. 따라서 본 논문에서는 α값을 0.3 으로 지정하여 실험을

진행하였다.

Page 23: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

15

[그림 1] α값에 따른 탐색 공간의 크기 및 최적값 대비 비율

회피 경로 패턴의 최대 크기가 설정되면 다음으로 각 경로

패턴의 추출 범위를 설정해야 한다. 예를 들어 회피 경로 패턴의

최대 크기 s 가 3 으로 설정되면 크기 2 를 가지는 경로 패턴의

추출 범위와 크기 3 을 가지는 경로 패턴의 추출 범위를 설정해야

한다. 본 논문에서 제안하는 회피 경로 패턴의 추출 범위는 2-

opt 기법을 사용하여 발견되는 해의 집합에서 추출되는 범위를

의미한다. 회피 경로 패턴의 크기에 따른 각 회피 경로 패턴의 추출

범위의 크기는 식(2)와 같다.

)(2 ],[0.05 spnpRp (2)

식(2)에서 p 는 선택된 회피 경로 패턴의 크기를 의미하며, Rp 는

크기 p 를 갖는 회피 경로 패턴의 추출 범위의 크기를 의미한다. 본

수식의 이해를 돕기 위하여 그림 2 를 통하여 도식화하였다. 이렇게

Page 24: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

16

설정되는 회피 경로 패턴의 추출 범위는 회피 경로 패턴의

신뢰성과 밀접한 관련이 있다. 회피 경로 패턴의 추출 범위가

커질수록 추출되는 회피 경로 패턴의 수는 증가하지만 과도한 제약

번식 가능성을 증가시켜 최적해의 탐색 공간을 제한하는 요인이

되기도 한다. 따라서 유망한 패턴을 선별하기 위하여 추출된 경로

패턴을 제한하는 방법이 필요하며 3.2.2 절에서 이에 대해 논의한다.

회피 경로 패턴의 최대 크기와 회피 경로 패턴의 추출 범위가

결정되면 제약조건으로 활용되는 회피 경로 패턴을 추출하게 된다.

회피 경로 패턴은 추출 범위내의 해의 공간에서 회피 경로 패턴

크기의 인접한 고객을 선정하게 된다. 예를 들어 회피 경로 패턴의

추출 범위에 포함된 하나의 해가 Path([고객 5, 고객 2, 고객 4,

고객 1, 고객 0, 고객 3])이고 패턴의 최대 크기가 3 으로

결정되었다면 추출되는 경로 패턴들은 다음과 같다. Path([고객 5,

고객 2, 고객 4, 고객 1, 고객 0, 고객 3])의 경로는 {고객 0,

고객 5, 고객 3, 고객 1, 고객 2, 고객 4, 고객 0}임을 알 수 있으며,

따라서 추출되는 패턴은 크기가 2 인 {고객 5, 고객 3}, {고객 3,

고객 1}, {고객 1, 고객 2}, {고객 2, 고객 4}와 크기가 3 인 {고객

5, 고객 3, 고객 1}, {고객 3, 고객 1, 고객 2}, {고객 1, 고객 2,

고객 4}가 추출된다. 추출되는 회피 경로 패턴은 기억장소에 저장이

되며 이는 제약 번식을 수행할 때 사용된다.

Page 25: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

17

0-2-6-8-5...1-4-3-7-0

0-2-8-6-1...7-4-3-5-0

0-2-8-6-5...1-4-3-7-0

0-2-6-8-4...5-1-3-7-0

0-2-6-8-1...7-3-4-5-0

0-8-2-6-1...4-5-3-7-0

0-2-3-6-5...1-7-8-4-0

0-2-8-5-1...6-4-3-7-0

0-2-8-3-1...5-4-6-7-0

0-2-6-8-1...5-4-3-7-0

0-2-5-1-6...8-4-3-7-0

...

0-8-6-2-1...5-4-3-7-0

0-8-6-2-1...4-5-3-7-0

...

...

R2 =[0.05∙30∙2]=3 크기 2를 갖는 회피 경로 패턴의 추출 범위

R3 =[0.05∙30∙3]=4 크기 3을 갖는 회피 경로 패턴의 추출 범위

R4 =[0.05∙30∙4]=6 크기 4를 갖는 회피 경로 패턴의 추출 범위

If n=30 and s=4, then p={2,3,4}

2-opt를 통해 발견 된 해의 집합의 예

[그림 2] 회피 경로 패턴의 추출 범위

3.2.2. 회피 경로 패턴의 정제화

회피 경로 패턴은 탐색 공간을 줄이는데 유용하게 사용되지만 만약

최적해에 포함된 경로 패턴이 회피 경로 패턴에 포함될 경우

최적해를 찾아낼 수 없게 하는 요인이 될 수도 있다. 따라서 신뢰할

수 있는 회피 경로 패턴을 찾아내는 것이 매우 중요하다. 그러나

3.2.1 절에서 설명한 방법에 의하여 선택된 회피 경로 패턴은

TSPTW 의 목적함수의 역을 사용한 발견적 기법인 2-opt 전략에

의하여 결정되기 때문에 신뢰성을 보장하지 못하는 경우가 발생할

Page 26: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

18

수 있다. 이를 보완하기 위한 방법으로 TSPTW 의 목적함수

iNextitmin 를 사용함으로써 유망 경로 패턴을 찾아낸다. 유망 경로

패턴이란 TSPTW 의 목적함수에 부합되는 유망한 경로 집합에서

빈발하게 발생하는 경로 패턴을 의미한다. 발견되는 유망 경로

패턴이 기존에 발견된 회피 경로 패턴과 중복이 될 경우 이를

제거함으로써 회피 경로 패턴의 신뢰성을 높인다. 유망 경로 패턴을

찾아내기 위한 방법은 회피 경로 패턴을 찾아내는 발견적 기법의

목적함수를 다시 역으로 둠으로써 수행하며 패턴의 최대 크기

설정을 위한 α값은 회피 경로 패턴을 추출할 때 사용한 값과

동일하게 사용한다. 본 논문에서는 유망 경로 패턴을 찾아내기 위한

발견적 기법으로 회피 경로 패턴과 동일한 2-opt 전략을

사용하였다.

3.3. 도메인 제거

회피 경로 패턴을 활용한 탐색전략을 사용하여 기존의 최적

알고리즘보다 빠르게 결과를 산출할 수 있다. 이는 4.1 절의 최적

알고리즘과의 성능 비교 그래프에서 확인할 수 있다. 하지만

사용자의 활용 목적에 따라 더 신속한 결과 산출을 필요로 하기도

하며 따라서 일반적인 발견적 알고리즘을 사용하여 이보다 빠른

시간내에 근사해를 찾는 것을 목표로 삼기도 한다. 본 논문에서

제안하는 탐색전략을 발견적 알고리즘 수준의 탐색시간을 소비하여

근사해를 찾기 위한 방법으로 도메인 제거 기법을 추가적으로

제시한다.

상위 계층 해들의 집합에 대하여 각 변수에 선택된 도메인의

값은 동일한 값이 빈번하게 발생한다. 뿐만 아니라 하위 계층

Page 27: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

19

해들의 집합에 대하여 각 변수에 선택된 도메인의 값도 동일한

값이 빈번하게 발생한다. 표 2 는 10 개의 하위 계층 해를 포함하는

집합의 예를 나타내며 각 변수에 선택된 도메인의 값이 빈번하게

나타남을 확인할 수 있다. 즉, 특정 변수에는 주로 할당되는 도메인

값이 존재한다는 것을 의미한다. 따라서 탐색 전략을 수행하기 전에

유망하지 않다고 예상되는 도메인 값을 사전 제거함으로써 탐색

속도의 향상을 기대할 수 있다.

먼저 발견적 알고리즘 중 하나인 2-opt 기법을 이용하여 다양한

경로 집합을 찾아낸다. 중요한 점은 TSPTW 의 목적함수인 최소

비용의 경로를 구성하는 것이 아니라 최대 비용의 경로를 구성하는

집합을 찾아내는 것이다. 즉, 목적함수를 iNextitmax 로 설정한다.

이를 통하여 얻어지는 해의 집합에서 각 변수에 빈번히 나타나는

도메인 값을 제거한다. 본 논문에서는 2-opt 기법을 통하여 발견된

상위 10%의 해의 집합에서 빈번하게 발생되는 도메인 값을

측정하였으며, 동일한 값이 80%이상 나타났을 경우에 제거할

도메인 값으로 선정하였다. 이를 통하여 탐색 공간을 크게 줄여줄

수 있지만 회피 경로 패턴 추출 방법과 마찬가지로 최적해를

찾아낼 수 없게 하는 요인이 되기도 한다. 따라서 신뢰할 만한

도메인 값 제거를 위하여 유망한 도메인 값을 확인한다. 만약

제거한 도메인 값과 유망한 도메인 값이 같은 변수에서 중복되는

경우 제거한 도메인 값을 복구 시킨다. 유망한 도메인 값을

찾아내기 위한 방법은 불필요한 도메인 값을 찾아내기 위한

목적함수를 다시 역으로 둠으로써 수행한다. 유망한 도메인 값은

제거한 도메인 값을 측정한 것과 동일하게 상위 10%의 해의

집합에서 80%이상 빈번하게 발생된 도메인 값으로 선정하였다.

Page 28: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

20

표 2 와 표 3 은 10 개의 하위 계층 해의 집합과 10 개의 상위

계층 해의 집합에서 특정 변수에 대한 도메인 값이 빈번하게

발생함을 보이고 있다. 각 행은 2-opt 기법을 통하여 발견되는

각각의 해를 의미하며 각 열은 해를 구성하는 변수에 선택된

도메인 값이다.

[표 2] 10 개의 하위 계층 해 집합의 예

# 각 변수의 도메인 값

1 0 9 12 5 18 6 1 15 4 7 2 14 13 0

2 0 9 12 5 14 6 1 18 4 7 2 15 13 0

3 0 9 12 5 14 6 2 15 4 7 1 18 13 0

4 0 9 12 5 1 6 14 15 4 7 2 18 13 0

5 0 9 14 5 12 6 1 15 4 7 2 18 13 0

6 0 5 12 9 14 6 1 15 4 7 2 18 13 0

7 0 4 12 5 14 6 1 15 9 7 2 18 13 0

8 0 9 12 5 14 6 1 15 7 4 2 18 13 0

9 0 9 12 5 14 7 1 15 4 6 2 18 13 0

10 0 6 12 5 14 9 1 15 4 7 2 18 13 0

빈발값 12 5 6 1 15 4 7 2 18 13

빈발율

(%) 90 90 80 80 90 80 80 90 80 100

Page 29: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

21

[표 3] 10 개의 상위 계층 해 집합의 예

# 각 변수의 도메인 값

1 0 18 12 2 1 9 6 15 4 5 7 13 14 0

2 0 18 12 2 1 5 9 15 4 6 7 13 14 0

3 0 18 12 2 1 9 6 15 4 24 7 14 5 0

4 0 18 12 2 6 1 15 14 4 5 7 13 14 0

5 0 18 12 1 2 9 6 15 4 5 7 13 14 0

6 0 1 12 18 2 9 6 15 4 5 7 13 14 0

7 0 18 12 1 4 9 6 15 2 5 7 13 14 0

8 0 18 2 14 9 12 1 15 4 6 7 13 5 0

9 0 18 12 7 2 9 1 15 4 6 5 13 14 0

10 0 7 12 2 18 9 15 1 4 6 5 13 14 0

빈발값 18 12 15 4 7 13

빈발율

(%) 80 90 80 90 80 90

표 2 를 통하여 하위 계층의 해의 집합에서 주로 할당되는 도메인

값은 고객 12, 고객 5, 고객 6, 고객 1, 고객 15, 고객 4, 고객 7, 고객

2, 고객 18, 고객 13 임을 확인할 수 있다. 표 3 은 10 개의 상위

계층 해의 집합의 예로써 주로 할당되는 도메인 값이 고객 18,

고객 12, 고객 15, 고객 4, 고객 7, 고객 13 임을 확인할 수 있다.

같은 변수에 대하여 중복되는 고객은 고객 12, 고객 15, 고객 4 임을

확인할 수 있으며, 이는 제거할 도메인 값에서 제외 된다. 따라서

최종적으로 제거될 도메인은 고객 5, 고객 6, 고객 1, 고객 7, 고객 2,

고객 18, 고객 13 이 된다.

Page 30: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

22

3.4. 회피 경로 패턴 탐색전략

본 절에서는 앞서 정의한 TSPTW 모델의 변수와 도메인, 그리고

제약조건을 사용하여 해를 탐색하는 기법에 대하여 설명한다.

본 탐색전략에 사용되는 변수는 총 3 개로 구성되며 첫 번째

변수인 Nexti 는 고객 i 이후의 방문해야 할 고객을 의미한다. 두

번째 변수 Costi 는 고객 i 에서 Nexti 로 이동하는데 소요되는

비용으로 설정한다. 마지막으로 변수 Starti 는 고객 i 에 서비스가

시작되는 시간으로 설정한다.

제약 조건에는 앞 절에서 구성한 회피 경로 패턴을 이용하여

회피 경로 패턴 이하의 탐색을 제한하는 방식을 취한다. 탐색

전략으로 본 논문에서는 일반적인 제약 전파 알고리즘인

포워드체킹 기법을 사용한다[4]. 포워드체킹은 먼저 하나의 변수를

선택한 후 변수의 도메인 내에서 선택 가능한 값을 선택한다. 선택

가능한 값의 여부는 제약 조건에 의하여 결정되며, 해당 제약에는

AllDiff(2.3 절)와 시간 제약(3.1 절), 회피 경로 패턴의 존재

유무(3.2 절)가 있다. 추가적으로 더 신속한 결과 도출을 위하여

도메인 제거(3.3 절)를 적용한다. 모든 변수에 값이 할당되지

않았다면, 다시 제약 조건을 이용한 값의 제거와 도메인 분기값의

축소를 통하여 문제의 크기를 줄이는 제약 전파 과정을 수행하며

도메인내의 값의 유무에 따라 백트래킹을 수행한다. 모든 변수에

값이 할당되면 현재의 해를 저장한 후 모든 탐색공간을 탐색 할

때까지 백트래킹을 수행하여 남은 공간을 탐색하고 모든 공간의

탐색이 끝나면 알고리즘을 종료한다.

이러한 일련의 과정은 다음 알고리즘 1 과 알고리즘 2 와 같다.

Page 31: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

23

PROCEDURE FC(UNLABELLED, COMPOUND_LABEL, D, C);

BEGIN

IF(UNLABELLED={}) THEN

IF (BEST_PATH’s distance is smaller than

COMPOUND_LABEL’s distance)

BEST_SOLUTION ←COMPOUND_LABEL’s distance;

ELSE return (NIL);

ELSE BEGIN

Pick on variable x from UNLABELLED;

REPEAT

Pick one value v from Dx; Delete v from Dx;

D’←Update(UNLABELLED-{x}, D, C, COMPOUND_LAB-

EL+{<x,v>});

IF(no domain in D’ is empty)

THEN BEGIN

Result←FC(UNLABELLED-{x}, COMPOUND_L-

ABEL+{<x,v>}, D’, C);

END;

UNTIL(Dx={});

return (BEST_PATH);

END

END

[알고리즘 1] 포워드체킹 의사코드

Page 32: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

24

PROCEDURE Update(W, D, C, COMPOUND_LABEL)

BEGIN

D’←D

FOR each variable y in W DO;

FOR each value v in D’ DO;

IF(<y,v> is incompatible with COMPOUND_LABEL

with Respect to constraints on y+variables

of COMPOUND_LABEL)

THEN D’y←D’y-{v};

Return(D’);

END

[알고리즘 2] Update 의사코드

알고리즘 1 과 알고리즘 2 에서 사용된 기호에 대한 정의는

표 4 에 기술되어 있다.

[표 4] 의사코드에 사용된 기호의 정의

UNLABELLED : 값(Value)이 할당되지 않은 변수(Variable)의

집합

D : 변수에 할당 가능한 값들로 구성된 도메인의 집합

Dx : 변수 x에 할당 가능한 값들로 구성된 도메인

COMPOUND_LABEL : 변수와 해당 변수에 할당된 값으로 구성된

집합, {<x1,v1><x2,v2>…<xn,vn>}형태로 표시

C : 제약 조건

BEST_PATH : 현재까지 발견된 최소의 비용(거리)을 갖는 경로

Page 33: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

25

알고리즘 1 은 포워드체킹의 전체 과정을 설명한다.

UNLABELLED 는 값이 할당되지 않은 변수의 집합이 되며

TSPTW 모델에서는 아직 방문 순서가 할당되지 않은 고객이 된다.

COMPOUND_LABEL 은 각 변수와 해당 변수에 할당된 값으로

구성된 집합({<variable, value>})이다. UNLABELLED 가 공집합이

되었을 경우 COMPOUND_LABEL 은 최종적으로 완성되며 이것이

곧 현재 발견된 해가 된다. C 는 제약조건을 나타내며, 시간제약 및

본 논문에서 제안한 회피 경로 패턴 탐색 제외와 도메인 제거

전략이 포함되어 있다. 포워드체킹의 전체 구조는 최초의 해가

발견되는 시점에서 종료가 된다. 하지만 TSPTW 모델에서는

최적해의 산출을 위하여 모든 공간의 탐색을 수행해야 한다. 따라서

알고리즘 1 에서는 하나의 해가 발견되는 시점에서 해당되는 해가

현재까지의 최적값인지를 판별 후 백트래킹을 수행하도록 수정이

되어있다. 즉, 모두 변수가 할당되어 UNLABELLED 가 공집합이

되었을 경우 발견된 해의 경로인 COMPOUND_LABEL 이 현재까지

발견된 해의 경로보다 우수하다면 이를 현재까지 발견된 최적해로

저장한다. 저장 후에는 UNLABELLED 가 공집합이 되기 이전의

노드로 백트래킹을 수행한다. 만약 발견된 해의 경로가 기존의

경로보다 우수하지 않다면 이전에 발견된 해를 유지한 상태로

백트래킹을 수행한다.

알고리즘 2 는 알고리즘 1 에서 호출되는 함수로써 제약 조건을

활용하여 불필요한 탐색과정을 제한할 수 있도록 도메인을

축소하는 기능을 수행한다. 이는 현재까지 할당된 고객에 대하여

시간제약에 위배는 도메인 값, 회피 경로 패턴을 포함하는 도메인

Page 34: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

26

값, 그리고 도메인 제거 기법에 의하여 선정된 도메인 값을 사전에

제거하는 과정을 실제적으로 수행한다.

그림 3 은 이러한 탐색전략을 일련의 흐름도로 나타낸 것이다.

주어진 TSPTW 모델(변수, 집합, 제약 조건)

변수 x를 선택

Choice point :변수 x에 제약 조건에

위반되지 않는집합내의 값을 선택

제약 조건을 이용하여 문제 크기를 줄임

(집합 내의 값 제거, AllDiff, 분지값의 축소)

모든 변수에 값이 할당되었는가?

비어있는 집합이 존재하는가?

모든 탐색 공간이 검색되었는가?

발견된 최적 경로를 반환 후 종료

변수 x에 할당할수 있는 값이 없다면 이전 Choice point로

Backtrack

Backtra

ck :

변수 x

대하여

집합내의 다른

값을

선택

다른 변수를 선택

Backtrack : 변수 x에 대하여

집합내의 다른 값을 선택

Yes

No

Yes

No

Yes

No

[그림 3] 회피 경로 패턴의 탐색전략 흐름도

Page 35: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

27

제 4 장 실험 결과

본 논문에서 제안하는 회피 경로 패턴 탐색전략의 성능 검증을

위하여 최적 알고리즘 및 발견적 알고리즘과의 비교를 수행하였다.

비교 결과는 4.1 절과 4.2 절에서 확인할 수 있다. 실험은 Windows

XP 운영체제하의 AMD Phenom 9550 CPU 와 2G RAM 에서 Java

언어를 사용하여 구현되었다.

4.1. 최적 알고리즘과의 비교

최적 알고리즘과의 성능 비교를 위하여 Potvin and Bengio

벤치마크 자료를 사용하였다[11]. 자료의 크기에 따른 성능의

차이를 확인하기 위하여 벤치마크 자료를 크기순으로 정렬하여

측정하였으며, 비교 대상의 최적 알고리즘은 깊이 우선 탐색(Depth

First Search, DFS)과 분기 한정법, 그리고 포워드체킹 기법을

이용하였다. 본 논문에서 제안하는 회피 경로 패턴 탐색전략과

동등한 비교를 위하여 회피 경로 패턴 탐색전략이 최적해를

산출해낸 결과에 한하여 비교를 수행하였으며 이에 대한 결과는

그림 4 의 Proposed Search Strategy A 에서 확인할 수 있다. 이는

제약조건으로 도메인 제거 단계를 수행하지 않은 결과로써 도메인

제거 단계를 수행한 결과는 Proposed Search Strategy B 에서

확인할 수 있다.

DFS 는 최대 20 개의 크기를 가진 자료의 결과를 산출할 수

있었으며, 분기 한정법의 경우 최대 21 개의 크기를 가진 자료의

결과를 산출할 수 있었다. 포워드체킹의 경우 최대 22 개의 크기를

Page 36: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

28

가진 자료의 결과를 산출할 수 있었으며, 본 논문에서 제안한 회피

경로 패턴을 이용한 탐색전략(Proposed Search Strategy A)의 경우

최대 25 개의 크기를 가진 자료의 결과를 산출할 수 있었다. 고객

20 개의 크기를 가진 자료의 결과를 기준으로 해를 산출해낸 소요

시간을 비교해 볼 때, DFS 는 약 24 시간이 소요되었으며, 분기

한정법의 경우 약 13 시간이 소요되었다. 그리고 포워드체킹의 경우

약 2 시간이 소요되었으며, 회피 경로 패턴을 이용한

탐색전략(Proposed Search Strategy A)의 경우 약 1 시간의 시간이

소요되었다. 이는 다른 최적 알고리즘과 마찬가지로 최적해를

발견해 낼 수 있었다.

[그림 4] 최적 알고리즘과의 성능 비교

Page 37: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

29

제약 조건으로써 회피 경로 패턴 제거 및 도메인 제거를 수행한

탐색 전략(Proposed Search Strategy B)은 모든 벤치마크 자료에

대하여 수분내 결과를 도출할 수 있었다. 그러나 이 경우 최적해가

아닌 근사해를 발견해 내거나 해를 발견하지 못하는 경우가

발생하였다. 따라서 이 결과를 근사해를 도출하는 다른 발견적

알고리즘 결과와 비교하였으며 이는 4.2 절에 기술하였다.

4.2. 발견적 알고리즘과의 비교

발견적 알고리즘과의 성능 비교를 위하여 Potvin and Bengio

벤치마크 자료를 사용하였다. 이 자료는 30 개의 TSPTW 문제를

포함하고 있으며, 각 자료의 크기는 최대 44 개의 서비스 고객으로

구성되어 있다. 비교 대상의 발견적 알고리즘은 삽입기반의

알고리즘과 삽입기반의 알고리즘을 보완한 반복 삽입 알고리즘,

그리고 이를 2-opt 기법을 사용하여 해의 개선을 시도한 결과와

Calvo 가 제안한 할당 안정화 알고리즘을 사용하였다[12, 13, 8].

표 5 에서는 본 논문에서 제안한 회피 경로 패턴 탐색전략과 비교

대상의 해의 결과를 표시하고 있으며, 모든 대상은 수분이내에

이루어지는 해의 결과를 표시하고 있다. 적용된 회피 경로 패턴

탐색 전략은 3.3 절에서 기술한 도메인 제거 단계를 포함하고 있다.

표 5 에 기술된 ‘-’기호는 해당 알고리즘으로 결과를 산출하지 못한

것을 의미한다. 일반적인 발견적 기법은 해당 기법의 전략의 특성에

따라 해를 산출하지 못하는 경우가 발생한다. 본 논문에서 제시한

도메인 제거 전략도 일부 자료에 대하여 해를 산출하지 못한

결과를 보였다. 이는 특정 고객이 주어진 시간 제약에 의하여 특정

변수에 반드시 할당되어야 하는 경우가 존재함에도 불구하고

Page 38: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

30

도메인 제거 전략에 의하여 사전에 제거될 수 있다는 점에

기인한다. 그러나 5 개를 제외한 모든 자료에 대하여 다른 발견적

기법보다 동등하거나 그 이상의 결과를 산출할 수 있었다.

[표 5] 발견적 알고리즘과의 성능 비교

n Optimal

Value

Proposed

Search

Strategy

Solomon’s

Insertion

Algorithm

Iterative

Insertion

Algorithm

Iterative

Insertion+

2-Opt

Calvo’s

Algorthm

RC_201.1 19 444.54 444.54 475.59 460.32 460.32 444.54

RC_201.2 25 711.54 711.54 - 738.48 711.54 711.54

RC_201.3 31 790.61 803.79 - 889.06 803.79 790.61

RC_201.4 25 793.64 793.64 - 833.13 803.46 793.64

RC_202.1 32 771.78 772.18 - - - 772.18

RC_202.2 13 304.14 304.14 322.54 310.32 310.32 304.14

RC_202.3 28 837.72 837.72 - 841.11 841.11 839.58

RC_202.4 27 793.03 793.03 - 866.34 866.34 793.03

RC_203.1 18 453.48 453.48 505.67 531.29 458.23 453.48

RC_203.2 32 784.16 - - 862.84 862.84 784.16

RC_203.3 36 817.53 817.53 - 852.51 836.78 819.42

RC_203.4 14 314.29 314.29 420.54 343.67 343.67 314.29

RC_204.1 44 868.64 868.65 - - - 868.76

RC_204.2 32 662.16 662.16 780.04 713.09 710.99 665.96

RC_204.3 33 455.03 456.07 - 519.05 504.91 455.03

RC_205.1 13 343.21 343.21 372.5 343.21 343.21 343.21

RC_205.2 26 755.93 755.93 - 819.15 774.75 755.93

RC_205.3 34 825.06 - - 914.09 869.56 -

RC_205.4 27 760.47 760.47 - 765.38 765.38 -

RC_206.1 3 117.85 117.85 117.85 117.85 117.85 117.85

RC_206.2 36 828.06 828.06 884.23 - - 842.17

RC_206.3 24 574.42 574.42 - 575.55 575.55 574.42

RC_206.4 37 831.67 835.77 - 875.04 872.10 837.54

RC_207.1 33 732.68 732.68 - 822.26 806.15 733.22

RC_207.2 30 701.25 701.25 - 844.72 803.42 -

RC_207.3 32 682.40 682.40 - 737.64 737.64 684.40

RC_207.4 5 119.64 119.64 119.64 122.20 122.20 119.64

RC_208.1 37 789.25 789.25 - 944.25 936.96 789.25

RC_208.2 28 533.78 533.78 - 649.97 647.07 537.33

RC_208.3 35 634.44 637.31 778.24 748.04 742.85 649.11

Page 39: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

31

제 5 장 결론 및 향후 연구

본 논문에서는 TSPTW 를 해결하기 위하여 회피 가능한 경로

패턴을 이용한 탐색전략을 제안하였다. 탐색전략에 사용되는 회피

경로 패턴을 추출하기 위하여 회피 경로 패턴의 크기 선정과 추출

범위, 정제화에 대한 방법을 제시하였다.

먼저, 회피 경로 패턴의 크기를 설정하기 위하여 Potvin and

Bengio 벤치마크 자료를 활용하였으며, 이를 통해 최적값의 산출을

유지하며 탐색 공간의 크기를 최소화할 수 있는 적절한 패턴의

크기를 산출하였다. 회피 경로 패턴의 추출 범위는 회피 경로

패턴의 신뢰성과 밀접한 관련이 있다. 따라서 선정된 회피 경로

패턴의 크기에 따라 적절한 회피 경로 패턴의 추출 범위를 산출할

수 있는 방법을 제안하였다. 회피 경로 패턴의 크기와 추출 범위를

통하여 산출된 회피 경로 패턴의 신뢰성을 높이기 위하여 유망

경로 패턴과 중복되는 패턴을 제거하는 정제화 방법을 제안하였다.

이러한 일련의 과정을 통하여 신뢰성있는 회피 경로 패턴을 추출할

수 있었다. 이렇게 추출된 회피 경로 패턴이 나타나는 탐색 공간을

사전에 제거함으로써 최적 알고리즘과 동일한 결과를 산출하면서도

더욱 빠른 속도의 결과를 산출해 낼 수 있었다. 기존의 최적

알고리즘과 비교하여 속도 측면에서 향상된 결과이지만 여전히

합리적인 시간에 해를 발견해 내지는 못하였다. 따라서, 발견적

기법의 알고리즘 수준의 빠른 결과 산출을 위하여 도메인 제거

전략을 추가적으로 제안하였다.

도메인 제거 전략은 하위 계층의 해에서 빈번히 발생하는 도메인

값을 사전에 제거하는 전략이다. 이러한 도메인 제거 전략을

Page 40: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

32

추가하여 해를 탐색하였을 경우, 기존의 발견적 알고리즘과

비교하여 같은 해의 결과나 그 이상의 해의 결과를 산출할 수

있었다. 하지만 도메인 제거 전략을 사용하였을 경우 일부 벤치

마크 자료에 대하여 해를 도출하지 못하는 없는 경우가 발생하였다.

이는 해를 구성하는 변수의 도메인 값이 사전에 제거될 수 있다는

점에 기인한다. 그러나 일부 자료에 대하여 해를 발견하지 못하는

것은 일반적인 발견적 기법의 알고리즘의 공통된 문제점이며,

벤치마크 자료에 대하여 다른 발견적 알고리즘 대비 동등하거나 그

이상의 해의 결과를 산출할 수 있었다.

회피 경로 패턴을 추출하기 위하여 본 논문에서는 2-opt 전략을

사용하였으나 다른 발견적 알고리즘을 사용해서 더욱 유망한 회피

경로 패턴의 추출이 가능할 것으로 예상된다. 따라서 사용자가 더

많은 수행시간을 요구하더라도 더 나은 해를 필요로 한다면 더욱

성능이 뛰어난 발견적 알고리즘을 사용한 회피 경로 패턴의 추출을

통하여 해의 개선을 예상할 수 있겠다. 이를 통하여 더욱

신뢰성있는 회피 경로 패턴이 추출된다면 해를 도출하지 못했던

일부 자료에 대한 문제점도 일부 해결 가능할 것이라 예상한다.

따라서 향후 연구에서는 2-opt 전략뿐 아니라 기존의 다양한

발견적 알고리즘들을 사용하여 회피 경로 패턴을 추출함으로써

해의 개선 효과 및 탐색 전략의 수행 시간을 확인할 계획이며, 이를

통하여 가장 합리적인 적용 방안을 확인할 계획이다.

Page 41: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

33

참고문헌

[1] Savelsberg, M. W. P., "Local search in routing problems with time

windows" Annals of Operations Research, Vol. 4, pp. 285-305,

1985.

[2] Land, A. H., A. G. Doig, "An Automatic Method for Solving

Discrete Programming Problems" Econometrica, Vol. 28, No. 3, pp.

497-520, 1960.

[3] Mingozzi, A., L. Bianco, S. Ricciardelli, "Dynamic programming

strategies for the travelling salesman problem with time windows

and precedence constraints" Operations Research, Vol. 45, No. 3,

pp. 365-377, 1997.

[4] Edward Tsang, "Foundations of Constraint Satisfaction"

Department of Computer Science University of Essex, UK., pp.

124-132, 1996.

[5] Caseau, Y., F. Laburthe, "Solving small TSPs with constraints" L.

Naish, ed. Proceedings of the 1994 International Conference on

Logic Programming. MIT Press, Cambridge, MA. pp. 316-330,

1997.

[6] Langevin, A., M. Desrochers, J. Desrosiers, F. Soumis, "A two-

commodity flow formulation for the traveling salesman and

makespan problem with time windows" Networks, Vol. 23, pp.

631-640, 1993.

[7] Dumas, Y., J. Desrosiers, E. Gelinas, M. M. Solomon, "An optimal

Page 42: Disclaimer · TSPTW 의 해결을 위하여 동적 계획법(Dynamic Programming)을 사용한 알고리즘은 1997 년 Mingozzi 에 의해 소개 되었다[3]. 이 알고리즘은

34

algorithm for the travelling salesman problem with time windows"

Operations Research, Vol. 43, pp. 367-371, 1995.

[8] Calvo, R. W., "A new heuristic for the traveling salesman problem

with time windows" Transportation Science, Vol. 34, No. 1, pp.

113-124, 2000.

[9] Régin, J.C., "A filtering algorithm for constraints of difference in

CSPs" Proceedings of AAAI, 1994.

[10] Filippo F., A. Lodi, M. Milano, "Embedding relaxations in global

constraints for solving TSP and TSPTW" Annals of Mathematics

and Artificial Intelligence, Vol. 34, pp. 291-331, 2002.

[11] Potvin, J. Y., S. Bengio, “The vehicle routing problem with time

windows" INFORMS Journal on Computing, Vol. 8, pp. 165-172,

1996.

[12] Solomon M.M., "Algorithms for the vehicle routing and scheduling

problems with time window constrains" Operations Research, Vol.

35, pp. 254-265, 1987.

[13] Kim, B.I., "An Iterative Insertion Algorithm and a Hybrid Meta

Heuristic for the Traveling Salesman Problem with Time

Windows" Journal of the Korean Institute of Industrial Engineers,

Vol. 33, No. 1, pp. 86-98, 2007.