DOI QR코드

DOI QR Code

Bin Packing Algorithm for Equitable Partitioning Problem with Skill Levels

기량수준 동등분할 문제의 상자 채우기 알고리즘

  • Lee, Sang-Un (Dept. of Multimedia Eng., Gangneung-Wonju National University)
  • 이상운 (강릉원주대학교 과학기술대학 멀티미디어공학과 정교수)
  • Received : 2019.12.26
  • Accepted : 2020.04.03
  • Published : 2020.04.30

Abstract

The equitable partitioning problem(EPP) is classified as [0/1] binary skill existence or nonexistence and integer skill levels such as [1,2,3,4,5]. There is well-known a polynomial-time optimal solution finding algorithm for binary skill EPP. On the other hand, tabu search a kind of metaheuristic has apply to integer skill level EPP is due to unknown polynomial-time algorithm for it and this problem is NP-hard. This paper suggests heuristic greedy algorithm with polynomial-time to find the optimal solution for integer skill level EPP. This algorithm descending sorts of skill level frequency for each field and decides the lower bound(LB) that more than the number of group, packing for each group bins first, than the students with less than LB allocates to each bin additionally. As a result of experimental data, this algorithm shows performance improvement than the result of tabu search.

동등분할 문제(EPP)는 학생이 특정 분야에 대한 경험 유무인 [0/1]이진수 형태를 갖는 경우와 [1,2,3,4,5]와 같은 정수형의 기량 수준을 갖고 있는 문제로 분류된다. 이진수형 EPP에 대해서는 다항시간으로 최적 해를 구하는 알고리즘이 알려져 있다. 반면에, 정수형 기량 수준을 갖는 EPP에 대해서는 다항시간으로 해를 구하는 알고리즘이 존재하지 않아 아직까지는 메타휴리스틱의 일종인 타부탐색법만이 알려져 있는 난제이다. 본 논문은 NP-난제인 정수형 기량 수준을 갖는 EPP에 대해 다항시간으로 해를 찾아가는 규칙을 가진 휴리스틱 탐욕방법을 제안한다. 제안된 알고리즘은 각 분야의 기량 수준별 빈도수 내림차순으로 그룹 수를 충족하는 하한치(LB)를 구하고, LB 이상인 기량수준을 가진 학생들을 각 그룹 상자에 우선하여 채우고, LB 이하 기량수준을 가진 학생들을 추가로 각 상자에 배분하는 방법을 제안하였다. 제안된 알고리즘을 실험 데이터에 적용한 결과 기존의 타부탐색법으로 구한 결과를 개선하는 효과도 얻었다.

Keywords

Ⅰ. 서론

EPP는 각 학생이 해당 분야에 경험(기량)이 있는가? 아니면 전무한가? 만을 판단하는 이진수인 cij=[0|1]을 갖는 경우와 해당 분야의 기량 수준(숙련도)이 정수(1≤cij ≤ 5)을 취하는 경우로 구분될 수 있다.[1,2]

능력(기량)이 cij=[0|1]을 갖는 경우는 각 분야의 능력(기량)의 총합 Cj를 그룹 수 k로 나눈 Cj/k가 되도록 배정[1]하는 것으로 Lee[3]는 기량 합을 내림차순으로 정렬하여, 지그재그로 배정하고 교환하는 분할-정복 기법으로 원하는 그룹으로 균등 배분하는 최적 해를 쉽게 구하였다.

반면에, 정수(1≤cij ≤ 5)의 기량 수준(skill level)을 취하는 경우는 최대 기량을 가진 학생이 능력이 부족한 학생들을 지도하기 때문에 maxcj가 최소인 min maxcj가 균등하도록 배정[2]해야만 모든 그룹이 동등한 능력을 발휘할 수 있다. 따라서 능력(기량)이 cij=[0|1]을 갖는 경우의 알고리즘을 정수(1≤cij≤ 5)을 취하는 경우에는 적용할 수 없는 문제점을 갖고 있다. 따라서 본 논문에서는 정수(1≤cij≤ 5) 기량수준을 취하는 EPP에 초점을 맞추어 알고리즘을 제안하고자 한다.

정수(1≤cij≤ 5) 기량수준을 취하는 EPP에 대한 연구로는 Hübscher[2], Akkan과 Bozkaya[4]는 메타휴리스틱의 일종인 타부탐색(tabu search)법을 적용한 사례가 있다. 또한, Akkan et al.[5]는 CPLEX를 활용한 혼합정수계획법(mixed integer programming, MIP)을 적용하기도 하였다. 따라서 아직까지는 다항시간으로 최적 해를 찾아가는 규칙을 가진 휴리스틱 탐욕 알고리즘이 존재하지 않고 있는 난제이다.

다항시간 알고리즘이 존재하지 않는 난제인, 정수(1≤cij≤ 5) 기량수준을 취하는 EPP에 대해 본 논문에서는 다항시간으로 최적 해를 찾아가는 규칙이 존재함을 보인다. 2장에서는 동등분할 문제의 성능평가 기준과 어떻게 동등분할 하는지 사례를 통해 문제의 정의를 고찰해 본다. 3장에서는 정수(1≤cij≤ 5) 기량수준을 취하는 EPP에 대한 다항시간 알고리즘인 상자 채우기 방법을 제안하고, 실제 사례에 적용하여 본다. 4장에서는 실험데이터에 제안된 알고리즘을 적용하여 알고리즘 적합성을 검증하여 본다.

Ⅱ. 동등분할 문제의 성능평가기준

O’brien과Mingers[1,6]는 기량이 이진수([0|1])를 취하는 경우, 정보 측정 성능으로 식 (1)을 제시하였다.

\(-\sum_{k=1}^{p} \sum_{i=1}^{m} p_{i k} \ln \left(p_{i k}\right)\)       (1)

such that. 그룹(classes) i=1,2,…,m

속성(attributes) k=1,2,…,p

pik : 그룹 i에 있는 속성 k의 비율

ln(pik)=0, if pik=0

Lee[3]는 기량이 이진수([0|1])를 취하는 경우에 대한 EPP의 최적 해를 O(mlogm)의 다항시간으로 찾을 수있는 방법으로, 각 학생의 능력 합을 계산하여 내림차순으로 정렬시켜 k개 그룹에 지그재그(zig-zag)로 배정하여 초기 해를 결정하고 각 그룹이 \(\frac{1}{k} \sum_{i=1}^{m} \sum_{j=1}^{n} c_{i j}, \frac{1}{k} \sum_{i=1}^{m} c_{i 1}\), \(\frac{1}{k} \sum_{i=1}^{m} c_{i 2}, \cdots, \frac{1}{k} \sum_{i=1}^{m} c_{i n}\)를 갖도록 배정량을 조정하는 분할-정복 휴리스틱 알고리즘(DCHA)을 제안하였다.

9명의 학생을 3개 그룹으로 균등 분할하고자 하는 표1의 데이터는 O’brien과 Mingers[1]에서 인용되었다.

표 1. 이진수형 EPP 예제

Table 1. Example of EPP with binary type

OTNBBE_2020_v20n2_209_t0001.png 이미지

각 그룹은 수학지식, 작업경험과 남․여의 3가지 능력 각각을 3개 그룹이 균등하도록 학생들을 분할하는 문제이다. 여기서, 수학지식의 총합은 6으로 3개 그룹으로 분할하는 경우 각 그룹에는 2의 능력을 갖도록 해야 한다. 이에 대해 Lee[11]는 표 2와 같이 3개 그룹이 각 3명씩, 기량의 총합이 동일하게 5를 갖도록 하는 동등분할 결과를 얻었다.

표 2. 이진수형 예제 데이터에 대한 DCHA

Table 2. DCHA for example data of binary type

OTNBBE_2020_v20n2_209_t0002.png 이미지

두 번째로, 기량 수준이 정수(1≤cij ≤ 5)를 취하는 EPP의 경우, Hübscher[2]는 모든 그룹에 있는 최악의 기량(skill) 값 Cj를 식 (2)와 같이 정의하고, 최악의 기량을 최대화 시키는 maximize g(S) = min1≤j≤rCj를 찾고자 하였으며, 실제 최적화 성능 평가기준으로 식 (3)을 제시하였다.

\(C_{j}=\begin{array}{c} \min \quad \max c_{x j} \\ 1 \leq i \leq m x \in G_{i} \end{array}\)       (2)

\(g(S)=\left(\begin{array}{c} \min \\ 1 \leq j \leq r \end{array} C_{j}\right) \cdot \sum_{1 \leq j \leq r} C_{j}\)       (3)

표 3은 기량 수준이 정수(1≤s≤5)를 취하는 EPP의 경우로, Hübscher[2]에서 인용되었다. 표 3의 데이터에 대해, Hübscher[2]는 다항시간으로 적 해를 구하는 알고리즘이 존재하지 않아 부득이 메타휴리스틱의 일종인 타부탐색 법으로 표 4의 결과를 얻었다. 즉, 기량 #1은 최대 기량이 최소인 팀은 3을, 기량 #2는 최대 기량이 최소인 팀은 4를 갖도록 3개 팀으로 균등 분할하는 결과를 얻었다.

표 3. 정수형 EPP 예제

Table 3. Example of EPP with integer type

OTNBBE_2020_v20n2_209_t0003.png 이미지

표 4. 정수형 예제 데이터에 대한 타부탐색법

Table 4. Tabu search for example data of integer type

OTNBBE_2020_v20n2_209_t0004.png 이미지

Ⅲ. 상자 채우기 알고리즘

정수 기량수준 EPP에 대해 Hübscher[2]는 다항시간으로 최적 해를 구하는 알고리즘이 존재하지 않아 부득이 메타휴리스틱의 일종인 타부탐색 법을 적용하였다. 반면에 본 장에서는 다항시간으로 해를 구하는 규칙이 존재함을 보이기 위해, O(n) 알고리즘을 제안한다.

제안된 방법은 각 기량의 수준별로 인원수인 빈도수를 계산하고, 각 기량별로 최대 기량 빈도수부터 누적하여 분할하고자 하는 k개 그룹 이상이 되는 기량 수준 하한치 LBs을 결정한다. 결정된 기량 하한치 LBs 이상인 학생을 각 팀(상자)에 배분한다(채워 넣는다). LBs 이하인 나머지 학생들을 각상자에 균등하게 채워 넣는다. 이를 상자 채우기 알고리즘(bin packing algorithm, BPA)이라 하며 다음과 같이 수행된다.

Step 1. 각 기량에 대해, 수준별 빈도수를 계산하고, 최대 기량 빈도수부터 누적하여 분할하고자 하는 k개 그룹 이상이 되는 기량 수준 하한치 LB을 결정한다.

Step 2. 결정된 기량 하한치 LB 이상인 학생을 각 팀상자에 채워 넣는다.

Step 3. 동일한 수의 학생과 기량의 총합이 균등하게 배분되도록 LB 이하인 나머지 학생들을 각상자에 채워 넣는다.

제안된 BPA를 표 3 예제 데이터에 적용한 결과는 표5와 같다.

표 5. 정수형 예제 데이터의 상자 채우기 알고리즘

Table 5. BPA for example data of integer type

OTNBBE_2020_v20n2_209_t0005.png 이미지

Hübscher[2]의 타부탐색 법은 (9,9), (8,14), (12,11)의 기량 합으로 편차는 4와 5를 보인 반면에, 제안된 BPA는 (10,11), (10,11), (9,12)로 기량의 차이는 1과 1로 보다 균등한 결과를 나타내고 있음을 알 수 있다.

Ⅳ. 알고리즘 적용 및 결과 분석

본 장에서는 Hübscher[2]가 제시한 표 6의 데이터에 대해 BPA로 해를 구하여 알고리즘 적합성을 검증하여본다. 본 데이터는 18명의 학생이 4개 분야에 대한 기량수준(1≤cij≤ 5)을 나타내고 있으며, 4개 그룹으로 동등분할하고자 한다. 또한, 가능한 {3,15}는 같은 그룹에 속하도록 하고, 서로 싫어하는 원수(foes)끼리는 가능한 다른 그룹으로 설정하는 조건을 충족해야만 한다.

표 6. 정수형 EPP 실험 데이터

Table 6. Experimental data of EPP with integer type

OTNBBE_2020_v20n2_209_t0006.png 이미지

이 실험 데이터에 대해 Hübscher[2]는 타부탐색 법을 적용하여 원수끼리는 같은 팀에 배정되지 않도록 하였으며, \(C_{j}=\begin{array}{c} \min \quad \max c_{x j} \\ 1 \leq i \leq m x \in G_{i} \end{array}\)=(5,3,3,3), g(S) = 42를 얻었다. 반면에, BPA는 표 7과 같이 2가지 해법 모두 원수끼리는 같은 팀에 배정되지 않도록 동등 분할하였으며,\(C_{j}=\begin{array}{c} \min \quad \max c_{x j} \\ 1 \leq i \leq m x \in G_{i} \end{array}\) =(5,4,4,3), g(S) = 48로 성능을 개선하는 결과를 얻었다.

표 7. 정수형 실험 데이터의 상자 채우기 알고리즘

Table 7. BPA for experimental data of integer type

OTNBBE_2020_v20n2_209_t0007.png 이미지

(a)는 S03과 S15 학생을 동일 그룹에 배정하는 조건은 충족시키지 못하였지만 기량 수준 합이 50,50,50,51로 동등하게 배정하는 결과를 얻었다. (b)는 S03과 S15학생을 동일 그룹에 배정하는 조건은 충족시켰지만, 기량수준 합이 55,51,49,48로 최대 기량 합과 최소 기량 합 팀 간에 7 차이를 갖는 배정 결과를 얻었다. 그렇지만 해당 분야의 최대기량을 가진 학생이 나머지 학생들을 이끌어 줄 수 있어 좋은 결과임을 알 수 있다.

Ⅴ. 결론

정수형의 기량 수준 1≤cij≤ 5을 가진 EPP는 다항시간으로 해를 구하는 알고리즘이 존재하지 않아 아직까지는 부득이 컴퓨터 프로그램의 메타휴리스틱 기법의 일종인 타부탐색법의 도움을 받아 해를 구하고자 하였다.

본 논문에서는 기량 수준 1≤cij≤ 5을 갖는 EPP에 대해, \(C_{j}=\begin{array}{c} \min \quad \max c_{x j} \\ 1 \leq i \leq m x \in G_{i} \end{array}\)\(g(S)=\left(\begin{array}{c} \min \\ 1 \leq j \leq r \end{array} C_{j}\right) \cdot \sum_{1 \leq j \leq r} C_{j}\) 성능평가 기준을 충족시키는 maximize g(S)인 최적 해를 다항시간으로 찾을 수 있는 알고리즘을 제안하였다.

제안된 알고리즘은 첫 번째로, 각 기량의 수준별 빈도수를 계산하여 그룹 수를 충족하는 기량 수준 하한 값 LB를 결정하고, 이들 기량을 가진 학생들을 각 그룹에 균등하게 배분한 후, LB 이하의 기량 수준을 가진 학생들을 추가로 배분하고, 각 그룹의 기량 수준 총합이 가능한 균등하게 배분되도록 학생을 상호 교환하는 상자 채우기 방법을 적용하였다.

제안된 알고리즘을 실험 데이터에 적용한 결과 메타휴리스틱의 일인 타부탐색 법으로 찾은 해를 보다 개선하는 결과를 얻을 수 있었다.

References

  1. F. A. O'brien and J. Mingers, "A Heuristic Algorithm for the Equitable Partitioning Problem", Omega International Journal of Management Science, Vol. 25, No. 2, pp. 215-223, Apr. 1997, DOI: https://doi.org/10.1016/S0305-0483(96) 00046-1
  2. R. Hubscher, "Assigning Students to Groups Using General and Context-Specific Criteria", IEEE Transactions on Learning Technologies, Vol. 3, No. 3, pp. 178-189, Jul. 2010, DOI: https:// doi.org/10.1109/ TLT.2010.17
  3. S. U. Lee, "A Divide-and-Conquer Heuristic Algorithm for Equitable Partitioning Problem", Journal of KIIT, Vol. 14, No. 4, pp. 163-174, Apr. 2016, DOI: https://doi.org/10.14801/ jkiit.2016.14.4.163
  4. C. Akkan and B. Bozkaya, "A Heuristic Approach to Grouping and Timetabling of Project Presentations of Student Teams", Sabanci University, Faculty of Management, Orhanli, Tuzla, Istanbul, Turkey, Jun. 2008.
  5. C. Akkan, M. K. Erdem, and C. Kocas, "Finding Robust Timetables for Project Presentations of Student Teams", European Journal of Operational Research, Vol. 249, No. 2, pp. 560-576. Mar. 2016, DOI: https://doi.org/10.1016/j.ejor. 2015.08.047
  6. J. Mingers and F. A. O'Brien, "Creating Student Groups with Similar Characteristics: a Heuristic Approach", Omega International Journal of Management Science, Vol. 23, No. 3, pp. 313-321, Jun. 1995, DOI: https:// doi.org/10.1016/0 305-0483(95)00014-F