IEEE/CAA Journal of Automatica Sinica  2014, Vol.1 Issue (2): 113-126   PDF    
Modeling and Hybrid Optimization of Batching Planning System for Steelmaking-continuous Casting Process
Tianmu Ma, Xiaochuan Luo , Tianyou Chai    
1. State Key Laboratory of Synthetical Automation for Process Industries, Northeastern University, Shenyang 110819, China;
2. Research Center of Automation, Northeastern University, Shenyang 110819, China
Abstract: This paper investigates the batching problem for steelmaking and continuous casting production in an iron and steel enterprise. The tasks of this problem are to decide how to select slabs and determine their width, how to group the selected slabs into charges and then group the charges into tundishes, how to determine the sequence of charges in each tundish, and how to group tundishes into casts and determine the sequence of tundishes in each cast. The effective decision on the batching problem can help balance the requirements of the sequential process after steelmaking and continuous casting, reduce production cost, and improve slab quality. We first give the mathematical description of the original problem. Based on the analysis of width, we present a decomposition strategy to divide the model into three sub-models, i.e., charge design model, tundish design model and cast design model, while adding relevant objectives and constraints. According to the characteristics of each sub-model, we present hybrid optimization algorithms separately. Computational experiments show the strategy, models and algorithms can generate satisfactory solutions.
Key words: Steelmaking     continuous casting     batching planning     hybrid optimization    
Ⅰ. INTRODUCTION

The integrated iron and steel enterprise is a typical process industry. The whole production process in large-scale steel enterprise includes three stages,i.e., ironmaking,steelmaking and rolling (Fig.1). Steelmaking stage is the key process,as it is an important connection between ironmaking and rolling. This stage has the characteristic of continuous high temperature,and its capacity in general is lower than the other two. In real production,steelmaking throughput should be fully utilized to produce more slabs for satisfying the capacity requirements of downstream production lines in order to finish more work orders. Therefore,effective planning and scheduling in steelmaking stage are vital to improve the performance of the whole production system,including profit increase,production cost savings,material and energy consumption reduction,and customer satisfaction[1, 2].

Download:
Fig. 1. Production process from ironmaking to rolling.

The planning and scheduling in steelmaking production mainly include two types of decisions,i.e.,batching decision and scheduling decision[3]. In this paper,we focus our study on batching decision,and we call it as steelmaking batching planning (SBP). The tasks of SBP are to make the decisions as follows.

1) How to select slabs and determine their width from the slab set given by plant?

2) How to group the selected slabs into charges,then group the charges into tundishes,and determine the sequence of charges in each tundish?

3) How to group the tundishes into cast,and determine the sequence of tundishes in each cast?

At present,SBP is mainly made by manual. However,it is hard to make a good SBP by manual,due to differences between planners' experience,large quantity of production data,and multiple process constraints. Because of the hierarchy of SBP,we adopt the decomposition strategy to divide the whole problem into three sub-problems,i.e.,charge design,tundish design and cast design. For each sub-problem,we build a mathematical model. The selection of slab width has an important influence on the quality of SBP. For keeping the searching space of the width as large as possible, we transform the width interval into a numerical value in charge design and tundish design,and determine the width in cast design. We present iterated neighborhood search (INS) algorithm combined with variable neighborhood search (VNS) algorithm to solve charge design problem and tundish design problem. For cast design problem,we applied the two-layer ant colony algorithm.

The rest of the paper is organized as follows. In Section Ⅱ, related works are reviewed. In Section Ⅲ,we briefly describe the production process and define SBP. In Section Ⅳ,we give the mathematical description of SBP and problem model. Based on the analysis of width,we give the decomposition strategy to divide the system into three sub-models by adding some objectives and constraints in Section Ⅴ. In Section Ⅵ,according to the characteristics of each sub-model,hybrid optimization algorithms are presented. Section Ⅶ shows computational experiments using actual data. Finally,we draw the conclusions in Section Ⅷ.

Ⅱ. RELATED WORKS

Various research issues are involved in planning and scheduling of iron and steel production process from slab design to finishing line. Zhu et al.[4] presented a novel optimization model considering the limitation of traditional mathematical model for production planning,and combined with a simulation model to evaluate and adjust the production plan. Dawande et al.[5] presented a slab design problem in a large steel plant. They took three constraints into account,and developed a three-step heuristic solution based on matching and bin packing. Dash et al.[6] solved the production design problem for rectangular plate products in steel plant. They decomposed this problem into sub-problems that corresponded to the production stages,and developed a solution approach which combined mathematical programming models with search techniques from artificial intelligence. For example,the design of mother plates consisted of a two-dimensional packing problem,and applied column generation method to solve the problem. Lee et al.[7] defined a scheduling problem for the continuous slab caster,which was regarded as a variant of the clique partitioning problem defined on interval graph,and developed an optimal algorithm. Chang et al.[8] studied the lot planning problem to group charges into casts for a continuous slab caster. Tang and Liu[9] presented a deterministic mixed integer programming model for scheduling production order of some critical and bottleneck operations,and developed a decomposition solution methodology based on a synergistic combination of Lagrangian relaxation,linear programming and heuristic. Tang and Jiang[10] investigated the charge batching problem in which the production orders were transformed into various charge batches,presented a mixed integer programming model,and proposed two kinds of Lagrangian relaxation to solve the model. Tang and Luo[11] formulated a quadratic programming model for charge grouping problem,and developed an iterated local search (ILS) algorithm to solve it. Tang and Wang[3] integrated slab grouping model and charge grouping model to solve batching problem in steel plant. Dong et al.[12] aimed at charge planning problem,proposed a multi-objective model,and designed two meta-heuristics based on VNS to solve the model. Given charges and casts,scheduler could assign them to equipment and build production timetable. Many people researched in this field. Tang et al.[13] presented a mathematical model based on just-in-time idea,for solving machine conflicts in steelmaking-continuous caster production scheduling after charges were assigned to continuous caster,Linz-Donawitz (LD) converter and Ruhrstahl-Hereaeus (RH) converter. Pacciarelli and Pranzo[14] modeled the steelmaking-continuous casting production using alternative graph and solved it by beam search. Roy et al.[15] developed a knowledge model,which described the reasoning process in mismanaging schedule disturbance in steelmaking. Missbauer et al.[16] described the model, algorithm and implementation results of a computerized scheduling system for the steelmaking-continuous casting process of a steel plant. More details of planning and scheduling in steelmaking-continuous casting can be found in [17] and [18]. As mentioned above,we can see batching planning is the process between designing for slab and scheduling for steelmaking-continuous caster. Research in batching planning mainly focuses on a single model,but not on a batching planning system. However,the single model cannot address all the problems in batching planning for steelmaking-continuous casting.

Ⅲ. PRODUCTION PROCESS

We now describe the specific steel production process modeled in this paper. The goal of steel production process is to satisfy work orders for slabs,productive power and slabs' requirements of downstream production lines. Work orders specify the properties of each slab (for example,width interval,length interval, thickness,weight,steel grade,priority and delivery date) and the total number of slabs. Fig.1 shows the production process from ironmaking stage to rolling stage in an iron and steel enterprise in China.

Molten iron from the basic oxygen furnace in ironing stage is refined by LD converter in batches of about 250 to 300 tons,and then forms molten steel. A batch is called a charge. The metallurgical ingredients in one change are the same. These batches of molten steel could be refined by RH refining furnace, or directly poured to tundish which is a component of continuous caster. Every tundish has a work life which varies with metallurgical compositions of molten steel. When the utilization time of a tundish reaches its work life,the tundish must be replaced by a new one. Tundish replacement results in productivity loss and high maintenance cost. Then molten steel is cast to form solid steel pieces,called slabs with various metallurgical compositions and sizes. Molten steel from a sequence of multiple charges is called a cast which is a group of charges to be cast in the continuous caster between turnarounds.

The slabs produced in steelmaking stage will be processed further. In hot rolling mill,a sequence of slabs are transformed to hot coils. When rolling slabs,new rolls cannot roll the slabs of high steel grade,but need some special slabs (called warm-up materials) to heat rolls by rolling them with friction. So the weight of warm-up materials must satisfy the requirement of hot rolling mill. After hot rolling mill,cold coils will be created as a cold rolling mill. Then cold coils can be processed in a lot of machines,for example,bell-type furnace and hot galvanizing machine. Each machine processes different cold coils varying with their steel grades. So slabs with various steel grades must be produced to satisfy the downstream. We call the direction in which slabs are to be processed by machines after hot rolling mill as flow direction,and call the direction in which slabs are rolling in the hot rolling mill as destination.

From the description above,we can see that steel grade is an important factor in the whole production process. Molten steel in one charge must have the same steel grade. Similar steel grade must be used in one tundish in the continuous caster. And molten steel of multiple charges must have similar steel grade to be cast in the same cast. But the machines in downstream may need different steel grades or widths. In working order,the width of slab is selected from the width interval assigned to each slab, and the selected width must guarantee contiguous caster continuously cast molten steel to slabs. Once width is changed, the changed value cannot satisfy the constraint of the continuous caster,then the process will be stopped and require more time to prepare for the next cast. Therefore,setup cost will increase. The width of each slab could be adjusted once in order to satisfy the requirement that the difference of the maximum and minimum width of the slabs in one change should be within 100 mm at most. It is the same for the slabs in one tundish. But in continuous caster,the adjustment is allowed as many times as required.

Now we can define SBP as the problem of determining the following (see Fig.2):

Download:
Fig. 2. Problem description of SBP.

1) How many slabs will be selected to produce a given work order, and which width is selected?

2) The set of charges along with the constituent selected slabs in this charge.

3) The set of tundishes,and for this tundish,its constituent charges and their sequence in this tundish.

4) The set of casts,and for this cast,its constituent tundishes and their sequence in this cast.

These must be determined while satisfying all capacity limits and targets,manufacturing constraints,and maximizing various objectives and production metrics. For example,the total number of changes must satisfy the steelmaking capacity limits,and the total weight of all selected warm-up materials must satisfy the requirement of hot rolling mill. Later,we will abstract the detailed objectives and constraints for models from real-life works.

Ⅳ. STRUCTURE OF DECOMPOSITION STRATEGY

We can hardly make decisions to confirm the four sets simultaneously,because there exist conflicts among the constraints of four sets. For example,the charge set is composed of the slab set by dividing it,and the tundish set is composed of the charge set,so the total number of ingredients in slab set can impact the other two sets. If the total number of ingredients is too large,the number of charges and the number of tundishes are also very large. When considering the width of slab set,we have similar conclusion. For reducing the impact,we adopt the decomposition strategy in Fig.3 to make batching planning. From Fig.3,we can see the whole strategy composed of three steps.

Download:
Fig. 3. Structure of decomposition strategy.

1) Charge design model (CHDM). Its function is grouping all slabs into charges while taking into account the constraints of converting furnace through a mathematical model.

2) Tundish design model (TDM). Its function is grouping the charges created by CHDM into tundishes while considering the production indices and the constraints of tundish.

3) Cast design model (CDM). Its function is grouping the tundishes into cast and confirming the width.

Next we discuss the three steps in detail.

A. The Problem Description and Formulation of CHDM

1) Problem description of CHDM: The function of CHDM is grouping slabs into charges. Each slab has the properties of steel grade,weight,interval of width, priority,delivery date,flow code,refine code and destination code. In this process,the following factors must be considered.

1) Ingredients of molten steel

Each slab has a steel grade property,which describes the ingredient of molten steel. The ingredient of slabs in one charge must be the same.

2) Volume of converter furnace

Volume of converter furnace considered in this paper is about 300 tons. The complete volume of the converter furnace must be filled with molten steed. If there are remaining volume,and no slab customer ordered can be put in,the planner should fill some special slabs into the converter furnace to make maximum volume production. These slabs are called open order slabs,not associated with any customer orders,and are kept in the warehouse. So we try our best to minimize the amount of open order slabs.

3) Width

In a charge,slab width must satisfy the following constraints.

a) Continuous caster only casts slabs according to the non-increasing order of width.

b) The difference between the maximum width and the minimum width in one charge is no more than 100 mm.

c) The width adjustment is allowed only once.

For example,if a charge includes a maximum width of 1000 mm,it can only select either slabs with 950 mm or 900 mm,but not both. In CHDM,we do not select an exact width,but consider a width interval in the model.

4) Priority

The priority of slab is represents the emergency of contract to some degree. If the slab with high priority is not grouped into a charge,the production date of the slab will be close to the delivery date of the corresponding contract. When the priority of slab is high enough,it will be produced at any cost. This situation will increase the cost of production. So the slab with higher priority should be given higher priority in production.

5) Other factors

If slabs with similar properties produced in the same charge,it should decrease the cost,for example,the cost for preparing hot rolling to move slabs in a slab yard. So minimizing the differences between the slabs in the same change can be regarded as an optimized objective. This consideration is also applicable to tundishes.

2) Dealing with width interval: If intersection of the slab width intervals in one charge is bigger, continuous caster works better. This is also applicable to grouping charges into tundishes. At present,there are two methods to deal with width interval[3, 10]. One is regarding the width interval as penalty,modeled as objective. The other is to model it as constraint. However,there are two difficulties in these methods. Firstly,when there exists an intersection,how to measure the overlap degree. For example,in Fig.4,Slab 1 and Slab 2 have the intersection interval of [1 200,1 300],Slab 3 and Slab 4 have the intersection interval of [1 150,1 300]. Obviously,the interval [1 150,1 300] is wider. Secondly,if there is no intersection,how to ensure that the difference between two width intervals satisfies the requirement of a continuous caster. For the second problem,we can use formulations (10)~(14) to overcome. For measuring the overlap degree of two width intervals,we use the method of comparing interval numbers,and transform the width interval of charge into a corresponding number[19],then use both this number and width interval in the model. The steps of transforming width interval are as follows.

Download:
Fig. 4. Description of slab width interval.

Step 1. Using (1) to do a pairwise comparison for width intervals,we denote $P({I_i} \succ {I_j})$ as ${p_{ij}}$,then build a matrix $P = {({p_{ij}})_{n \times n}}$ as

$P({I_i} \succ {I_j}) = \left\{ \begin{array}{*{20}l} \frac{1}{{1 + {{\rm e}^{w_j^L - w_i^L}}}},&L({I_i}) = L({I_j}),\\ \frac{1}{{L({I_i}) - L({I_j})}}\ln \frac{{{{\rm e}^{w_i^H - w_j^H}} + 1}}{{{{\rm e}^{w_i^L - w_j^L}} + 1}},&L({I_i}) \ne L({I_j}) .\\ \end{array} \right.$ (1)

Here,${I_i} = [w_i^L,~w_i^H]$ and ${I_j} = [w_j^L,~w_j^H]$ represent width intervals of two slabs respectively. $L({I_i}) = w_i^H - w_i^L$,and $L({I_j}) = w_j^H - w_j^L$.

Step 2. Using ${v_i} = (\sum\limits_{i = 1}^n {{p_{ij}}} + n/2 - 1)/n(n - 1)$ to calculate the vector $v = {({v_1},{v_2},\cdots,{v_n})^{\rm T}}$,so ${v_i}$ is the number corresponding to the width interval.

3) Formulation for CHDM: CHDM is similar the bin packing problem (BPP). Each slab can be seen as an item,and charge corresponds to bin. But besides the objective of minimizing the number of bins,we consider the penalty of slabs not having been grouped into charges,the cost of remaining volume of the charges and the penalty cost of the difference between slabs in one charge. In the following,CHDM is formulated as an extension of BPP.

Parameters.

$N$: the set of slabs,$N = \{ 1,2,\cdots,i,j,\cdots,n\} $.

M: the set of charges,$L = \{ 1,2,\cdots,k,l,\cdots,m\} $.

${d_i}$: the delivery date of slab $i$.

${a_i}$: the priority of slab $i$.

${sg}_i$: the steel grade of slab $i$.

${h_i}$: the flag of warm-up material of slab $i$. ${rs}_i$: the refine flag of slab $i$.

${I_i} = [w_i^L,w_i^H]$: the width interval of slab $i$. ${v_i}$: the number corresponding to the width interval ${I_i}$.

${wt}_i$: the weight of slab $i$.

${de}_i$: the destination of slab $i$.

${fd}_i$: the flow direction of slab $i$.

${f_k}$: the cost of charge k.

${le}_k$: the cost of leftover of the charge k.

${LD}_k$: the capacity of LD converter.

$\triangle {w}$: the maximum change of width.

${\theta_1}$: the utilization of the charge.

$c_{ij}^1$: the similarity coefficient of slab $i$ and slab $j$,i.e.,

$c_{ij}^1 = c_{ij}^{11} + c_{ij}^{12} + c_{ij}^{13} + c_{ij}^{14},$ (2)
$c_{ij}^{11} = {r_1} \cdot \left| {{v_i} - {v_j}} \right|,$ (3)
$c_{ij}^{12} = {r_2} \cdot \left| {{a_i} - {a_j}} \right|,$ (4)
$ c_{ij}^{13} = \begin{cases} r_3,& {fd_i = fd_j},\\ D,& \mbox{otherwise,} \end{cases} $ (5)
$c_{ij}^{14} = {r_4} \cdot \left| {{d_i} - {d_j}} \right|. $ (6)

$D$: a large positive number.

Variables.

${s_{ik}}$: binary variable,equal to 1 if slab $i$ is allocated to charge k,equal to 0,otherwise.

${t_k}$: binary variable,equal to 1 if charge k is used,equal to 0,otherwise.

The formulation of CHDM is

$\begin{array}{l} \min \sum\limits_{k = 1}^m {{f_k}} \cdot {t_k} + \sum\limits_{i = 1}^n {{a_i}} \cdot (1 - \sum\limits_{k = 1}^m {{s_{ik}}} ) + \sum\limits_{k = 1}^m {l{e_k}} \cdot r{m_k} + \\ \sum\limits_{k = 1}^m {\sum\limits_{i = 1}^{n - 1} {\sum\limits_{j = i + 1}^n {c_{ij}^1} } } \cdot {s_{ik}} \cdot {s_{jk}}, \end{array}$ (7)

s.t.

$ \sum\limits_{i = 1}^n {{wt}_i \cdot {s_{ik}}} \le {LD}_k \cdot {t_k},\forall k \in M,$ (8)
$ \sum\limits_{k = 1}^m {{s_{ik}}} \le 1,\forall i \in N,$ (9)
$ \left| {{sg}_i - {sg}_j} \right| \cdot {s_{ik}} \cdot {s_{jk}} = 0,\forall k \in M,$ (10)
$\begin{array}{l} 0 \le \left| {\min \left( {wh_i^H,wh_j^H} \right) - \max \left( {wh_i^L,wh_j^L} \right)} \right| \cdot {t_{ik}} \cdot {t_{jk}} \le \Delta w,\\ \forall i,j \in N,i \ne j,\forall k \in M, \end{array}$ (11)
$ \;\min(\alpha ,1) \le 1,$ (12)
$\alpha = \sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {\left| {\min \left( {wh_i^H,wh_j^H} \right) - \max \left( {wh_i^L,wh_j^L} \right)} \right| \cdot {t_{ik}} \cdot {t_{jk}}} } ,i \ne j,\forall k \in M,$ (13)
$ {rm}_k = \notag\\ \begin{cases} {LD}_k \cdot t_k - \sum\limits_{i=1}^n {wt}_i \cdot s_{ik},& \mbox{$\sum\limits_{i=1}^n {wt}_i \cdot s_{ik} < \theta_1 \cdot {LD}_k \cdot t_k$},\\ 0, \mbox{otherwise},\\ \end{cases} $ (14)
$ {t_k} \in \{ 0,1\},{s_{ik}} \in \{ 0,1\}. $ (15)

In objective (7),the first item represents the cost of charges,the second item represents the penalty cost of slabs not having been grouped into charge,the third item represents the cost of the leftover of the charge,and the fourth item represents the penalty cost of the difference between slabs in this change. Constraint (8) ensures that the total weight of slabs does not exceed the charge's capacity. Constraint (9) ensures that each slab can only be grouped into one charge at most. Constraint (10) is the requirement of the same ingredient in one charge. Constraints (11)~(13) ensure the slabs in the charge satisfy the width limitation. Constraint (14) is the definition of leftover of charge. Constraint (15) defines the range of the variable values.

B. The problem Description and Formulation of TDM

1) Problem description of TDM: The main function of TDM is grouping the charges into tundishes while considering the production constraints and indices. Among them,the production constraints include width constraint, ingredient constraint and service life constraint. Width constraint in TDM is the same as in CHDM.

1) Ingredient constraint

Ingredients of charges used in the same tundish should only vary in a small range. When the difference between two ingredients is bigger than a certain range,the continuous caster cannot go on working,and spends more time on preparing the next production. If two kinds of molten steel with different ingredients cast by continuous caster,a special slab will appear,called joint slab (slab b in Fig.5),which is not directly used in production.

Download:
Fig. 5. Description of a joint slab.

2) The service life of tundish

The tundish is used to pour molten steel into the continuous caster,which has a service life varying with the ingredients of charge. Once a tundish is utilized,no matter whether it reaches the end of its service life,some repair operations are imposed on it,and thus require higher cost. So the less its remaining service life is,the better the tundish is utilized.

Besides the constraints mentioned above,TDM considers the requirements of processes capability. Under the condition of normal production in all processes,each machine in all process has a productive power. Downstream needs intermediate products generated by upstream. If the quantity of products is not enough to keep downstream working,the rhythm of the entire production line will be in disorder. Even if some bottleneck processes (for example,continuous caster) do not play the most important role, they will also affect the entire production line. So some objectives or constraints must be satisfied,including that

1) The total number of charges should satisfy the interval of charges given by plant.

2) The total number of RH-refining charges should satisfy the interval of RH-refining charges given by plant.

3) The total weight of warm-up materials can satisfy the interval given by plant.

4) The total weight of each flow direction should satisfy the interval given by plant.

2) Formulation of TDM: Parameters.

M: the set of charges,$L = \{ 1,2,\cdots,k,l,\cdots,m\} $.

E: the set of tundishes,$E = \{ 1,2,\cdots,p,q,\cdots,e\} $.

F: the set of flows,$F = \{ 1,2,\cdots,s,\cdots,f\} $.

${I_k} = [{lw}_k^L,{lw}_k^H]$: width interval of charge k.

$\triangle w$: the maximum change of width.

${v_k}$: the number corresponding to the width interval ${I_k}$, calculated using the method in Section IV-A-2.

${ lsg}_k$: the steel grade of charge k.

${ rh}_k$: the RH-refining flag of charge k.

${ ht}_k$: the total weight of warm-up materials in charge k.

${ fl}_{ks}$: the total weight of flow $s$ in charge k.

${ ft}_p$: the cost of tundish $p$.

${lt}_p$: the cost of the leftover of tundish $p$.

${tl}_p$: the service life of tundish $p$.

${\theta_2}$: the utilization of tundish.

${CH}^G$: the required target number of charges.

${CH}^U$: the required upper bound of the number of charges.

${CH}^L$: the required lower bound of the number of charges.

${RH}^G$: the required target number of RH-refining charges.

${RH}^U$: the required upper bound of the number of RH-refining charges.

${RH}^L$: the required lower bound of the number of RH-refining charges.

${H^G}$: the target weight of all warm-up materials.

${H^U}$: the upper bound of weight for all warm-up materials.

${H^L}$: the lower bound of weight for all warm-up materials.

$F_s^G$: the target weight for flow direction l.

$F_s^U$: the upper bound of weight for flow direction l.

$F_s^L$: the lower bound of weight for flow direction l.

$c_{kl}^2$: the similarity coefficient of charge k and charge $l$,i.e.,

$c_{kl}^2 = c_{kl}^{21} + c_{kl}^{22},$ (16)
$c_{kl}^{21} = \begin{cases} r_5,& \mbox{if ${lsg}_k = {lsg}_l$},\\ r_6,& \mbox{if ${lsg}_k \ne {lsg}_l$,${tsg}_k = {tsg}_l$},\\ D,& {\rm otherwise},\\ \end{cases} $ (17)
$c_{ij}^2 = {r_3}\;\left| {{v_k} - {v_l}} \right|. $ (18)

${r_1}-{r_{12}}$: constants.

$D$: a large positive number.

Variables.

${u_p}$: binary variable,if tundish $p$ is used,${u_p} = 1$, otherwise,${u_p} = 0$.

${v_{kp}}$: binary variable,if charge k is grouped into tundish $p$,${v_{kp}} = 1$,otherwise,${v_{kp}} = 0$.

The formulation of TDM can be modeled as follows.

$\begin{array}{l} \min \sum\limits_{p = 1}^e {f{t_p}} \cdot {u_p} + \sum\limits_{k = 1}^m {p{t_k}} (1 - \sum\limits_{p = 1}^e {{v_{kp}}} ) + \sum\limits_{p = 1}^e {l{t_p}} \cdot r{t_p} + \\ \sum\limits_{p = 1}^e {\sum\limits_{k = 1}^{m - 1} {\sum\limits_{l = 1 + k}^m {c_{kl}^2} } } \cdot {v_{kp}} \cdot {v_{lp}}, \end{array}$ (19)
$ \min\;\;\;\;\left| {\sum\limits_{p = 1}^e {\sum\limits_{k = 1}^m {{v_{kp}}} } - {CH}^G} \right|,$ (20)
$ \min\;\;\;\;\left| {\sum\limits_{p = 1}^e {\sum\limits_{k = 1}^m {{rh}_k \cdot {v_{kp}}} } - {RH}^G} \right|,$ (21)
$ \min\;\;\;\;\left| {\sum\limits_{p = 1}^e {\sum\limits_{k = 1}^m {{ht}_k \cdot {v_{kp}}} } - {H^G}} \right|,$ (22)
$ \min\;\;\;\;\left| {\sum\limits_{p = 1}^e {\sum\limits_{k = 1}^m {{fl}_{ks} \cdot {v_{kp}}} } - F_s^G} \right|,\forall s \in F,$ (23)
$ \sum\limits_{k = 1}^m {{v_{kp}}} \le {tl}_p \cdot {u_p},\forall p \in T,$ (24)
$ \sum\limits_{p = 1}^t {{v_{kp}}} \le 1,\forall k \in M,$ (25)
$ \left| {{tsg}_k - {tsg}_l} \right| \cdot {v_{kp}} \cdot {v_{lp}} = 0,\forall p \in T,$ (26)
$0 \le \left| \min({lw}_k^H,{lw}_l^H) - \max({lw}_k^L,{lw}_l^L) \right| \cdot v_{kp} \cdot v_{lp} \le \triangle w,\notag\\ k \ne l,\forall p \in E, $ (27)
$ \;\min(\beta ,1) \le 1,$ (28)
$ \beta = \sum\limits_{i=1}^n \sum\limits_{j=1}^n \left| \min({lw}_k^H,{lw}_l^H) - \max({lw}_k^L,{lw}_l^L) \right| \cdot v_{kp} \cdot v_{lp},\notag\\ k \ne l,\forall p \in E,$ (29)
${CH}^L \le \sum\limits_{p = 1}^e {\sum\limits_{k = 1}^m {{v_{kp}}} } \le {CH}^H,$ (30)
${RH}^L \le \sum\limits_{p = 1}^e {\sum\limits_{k = 1}^m {{rh}_k \cdot {v_{kp}}} } \le {RH}^H,$ (31)
${H^L} \le \sum\limits_{p = 1}^e {\sum\limits_{k = 1}^m {{ht}_k \cdot {v_{kp}}} } \le {H^H},$ (32)
$F_l^L \le \sum\limits_{p = 1}^e {\sum\limits_{k = 1}^m {{ft}_{kl} \cdot {v_{kp}}} } \le F_l^H,\forall l \in F, $ (33)
${rt}_p =\left\{\begin{array}{*{20}l} {tl}_p - \sum\limits_{k=1}^m v_{kp},& \sum\limits_{k=1}^m v_{kp} < \theta_2 \cdot {tl}_p,\\ 0,& {\rm otherwise}, \end{array}\right.$ (34)
$ {u_p} \in \{ 0,1\},{v_{kp}} \in \{ 0,1\}. $ (35)

In TDM,objective function (19) expresses to minimize the difference between charges in each tundish and minimize the cost of tundishes in use. Objective function (20) expresses to minimize the difference between the total number of selected charges and the target number of charges given by plant. Objective function (21) expresses to minimize the difference between the total number of refining charges and the target number of refining charges given by plant. Objective function (22) expresses to minimize the difference between the total weight of warm-up materials and the target weight given by plant. Objective function (23) expresses to minimize the difference between the total weight of each flow direction and the target weight of each flow direction given by plant. Constraint (24) ensures that the total number of charges within one tundish should not exceed the working life of the tundish. Constraint (25) ensures that each charge can be grouped into only one tundish. Constraint (26) guarantees that the component of molten steel in the charges grouped in one tundish should satisfy the requirement. Constraints (27) and (28) guarantee that the difference of width between charges grouped in one tundish should satisfy the limitation of width changeover. Constraint (30) ensures that the total number of charges grouped in tundish should not exceed the range given by plant. Constraint (31) ensures that the total number of refining charges should not exceed the range given by plant. Constraint (32) ensures that the total weight of warm-up materials contained in grouped charges should not exceed the range given by plant. Constraint (33) ensures that the total weight of each flow direction contained in grouped charges should not exceed the range given by plant. Formulations (34) and (35) are variable definitions.

C. The Problem Description and Formulation of CDM

1) Problem description of CDM: Through CHDM and TDM,the slab set to be produced and the tundish set are determined respectively,while the cast set and the width of slabs is up to CDM. When tundishes are grouped into casts,two main factors must be considered,i.e.,the ingredient and the width of charges in tundish. When grouping tundishes into casts, we hope that the charges with the same ingredient and width are cast continuously. It is better to adjust ingredient and width less in order to achieve more continuous cast.

There exists a wide relationship among slabs,charges and tundishes. Given the width of slabs,the width of charges and tundishes can be determined. Given width of charges,the width of slabs and tundishes can be determined. Given width of tundish,it is the same. For example,Fig.6 shows a charge with 8 pieces of slabs. Each slab has a width interval of [1 250,1 450]. From width of slabs,we can determine the width of charge to be a pair chosen in (1 450,1 450),(1 450,1 400),(1 450,1 350), (1 400,1 400),(1 400,1350),(1 400,1 300),etc. If we set the width of the charge to be (1 450,1 450),then the width of slabs in the charge can be determined,and vice versa.

Download:
Fig. 6. Part of the manual casting planning.

2) Formulation of CDM: In CDM,if we regard the charge with a pair of width values as customer,and the tundish as vehicle,in the meanwhile,if we regard the tundish as customer,and the cast as vehicle,CDM can be seen as a two-layer vehicle route problem (VRP). In the following,we formulate CMD.

Parameters.

M: the set of charges,$L = \{ 1,2,\cdots,k,l,\cdots,m\} $.

E: the set of tundishes,$E = \{ 1,2,\cdots,p,q,\cdots,e\} $.

$G$: the set of casts,$G = \{ 1,2,\cdots,r,\cdots,g\} $.

${tsg}_i$: the code of continuous casting in tundish.

${csg}_i$: the code of continuous casting in cast.

$\triangle w{^L}$: the minimum change of width.

$\triangle {w}^H$: the maximum change of width.

${tl}_r$: the service life of tundish $r$.

$c_{pq}^3$: the similarity coefficient of tundishes $p$ and $q$.

${B_k} = \{ ({bw}_{k1}^{},{ew}_{k1}^{}),({bw}_{k2}^{},{ew}_{k2}^{}),\cdots,({bw}_{k{b_k}}^{},{ew}_{k{b_k}}^{})\} $ for all width values that can be assigned to charge k,and $({bw}_k b_k,{ew}_k b_k)$ denotes the begin width and end width, respectively. We have

$c_{pq}^3 = \begin{cases} r_{10},& {ew}_{k\alpha} - {bw}_{l\beta} = 0,\\ r_{11},& {ew}_{k\alpha} - {bw}_{l\beta} = 50,\\ r_{12},& {ew}_{k\alpha} - {bw}_{l\beta} = 100,\\ D,& \mbox{others}. \end{cases} $ (36)

${r_1}-{r_{12}}$: constants.

$D$: a large positive number.

Variables.

${v_{kp}}$: binary variable,if charge k is grouped into tundish $p$,${v_{kp}} = 1$,otherwise,${v_{kp}} = 0$.

${w_{klp}}$: binary variable,if charge k is cast immediately after charge $l$ in tundish $p$,${w_{klp}} = 1$,otherwise, ${w_{klp}} = 0$.

${y_{pr}}$: binary variable,if tundish $p$ is assigned to cast $r$,${y_{pr}} = 1$,otherwise,${y_{pr}} = 0$.

${z_{pqr}}$: binary variable,if tundish $p$ is cast immediately after tundish $q$ in cast $r$,${z_{pqr}} = 1$,otherwise, ${z_{pqr}} = 0$.

$e_{k\alpha }^{}$: binary variable. $e_{k\alpha }^{} = 1$,if charge k selects the $\alpha $ thelement in ${B_k}$.

${tw}_p^H$,${tw}_p^L$: the maximum and minimum width of tundish $p$,respectively.

The formulation of CDM can be modeled as follows.

$ \min B\sum\limits_{p = 1}^e {\sum\limits_{l = 1}^m {{w_{0lp}}} } + \sum\limits_{p = 1}^e {\sum\limits_{k = 1}^m {\sum\limits_{l = 1}^m {c_{kl}^2 \cdot {w_{klp}}} } }, $ (37)

The formulation of CDM can be modeled as follows.

$ \min B\sum\limits_{r = 1}^g {\sum\limits_{q = 1}^e {{z_{0qr}}} } + \sum\limits_{r = 1}^g {\sum\limits_{p = 1}^e {\sum\limits_{q = 1}^e {c_{pq}^3 \cdot {z_{pqr}}} } }, $ (38)

${\rm s.t.}$

$ \sum\limits_{\alpha = 1}^{{b_k}} {{e_{k\alpha }}} = 1,\forall k \in M,$ (39)
${e_{l\alpha }} \cdot {w_{klp}} \le \triangle w,{eq:40}$ (40)
$ \sum\limits_{p = 1}^e {\sum\limits_{k = 1}^m {\sum\limits_{l = 1}^m {\min(({\rm ew}_{k\alpha } - {bw}_{l\alpha}){e_{k\alpha }} \cdot {e_{l\alpha }} \cdot {w_{klp}},1)} } } \le \triangle n, {eq:41}$ (41)
$ 0 \le \left| \min({tw}_p^H,{tw}_q^H) - \max({tw}_p^L,{tw}_q^L) \right| \cdot {z_{pqr}} \le \triangle w,\notag\\ \forall p,q \in E,p \ne q,\forall r \in G,$ (42)
$\left| {{csg}_p - {csg}_q} \right| \cdot {y_{pr}} \cdot {y_{qr}} = 0,\forall r \in G,$ (43)
$\sum\limits_{l = 1}^m {{w_{klp}} = \sum\limits_{l = 1}^m {{w_{lkp}}} = {v_{kp}}},\forall k \in M,\forall p \in E,$ (44)
${v_{0p}} = 1,\forall p \in E,$ (45)
$\sum\limits_{p = 1}^e {\sum\limits_{k = 1}^m {{w_{k0p}}} = } \sum\limits_{p = 1}^e {\sum\limits_{k = 1}^m {{w_{0lp}}} }, $ (46)
$\sum\limits_{k = 1}^m {{v_{kp}}} \le {tl}_p \cdot {u_p},\forall p \in T,$ (47)
$\sum\limits_{p = 1}^t {{y_{pr}}} \le CP \cdot {z_r},\forall r \in G,$ (48)
$\sum\limits_{r = 1}^g {{y_{pr}}} = 1,\forall p \in T, $ (49)
$\sum\limits_{p = 1}^e {{z_{pqr}} = \sum\limits_{q = 1}^e {{z_{qpr}}} = {y_{pr}}},$ (50)
${y_{0r}} = 1 ,$ (51)
$\sum\limits_{r = 1}^g {\sum\limits_{p = 1}^e {{z_{p0r}}} = } \sum\limits_{r = 1}^g {\sum\limits_{p = 1}^e {{w_{0pr}}} },$ (52)
${w_{klp}} \in \{ 0,1\},{v_{kp}} \in \{ 0,1\},{z_{pqr}} \in \{ 0,1\},{y_{pr}} \in \{ 0,1\}. $ (53)

In CDM,$B$ is a very large constant number. Objective (37) represents minimizing the number of tundishes and the difference between charges. Objective (38) represents minimizing the number of casts and the difference between tundishes. Constraint (39) guarantees a charge only has one begin width and one end width. Constraints (40)~42) ensure the casting width satisfies the technical requirement. Constraint (43) ensures the ingredients in cast satisfy the requirement. Constraints (44)~(52) are standard constraints in VRP. Formulation (53) is the definition of variables.

Ⅴ. SOLUTION APPROACH

Now we give the algorithm to solve the three models,i.e.,CHDM, TDM and CDM,respectively. In this section,we first analyze the characteristics of model,based on which,we adopt VNS algorithm to solve CHDM and then TDM,and use ant colony optimization (ACO) to solve CDM. VNS is a recent metaheuristic for solving combinatorial and global optimization problems. Its basic idea is systematic change of the neighborhood within a local search. In all algorithms based on neighborhood search,VNS has an outstanding performance in the aspects of high efficiency, robustness,ease of use and hummization,and has obvious advantages in large scale and multi-constraint problem[20]. Hemmelmayr et al.[21] used VNS to solve variable sized bin packing problem (VSBPP) and obtained better solution than the solution obtained by generic algorithm (GA) and set covering (SC). ACO is a kind of metaheuristic algorithm for NP-hard problem in discrete optimization. ACO has been widely used in many fields. Reference [22] presented an improved ant system algorithm for the VRP with one depot and identical vehicles. Reference [23] developed a new ACO for the problem of scheduling in permutation on flow shop with the objective of minimizing the maximum completion time. Reference [24] introduced the use of a swarm algorithm,derived from ACO,to solve path planning problems for autonomous vehicles.

A. Variable Neighbourhood Descend (VND) for CHDM

In CHDM,if $c_{ij}$ equals zero,and priority,ingredient and width interval of all slabs are identical,the model is a variant of classic BPP,a well-known NP-hard problem called variable cost and size bin packing problem (VCSBPP). So CHDM is also a NP-hard,and generally,the number of slabs which is the input data of the model is from 2 000 to 6 000. Exact algorithm cannot be used to solve it. Hence, efficient algorithm is developed to generate an acceptable solution. We develop VND algorithm for CHDM as shown in Algorithm 1.

1) Generate initial solution: The well-known algorithms,for example,first fit (FF),best fit (BF),first fit decreasing (FFD),best fit decreasing (BFD),first fit increasing (FFI),best fit increasing (BFI),offer good performance for classical BPP. We use FF and BF to generate two solutions,for the slabs sorted arbitrarily according to their left points of the width intervals,use FFD and BFD for the slabs sorted according to the non-increasing order of their left points of the width intervals,and use FFI and BFI for the slabs sorted according to the non-decreasing order of their left points of the width intervals. After we generate solution initial,we get a solution set $x$.

Algorithm 1. Basic VND

1) Define the set of neighbourhood structures ${N_k}$,for $k=$ $ 1,2,\cdots,{k_{\max}}$

2) $x$= GenerateInitialSolution

3) Repeat

4) k $\leftarrow$ 1

5) Repeat

6) $x'$= $\arg \min_{y \in N_{k1}(x')}f(y)$

7) If $f(x') < f(x)$ then

8) $x \leftarrow x'$,$k \leftarrow 1$

9) Else

10) $k \leftarrow k+1$

11) Until $k = k_{\max}$

12) Until termination condition met

2) Neighbourhood structure: 1) Operator NS1_SwapSlab. This operator selects two different charges,denoted by Charge 1 and Charge 2 randomly in solution $x$ when stop condition is not satisfied. Then it selects a slab in Charge 1,and a slab in Charge 2,denoted by Slab 1 and Slab 2. If Slab 1 and Slab 2 can exchange,and the exchange can optimize the objective,it is accepted,otherwise,it is refused. Notice that the selected bin is not virtual bin which is used to pack the rejected items.

2) Operator NS2_RemoveCharge. This operator aims at optimizing the cost of charges. This operator first finds the charge with the biggest remaining volume,then empties the charge and packs slabs in a virtual charge. If this can optimize the objective,then we go on,otherwise,we undo this operation and quit this neighborhood structure.

3) Operator NS3_SwapVSlab. This operator randomly selects a charge (except the virtual charge) in the current solution $x$, then randomly selects a slab in the selected charge and a slab in the virtual charge,denoted by Slab 1 and Slab 2,respectively. If exchanging Slab 1 and Slab 2 can optimize the objective and satisfy the constraints,it is accepted. This operation does not stop until the stop condition is met.

4) Operator NS4_InsertVSlab. This operator first finds the charge with the biggest remaining volume,and then selects a slab in the virtual charge to pack it into the selected charge,if the objective can be optimized,the item is packed into the charge. This operation continues until the stop condition is satisfied or the objective cannot be optimized any more.

5) Operator NS5_PackingVSlab. This operator is the inverse of operator NS4_InsertVSlab. It groups the slabs in the virtual charge into a charge,adds the charge to the current solution $x$, and delete the slab from the virtual one. If this can optimize the objective,we go on packing another charge from the virtual charge,until the stop condition is satisfied or the objective cannot be optimized any more.

B. Double-layer VND with Variable Weights for TDM

TDM is a multi-objective nonlinear programming model. As a method for solving multi-objective problem,we should obtain the pareto front. But in practice,decision makers are not interested in obtaining the entire set of efficient solutions to real-world problems. Through observation,we find the objectives and constraints can be classified into two types. The first class is related to the technical requirement of tundish,including objective (25) and constraints (30)~(34),(39),(40),while the second one is related to production capacity,including objectives (26)~(29) and constraints (35)~(38).

The first class can be seen as BPP with rejection penalty,if we only consider constraint (30) and ignore the quadratic coefficient in objective (25). For the second class,if we change the objectives from min to max,it is similar to a knapsack problem (KP),but the difference is four capacity constraints and multiple objectives for a knapsack. If a knapsack has several capacity,there seems to exist a certain couple. So we relax constraints (35)~(38) into objectives to remove absolute value function,and transform objectives (26)~(29) into one objective,then two class models can be modeled as follows.

SUB_M1:

min (25),

s.t. (30)~(34),(39),(40).

SUB_M2:

$ \min Z_6 = {\lambda ^{ch}}{\delta _{ch}} + {\lambda ^{rh}}{\delta _{rh}} + {\lambda ^h}{\delta _h} + \lambda _l^f{\delta _l}, $ (54)

s.t. (25)~(34).

All items in objective (54) are given in (55)~(58).

${\lambda ^{ch}},{\lambda ^{rh}},{\lambda ^h},\lambda _l^f$ are weights,and $L_{ch}^1-L_{ch}^4$,$L_{rh}^1-L_{rh}^4$, $L_h^1-L_h^4$,$L_f^1-L_f^4$ are parameters.

$\delta_{ch}(x_{ik}) =\notag\\ \left\{ \begin{array}{l@{\;}l} \scriptstyle L_{ch}^1 ({CH}^L - \sum\limits_{p=1}^e \sum\limits_{k=1}^m v_{kp}), \scriptstyle \sum\limits_{p=1}^e \sum\limits_{k=1}^m v_{kp} < {CH}^L ,\\ \scriptstyle L_{ch}^2 (CH^G - \sum\limits_{p=1}^e \sum\limits_{k=1}^m v_{kp}), \scriptstyle {CH}^L \le \sum\limits_{p=1}^e \sum\limits_{k=1}^m v_{kp} \le {CH}^G ,\\ \scriptstyle L_{ch}^3 (\sum\limits_{p=1}^e \sum\limits_{k=1}^m v_{kp} - {CH}^G), \scriptstyle {CH}^G < \sum\limits_{p=1}^e \sum\limits_{k=1}^m v_{kp} \le {CH}^L ,\\ \scriptstyle L_{ch}^4 (\sum\limits_{p=1}^e \sum\limits_{k=1}^m v_{kp} - {CH}^H), \scriptstyle \sum\limits_{p=1}^e \sum\limits_{k=1}^m v_{kp} > {CH}^H, \end{array} \right. $ (55)
$ \delta_{rh} (x_{ik}) = \notag\\ \left\{ \begin{array}{l@{\;}l} \scriptstyle L_{rh}^1 ({RH}^L - \sum\limits_{p=1}^e \sum\limits_{k=1}^m {rh}_k \cdot v_{kp}), \scriptstyle \sum\limits_{p=1}^e \sum\limits_{k=1}^m {rh}_k \cdot v_{kp} < {RH}^L ,\\ \scriptstyle L_{rh}^2 (RH^G - \sum\limits_{p=1}^e \sum\limits_{k=1}^m {rh}_k \cdot v_{kp}), \scriptstyle {RH}^L \le \sum\limits_{p=1}^e \sum\limits_{k=1}^m {rh}_k \cdot v_{kp} \le {RH}^G ,\\ \scriptstyle L_{rh}^3 (\sum\limits_{p=1}^e \sum\limits_{k=1}^m {rh}_k \cdot v_{kp} - {RH}^G), \scriptstyle {RH}^G < \sum\limits_{p=1}^e \sum\limits_{k=1}^m {rh}_k \cdot v_{kp} \le {RH}^L ,\\ \scriptstyle L_{rh}^4 (\sum\limits_{p=1}^e \sum\limits_{k=1}^m {rh}_k \cdot v_{kp} - {RH}^H), \scriptstyle \sum\limits_{p=1}^e \sum\limits_{k=1}^m {rh}_k \cdot v_{kp} > {RH}^H,\\ \end{array} \right. $ (56)
$ \delta_h(x_{ik}) =\notag\\ \left\{ \begin{array}{l@{\;}l} \scriptstyle L_h^1 (H^L - \sum\limits_{p=1}^e \sum\limits_{k=1}^m {ht}_k \cdot v_{kp}), \scriptstyle \sum\limits_{p=1}^e \sum\limits_{k=1}^m {ht}_k \cdot v_{kp} < H^L ,\\ \scriptstyle L_h^2 (H^G - \sum\limits_{p=1}^e \sum\limits_{k=1}^m {ht}_k \cdot v_{kp}), \scriptstyle H^L \le \sum\limits_{p=1}^e \sum\limits_{k=1}^m {ht}_k \cdot v_{kp} < H^G ,\\ \scriptstyle L_h^3 (\sum\limits_{p=1}^e \sum\limits_{k=1}^m {ht}_k \cdot v_{kp} - H^G), \scriptstyle H^G < \sum\limits_{p=1}^e \sum\limits_{k=1}^m {ht}_k \cdot v_{kp} \le H^H,\\ \scriptstyle L_h^4 (\sum\limits_{p=1}^e \sum\limits_{k=1}^m {ht}_k \cdot v_{kp} - H^G), \scriptstyle \sum\limits_{p=1}^e \sum\limits_{k=1}^m {ht}_k \cdot v_{kp} > H^H ,\\ \end{array} \right. $ (57)
$ \begin{aligned} \delta_f(x_{ik}) =\\ \left\{ \begin{array}{l@{\;}l} \scriptstyle L_f^1 (F_f^L - \sum\limits_{p=1}^e \sum\limits_{k=1}^m {ft}_{kl} \cdot v_{kp}), \scriptstyle \sum\limits_{p=1}^e \sum\limits_{k=1}^m {ft}_{kl} \cdot v_{kp} < F_l^L,\\ \scriptstyle L_f^2 (F_l^G - \sum\limits_{p=1}^e \sum\limits_{k=1}^m {ft}_{kl} \cdot v_{kp}), \scriptstyle F_f^L \le \sum\limits_{p=1}^e \sum\limits_{k=1}^m {ft}_{kl} \cdot v_{kp} < F_l^G ,\\ \scriptstyle L_f^3 (\sum\limits_{p=1}^e \sum\limits_{k=1}^m {ft}_{kl} \cdot v_{kp} - F_l^G), \scriptstyle F_l^G \le \sum\limits_{p=1}^e \sum\limits_{k=1}^m {ft}_{kl} \cdot v_{kp} \le F_l^H ,\\ \scriptstyle L_f^4 (\sum\limits_{p=1}^e \sum\limits_{k=1}^m {ft}_{kl} \cdot v_{kp} - F_l^H), \scriptstyle \sum\limits_{p=1}^e \sum\limits_{k=1}^m {ft}_{kl} \cdot v_{kp} > F_l^H, \end{array} \right. \end{aligned} $ (58)

where $l\in F$.

Thus our TDM can be seen as a combination of BPP and KP. It is hard to solve TDM,because either BPP or KP is NP-hard. As both BPP and KP are in TDM model,we must decide which is to be solved first. If we solve BPP first,this method can guarantee that the tundish is fully utilized and can minimize the difference between charges in the tundish. But if we solve KP first,it is hard to ensure this. So we adopt the former method.

There are some parameters in two sub-models. The cost of tundish, the penalty cost of remaining service and the utilization of tundish are the parameters in the first sub-model,whereas the weight is the parameter in the second sub-model. In general,these parameters are fixed before solving the model or in the process of solving the model. But this imposes two problems.

1) When the first model gets the optimal solution,whether it can ensure the second model gets the optimal solution?

2) Obtaining a solution closer to the goals of the production indices is the aim of the second model. But can the fixed weight reflect the difference?

For these reasons,we design a double-layer VND algorithm to adjust the parameters dynamically. The pseudo code can be seen in Algorithm 2,in which the ModifyLambda function is used to modify the weight,the ModifyTheta function is used to modify the utilization in the first model.

Algorithm 2. DVND for TDM

1) Input problem instance

2) Repeat

3) Define the set of neighborhood structures $N_k^1$,for $k=$$ 1,2,\cdots,k_{\max}^1$

4) $x$= GenerateInitialSolution_BPP

5) Repeat

6) k←1

7) Repeat

8) $x'$= $\arg {\rm min}{_{y \in {N_{k1}}(x')}}\;\;f(y)$

9) If $f(x') < f(x)$ then

10) $x$←$x'$, k←1

11) ${\bf Else}$

12) kk+1

13) Until $k = k_{\max}^1$

14) Until termination condition met

15) Define the set of neighborhood structures $N_k^2$,for $k=$$ 1,2,\cdots,k_{\max}^2$

16) $x$= GenerateInitialSolution_KP

17) Repeat

18) k←1

19 ${\bf Repeat}$

20) $x'$= $\arg \min_{y \in{N_{k1}}(x')}\;\;f(y)$

21) If $f(x') < f(x)$ then

22) $x$←$x'$,k←1

23) ${\bf Else}$

24) kk+1

25) Until $k = k_{\max}^2$

26) ModifyLambda()

27) Until termination condition met

28) ModifyTheta()

29) Until termination condition met

1) Generate initial solution for BPP and KP: For BPP,we also adopt the well-known FF,BF,FFD,BFD,FFI and BFI, as in Section V-A-1. We use FF and BF to generate two solutions,for the charges sorted arbitrarily according to their left points of the width intervals,use FFD and BFD for the charges sorted according to the non-increasing order of their left points of the width intervals,and use FFI and BFI for the charges sorted according to the non-decreasing order of their left points of the width intervals.

For KP,we adopt the greedy algorithm to generate the initial solution. First,we sort the tundishes according to the non-increasing order of the number of charges in each tundish, then select the tundishes into the solution $x$,until the total number of charges in the solution $x$ exceeds the upper limits of constraint (9).

2) Neighborhood structures: 1) Operator NS1_TSwapCharge. This operator tries to reduce the difference between the charges in one tundish. This operator first selects two tundishes (except the virtual tundish) in the current solution,then selects a charge in each tundish respectively. If swapping these two charges satisfies the constraints and optimizes the objective,the two charges are swapped. This operation repeats until the stop conditions are met.

2) Operator NS2_ RemoveTundish. This operator tries to remove tundishes to optimize the objective by looking for the tundish with maximum remaining service life in all tundishes and moving all its charges to the virtual tundish. If the operator can optimize the objective,this operation repeats until the stop conditions are met.

3) Operator NS3_VSwapCharge. The function of this operator is similar to NS1_TSwapCharge. The difference is that this operator swaps charges between the tundish and the virtual tundish. This operator first selects a tundish with a certain probability,then selects a charge in it,swap the charge with a charge in the virtual tundish under the condition that the constraints are satisfied. If the operator can optimize the objective,this operation repeats until the stop conditions are met.

4) Operator NS4_VInsertCharge. This operator tries to maximize the service life of tundish. The operator looks for the tundish with remaining service life,and inserts a charge which is in the virtual tundish into the selected tundish,if the constraints are satisfied. If the operator can optimize the objective,this operation repeats until the stop conditions are met.

5) Operator NS5_VGroupCharge. This operator tries to reduce the number of charges not having been grouped into tundishes. The operator uses FF algorithm to group the charges in the virtual tundish into a tundish. If adding a new tundish can optimize the objective,then we keep on grouping the charges into this tundish. This operation repeats until the objective cannot be optimized any more.

6) Operator NS6_SwapTundish. We use this operator right after generating solution for KP. This operator swaps the tundishes in solution $x$ with unselected tundishes to optimize objective (18). This operation continues,until the objective cannot be optimized any more. After this operator,all unselected tundishes are destroyed,so the state of the charges in these tundishes is changed into unselected.

7) Operators NS7_SwapCharge,NS8_InsertCharge and NS9_DeleteCharge. These three operators all try to optimize objective (18). NS7_SwapCharge swaps the charge in solution $x$ with an unselected charge. If the swapping satisfies the constraints and optimizes the objective,this operation continues until the objective cannot be optimized. NS8_InsertCharge inserts an unselected charge into solution $x$. If the objective can be optimized,we go on the inserting operation. NS9_DeleteCharge deletes a charge in solution $x$. If the deleting can optimize the objective,then this operation continues until the objective cannot be optimized.

3) Modify the weight: The function ModifyLambda is used to adjust the weight in (20). We adopt the following formula to adjust the weight

$ \lambda = \begin{cases} \lambda (1+f(e)),& \left| e \right| > \sigma,\\ \lambda,& {\rm otherwise}, \end{cases} $ (59)
$ f({e_1}) = e/g,$ (60)
$ e = g - g' ,$ (61)

where $\lambda $ represents the weight in objective (58), $\sigma $ represents an integer,and $e$ represents the difference,$g$ represents the goal of production index. For example,${\lambda ^{rh}}$ is the weight of the number of refining charges in objective function. In current solution,we can compute the total number of refining charges $g'$,and the goal of the number of refining charges is $RH$. If the difference between the two is large than $\sigma$,we can compute the new ${\lambda ^{rh}}$ as follows.

$ {e^{rh}} = {RH}^G - {g^{rh}},$ (62)
$ f({e^{rh}}) = {e^{rh}}/{g^{rh}},$ (63)
$ {\lambda ^{rh}} = {\lambda ^{rh}} \cdot (1 + f({e^{rh}})). $ (64)

4) Modify $\pmb\theta$: The function ModifyTheta in Algorithm 2 is used to adjust the utilization of tundish. In general,neither the cost of a tundish nor the penalty cost of the remaining service is variable,but the utilization can be changed. The parameter $\theta$ can impact the model. For example,when $\theta=0.5$,it means that the tundish is regarded to be fully used when half of its whole total service life passes. In this situation,the number of tundishes could be increased. When $\theta=1$,it means that the whole service life of the tundish must be used. In this situation,the number of tundishes could be reduced. The number of tundishes can affect the solution. For improving the situation,we adopt the following method. First we fix $\theta$,for example,to be 0.6, if the solution can not be improved,then we change ${\theta}$ as

$ \theta = \theta \pm 0.1, {\rm if}\;\left| e \right| < \sigma ,\theta \in [0.5,1].$ (65)

C. ACO for CDM

After solving CHDM and TDM,we have determined the relationship between slabs and charges,the relationship between charges and tundishes,the number of charges,the number of tundishes,the amount of warm-up materials and the amount of flow materials. But we have not determined the width of slabs and charges yet. CDM completes the work by determining the number of casts and the width of charges. Then using Theorem 1,we determine the width of slabs in charges,while using Theorem 2,we determine the width of tundishes.

CDM includes two sequences,i.e.,the sequence of charges in each tundish and the sequence of tundishes in each cast. And the problem of determining the sequence is VRP. So cast design is a series of two VRPs. Individual VRP is a NP-hard problem,let alone two VRPs.

Before developing the algorithm,we do some preprocessing. A charge has several pairs of begin width and end width. So we regard each pair as a brother of the primary charge,and call these charges dummy charges,but only one dummy can be selected into solution for each primary charge.

For CDM,we design an algorithm with two-layer ant colony system (ACS) in series. ACS in the first layer is responsible for selecting the width of charges and minimizing the difference between charges in the same tundish,while ACS in the second layer is responsible for minimizing the number of casts and the difference between tundishes in the same cast. In the first layer, each ant represents a sub-solution for the sequence of charges in tundish. In the second layer,each ant represents a sub-solution for the sequence of tundishes in cast. When the first layer stops, the second layer begins running. Then the algorithm keeps a better solution. The whole algorithm iterates between the two layers until the stop criterion is satisfied.

Algorithm 3. ACS for CDM

1) Input tundish set

2) Initialize the two-layer ACS

3) ${\bf While}$ stop condition is not met ${\bf do}$

4) $x'$=RunFirstACS()

5) $x$=RunSecondACS($x'$)

6) ${\bf End while}$

7) Output the best solution

1) State transition rule: For ACS in the first layer,each dummy charge k represents a node that might be visited by ants. An arc(k,$p$) means that charge $p$ is cast immediately after charge k. $t$ denotes the pheromone trail on arc(k,$p$). ${\eta _{kl}}$ denotes the heuristic information of moving from charge k to charge $p$. Ant $a$ locating at node k chooses node $p$ as the next location according to the following pseudo-random proportional rule:

$ p = \begin{cases} \arg \max_{p' \in F_k^a} \{\tau _{kp'} [\eta_{kp'}]^\beta\},& q \le q_0,\\ P,& {\rm otherwise}, \end{cases} $ (66)

where $\beta > 0$ is a parameter that measures the relative importance of the heuristic information. $q$ is a random value uniformly distributed in [0, 1],and ${q_0} \in $[0, 1] is a parameter that determines the relative importance of exploitation versus exploration. The heuristic information ${\eta _{kp'}}$ is defined as

$ {\eta _{kp'}} = \frac{1}{{\max(1,{c_{kp'}})}},$ (67)

where ${c_{kp'}}$ is the penalty cost of casting charge $p'$ immediately after charge k. $P \in F_k^a$ is a node that is randomly selected according to the following probability:

$ {\rm probability}(P) = \frac{{{{[{\tau _{kp}}]}^\alpha } {{[{\eta _{kp}}]}^\beta }}}{{\sum {_{p' \in F_k^a}{{[{\tau _{kp'}}]}^\alpha }{{[{\eta _{kp'}}]}^\beta }} }}. $ (68)

For ACS in the second layer,we replace the charge with tundish in (61)~(63).

2) Pheromone update: In our two-layer ACS algorithm,the following are the ways to update the pheromone.

1) Global pheromone for ACS of each layer In ACS of each layer,only one ant (the best-so-far) is allowed to add pheromone after each iteration. The update in the first layer is implemented by the following equation:

$ {\tau _{kp}} = (1 - {\rho _1}){\tau _{kp}} + {\rho _1}\triangle \tau _{kp}^{bs_1},$ (69)

where $0 < {\rho _1} < 1$ and $\triangle \tau _{kp}^{bs\_1}$ are two parameters. $\Delta \tau _{kp}^{bs\_1} = 1/fitnes{s^{bs\_1}}$,and ${fitness}^{bs\_1}$ is the objective of ACS in the first layer. This updating is applied to the second layer too,but with the replacement of $\rho_1$ by $\rho_2$ and the replacement of fitness $bs\_1$ by fitness $bs\_2$.

2) Local pheromone for ACS of each layer

In addition to the global pheromone trail updating,in ACS of each layer,the ants use a local pheromone updating rule in each layers,implemented by the following equation:

$ {\tau _{kp}} = (1 - {\xi _1}){\tau _{kp}} + {\xi _1}\triangle \tau _0^1,$ (70)

where $0 < {\xi _1} < 1$ is a parameter,$\triangle {\tau _0}$ is the initial trail value,and $fitness{s^{bs\_1}}$ is the objective of ACS in the first layer. This updating is also applied to the second layer with ${\xi _1}$ replaced by ${\xi _2}$.

Ⅵ. EXPERIMENTAL RESULTS AND ANALYSIS

All algorithms are developed using C# and SQL Server 2005, carried out on a PC with Intel Core 2 Duo 2.26 GHz and 2G RAM, and embedded on the simulation platform developed based on the oriented service technology. Test data used for algorithms comes from practical production data obtained from an advanced iron and steel company in China.

A. Effectiveness of Changing the Width Interval Into a Number

Table Ⅰ gives an example of 10 pieces of slabs to test the method used to transform width interval of slab to a corresponding number. Matrix $A$ is obtained by applying the method presented in this paper,while matrix $B$ is obtained by applying the method of [10]. Through the comparison,we can see our method can distinguish the overlap degree of two width intervals. For example, the upper left corner of matrix $A$ contains non zero items,but these items in matrix $B$ are zero.

TABLE Ⅰ
WIDTH DATA OF SLAB AND RANKING VECTOR
B. Effectiveness of CHDM,TDM and Algorithms

For testing the effectiveness of CHDM,we have compared four objective functions. The first is the objective function in CHDM,denoted by M1. The second is $\sum_{k = 1}^m {{f_k} \cdot {z_k}} $, denoted by M2,which is similar to the objective function in BPP. The third is $\sum_{k = 1}^m {{f_k} \cdot {z_k}} + \sum_{i = 1}^n {p{r_i} \cdot (1 - \sum_{k = 1}^m {{x_{ik}})} } $,denoted by M3,which is the objective function in the BPP with rejection penalty cost. The fourth is $\sum_{k = 1}^m {{f_k} \cdot {z_k}} + \sum_{i = 1}^n {p{r_i} \cdot (1 - \sum_{k = 1}^m {{x_{ik}})} } + \sum_{k = 1}^m {{p_k} \cdot {V_k}} $,denoted by M4. When the objective is M2, the number of charges is the largest,and the remaining volume of charges is very large. It means more open order slabs. The company cannot accept these charges. Based on M2,when we consider rejection penalty cost in M3,the situation has been improved a little. Based on M3,when we consider the leftover of charges,the average remaining volume has been improved significantly. Considering the rejection penalty and the leftover of the charge is effective,and can improve the utilization of the charge. In the test of the effectiveness of TDM,we can draw the following conclusions.

1) Each instance of the best solution to the corresponding ${\theta}$ values are different.

2) The variable weight method can get a better solution than the fixed weight method in the same ${\theta}$ value.

3) In the same instance,the algorithm can obtain some solution for planner.

4) Compared to the planning made by manual,both the number and the remaining service life of tundish planned by our algorithm is smaller,which is beneficial for the production.

C. Effectiveness of CDM and Algorithm

Fig.7 shows a cast that contains 2 tundishes. Each tundish includes 4 charges,and each charge has eight pieces of slabs. For example,in Charges 1~3,each slab has 5 different sizes of width,i.e.,1 250 mm,1 300 mm,1 350 mm,1 400 mm,and 1 450 mm. The black line represents the width determined by planner working in iron and steel company. Planner selects three sizes of width. When two sizes of width connect,a special kind of slab is produced,which looks like trapezium from the upper side. Such slabs are not directly produced. So the cost will increase in order to deal with these slabs. Because of the deficient experience of planner,large scale production data,and multiple objectives and constraints,planner hardly searches each combination of width, slab,charge,tundish and cast. So planner just conservatively selects some sizes of width. The gray line is created by models presented in this paper. Models can try to select every width to group charges into tundishes and group tundishes into casts. So width sizes selected by model can reduce the number of trapezoidal slabs.

$A = \left[\begin{array}{@{\;}c@{\;}c@{\;}c@{\;}c@{\;}c@{\;}c@{\;}c@{\;}c@{\;}c@{\;}c@{\;}} \scriptstyle 0.0010 &\scriptstyle 0.0016 &\scriptstyle 0.0027 &\scriptstyle 0.0038 &\scriptstyle 0.0049 &\scriptstyle 0.0335 &\scriptstyle 0.0330 &\scriptstyle 0.0017 &\scriptstyle 0.1006 &\scriptstyle 0.0010 \\ \scriptstyle 0.0016 &\scriptstyle 0.0010 &\scriptstyle 0.0011 &\scriptstyle 0.0022 &\scriptstyle 0.0032 &\scriptstyle 0.0997 &\scriptstyle 0.0499 &\scriptstyle 0.0033 &\scriptstyle {\rm INF} &\scriptstyle 0.0016 \\ \scriptstyle 0.0027 &\scriptstyle 0.0011 &\scriptstyle 0.0010 &\scriptstyle 0.0011 &\scriptstyle 0.0021 &\scriptstyle {\rm INF} &\scriptstyle 0.1220 &\scriptstyle 0.0444 &\scriptstyle {\rm INF} &\scriptstyle 0.0027 \\ \scriptstyle 0.0038 &\scriptstyle 0.0022 &\scriptstyle 0.0011 &\scriptstyle 0.0010 &\scriptstyle 0.0011 &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle 0.1109 &\scriptstyle {\rm INF} &\scriptstyle 0.0038 \\ \scriptstyle 0.0049 &\scriptstyle 0.0032 &\scriptstyle 0.0021 &\scriptstyle 0.0011 &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle 0.0049 \\ \scriptstyle 0.0335 &\scriptstyle 0.0997 &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle 0.0010 &\scriptstyle 0.0011 &\scriptstyle 0.0016 &\scriptstyle 0.0016 &\scriptstyle {\rm INF} \\ \scriptstyle 0.0330 &\scriptstyle 0.0499 &\scriptstyle 0.1220 &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle 0.0011 &\scriptstyle 0.0010 &\scriptstyle 0.0016 &\scriptstyle 0.0033 &\scriptstyle 0.0017 \\ \scriptstyle 0.0017 &\scriptstyle 0.0033 &\scriptstyle 0.0444 &\scriptstyle 0.1109 &\scriptstyle {\rm INF} &\scriptstyle 0.0016 &\scriptstyle 0.0016 &\scriptstyle 0.0010 &\scriptstyle 0.0033 &\scriptstyle 0.0017 \\ \scriptstyle 0.1006 &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle 0.0016 &\scriptstyle 0.0033 &\scriptstyle 0.0033 &\scriptstyle 0.0010 &\scriptstyle {\rm INF} \\ \scriptstyle 0.0010 &\scriptstyle 0.0016 &\scriptstyle 0.0027 &\scriptstyle 0.0038 &\scriptstyle 0.0049 &\scriptstyle {\rm INF} &\scriptstyle 0.0017 &\scriptstyle 0.0017 &\scriptstyle {\rm INF} &\scriptstyle 0.0010 \\ \end{array} \right],~ B = \left[\begin{array}{@{\;}c@{\;}c@{\;}c@{\;}c@{\;}c@{\;}c@{\;}c@{\;}c@{\;}c@{\;}c@{\;}} \scriptstyle 0 &\scriptstyle 0 &\scriptstyle 0 &\scriptstyle 0 &\scriptstyle 0 &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} \\ \scriptstyle 0 &\scriptstyle 0 &\scriptstyle 0 &\scriptstyle 0 &\scriptstyle 0 &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} \\ \scriptstyle 0 &\scriptstyle 0 &\scriptstyle 0 &\scriptstyle 0 &\scriptstyle 0 &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} \\ \scriptstyle 0 &\scriptstyle 0 &\scriptstyle 0 &\scriptstyle 0 &\scriptstyle 0 &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} \\ \scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle 0 &\scriptstyle 250 &\scriptstyle 0 &\scriptstyle 250 &\scriptstyle {\rm INF} \\ \scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle 0 &\scriptstyle 250 &\scriptstyle 0 &\scriptstyle 250 &\scriptstyle {\rm INF} \\ \scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle 0 &\scriptstyle 250 &\scriptstyle 0 &\scriptstyle 250 &\scriptstyle {\rm INF} \\ \scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle 0 &\scriptstyle 250 &\scriptstyle 0 &\scriptstyle 250 &\scriptstyle {\rm INF} \\ \scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle 0 &\scriptstyle 250 &\scriptstyle 0 &\scriptstyle 250 &\scriptstyle {\rm INF} \\ \scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} &\scriptstyle 0 &\scriptstyle {\rm INF} &\scriptstyle {\rm INF} \\ \end{array} \right]$

Download:
Fig. 7. Part of manual casting planning.
Ⅶ. CONCLUSION

In this study,the steelmaking batching problem has been addressed,which is important for the entire production in iron and steel company. Based on the problem description,we present the model of the primary problem. Through analysis of width,we give a decomposition strategy by dividing the primary model into three sub-models,and provide corresponding algorithms to solve. Through the validation of actual production data,our proposed method can effectively reduce the frequency of changing steel grades,width sizes and the number of tundishes,under the premise of satisfying the production indices and constraints.

References
[1] Ji R G, Lu Y Z. A multi-agent and extremal optimization system for steelmaking-continuous casting-hot strip mill integrated scheduling. In:Proceedings of IEEE International Conference on Industrial Engineering and Engineering Management. Hong Kong:IEEE, 2009. 2365-2369
[2] Li J, Xiao X, Tang Q H, Floudas C A. Production scheduling of a largescale steelmaking continuous casting process via unit-specific eventbased continuous-time models:short-term and medium-term scheduling. Industrial & Engineering Chemistry Research, 2012, 51(2):7300-7319
[3] Tang L X, Wang G S. Decision support system for the batching problems of steelmaking and continuous-casting production. Omega-International Journal of Management Science, 2008, 36(6):976-991
[4] Zhu Dao-Fei, Zheng Zhong, Gao Xiao-Qiang. Intelligent optimizationbased production planning and simulation analysis for steelmaking and continuous casting process. Journal of Iron and Steel Research International, 2010, 17(9):19-24
[5] Dawande M, Kalagnanam J, Lee H S, Reddy C, Siegel S. The slabdesign problem in the steel industry. Interfaces, 2004, 34(3):215-225
[6] Dash S, Kalagnanam J, Reddy C, Song S H. Production design for plate products in the steel industry. IBM Journal of Research and Development, 2007, 51(3-4):345-362
[7] Lee K, Chang S Y, Hong Y S. Continuous slab caster scheduling and interval graphs. Production Planning & Control, 2004, 15(5): 495-501
[8] Chang S Y, Chang M R, Hong Y S. A lot grouping algorithm for a continuous slab caster in an integrated steel mill. Production Planning & Control, 2000, 11(4):363-368
[9] Tang L X, Liu G L. A mathematical programming model and solution for scheduling production orders in Shanghai Baoshan Iron and Steel Complex. European Journal of Operational Research, 2007, 182(3):1453-1468
[10] Tang L X, Jiang S J. The charge batching planning problem in steelmaking process using Lagrangian relaxation algorithm. Industrial & Engineering Chemistry Research, 2009, 48(16):7780-7787
[11] Tang L X, Luo J X. A new ILS algorithm for cast planning problem in steel industry. ISIJ International, 2007, 47(3):443-452
[12] Dong H Y, Huang M, Ip W H, Wang X W. On the integrated charge planning with flexible jobs in primary steelmaking processes. International Journal of Production Research, 2010, 48(21):6499-6535
[13] Tang L X, Liu J Y, Rong A Y. A mathematical programming model for scheduling steelmaking-continuous casting production. European Journal of Operational Research, 2000, 120(2):423-435
[14] Pacciarelli D, Pranzo M. Production scheduling in a steelmakingcontinuous casting plant. Computers & Chemical Engineering, 2004, 28(12):2823-2835
[15] Roy R, Adesola B A, Thornton S. Development of a knowledge model for managing schedule disturbance in steel-making. International Journal of Production Research, 2004, 42(18):3975-3994
[16] Missbauer H, Hauber W, Stadler W. A scheduling system for the steelmaking-continuous casting process. A case study from the steelmaking industry. International Journal of Production Research, 2009, 47(15):4147-4172
[17] Lee H S, Haider S W, Morse D V. Primary production scheduling at steelmaking industries. IBM Journal of Research Develop, 1996, 40(2):231-252
[18] Tang L X, Liu J Y, Rong A Y. A review of planning and scheduling systems and methods for integrated steel production. European Journal of Operational Research, 2001, 133(1):1-20
[19] Xie Hai. Improved relative superiority method for ranking interval numbers. Science Technology and Engineering, 2007, 8(2):5983-5987(in Chinese)
[20] Hansen P, Mladenovic N. Variable neighborhood search:principles and applications. European Journal of Operational Research, 2001, 130(3):449-467
[21] Hemmelmayr V, Schmid V, Blum C. Variable neighbourhood search for the variable sized bin packing problem. Computers & Operations Research, 2012, 39(5):1097-1108
[22] Bullnheimer B H, Hartl R F, Strauss R F. An improved ant system algorithm for the vehicle routing problem. Annals of Operations Research, 1999, 89:319-328
[23] Ahmadizar F. A new ant colony algorithm for makespan minimization in permutation flow shops. Computers & Industrial Engineering, 2012, 63(2):355-361
[24] Escario J B, Jimenez J F, Giron-Sierra J M. Optimisation of autonomous ship manoeuvres applying ant colony optimisation metaheuristic. Expert Systems with Applications, 2012, 39(11):10120-10139