financial mathematics dissertation

profilefffinal
TataSteelOptimisationDissertation1.pdf

Steelmaking Continuous Casting Production Schedule Optimization for TATA Steel

Sotirios Filippou

September 2019

School of Mathematics, Cardiff University

A dissertation submitted in partial fulfilment of the requirements for MSc (in Operational Research,

Applied Statistics and Financial Risk) by taught programme.

CANDIDATE’S ID NUMBER

1872049

CANDIDATE’S SURNAME

Mr. Filippou

CANDIDATE’S FULL FORENAMES

Sotirios

DECLARATION This work has not previously been accepted in substance for any degree and is not concurrently submitted in candidature for any degree. Signed ……………………………………………. (candidate) Date 19/09/2019 STATEMENT 1 This dissertation is being submitted in partial fulfilment of the requirements for the degree of MSc (insert MA, MSc, MBA, etc., as appropriate) Signed ……………………………………………. (candidate) Date 19/09/2019 STATEMENT 2 This dissertation is the result of my own independent work/investigation, except where otherwise stated. Other sources are acknowledged by footnotes giving explicit references. A Bibliography is appended. Signed ……………………………………………. (candidate) Date 19/09/2019 STATEMENT 3 – I hereby give consent for my dissertation, if accepted, to be available for photocopying and for public viewing, and for the title and summary to be made available to outside organisations. Signed ……………………………………………. (candidate) Date 19/09/2019 STATEMENT 4 - BAR ON ACCESS APPROVED I hereby give consent for my dissertation, if accepted, to be available for photocopying and for public viewing after expiry of a bar on access approved by the Graduate Development Committee. Signed ……………………………………………. (candidate) Date 19/09/2019

1

Executive Summary Iron and steel production is one of the most significant industries worldwide. The steel

manufacturing process is divided into three stages, ironmaking, steelmaking-continuous

casting and production of finished products. In this paper, we focus on the steelmaking-

continuous casting stage, in which liquid iron is transformed into steel slabs with the

addition of required alloys and removal of impurities, solidifies and forms slabs.

The steelmaking-continuous casting process has been described as the bottleneck of the

steel production process. Thus, optimal scheduling of this process could result in many

advantages. However, it is a combinatorial problem with complex practical constraints

and strict requirements and is considered as one of the most difficult industrial planning

and scheduling problems.

Across the literature several methods attempting to solve this problem can be found. Each

steelmaking-continuous casting scheduling problem may differ from the others

considering the facilities, the way demand is translated into production planning and any

other additional constraints. As a result, a universal method that can be applied to solve

such a problem does not exist.

The process followed by TATA Steel Port Talbot Works consists of five stages with

multiple machines at all stages. Furthermore, it includes a variety of constraints that result

in high complexity in mathematically formulating a scheduling problem for this process.

Attempting to solve this problem, three different mathematical models were developed.

The first model schedules the last stage of the process, and the second one uses the results

of the first one to schedule the preceding stage. The third model uses the results of the

first one and attempts to schedule all remaining stages. It should be pointed that the second

or the third model may not be able to obtain a feasible solution for any output of the first

one.

The three models were tested on a realistic scenario. A complete schedule was acquired

for the two last stages from the first two models. However, a solution for the third model

could not be acquired in a reasonable time frame. Thus, it was tested on a smaller scale

problem for which a feasible solution was acquired.

2

Several suggestions on how the three models could be improved and used as part of a

complete scheduling system are included in the paper. The models could be combined

with different methods, to obtain a complete feasible schedule. Furthermore, different

solution methods should be tested since they may be proven more advantageous for

business purposes.

3

Acknowledgments

I would like to thank my sponsor supervisor at TATA Steel, Mr. James Watson, for his

guidance, assistance, suggestions and patience throughout the process of writing this

dissertation.

I would also like to thank my university supervisor, Dr. Tony Lewins, for his expertise,

support and guidance on how to approach this research topic. Furthermore, I would like

to thank Dr. Jonathan Thompson for his contribution, willingness to help and always

responding to my questions and queries.

I need to express my gratitude to my parents for their continuous support and

encouragement. In addition, I would like to acknowledge my fellow postgraduate students

and friends at Cardiff University. Your advice and friendship helped me complete this

dissertation. I would like to single out Artemis Giannakopoulou for her support and

sympathetic ear.

4

Table of Contents Executive Summary .......................................................................................................... 1

Acknowledgments ............................................................................................................. 3

Table of Figures ................................................................................................................ 5

Table of Tables .................................................................................................................. 5

Abstract ............................................................................................................................. 6

1. Introduction ................................................................................................................ 7

2. Literature Review .................................................................................................... 11

3. Process Description and Constraints ....................................................................... 17

4. Mathematical Formulation ....................................................................................... 20

4.1. Model 1: Continuous Casting Scheduling ........................................................ 20

4.1.1. Notation ..................................................................................................... 20

4.1.2. Model Constraints ..................................................................................... 21

4.1.3. Objective Function .................................................................................... 24

4.2. Model 2: Treatment Units Scheduling ............................................................. 24

4.2.1. Notation ..................................................................................................... 24

4.2.2. Constraints ................................................................................................ 25

4.2.3. Objective Function .................................................................................... 27

4.3. Model 3: Basic Oxygen and Secondary Steelmaking Scheduling ................... 27

4.3.1. Notation ..................................................................................................... 27

4.3.2. Constraints ................................................................................................ 28

4.3.3. Objective Function .................................................................................... 30

5. Experimental Tests .................................................................................................. 31

6. Recommendations for Further Development ........................................................... 37

7. Conclusion ............................................................................................................... 43

References ....................................................................................................................... 44

Appendix A: Flying Tundish Change (FTC) between Products ..................................... 47

Appendix B: Flying Tundish Change (FTC) between Products ..................................... 48

Appendix C: Xpress Code Model 1 ................................................................................ 49

Appendix D: Xpress Code Model 2 ................................................................................ 51

Appendix E: Xpress Code Model 3 ................................................................................ 55

5

Table of Figures Figure 1. Steel Manufacturing Process ............................................................................. 7 Figure 2. Steelmaking-Continuous Casting Process at TATA Steel .............................. 18 Figure 3. Allocation of sequences to continuous casting machines – Case Study 1 ....... 32 Figure 4. Treatment Unit 1 (RH) Schedule – Case Study 1 ............................................ 33 Figure 5. Treatment Unit 2 (RD) Schedule – Case Study 1 ............................................ 33 Figure 6. . Treatment Unit 3 (CAS1) Schedule – Case Study 1...................................... 33 Figure 7. Treatment Unit 4 (CAS2) Schedule – Case Study 1 ....................................... 34 Figure 8. Heats Schedule – Case Study 1 ....................................................................... 34 Figure 9. Heats Schedule - Case Study 2 ........................................................................ 36 Figure 10. Proposed Heuristic ......................................................................................... 39

Table of Tables Table 1. Sequences - Case Study 1 ................................................................................. 31 Table 2. Availability of the continuous casting machines - Case Study 1 ...................... 31 Table 3. Machine ID Number – Figure 8 ........................................................................ 35 Table 4. Heats – Case Study 2 ........................................................................................ 35 Table 5. Machine ID Number – Figure 9 ........................................................................ 36

6

Abstract The purpose of this paper was to develop a mixed integer linear programming model for

scheduling the steelmaking continuous casting process at TATA Steel Port Talbot Works.

Several formulations and solution methods exist in the literature. However, the

formulation of a model highly depends on the considered process and the respective

constraints. Three models attempting to schedule different stages of the process were

developed. The models were tested using experimental data and feasible solutions were

acquired. Further research on solution methods and improvement to the current models

are required for the development of a complete scheduling system.

7

1. Introduction Iron and steel production is one of the most significant industries worldwide since its

products are used as primary materials for a variety of other industries such as automobile,

construction and manufacturing (Missbauer et al., 2009; Tang et al., 2014).

Input materials, such as iron, ore and scrap, are used to manufacture steel products in a

process that can be divided into three stages:

(1) Ironmaking: iron ore, coke and a fluxing agent are transformed into molten iron

(also called hot metal) in blast furnaces.

(2) Steelmaking-continuous casting: through melting, refining and continuous

casting, the molten iron is converted into solid slabs with a specified chemical

composition.

(3) Production of finished products: slabs are shaped into coils by hot and cold rolling

and take their final form via various processes including continuous or batching

annealing, electro-galvanizing and continuous galvanizing (Missbauer et al.,

2009; Tang and Wang, 2008).

In Figure 1, a representation of the described process can be found.

Figure 1. Steel Manufacturing Process

This industry is characterized by high-temperature high-weight material flow,

sophisticated technological procedures, major investment and high energy consumption.

Additionally, the steelmaking continuous casting (SCC) stage is regularly described as

the bottleneck of the iron and steel making process since it has high-cost energy and

equipment requirements, runs continuously and its total capacity is smaller than the

capacity of the rest of the stages in the iron and steelmaking process (Tang et al., 2002).

As a result, effective scheduling of the SCC processes can be advantageous in several

8

ways, including minimizing material and energy requirements, increasing profit, reducing

costs and superior response to customer demand (Li et al., 2012). However, scheduling of

such a process is a combinatorial problem with complex practical constraints and strict

requirements on material and flow continuity subject to processing times at the different

stages and transportation and waiting times between them (Li et al., 2012; Tang et al.,

2000). According to Zhu et al., 2010, it is an NP-complete problem and can be described

as a “specific hybrid flow shop scheduling problem” that includes multiple jobs,

operations and machines.

As already mentioned, the steelmaking phase consists of three sub-stages, steelmaking,

refining and continuous casting. Starting with the steelmaking phase, oxygen combustion

taking place in a converter or an electric arc furnace decreases the impurity components

(carbon, sulphur, silicon, etc.) of the molten iron to acceptable levels converting it to

molten steel that contains the major alloy contents. A basic production unit in the SCC

stage is termed as charge and refers to the simultaneous smelting in a single converter

(Tang et al., 2002). The words job and heat are alternative terms for charge and are used

interchangeably in this paper. Several slabs for different orders can be casted form a single

charge, but they need to have the same steel grade (Tang et al., 2002).

Afterwards, the output is placed into ladles and transferred to refining furnaces. During

refining, any remaining impurities are removed from the molten steel or additional alloy

elements are added. In the case all refining furnaces are occupied, charges must be held

till the processing of the preceding charges is completed. Waiting causes a decline in the

temperature of the molten steel and reheating is required. The longer the waiting time, the

longer the temperature drop and the higher the energy requirements for reheating (Tang

et al., 2002).

Continuous casting follows refining. The molten steel is poured into a tundish from where

it is tapped into the caster and solidifies into slabs at the bottom of the caster. A series of

jobs successively casted on the same caster without any interruptions is named a cast.

Between consecutive jobs, the casting machine does not require any setup time, but if the

caster must be changed between two casts a significantly long setup time is needed.

Furthermore, a removal time is required for cleaning the equipment between the casts.

9

However, setup and removal time is not included in the duration of the operation since

only the equipment and not the charges are involved (Tang et al., 2002).

Several machines are usually available for the same stage of the process. The goal of the

SCC production scheduling problem is to establish on which machine each job will be

processed at each production stage, determine the respective processing time and the

sequence of jobs on each machine (Tang et al., 2014). A defined SCC problem includes

two types of data:

(1) Production data: information on job grouping (cast) and jobs. This information is

acquired from solving a batch problem that links required slab production to

required jobs and arranges jobs into casts.

(2) Process data: include information on the available machines, processing times,

transportation times, process route and casting speed (Tang et al., 2014).

The SCC scheduling problem is considered as one of the most difficult industrial planning

and scheduling problems (Sbihi et al., 2014). Across the literature several methods

attempting to solve this problem can be found. Among the most common ones are

mathematical programming, heuristics, simulation, expert systems and artificial

intelligence. Each SCC scheduling problem may differ from the others considering the

facilities, the way demand is translated into production planning and any other additional

constraints. A solution may be obtained either optimally or heuristically. In this paper,

focus is given on mathematical programming, and specifically mixed integer

programming,

This paper discusses a problem presented by TATA Steel considering the SCC process at

their steel plant in Port Talbot, UK. The specifics of the problem are discussed in Section

3. Currently, humans schedule the production without the use of any optimization

methods. An attempt to identify possible solution methods and related challenges and

model part of the process using mixed integer programming is presented in this paper.

Furthermore, recommendations on improving the scheduling process are given.

The rest of the paper is organized as follows. In Section 2, a brief review of similar

problems found in literature and their proposed solution methods is presented. Section 3

10

introduces the SCC scheduling problem as described by Tata Steel Strip Products UK Port

Talbot Works. In Section 4, three mixed integer linear programming models are described,

one for scheduling the continuous casting stage of this problem, one for scheduling the

refining stage and one for scheduling all stages preceding continuous casting. In Section

5, examples of the implementation of these models are presented. In Section 6,

recommendations on how a complete scheduling system could be developed are

discussed. Finally, Section 7 draws the conclusions.

11

2. Literature Review In this section, literature related to this paper is reviewed. In particular, several examples

of the SCC scheduling problem and their proposed solution methods are presented. The

various solution methods that have been presented by researchers can be categorized into

mathematical programming, heuristics and artificial intelligence. However, many

examples of combing these methods exist. A complete review of mathematical

programming methods was prepared by Tang et al. (2001). Also, Dutta and Fourer (2001)

reviewed mathematical programming applications in the integrated steel industry.

The SCC scheduling problem can be described as a hybrid flowshop problem with

parallel machines at one or more stages (Zhao et al., 2011; Li et al., 2014; Atighehchian

et al., 2009; Tang et al., 2002; Pan et al., 2013; Missbauer et al., 2009). It is one of the

most complex and difficult hybrid flowshop problems due to the additional practical

constraints (e.g. job sequencing, precedence) and the more complicated scheduling

criteria (Li et al., 2014; Atighehchian et al., 2009; Tang et al., 2002). Pan et al. (2013)

and Li et al. (2014) described the problem as a realistic hybrid flowshop problem. The

traditional hybrid flowshop problem involves a process with multiple stages and multiple

machines at one or more stages in which all jobs go through the required stages in the

same order. The realistic hybrid flowshop problem is a generalization of the traditional

one that includes realistic considerations and constraints (Pan et al., 2013). The realistic

hybrid flowshop problem has been studied excessively due to its significant industrial

applications (Pan et al., 2013). However, the differences in the complex production

constraints, the production mode and the objectives of different steel producers result in

need of developing scheduling systems adapted to the specifications of each

manufacturer. Additionally, although Gupta (1988) proved that the two stage hybrid

flowshop problem is NP-complete and several publications on solving a hybrid flowshop

problem exist, these methods cannot be used for the SCC scheduling problem due to the

additional practical constraints. (Tang et al., 2002). As a result, researches have studied

several solution methods specifically for the SCC scheduling problem.

Harjunkoski and Grossmann (2001) suggested a decomposition method instead of

modelling one large-scale and unsolvable MILP. They considered a problem of a four-

12

stage process, with two machines in the first stage and a single machine at the rest three

stages, multiple product types and a predetermined processing time of each product at

each stage. The problem was divided into the following sub-problems: (1) grouping jobs

into sequences. (2) scheduling each sequence individually. (3) combining all individual

schedules. (4) LP-improvement problem which attempts to make improving changes to

the schedule developed in the previous phase. The model was tested using real-world data

and solved using GAMS-19.5/XPRESS-MP.

Missbauer et al. (2009) created a computerized scheduling system for a steel plant in

Austria. They modelled the SCC problem as a mixed integer linear problem (MILP) and

used a heuristic algorithm for solving it. They divided the problem into four sub-problems:

(1) creating a schedule for the continuous casters. (2) assigning the jobs to the parallel

machines at the steelmaking and refining stages. (3) sequencing the jobs at the

steelmaking and refining machines. (4) determining the timing of each operation. Their

heuristic algorithm attempts to solve the problem in three stages: (1) scheduling the

continuous casters taking into account the capacity of the steelmaking and refining stages

and the supply of liquid metal. (2) scheduling all jobs at the remaining stages. (3) solving

a linear problem to make improvements on the schedule. In other words, stages (1) and

(2) are heuristics that fix the values of the binary variables of their MILP model and

determine the initial values for the continuous variables. Based on these fixed values, the

final values of the continuous variables are calculated at stage (3). A complete

computerized scheduling program was developed based on their model, but it was not

implemented on existing software. A software vendor developed a customized software.

Tang et al. (2000) proposed a mathematical programing model for overcoming machine

conflicts in SCC scheduling. As Missbauer et al. (2009) suggested, they also divided the

whole SCC problem into four sub problems: (1) Cast sequencing. Casts are scheduled at

the continuous casters prioritizing those with the nearest delivery time. Resource

constraints are not considered at this stage and the problem is formulated as a single

machine sequence problem. (2) Creating sub-schedules. Scheduling the jobs of each cast

at the rest of the stages based on time progress. (3) Creating a “rough” schedule combining

the sub-schedules from the previous step. (4) Elimination of machine conflicts. Since

13

resource constraints are not considered in the previous steps, machine conflicts exist in

the “rough” schedule that must be eliminated to obtain a feasible schedule. The first three

steps are completed using human-computer interaction while the last one is solved using

a mathematical model. It is a non-linear program which can be transformed into a liner

problem and solved by standard software packages. A combination of human-computer

interaction and the proposed model resulted in the development of a scheduling system in

MS C 6.0 language and SYBASE database system.

Bellabdaoui and Teghem (2006) presented a MILP model for scheduling the SCC process

of an Arcelor Group site in Belgium. The considered process consisted of three stages and

two parallel machines at each stage. They also accounted for the transportation time

between the machines. Their objective was to create a production schedule given one job

sequence for each casting machine and their initial condition (i.e. the instance a machine

becomes available) while minimizing the completion time for all sequences. Processing

times at the first two stages and transportation times were fixed and entered as input

parameters while the processing time of a charge on the casters was a decision variable

that varied between a lower and an upper bound. The model was implemented in

OMPartners software.

Fanti et al. (2016) developed a MILP model for a more complicated process. They

considered a four-stage process (melting, refining, degassing, casting/stripping) with

multiple machines. The last stage could be performed on two different types of machines

(continuous casting or ingot casting machines). They divided the problem into four sub-

problems that they modelled separately, and then, connected them introducing a set of

additional constraints. Thus, the solution was a global optimal. The four sub-models were

defined as: (1) SCC flow, establishing the sequence of the machines on which each charge

would be processed starting from the melting and ending to casting. (2) Ladle scheduling,

assigning ladles to charges. (3) Continuous casting machines scheduling. (4) Ingot casting

machines scheduling. The optimization model considered deterministic processing times

for each machine and its objective was to minimize the completion time of the last job.

The model was implemented in C++.

14

Sbihi et al. (2014) attempted to introduce a generalized formulation of the SCC problem.

They modelled a three stage process as a MILP without directly considering any material

handling resources, such as ladles or transportation machines. For each caster, the number

of sequences and the number of charges assigned to each sequence was predetermined.

The objective was to schedule the jobs of each sequence at all stages while maximizing

productivity. The processing times at the first two stages of the SCC process and the

transportation times between machines were constant while the processing time of a

charge at the third stage was determined by the model and it was required to be between

an upper and a lower bound. The model was tested on CPLEX software.

Tang et al. (2002) modelled the scheduling problem as an integer program and used

Lagrangian relaxation for solving it. They modelled a three-stage process. The number of

casts and charges was predetermined as well as the processing and transportation times of

each charge at each stage. They proposed a solution method that incorporated Lagrangian

relaxation, dynamic programming and heuristics. After relaxing machine capacity

constraints in their formulation, the problem could be divided into simpler sub-problems.

Using dynamic programming, these simpler problems were solved in a low level while

Lagrangian multipliers were changing iteratively at a high level. After iteration

completion, a heuristic was used to modify the sub-problem solutions in order for a

feasible global solution to be obtained. Visual C++ language was used for the model

implementation.

Tang and Liu (2007) created a deterministic mixed integer program model for scheduling

production orders based on data from Baosteel in Shanghai, China. Considering the SCC

and the rolling stages of the steel making process, the objective was to schedule each

production order at each stage under capacity constraints while minimizing the weighted

completion time of all orders. As Tang et al. (2002) proposed, the solution method

presented was based on a combination of Lagrangian relaxation, linear programming and

heuristics and implemented using Visual C++.

Similarly, Mao et al. (2014) formulated the SCC problem as a MILP and used Lagrangian

relaxation to solve it. They modelled it as a hybrid flowshop problem, and their objective

was to minimize earliness/tardiness of the completion of charge processing. As in Tang

15

et al. (2002), relaxation on machine capacity constraints resulted into two simpler sub-

problems for which several solution algorithms were tested and compared. It was

concluded that their proposed Lagrangian relaxation method results in better quality

solutions in less time than convectional Lagrangian relaxation techniques. Algorithms

were implemented in C#.

Researchers have also studied different versions of the SCC scheduling problem. For

example, Naphade et al. (2001) formulated a batching problem. Considering the size of

the charges, received orders and their delivery time and different product characteristics,

they developed a MILP that determined which charges should be used for each order and

processing times. The objective was to minimize tardiness of delivery time and waste.

Due to the computational difficulty of the problem and time restrictions, they developed

a two-level heuristic algorithm that decomposed the problem into simpler sub-problems

to solve it. The algorithm was implemented by using C++ language. Additionally, Tan

and Liu (2013) formulated the SCC scheduling problem considering a variable electricity

price. The objective was to obtain a daily schedule minimizing electricity and production

costs. The proposed solution method consisted of two stages. At the first one, using

mathematical programming, a relative schedule for each cast was acquired without

considering the electricity price. At the second stage, a scheduling problem for all casts

with resource constraints and variable electricity was modelled and solved by using a

combination of heuristics and constraint propagation. The model was tested using real-

world data and implemented using JAVA language.

Pacciarelli and Pranzo (2004) presented a different heuristic approach. Their model was

based on the alternative graph, a generalization of the disjunctive graph of Roy and

Sussman. It was solved using a beam search procedure and implemented in C language.

Furthermore, Zhao et al. (2011) described a two-step solution approach. In the first step,

tabu search algorithm arranged the jobs on the machines. In the second one, starting and

ending times of the processing of jobs at all stages were determined solving a linear

programming model. Their model was implemented using Visual C++.

Using artificial intelligence to solve the SCC scheduling problem has also been

researched. For instance, Pan et al. (2013) described an artificial bee colony algorithm

16

that scheduled a multiple-stage, multiple-machine SCC process with predefined casts and

processing times at each stage. Furthermore, Li et al. (2014) proposed a fruit fly

optimisation algorithm for solving the SCC scheduling problem formulated it as hybrid

flowshop problem with predefined casts and processing times. Atighehchian et al. (2009)

presented an approach that combined ant colony optimization and non-linear optimization

techniques for solving a similar version of the problem. The solution method consisted of

two stages: (1) assigning jobs to machines and determining sequencing. (2) determining

timings of the jobs on the machines.

Several formulations and solution approaches exist in literature; however, there is not a

universal model or methodology that can be applied in all cases. Each problem is highly

dependable on the structure of the considered steel plant the desired objective. This

obvious when comparing the problem presented by TATA Steel (described in Section 3)

to the literature findings above.

17

3. Process Description and Constraints In this section, the SCC process followed at TATA Steel, Port Talbot and all the

restrictions applied to it are presented.

The steel and slab process consists of three different parts: basic oxygen steelmaking,

secondary steel making and continuous casting. Liquid iron is supplied by the blast

furnaces at an inconstant rate. The liquid iron is transferred using torpedoes. During the

basic oxygen steel making process, the liquid iron is poured in iron ladles. The content of

a ladle is termed as a heat and each heat is used to produce slabs of a specific product type

and width. The filled ladle is transferred to the next stage during which desulphurisation

happens. To complete the basic oxygen steelmaking process, the liquid iron is transferred

to one of the two available vessels which have already been charged with scrap (approx.

80 % (270 - 310t) of the charge is hot metal and 20% (60-90t) is scrap). After the vessel

has been loaded, a copper tipped, water cooled lance is lowered into the vessel and oxygen

is blown at a rate of 1000 m3/min.

The next part of the process is called dwell and it involves tapping and transfer, treatment

and floatation. The vessels are tapped into ladles which are transferred to one of the four

available treatment units where the secondary steelmaking process takes place. Based on

the type of the products that are being produced different treatment units may require to

be used. Then, floatation follows and ladles are transferred to casting machines. The last

step is continuous casting where the hot metal is solidified into slabs in one of the casting

machines.

Figure 2 illustrates the different paths that can be followed by a heat before it is

transformed into slabs.

18

Figure 2. Steelmaking-Continuous Casting Process at TATA Steel

Before attempting to create a production schedule for this process, the constraints related

to this process must be introduced. Firstly, the hot metal stock needs to be kept between

an upper and a lower limit to avoid any disturbances in the production. As mentioned

above, the hot metal arrives at an inconstant rate. Additionally, several constraints related

to operation timings exist. The processing time for several parts of the process are not

fixed, but they need to lay within a predetermined range. The total dwell time, but also its

three different parts, specifically, tap and transfer, treatment and floatation can be

adjusted, but their duration needs to be between a minimum and a maximum value that

are predetermined. For the treatment and the whole dwell process, these values depend on

the product type while the tap & transfer and the floatation times are independent of the

product and they need to be in the range of 15-25 minutes. Similarly, the processing time

of a heat in the casting machines is calculated based on the casting speed that is controlled

by adjusting the speed utilization percentage. The casting speed depends on the product,

width and the casting machine that is used, and the speed utilization ratio is usually in the

range of 70% to 90%. From the casting speed, the emptying time (processing time) is

determined. The duration of the remaining steps of the steelmaking process (ex. vessel

blowing) are fixed and independent of any other variables.

Additionally, there are several constraints related to the casting machines. Casting needs

to be continuous in all machines with a gap of two to four minutes between the ending

19

time of the previous heat and the arrival of the next one. Any interruption would result in

a two-hour break in the steelmaking making process. As sequence length is defined the

number of continuous heats of the same product and width. For each combination of

product, width and caster, there is a minimum and a maximum value for the sequence

length.

Lastly, there are constraints in the order of sequences. Some products cannot be

manufactured on the same caster after specific products due to restrictions in the flying

tundish changes. A table presenting permitted flying tundish changes is available in

Appendix A. Furthermore, changes equal to or less than 200mm are allowed regarding

width between two consecutive sequences. For example, a sequence of product 319x with

width 3600mm can be placed after a sequence of product 319x with width 3400mm, but

not after one of product 319x with width 3200mm. If two sequences do not satisfy these

conditions and they are scheduled one after the other on the same continuous casting

machine a two-hour gap must exist between the ending time of the preceding and the

starting time of the following sequence.

20

4. Mathematical Formulation In this section, three MILP models are described. The first model schedules the heats at

the continuous casting stage, and the second one uses the results of the first one to

schedule the heats on the treatment units. The third one uses the results of the first one

and attempts to schedule the rest of the stages.

4.1. Model 1: Continuous Casting Scheduling A MILP model for scheduling a predetermined number of casts (sequences) at the final

stage of the process (continuous casting) was formulated. For the development of this

model, the following assumptions were made:

x The length, product type and width of all sequences is predetermined.

x The processing time of all heats in the same sequence is constant but not fixed.

x All sequences can be processed on any casting machine independently of their

width and product type.

x Not all continuous casting machines are available to start operating at time 0.

x The minimum acceptable processing time of a heat is 70% of its respective

maximum time.

x Each machine has a determined number of positions, and each heat processed on

that machine occupies a position. In reality, such a parameter does not exist, but it

was added in the formulation to avoid machine conflicts (i.e. no more than one

heats are being processed on the same machine simultaneously). The number of

positions is set equal to the total number of sequences, so in case all sequences

need to be assigned to one machine due to restrictions, a solution can be obtained.

However, this number can be modified. For instance, if the same number of

sequences needed to be scheduled on all machines the number of possible

positions could be adjusted accordingly.

4.1.1. Notation Several notations for defying the problem set, indices, parameters and variables are

required to formulate the model:

21

Sets, Indices and Parameters

𝑃 Set of product types. 𝑆 Set of sequences. 𝑀 Set of continuous casting machines. 𝑉 Set of possible positions in a continuous casting machine (vk=N is the

last position). 𝑝, 𝑝′ Indices of product types. 𝑠, 𝑠′ Indices of sequences. 𝑚 Index of continuous casting machines. 𝑣 Index of positions. N Number of total sequences. 𝐽𝑠 Number of heats in sequence s. 𝑊𝑠 Width of slabs that will be produced from the heats of sequence s. 𝑌𝑠,𝑝 =1 if the heats of sequence s will be used to produce slabs of product type

p; 0 otherwise. 𝑀𝑇𝑝 Maximum processing of a heat of product p. 𝑅𝑝,𝑝′ =1 if set-up time is required in order a sequence of product type 𝑝′ to be

processed after a sequence of product type p on the same machine; 0 otherwise.

𝐴𝑉𝑚 Starting time of continuous casting machine m.

Decision Variables

𝑆𝑇𝑣,𝑚 Starting time of position v on machine m. 𝐸𝑇𝑣,𝑚 Ending time of position v on machine m. 𝑋𝑠,𝑣,𝑚 =1 if sequence s is processed on position v of machine m.

𝑆𝑅𝑠,𝑠′ ,𝑣,𝑚 =1 if sequence 𝑠′ is assigned to the (v+1)th position of machine m, sequence s to vth position and set-up time is required between sequences s and 𝑠′.

4.1.2. Model Constraints The constraints developed represent the relationships a solution must meet considering

machine conflicts, production continuity, sequence succession allowance, etc. A

solution must satisfy the following constraints:

∑ ∑ 𝑋s,v,m

𝑉

𝑣

𝑀

𝑚

= 1

for all s ϵ S

(1)

22

∑ 𝑋s,v,m

𝑆

𝑠

≤ 1

for all m ϵ M, v ϵ V

(2)

𝑋s,v,m + 𝑋 𝑠′,v+1,m − 1 ≤ 𝑆𝑅𝑠,𝑠′,𝑣,𝑚 for all m ϵ M, 𝑝, 𝑝′ϵ P, 𝑠, 𝑠′ ϵ S, v=1…vk-1, 𝑅𝑝,𝑝′=1, 𝑌𝑠,𝑝=1, , 𝑌𝑠′,𝑝′=1

(3)

𝑋s,v,m + 𝑋 𝑠′,v+1,m − 1 ≤ 𝑆𝑅𝑠,𝑠′,𝑣,𝑚 for all m ϵ M, 𝑠, 𝑠′ϵ S, v=1…vk-1, Ws-Ws’ > 200

(4)

𝑋s,v,m + 𝑋 𝑠′,v+1,m − 1 ≤ 𝑆𝑅𝑠,𝑠′,𝑣,𝑚 for all m ϵ M, 𝑠, 𝑠′ϵ S, v=1…vk-1, Ws’-Ws > 200

(5)

𝑆𝑇𝑣,𝑚 = 𝐸𝑇𝑣−1,𝑚 + 120 ∗ ∑ ∑ 𝑆𝑅𝑠,𝑠′,𝑣−1,𝑚

𝑆

𝑠′

𝑆

𝑠

for all m ϵ M, v=2…vk

(6)

𝐸𝑇𝑣,𝑚 ≤ 𝑆𝑇𝑣,𝑚 + ∑ ∑ 𝑌𝑠,𝑝 ∗ 𝐽𝑠 ∗ 𝑀𝑇𝑝 ∗ 𝑋𝑠,𝑣,𝑚

𝑃

𝑝

𝑆

𝑠

for all m ϵ M, v ϵ V

(7)

𝐸𝑇𝑣,𝑚 ≥ 𝑆𝑇𝑣,𝑚 + ∑ ∑ 𝑌𝑠,𝑝 ∗ 𝐽𝑠 ∗ 0.7 ∗ 𝑀𝑇𝑝 ∗ 𝑋𝑠,𝑣,𝑚

𝑃

𝑝

𝑆

𝑠

for all m ϵ M, v ϵ V

(8)

∑ 𝑋s,v,m

𝑆

𝑠

− ∑ 𝑋s,v+1,m

𝑆

𝑠

≥ 0

for all m ϵ M, v=1…vk-1

(9)

𝑆𝑇1,𝑚 ≥ 𝐴𝑉𝑚 for all m ϵ M,

(10)

𝑋𝑠,𝑣,𝑚 ∈ {0, 1} for all s ϵ S, m ϵ M, v ϵ V

(11)

23

𝑆𝑅𝑠,𝑠′,𝑣,𝑚 ∈ {0, 1} for all s, s’ ϵ S, m ϵ M, v ϵ V

(12)

𝑆𝑇𝑣,𝑚 ≥ 0 for all m ϵ M, v ϵ V

(13)

𝐸𝑇𝑣,𝑚 ≥ 0 for all m ϵ M, v ϵ V

(14)

Constraint (1) ensures that each heat is processed on one and only one machine. Constraint

(2) means that at most one heat is assigned to every position of a machine (i.e. no more

than one heats are being processed on the same machine simultaneously). Constraints (3)

- (5) determine if set-up time is required between two sequences.

Constraint (3) checks if set-up time is required between two sequences because their

assigned product types cannot be processed on the same machine in succession.

Constraints (4) - (5) check if set-up time is required between two sequences due to the

difference in their assigned widths. Constraint (6) sets starting time of a position to be

equal to the ending time of the previous one on in the same machine plus any set-up time

if it is required. Thus, continuous casting is ensured.

Constraints (7) – (8) ensure that the processing time of each sequence is between an

allowed range based on the number of heats they consist of and the minimum and

maximum allowed processing times of the heats of their assigned product type.

Constraint (9) requires positions of all machines to be filled without leaving any empty

positions between two occupied ones. Differently, a position could not be occupied and

would have the same starting and ending time that would be equal to the ending time of

the previous one and the starting time of the following one. In this case, if set-up time was

required between the two successive sequences that were not occupying two successive

positions it would not be included in the calculations. For example, consider two

sequences s and s’ that their width difference is more than 200mm and s’ is scheduled to

be treated on machine m right after s is treated on m. Because of their width difference, set-up time is required between the processing of the two sequences. Without including

24

constraint (9), s could be assigned to position v and s’ to v+2 while position v+1 remained

empty. In this scenario, from constraint (7) results that 𝐸𝑇𝑣,𝑚 = 𝑆𝑇𝑣+1,𝑚 = 𝐸𝑇𝑣+1,𝑚 =

𝑆𝑇𝑣+2,𝑚 since 𝑆𝑅𝑠,𝑠′,𝑣+2,𝑚 = 0. So, the set-up time is not added and the obtained schedule

is not feasible.

Constraint (10) forces the starting time of the first position of all machines to be greater

or equal to the time the respective machines can begin operating. Constraints (11) – (14)

are introduced to strengthen the formulation.

4.1.3. Objective Function The aim of the model is to determine a feasible schedule while maximizing productivity.

The objective function is to minimize the total completion times of the sequences. All

sequences at machine m finish with the end of the last position at time 𝐸𝑇𝑁𝑘,𝑚. Thus, the

objective function is formulated as:

Min 𝑍1 = ∑ 𝐸𝑇𝑁,𝑚

𝑀

𝑚

(15)

4.2. Model 2: Treatment Units Scheduling

A MILP model for scheduling the heats at the treatment units after they have been

scheduled at the continuous casting stage is presented. It should be highlighted that it is

not certain that a solution exists for any output of the previous model. The following

assumptions were made while formulating this model:

x As casting machines in the previous model, treatment units have a determined

number of positions, and each heat processed on that unit occupies a position. In

reality, such parameter does not exist, but it was added in the formulation to avoid

machine conflicts. The number of positions is set equal to the total number of jobs,

but this number can be modified.

x No transportation time is considered between the treatment units and the casting

machines. In reality, the transportation time lays within the range of 15-25

minutes.

4.2.1. Notation The following notation was used in formulating the model:

25

Sets, Indices and Parameters

𝑃 Set of product types. 𝐽 Set of heats. 𝑈 Set of treatment units. 𝐾 Set of possible positions in a continuous casting machine (kl=L is the

last position). 𝑝 Index of product types. 𝑗 Index of heats. 𝑢 Index of treatment units. 𝑘 Index of positions. L Number of total heats.

𝑆𝐶𝐶𝑗 Starting time of heat j at the continuous casting stage. 𝐷𝑗,𝑝 =1 if heat j will be used to produce slabs of product type p; 0 otherwise.

𝑀𝑎𝑥𝑇𝑝 Maximum processing time of a heat of product p. 𝑀𝑖𝑛𝑇𝑝 Minimum processing time of a heat of product p. 𝑀𝑅𝑝,𝑢 =1 if a heat of product type 𝑝 cannot be processed on treatment unit u; 0

otherwise.

Decision Variables

𝐵𝑇𝑘,𝑢 Starting time of position k on treatment unit u. 𝐹𝑇𝑘,𝑢 Ending time of position k on treatment unit u. 𝑄𝑗,𝑘,𝑢 =1 if heat j is processed on position k of treatment unit u.

4.2.2. Constraints The constraints developed represent the relationships a solution must meet considering

machine conflicts, machine restrictions, etc. A solution must satisfy the following

constraints:

∑ ∑ 𝑄j,k,u

𝐾

𝑘

𝑈

𝑢

= 1

for all j ϵ J

(16)

∑ 𝑄j,k,u

𝐽

𝑗

≤ 1

for all u ϵ U, k ϵ K

(17)

26

𝐹𝑇𝑘,𝑢 = ∑ 𝑄j,k,u

𝐽

𝑗

∗ 𝑆𝐶𝐶𝑗

for all u ϵ U, k ϵ K

(18)

𝑄j,k,u = 0 for all u ϵ U, 𝑝ϵ P, 𝑗 ϵ J, k ϵ K, 𝑀𝑅𝑝,𝑢 = 1, 𝐷𝑗,𝑝 = 1

(19)

𝐹𝑇𝑘,𝑢 ≤ 𝐵𝑇𝑘,𝑢 + ∑ ∑ 𝐷𝑗,𝑝 ∗ 𝑀𝑎𝑥𝑇𝑝 ∗ 𝑄j,k,u

𝑃

𝑝

𝐽

𝑗

for all u ϵ U, k ϵ K

(20)

𝐹𝑇𝑘,𝑢 ≥ 𝐵𝑇𝑘,𝑢 + ∑ ∑ 𝐷𝑗,𝑝 ∗ 𝑀𝑖𝑛𝑇𝑝 ∗ 𝑄j,k,u

𝑃

𝑝

𝐽

𝑗

for all u ϵ U, k ϵ K

(21)

𝐹𝑇𝑘,𝑢 ≤ 𝐵𝑇𝑘+1,𝑢 for all u ϵ U, v=1…L-1

(22)

𝐵𝑇𝑘,𝑢 ≥ 0 for all m ϵ M, v ϵ V

(23)

𝐹𝑇𝑘,𝑢 ≥ 0 for all m ϵ M, v ϵ V

(24)

𝑄j,k,u ∈ {0, 1} for all s ϵ S, m ϵ M, v ϵ V

(25)

Constraint (16) ensures that each heat is processed on one and only one machine.

Constraint (17) means that at most one heat is assigned to every position of a machine.

Constraint (18) sets the ending time of a position equal to the starting time at the

continuous casting stage of the heat assigned to this position. Constraint (19) restricts

heats to be treated on units that cannot process their assigned product types.

27

Constraints (20) – (21) ensure that the processing time of each heat is between the allowed

range for its product type. Constraint (22) requires the ending time of a position to be

smaller or equal to the starting time of the next position on the same machine. Constraints

(23) – (25) are added to strengthen the formulation.

4.2.3. Objective Function The objective function is minimizing the processing time of all heats. It is formulated as

the sum of the difference between the ending and the starting time of all positions:

Min 𝑍2 = ∑ ∑(𝐹𝑇𝑘,𝑢 − 𝐵𝑇𝑘,𝑢)

𝑈

𝑢

𝐾

𝑘

(26)

4.3. Model 3: Basic Oxygen and Secondary Steelmaking Scheduling A MILP model for scheduling the heats at the remaining stages after they have been

scheduled at the continuous casting stage is described. This model was developed after

modifying the sub-model of steelmaking and casting flow discussed in Fanti et al. (2016).

It should be highlighted that it is not certain that a solution exists for any output of Model

1. The following assumptions were made while formulating this model:

x No transportation time is considered between the machines at the different stages.

4.3.1. Notation The following notation was used in formulating the model:

Sets, Indices and Parameters

𝑃 Set of product types. 𝐽 Set of heats.

𝑀 Set of machines. 𝐼 Set of stages. 𝑝 Index of product types.

𝑗, k Indices of heats. 𝑚, 𝑢 Indices of machines.

𝑖 Index of stages (il is the last stage). L Number of total heats. G A large number.

𝑆𝐶𝐶𝑗 Starting time of heat j at the continuous casting stage. 𝐷𝑗,𝑝 =1 if heat j will be used to produce slabs of product type p; 0 otherwise.

𝑀𝑎𝑥𝑇𝑝 Maximum processing time of a heat of product p at the treatment units. 𝑀𝑖𝑛𝑇𝑝 Minimum processing time of a heat of product p at the treatment units.

28

𝑀𝑅𝑝,𝑚 =1 if a heat of product type 𝑝 cannot be processed on machine m; 0 otherwise.

SMi, m =1 if machine m can be used at stage i; 0 otherwise. PTm Processing time of a heat at machine m (This set to 0 for the treatment

units). Decision Variables

𝐵𝑇𝑗,𝑖,𝑚 Starting time of heat j at stage i on machine m. 𝐹𝑇𝑗,𝑖,𝑚 Ending time of heat j at stage i on machine m.. 𝑥𝑗,𝑖,𝑚 =1 if heat j is processed on machine m at stage i.

𝑦𝑗,𝑘,𝑖,𝑚 =1 if heats j and k are both processed on machine m at stage i and heat j precedes k.

4.3.2. Constraints

The following constraints represent the relationships a solution must meet considering

machine conflicts, machine restrictions, etc.:

∑ 𝑥j,i,m

𝑀

𝑚

= 1

for all i ϵ I, j ϵ J

(27)

𝐹𝑇𝑗,𝑖𝑙,𝑚 = 𝑥j,il,m ∗ 𝑆𝐶𝐶𝑗 for all j ϵ J, m ϵ M

(28)

𝑥j,i,m ≤ 0 for all m ϵ M, 𝑝ϵ P, 𝑗 ϵ J, i ϵ I, 𝑀𝑅𝑝,𝑚 = 1, 𝐷𝑗,𝑝 = 1

(29)

𝑥j,i,m ≤ 𝑆𝑀𝑖,𝑚 for all m ϵ M, 𝑗 ϵ J, i ϵ I

(30)

𝐹𝑇𝑗,𝑖𝑙,𝑚 ≥ 𝐵𝑇𝑗,𝑖𝑙,𝑚 + ∑ 𝐷𝑗,𝑝 ∗ 𝑀𝑖𝑛𝑇𝑝 ∗ 𝑥𝑗,𝑖𝑙,𝑚

𝑃

𝑝

for all m ϵ M, j ϵ J

(31)

𝐹𝑇𝑗,𝑖𝑙,𝑚 ≤ 𝐵𝑇𝑗,𝑖𝑙,𝑚 + ∑ 𝐷𝑗,𝑝 ∗ 𝑀𝑎𝑥𝑇𝑝 ∗ 𝑥𝑗,𝑖𝑙,𝑚

𝑃

𝑝

for all m ϵ M, j ϵ J

(32)

29

𝐹𝑇𝑗,𝑖,𝑚 + 𝐵𝑇𝑗,𝑖,𝑚 ≤ 𝑥𝑗,𝑖,𝑚 ∗ 𝐺 for all m ϵ M, j ϵ J, i ϵ I

(33)

𝐹𝑇𝑗,𝑖,𝑚 = 𝐵𝑇𝑗,𝑖,𝑚 + 𝑥𝑗,𝑖,𝑚 ∗ 𝑃𝑇𝑚 for all m ϵ M, j ϵ J, i 1..(il-1)

(34)

𝐵𝑇𝑗,𝑖+1,𝑚 ≤ 𝐹𝑇𝑗,𝑖,𝑚 + (2 − 𝑥𝑗,𝑖,𝑚 − 𝑥𝑗,𝑖+1,𝑢) ∗ 𝐺 for all m ϵ M, j ϵ J, i 1..(il-1)

(35)

𝐵𝑇𝑗,𝑖+1,𝑚 ≥ 𝐹𝑇𝑗,𝑖,𝑚 − (2 − 𝑥𝑗,𝑖,𝑚 − 𝑥𝑗,𝑖+1,𝑢) ∗ 𝐺 for all m ϵ M, j ϵ J, i 1..(il-1)

(36)

𝐵𝑇𝑘,𝑖,𝑚 ≥ 𝐹𝑇𝑗,𝑖,𝑚 − (1 − 𝑦𝑗,𝑘,𝑖,𝑚) ∗ 𝐺 for all m ϵ M, j, k ϵ J, i ϵ I

(37)

𝑦𝑗,𝑘,𝑖,𝑚 + 𝑦𝑘,𝑗,𝑖,𝑚 ≥ 𝑥𝑗,𝑖,𝑚 + 𝑥𝑘,𝑖,𝑚 − 1 for all m ϵ M, j, k ϵ J, i ϵ I, k ≠ i

(38)

𝑦𝑗,𝑘,𝑖,𝑚 ≤ 𝑥𝑗,𝑖,𝑚 for all m ϵ M, j, k ϵ J, i ϵ I

(39)

𝑦𝑗,𝑘,𝑖,𝑚 ≤ 𝑥𝑘,𝑖,𝑚 for all m ϵ M, j, k ϵ J, i ϵ I

(40)

𝐵𝑇𝑗,𝑖,𝑚 ≥ 0 for all m ϵ M, i ϵ I, j ϵ J

(41)

𝐹𝑇𝑗,𝑖,𝑚 ≥ 0 for all m ϵ M, i ϵ I, j ϵ J

(42)

𝑥𝑗,𝑖,𝑚 ∈ {0, 1} for all m ϵ M, i ϵ I, j ϵ J

(43)

𝑦𝑗,𝑘,𝑖,𝑚 ∈ {0, 1} for all m ϵ M, i ϵ I, j, k ϵ J

(44)

30

Constraint (27) ensures that each heat is processed on one and only one machine at all

stages. Constraint (28) sets the ending time of a heat at the secondary steelmaking stage

equal to its starting time at the continuous casting stage. Constraint (29) restricts heats to

be assigned to machines that cannot process their product type. Constraint (30) forces

heats to be treated at the appropriate machines at each stage. In other words, if machine

m is a treatment unit, then Constraint (30) ensures it is used only for processing heats at

the secondary steelmaking stage.

Constraints (31) – (32) ensure that the processing time of each heat at the secondary

steelmaking stage is between the allowed range for its product type. Constraint (33) sets

the starting and the ending time of a heat at machine equal to zero, if it is not treated on

that machine. Constraint (34) sets the ending time of a heat at a specific machine equal to

its starting time plus the respective processing time at the stage preceding secondary

steelmaking.

Constraints (35) - (36) ensure that the starting time of a heat at a specific stage is equal to

the ending time of that heat at the previous stage. Constraint (37) forces the starting time

of a heat to be greater than the ending time of all the preceding heats treated on the same

machine. Constraint (38) guarantees that if two heats are processed on the same machine,

then one precedes the other. Constraints (39) – (44) are used to strengthen the formulation.

4.3.3. Objective Function The objective function is minimizing the processing time of all heats at the treatment units

(the last stage). It is formulated as the sum of the difference between the ending and the

starting time of all jobs at the last stage:

Min 𝑍3 = ∑ ∑(𝐹𝑇𝑗,𝑖𝑙,𝑚 − 𝐵𝑇𝑗,𝑖𝑙,𝑚)

𝑀

𝑀

𝐽

𝑗

(45)

31

5. Experimental Tests The models presented in Section 4 were implemented on FICO Xpress-Optimizer Solver.

The codes developed for the three models can be found in Appendices C, D and E. This

section discusses the results of a case study. A set of six sequences consisting of 48 heats

in total was considered. A detailed description of the data is displayed on Tables 1 and 2.

Table 1. Sequences - Case Study 1

Sequence Heats Product

Type Width Possible Treatment

Units

Max Treatment Time(min)

Min Treatment Time(min)

Max Casting

Time(min) 1 6 300x 3200 RH, RD 45 35 118 2 10 319x 2000 CAS1, CAS2, RH, RD 35 25 72.6 3 8 336x 1800 CAS1, CAS2, RH, RD 35 25 72.6 4 8 345x 2200 CAS1, CAS2 35 25 72.6 5 8 319x 1800 CAS1, CAS2, RH, RD 35 25 72.6 6 8 336x 2000 CAS1, CAS2, RH, RD 35 25 72.6

Table 2. Availability of the continuous casting machines - Case Study 1

Continuous Casting Machine Starting Time

CC1 0 CC2 20 CC3 0

Figure 3 is a visualization of the results obtained from Model 1 (after they were associated

with the results of Model 2, so starting times of machines 1 and 3 are not 0). The allocation

of the sequences to the continuous casting machines and their respective starting and

ending times are presented on the graph. It was determined that all constraints included in

the model were satisfied. No more than one sequences are processed on a machine

simultaneously, all sequences are treated, casting is continuous, restrictions on the order

of sequences on the machines due to product types and width are satisfied and all casters

start operating after the time they became available.

32

Figure 3. Allocation of sequences to continuous casting machines – Case Study 1

The results acquired from Model 1 were used as input for Model 2. However, data

preprocessing was required before attempting to solve Model 2. The starting time of each

heat at the continuous casting stage was required. If sequence s was assigned to position

v of machine m, then the starting times of the heats in this sequence were determined as follows:

𝑆𝐶𝐶𝑗 = 𝑆𝑇𝑣,𝑚 + (𝑗 − 1) ∗ ( 𝐸𝑇𝑣,𝑚 − 𝑆𝑇𝑣,𝑚

𝐽𝑠 )

for all j ϵ Js

(46)

Using this data and Model 2, the schedules shown in Figures 4 to 7 were acquired for the

four treatment units. Again, all constraints considered in Model 2 were satisfied. All heats

are treated on the appropriate units based on product type, no more than one heat is being

processed on a unit at a specific instance, and the ending times of the heats at the treatment

stage are equal to the their respective starting times at the continuous casting stage.

Sequence 6

Sequence 1

Sequence 2

Sequence 3

Sequence 4

Sequence 5

0 100 200 300 400 500 600 700 800 900 1000 1100 1200

CC1

CC2

CC3

Time

CC M

ac hi

ne s

33

Figure 4. Treatment Unit 1 (RH) Schedule – Case Study 1

Figure 5. Treatment Unit 2 (RD) Schedule – Case Study 1

Figure 6. . Treatment Unit 3 (CAS1) Schedule – Case Study 1

0 100 200 300 400 500 600 700 800 900 1000

Time

H ea

ts

0 100 200 300 400 500 600 700 800 900 1000 1100 1200

Time

H ea

ts

0 200 400 600 800 1000 1200

Time

H ea

ts

34

Figure 7. Treatment Unit 4 (CAS2) Schedule – Case Study 1

Furthermore, the results of Model 1 and 2 were combined and the schedule presented in

Figure 8 was obtained. Each line (color) represents a heat, each horizontal segment of a

line represents the processing of that heat at the respective unit/machine and the bullets

the starting and ending times on each machine. The vertical segments connect the

machines on which a heat is treated at the different stages. Table 3 indicates which

machine corresponds to each number on the vertical axis of the graph. It is observed that

a feasible schedule for the continuous casting machines and the treatment units combined

can be acquired from Models 1 and 2.

Figure 8. Heats Schedule – Case Study 1

0 100 200 300 400 500

Time

H ea

ts

1

2

3

4

5

6

7 0 200 400 600 800 1000 1200

M ac

hi ne

s

Time

35

Table 3. Machine ID Number – Figure 8

ID Number Machine 1 Treatment Unit 1 (CAS1) 2 Treatment Unit 2 (CAS2) 3 Treatment Unit 3 (RH) 4 Treatment Unit 4 (RD) 5 Continuous Caster 1 (CC1) 6 Continuous Caster 2 (CC2) 7 Continuous Caster 3 (CC3)

The same data as in Model 2 were inputted in Model 3. It was attempted to solve it twice.

However, both runs were terminated by the user before a solution was obtained due to

time restrictions. The first run was terminated after 76043.6s (approx. 21 hours) and the

second one after 15.204.8s (approx. 4.5 hours). To check the validity of Model 3 a set of

10 heats was inputted. More details of the input data can be found on Table 4.

Table 4. Heats – Case Study 2

Heat Continuous Casting

Starting Time Product Type 1 50.82 336x 2 101.64 336x 3 152.46 300x 4 203.28 300x 5 254.1 336x 6 304.92 336x 7 355.74 319x 8 406.56 319x 9 457.38 345x

10 508.2 345x

The schedule acquired after solving Model 3 is shown in Figure 9. Table 5 shows which

machine corresponds to each number on the vertical axis of the graph. It can be observed

that all constraints (machine conflicts, processing times, continuity, etc.) were satisfied.

36

However, further research on whether this model could be used for business purposes is

required due to time restrictions.

Figure 9. Heats Schedule - Case Study 2

Table 5. Machine ID Number – Figure 9

ID Number Machine 1 Hot Metal Pouring (HM1) 2 Hot Metal Pouring (HM2) 3 Desulphurization (DeS1) 4 Desulphurization (DeS2) 5 Vessel Blow (Vessel1) 6 Vessel Blow (Vessel2) 7 Treatment Unit 1 (CAS1) 8 Treatment Unit 2 (CAS2) 9 Treatment Unit 3 (RH)

10 Treatment Unit 4 (RD)

1

2

3

4

5

6

7

8

9

10 0 50 100 150 200 250 300 350 400 450 500 550

M ac

hi ne

s Time

37

6. Recommendations for Further Development The SCC scheduling problem presented by TATA Steel proved to be challenging and an

end-to-end solution could not be developed in the required time frame. Further research

and investigation on whether other solution methods can be effectively applied is required.

In this section, the challenges faced in formulating a mathematical model for the process

are discussed. Furthermore, recommendations on how this project could be continued are

given.

The SCC process at TATA Steel Port Talbot involves numerous constraints and decision

variables while the predetermined parameters are limited. It was determined that the

decision variables needed to be reduced to formulate a MILP model. Hence, a model in

which the number of sequences to be scheduled, the number of heats per sequence and

their product type are input parameters was developed. The majority of literature

examples studied follow a similar approach. The grouping of heats (sequences) is an input

parameter determined by solving a batching problem that considers demand (or received

orders and their delivery time). Thus, it is proposed that a different model is developed

for this purpose, so its output can be used as input for the continuous casting model.

As already discussed in Section 2, several approaches found in literature decompose the

SCC scheduling problem into sub-problems to obtain a solution. Due to the size of the

considered problem and the large number of constraints, a similar approach is

recommended. Combining a batching problem for grouping heats and the two models

introduced in section 4 with additional ones could lead to obtaining a schedule for the

whole SCC process. The two developed sub-models schedule the last two stages of the

SCC process. One or more additional sub-models that schedule the rest of the stages are

necessary for obtaining an end-to-end solution. The rest of the stages could be modelled

as a single-stage hybrid flowshop problem since processing times are constant for all

heats, there are only two parallel machines and no machine-product type restrictions exist.

However, in this case, a feasible schedule cannot be obtained if one of the parallel

machines is unavailable.

Another challenge is combining the different sub-models. This difficulty derives from

accounting for both machine conflicts and varying processing times. Considering the sub-

38

models presented in this paper, two possible ways for connecting them are introducing

non-linear constraints or develop a heuristic. For example, consider Models 1, 2 and 3

formulated in Section 4 along with the following parameters:

𝐹𝑗,𝑠 =1 if heat j belongs to sequence s; 0 otherwise.

𝐻𝑉𝑗 The number of the position of heat j in sequence s for which 𝐹𝑗,𝑠 = 1

And the following decision variable:

𝐻𝑃𝑗,𝑝 =1 if heat j is assigned to a sequence of product type p

Then, Model 1 models can be connected with Model 2 or 3 by adding the nonlinear

constraint (27) and constraint (28):

𝑆𝐶𝐶𝑗 = ∑ 𝐹𝑗,𝑠 ∗ {∑ ∑ 𝑋𝑠,𝑣,𝑚 ∗ [𝑆𝑇𝑣,𝑚 + (𝐻𝑉𝑗 − 1) ∗ (

𝐸𝑇𝑣,𝑚 − 𝑆𝑇𝑣,𝑚 𝐽𝑠

)] 𝑉

𝑣

𝑀

𝑚

} 𝑆

𝑠

for all j ϵ J

(47)

𝐻𝑃𝑗,𝑝 = ∑ 𝐹𝑗,𝑠 ∗ 𝑌𝑠,𝑝

𝑆

𝑠

for all j ϵ J, p ϵ P

(48)

In this way, if Model 2 (or 3) cannot find a feasible solution for the output of the

continuous casting sub-model the processing time of the heats at the continuous casting

stage will be adjusted accordingly. Appropriate methods for solving a nonlinear problem

or converting such a model to a linear model should be investigated.

As for the heuristic option, an algorithm that manipulates the continuous casting solution,

so a feasible solution for the treatment units scheduling model can be obtained is

suggested. This can be achieved by finding feasible solutions of the casting problem with

increased cost (i.e. total completion time) and using them as an input for Model 2 or Model

3 until a feasible solution is obtained. A way for finding feasible solutions of the casting

39

scheduling problem while the cost increases gradually must be established. This process

could be repeated for a specified number of iterations and if a solution is not obtained than

the heat grouping could be differentiated. A visualization of such as process is presented

in Figure 10.

Figure 10. Proposed Heuristic

40

In case Model 2 was used, the next step would be to schedule the remaining stages of the

process. One or more sub-models could be developed for this purpose. Connecting any

additional sub-models with the existing ones could be achieved as discussed above.

However, attempting to schedule the whole SCC process solving a single MILP problem

may have several disadvantages. Due the size and complexity of the considered problem,

such an approach could require an inefficient for business purposes amount of time to be

solved or result in an NP-hard problem. Although the SCC scheduling problem can be

considered as a realistic hybrid flowshop problem and it has been proven that a two-stage

hybrid flowshop problem is NP-complete (Pan et al., 2013; Li et al., 2014; Gupta, 1988),

further investigation is required to determine if this approach would be practical for TATA

Steel. Their SCC process consists of five stages without considering transportation

between the machines and several extra practical constraints. For this reason, different

methods like artificial intelligence and heuristics could be further researched. As

mentioned in Section 2, many researchers have used these techniques to solve similar

problems. Formulating linear or nonlinear models may be proven useful as a first to

understand the specifics of the problem; however, feasible solutions could be obtained in

less time using these methods.

Furthermore, additional improvements to the existing models can be made. The proposed

continuous casting scheduling model assumes that the processing time for all heats of a

sequence is the same; however, it can vary as long as it is within the respective acceptable

range. Finding a way to integrate this to the model would give more flexibility to the

treatment unit scheduling model and result in solutions with reduced cost. In the

formulated models, transportation time between two stages is not considered. Thus,

including it is required for obtaining a feasible schedule. It should be highlighted that the

transportation times between the vessel blow and the treatment stages and the treatment

and the continuous casting stages are not fixed, but they must be within specified bounds.

Adjusting these values could result in reduced-cost solutions, but it could not be

determined how this could be integrated in the model. The transportation times between

the rest of the stages are constant and independent of product type and which machine is

used.

41

Although the processing and transportation times at several stages need to lay within a

specified range and are not predetermined, target values have been set for all of them.

Another improvement would be to force the actual times to be as close as possible to the

target values. This could be achieved by introducing new variables that represent the

difference of the actual processing times from their target values and adding them to the

objective function. Larger differences would result in increased cost. In case this factor is

not considered as important as the total completion time, a weighted objection function

could be used. Thus, it can be controlled what factors influence the cost the most.

Additionally, a significant constraint was not included in the models formulated in this

paper. As mentioned in Section 3, hot metal is produced at an inconstant rate and the hot

metal stock must constantly between an acceptable lower and upper bound. The difficulty

with adding such a constraint is that a time variable is not included, only starting and

ending times of processing at the different stages. As a result, the hot metal stock cannot

be calculated at all instances.

If a complete scheduling system is developed the next stage is to integrate the maintenance

schedule in it. This means that one or more machines are not available for several time

intervals. If the timing of maintenance of a machine is known, then setting the starting

and the ending times of all heats assigned to that machine to be smaller or larger than the

starting and the ending time of the maintenance of this machine is a possible way of

formulating this constraint. If the maintenance of a machine happens after a specific

number of heats has been processed integrating the maintenance schedule in the

production schedule is more complicated. Also, more input data such as when was the last

time each machine was maintained are required.

The use of a different software or programming language to further develop the

scheduling system is required. The models formulated in this paper were implemented in

FICO Xpress-Optimizer Solver. However, designing a complete scheduling system on it

seems inefficient due to its limited capabilities. Furthermore, the majority of the models

discussed in Section 2 were implemented in programming languages such as C++ and C#.

As a result, it would be recommended shifting from FICO Xpress-Optimizer Solver to a

programming language, especially if a heuristic or artificial intelligence method was

42

attempted. Furthermore, the FICO Xpress Optimizer has interfaces through a library

accessible from C/C++, .NET, Java and Visual Basic for Applications (VBA). Thus, the

models presented in this paper could be integrated in a scheduling system developed in

one of these languages.

43

7. Conclusion Concluding, the SCC scheduling problem as presented by TATA Steel Port Talbot Works

is challenging and significantly more complex than similar problems found in the

literature. The main difficulty derives from the fact that various product types need to be

considered and heats must be scheduled in sequences at the continuous casting stage.

Combining the above with machine conflict resolving and not fixed processing times at

various stages result in great difficulties that must be overcome when mathematically

formulating the problem.

It is suggested that the problem is divided to simpler one that can be solved separately and

be combined in the end. In this paper, three models are presented. Model 1 attempts to

schedule a set of sequences at the continuous casting stage while Model 2 uses the results

of Model 1 to schedule the heats at the secondary steelmaking stage. Model 3 attempts to

schedule the heats at all stages before continuous casting based on the results of Model 1.

It should be highlighted that a feasible solution of Model 2 or 3 may not exist for any

output of Model 1. Additionally, during an attempt to schedule a total of 48 heats at all

stages, results could not be acquired from Model 3 in a reasonable time frame. However,

a feasible solution was obtained from both Models 1 and 2.

Further research on mathematical formulation and solution methods of the problem is

necessary. The models discussed in the paper could serve as part of a larger scheduling

system or as guidance for developing a different solution method. It is suggested that the

application of heuristics methods is studied since a MILP model may be efficient for

business purposes due to the large scale of the problem and the numerous constraints.

44

References Atighehchian, A., Bijari, M. and Tarkesh, H. (2009). A novel hybrid algorithm for scheduling steel-making continuous casting production. Computers & Operations Research, [online] 36(8), pp.2450-2461. Available at: https://www.sciencedirect.com/science/article/pii/S0305054808001937 [Accessed 21 Aug. 2019].

Bellabdaoui, A. and Teghem, J. (2006). A mixed-integer linear programming model for the continuous casting planning. International Journal of Production Economics, [online] 104(2), pp.260-270. Available at: https://www.sciencedirect.com/science/article/pii/S0925527304004384 [Accessed 18 Aug. 2019].

Dutta, G. and Fourer, R. (2001). A Survey of Mathematical Programming Applications in Integrated Steel Plants. Manufacturing & Service Operations Management, [online] 3(4), pp.387-400. Available at: https://www.scholars.northwestern.edu/en/publications/a-survey-of-mathematical- programming-applications-in-integrated-s [Accessed 22 Aug. 2019].

Fanti, M., Rotunno, G., Stecco, G., Ukovich, W. and Mininel, S. (2016). An Integrated System for Production Scheduling in Steelmaking and Casting Plants. IEEE Transactions on Automation Science and Engineering, [online] 13(2), pp.1112-1128. Available at: https://www.researchgate.net/publication/282427141_An_Integrated_System_for_Pr oduction_Scheduling_in_Steelmaking_and_Casting_Plants [Accessed 18 Aug. 2019].

Gupta, J. (1988). Two-Stage, Hybrid Flowshop Scheduling Problem. The Journal of the Operational Research Society, [online] 39(4), p.359. Available at: https://www.jstor.org/stable/2582115 [Accessed 22 Aug. 2019].

Harjunkoski, I. and Grossmann, I. (2001). A decomposition approach for the scheduling of a steel plant production. Computers & Chemical Engineering, [online] 25(11-12), pp.1647-1660. Available at: https://www.sciencedirect.com/science/article/pii/S0098135401007293 [Accessed 22 Aug. 2019].

Li, J., Pan, Q., Mao, K. and Suganthan, P. (2014). Solving the steelmaking casting problem using an effective fruit fly optimisation algorithm. Knowledge-Based Systems, [online] 72, pp.28-36. Available at: https://www.sciencedirect.com/science/article/pii/S0950705114003220#b0105 [Accessed 21 Aug. 2019].

Li, J., Xiao, X., Tang, Q. and Floudas, C. (2012). Production Scheduling of a Large- Scale Steelmaking Continuous Casting Process via Unit-Specific Event-Based Continuous-Time Models: Short-Term and Medium-Term Scheduling. Industrial &

45

Engineering Chemistry Research, [online] 51(21), pp.7300-7319. Available at: https://pubs.acs.org/doi/full/10.1021/ie2015944 [Accessed 15 Aug. 2019].

Mao, K., Pan, Q., Pang, X. and Chai, T. (2014). A novel Lagrangian relaxation approach for a hybrid flowshop scheduling problem in the steelmaking-continuous casting process. European Journal of Operational Research, [online] 236(1), pp.51- 60. Available at: https://www.sciencedirect.com/science/article/pii/S0377221713009090 [Accessed 21 Aug. 2019].

Missbauer, H., Hauber, W. and Stadler, W. (2009). A scheduling system for the steelmaking-continuous casting process. A case study from the steel-making industry. International Journal of Production Research, 47(15), pp.4147-4172.

Naphade, K., Wu, S., Storer, R. and Doshi, B. (2001). Melt Scheduling to Trade Off Material Waste and Shipping Performance. Operations Research, [online] 49(5), pp.629-645. Available at: https://pubsonline.informs.org/doi/abs/10.1287/opre.49.5.629.10611 [Accessed 21 Aug. 2019].

Pacciarelli, D. and Pranzo, M. (2004). Production scheduling in a steelmaking- continuous casting plant. Computers & Chemical Engineering, [online] 28(12), pp.2823-2835. Available at: https://www.sciencedirect.com/science/article/pii/S0098135404002637 [Accessed 22 Aug. 2019].

Pan, Q., Wang, L., Mao, K., Zhao, J. and Zhang, M. (2013). An Effective Artificial Bee Colony Algorithm for a Real-World Hybrid Flowshop Problem in Steelmaking Process. IEEE Transactions on Automation Science and Engineering, 10(2), pp.307- 322.

Sbihi, A., Bellabdaoui, A. and Teghem, J. (2014). Solving a mixed integer linear program with times setup for the steel-continuous casting planning and scheduling problem. International Journal of Production Research, 52(24), pp.7276-7296.

Tang, L. and Liu, G. (2007). A mathematical programming model and solution for scheduling production orders in Shanghai Baoshan Iron and Steel Complex. European Journal of Operational Research, [online] 182(3), pp.1453- 1468. Available at: https://www.sciencedirect.com/science/article/pii/S0377221706009830 [Accessed 21 Aug. 2019].

Tang, L., Liu, J., Rong, A. and Yang, Z. (2000). A mathematical programming model for scheduling steelmaking-continuous casting production. European Journal of Operational Research, [online] 120(2), pp.423-435. Available at: https://www.sciencedirect.com/science/article/pii/S0377221799000417 [Accessed 15 Aug. 2019].

46

Tang, L., Luh, P., Liu, J. and Fang, L. (2002). Steel-making process scheduling using Lagrangian relaxation. International Journal of Production Research, [online] 40(1), pp.55-70. Available at: https://www.tandfonline.com/doi/abs/10.1080/00207540110073000 [Accessed 16 Aug. 2019].

Tang, L. and Wang, G. (2008). Decision support system for the batching problems of steelmaking and continuous-casting production. Omega, [online] 36(6), pp.976- 991. Available at: https://www.sciencedirect.com/science/article/pii/S0305048307001223 [Accessed 15 Aug. 2019].

Tang, L., Zhao, Y. and Liu, J. (2014). An Improved Differential Evolution Algorithm for Practical Dynamic Scheduling in Steelmaking-Continuous Casting Production. IEEE Transactions on Evolutionary Computation, [online] 18(2), pp.209-225. Available at: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6473881 [Accessed 15 Aug. 2019].

Tan, Y. and Liu, S. (2013). Models and optimisation approaches for scheduling steelmaking–refining–continuous casting production under variable electricity price. International Journal of Production Research, 52(4), pp.1032-1049.

Zhao, Y., Jia, F., Wang, G. and Wang, L. (2011). A hybrid tabu search for steelmaking-continuous casting production scheduling problem. In: 2011 International Symposium on Advanced Control of Industrial Processes (ADCONIP). [online] IEEE, pp.pp. 535-540. Available at: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5930486&isnumber=593 0387 [Accessed 22 Aug. 2019].

Zhu, D., Zheng, Z. and Gao, X. (2010). Intelligent Optimization-Based Production Planning and Simulation Analysis for Steelmaking and Continuous Casting Process. Journal of Iron and Steel Research International, [online] 17(9), pp.19-24. Available at: https://link.springer.com/content/pdf/10.1016/S1006- 706X%2810%2960136-7.pdf [Accessed 15 Aug. 2019].

47

Appendix A: Flying Tundish Change (FTC) between Products

48

Appendix B: Flying Tundish Change (FTC) between Products

The casting time depends on the casting speed which is calculated based on a variety of factors such as continuous casting machine, product type etc.

49

Appendix C: Xpress Code Model 1

!@encoding CP1252 model Model1 uses "mmxprs"; !gain access to the Xpress-Optimizer solver !optional parameters section parameters ! SAMPLEPARAM1='c:\test\' ! SAMPLEPARAM2=false PROJECTDIR='' ! for when file is added to project end-parameters !sample declarations section declarations products=1..4 totalsequences=6 totalpositions=6 sequences=1..totalsequences seqj:array(sequences)of integer restr:array(products,products)of integer positions=1..totalpositions machines=1..3 seqw:array(sequences)of integer seqp:array(sequences,products)of integer MR:array(products,machines)of integer maxtime:array(products)of real AV:array(machines)of real ST:array(positions, machines) of mpvar ET:array(positions, machines) of mpvar w:array(sequences,positions,machines) of mpvar SR:array(sequences,sequences,positions,machines)of mpvar ! ... Objective:linctr end-declarations seqw::[3200,2000,1800,2200,1800,2000] seqj::[6,10,8,8,8,8] seqp::[1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0,1,0,0, 0,0,1,0] maxtime::[118,72.6,72.6,72.6] restr::[0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0] AV::[0,20,0] forall(s in sequences,v in positions, m in machines)w(s,v,m)is_binary forall(s1 in sequences,s2 in sequences,v in positions, m in machines)SR(s1,s2,v,m)is_binary forall(s in sequences)sum(m in machines,v in positions)w(s,v,m)=1

50

forall(m in machines,v in positions)sum(s in sequences)w(s,v,m)<=1 forall(m in machines,v in 1..(totalpositions-1)) do

sum(s in sequences)w(s,v,m)-sum(s in sequences)w(s,v+1,m)>=0 end-do forall(p1 in products, p2 in products,s1 in sequences,s2 in sequences)do

if restr(p1,p2)=1 and seqp(s1,p1)=1 and seqp(s2,p2)=1 then forall(m in machines,v in 1..(totalpositions-1))do w(s1,v,m)+w(s2,v+1,m)-1<=SR(s1,s2,v,m) end-do

end-if end-do forall(p1 in products, p2 in products,s1 in sequences,s2 in sequences)do

if seqw(s1)-seqw(s2)>200 or seqw(s2)-seqw(s1)>200 then forall(m in machines,v in 1..(totalpositions-1))do w(s1,v,m)+w(s2,v+1,m)-1<=SR(s1,s2,v,m) end-do

end-if end-do forall(m in machines)ST(1,m)>=AV(m) forall(m in machines, v in positions)ST(v,m)>=0 forall(m in machines,v in 2..totalpositions)ST(v,m)=ET(v- 1,m)+120*sum(s1 in sequences) sum(s2 in sequences)SR(s1,s2,v-1,m) forall(m in machines,v in positions)ET(v,m)<=ST(v,m)+sum(s in sequences)sum(p in products)seqp(s,p)*seqj(s)*(0.7*maxtime(p))*w(s,v,m) forall(m in machines,v in positions)ET(v,m)>=ST(v,m)+sum(s in sequences)sum(p in products)seqp(s,p)*seqj(s)*maxtime(p)*w(s,v,m) totaltime:=sum(m in machines)ET(totalpositions,m) if PROJECTDIR <> '' then

setparam('workdir', PROJECTDIR) writeln("Project directory: " + PROJECTDIR)

end-if writeln("Begin running model") minimize(totaltime) forall(m in machines,v in positions,s in sequences)do

if getsol(w(s,v,m))=1 then forall(i in 1..seqj(s))writeln(s,", ",getsol(ST(v,m))+(i- 1)*((getsol(ET(v,m))-getsol(ST(v,m)))/seqj(s)),", ",getsol(ST(v,m))+i*((getsol(ET(v,m))- getsol(ST(v,m)))/seqj(s)),", ",m)

end-if end-do !... writeln("End running model") end-model

51

Appendix D: Xpress Code Model 2 !@encoding CP1252 model Model2 uses "mmxprs"; !gain access to the Xpress-Optimizer solver !optional parameters section parameters ! SAMPLEPARAM1='c:\test\' ! SAMPLEPARAM2=false PROJECTDIR='' ! for when file is added to project end-parameters !sample declarations section declarations totaljobs=48 jobs=1..totaljobs products=1..4 machines=1..4 positions=1..totaljobs SCC:array(jobs)of real JP:array(jobs,products)of integer MaxT:array(products)of integer MinT:array(products)of integer MR:array(products,machines)of integer ST:array(positions,machines)of mpvar ET:array(positions,machines)of mpvar x:array(jobs,positions,machines)of mpvar ! ... Objective:linctr end-declarations SCC::[2000, 2050.82, 2101.64, 2152.46, 2203.28, 2254.1, 2304.92, 2355.74, 2406.56, 2457.38, 2508.2, 2559.02, 2609.84, 2660.66, 2711.48, 2762.3, 2813.12, 2863.94, 2914.76, 2965.58, 3016.4, 3067.22, 3118.04, 3168.86, 2020, 2102.6,

52

2185.2, 2267.8, 2350.4, 2433, 2000, 2050.82, 2101.64, 2152.46, 2203.28, 2254.1, 2304.92, 2355.74, 2406.56, 2457.38, 2508.2, 2559.02, 2609.84, 2660.66, 2711.48, 2762.3, 2813.12, 2863.94] JP::[0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,0,1,0, 0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0,

53

0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0, 0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,1] MaxT::[45,35,35,35] MinT::[35,25,25,25] MR::[1,1,0,0, 0,0,0,0, 0,0,1,1, 0,0,0,0] forall(v in positions,m in machines,j in jobs)x(j,v,m)is_binary forall(j in jobs)sum(m in machines,v in positions)x(j,v,m)=1 forall(v in positions,m in machines)sum(j in jobs)x(j,v,m)<=1 forall(v in positions,m in machines)ET(v,m)=sum(j in jobs)x(j,v,m)*SCC(j) forall(p in products,m in machines,j in jobs)do

if MR(p,m)=1 and JP(j,p)=1 then forall(v in positions)x(j,v,m)=0

end-if end-do forall(m in machines,v in positions)ET(v,m)<=ST(v,m)+sum(j in jobs,p in products)x(j,v,m)*MaxT(p)*JP(j,p) forall(m in machines,v in positions)ET(v,m)>=ST(v,m)+sum(j in jobs,p in products)x(j,v,m)*MinT(p)*JP(j,p) forall(m in machines,v in positions)ST(v,m)>=0 forall(m in machines,v in positions)ET(v,m)>=0 forall(m in machines,v in 1..totaljobs-1)ET(v,m)<=ST(v+1,m) obj:=sum(v in positions,m in machines)ET(v,m)-sum(v in positions,m in machines)ST(v,m) if PROJECTDIR <> '' then

setparam('workdir', PROJECTDIR) writeln("Project directory: " + PROJECTDIR)

end-if writeln("Begin running model") minimize(obj) forall(m in machines,v in positions, j in jobs)do

54

if getsol(x(j,v,m))=1 then writeln(j," ",getsol(ST(v,m))," ",getsol(ET(v,m))," ",m," ",v) end-if

end-do !... writeln("End running model") end-model

55

Appendix E: Xpress Code Model 3 !@encoding CP1252 model Model3 uses "mmxprs"; !gain access to the Xpress-Optimizer solver !optional parameters section parameters ! SAMPLEPARAM1='c:\test\' ! SAMPLEPARAM2=false PROJECTDIR='' ! for when file is added to project end-parameters !sample declarations section declarations M=10000 stages=1..4 totaljobs=10 jobs=1..totaljobs products=1..4 machines=1..10 SCC:array(jobs)of real JP:array(jobs,products)of integer MaxT:array(products)of integer MinT:array(products)of integer MR:array(products,machines)of integer SM:array(stages,machines)of integer PT:array(machines)of integer ST:array(jobs,stages,machines)of mpvar ET:array(jobs,stages,machines)of mpvar x:array(jobs,stages,machines)of mpvar y:array(jobs,jobs,stages,machines)of mpvar ! ... Objective:linctr end-declarations SCC::[2050.82, 2101.64, 2152.46, 2203.28, 2254.1, 2304.92, 2355.74, 2406.56, 2457.38, 2508.2] JP::[0,0,1,0, 0,0,1,0, 1,0,0,0, 1,0,0,0, 0,0,1,0, 0,0,1,0, 0,1,0,0, 0,1,0,0, 0,0,0,1, 0,0,0,1] MaxT::[45,35,35,35] MinT::[35,25,25,25] MR::[0,0,0,0,0,0,1,1,0,0,

56

0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,1,1, 0,0,0,0,0,0,1,0,0,0] SM::[1,1,0,0,0,0,0,0,0,0, 0,0,1,1,0,0,0,0,0,0, 0,0,0,0,1,1,0,0,0,0, 0,0,0,0,0,0,1,1,1,1] PT::[18,18,25,25,23,23,0,0,0,0] forall(i in stages,m in machines,j in jobs)x(j,i,m)is_binary forall(i in stages,m in machines,j in jobs,k in jobs)y(j,k,i,m)is_binary forall(j in jobs,i in stages)sum(m in machines)x(j,i,m)=1 forall(m in machines,j in jobs)ET(j,4,m)=x(j,4,m)*SCC(j) forall(p in products,m in machines,j in jobs)do

if MR(p,m)=1 and JP(j,p)=1 then forall(i in stages)x(j,i,m)<=0

end-if end-do forall(i in stages,m in machines)do

forall(j in jobs)x(j,i,m)<=SM(i,m) end-do forall(m in machines,j in jobs)ET(j,4,m)<=ST(j,4,m)+sum(p in products)(x(j,4,m)*MaxT(p)*JP(j,p)) forall(m in machines,j in jobs)ET(j,4,m)>=ST(j,4,m)+sum(p in products)(x(j,4,m)*MinT(p)*JP(j,p)) forall(m in machines,i in stages,j in jobs)ST(j,i,m)>=0 forall(m in machines,i in stages,j in jobs)ET(j,i,m)>=0 forall(m in machines,i in stages,j in jobs)ST(j,i,m)+ET(j,i,m)<=x(j,i,m)*M forall(i in 1..3,j in jobs,m in machines)ET(j,i,m)=ST(j,i,m)+PT(m)*x(j,i,m) forall(i in 1..3,j in jobs,m in machines,v in machines)ST(j,i+1,v)<=ET(j,i,m)+(2-x(j,i,m)-x(j,i+1,v))*M forall(i in 1..3,j in jobs,m in machines,v in machines)ST(j,i+1,v)>=ET(j,i,m)-(2-x(j,i,m)-x(j,i+1,v))*M forall(j in jobs,v in jobs,i in stages,m in machines)ST(v,i,m)>=ET(j,i,m)-(1-y(j,v,i,m))*M forall(a in jobs,b in jobs,i in stages,m in machines)do

if a<>b then y(a,b,i,m)+y(b,a,i,m)>=x(a,i,m)+x(b,i,m)-1

end-if

57

end-do forall(a in jobs,b in jobs,i in stages,m in machines)y(a,b,i,m)<=x(a,i,m) forall(a in jobs,b in jobs,i in stages,m in machines)y(a,b,i,m)<=x(b,i,m) obj:=sum(j in jobs,m in machines)ET(i,4,m)-sum(j in jobs, m in machines)ST(i,4,m) if PROJECTDIR <> '' then

setparam('workdir', PROJECTDIR) writeln("Project directory: " + PROJECTDIR)

end-if writeln("Begin running model") minimize(obj) !... writeln("End running model") end-model