logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · web view2018...

25
2018 여여여여 여여 여여 여여여 Shuttle Bus Routing Problem 여 여여 MILP 2018.7.3 ~ 2018.8.31 (8 여) Logistics Lab 여여 여여: 여여여 여여 여여: 여여여 여여 여여: 여여여 여여 1. Background and Research Objective A. Shuttle Bus Routing Problem B. Objective and method of research

Upload: others

Post on 09-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

2018 여름학기 연구 참여 보고서

Shuttle Bus Routing Problem 에 대한 MILP

2018.7.3 ~ 2018.8.31 (8 주)

Logistics Lab

지도 교수: 김병인

지도 선배: 김현준

참여 학생: 박홍철

목차1. Background and Research Objective

A. Shuttle Bus Routing ProblemB. Objective and method of research

2. MILP modelA. Single Shuttle Bus Routing Problem

Page 2: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

B. Multiple Shuttle Bus Routing Problem3. Computational Result

A. First set of stationsi. Input 데이터

ii. Single Shuttle Bus Routing Problemiii. Multiple Shuttle Bus Routing Problem

B. Testi. Single Shuttle Bus Routing Problemii. Multiple Shuttle Bus Routing Problemiii. Input 데이터 of tiny section

C. Second set of stations4. Conclusion5. 후기

Page 3: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

1. Background and Research ObjectiveA. Shuttle Bus Routing Problem

Shuttle Bus Routing Problem(이하 SBRP)은 이윤을 극대화할 수 있는 셔틀 버스들의 노선을 정하는 문제이다. 이 문제는 VRP(Vehicle Routing Problem)에 보다 현실적인 조건과 가정들을 추가한 변형 문제이다. VRP 는 거점에서부터 적재 용량이 같은 버스들이 수요량이 미리 알려진 각 지점에 꼭 한번씩만 방문하여 제품을 배달하고 다시 거점으로 돌아오는 총 이동거리를 최소화하는 경로를 찾는 문제이다. (조용철, 2001)

SBRP 는 VRP 과 목적 함수가 다르며 여러 제약 조건들이 추가되거나 변형되었다.

i) 1 대 혹은 그보다 많은 버스(들)이 거점에서 출발해 모든 역을 최대 1 번씩 들리고 거점으로 돌아온다.

ii) 버스(들)은 거점에서 출발할 때 비어 있으며, 모든 승객들은 탑승한 뒤 거점에서만 내린다.

iii) 역 i 에서의 버스가 수용 가능한 수요는 역에서 거점까지 남은 주행거리와 최단 거리 T i의 비에 영향을 받는 일정 인수를 최대 수요에 곱한 것이다.

iv) 역 i 와 역 j 사이의 주행 거리 Sij는 위도와 경도 좌표를 통해 계산된 직선 거리이다.

v) 버스 주행을 통해 얻을 수 있는 총 수익은 역에서 탑승한 승객이 지불한 표 값의 합이다.

vi) 버스 주행을 통해 지불되는 총비용은 출발한 버스의 개수에 비례하는 고정 비용과 모든 버스의 총 주행거리에 비례하는 가변 비용을 합한 것이다.

vii) SBRP 의 목적 함수는 총 수익에서 총 비용을 감산한 값을 최대화하는 것이다.

본 보고서에서는 Single SBRP 와 Multiple SBRP 로 나누어서 문제를 해결했다. Single SBRP 는 사용 가능한 버스가 1 대이고 고정 비용, 가변 비용이 없다. 또한 주행거리와 최단 거리 비율에 따른 수용 가능 인원은 table 1 에 따른다.

비율 구간 [1.0, 1.5] (1.5, 2.0] (2.0, 3.0] (3.0, 4.0] (4.0, Inf)수요 Di 2

3∗D

i

12∗Di

13∗D

i

0

(Table 1. 비율이 속하는 구간에 따른 역 i 의 최대 수용 가능 인원)

Multiple SBRP 은 추가 제약 조건이 없다. 이 문제에서 점 i 의 수용 가능 인원은 주행거리에서 최단 거리를 나눈 값에 최대 수요를 곱하고 올림 한 정수 값이다.

B. Objective and method of research

본 연구의 목표는 김현준 선배님의 연구 중인 과제에 참여하여 SBRP 과 MILP 에 대해 이해를 하고 MILP 모델링을 작성하는 것이다. MILP 모델은 Julia Language 로 코딩했으며, LP Solver 는 Gurobi 를 사용하였다. 이 코드는 Changhyun Kwon 의 Julia Programming for Operations Research: A Primer on Computing 을

Page 4: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

참고하여 작성되었다. Input 데이터는 실제 포항과 울산에 존재하는 정거장의 위도와 경도를 사용해 만들었다. MILP 모델에 여러 특수한 조건의 데이터를 입력해 타당한 solution 을 찾는지 확인한다. MILP 모델의 타당성이 확인 되었으면, solution 을 찾는다. 찾은 solution 은 Google Map 에 표시한다. Google Map 에 표시하는 프로그램은 연구 참여한 Logistics Lab 의 ‘2016 가을 학기 연구 참여 보고서’와 관련 코드를 사용하였다. (조혜민, 2016)

2. MILP ModelA. Single Shuttle Bus Routing Problem

Single SBRP 에서 적용된 Parameter 와 Decision Variable, Objective Function 은 다음과 같이 MILP 상에서 표현된다.

i. Parameter

- Di: 점(역) i 에서의 최대 수요

- Pi: 점 i 에서의 표 값

- T i: 점 i 에서 목적지까지의 최소 거리

- Si , j: 점 i 와 점 j 사이의 거리

- C: 버스 1 대의 최대 수용 가능 인원

ii. Decision Variable

- w i :   i    (integer)점 에서 수요

- z i:   i    점 에서 목적지까지 주행거리 (real number)

-y i :    i점 에서  목적지  까지의  주행거리와  최단거리의  비례  (real number )

- x i , j :   i    j  점 에서 점 로 향하  는 호가 루트에 포함되면 1, 아니면 0 (binary number)

- vi , k : 점 i 의 예상 서비스 레벨이 k 이면 1, 아니면 0 (binary number)

iii. Objective Function

- Maximize that: ∑i=1

n

Pi∗w i

n 은 들릴 수 있는 역의 개수이며, 점 1~n 은 각 역들을 의미한다. 점 0 은 버스의 출발지로서의 거점, 점 n+1 은 버스의 종착지로서의 거점을 의미한다.

이에 따라 제약 조건들은 다음과 같이 표현된다.

Page 5: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

∑i=1

n

x0 , i=1∑i=1

n

xi , n+1=1 (1)

∑i=1

n

x i , j=∑i=1

n

x j ,i∀ j=1,2 ,… ,n (2)

∑i=1

n

x j ,i≤1∀ j=1,2 ,…,n (3)

∑i=1

n+1

x i , 0=0∑i=0

n

xn+1 ,i=0 (4)

z i≥ z j+si , j−M (1−x i , j )∀ i=1,2 ,…,n , j=1,2 ,…,n+1 (5)

zn+1=0 (6)

T i∗y i≥ zi∀ i=1,2 ,…,n (7)

y i≤1.5 v i , 1+M (1−v i ,1 )∀ i=1,2,…,n (8)

y i≤1.5+0.5 v i ,2+M (1−v i ,2 ) ∀ i=1,2 ,…,n (9)

y i≤2.0+1.0 v i ,3+M (1−v i ,3 ) ∀ i=1,2 ,…,n (10)

y i≤3.0+1.0 v i ,4+M (1−v i ,4 ) ∀ i=1,2 ,…,n (11)

y i≤4.0++M∗v i ,5∀ i=1,2 ,…,n (12)

w i≤ Di vi ,1+23∗Di v i ,2+

12∗Di vi ,3+

13∗Di v i ,4 ∀ i=1,2 ,…,n (13)

w i≤ Di∑j=1

n+1

x i , j=1 ,∀ i=1,2,…,n (14)

∑i=1

n

wi≤C (15)

∑k=1

5

v i ,k ≤1 ∀ i=1,2 ,…,n (16)

∑k=1

5

v i ,k ≤wi∀ i=1,2,…,n (17)

∑j=1

n+1

x i , j≤w i ,∀ i=1,2 ,…,n (18)

(1)은 버스가 1 대이므로 거점에서 나가는 경로와 들어가는 경로가 각각 1개인인을 뜻한다. (4)는 출발지에 들어가는 경로와 도착지에서 나가는 경로가 없다는 것을 뜻한다. (2)와 (3)은 각 역에서 들어가는 경로의 수와 나가는 경로의 수는 0 이나 1 로 같음을 의미한다. (5)는 점 i 에서 점 j 로 가는 경로가 있을 경우 점 i 에서 부터의 주행거리는 j 에서 부터의 주행거리보다 두 호 사이의 거리만큼 더

Page 6: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

크다는 것을 의미한다. (6)은 종착지에서부터 주행거리는 0 임을 의미한다. (7)은 주행거리와 최단 거리 사이 비 y 를 구하는 식이고, 여기서 구해진 y 는 (8)~(12)에 따라 적합한 구간의 v 에 1 이 들어가게 된다. (16)에 따라 점 i 에서 v 는 최대 1 개만 1 이 들어가고 나머지는 0 이 들어간다. 이 v 는 (13)에 따라 점 i 의 수용 가능 인원을 제한한다. (14)는 점 i 에 들어가는 경로가 있어야만 수용 인원이 존재할 수 있다는 것, (15)는 총 수용 인원은 버스 수용 가능 인원에 따라 제한됨을 의미한다. (17)과 (18)은 수요가 없다면 v 와 x 에 0 외 다른 값이 지정될 수 없음을 뜻한다.

B. Multiple Shuttle Bus Routing Problem

Multiple SBRP 에서 적용된 Parameter 와 Decision Variable, Objective Function 은 다음과 같이 MILP 상에서 표현된다.

i. Parameter

- Di: 점(역) i 에서의 최대 수요

- Pi: 점 i 에서의 표 값

- T i: 점 i 에서 목적지까지의 최소 거리

- Si , j: 점 i 와 점 j 사이의 거리

- C: 버스 1 대의 최대 수용 가능 인원

- f 1: 버스 1 대가 루트를 1 번 돌 때 발생하는 고정비용

- f 2: 버스가 주행한 거리에 비례하여 발생하는 가변 비용

ii. Decision Variable

- w i : 점  i에서  수요  (integer)

- z i: 점  i에서  목적지까지  주행거리 (real number)-y i : 점  i에서  목적지  까지의  주행거리와  최단거리의  비례  (real number )

- x i , j: 점  i 에서  점  j로  향하는  호가 루트에 포함되면 1, 아니면 0 (binary number)

- vi , j : 점 i 의 예상 수요가 j+1 이면 1, 아니면 0 (binary number)

-a i : 점  i 에서  버스가  출발할  때  수용한  인원  (integer)

-q i : 점  i 가  버스  루트의  첫  정류장일  때 , 그  루트의  총  주행  거리  (real number )

iii. Objective Function

- Maximize that: ∑i=1

n

(P¿¿ i∗wi−f 1∗x0 ,i−f 2∗qi)¿

Page 7: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

n 은 들릴 수 있는 역의 개수이며, 점 1~n 은 각 역들을 의미한다. 점 0은 버스의 출발지로서의 거점, 점 n+1 은 버스의 종착지로서의 거점을 의미한다.

이에 따라 제약 조건들은 다음과 같이 표현된다.

∑i=1

n

x0 , i=¿∑i=1

n

x i ,n+ 1¿ (1)

∑i=1

n

x i , j=∑i=1

n

x j ,i∀ j=1,2 ,… ,n (2)

∑i=1

n

x j ,i≤1∀ j=1,2 ,…,n (3)

∑i=1

n+1

x i , 0=0∑i=0

n

xn+1 ,i=0 (4)

z i≥ z j+si , j−M (1−x i , j )∀ i=1,2 ,…,n , j=1,2 ,…,n+1 (5)

zn+1=0 (6)

a j≥ai+w j−M (1−x i , j )∀ i=0,1 ,…,n , j=1,2 ,…,n (7)

a j≤a i+w j+M (1−x i , j)∀ i=0,1,…,n , j=1,2 ,… ,n(8)

a0=0 , ai≤C∀ i=1,2,…,n (9)

q i≥ z i+T i−M (1−x0 , i) ∀ i=1,2 ,…,n (10)

zn+1=0 , qi≥0 ∀ i=1,2 ,…,n (11)

z iT i∗Di

≤ 1j+0.01

+M (1−v i , j )∀ i=1,2 ,… ,n∀ j=1,2 ,…,k−1

(12)

w i≤∑j=0

k−1

( j+1 )∗vi , j∀ i=1 ,2 ,…,n (13)

∑j=0

k−1

v i , j≤1∀ i=1 ,2 ,…,n (14)

∑j=0

k−1

v i , j≤wi ∀ i=1 ,2 ,…,n (15)

w i≤ Di∗∑j=0

k−1

x i , j∀ i=1 ,2 ,… ,n (16)

Page 8: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

(1)은 출발지에서 출발하는 경로의 수와 도착지로 들어서는 경로의 수가 같음을 의미한다. 이후 (2)~(6)까지는 Single SBRP 와 동일하다. (7)부터 (9)는 각 점 마다 버스에 탑승한 인원 수를 정해주는 제한식으로, (7)과 (8)은 점 i 에서 점 j 로 가는 경로가 있다면, 점 j 에서의 인원은 점 i 에서의 인원과 점 j 에서 타는 인원의 합과 같다는 것을 의미하고, (9)는 출발지에서 인원이 0, 최대 인원은 제한을 넘을 수 없음을 뜻한다. (10)을 통해 출발지에서 나서는 경로의 도착 점에는 그 점에서부터의 주행거리와 거점까지 최단거리가 합쳐진 루트의 총 주행거리가 저장된다. (11)은 주행거리와 총 주행거리 저장을 위해 필요한 variable 조건이다. (12)~(15)는 Single SBRP 의 (7)~(13) 제한식의 역할과 동일하며, 이 경우 v 가 구간이 아니라 순서에 해당하는 인원을 뜻한다. 즉, 점 i 에 k 명이 탄다면 vi , k−1에 1 이 들어가고 나머지는 전부 0 이 들어간다. (16)은 경로가 없는 점은 수요가 없단 것을 의미한다.

3. Computational Result

SBRP 분석에 사용된 Input 데이터는 3 가지로 분류된다. 각각 초기 무작위 및 임의적으로 설정된 첫번째 포항과 울산 역 데이터, input 에 따른 solution 변화 경향을 관찰하기위해 사용된 테스트 데이터, 그리고 첫번째 데이터를 비교적 현실적으로 변형한 데이터이다. Input 데이터와 계산 결과 solution 의 output 데이터는 csv 형식으로 작성되었다. 각 input 데이터에 대해서는 result 와 함께 설명한다.

A. First set of stations

i. Input 데이터

Page 9: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

(Fig 1. 포항 역(거점)과 선정된 15 개 역)

(Fig 2. 울산 역(거점)과 선정된 15 개 역)

Fig 1 과 Fig 2 는 포항과 울산에서 선정된 15 개의 역(파란색)과 버스가 출발하고 돌아오는 거점(빨강색)을 표시한 지도이다. 각 도시에서 KTX 역을 거점으로 삼고, 도심 지역을 중심으로 15 개의 역을 선택하였다. 그 중 도심에서 멀리 떨어진 역부터 2 개씩 역을 삭제하며 7 개, 9 개, 11 개, 13 개, 15 개 역 데이터를 input 데이터로 삼았다.

(Fig 3. 포항 15 개 역 데이터)

Page 10: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

(Fig 4. 울산 15 개 역 데이터)

Fig 3 과 Fig 4 는 두 도시의 모든 역들의 데이터이다. 역마다 역의 번호, 명칭, 표의 가격, 최대 수요, 위도와 경도, 거점 여부가 입력되어 있다. 거점 여부에서 1 이 입력되어 있으면 거점, 0 이 입력되어 있으면 거점이 아닌 역이다 13 개 역 데이터는 15 개 역 데이터에서 가장 아래의 2 개를 제외한 것이고, 11 개 역은 Input 데이터는 13 개 역에서 가장 아래의 2 개를 제외하는 식으로 7 개까지 줄여 도시당 5 개의 세트를 만들었다.

ii. Single Shuttle Bus Routing Problem

Page 11: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

(Fig 5. 포항 15 개 역 solution)

(Fig 6. 울산 15 개 역 solution)

Fig 5 는 포항 15 개 역을 input 으로 제출했을 때 solution 이고, Fig 6 은 울산 15개 역의 solution 이다. 포항 15 개 역의 경우 문제 조건에 맞는 solution 을 구했지만, 울산 15 개 역의 경우 승객을 아무도 태우지 않는 역이 포함되었다. 이는 주행거리에 따른 가변 비용이 없기 때문에 경로 길이가 늘어나도 승객들만 충분한 수만큼 수용한다면 maximal solution 이 될 수 있기 때문이다.

(Fig 7. 포항과 울산 solution 비교)

Fig 7 은 울산과 포항의 5세트를 연산한 결과 solution 들의 Best Objective Value 와 Best Bound Value, 두 value 사이의 gap 과 solution 이 나올 때까지 걸린 계산 시간을 정리한 것이다. Optimal 은 제한 시간 30 분 내에 optimal solution 을 찾았는지 여부이다. 루트의 버스 수용 제한은 40 명이다. 그 결과에 따르면 울산은 모든 경우에 1 초 이내 optimal solution 을 찾았다. 그에 반해 포항은 역이 늘어날수록 기하 급수적으로 계산 시간이 증가하다, 13 개 역부터는 제한 시간 이내에 optimal solution 을 찾을 수 없게 되었다. 이 차이는 포항은 거점을 기준으로 역들이 넓은 각도 안에 분포하지만, 울산은 좁은 각도 안에 분포하기 때문으로 추측한다. 역들이 좁은 각도 안에 분포하면, solution 에 따라 비교적 일직선 상으로 루트를 배정할 수 있다. 하지만 넓은 각도 안에 분포하면, 경로 역시 넓은 각도 내에 갈지자형 혹은 반원을 그리는 형태가 될 가능성이 높다. 그에 따라 버스가 먼저 들리는 역들은 거점까지 최소 거리와 주행거리의 차이가 커지며,

Page 12: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

역의 수용 가능 인원 역시 변화 폭이 커지게 된다. 이런 차이가 계산 시간에 영향을 줄 것이라 추측한다.

iii. Multiple Shuttle Bus Routing Problem

Multiple SBRP 는 Single SBRP 에 사용한 station input 데이터와 동일한 데이터를 사용한다. 하지만, big M 과 버스 수용 한계, 고정 비용과 가변 비용을 저장한 input 데이터를 따로 갖는다.

(Fig 8. 울산 11 개 역 solution)

Fig 8 은 울산 11 개 역의 solution 인데, Bus 1 의 2 번째 역 demand 가 잘못Multiple SBRP 의 경우 표기되었다. integer 인수에서 소수점 아래가 존재하는 실수 값이 출력되었다. 디코딩 결과 이는 루트와 관련된 Decision Variable 인 x에서 1 이하 0.999 이상의 값이 검출되었기 때문으로 밝혀졌다. 이는 Gurobi 등 LP Solver 자체에서 오차 값이 10−5 내지 10−6 수준에서 발생하기 때문이다. 하지만, 제한 조건에서 사용하는 Massive Number 는 1000 이므로 소수점 넷째 자리 이하의 오차가 solution 에 결정적인 영향을 끼치지 않았다.

(Fig 9. 포항과 울산 solution 비교)

Page 13: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

Fig 9 는 Multiple SBRP 의 solution 들을 정리한 표로, Single SBRP 의 표에 비해 solution 마다 출발하는 버스 개수를 추가하였다. 수용 한계를 50 명, 고정 비용 25000, 가변 비용을 500 으로 설정한 결과이다. Single SBRP 와 비교해 계산 시간과 gap 이 증가했다. 또한 울산의 경우에도 optimal 을 찾지 못하는 경우가 발생했다. 사용한 버스의 개수는 포항이 울산보다 더 많다. 이는 포항의 역들이 거점 기준으로 울산 보다 더 넓은 각도로 산개해 있기 때문이라고 추측된다. 울산의 경우 거의 일직선 상으로 루트를 지정할 수 있기에 먼저 승객을 태우는 역에서도 수용 가능 인원이 최대 수요에 비해 크게 떨어지지 않지만, 포항은 그러지 않기 때문이다.

B. Testi. Single Shuttle Bus Routing Problem

(Fig 10. 포항 역에서 승객 수 증가)

(Fig 11. 승객 수 증가한 포항 역 15 개의 solution)

Page 14: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

Fig 10 은 10 명 이하였던 포항과 울산 역의 승객 수를 최대 15 명까지 증가 시킨 데이터이고, Fig 11 은 그 중 포항 데이터의 solution 이다. 그 결과 포항 역 15 개 solution 은 비교적 표 값이 높고 승객을 많이 태울 수 있는 역만 골라 주행했다. 또한 승객을 태우지 않는 역을 경로에 포함하는 오류가 다시 발생했다.

(Fig 12. 승객 수 증가한 경우의 solution 비교)

Fig 12 는 승객 수가 늘어 났을 때 solution 을 정리한 것이다. 모든 경우에 승객 수가 증가하기 전에 비해 계산 시간과 gap 이 크게 줄어든 것을 알 수 있다. 포항 15개 역의 경우 제한 시간 내에 optimal solution 을 찾지는 못했지만, 0.96%로 매우 낮은 gap 값을 보여줬다. 이는 표 값과 수용 인원이 충분한 역들을 우선적으로 배정하여 최적 값에 보다 빠르게 다가갈 수 있기 때문으로 보인다. 또한, 이 때문에 역들이 늘어나도 solution 이 바뀌지 않아 Best Objective 가 같은 경우들이 발생했다.

(Fig 13. 일부 역 인원을 50 명으로 늘린 포항 15 개 역 데이터)

Page 15: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

(Fig 14. 일부 역 인원 50 명인 포항 15 개 역 solution)

Fig 13 은 포항에서 가장 표 값이 높은 역과 가장 낮은 역에 최대 수요 50 명씩을 배정한 데이터이고 Fig 14 는 이 데이터의 solution 이다. 직관과 같이 표 값이 가장 높은 역에 최대 수용 인원 40 명을 모두 수용하는 결과가 났다. 하지만, 1800 초 제한 시간 내에 7.92%의 gap 을 기록하며 optimal solution 을 찾지 못했다.

(Fig 15. 50 명 역 포함 울산 15 개 역)

(Fig 16. 50 명 역 포함 울산 15 개 역 solution)

Fig 15 는 울산에서 가장 표 값이 낮은 역과, 표 값이 상대적으로 높지도 낮지도 않은 역에 최대 수요 50 명을 배정한 데이터다. Fig 16 은 이에 대한 solution 이다. 그 결과 수요가 많은 역이 아니라 표 값이 높은 역을 중심으로 solution 을 찾은 것을 확인 할 수 있다. 이번에도 역시 optimal solution 을 찾지 못했지만 0.76%의 gap으로 상당히 optimal 에 근접한 값을 찾았다.

이상 3 번의 test 에 따라 Single SBRP 의 solution 은 예상과 같은 결과를 보이면서 타당성이 입증되었다. 하지만 직관적으로 바로 optimal solution 을 구할 수 있는 문제도 30 분 동안 optimal 을 확정하는 못하는 등의 문제점을 보였다.

ii. Multiple Shuttle Bus Routing Problem

Page 16: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

(Fig 17. 포함 울산 7 개 역 수요 증가)

(Fig 18. 포함 7 개 역 수요 증가 solution)

Fig 17 과 Fig 18 은 포항 7 개 역 데이터의 수요를 25 명까지 증가시킨 데이터와 그 solution 이다. Multiple SBRP 의 경우, Single 에 비해 계산 시간이 길기 때문에 7 개 역을 중심으로 데이터를 변형했다. 그 결과, 버스 개수가 2 개에서 3 개로 늘어났고, 가능한 많은 승객을 태우려고 루트를 구성한 것을 확인할 수 있었다. Bus 2 의 경우 최대 수요 인원의 절반만을 수용하는 데도 운행을 한다. 이는 고정 비용과 가변 비용에 비해 예상 수익이 크게 높기 때문이다.

(Fig 19. 포함 7 개 역 표 값 감소)

Page 17: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

(Fig 20. 포함 7 개 역 표 값 감소 solution)

Fig 19 는 포항 7 개역 데이터에서 표 값을 2/3 수준으로 감소 시킨 것이고, Fig 20은 그 solution 이다. 고정 비용도 25000 에서 200000 으로 크게 증가 시켰다. 그 결과 버스 개수는 2 대로 줄어들었다.

(Fig 21. 포함 7 개 비용 증가 solution)

Fig 21 은 input 데이터는 동일하지만 고정 비용을 2500000 로 가변 비용은 1500 으로 증가시킬 경우의 solution 이다. 버스 1 대로 줄어들었다. 단, 4 번째 역인 죽도 마켓의 경우 수용 가능 인원에 비해 극도로 적은 인원만을 수용한다. 이는 가변 비용에 따른 비용이 늘었지만, 2 명을 태우는 역까지 가는 비용보다 역에서 얻는 이득이 더 크기 때문이다.

Multiple SBRP 의 테스트 결과 표 값과 비용의 조정이 실제로 solution 변화에 영향을 주는 것을 관찰할 수 있었다.

Page 18: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

iii. Input 데이터 of tiny section

(Fig 22. 협소 지역 input 데이터)

(Fig 23. 협소 지역 지도)

Fig 21 과 Fig 22 는 마지막 test 에 사용된 input 데이터와 그 지도이다. 목적지에 비해 역들이 좁은 구역 내 붙어 있을 경우를 가정했다. 이 때 포항 역을 거점으로, 효자동부터 이동까지 11 개 역을 설정했다. 이 데이터를 각각 Single과 Multiple MILP 로 solution 를 찾았다.

Page 19: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

(Fig 24. 협소 지역 Single SBRP solution)

(Fig 25. 협소 지역 Multiple SBRP solution)

Fig 23 과 Fig 24 는 각각 Single SBRP 와 Multiple SBRP 의 solution 들이다. 둘 다 제한 시간 1800 초 이내 optimal solution 를 찾지 못했지만, 1800 초 뒤에 찾은 답은 서로 거의 동일하다. 거점에 비해 역들이 서로 짧은 거리 내에 붙어 있으므로 버스 여러 대를 보내는 것보다 가변비용을 감수하고 버스 1 대로 여러 군데를 들리는 것이 Multiple SBRP 에서 유리하기 때문이다. 단, 똑같이 버스가 1 대만 운영되지만, 주행 루트에 따른 가변 비용 유무나 계산 속도 차이로 인해 Multiple SBRP 와 Single SBRP 의 solution 이 완전히 같지는 않았다.

Page 20: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

C. Second set of stations

(Fig 26. 포항 Second input 데이터)

(Fig 27. 울산 Second input 데이터)

Fig 26 과 Fig 27 은 Fig 3 과 Fig 4 데이터에서 역들 위치 데이터는 유지한 채 티켓 가격을 재설정하고 최대 수요를 무작위로 재배치한 Second Input 데이터이다. Second Input 데이터는 First Input 데이터에 비해 비교적 현실적인 값들을 지정했다. 우선 울산의 셔틀 버스 요금이 3200 원인 것을 반영하여 울산과 포항 모두 표 값을 대폭 하향했으며 거점까지의 최소 거리와 표 값이 선형 관계가 되게 설정했다. 또한 버스 운전사의 임금, 버스의 상각 비용, 현재 경상도의 기름값 등을 반영하여 고정 비용을 2500000, 가변 비용을 1050 으로 상향했다. 또한 gap 이 2% 이하면 현재 solution 을 optimal solution 으로 간주하도록 설정했다.

Page 21: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

(Fig 28. Second input 데이터 Single SBRP solution)

(Fig 29. Second input 데이터 Multiple SBRP solution)

Fig 28 과 Fig 29 는 Second input 데이터를 바탕으로 solution 들을 정리한 것이다. First input 에 비해 gap 과 계산 시간 모두 늘어났다. 이는 비용이 증가하고 수익이 감소하여 작은 변화에도 이윤의 변화 폭이 크게 변하기 때문이라 추측된다. Multiple SBRP 의 경우 1800 초 동안 계산한 후에도 gap 이 100%를 넘는데, Best Object 와 Best Bound value 의 절대적인 값 차이는 First input 과 큰 차이가 없다. 즉, Best Objective 가 크게 감소 되었기에 상대적인 값 gap 역시 크게 증가한 것으로 보인다. 단, Multiple SBRP 포항 15 개 역의 경우 2 번의 시도에도 합당한 답을 찾지 못했다. 이 문제를 해결하기 위한 방안을 찾는 것이 필요하다.

Page 22: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

(Fig 30. Second set 의 포항 13 개 역(좌) 울산 15 개 역(우)의 최적 루트)

Fig 30 은 선행연구(조혜민, 2016)를 바탕으로 찾은 solution 를 구글 지도 상에 표시한 결과이다. 울산은 15 개 역의 solution 을 사용했지만, 포항 15 역은 solution 을 얻는 데 실패하여 13 개 역 solution 을 사용했다. 포항은 울산에 비해 거점 기준 넓은 각도에 역들이 퍼져있다. 그렇기에 울산의 경우 버스 루트가 비교적 일직선에 가까운 형태이다. 포항의 경우는 처음 역에서 2 번째 역 혹은 3 번째 역까지, 루트 중간, 루트 마지막 역에서 거점까지 3 부분으로 나뉘어 뒤집힌 ㄷ자를 그린다. 그렇지만 갈지자형은 그리지 않고 루트 중 중간은 비교적 역에서 거점으로 향하는 일직선과 유사하게 이동하는 부분이 있다.

4. Conclusion

포항과 울산은 거점을 기준으로 역들이 위치하는 각도의 차이가 서로 달랐다. 포항은 보다 넓은 각도 사이에 떨어져 있고, 울산은 비교적 좁은 각도 내에 역들이 위치했다. 그에 따라 울산의 경우 포항에 비해 계산 시간과 gap 의 정도가 작은 경향이 있다. 또한 지도에 표시한 루트 역시 모형 차이가 뚜렷하다. 하지만 포항과 울산의 Best Objective Value 가 확실히 차이가 난 경우는 Second set 의 Multiple SBRP solution 의 경우뿐이다. 즉, 거점을 원점으로 할 때, 극좌표계에서 역들이 위치하는 각의 크기는 MILP 의 계산 시간이나 Multiple Solution 에서 요구하는 버스의 개수에는 영향을 줄 수 있지만, 실제 이윤에 영향을 미치는 지는 알 수 없다. 이에 대해 더 많은 시행과 분석이 필요할 것이다.

Multiple SBRP 의 경우, 버스를 1 대만 사용할 경우에도 Single SBRP 보다 더 느린 계산 속도를 보였다. 하지만, 버스를 2 대 이상 사용할 경우, Single SBRP 보다 확실히 더 높은 최대 목표 값을 보인다. 하지만 이는, 역 마다 존재하는 최대 수요와 표 값, 그리고 버스가 운행할 때마다 요구되는 고정 비용과 가변 비용에 따라 Multiple SBRP 조건 하에서 optimal solution 에서 위해 요구하는 버스의 수가 줄어 들 수 있다. 만약,

Page 23: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

버스 운행에 요구되는 고정 비용이 높아진다면 Multiple SBRP 환경 내에서도 버스를 1대만 운영할 수 있으므로 Single SBRP 를 사용하는 것이 같은 결과에 더 빠른 시간 안에 도달하는 방법이 될 수 있다.

MILP 를 통한 SBRP 해결은 몇 가지 한계점을 보였다. 우선, Gurobi 의 한계상 binary decision variable 이나 integer decision variable 등에서 약간의 오차가 생길 수 있다. 포항과 울산을 대상으로 한 이번 연구에서는 크게 영향을 줄만한 오차는 아니었지만, 만약 수많은 decision variable 에 오차가 축적되거나, 소수점 5,6자리까지 중요한 문제이거나, 아니면 big M 은 너무 크게 설정한다면 실제 optimal solution 과 동 떨어진 결과가 발생하거나 제한 조건 자체가 제 역할을 못할 수 있다. 또한, 변수가 늘어날 때마다 요구하는 계산 시간이 기하 급수적으로 늘어난다. 계산 시간이 늘어난다는 것은 제한 시간이 존재할 경우, 제한 시간내 찾은 Best Objective value 가 Best Bound 와 큰 gap 이 있다는 것이고, 그렇다면 Best solution 의 신뢰성은 떨어지게 된다. 또한, 급변하는 상황 속에서 문제를 풀 때, 긴 계산 시간은 solution 의 효용성을 떨어뜨리게 한다. Test 중 몇몇 역의 최대 수요를 50 으로 지정했을 때처럼, 변수 증가에 따른 계산 시간 증가때문에 프로그램 사용할 경우가 사람의 직관으로 푸는 경우보다 비효율적이게 될 수 있다. 마지막으로 decision variables 사이의 곱셈이나 나눗셈을 하면 계산 시간이 크게 늘어나는 단점이 존재한다. 이 연구의 제한 조건들 역시 이를 피하기 위해 big M 을 사용하거나 integer 를 대신하는 binary decision variable 들을 사용하는 등 제약이 많았다. 만약 integer 가 더 넓은 범위를 포괄했다면, binary decision variable 들 역시 숫자가 늘어나 계산 시간을 더 느리게 만들었을 것이다.

MILP 의 문제점을 보완하는 데에는 2 가지 방안이 존재한다. 첫번째 방안은, 최대한 변수를 줄이고 binary decision variable 과 integer decision variable 을 가능한 continuous decision variable 로 전환하는 것이다. 하지만, 이 방법에는 결국 한계가 존재한다. 두번째는, MILP 와는 다른 방식의 해결 방법을 적용하는 것이다. 휴리스틱 알고리즘 등을 MILP 와 접목시키면, 비록 완벽한 optimal solution 은 찾을 수 없을 지라도, 사실상 차이가 없는 Mostly optimal Solution 은 MILP 만 사용했을 때보다 훨씬 빠르게 도달 할 가능성이 있다.

5. 후기

이번 연구 참여를 통해 얻은 경험은 값 졌습니다. 학부 수업 중 조별 과제를 하면서 저도 나름 실생활 문제에 대해서는 안다고 생각했는데, 실제 연구실 환경에서 연구를 하니 다르다는 것을 깨닫게 되었습니다. 학부 수업에서는 수업 과정에 맞춰서 해결할 수 있을만한 사례를 사용한다면, 연구실에서는 주어진 문제를 풀기 위해 논문과 책들을 뒤져가며 푸는 환경이니, 제가 생각했던 것만큼 녹록치 않았습니다. 하지만 제가 산업경영공학과에 진학인 이유가 바로 효율성에 대한 추구였으니, SBRP 는 제 흥미를 끄는 과제였습니다.

그렇지만 제가 부족한 점이 많단 것을 느끼게 된 기회이기도 했습니다. 약 8 주 정도의 넉넉한 기간이 있어서 여유를 가졌었는데도 첫 4 주는 연구 방향을 잘 잡지 못하고 엉뚱한 분야를 연구하기 일쑤였고, 다음 4 주는 첫 4 주에 비해 연구에 온 힘을 쏟지 못한 것 같았습니다. 초기에는 휴리스틱 알고리즘에 대해 알아보고 약간의 고민도 했지만, 결국 연구 기간 내에 구현까지 진도를 내지 못한 점이 아쉽습니다. 또한 Time Window나 한 점(역)에 버스가 각각 중복 도착하는 문제에 대해서는 그리 많이 접하지 못한 점도

Page 24: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

아쉽습니다.

하지만 직접 문제에 대면하고 고민하면서 엑셀의 해 풀이 기능으로 쓰던 LP Solver 가 어떤 식으로 구동하는지 약간이나마 알게 되었고 문제를 MILP 로 해체하는 방법에 대해서도 알게 되었습니다. Julia language, Gurobi, CPlex 등 전에는 접하지 못했던 프로그램들을 사용하는 기회가 되기도 했습니다. 그리고 간단한 예제와 개념만으로 접하던 MILP 문제와 휴리스틱에 대해 배우고 조사할 수 있는 기회가 되었습니다.

마지막으로 부족한 제게 연구 참여를 허락해 주시고 조언을 주신 김병인 교수님, 몇 차례 미팅을 통해 코딩부터 테스트까지 가르쳐주신 김현준 선배님, 매주 세미나 시간마다 제게 Logistics 에 대한 지평을 넓혀 주신 물류 연구실 선배님들 감사드립니다.

Page 25: logistics.postech.ac.krlogistics.postech.ac.kr/연구참여보고서/2018/2018... · Web view2018 여름학기 연구 참여 보고서 Shuttle Bus Routing Problem에 대한 MILP 2018.7.3

References1. 조용철. (2001). 배달과 수거를 포함한 다품목 수송차량 배차문제에 관한 연구.

석사학위논문, 인하대학교, 인천

2. 조혜민. (2016). Visualizing tool of Route Optimization with Google Maps API. 연구 참여 보고서, 포항공과대학교, 포항.

3. Changhyun Kwon. (2016). Julia Programming for Operations Research: A Primer on Computing.

This research is supervised by 김병인

This research is directed by 김현준

This paper is edited by 김현준