DOI QR코드

DOI QR Code

Polynomial Time Algorithm for Worker Assignment Problem

작업자 배정 문제의 다항시간 알고리즘

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

Abstract

The linear assignment problem (LAP) and linear bottleneck assignment problem (LBAP) has been unknown the algorithm to solve the optimal solution within polynomial-time. These problems are classified by NP-hard. Therefore, we can be apply metaheuristic methods or linear programming (LP) software package or Hungarian algorithm (HA) with O(m4) computational complexity. This paper suggests polynomial time algorithm with O(mn)=O(m2),m=n time complexity to LAP and LBAP. The select-delete method is simply applied to LAP, and the delete-select method is used to LBAP. For the experimental data without the unique algorithm can be apply to whole data, the proposed algorithm can be obtain the optimal solutions for whole data.

선형배정문제 (LAP)와 선형병목배정문제 (LBAP)는 다항시간으로 최적 해를 구하는 알고리즘이 알려져 있지 않은 NP-난제로 분류되어 메타휴리스틱 방법이나 O(m4) 계산 복잡도의 선형계획법 (LP) 소프트웨어 패키지나 헝가리안 알고리즘 (HA)을 적용하고 있다. 본 논문은 LAP와 LBAP에 대해 O(mn)=O(m2),m=n 복잡도의 다항시간 알고리즘을 제안하였다. LAP에 대해서는 선택-삭제 방법을, LBAP에 대해서는 삭제-선택 방법을 단순히 적용하였다. 모든 데이터에 적합한 유일한 알고리즘이 존재하지 않는 실험 데이터에 제안된 알고리즘을 적용한 결과, 제안된 알고리즘은 모든 데이터에 대해 최적 해를 구할 수 있었다.

Keywords

Ⅰ. 서론

m명의 작업자(Wi,i = 1,2,⋯ ,m)를 n대의 기계(Mj, j = 1,2,⋯ ,n)에 배정하여 작업을 수행하는 경우, 주어진 함수는 생산성(또는 이득)인 경우 pij, 작업시간(또는 소요비용)인 경우 cij가 된다. pij의 경우 최대치를 얻도록 작업자를 기계에 1:1로 배정하는 것이 목적이며, cij의 경우 반대로 최소값을 얻도록 배정해야 한다. 작업은 병렬 (parallel)로 수행되어 n개 제품을 별도로 생산하는 경우와 하나의 제품을 n개 공정으로 직렬(serial)로 수행하는 경우로 구분된다. 병렬처리인 경우를 단순히 선형 배정 문제(linear assignment problem, LAP)라 하며, 직렬로 수행하는 경우를 선형 병목 배정 문제(linear bottleneck assignment problem, LBAP)라 한다.[1,2]

LAP와 LBAP는 다항시간으로 최적 해를 얻는 알고리즘이 제안되지 않아 NP-난제(NP-hard)로 분류되어 있다.[3]

LAP에 대해서는 유전자 알고리즘(genetic algorithm, GA)이나 담금질 기법(simulated annealing, SA) 등과 같은 메타휴리스틱 기법들이 제안되고 있으며[4], 다항시간으로 최적 해를 얻기 위한 헝가리안 알고리즘 (Hungarian algorithm, HA)[5,6]이나 선형계획법 (linear programming, LP)[7], CPLEX[8] 등을 적용하고 있다. 그러나 헝가리안 알고리즘과 선형계획법의 수행 복잡도는 O(m4)로 알려져 있다.[6,9]

LBAP에 대해서는 한계점 알고리즘(threshold algorithm, TA), 이중법(dual method, DM), 증대경로법(augmenting path method, APM) 등이 알려져 있다.[2,10,11]

본 논문은 LAP와 LBAP에 대해 O(mn) = O(m2) , (m = n)의 다항시간 알고리즘을 제안한다. 제안된 알고리즘은 LP 패키지를 활용하지 않고, 단지 Excel로 간단하게 최적 해를 결정할 수 있는 방법을 제안한다. 2장에서는 작업자 배정 문제의 개념과 연구 사례를 고찰해 본다. 3장에서는 단지 Excel을 활용하여 최적 해를 O(m2) 복잡도로 얻을 수 있는 휴리스틱 알고리즘을 제안한다. 4장에서는 제안된 알고리즘을 실제 데이터에 적용하여 알고리즘 적합성을 평가해 본다.

Ⅱ. 작업자 배정 문제

본 장에서는 m명의 작업자를 n대의 기계에 배정하는 문제를 고찰한다. 한 작업장(workshop)에 n대의 기계가 존재할 경우, 각 기계에 한 명씩의 작업자를 배정해야 기계들을 완전 가동할 수 있다. 각 작업자는 모든 기계들에 대한 생산성을 검증받았다. 표 1은 Guéret et al.[7]과 Edvall[8]에서 인용된 6명의 작업자가 6대의 기계에 대한 생산성 (시간당 제품 생산량)을 나타내고 있다. 이 문제에서 작업장의 최대 생산성을 얻기 위해 누구를 어느 기계로 배정할 것인가를 결정하는 것이다.

표 1. P1 데이터의 시간당 생산성

OTNBBE_2022_v22n5_159_t0001.png 이미지

Table 1. Productivity in pieces per hour of P1 data

작업자 배정 문제에서, 기계를 병렬(parallel, P)로 작동하는 경우를 LAP, 순차적 직렬(serial, S)로 작동하는 경우를 LBAP라 한다. LAP는 각 기계에서 별도의 제품을 생산하는 경우로 n개의 선택된 생산성들의 총합이 최대가 되어야 생산성을 최대로 얻을 수 있다.

LBAP는 n대의 기계 각각이 하나의 공정을 수행하는 형태로 하나의 제품을 n개 공정으로 생산하는 경우로 볼 수 있다. 이 경우, 제품의 생산성은 n개의 선택된 생산성들 중에서 최소치가 병목(bottleneck)으로 단위 시간당 생산은 병목이 발생한 생산성 값(최소 생산성)으로 결정된다.

LAP는 주어진 함수가 생산성(또는 이득)일 경우 최대치를 얻는 것이 목적이며, 반대로 작업시간 또는 소요 비용)인 경우 최소치를 얻는 것이 목적이다. 따라서 LAP의 생산성(또는 이득)의 최적 해는 식 (1)을, 작업시간(또는 비용)의 최적 해는 식 (2)로 얻을 수 있다. LBAP의 경우 병목을 찾는 문제로 생산성(또는 이득)의 최적 해는 식 (3)을, 작업시간(또는 비용)의 최적 해는 식 (4)로 얻을 수 있다.

[LAP]

• 생산성(또는 이득) : \(\begin{aligned}z_{p p}=\max \sum_{i=1}^{m} \sum_{j=1}^{n} p_{i j} x_{i j}\end{aligned}\)       (1)

such that \(\begin{aligned}\sum_{j=1}^{n} x_{i j}=1,(i=1,2, \cdots, m)\end{aligned}\)

\(\begin{aligned}\begin{array}{l}\sum_{i=1}^{m} x_{i j}=1,(j=1,2, \cdots, n) \\ x_{i j} \in\{0,1\},(i=1,2, \cdots, m, j=1,2, \cdots, n)\end{array} \end{aligned}\)

xij∈{0,1}, (i = 1,2,⋯ ,m,j = 1,2,⋯ ,n)

• 작업시간(또는 비용) : \(\begin{aligned}z_{p c}=\min \sum_{i=1}^{m} \sum_{j=1}^{n} c_{i j} x_{i j} \end{aligned}\)       (2)

such that \(\begin{aligned}\sum_{j=1}^{n} x_{i j}=1,(i=1,2, \cdots, m)\end{aligned}\)

\(\begin{aligned}\begin{array}{l}\sum_{i=1}^{m} x_{i j}=1,(j=1,2, \cdots, n) \\ x_{i j} \in\{0,1\},(i=1,2, \cdots, m, j=1,2, \cdots, n)\end{array} \end{aligned}\)

[LBAP]

• 생산성(또는 이득) : zsp = maxmin pijxij       (3)

such that \(\begin{aligned}\sum_{j=1}^{n} x_{i j}=1,(i=1,2, \cdots, m)\end{aligned}\)

\(\begin{aligned}\begin{array}{l}\sum_{i=1}^{m} x_{i j}=1,(j=1,2, \cdots, n) \\ x_{i j} \in\{0,1\},(i=1,2, \cdots, m, j=1,2, \cdots, n)\end{array} \end{aligned}\)

• 작업시간(또는 비용): zsc = minmax cijxij       (4)

such that \(\begin{aligned}\sum_{j=1}^{n} x_{i j}=1,(i=1,2, \cdots, m)\end{aligned}\)

\(\begin{aligned}\begin{array}{l}\sum_{i=1}^{m} x_{i j}=1,(j=1,2, \cdots, n) \\ x_{i j} \in\{0,1\},(i=1,2, \cdots, m, j=1,2, \cdots, n)\end{array} \end{aligned}\)

표 1의 예제에 대해 LAP와 LBAP의 경우 생산성을 최대로 할 수 있도록 작업자들을 기계에 배정하여 보자. 이 문제에 대해 Guéret et al.[7]은 선형계획법(LP)을, Edvall[8]은 CPLEX 소프트웨어 프로그램 패키지를 적용하여 표 2의 결과를 얻었다.

표 2. P1 데이터에 대한 LP와 CPLEX의 최적 배정

OTNBBE_2022_v22n5_159_t0002.png 이미지

Table 2. Optimal assignment of LP and CPLEX for P1 data

3장에서는 LAP와 LBAP에 대해 O(mn)의 다항시간으로 최적 해를 결정하는 휴리스틱 알고리즘을 제안한다.

Ⅲ. LAP와 LBAP의 다항시간 알고리즘

본 장에서는 생산성(또는 이득) 행렬을 대상으로 알고리즘을 설명한다. 만약, 주어진 함수가 작업시간(또는 비용) 행렬일 경우 제안된 알고리즘에서 pij→ cij, max→ min, min→ max로 치환하면 된다. LAP의 경우, 행과 열에서 최대 생산성인 셀 2개씩을 선택하고, 행과 열에서 1개 셀만 선택된 경우 해당 셀의 열이나 행의 다른 셀들을 삭제한다. 만약, 행과 열에서 1개 셀만 선택된 것이 없을 경우 선택된 셀들 중 최소 생산성 셀을 삭제한다. 이 과정을 반복 수행하여 n개 셀을 선택한다. 이를 선택-삭제 알고리즘(select- delete algorithm, SDA)이라 하자.

LBAP에 대해서는 행이나 열에서 1개 셀만 남을 때까지 최소 생산성 셀들을 삭제한다. 만약, 행이나 열에서 1개 셀만 남은 경우, 해당 셀의 열이나 행의 나머지 셀들을 삭제한다. 이 과정을 반복 수행하여 n개 셀을 선택한다. 이를 삭제-선택 알고리즘(delete-select algorithm, DSA)라 하자. 제안된 SDA와 DSA는 그림 1과 같이 수행된다.

OTNBBE_2022_v22n5_159_f0001.png 이미지

그림 1. LAP와 LBAP 최적화 알고리즘

Fig. 1. Optimization algorithm for LAP and LBAP

제안된 알고리즘은 입력 변수 m×n에 대해 O(mn)=O(m2),(m = n)의 수행 복잡도로 최적화를 시킬 수 있으며, 단순히 Excel로 쉽게 적용할 수 있어 실무에 즉시 활용 가능한 장점을 갖고 있다.

표 1의 데이터에 대해 SDA를 수행한 과정은 표 3에, DSA를 수행한 과정은 표 4에 제시하였다.

표 3. P1 데이터의 LAP에 대한 SDA의 최적 배정

OTNBBE_2022_v22n5_159_t0003.png 이미지

Table 3. Optimal assignment of SDA for LAP of P1 data

표 4. P1 데이터의 LBAP에 대한 DSA의 최적 배정

OTNBBE_2022_v22n5_159_t0004.png 이미지

Table 4. Optimal assignment of DSA for LBAP of P1 data

표 1의 데이터에 적용된 알고리즘들의 성능을 비교한 결과는 표 5에 제시하였다. SDA와 DSA는 LP에 비해 수행 복잡도를 O(m4)에서 O(m2)로 감소시켰음에도 불구하고, 동일한 해를 얻었음을 알 수 있다.

표 5. P1 데이터에 대한 알고리즘 성능 비교

OTNBBE_2022_v22n5_159_t0005.png 이미지

Table 5. Compare with algorithm performance for P1 data

Ⅳ. 실험 및 결과 분석

본 장에서는 표 6의 실험 데이터에 대해 DSA로 LBAP 최적 해를 얻을 수 있는지 검증해 본다.

표 6. 실험 데이터

OTNBBE_2022_v22n5_159_t0006.png 이미지

Table 6. Experimental data

표 6의 실험 데이터들에 제안된 DSA로 LBAP의 최적해를 구한 결과는 표 7에 제시되어 있다.

표 7. 실험 데이터에 대한 DSA 결과

OTNBBE_2022_v22n5_159_t0007.png 이미지

Table 7. Result of DSA for experimental data

P2,P3 데이터는 Burkard et al.[2]에서, P4 데이터는 Garfinkel[10]에서, P5 데이터는 Zhu et al.[11]에서 인용되었다. 여기서는 알려진 최적해도 함께 표기하였다. P5 데이터는 3명이 한 팀을 이루어 9명이 3개 팀으로 3대의 기계에서 작업하는 경우이다.

표 6의 실험 데이터들에 대해 해를 비교한 결과는 표 8에 제시하였다. 제안된 DSA는 4개 데이터 모두에서 알려진 최적 해를 구하였음을 알 수 있다.

표 8. 실험 데이터에 대한 해 비교

OTNBBE_2022_v22n5_159_t0008.png 이미지

Table 8. Compare with solution for experimental data

Ⅴ. 결론

LAP와 LBAP는 다항시간으로 해를 구하는 알고리즘이 알려져 있지 않아 NP-난제로 분류되어 있다. 이러한 난제에 대해 본 논문은 LAP와 LBAP에 대해 O(mn)의 다항시간으로 해를 구할 수 있는 휴리스틱 알고리즘을 제안하였다. LAP에 대해서는 단순히 선택-삭제 방법을, LBAP에 대해서는 삭제-선택 방법을 적용하였다.

실험 결과 O(m4) 복잡도의 선형계획법 뿐 아니라 메타휴리스틱 방법으로도 모든 데이터에 대해 해를 구하지 못한 반면에, 제안된 알고리즘은 O(mn)의 다항시간으로 간단히 해를 구할 수 있음을 보였다.

제안된 알고리즘은 Excel을 활용하여 LAP에 대해서는 선택-삭제를, LBAP에 대해서는 삭제-선택 방법을 적용하였다.

결론적으로, LAP와 LBAP의 해를 구하는 실제 문제에 직면한 경우 제안된 알고리즘을 적용하면 간단하고 쉽게 해를 구할 수 있는 관계로 실질적인 큰 도움을 줄 수 있을 것이다.

References

  1. B. Rainer, M. Dell'Amico, and S. Martello, "Assignment Problems," SIAM. 2012, https://doi.org/10.1137/ 1.9781611972238
  2. R. Burkard, M. Dell'Amico, and S. Martello, "Assignment Problems, Chapter 6.2: Linear Bottleneck Assignment Problem," SIAM, pp. 172-191, 2009.
  3. D. S. Du and P. M. Pardalos, "Handbook of Combinatorial Optimization: Supplement A, Linear Assignment Problems and Extensions," pp. 75-150, Kluwer Academic Publishers, 1999.
  4. A. Sahu and R. Tapadar, "Solving the Assignment Problem using Genetic Algorithm and Simulated Annealing," IAENG International Journal of Applied Mathematics, Vol. 36, No. 1, pp. Feb. 2007.
  5. Y. Cao, "Hungarian Algorithm for Linear Assignment Problems," http://www.mathworks.com/matlabcentral/fileexchange/20652-hungarian-algorithm-for-linear-assignment-problems, Jul. 2008.
  6. X-RAY, "Assignment Problem and Hungarian Algorithm," http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=hungarianAlgorithm, 2014.
  7. C. Gueret, X. Prins, and M. Sevaux, "Applications of Optimization with Xpress-MP: 14.1 Assigning Personnel to Machines," Dash Optimization Ltd., pp. 210-212, Feb. 2005.
  8. M. Edvall, "Assigning Personnel to Machines," Tomlab Optimization Inc, http://tomsym.com/examples/tomsym_assignpersonnel.html, Apr. 2009.
  9. N. Karmarkar, "New Polynomial-Time Algorithm for Linear Programming," COMBINATOR1CA, Vol. 4, No. 4, pp. 373-395, Dec. 1984, https://doi.org/10.1007/BF02579150
  10. R. S. Garfinkel, "Technical Note-An Improved Algorithm for the Bottleneck Assignment Problem," Operations Research, Vol. 19, No. 7, pp. 1747-1751, Dec. 1971, https://doi.org/10. 1287/opre.19.7.1747 https://doi.org/10.1287/opre.19.7.1747
  11. X. X. Zhu, R. J. Wang, and G. P. Du, "General Bottleneck Assignment Problem and Its Algorithm," Proceedings of the Sixth International Conference on Machine Learning and Cybernetics, Honk Kong, pp. 19-22, Aug. 2007, https://doi.org/10.1109/ ICMLC.2007.4370581