Ⅰ. 서론
매년 수백만 쌍의 결혼식이 진행되고 있으며, n명의 하객들 상호간에는 관계(부부, 형제자매, 친척, 친구 등과 같은 절친 관계, 상호간에 원수지간 등)를 갖고 있다. 이 경우 절친 간에는 하나의 테이블에 동석시켜야 하며, 원수지간에는 서로 다른 테이블로 배정해야만 결혼식 분위기를 화기애애하게 할 수 있다. 그러나 i개 좌석(seats)을 가진 j개 테이블(j= [n/i] )이 준비된 경우, 하객들 상호간의 관계를 모두 충족시키도록 좌석을 배치시키지 못하는 경우가 종종 발생한다. 따라서 최대의 관계를 갖도록 하여 결혼식 분위기를 망치지 않도록 하객들의 좌석 배정표(seating chart)를 작성하여 하는 것이 고객 만족을 위한 결혼식장(또는 연회장)의 가장 중요한 업무로 골머리를 앓고 있어, 특화된 결혼식장 좌석 계획자 (wedding seating planer) 직업까지 등장하였다.[1] 이를 결혼식장 좌석 배정 문제(wedding seating problem, WSP)라 한다.[2]
WSP는 다항시간으로 해를 구하는 알고리즘을 찾지 못해 NP-난제(non-polynomial-time hard)로 알려져 있다.[3] 따라서 메타휴리스틱 기법을 적용하여 다항시간으로 근사 해를 구하는 방법들이 연구되어 왔다. 메타휴리스틱 기법 분야는 Lewis[2]와 Lewis와 Carroll[4]은 타부탐색법(Tabu search, TS)을, Stiles[5]와 Martin[6]은 유전자 알고리즘(genetic algorithm, GA)을, Olivier et al.[7]은 상자 채우기(bin packing, BP)를, Tajima와 Misono[8]는 집합 피복(set packing, SP)을, Vidotto et al.[9]은 제약 만족 문제(constraints satisfaction problem, CSP)로 풀려고 시도하였다. 또한, 컴퓨터 프로그램의 도움을 받는 방법으로, Bellows와 Peterson[1]은 CPLEX solver를 장착한 GAMS 소프트웨어를 실행시켜 해를 구하였으며, Soleil[10]은 MS-Excel 프로그램을 개발하기도 하였다. 이와 같이 지금까지는 컴퓨터 프로그램 도움 없이 손으로 문제를 해결하기는 불가능하다.
따라서 본 논문에서는 WSP에 대해 최소절단(min-cut)이론을 적용하여 다항시간으로 손으로 문제를 해결하는 방법을 제안한다. 2장에서는 WSP 관련 연구와 문제점을 고찰한다. 3장에서는 기존에 갖고 있던 문제점을 해결할 수 있는 알고리즘을 제안한다. 4장에서는 다양한 실험 데이터에 대해 제안된 알고리즘을 적용하여 적합성을 검증하여 본다.
Ⅱ. 관련 연구와 문제점
WSP를 그래프 분할 문제로 보면, 예약 고객 수 n명을 정점(V)으로, 정점들 상호간 관계(동석 선호도 wu,v)를 간선(E)으로, , 테이블당 좌석 수를 i, 테이블 수를 j라 하면, j= [n/i] 가 된다. 따라서 WSP는 \(\cup_{k}^{j}=1\) Tk=V, Tx∩Ty = ∅,x,y∈{1,2,···,j},x≠y를 만족하도록 U={T1,T2,⋯,Tj}의 테이블로 분할하는 문제로 볼 수 있 다. 이 때 식 (1)을 만족시켜야만 한다.[2-4]
\(\begin{array}{l} z=\max \sum_{x=1}^{j} \sum_{T_{x}\{u, v\} \in E} w_{u, v} \\ \text { or } z=\min \sum_{x=1 u \in T_{x} v \in T_{y}\{u, v\} \in E}^{j} w_{u, v}, x \neq y \end{array}\)(1)
식 (1)은 하나의 테이블에 배정된 예약 고객들 간의 동석 선호도(응집도, cohesion)가 최대가 되도록 하는 방법이다. 이를 다시 말하면 다른 테이블과의 동석 선호도(결합도, coupling)는 최소가 되어야 한다. 여기서 wu,v는 다음과 같이 +로 증가할수록 동석 선호도가 높은 것으로, - 로 증가할수록 합성을 싫어하는 것으로 가정한다.[4,5]
Guest Relational Matrix의 Closeness Key :
• definitely apart(확실한 격리) = -100
• rather apart(상당한 격리) = -50
• rather together(상당한 동석) = 50
• bride/groom(신부/신랑) = 5000
• spouse/date(배우자/연인) = 2000
• sibling(형제자매) = 900
• parent/child(부모/자식) = 700
• cousin(친척) = 500
• aunt/niece(고모,이모,숙모/조카) = 300
• friend(친구) = 100
• guest(하객) = 1
• no relation = 0
그림 1의 P1 문제는 Bellow와 Peterson[1]에서 인용되었다. 이 문제는 두 부류인 신랑측 9명과 신부측 8명으로 구성된 n=17명의 예약 손님들이 결혼피로연 연회에 참석할 예정으로 각각의 친숙도가 명시되어 있다.
그림 1. n=17 P1 문제
Fig. 1. P1 problem about n=17
그림 1의 P1에 대해, Bellow와 Peterson[1]은 CPLEX Solver를 장착한 GAMS 소프트웨어를 사용하여 표 1의 결과를 얻었다. 이 모델은 최대 친숙도를 가진 손님들을 우선하여 동일한 테이블에 배정하는 방법이다.
표 1. P1 문제에 대한 CPLEX Solver 결과
Table 1. Result of CPLEX Solver for P1 problem
WSP에 대한 지금까지의 연구 결과를 보면, 표 2에서 보는 바와 같이 컴퓨터 프로그램의 도움을 받지 않고는 문제를 풀 수 없다. 또한, 왜 이러한 결과를 얻었는지 설명할 수 없는 단점을 갖고 있다. 따라서 3장에서는 WSP 를 다항시간으로 풀 수 있는 법칙(규칙)을 제안하여 컴퓨터 프로그램 도움 없이도 실무자들이 적용할 수 있는 토대를 마련한다.
표 2. CSA의 최소절단
Table 2. Min-cut of CSA
Ⅲ. 최소절단 좌석 배정 알고리즘
본 장에서는 “최대 친숙도(가중치)는 최소 절단(min-cut)에 기여하지 않는다.”는 최대유동-최소절단 이론[11]에 기반하여 복잡한 관계로 연결된 부 그래프의 정점들을 대상으로 최대 선호도 값을 갖는 두 정점(최대 응집도)을 하나의 정점으로 묶어 같은 테이블에 배정하면서, 다른 테이블과의 관계를 최소(최소 결합도)로 하는 병목지점(bottleneck)을 절단하는 그림 2의 최소절단 기법을 적용한다.
그림 2. 최소절단 좌석 배정법
Fig. 2. Min-cut seating method
즉, 다시 말해 친숙하지 않은 사람들 간의 결합도(coupling)를 최소로 하여 서로 다른 테이블에 배정하고, 절친인 사람들끼리 같은 테이블에 배정시켜 응집도(cohesion)를 최대로 하여야 한다. 따라서 최소 결합력-최대 응집력을 갖도록 테이블을 분리(절단, cut)하는데 있어서 가장 절친인 두 사람을 다른 테이블로 떨어트릴 수 없다는 이론에 기반을 두고 있다.
제안된 최소절단 좌석 배정 알고리즘(min-cut seating algorithm, CSA)은 다음과 같이 수행된다.
Step 1. 연결된 부 그래프의 정점들을 대상으로 최대 선호도 값을 갖는 두 정점을 하나의 정점으로 묶는다. 이 과정을 k=1,2,···,n-1까지 수행하여 절단 값을 구한다. 또한, 2:2:⋯, 3:3:⋯, 2:3:4, ⋯ 등에 대해서도 절단 값을 결정한다.
Step 2. 1:n-1, 2:n-2, ⋯에 대해 최소 절단 값을 결정한다.
Step 3. 주어진 문제의 예약 손님 수 n, 좌석 수 i가 주어졌을 때, 필요한 테이블 수 j= [n/i] 로 결정한 후, Step 2에서 구한 최소 절단 값을 가진 분할 그래프를 대입하여 좌석을 배정한다. 이 때, 여분의 좌석을 고려하여 최소 절단 값을 갖는 최적의 절단 조합을 선택한다. 예로, n=21,i=4,j=6인 경우, 4:4:4:4:4:1, 4:4:4:3:3:3, 4:4:4:4:3:2,⋯ 등이 가능하다.
P1 문제에 대해, CSA의 Step 1을 적용한 결과는 그림3에 제시되어 있다. 이 단계에서는 복잡한 관계망을 양분하면서 병목지점을 찾는다.
그림 3. CSA의 절단
Fig. 3. Cut of CSA
P1 문제에 대해, CSA의 Step 2를 적용한 결과는 표 2에 제시되어 있다. 이 단계에서는 양분된 그래프의 최소 결합도를 갖는 병목지점을 결정한다.
P1 문제에 대해, CSA의 Step 3을 적용하여 주어진 문제의 n에 대해 최대 인원수를 갖는 부 그래프의 정점 수를 n1이라 할 경우, i=n1-1,n1-2,⋯,2제약조건에 따른 좌석을 배정한 결과는 그림 4에 제시되어 있다.
그림 4. CSA의 좌석 배정 계획
Fig. 4. Seating plan of CSA
Ⅳ. 알고리즘 적용성 평가
본 장에서는 그림 5의 3개 문제에 대해 본 논문에서 제안된 CSA의 적합성을 검증해 본다. P2는 Stiles[5]에서, P3는 Lewis[2], Lewis와 Carroll[4]에서, P4는 Soleil[10]에서 인용되었다. P4는 Soleil[10]에서 제시한 6-seats, 6-tables에 대한 좌석 배정 결과도 함께 제시하였다.
그림 5. 실험 데이터
Fig. 5. Experimental data
본 논문에서 제시된 실험 데이터에 대해 제안된 CSA를 적용한 결과는 표 3에 제시되어 있다.
표 3. 실험 데이터에 대한 CSA
Table 3. CSA for experimental data
표에서 살펴보면, 제안된 CSA는 동석 선호도가 ‘-’인 적대관계를 가진 손님들은 절대로 한 테이블에 동석시키지 않았으며, ‘+’인 친숙한 관계 또는 ‘0’인 알지 못하는 관계에 대해서만 한 테이블로 동석시키도록 하였다. 이 결과 테이블당 좌석 수를 n/2,n2/-1,⋯,2로 가정하여 모든 경우에 대해 해를 구하였다. 예외적으로 P3 경우는 ‘-100’으로 동석을 전혀 원하지 않는 적대관계가 있어 이를 동석시키지 않는 조건을 만족시키도록 좌석 수는 n/2=10,3,2를 얻지 못하였다. P4는 {11,14,24} 상호 간에 ‘-100’으로 3-색으로 색을 칠할 수 있어 최대로 필요한 테이블 수는 3개로 최대 좌석 수는 17-seats까지 분할할 수 있으나 편의상 결과 값은 제시하지 않았다. 그러나 2-table가 필요한 18-seats에 대해서는 해가 존재하지 않는다.
Ⅴ. 결론
본 논문에서는 아직까지도 다항시간으로 해를 구하는 규칙을 발견하지 못해 NP-난제로 알려진 결혼식 연회장 좌석 배치 계획 문제(WSP)를 다루었다.
본 장에서는 복잡한 관계(동석 선호도)를 가진 n명의 하객들에 대해 테이블당 좌석 수 i가 한정되어 있는 경우 동석 선호도를 최소로 손실할 수 있도록 테이블을 분리할 수 있는 규칙을 찾고자 하였다. 이 규칙은 최대유량-최소절단(max flow-min cut) 개념을 WSP에 도입하여 문제를 해결할 수 있었다.
최소절단 알고리즘은 최대 동석 선호도를 가진 두 하객은 서로 다른 테이블로 분리시키지 않아야만 선호도 손실을 최소로 할 수 있다는 개념에 입각하여, 최대 선호도 값을 가진 두 정점을 하나의 정점으로 묶는 양분법으로 1:n-1, 2:n-2, ⋯, n-1:1을 수행하고, 1:n-1과 n-1:1 중에서 최소 절단 값을 가진 경우를 결정하였다. 또한, 추가적으로 필요한 2:2:2⋯,3:3:⋯,2:3:⋯등도 구하였다. 이들 최소 절단 경우에 대해, 주어진 문제의 테이블당 좌석 수 i 제한 조건을 충족하는 테이블 수 j=[n/i]에 적합한 최소 절단치를 가진 좌석 조합을 단순히 선택하는 방법을 적용하였다.
제안된 알고리즘을 다양한 실제 사례에 적용한 결과 좌석 수 i 를 2,3,⋯,n/2로 설정한 경우에 대한 최적 해를 구할 수 있었다.
본 논문은 WSP는 다항시간으로 문제를 풀 수 있는 방법(규칙)이 알려져 있지 않은 NP-난제에 대해, 다항시간으로 해를 구할 수 있는 규칙이 존재하며, 이는 컴퓨터 프로그램 도움 없이도 손으로 증명할 수 있어 P-문제가 될 수 있음을 실험을 통해 입증할 수 있었다는데 의미가 있다고 할 수 있다.
참고문헌
- M. L. Bellows and J. D. Luc Peterson, "Finding an Optimal Seating Chart," Annals of Improbable Research, pp. 1-7, Feb. 2012.
- R. Lewis, "Constructing Wedding Seating Plans: A Tabu Subject," The International Conference on Genetic and Evolutionary Methods, pp. 1-7, Jul. 2013.
- R. M. R. Lewis, "A Guide to Graph Colouring: Algorithms and Applications," p. 153, Springer, 2016, ISBN:978-3-319-5728.
- R. Lewis and F. Carroll, "Creating Seating Plans: A Practical Application," Journal of the Operational Research Society, Vol, 67, No. 11, pp. 1353-1362, Oct. 2016, doi:10.1057/jors.2016.34
- M. Stiles, "Optimizing Wedding Reception Seating Charts Using Genetic Algorithm," https://github.com/meganstiles/Seating_Chart/blob/master/OptimizingWeddingReceptionSeatingChartUsingaGeneticAlgorithm.pptx, May 2017.
- R. A. Martin, "Optimising Linear Seating Arrangements with a First-Principles Genetic Algorithm," Data Structures and Algorithms, viXra.org, May 2016, viXra:1605.0109
- P. Olivier, A. Lodi, and G. Pesant, "A Comparison of Optimization Methods for Multi-Objective Constrained Bin Packing Problems," Data Science for Real-time Decision Making, Dec. 2017, DS4DM-2017-015
- A. Tajima and S. Misono, "Using a Set Packing Formulation to Solve Airline Seat Allocation/Reallocation Problems," Journal of the Operations Research Society of Japan, Vol. 42, No. 1, pp. 32-44, Mar. 1999, doi:10.1016/S0453-4514 (99)80003-9
- A. Vidotto, K. N. Brown, and J. C. Beck, "Managing Restaurant Tables Using Constraints," Knowledge-Based Systems, Vol. 20, No. 2, pp. 160-169, Mar. 2007, doi:10.1016/j.knosys.2006.11.002
- O. D. Soleil, "Excel Solution: Who Should Sit Where?," http://datascopic.net/seating/, Jul. 2015.
- E. Lawler "Combinatorial Optimization Networks and Matroids: 4.5. Combinatorial Implications of Max-Flow Min-Cut Theorem, 4.6. Linear Programming Interpretation of Max-Flow Min-Cut Theorem," Dover. pp. 117-120, 2001, ISBN:0-486-41453-1.