Automating a manual production scheduling process at a pharmaceutical company Eyjólfur Ingi Ásgeirsson, Guðrún Sjöfn Axelsdottir and Hlynur Stefánsson School of Science and Engineering Reykjavik University Reykjavik, Iceland Email:
[email protected],
[email protected],
[email protected]
Abstract—We look at the automation of a manual production scheduling process at a pharmaceutical company, by using mixed integer optimization and a simple greedy algorithm. The pharmaceutical company is a make to order producer with highly utilized resources and flexible production processes. We present the algorithms and analyze their performance using real data and compare the results with the manual approach currently used at the company. The results indicate that automated scheduling approaches can be used to improve the production scheduling process, while at the same time reducing the valuable time the human schedulers spend on preparing the production schedules.
I. I NTRODUCTION The pharmaceutical industry relies on providing a fast response to their customer and being flexible to react quickly to changes in demand. Flexible multi-product production processes have become commonly used as they help companies to respond to changing customer demand and increase plant utilization, but the greater complexity of these processes together with the altered market conditions have rendered the relatively simple planning and scheduling techniques previously used inadequate. It is thus important to improve production schedules in order to strive for higher utilization of resources, increased flexibility and reduced response time at the same time as cutting down the cost of production. There is an extensive body of literature dealing with scheduling problems in the production industry [1], [7], [2], [8], [10], [11], [14], [16]. We will use mixed integer optimization and a simple greedy algorithm to automate a manual planning process in a pharmaceutical company. The company is a make to order producer with highly utilized flexible flowshop production resources. This study is inspired by a study by Stefansson, Jensson and Shah [17], where the same problem is studied. They introduced an innovative approach to integrate planning and scheduling tasks into one model. However, the solution had stability issues since the production plans were ever changing and the solution time of the problem was too long to be practical for the pharmaceutical company. Our goal is to find a realistic, quick and practical solution for scheduling customer orders within a framework given by long-term plans. Mixed Integer Linear Programming (MILP) is the most widely explored method for scheduling problems because of its flexibility which makes it useful for modelling and
solving real world problems [5]. A large number of scheduling models have been proposed specifically for various production applications (see e.g. [4], [8], [9], [12], [13], [15], [3]). Unlike the general OR scheduling models, the models for the process industries such as the pharmaceutical industries tend to require the use of material flow equations and network topologies that are quite different from the more traditional serial and multistage systems. Furthermore, the process industries address both batch and continuous processes and may require the use of detailed nonlinear process models [6]. II. P ROBLEM
DESCRIPTION
Our study is based on a real world problem from a pharmaceutical company and we focus on single plant production planning and scheduling for a secondary production facility with order-driven multistage flowshop production, as shown in Figure 1. The plant consists of a large number of multi-purpose production equipment items at each production stage, operated in batch mode. The plant uses campaign production with over 40 product families and over 1000 product variations, where campaigns represent time windows on each machine that are reserved for specific product families. An illustration of campaigns and their use in production scheduling is shown in Figure 2. The production plant mainly produces to fulfill customer orders with specific due dates (make to order production) but also produces internal orders for their own inventory (make to stock production). In each week it receives new customer orders with a requested delivery date. Each order needs to be scheduled and feedback given to the customer with a confirmed delivery date. The promised lead-time of the production is at maximum 3 months from receiving customer orders to the delivery of the final products. Sales forecasts are created in advance to obtain an overview of accumulated sales of each product in order to reflect the expected customer orders. Two kinds of demand can thus be distinguished, i.e. firm customer orders and sales forecasts. There is a high level of uncertainty involved in the sales forecasts. The overall goal of the pharmaceutical company is to schedule customer orders within the campaign production. The customers request certain delivery dates for their orders and the plant attempts to meet those requests. The general objective is to meet the quantity and delivery date of customer orders while
Fig. 2. Illustration of the structure of campaigns and jobs at different production stages. Setup times between campaigns are included at stage s while both the setup times between campaigns and the setup times between individual jobs within each campaign are included at stage s + 1. Fig. 1. Illustration of the stages and the machines at the production facility. The production stages are granulation, compression, coating and packing, and the production on each stage requires raw materials and generates products for the next stage.
minimizing the unproductive production time and satisfying any production constraints. The campaign plans are based on sales forecasts that are created with combination of statistical forecasting techniques and collaborative planning methods. The sales forecasts are uncertain and as a result the campaign plan may not be suitable for the received orders and in some cases not all orders can be produced. Mathematically P the problem can be written as a variation of (F F cRm|sijk | i wi Ti ), i.e. minimizing the total tardiness in a flexible flow shop with unrelated machines in parallel and sequence depended setup times. To optimize production in a pharmaceutical plant, several factors must be taken into account. Each production stage is operated in batch mode with a number of multi-purpose production equipment at each stage. Due to large sequence set-up and cleaning times required to switch between batches containing products from different product families the plant produces products in large lots called campaigns. A campaign is an ordered set of batches containing products from the same product family produced consecutively by the same machine. Switching between batches within the same product family significantly reduces set up and clean-up time, which in turn lowers production cost of the campaign. The campaigns are part of the medium-term planning activities in the pharmaceutical company and they provide a framework for the scheduling activities to work within. In this study we consider the campaigns to be fixed and focus on scheduling the jobs within the campaigns. Every job must be scheduled within several campaigns, one campaign for each stage of the production and in the correct order. Care must be taken to make sure that the jobs assigned to each campaign are in the right stage, of the right type and that the job starts after its predecessor has started.
The current solution method requires several employees to manually insert every job into the campaigns. The scheduling is done once per week where the customer orders are scheduled within the predefined campaigns. The company uses a graphical interface which allows the schedulers to drag and drop the orders/jobs into the campaigns. The jobs can only be allocated to the campaigns of the correct type, with enough capacity and the correct order of production stages must be respected. If not all orders can be scheduled within the campaigns due to insufficient capacity, then the orders are moved to a list of unscheduled orders. The scheduling experts can slightly increase the capacity of the campaigns when needed to fit an oversized order in a campaign. The unscheduled orders wait until the campaign plan has been revised and are usually rescheduled the week after. III. M IXED I NTEGER O PTIMIZATION M ODEL We formulate the problem of assigning jobs into campaigns as a mixed integer optimization model. The optimization model only assigns jobs to campaigns while ensuring that the campaign capacity is sufficient for all assigned jobs. The model does not determine the actual order in which the jobs should be processed within the campaign. This is in accordance with the actual process in use at the plant, the schedulers only assign jobs to campaigns and leave the problem of determining in which order the jobs in each campaign should be processed to the floor managers, since the plant is designed so that the order in which the jobs are processed within a campaign needs to be flexible. Since the jobs within a campaign are of the same product family, the sequence dependent setup times within a campaign are small, so the actual order in which the jobs within a campaign are processed is not crucial. The objective of the optimization problem is to minimize the total tardiness of the orders while also maximizing the number of orders that are scheduled. Each customer order is composed of a number of jobs, one for each stage. The set of jobs is J and the set of predefined campaigns is C. A subset of J, Jlast
is the set of jobs without any successor, i.e. the last job of every order. The binary variable xjc is equal to 1 if job j ∈ J is scheduled in campaign c ∈ C. We use a binary variable, yj , to denote whether a job was scheduled, if there were no available campaigns for job j, the variable yj is equal to 1, otherwise yj is equal to zero. Tj represents the tardiness of job j. The tardiness is usually given by Tj = max(endj − dj , 0) where endj is the completion time of job j and dj is the due date of job j. However, since we only assign jobs to campaigns, rather than specify exactly when the job should be processed, we denote the tardiness as Tj = max(ETc −dj , 0) where ETc is the end time of the campaign in which job j is scheduled. The mixed integer optimization model is: X X X min Tj + α yj + β Dc (1) j∈Jlast
s.t.
Tj ≥ X
X
j∈J
(ETc − dj )xjc
c∈C
∀j ∈ J
(2)
c∈C
∀c ∈ C
(3)
xjc = 0 ∀k, j : sj 6= sc , tj 6= tc
(4)
pjc xjc ≤ Pc + Dc
j∈J
STc′ xj ′ c′ ≤ ETc xjc + M yj (5) ′ ′ ′ ′ ′ ∀c, c ∈ C, j, j ∈ J : sj = sc , sj = sc , j ≺ j X xjc + yj = 1 ∀j (6) c∈C
yj ′ ≤ yj
∀j, j ′ ∈ J : j ′ ≺ j
xjc ∈ {0, 1} ∀j ∈ J, c ∈ C yj ∈ {0, 1} ∀j ∈ J Dc ≥ 0 ∀c ∈ C
(7) (8) (9) (10)
where STc and ETc are the start and end times of campaign c, dj is the due date of job j and pjc is the processing time of job j in campaign c. The remaining production time of campaign c is Pc and Dc is the allowed increase of campaign c. The stage of job j and campaign c is sj and sc respectively, while the type of job j and the type allowed in campaign c is tj and tc respectively. The constant M represents some large number, α is a penalty factor for jobs on the unscheduled list and β is a penalty factor for increasing the size of a campaign. The objective function consists of three components. First we minimize the tardiness of the customers’ orders. Since a typical customer order consists of multiple jobs, one for each stage, we only measure the tardiness of the last job for each order. The set Jlast is the set of jobs that do not have any successors, i.e. the set of last jobs of all the customers’ orders. The second part of the objective is to minimize the number of jobs that are not assigned to a campaign, while the third component looks at the possibility of increasing the sizes of the campaigns by a small amount. The pharmaceutical plant is usually not scheduled to full capacity, to give them some leeway to handle unforeseen changes or breakdowns. This slack gives the schedulers the opportunity to squeeze a bit more into the campaigns than the capacity allows, however this should be used as little as possible. To emulate this real
Fig. 3. Illustration of feasible and infeasible campaigns for a job and its predecessor. For an assignment of a job to some campaign c to be feasible, the job’s predecessor must be assigned to a campaign whose start time is no later than the end time of campaign c.
life feature, we allow the solution to increase the sizes of the campaigns by a small amount, but penalize its use. The constraint in Equation 2 calculates the tardiness of all jobs. Equation 3 is used to make sure that the campaigns have enough capacity to fit the jobs, while Equation 4 blocks the assignment of jobs to campaigns of incorrect type. To ensure the correct order of the jobs, we use the constraint in Equation 5. Since a single campaign can span several days, and there are often small campaigns whose allotted time is a strict subset of the allotted time for a campaign of the same type in an earlier stage, we allow a job to be assigned to a campaign if the end time of the campaign is later than the start time of the campaign in which the job’s predecessor is. Figure 3 shows an illustration of feasible and infeasible campaigns for a job and its predecessor. Equation 6 makes sure that all jobs are either assigned to a campaign or put on the list of unscheduled jobs and Equation 7 is used to make sure that we do not schedule any jobs whose predecessors are on the list of unscheduled jobs. A typical real world problem instance has around 100 orders, where each order consists of 3-4 jobs, and over 300 campaigns. The due dates of the jobs is given as a date, while the processing times of the jobs and the capacity of the campaigns is given in hours. After consulting the industry experts, the value of α was set to 1000 while β was set around 500, to ensure that the model would schedule as many orders as possible. The maximum allowable increase of campaign size, Dc , was set equal to 10% of the original campaign size. We also solved the problems by using other values for α, β and Dc , thereby shifting the balance between the number of scheduled jobs and on-time jobs, and also the impact of increasing the campaign sizes, but here we will only show the results for a single selection of these constants. When implementing the model in a real-world environment, the values for α, β and Dc should be chosen to fit the problem, or the model interface could be made more flexible by allowing the scheduling experts to determine and change the values of the constants. The mixed integer model was implemented in the MPL Modeling System 4.2k and solved by using the Gurobi 2.0.2 solver.
IV. G REEDY
ALGORITHM
The greedy algorithm runs through the jobs in a predefined order and schedules each job in the campaign with the earliest end time that is of the right type and has enough capacity to process the job. A pseudocode for the greedy algorithm is shown as Algorithm 1. The algorithm terminates once the capacity of the campaigns is exhausted or the list of unscheduled jobs has been emptied. The greedy algorithm is designed to naïvely model how the scheduling is done at the pharmaceutical company, where the jobs are scheduled one at a time and the jobs are scheduled almost without considering the requirements of the successors or other jobs. The order in which the jobs are scheduled is determined by sorting the jobs by the requested delivery date or by some other chosen measure of importance. The reason for using the greedy algorithm is to see whether the problem is nontrivial. If finding a good solution for the problem instances is easy, then the naïve greedy algorithm should give solutions of similar quality to the manual process, but on the other hand, if the problem instances are nontrivial, the solutions of the greedy algorithm are likely to be of less quality than the solutions of either the manual process or the mixed integer model. Algorithm 1 Greedy algorithm for scheduling jobs to campaigns Input: Ordered set of jobs J Input: Set of campaigns C for all j ∈ J do c∗ ← NULL start = ∞ if j has predecessor j ′ then c ← the campaign in which j ′ is scheduled end ← ETc else end ← 0 end if for all c ∈ C do if sj = sc and tj = tc and STc > end and STc < start and Pc ≥ pjc then c∗ ← c start ← STc end if end for if start < ∞ then Schedule job j in campaign c∗ else Set job j as unscheduled. end if end for Algorithm 1 uses a subset of the indices and variables from the mixed integer optimization model in Section III. The variables sj and sc represent the stage of job j and campaign c, tj and tc represent the type of job j and campaign c and STc is the start time of campaign c. ETc is the end time of
campaign c, Pc is the remaining production time in campaign c and pjc is the processing time of job j in campaign c. We assume that if a job is on the list of unscheduled jobs, its end time, ETc is equal to infinity. Since even the simplified problem ofPminimizing the weighted tardiness on a single machine (1|| Tj ) is strongly NP-hard, we decided to base the greedy algorithm on simple priority rules. The priority rule we used in our solutions is the earliest-due-date first rule (EDD). By prioritizing the jobs according to EDD, we also made sure that a predecessor of a job would always be scheduled before its successor, which is vital since if a job cannot be assigned to a campaign then its successor should also be on the list of unscheduled jobs. V. DATA We collected actual data from the pharmaceutical company that provided the production scheduling problem. Data for three problem instances was collected, before and after the manual planning process was executed at the plant. Each problem instance includes information on unscheduled orders (product types, quantities and due dates) and information on the campaigns (start time, end time, available production capacity, product type). The problem instances also include information on the status after the manual planning process has been executed, which enables us to compare the automated solutions to the solutions from the manual scheduling process. The list of unscheduled orders contained on average 106 orders and the number of campaigns to choose from was in all cases over 300. In the end, we had results and problem instances for three weeks, with values before and after the manual scheduling process. Even though the optimization focuses on minimizing the total tardiness of the customers’ orders and the number of orders that have unscheduled jobs, we also look also at other measures, such as the average tardiness of scheduled orders and the number of delayed orders. Table I shows the results for manual scheduling process on the three problem instances. P The total tardiness in Table I is measured as j∈Jlast Tj , i.e. only the tardiness of the last job of each customer order. The average tardiness is measured as P j∈Jlast Tj #Scheduled Orders
where #Scheduled Orders is the sum of the number of orders that are on time and the number of delayed orders. The same measures are used in Tables II and III. Both the total tardiness and the average tardiness are measured in days. The first problem instance is difficult to use in direct comparisons since the scheduling experts created additional campaigns during the scheduling process, due to exceptional circumstances, and these new campaigns were not available to the mixed integer optimization model or the greedy algorithm. The problem instance is however useful for comparing the results of the two automated methods.
TABLE I R ESULTS FOR THE MANUAL SCHEDULING PROCESS . Problem instance
Total tardiness
Average tardiness
#Orders on time
#Delayed orders
#Unscheduled orders
Instance 1
437
7.8
19
37
29
Instance 2
1471
30.6
15
33
50
Instance 3
426
6.4
16
51
67
VI. R ESULTS To see how the two solution approaches compare against the manual scheduling process in use today, we will look at the running times of the algorithms, total and average tardiness and the number of orders that are on time, delayed or unscheduled. The results obtained with both the mixed integer optimization model and the greedy algorithm have been presented to the planning experts in the pharmaceutical plant from which the test cases were obtained. Their impression was that the results are more or less in accordance with the operational environment and the results respect the required operational constraints. The planning experts also confirmed that the results seemed sensible in terms of the quality of the plans. A. Running time There are four planning experts responsible for scheduling orders in the planning department of the factory, one for each stage of the planning process, and each employee spends around 8 hours per week on the scheduling process. A large portion of the time the scheduling experts use on the manual scheduling process is the tedious and repetitive task of dragging jobs into campaigns using a graphical drag-anddrop based user interface. The optimization model was solved for each of the problem instances in less than one minute on a regular laptop and the greedy algorithm runs in only a fraction of a second. It is therefore clear that the automated methods can greatly reduce the time required for scheduling customer orders. The automated methods do however not make the planning experts absolute since it is most often impossible to embed all the expert knowledge and available information into the automated methods. The automated solutions should be used as a basis whose solutions the planning experts can further improve by using an interactive graphical decision support system. B. Number of on-time and scheduled orders Figure 4 compares results on the number of scheduled orders and on-time orders for the three different methods. The optimization method outperforms the other methods for problem instances 2 and 3 while the manual scheduling process does best for problem instance 1. Problem instance 1 however is not ideal for the comparison since the pharmaceutical company added campaigns to their solution to meet increasing demand and those campaigns were not part of the data used for the automated solution methods. Problem instance 1 still provides a fully valid comparison between the mixed integer optimization model and the greedy algorithm.
The optimization model outperforms the greedy algorithm in terms of proportion of scheduled orders for all problem instances. For the three problem instances analyzed here, between 34% and 51% of the customers’ orders remain on the list of unscheduled orders after the manual scheduling process (for the mixed integer optimization model, these numbers are 42% and 47%). To schedule the remaining order the planning experts can modify the long term campaign plan by adding new campaigns, extending the duration of campaigns and changing the timing of campaigns. They can also increase the production capacity by adding overtime or adding more shifts. If the plant is already fully utilized then the only option for the company is to renegotiate with the client or even reject the order. In some cases the production of the order can also be moved to other factories belonging to the same corporation. It would be a natural extension to the optimization model proposed in this paper to add these options to the same model or to a more aggregated long-term planning model interacting with the short-term scheduling level. C. Tardiness The tardiness of orders is a good indicator for the performance of the methods and algorithms used in the production schedule. Figure 5 shows the total tardiness compared for the three different solution methods. The best results in terms of total tardiness are obtained with the manual planning method for problem instances 1 and 3 but with the optimization model for problem instance 2. It is however difficult to use the total tardiness to compare the performance of the methods as the methods schedule different number of orders and the more orders they add to the plan the more likely the schedule will have a higher total tardiness. The effect of the number of scheduled orders on the total tardiness is particularly obvious for problem instance 3 where the greedy algorithm has considerable less tardiness than the optimization method, due to the fact that the optimization schedules 72 orders while the greedy algorithm schedules only 56 orders. To try to compensate for this effect we also look at the average tardiness for the scheduled orders as can be seen in Figure 6. When the average tardiness is used for comparison the optimization method outperforms the greedy algorithm for all problem instances and the manual method for problem instance 2. The manual method still obtains the best results for test cases 1 and 3. Since we are essentially working with a multi-criteria optimization problem, we could tune the parameter α, the penalty factor for having an order on the unassigned orders list, in the optimization model, to decrease
TABLE II R ESULTS FOR THE MIXED INTEGER OPTIMIZATION MODEL . Problem instance
Total tardiness
Average tardiness
#Orders on time
#Delayed orders
#Unscheduled orders
Instance 1
471
9.6
18
31
36
Instance 2
1272
24.5
17
35
46
Instance 3
561
7.8
17
55
62
TABLE III R ESULTS FOR THE GREEDY ALGORITHM . Problem instance
Total tardiness
Average tardiness
#Orders on time
#Delayed orders
#Unscheduled orders
Instance 1
529
11.5
17
29
39
Instance 2
1378
33.6
17
24
57
Instance 3
471
8.4
14
42
78
80
70
60
Manual scheduling − on time orders MIP model − on time orders Greedy alg. − on time orders Manual scheduling − delayed orders MIP model − delayed orders Greedy alg. delayed orders
#Orders
50
40
30
20
10
0
Manual MIP Greedy Problem instance 1
Manual MIP Greedy Problem instance 2
Manual MIP Greedy Problem instance 3
Fig. 4. Number of on-time and delayed orders for the three problem instances. The results are given by the actual manual scheduling process, the mixed integer optimization model and the greedy algorithm. Note that the manual scheduling process uses additional campaigns for problem instance 1.
the number of unscheduled orders, which would however increase the tardiness in the schedule.
1600 1400
Total tardiness
1200
Manual scheduling MIP model Greedy alg.
D. Early completion of on-time orders
1000 800 600 400 200 0
Manual MIP Greedy Problem instance 1
Manual MIP Greedy Problem instance 2
Manual MIP Greedy Problem instance 3
Fig. 5. The total tardiness for the three problem instances. The results are given by the actual manual scheduling process, the mixed integer optimization model and the greedy algorithm. Note that the manual scheduling process uses additional campaigns for problem instance 1.
The overall goal of the scheduling process at the pharmaceutical plant is to schedule all orders so that the completion time of the orders is before the requested delivery date, the due date, of the order. There is however a secondary objective related to the due dates of the orders, which is not included in the optimization model but is used by the scheduling experts as a measure of the quality of a schedule. If an order is completed too early, long before its due date, then the production plant might need to keep the order in inventory until the actual due date. Both the inventory cost and possible effect on the expiration dates of the products indicate that an ideal schedule should complete each order just before its due date. Therefore, it is interesting to look at the average days between the due
35 Manual scheduling MIP model Greedy alg.
Average tardiness
30 25 20 15 10 5 0
Manual MIP Greedy Problem instance 1
Manual MIP Greedy Problem instance 2
Manual MIP Greedy Problem instance 3
Fig. 6. The average tardiness for the three problem instances. The results are given by the actual manual scheduling process, the mixed integer optimization model and the greedy algorithm. Note that the manual scheduling process uses additional campaigns for problem instance 1.
45 Manual scheduling MIP model Greedy alg.
40 35
Days
30 25 20 15 10 5 0
Manual MIP Greedy Problem instance 1
Manual MIP Greedy Problem instance 2
Manual MIP Greedy Problem instance 3
Fig. 7. The average number of days between the completion time of an ontime order and its due date for the three problem instances. The results are given by the actual manual scheduling process, the mixed integer optimization model and the greedy algorithm. Note that the manual scheduling process uses additional campaigns for problem instance 1.
date of on-time orders and the actual completion times in the schedule, or Hj = max(dj − ETc , 0) where ETc is the end time of the campaign in which job j is scheduled. Figure 7 show the average number of days between the completion times and the due dates of on-time orders for the three problem instances and the three solution methods. When we look at the average number of days between the completion time of an order and its due date, we see that the manual process dominates the automated methods, which is not surprising since the automated methods do not consider the time between the completion and the due date once the order is scheduled on-time. It is however interesting to see that this measure is indeed a feature of the manual scheduling process and should be included in some form in the automated procedures to further emulate and improve the real life process. VII. C ONCLUSION We proposed a multi-criteria optimization model and a simple greedy algorithm to automate a manual production scheduling process at a make to order pharmaceutical plant
with highly utilized flexible flowshop production resources. By using three real problem instances, we compared the two proposed methods with the results of the manual scheduling process in use at the production plant. The results show that the automated scheduling approaches can be used to efficiently solve the scheduling problem. The simple greedy algorithm is extremely fast, but the quality of the solutions is not as good as the solutions created by the manual process, which indicates that the problem instances are nontrivial and naïve solution methods are unlikely to get high quality solutions. The mixed integer optimization model however generates solutions that are at least of similar quality and often better than the manually generated solutions. When we compare the results of the manual process and the mixed integer optimization model, we see that the optimization model is superior in terms of all primary objectives over all comparable problem instances. It is only in a secondary objective, which was not formulated into the optimization model, that the manual process had significantly better results. The secondary objective could however easily be included in the optimization model. The mixed integer model solves the problem in less than a minute, which is a significant reduction in labor hours spent by experts on preparing the production schedules. The automated methods do however not make the planning experts obsolete since it is difficult to embed all the expert knowledge and available information into the automated methods. A natural extension to the work in this paper, in particularly to the mixed integer optimization model, is to add a campaign planning functions and thereby simultaneously consider both the more aggregated long-term planning and the short-term scheduling, as the two are very tightly connected. By combining the long-term planning and short-term scheduling into a single model, we could decrease the total time required for planning and scheduling, and generate improved plans and schedules, which are of vital importance for the pharmaceutical industry. ACKNOWLEDGMENT The authors would like to thank the pharmaceutical company for providing detailed problem descriptions, data and feedback on the solutions generated by the automated methods. R EFERENCES [1] Amin-Naseri, M. R. and M. A. Beheshti-Nia. (2009). Hybrid flow shop scheduling with parallel batching. International Journal of Production Economics 117(1):185–196. [2] Chung, T. P., C. J. Liao and L. H. Su. (2010). Scheduling on identical machines with batch arrivals. International Journal of Production Economics 123(1):179–186. [3] Engell, S., A. Markert, G. Sand, R. Schultz and C. Schutz. (2001) Online scheduling of multiproduct batch plants under uncertainty. Online Optimization of Large Scale Systems, eds. M. Grötschel, S.O. Krumke and J. Rambau. Springer-Verlag Berlin. [4] Ferrer, J. C., A. Mac Cawley, S. Maturana, S. Toloza and J. Vera. (2008). An optimization approach for scheduling wine grape harvest operations. International Journal of Production Economics 112(2):985–999. [5] Floudas, C. A. and X. X. Lin. (2005). Mixed integer linear programming in process scheduling: Modeling, algorithms, and applications. Annals of Operations Research 139(1):131–162.
[6] Grossmann, I. (2005). Enterprise-wide optimization: A new frontier in process systems engineering. Aiche Journal 51(7):1846–1857. [7] Grossmann, I., M. Erdirik-Dogan and R. Karuppiah. (2008). Overview of planning and scheduling for enterprise-wide optimization of process industries. At-Automatisierungstechnik 56(2):64–79. [8] Huang, R. H. (2010). Multi-objective job-shop scheduling with lotsplitting production. International Journal of Production Economics 124(1):206–213. [9] Kovacs, A., K. N. Brown and S. A. Tarim. (2009). An efficient MIP model for the capacitated lot-sizing and scheduling problem with sequence-dependent setups. International Journal of Production Economics 118(1):282–291. [10] Lei, D. M. (2009). Multi-objective production scheduling: a survey. International Journal of Advanced Manufacturing Technology 43(910):926-938. [11] Leung, J. Y. T. and C. L. Li. (2008). Scheduling with processing set restrictions: A survey. International Journal of Production Economics 116(2):251–262. [12] Neidigh, R. O. and T. P. Harrison. (2010). Optimising lot sizing and order scheduling with non-linear production rates. International Journal of Production Research 48(8):2279–2295. [13] Ozguven, C., L. Ozbakir and Y. Yavuz. (2010). Mathematical models for job-shop scheduling problems with routing and process plan flexibility. Applied Mathematical Modelling 34(6):1539–1548. [14] Oguz, C., F. S. Salmon and Z. B. Yalcin. (2010). Order acceptance and scheduling decisions in make-to-order systems. International Journal of Production Economics 125(1):200-211. [15] Rehman, S. U. and M. W. A. Asad. (2010). A mixed-integer linear programming model for short-range production scheduling of cement quarry operations. Asia-Pacific Journal of Operational Research 27(3):315–333. [16] Ribas, I., R. Leisten and J. M. Framinan. (2010). Review and classification of hybrid flow shop scheduling problems from a production system and a solutions procedure perspective. Computers & Operations Research 37(8):1439–1454. [17] Stefansson, H., Jensson, P. and Shah, N. (2009). A heuristical procedure for reducing the risk of delayed deliveries in make to order production. Journal of Production Planning and Control , Vol. 20, No. 4., pp. 332–342.