DOI QR코드

DOI QR Code

Optimization Algorithm for k-opt Swap of Generalized Assignment Problem

일반화된 배정 문제의 k-opt 교환 최적화 알고리즘

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

Abstract

The researchers entirely focused on meta-heuristic method for generalized assignment problem(GAP) that is known as NP-hard problem because of the optimal solution within polynomial time algorithm is unknown yet. On the other hand, this paper proposes a heuristic greedy algorithm with rules for finding solutions. Firstly, this paper reduces the weight matrix of original data to wij ≤ bi/l in order to n jobs(items) pack m machines(bins) with l = n/m. The maximum profit of each job was assigned to the machine for the reduced data. Secondly, the allocation was adjusted so that the sum of the weights assigned to each machine did not exceed the machine capacity. Finally, the k-opt swap optimization was performed to maximize the profit. The proposed algorithm is applied to 50 benchmarking data, and the best known solution for about 1/3 data is to solve the problem. The remaining 2/3 data showed comparable results to metaheuristic techniques. Therefore, the proposed algorithm shows the possibility that rules for finding solutions in polynomial time exist for GAP. Experiments demonstrate that it can be a P-problem from an NP-hard.

NP-난제로 다항시간으로 최적 해를 찾는 알고리즘이 제안되지 않고 있는 일반화된 배정 문제에 대해 기존에는 전적으로 메타휴리스틱 기법들에 치중하여 연구가 진행되었다. 반면에, 본 논문에서는 해를 찾아가는 규칙을 가진 휴리스틱 탐욕 알고리즘을 제안한다. 첫 번째로, m대의 기계(용기)에 n개의 작업(물품)을 담을 수 있도록 l = n/m개가 되도록 각 기계의 용량 bi에 대해 가중치 wij ≤ bi/l 데이터로 축소시킨다. 축소된 데이터들을 대상으로 각 작업의 최대 이득 작업을 해당 기계에 배정하였다. 두 번째로, 각 기계에 배정된 가중치 합이 기계 용량을 초과하지 않도록 배정을 조정하였다. 마지막으로 이득을 최대화시키기 위해 k-opt 교환 최적화를 수행하였다. 제안된 알고리즘을 50개 벤치마킹 데이터들에 적용한 결과 약 1/3 데이터에 대해서는 알려진 최적 해를 찾을 수 있었으며, 나머지 2/3 데이터에 대해서는 메타휴리스틱 기법들과 견줄만한 결과를 보였다. 따라서 제안된 알고리즘은 GAP에 대해 다항시간으로 해를 찾아가는 규칙이 존재할 가능성을 보여 NP-난제에서 P-문제로 될 수 있음을 실험을 통해 증명하였다.

Keywords

Ⅰ. 서론

용량(capacity)에 서로 다른 m개 상자(기계)에 각 상자에 저장될 때 크기(높이)와 이득(또는 비용)이 서로 다른 n개의 물품(작업)을 이득 최대화(또는 비용 최소화)를 달성하면서 m개 상자 모두에 채워 넣는 문제를 일반화된 배정 문제(generalized assignment problem, GAP)이라 한다.[1]

이 문제는 배정(할당) 문제(assignment problem, AP)와 상자 채우기 문제(bin packing problem, BPP)가 결합된 하이브리드 문제로 정의될 수 있다. 일반적으로 AP와 BPP 자체도 다항시간으로 정확한 해를 찾는 규칙을 발견하지 못해 NP-완전(non-deterministic polynomial time-complete, NP-complete)로 분류된 난제이다. 하물며, GAP=AP+BPP로 이 역시 NP-난제(NP-hard)로 분류된 난제 중의 난제라고 할 수 있다.[2-4]

따라서 GAP에 대해, 아직까지는 시행착오법의 컴퓨터 프로그램을 적용한 메타휴리스틱 기법이나 수학적 모델 연구가 주류를 이루고 있으며, 다항시간의 근사 알고리즘은 제안되지 않고 있다.[5]

Lee[6]은 GAP에 대해 m×n 시간과 비용행렬에 대해 시간행렬 최적화 결정(선택)과 비용행렬 최적화 결정(교환)의 2단계 최적화(TSO) 기법과 m×n의 시간x비용행렬에 대해 결정하는 1단계 최적화(OSO) 기법의 O(mn) 복잡도를 가진 시간-비용 최적화 알고리즘을 제안한 연구 결과가 있다.

본 논문에서는 Lee[6]와는 차별화된 방법으로 GAP의 근사 해를 다항시간으로 찾아갈 수 있는 규칙을 가진 휴리스틱 탐욕 알고리즘을 제안한다. 2장에서는 GAP의 난제를 문제 정의와 더불어 예제 문제를 대상으로 고찰해 본다. 3장에서는 다항시간으로 근사 해를 찾아가는 휴리스틱 탐욕 알고리즘으로 데이터를 축소시켜 배정하고, 모든 상자의 용량을 충족시킨 후 이득을 극대화 시키는 최적화를 수행하는 기법을 제안한다. 4장에서는 GAP 벤치마킹 데이터들에 대해 제안된 알고리즘을 적용하여 다항시간으로 근사 해를 찾을 수 있는 휴리스틱 탐욕 알고리즘의 존재 가능성을 검증해 본다.

Ⅱ. 일반화된 배정 문제의 난제

GAP은 기계(상자) Mi, j = 1, 2, ⋯, m, 작업(물품) Jj, j = 1, 2, ⋯, n에 대해 m×n의 이득 행렬 P와 가중치 행렬 W와 용량 m×1개의 용량 행렬 B에 대해 다음과 같이 pij 또는 cij, wij와 bi 용어들이 사용된다.

• pij : 물품 j를 상자 i에 배정 시 획득 이득(profit)

• cij : 물품 j를 상자 i에 배정 시 소요되는 비용(cost)

• wij : 물품 j를 상자 i에 배정 시 가중치(높이, height)

• bi : 상자 i의 용량(높이, capacity)

이러한 용어들을 사용하여 GAP은 식 (1) 또는 (2)의 상자문제로 설명될 수 있다.[1,7,8] n개 물품을 m개 상자에 모두 채워 넣는 경우, 각 물품은 정확히 하나의 상자에 넣어야 하며, 어떤 상자도 적재된 물품들의 높이가 상자 높이를 초과할 수 없다. 이러한 조건을 만족하면서 총 이득 최대화(총 비용 최소화)시켜야만 한다.

\(\begin{aligned}\text {Maximize Profit} : z^{+}=\sum_{i=1}^{m} \sum_{j=1}^{n} p_{i j} x_{i j}\end{aligned}\)       (1)

\(\begin{aligned}\text {Minimize Cost } z^{-}=\sum_{i=1}^{m} \sum_{j=1}^{n} c_{i j} x_{i j}\end{aligned}\)       (2)

subject to \(\begin{aligned}\begin{array}{l}\sum_{j=1}^{n} w_{i j} x_{i j} \leq b_{i}, i \in M=\{1,2, \cdots, m\} \\ \sum_{i=1}^{m} x_{i j}=1, j \in N=\{1,2, \cdots, n\} \\ x_{i j}=[0 \mid 1], i I N M, j \in N\end{array}\end{aligned}\) 

where

\(\begin{aligned}x_{i j}=\left\{\begin{array}{l}1 \text { if } \text { item } j \text { is assigned to knapsack } i \\ 0 \text { otherwise }\end{array}\right.\end{aligned}\)

Andreas와 Kurt[9]에서 인용된 그림 1의 GAP-1 사례를 통해 GAP의 문제 정의와 더불어 해를 얻는데 있어 난제를 이해하여 보자.

OTNBBE_2023_v23n5_151_f0001.png 이미지

그림 1. GAP-1 예제

Fig. 1. Example of GAP-1

이 문제는 n = 3, m = 8로 이득을 극대화 시키도록 8개 물품을 3개의 상자에 넣는 문제이다. GAP은 pij에 대한 이득(또는 비용)의 배정(할당) 문제(assignment problem, AP)와 더불어 wij, bi에 대한 상자 채우기 문제(bin packing problem, BPP)가 결합된 하이브리드 형태의 문제로 정의될 수 있다. 즉, GAP=AP+BPP의 2개 문제에 대한 조건을 모두 충족시켜야만 하는 난제이다.

쉽게 말하면, n개의 각 물품은 m개의 상자에 넣을 경우 이득이 서로 다르며, 높이가 서로 다른 m개의 상자에 n개의 각 물품이 m개의 상자에 들어갈 경우 높이가 서로 다른 경우로 이득 극대화 측면의 AP나 n개의 물품을 m개 상자에 모두 넣기 위한 BPP의 어느 한 쪽만을 충족시켜서는 최적 해를 찾지 못하며, 반드시 양쪽 모두를 충족시켜야만 한다. 일반적으로 AP나 BPP도 다항시간으로 해를 찾아가는 규칙을 아직까지 발견하지 못한 난제로 NP-완전(complete) 문제로 분류되고 있다. 하물며, NP-완전의 2 문제를 결합한 GAP은 더더욱 풀기 어려운 NP-난제(hard)로 분류된 난제 중의 난제라고 할 수 있다.[2-4]

GAP의 해를 구하기 위해 다양한 메타휴리스틱 기법이나 수학적 모델 등을 적용하고 있지만 정작 다항시간으로 해를 찾아가는 규칙을 가진 휴리스틱 탐욕 알고리즘은 제안되지 않고 있는 실정이다. 따라서 3장에서는 GAP의 근사 해를 다항시간으로 찾을 수 있는 탐욕 규칙을 제시한다.

Ⅲ. k-opt 교환 최적화 알고리즘

GAP은 n개의 물품(items)을 m개 상자(bin)에 넣어야 하는 문제로, 동일한 크기의 상자와 물품이라면 각 상자에 n/m개씩 할당할 수 있다. 따라서 기본적으로는 wij ≤ bi/⌊n/m⌋ 데이터들만을 선택 대상으로 축소시킬 수 있다. 이는 m개 상자 크기가 동일하며, wij 가 모두 bi/ ⌊n/m⌋ 크기인 경우에 한하며, wij가 wij ≪ bi/ ⌊n/m⌋에 치우쳐 있는 경우 wij > bi/ ⌊n/m⌋도 추가될 수 있다. 이러한 wij의 분포 경우를 고려하여 l = ⌊n/m⌋-1로 설정하여 wij < bi/l 데이터들만으로 축소된 초기 배정 대상을 추출한다.

축소된 데이터들에 대해 각 작업(물품, 열)에서 maxpj를 선정하여 wijxij(xij = 1)로 각 상자(기계, 행)에 채워진(fill) 물품의 총 크기 \(\begin{aligned}f_{i}=\sum_{j=1}^{n} w_{i j}\end{aligned}\)를 계산하여 여유 량(clearance or remaining, r) ri = bi - fi을 계산한다. 만약 상자 밖으로 흘러넘친(overflow) 상자가 존재하면 여유가 있는 상자와 물품 교환으로 보든 상자의 용량을 충족시킨다. 이 과정에서 z+ 또는 z-의 최적 해를 얻기 위해 그림 2의 k-opt 교환 최적화를 식 (3)으로 수행한다. 여기서 출발(s)과 최종 도착(t)의 물품(작업 j)은 (s1, tn) = max (maxpj - ps)인 작업으로 결정한다.

z+ : if (Σpt - Σps) > 0, ∀i, (bi - fi) ≥ 0 then       (3)

ws, xij = 1 → 0, wt, xij = 0 → 1.

z- : if (Σcs - Σct) > 0, ∀i, (bi - fi) ≥ 0 then

ws, xij = 1→0, wt, xij = 0→1.

OTNBBE_2023_v23n5_151_f0002.png 이미지

그림 2. k-opt 교환 최적화

Fig. 2. k-opt swap optimization

AP, BPP를 포함한 대부분의 최적화 문제는 하나의 m×n 행렬 데이터를 다루기 때문에 기본형(basic type)인 k-opt(k ≥ 2)를 적용한다. 반면에 GAP은 m×n 행렬의 P와 W의 2개를 결합하여 다루는 복잡한 문제로 기본형 뿐 아니라 변종(variant or mutant) k-opt도 함께 적용해야만 하는 어려움이 있다.

제안된 알고리즘은 GAP의 최적 해인 z+ 또는 z- 모두에 적용되는 방법으로 k-opt 교환 최적화 알고리즘(k-opt swap optimization algorithm, k-opt SOA)라 하며 다음과 같이 수행된다.

[z+ k-opt SOA]

Step 1. 초기 배정

\(\begin{aligned}l=\left\lfloor\frac{n}{m}\right\rfloor-1,(l \geq 2),\left\{\begin{array}{l}w_{i j}<b_{i} / l, p_{i j}=p_{i j} \\ w_{i j} \geq b_{i} / l, p_{i j}=0\end{array}\right.\end{aligned}\)

• if |pj > 0| = 0 then maxpj 복원(z+)

• 각 작업(j열)에서 maxpj 선택, wij = wij(xij = 1)

• if |maxpj| ≥ 2 then minwij 선택

• ri = bi - fi 계산

Step 2. 상자 용기 용량 충족과 이득 최적화 수행

• 상자 용량 충족 : ri < 0 기계가 존재하면, ri > 0기계와 wij를 상호 교환하는 2-opt 균형 최적화수행, 모든 기계의 \(\begin{aligned}\sum_{j=1}^{n} w_{i j} x_{i j} \leq b_{i}\end{aligned}\)를 충족

• 최적화 : if (Σpt - Σps) > 0, ∀i, (bi - fi) ≥ 0 then ws, xij = 1→0, wt, xij = 0→1.

- 출발점 : s1 = min P, (s1, tn) = max (maxpj - ps)

[z- k-opt SOA]

Step 1. 초기 배정

\(\begin{aligned}l=\left\lfloor\frac{n}{m}\right\rfloor-1,(l \geq 2),\left\{\begin{array}{l}w_{i j}<b_{i} / l, c_{i j}=c_{i j} \\ w_{i j} \geq b_{i} / l, c_{i j}=\infty\end{array}\right.\end{aligned}\)

• if |cj = ∞| = m then min cj 복원(z-)

• 각 작업(j열)에서 mincj 선택, wij = wij(xij = 1)

• if |min cj| ≥ 2 then minwij 선택

• ri = bi - fi 계산

Step 2. 상자 용기 용량 충족과 비용 최적화 수행

• 상자 용량 충족 : ri < 0 기계가 존재하면, ri > 0 기계와 wij를 상호 교환하는 2-opt 균형 최적화 수행, 모든 기계의 \(\begin{aligned}\sum_{j=1}^{n} w_{i j} x_{i j} \leq b_{i}\end{aligned}\)를 충족

• 최적화 : if (Σcs - Σct) > 0, ∀i, (bi - fi) ≥ 0 then ws, xij = 1→0, wt, xij = 0→1.

- 출발점 : s1 = maxc, (s1, tn) = max (maxcj - cs)

그림 1의 GAP-1 사례에 대해 제안된 z+ k-opt SOA를 적용한 결과는 그림 3과 같다.

OTNBBE_2023_v23n5_151_f0003.png 이미지

그림 3. GAP-1 문제에 대한 k-opt SOA

Fig. 3. k-opt SOA for GAP-1 example problem

GAP-1에 대해 l = ⌊n/m⌋ -1, (l ≥ 2)을 계산하면 ⌊8/3⌋ = 2, 2-1 = 1, l ≥ 2로 l = 2를 얻는다. 따라서 wij > bi/2인 데이터가 삭제된 상태에서 각 작업(j열)의 maxpij/wij를 선택하여 초기 배정한 결과 A3 상자 용기 용량을 초과(-37)되었음을 알 수 있다. 따라서 A3 상자 용기의 초과 용량(-37)을 여유가 있는 A1 (8)과 A2 (63) 중 w32 = 70을 w22 = 38로 이동시키는 1-opt를 수행하여 용량을 충족시켰다. 이 때 얻은 총 이득은 290으로, 보다 많은 이득을 얻기 위해 이득 pij를 극대화시키는 변형 4-opt 최적화를 수행한 결과 z+ = 309를 얻었다.

Ⅳ. 적용 및 결과 분석

본 장에서 실험에 사용된 데이터는 Beasley[9]의 벤치마킹 데이터에서 인용된 gap1 ~ gap10 데이터들로 작업 수는 15개부터 48개까지이다.

본 논문에서 k-opt SOA를 얻은 결과에 대해 기존에 알려진 메타휴리스틱 기법들과 비교하여 알고리즘 성능 비교를 한 결과는 표 1에 제시하였다. 또한 최적 해를 찾은 18개 데이터에 대해 z+ k-opt SOA로 얻은 해는 그림 4에 제시되어 있다. 참고로, 표 1에서 알려진 최적 해를 100% 찾은 GA[1]는 각 데이터에 대해 10회 수행 결과 얻은 최대 이득 값을 기록한 것이다.

표 1. 실험 데이터의 해

OTNBBE_2023_v23n5_151_t0001.png 이미지

Table 1. Solution for experimental data

OTNBBE_2023_v23n5_151_f0004.png 이미지

그림 4. GAP 실험데이터의 k-opt SOA

Fig. 4. k-opt SOA for GAP experimental data

50개의 GAP 벤치마킹 데이터들 중에서 18개 데이터에 대해서는 기존에 알려진 최적 해를 찾는데 성공하였다. 나머지 32개 데이터에 대해서는 기존에 메타휴리스틱 기법들로 찾은 최적 해에 편차를 가진 근사한 결과를 얻을 수 있었다. 결론적으로 메타휴리스틱 기법의 MMAS와 GRASP에 비해서는 보다 좋은 결과를 나타내어 10개 알고리즘 중 8위로 메타휴리스틱 기법들과 경쟁할 수 있는 수준의 결과를 보였다.

Ⅴ. 결론 및 추후 연구과제

본 논문은 NP-난제로 분류된 GAP에 대해 다항시간으로 근사 해를 찾아가는 규칙인 휴리스틱 탐욕 알고리즘을 제안하였다.

제안된 방법은 이득 극대화와 가중치 충족의 2가지 목표를 모두 만족하는 대상 선정 기준을 적용하여 데이터를 축소시킨 후 이들 중 각 열에서 최대 이득을 가진 데이터를 선택하여 상자를 채웠다. 용량을 초과한 상자의 물품을 여유가 있는 상자로 옮겨 모든 상자의 용량 제약조건을 충족시켰다. 마지막으로 GAP에 특화된 이득을 극대화시키는 k-opt 교환 최적화 기법을 제안하여 적용하였다.

제안된 알고리즘을 GAP 벤치마킹 데이터들에 적용한 결과 1/3 데이터는 기존에 알려진 최적 해를 찾는데 성공하였으며, 나머지 2/3 데이터는 근사 해를 구하였다. 이는 GAP에 적용될 수 있는 다항시간 탐욕 알고리즘인 k-opt를 가시적, 수기식으로 적용한 결과 k-opt(k≥3)의 판단 어려움으로 인해 발생된 현상으로, 만약 이를 프로그래밍으로 구현한다면 보다 좋은 결과를 얻을 수 있으리라 기대된다.

따라서 본 연구는 GAP은 다항시간으로 최적 해를 찾아가는 규칙이 존재하지 않는다는 전제하에 컴퓨터의 도움을 받아 메타휴리스틱 기법들로 다항시간으로 근사 해를 찾아가는 방식에서 탈피하여 역발상으로 다항시간 정확한 알고리즘의 존재 가능성에 대한 연구 방향을 전환시킬 수 있는 토대를 제시하였다는 점에서 연구 의의를 찾을 수 있다.

본 논문에서 제안된 k-opt 알고리즘을 보다 향상시킨 진화된 k-opt(advanced k-opt)를 적용한다면 모든 데이터들에 대해 최적 해를 찾을 수 있을 것으로 판단된다. 따라서 추후 이 분야의 연구를 지속적으로 수행할 예정이다.

References

  1. P. C. Chu and J. E. Beasley, "A Genetic Algorithm for the Generalized Assignment Problem," Computers & Operations Research, Vol. 24, No. 1, pp. 17-23, Jan. 1997, https://doi.org/10.1016/S0305- 0548(96)00032-9 
  2. L. Ozbakir, A. Baykasoglu, and P. Tapkan, Pinar, "Bees Algorithm for Generalized Assignment Problem," Applied Mathematics and Computation, Vol. 215, No. 11, pp. 3782-3795, Feb. 2010, https://doi.org/10.1016/j. amc.2009.11.018 
  3. R. M. Nauss, "Solving the Generalized Assignment Problem: An Optimizing and Heuristic Approach," Informs Journal on Computing, Vol. 15, No. 3, pp. 249-266, Aug. 2003, https://doi.org/10.1287/ijoc.15.3.249.16075 
  4. P. Avella, M. Boccia, and I. Vasilyev, "A Computational Study of Exact Knapsack Separation for the Generalized Assignment Problem," Computational Optimization and Applications, Vol. 45, No. 3, pp. 543-555, Apr. 2010, https://doi.org/10.1007/s10589-008-9183-8 
  5. I. H. Osman, "Heuristics for the Generalised Assignment Problem : Simulated Annealing and Tabu Search Approaches," Operations Research Spektrum, Vol. 17, pp. 211-225, Dec. 1995.  https://doi.org/10.1007/BF01720977
  6. S. U. Lee, "Time-Cost Optimization Algorithm for Generalized Assignment Problem," Journal of KIIT, Vol. 14, No. 5, pp. 147-153, May 2016, http://doi.org/10.14801/jkiit.2016.14.5.147 
  7. H. R. Lourenco and D. Serra, "Adaptive Approach Heuristics for the Generalized Assignment Problem," Economics Working Papers 288, pp. 1-28, Department of Economics and Business, Universitat Pompeu Fabra. May 1998, http://hdl. handle.net/10230/292 
  8. K. Supriya, B. Kajla, and M. Sathi, "Solution of a Class of Generalized Assignment Problem," Journal of Intelligent & Fuzzy Systems, Vol. 33, No. 3, pp. 1687-1697, Aug. 2017, https://doi.org/10.3233/JIFS-17086 
  9. M. B. Akbulut and E. Yilmaz "A Modified Genetic Algorithm for the Generalized Assignment Problem," Istanbul University - Journal of Electrical and Electronics Engineering, Vol. 9, No. 2, pp. 951-958, Jul. 2009. 
  10. J. E. Beasley, "OR-Library : Generalized Assignment Problem," http://people.brunel.ac.uk/~astjjb/eb/orlib/gapinfo.html, Retrieved Jul. 2021. 
  11. T. H. Man, "An Algorithm for Multi-Objective Assignment Problem," Master Thesis, Chinese University of Hong Kong, Jun. 2005. 
  12. SAS, "SAS Optimization 8.3 Mathematical Optimization Procedures: Chapter 18. The Decomposition Algorithm, Example 18.2. Generalized Assignment Problem," pp. 902-908, SAS, Jul. 2018.