320 likes | 1.15k Views
잡샵 (Job Shop) 일정계획의 해법들. 제조통합자동화연구실 장양자 10/27/2000. 목차. 다단계 제품의 잡샵 일정계획 (Job Shop Scheduling of Multi-level Products) 잡샵 일정계획의 해법 Shifting Bottleneck Procedure Local Search Constraint Satisfaction Programming Genetic Algorithm 과 CSP 를 결합한 해법 기존 연구 해법이 가져야할 특성 정의. 다단계 제품의 잡샵 일정계획.
E N D
잡샵 (Job Shop) 일정계획의 해법들 제조통합자동화연구실 장양자 10/27/2000
목차 • 다단계 제품의 잡샵 일정계획(Job Shop Scheduling of Multi-level Products) • 잡샵 일정계획의 해법 • Shifting Bottleneck Procedure • Local Search • Constraint Satisfaction Programming • Genetic Algorithm과 CSP를 결합한 해법 • 기존 연구 • 해법이 가져야할 특성 정의
다단계 제품의 잡샵 일정계획 • 환경 • 생산되는 제품은 여러 단계의 품목들 (BOM)로 구성된다. • 작업장은 여러 대의 동일한 기계들로 구성되어 있다. • Multi-capacitated job shop scheduling • Multi-processor job shop scheduling • Flexible job shop scheduling • General job shop scheduling • 모든 품목은 다수 개의 공정을 거치면서 처리된다. • 모든 품목의 소요량과 시작종료시간이 알려져 있다. • 작업장의 용량은 시간에 따라 변동한다. • 문제 정의 (P1): 품목간의 선후행 관계를 지키면서 모든 품목의 조기 완료 및 납기 지연을 최소화하는 일정 계획 수립 (P2): 최종 품목의 종료 시간을 최종 기한(deadline)으로 준수하고, 품목간의 선후행 관계를 지키는 일정계획 수립
다단계 제품의 잡샵 일정계획 • 입력 자료 • 자재명세서 (BOM) • 주문 정보 • 라우팅 (Routing) Due Date 900 1200 2000
pj + sij i j 다단계 제품의 잡샵 일정계획 • 표현 • Extended Disjunctive Graph : Due dates, release dates, assembly structures, split structures, overlapping operations, setup times, transportation times, parallel machines and beginning inventory(WIP) 등의 데이터를 표현할 수 있도록 Disjunctive graph 확장 • Release Time(Available Time) : rij = L(0, ij) • Processing Time : arc length pij • Longest Path (=Critical Path) : makespan = L(0, *) • Duedate dij for operation ij : dij = L(0, *) - L(ij, *) + pij • Setup Time : • Operation k is a critical operation iff L(0,k) + L(k,*) = L(0, *) • prerequisite : calculation of all-pair shortest paths • Due date of job j : insert a dummy node & a arc representing a travel time.
다단계 제품의 잡샵 일정계획 • Extended Disjunctive Graph
일정계획 방법의 분류 Quality of Schedule Dynamic Programming Branch & Bound SBP, RHP Heuristic Algorithms Stochastic Optimization (GA, SA, Tabu Search) Dispatching Rules Computation Time 출처: 정대영 세미나 발표 자료
잡샵 일정계획 해법 Shifting Bottleneck Procedure [10] • SBP의 절차 Step 0: M0={} Step 1: Identify the bottleneck resource m among resources M\M0, and calculate its optimal sequence, given the partial schedule on resources M0. Set M0=M0{m}. Step 2: Reoptimize successively the sequence of each resource kM0, given the partial schedule on resources M0/{k}. If M0=M, then stop; else go to Step 1. • Multi-processor job shop에 대한 SBP와 기존 SBP의 차이 1. 기존 SBP의 step1에서 풀었던 문제가 head와 tail을 가진 single machine problem이었으나, multi-processor job shop에서는 parallel machine problem이 된다. single machine problem with head and tail 문제는 Carlier (1982)의 B&B를 사용하였는데, parallel machine problem에 대해서도 Carlier (1987)의 B&B를 이용할 수 있지만 시간이 너무 오래 걸리는 단점이 있다. 그래서 longest tail heuristic을 사용하였다. 2. head and tail calculation 기존의 head, tail 계산에서 conjunctive, disjunctive predecessor와 successor를 고려하도록 약간 변경되었다.
잡샵 일정계획 해법 Shifting Bottleneck Procedure [10] • 실험 데이터 생성 m: number of resources (50, 100) n: number of jobs (100, 200) l: number of levels in the bill of material (2,3) o: number of operations to be performed on a part (3,5) b: number of branches in an assembly (2,3) processing time: 1..100 Probability of selecting resource k for an operation: Rk / Sum(Ri) • 실험 데이터 셑 • 32개의 problem으로 구성된 4개의 problem set 구성 a: maximum number of units available of a resource (1,4) objective: (min Cmax, min Lmax) • 생성된 문제의 크기는 EDG의 노드수가 900~13000개까지였다. • Simple schedule generation procedure (SGP)는 19가지 dispatching rule을 사용하여 schedule을 생성하는 방법. 486 33MHz PC에서 SGP와 SBP를 비교 실험했다. SGP의 best solution과 SBP의 solution을 비교한 결과 best SGP보다 항상 좋은 해를 얻었다. 최대로 오래 걸린 시간이 5000초 미만이었다.
잡샵 일정계획 해법 SBP to JSSP • Dauzere-Peres, Lasserre, 1993 • 지연 제약을 고려한 수정된 Carlier 알고리즘 제시. 지연제약을 고려했을 때 더 좋은 해를 더 짧은 시간 내에 구할 수 있었음. • Egon Balas, Jan Karel Lenstra, Alkis Vazacopoulos, 1995 • 단일 기계 문제 해법으로 분지한계법을 이용. • Amar Ramudhin, Phillippe Marier, 1996 • Open shop, assembly shop, 공정간의 부분적인 순서가 있는 경우의 문제를 풀기 위해 일반화된 SBP 제안. • Michael Pinedo, Marcos Singer, 1999 • 문제에 SBP를 적용. • 단일 기계 문제 해법으로 분지한계법 이용.
잡샵 일정계획 해법 Local Search [15] • 다양한 local search 기법들을 분석하고 계산 결과를 제시. SBP, SA, GA, TS, variable-depth search • tabu search와 variable-depth search의 결과가 가장 좋았다. • solution quality는 Balas and Vazacopoulos(1998)의 ‘reiterated guided local search’가 가장 좋았다. • Nowicki and Smutnicki(1996)의 tabu search와 backtracking을 결합한 연구가 두번째로 좋은 해를 나타냈고, 시간도 훨씬 적게 걸렸다. • SBP의 경우에도 Balas and Vazacopoulos가 reoptimization에서 variable-depth search를 했던 경우를 제외하고는 성능이 썩 좋지 않았으며, SA, GA는 그다지 성능이 좋지 않았다.
잡샵 일정계획 해법 Constraint Satisfaction Programming [2] • CSP: 제약을 만족하는 변수의 값들을 찾아내는 것. • a set of variables X={x1,…, xn}; • for each variable xi, a finite set Di of possible values (domain) • a set of constraints restricting the values that the variables can simultaneously take • CP(Constraint Programming): CSP를 풀기위한 알고리즘을 컴퓨터로 구현한 것 • Constraint Logic Programming(CLP): 예를 들어 범용 로직 프로그래밍 언어인 PROLOG와 같은 언어를 사용해서 알고리즘을 구현할 수 있다. 그러나 범용 로직 프로그래밍(Logic Programming) 언어는 탐색에서 제약식을 활발하게 사용하지 못하기 때문에 비실용적이다. 제약식을 효과적으로 표현하고 풀기 위해서 만들어진 언어로 CHIP(Constraint Handling in PROLOG)이 있다. 이러한 언어로 알고리즘을 구현하는 것. CLP는 CP의 일종이라고 정의할 수 있다. • ILOG Solver: constraint programming tool, C++로 쓰여진 라이브러리 루틴
잡샵 일정계획 해법 Constraint Satisfaction Programming [2] • Arc consistency • 모든 제약들이 두 개의 변수 관계를 정의한 binary constraint라면 constraint graph로 표현할 수 있다. • xi, xj의 binary constraint Cij가 arc consistent하다는 것은 모든 aDi에 대해서 제약 Cij를 만족하는 xi=a, xj=b인 b가 도메인 Dj에 들어 있다는 것이다. xi=a일 때 Cij를 만족하는 b가 Dj에 없다면 Di에서 a를 제거하면 arc consistent하게 된다. • binary CSP에 있는 모든 arc들을 arc consistent하게 만들면 전체 문제가 arc consistent하게 된다. 이러한 과정은 종종 pre-processing stage에서 도메인을 줄여서 문제를 풀기 쉽게 하는데 사용된다. • Constraint propagation • combination of search (backtracking) with consistency techniques • 탐색 과정에서 한 변수의 값이 하나로 설정되면 constraint propagation을 이용해서 아직 값이 정해지지 않은 변수들의 도메인을 줄일 수 있다.
X X 1 2 1 2 1 2 1 2 Y Y 1 2 1 2 Z Z 잡샵 일정계획 해법 Constraint Satisfaction Programming • Arc Consistency Example • Problem:X::{1,2}, Y::{1,2}, Z::{1,2}X = Y, X Z, Y > Z 출처: Roman Barták(bartak@kti.mff.cuni.cz)
잡샵 일정계획 해법 Constraint Satisfaction Programming [2] • 탐색 알고리즘 ① Simple backtracking algorithm: 현재 변수의 값을 도메인에서 할당하고 제약에서 과거 변수값과 충돌하지 않는지 검사한다. 즉 현재 변수와 과거 변수 사이의 제약만을 검사한다. 현재 변수의 모든 값을 다 검사했다면 이전 변수로 돌아가서 새로운 값을 할당한다. ② Forward checking by Haralick and Elliott(1980): lookahead algorithm. 현재 변수에 값을 할당하면 미래 변수의 도메인에서 현재 변수의 값과 충돌하는 값들을 임시로 제거한다. 미래 변수 도메인이 비게 되면 바로 현재 변수에 다른 값을 할당하거나 backtrack할 수 있다. 새로운 변수를 고려할 때마다 남아 있는 모든 값들은 과거 값 할당과 consistent하다고 보장할 수 있기 때문에 consistency check는 필요하지 않다. ③ MAC (Maintaining Arc Consistency) by Sabin and Freuder(1994): lookahead algorithm. 현재 변수의 값을 할당할 때 forward checking보다 더 많은 작업을 한다. 현재 변수의 값을 할당하면(예를 들어 x1, x2는 할당했다면) 할당하지 않은 나머지 모든 변수들(x3, x4, x5)로 구성된 subproblem을 arc consistent하게 한다. 즉 x3, x4, x5가 서로 arc consistent하도록 도메인의 값들을 제거한다. 변수들을 고려하는 순서는 unique하지 않다.
잡샵 일정계획 해법 Constraint Satisfaction Programming [2] • 변수 정렬과 값 정렬 휴리스틱 • 값을 설정할 변수의 순서와 값의 순서가 계산 시간에 극적인 효과를 준다. • 알고리즘을 시작하기 전에 순서를 정해놓는 static ordering과 탐색을 하면서 탐색 상태에 따라 순서를 동적으로 결정하는 dynamic ordering 접근법이 있다. dynamic ordering은 forward checking, MAC일 때 가능하다. • 변수 정렬의 일반적인 방법론은 ‘fail-first’이다. 즉 가장 제약이 심한 변수를 선택한다. • 값 정렬의 방법론은 가장 일찍 가능해를 만날 것 같은 값을 선택하는 것이다. 즉 ‘succeed first’이다.
잡샵 일정계획 해법 CSP to JSSP • Nuijten and Aarts(1996)가 JSSP에 대한 arc consistency algorithm을 유도해냈다. • Thuriot et al.(1994)는 한 공정이 다른 공정을 선행해야 하는지는 검사할 수 있는 방법을 제안했다. • Carlier and Pinson(1989)는 edge-finding 기법의 기초를 제시했다. • Baptiste and Le Pape(1995)은 Nuijten and Aarts(1996)의 edge finding 기법의 유효성을 증명했고, Nuijten and Aarts 의 randomization과 restart라고 하는 도구를 포함시켰다. • 이전 스케쥴에서 동일한 기계에서 인접해 있던 공정 쌍은 restart시에 일정한 확률을 가지고 동일한 순서가 되도록 제약되어지고, 이 확률은 각 restart시에 점점 줄어든다. • Cheng and Smith(1997)은 동일한 기계를 요구하는 각 공정 쌍 사이의 순서를 나타내는 변수를 이용해서 또 다른 수식을 만들어 사용했다. branch and bound를 이용한 결과 Lawrence(1984)와 Fisher and Thompson(1963)의 문제를 SPARC10에서 10초안에 풀었다.
잡샵 일정계획 해법 해법에 대한 평가 • SBP에 대한 평가 • parallel machine problem에 대하여 B&B를 사용하면 시간이 오래 걸리고, heuristic을 사용하면 시간은 적게 걸리지만 해의 품질이 저하된다. • reoptimization 시간이 오래 걸린다. • Local Search에 대한 평가 • 정교하게 고안된 TS는 성공적이었으나, SA, GA는 그다지 성능이 좋지 않았다 • 보통 두 단계 정도로, 예를 들어 partial enumeration with big changes at the top level, and local search with smaller changes at the bottom level 정도가 좋은 방법이라고 제안. • CSP에 대한 평가 • Simonis(1996)에 의하면 CP가 성공적인 네 분야가 있다. Scheduling, Allocation, Transportation, Rostering • 원인: 전체 프로그램을 수정하지 않고 problem-specific constraint를 첨가하기 용이하고, OR 기법에 기반을 둔 탐색 전략을 통합하기 용이하다. • CSP의 주요한 구성 요소인 Propagation rule, Search control heuristic, Search decision retraction (backtracking)을 정교하게 할수록 시간이 오래 걸린다. • local search보다 오래 걸리지만 더 좋은 solution을 구한다. 따라서 두 가지를 통합하는 접근법에 대한 요구가 존재한다.
GA와 CSP를 결합한 해법 기존 연구 • GA: 상대적으로 넓은 search space를 가지고 있는 문제에 적합. 어떤 objective도 수용할 수 있음. Feasibility는 보통 intrinsic하거나 genetic operator, objective 안에 결합되어 있다. • Constraint Satisfaction Technique: highly constrained problem에 적합. Exhaustive exploration이 할만 하다고 생각되는 문제에 대해서 적용. Objective에 대하여 Dynamic constraint를 부가하여 optimization 문제도 풀수 있다. • 그러나 일반적으로는 optimization 문제는 highly constrained하면서 large search space를 가지고 있는 경우가 많다. 따라서 두 가지 기법을 다음과 같은 방식으로 결합한다. • GA에서 constraint를 처리하는 방법 • Eliminating infeasible solutions • Repairing infeasible solutions • Using constraint specific representations and modified operators • Applying penalties for infeasibility • Handling constraints explicitly
GA와 CSP를 결합한 해법 기존 연구 • Constraint Consistent GA(CCGA) [11,12] • GA를 진행하면서 생성한 모든 개체들을 CSP를 이용해서 feasible하게 유지한다. • 먼저 모든 제약식들을 posting한다. Posting 하자마자 바로 constraint propagation이 일어나서 domain reduction이 발생한다. 모든 단계에서 domain 변화나 instantiation이 발생하면 바로 constraint propagation이 일어난다. 1. Constrained Initialization • 개체를 생성할 때 variable ordering을 사용할 수 있다. Random하게 variable을 선택할 수도 있고 흔히 사용하는 heuristic을 사용할 수도 있다 (Domain Size 등). Infeasible 하게 되면 backtrack한다. 2. Constrained Crossover • Constrained uniform crossover • Constrained m-point crossover • Constrained arithmetic crossover • Constrained heuristic crossover
GA와 CSP를 결합한 해법 기존 연구 3. Constrained Mutation • Constrained uniform mutation • Constrained boundary mutation 4. Handling Partially Feasible Solutions • penalizing • repairing • 실험 • GA는 MIT의 GALib를 사용하고, constraint programming은 ILOG Solver를 사용하였다. 일반적인 CSP 문제 set을 만들어 약간의 실험을 한 결과 그다지 좋은 성능을 나타내지는 못했다.
GA와 CSP를 결합한 해법 기존 연구 • Optimization by hybridization of a genetic algorithm with constraint satisfaction techniques [1] • 회색 영역은 GA의 개체들에 해당한다. • 각 Subspace에 대하여 sub-CSP를 풀어서 구한 해가 검은 점으로 표시된 solution이다.
GA와 CSP를 결합한 해법 기존 연구 • : 전체 search space에 대한 Subspace의 비율. Hybridization을 결정하는 파라미터로서 작용한다. 가 1이면 완전한 CSP이고, 가 0이면 완전한 stochastic search가 된다. A. chromosome • = |Gi|/|D(Xi)| 즉 gene Gi의 cardinality / 변수 Xi의 도메인 크기 • 각 변수의 초기 도메인 사이즈가 완전히 다르다고 하면 각 변수에 대해서 서로 다른 값을 가지도록 하는 것이 유용하다. • 제 1세대의 개체를 생성할 때 각 변수의 sub-domain size |Gi|=max{1, round(|D(Xi)|)} B. Valuation • 개체의 fitness는 해당하는 sub-domain에 제한되어 있는 CSP를 푸는 동안에 계산한다. • Chromosome G1G2…Gn에 의해서 정의된 개체에 대해서 XiGi라는 제약식을 첨가하고, standard CSP를 푼다. 해가 발견되면 objective function을 이용해서 fitness를 계산하고, 해를 발견하지 못하면 즉 G1G2…Gn이 해를 가지고 있지 못하면 개체를 버리거나 low fitness를 부여한다.
GA와 CSP를 결합한 해법 기존 연구 C. Classic operators D. Set oriented operators
GA와 CSP를 결합한 해법 기존 연구 • 실험 • VRP문제 • 10 engineer, 30 task 문제에 대하여 popsize=60, generation=50, crossover ratio=0.4, mutation ratio=0.2를 사용한 결과 가 0.2정도에서 best performance를 보였고, 가 0.4보다 커지면 CSP가 solution을 optimize하지 않기 때문에 상대적으로 낮은 효율을 보였다. • B&B와 같은 문제를 풀어본 결과 훨씬 성능이 뛰어났다.
잡샵 일정계획 해법 해법이 가져야할 특성 • 문제의 특성 • Multiprocessor job shop은 아직 많이 시도하지 않은 영역. • assignment 와 sequencing decision을 포함하고 있는 문제 • Lawrence(1984)의 15(jobs)10(machines) 문제는 현재 가용한 branch and bound로 풀리지 않고 있다. 그에 반해 local search는 near-optimal solution을 구하는 데 성공하고 있다. • 해법의 특성 1. 예를 들어 problem size를 가지고 run time을 예측할 수 있다면 얼마나 좋을까? 2. 되도록 속도는 다른 어떤 해법에 비해서 빨라야 한다. 3. 어떤 수리적이고 정량적인 특성들을 증명할 수 있으면 좋겠다. 4. SBP, 메타 휴리스틱, CSP 등과 완전히 비교 가능해야 한다. 5. 구현이 용이해야 한다. 6. 되도록 현실에서 발생할 수 있는 문제의 다양한 제약들을 반영할 수 있도록 유연해야 한다.
잡샵 일정계획 해법 해법이 가져야할 특성 • 연구 과제 • 이상과 같은 특성을 가지는 해법 개발 • assignment problem은 GA를 이용하고, sequencing과 timing은 CSP를 이용하면? • infeasible solution도 생성하고 repairing CSP method 사용 누군가 아이디어를?
참고 문헌 [1] Nicolas Barnier and Pascal Brisset, Optimization by hybridization of a genetic algorithm with constraint satisfaction techniques, IEEE World Congress on Computational Intelligence, The 1998 IEEE International Conference on Evolutionary Computation Proceedings, pp. 645-649, 1998. [2] Sally C. Brailsford, Chris N. Potts and Barbara M. Smith, Constraint satisfaction problems: Algorithms and applications, European Journal of Operational Research, Vol. 119, pp. 557-581, 1999. [3] M. A. B. Candido and S. K. Khator and R. M. Barcia, A genetic algorithm based procedure for more realistic job shop scheduling problems, International Journal of Production Research, Vol. 36, No. 12, pp. 3437-3457, 1998 [4] Amedeo Cesta, Angelo Oddi and Stephen F. Smith, Iterative Flattening: A Scalable Method for Solving Multi-Capacity Scheduling Problems, Proceedings of National Conference on Artificial Intelligence (AAAI-00), Austin, TX, July, 2000. [5] Amedeo Cesta, Angelo Oddi and Stephen F. Smith, Profile-Based Algorithms to Solve Multiple Capacitated Metric Scheduling Problems, Proceedings 4th International Conference on Artificial Intelligence Planning Systems, Pittsburgh, PA, June, 1998. [6] Cheng-Chung Cheng and Stephen F. Smith, Applying constraint satisfaction techniques to job shop scheduling, Annals of Operations Research, Vol. 70, pp. 327-357, 1997. [7] Safaai Deris, Sigeru Omatu, Hiroshi Ohta and Puteh Saad, Incorporating constraint propagation in genetic algorithm for university timetable planning, Engineering Applications of Artificial Intelligence Vol. 12, pp. 241-253, 1999. [8] Gerry Dozier, James Bowen and Abdollah Homaifar, Solving Constraint Satisfaction Problems Using Hybrid Evolutionary Search, IEEE Transactions on Evolutionary Computation, Vol. 2, No. 1, pp. 23-33, 1998.
참고 문헌 [9] Agoston Endre Eiben, Robert Hinterding, and Zbigniew Michalewicz, Parameter Control in Evolutionary Algorithms, IEEE Transactions on Evolutionary Computation, Vol. 3, No. 2, pp. 124-141, 1999. [10] Philip Ivens and Marc Lambrecht, Extending the shifting bottleneck procedure to real-life applications, European Journal of Operational Research, Vol. 90, pp. 252-268, 1996. [11] Ryszard Kowalczyk, Using Constraint Satisfaction in Genetic Algorithms, Proc. 1996 Australian New Zealand Conf. on Intelligent Information Systems, 18-20 November, 1996. [12] Ryszard Kowalczyk, Constraint Consistent Genetic Algorithms, in Proc. 1997 IEEE International Conference of Evolutionary Computation, pp. 343-348, Apr. 1997. [13] W.P.M. Nuijten and E.H.L. Aarts, A Computational Study of Constraint Satisfaction for Multiple Capacitated Job Shop Scheduling, European Journal of Operational Research, Vol. 90 , pp.269-284, 1996. [14] Michael Pinedo and Marcos Singer, A Shifting Bottleneck Heuristic for Minimizing the Total Weighted Tardiness in a Job Shop, Naval Research Logistics, Vol. 46, pp. 1-17, 1999. [15] R.J.M. Vaessens, E.H.L. Aarts and J.K. Lenstra, Job Shop Scheduling by Local Search, INFORMS Journal of Computing, Vol. 8, No. 3, pp. 302-317, 1996.