# Solving Steel Alloying Using Differential Evolution and SOMA

Michal Holiš, Lenka Skanderová, Martin Placěk, Jiří Dvorský, Ivan Zelinka

► To cite this version:

Michal Holiš, Lenka Skanderová, Martin Placěk, Jiří Dvorský, Ivan Zelinka. Solving Steel Alloying Using Differential Evolution and SOMA. 12th International Conference on Information Systems and Industrial Management (CISIM), Sep 2013, Krakow, Poland. pp.453-464, 10.1007/978-3-642-40925-7_42. hal-01496091

HAL Id: hal-01496091

https://inria.hal.science/hal-01496091

Submitted on 27 Mar 2017

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Solving Steel Alloying Using Differential Evolution and SOMA

Michal Holis, Lenka Skanderova, Martin Placek, Jiri Dvorsky, and Ivan Zelinka

Department of Computer Science, VSB – Technical university of Ostrava,
17. listopadu 15, 708 33 Ostrava – Poruba, Czech republic,
{michal.holis, lenka.skanderova, martin/placek,
jiri.dvorsky, ivan.zelinka}@vsb.cz

**Abstract.** This paper proposes method for solving steel alloying problem using evolution algorithms SOMA and differential evolution. Both algorithms belong to the family of the evolution algorithms but the main ideas of these algorithms are different. In differential evolution new off-spring is created during the evolution, the individuals are crossed and mutated, while in SOMA the individuals move in the space of the possible solutions and the mutation is replaced by perturbation. The main goal of this paper is to discover how much these algorithms are usable and suitable to solve the problem of steel alloying.

**Keywords:** steel alloying, evolutionary algorithms, Differential evolution, SOMA

# 1 Introduction

## 1.1 Steel Alloying

It takes many steps to manufacture steel and every factory's step configuration may vary from the others. Commonly the process follows path similar to this: iron ore is smelted in iron smelters and distributed as a hot metal with temperature about 1400°C to converter or electric arc furnace to improve its quality for following treatments. Hot metal is mixed with scrap and slag formers, the heat is heated up approximately to 1650°C and first ferro-alloys are charged into the heat during tapping. This point is the first appliance of alloying process described below. Ladle with the heat is going to secondary metallurgy process, typically ladle furnace or vacuum treatment. This treatment part is exceptionally skipped, otherwise the steel quality is improved with accurate amount of alloys to achieve requested steel composition defined by steel grade and the temperature is modified for the last step. The final step of this process is casting on continuous casting machines to obtain final steel product like slabs, blooms or billets. More on this process can be found for example in book by Ahindra Ghosh and Amit Chatterjee [12].

Target of the whole process is primarily to manufacture steel of requested quality (this is commonly referred to as target or final steel grade), secondly to reduce cost of the materials and energy used in the process.
To manufacture steel of certain grade, with specific chemical, electrical and
mechanical properties, it is crucial to be sure that the steel is composed of
correct elements in correct ratio's. Composition of the steel is modified in each
step throughout the whole process with technique known as alloying.

Alloying is process of continually charging the steel with certain amount's of alloying materials (compounds of chemical elements) to gradually obtain the requested steel quality. Each of the materials has certain given ratio of all elements it is composed of. Also price of the material is known. Question is how to optimally choose amount of charged materials in each step when there are many charging materials composed of many chemical elements, with one element being commonly present in many materials. We also have to consider price of the final solution, since some materials are very cheap and some can be very expensive.

To solve the problem we are always presented with these input data:

- weight of the input steel,

- input steel's composition vector (vector of ratios representing each element's presence in steel),

- list of alloying materials, their chemical solution and their unit prices,

- target steel grade represented with three vectors – one being optimal ratio of all chemical elements in final steel, second represents minimal ratio of any given element in final steel and last one represents maximal ratio of any given element in final steel.

Commonly in practice this problem is solved with Dantzig's simplex algo-
rithm, which is a linear programming solution that with given input parameters
finds cheapest solution in given final steel's grade range. This however does not
allow us to fine-tune optimal balance between precision of final solution and it's
price. This can be solved by iteratively running the algorithm with different steel
grade ranges and trying to found solution that we consider to be optimal both
in precision and cost. However since the ranges are vectors there are so many
combinations of minimal and maximal values that it is very inefficient and un-
practical to proceed in this way. More on this matter can be found in book by
Dantzig, George B. [13].

In this paper, we present how to overcome problems of the common solution
with usage of evolution algorithms and fitness function suitable for solution of
this problem is presented.

1.2 Evolution algorithms

The evolution algorithms have been successfully used to solve many practical
and theoretical problems, see [0, 14, 15, 16]. In [4] the differential evolution is used
as classifier for the features in the data set, in [1] the algorithm SOMA is used
to machining allocation of clutch assembly. Evolutionary techniques are applied
in connection with, e.g. [2, 5, 6], too. These algorithms are still improved, see [7,
8]. They are based on two essential principles – crossing and mutation. These
principles proceed from Darwin's evolution theory and Mendel's principle of
crossing. They work with the population of individuals, which are developing (improving) during the evolution. Better individuals survive while worse ones die. In this paper differential evolution and SOMA have been chosen.

**Differential evolution** Differential evolution (DE) is a population-based stochastic algorithm for global optimization. It was introduced by Ken Price and Rainer Storn and in this paper the original version is used for experiment design [11]. Although this algorithm is very simple and efficient, in [17] authors proved that it can not ensure the global convergence and they proposed two hybrids algorithms named QAISDE and GDISE to improve DE.

At the beginning of the algorithm the first population is generated. Each individual in population has its own set of parameters. The number of parameters is called dimension, we denote it $D$. In addition each individual has its fitness value. This value is very important because it says how good is this individual in current population. Fitness is the value of the cost function. Each parameter of the individual has low bound and high bound. It is not able to cross over these bounds [18]. In this article DE/best/1/exp has been chosen.

When the first population is generated, for each individual in population following steps are done:

1. Three other neighbors are chosen randomly (these individuals may not be the same).

2. The noise vector is created, see Eq. (1).

3. New individual is created. The random number from the interval [0, 1] is generated. If the number is smaller than crossing threshold $CR$, the parameter from the noise vector is chosen as a parameter of the new individual. Otherwise the parameter from the actual parent is taken.

4. If the new individual has better fitness than its parent, it will replace the parent, otherwise the new individual is forgotten and the parent stays in the population.

The noise vector equation of DE/best/1/exp:

$$v_j = x_{r3,j}^G + F (x_{r1,j}^G - x_{r2,j}^G). \quad (1)$$

where $v_j$ is the noise vector, $x_{r3,j}^G$, $x_{r1,j}^G$ and $x_{r2,j}^G$ are three randomly chosen individuals and $F$ denotes the mutation constant.

**Self organizing migration algorithm (SOMA)** Unlike differential evolution, SOMA works on the principle of one population, which is changing in time. Application of this algorithm can be found for example in [19, 20]. The beginning is the same like in DE. The first population is generated. But in SOMA no offspring is created. The principle of SOMA is the individuals are moving in the space of possible solutions and in the each generation (we say migration) they have a new positions. In [21] the novel multiobjective SOMA has been introduced. In this paper the strategy All to one has been chosen. At the begin the
new population is generated. As well as in DE, each individual has its parameters and fitness, low and high bound. When we have the population the best individual is chosen (individual with the best fitness) – we call it leader. The following steps are done next for each individual in population:

1. The perturbation vector $\alpha$ is generated according to the parameter PRT, which is usually set to 0.11. The $\alpha$ is composed of 0 and 1 and it is important for the direction of the individual moving. (Individual can move to the leader in many directions.)

2. Individual will move to the leader. It moves by steps. For each step the next position and the new fitness is computed. Moving is finished when the parameter *Step* spreads the value of the parameter *PathLength*.

3. After migration of the individual its best position, which has been reached during the migration, is chosen.

4. If the best reached position of the individual is better than the original one, the original one is replaced by the new position.

The crossing is replaced by philosophy that each individual moves in the space and each individual remembers the coordinates of the position, where the resolution has been the best in scope of its way to the leader. Moving of the individual is directed by the equation below [10].

$$x_{i,j}^{ML+1} = x_{i,j,start}^{ML} + (x_{L,j}^{ML} - x_{i,j,start}^{ML}) t\alpha_j \quad (2)$$

where $x_{i,j}^{ML+1}$ is a new position of the individual, $x_{i,j,start}^{ML}$ denotes the individual's start position, $x_{i,j,start}^{ML}$ is the actual leader's position, *Step* is marked as *t* and $\alpha$ denotes the value in *j*th position of $\alpha$.

## 2 Experiment design

Our method is based on SOMA and DE using in steel alloying process. There were two main problems in experiment design - how to represent an individual in evolutionary algorithms and how to define its fitness function. From the view of steel alloying process, there were 14 compounds, which are added to the original steel composition. These compouds are consist of the elements. In result we needed the elements amount. In evolution algorithms the individuals consist of parameters. In this paper the parameters of individuals are represented by the compounds, which were added to the original steel composition. There were 14 compounds, so the individual's dimension (number of parameters) *D* has been 14. Each compound has been represented by one parameter in individual. In the end of the evolution the amount of the elements have been recomputed from the amount of compounds.

Fitness function presented in this paper is designed in the following manner:

- parameters of each member in population represent weight of each alloying material that is to be charged to the steel (every member has as many parameters as there are alloying materials),
- first the function computes weight of each element in input steel using it's weight and it's composition vector,

- using the value of each parameter of current member and composition vector of material it represents we can compute the weight of each chemical element that would be added to the steel, if materials the member represents would be charged to the steel,

- using weights of elements in original steel and computed weights of elements in charged materials the final presence of each material in final steel is computed,

- value of the fitness function is then equal to absolute distance of the optimal solution vector and this solution's vector, if this vector is out of range represented by minimal and maximal vector of solution, then penalization is applied to the fitness value,

- additionally price of all used materials is computed and added to the fitness value, to do this constant defining importance of price of final solution over it's accuracy is applied, with this constant we can control and fine-tune the solution to our specific needs.

## 2.1 Fitness Function Equation

If $Cmin_j < \left| \frac{M_i \cdot Mat_{ij} + S_j \cdot W}{\sum_{k=0}^{n_m} M_k + W} - C_j \right| < Cmax_j$ then fitness function is defined as follows (this is the case when given member represents valid solution that is in required composition range).

$$ \sum_{i=0}^{n_m} \left[ \left( \sum_{j=0}^{n_e} \left| \frac{M_i \cdot Mat_{ij} + S_j \cdot W}{\sum_{k=0}^{n_m} M_k + W} - C_j \right| \right) + P_i \cdot M_i \cdot PW \right] \quad (3) $$

Otherwise we apply additional penalization constant to equation to discard the member from solution.

$$ \left\{ \sum_{i=0}^{n_m} \left[ \left( \sum_{j=0}^{n_e} \left| \frac{M_i \cdot Mat_{ij} + S_j \cdot W}{\sum_{k=0}^{n_m} M_k + W} - C_j \right| \right) + P_i \cdot M_i \cdot PW \right] \right\} \cdot T \quad (4) $$

Notation used in these equations is summarized in Table 1.

For both evolution algorithms, DE and SOMA, the same dimension has been set, $D = 14$. In DE's experiments we were changing the parameters: the number of individuals in the population $NP$, the number of generations $G$, mutation constant $F$, and crossing threshold $CR$ in order to find better evaluation of the cost function. In SOMA experiments these parameters were also modified: number of the migration cycles *Migrations*, the stopping position of the migrating individual *PathLength*, and the step size of the migrating individual *Step*. All tested combinations of input parameters are given in Table 2.

From chemical point of view fourteen, $D = 14$, chemical compounds have been used: FeMn (with high carbon level), FeMn (with medium carbon level),
<table><caption>**Table 1.** The variables description from the Eqs. (3) and (4)</caption><thead><tr><td>Variable</td><td>Description</td></tr></thead><tbody><tr><td>n<sub>m</sub></td><td>Total number of available alloying materials (compounds) used.</td></tr><tr><td>n<sub>E</sub></td><td>Total number of chemical elements that materials consists of.</td></tr><tr><td>M</td><td>Individual being tested for its fitness value. Bottom index specifies index of parameter whose value we want to obtain. Each parameter of member represents weight in kilograms (kg) of one material that would be charged to steel. Number of parameters of one member equals to number of all available alloying materials.</td></tr><tr><td>Mat</td><td>Material composition. First index specifies material, which's composition we are interested in. Second denotes index of element. Result is number in range [0, 1] (1 means 100% of material is composed with that element, 0 that element is not contained in compound) that represents element's representation in given material (compound).</td></tr><tr><td>S</td><td>Original steel composition vector. Index denotes element whose representation we are interested in. Resulting number is again in range [0, 1].</td></tr><tr><td>W</td><td>Original steel's weight in kg.</td></tr><tr><td>C</td><td>Desired composition vector. Index denotes element whose representation in steel we want to obtain. Resulting number is again in range [0, 1].</td></tr><tr><td>Cmin</td><td>Desired minimal composition vector. Index denotes element whose representation in steel we want to obtain. Resulting number is again in range [0, 1].</td></tr><tr><td>Cmax</td><td>Desired maximal composition vector. Index denotes element whose representation in steel we want to obtain. Resulting number is again in range [0, 1].</td></tr><tr><td>P</td><td>Unit price of material for each kg.</td></tr><tr><td>PW</td><td>Constant defining importance of final solution's cost over its precision.</td></tr><tr><td>T</td><td>Penalization constant. Very high number that is used to multiply the final fitness function's value in case the solution is outside the [Cmin, Cmax] range.</td></tr></tbody></table>
FeMn (with low carbon level), FeSiMn, FeCr (with high carbon level), FeCr (with low carbon level), FeNi, FeMo, FeW, FeNb, FeV, NV, FeTi and Cu. Composition of these compounds can be found in Table 4. For each element the minimum value, maximum value and optimal value in final steel alloy have been set, see Table 3.

<table><caption>**Table 2.** Experiments setting for algorithms DE and SOMA.</caption><caption>(a) Experiments setting for DE.</caption><thead><tr><th>D</th><th>NP</th><th>G</th><th>F</th><th>CR</th></tr></thead><tbody><tr><td>14</td><td>1000</td><td>1500</td><td>0.8</td><td>0.6</td></tr><tr><td>14</td><td>1000</td><td>1500</td><td>0.8</td><td>0.5</td></tr><tr><td>14</td><td>1000</td><td>1500</td><td>0.7</td><td>0.6</td></tr><tr><td>14</td><td>1000</td><td>1500</td><td>0.7</td><td>0.5</td></tr><tr><td>14</td><td>1000</td><td>1500</td><td>0.5</td><td>0.7</td></tr><tr><td>14</td><td>1000</td><td>1500</td><td>0.5</td><td>0.6</td></tr><tr><td>14</td><td>1000</td><td>1500</td><td>0.5</td><td>0.5</td></tr><tr><td>14</td><td>500</td><td>1000</td><td>0.8</td><td>0.6</td></tr><tr><td>14</td><td>500</td><td>1000</td><td>0.8</td><td>0.5</td></tr><tr><td>14</td><td>500</td><td>1000</td><td>0.7</td><td>0.6</td></tr><tr><td>14</td><td>500</td><td>1000</td><td>0.7</td><td>0.5</td></tr><tr><td>14</td><td>500</td><td>1000</td><td>0.5</td><td>0.7</td></tr><tr><td>14</td><td>500</td><td>1000</td><td>0.5</td><td>0.6</td></tr><tr><td>14</td><td>500</td><td>1000</td><td>0.5</td><td>0.5</td></tr></tbody></table><table><caption>(b) Experiments setting for DE.</caption><thead><tr><th>D</th><th>NP</th><th>G</th><th>F</th><th>CR</th></tr></thead><tbody><tr><td>14</td><td>50</td><td>2000</td><td>0.8</td><td>0.6</td></tr><tr><td>14</td><td>50</td><td>2000</td><td>0.8</td><td>0.5</td></tr><tr><td>14</td><td>50</td><td>2000</td><td>0.7</td><td>0.6</td></tr><tr><td>14</td><td>50</td><td>2000</td><td>0.7</td><td>0.5</td></tr><tr><td>14</td><td>50</td><td>2000</td><td>0.5</td><td>0.7</td></tr><tr><td>14</td><td>50</td><td>2000</td><td>0.5</td><td>0.6</td></tr><tr><td>14</td><td>50</td><td>2000</td><td>0.5</td><td>0.5</td></tr><tr><td>14</td><td>50</td><td>1500</td><td>0.8</td><td>0.6</td></tr><tr><td>14</td><td>50</td><td>1500</td><td>0.8</td><td>0.5</td></tr><tr><td>14</td><td>50</td><td>1500</td><td>0.7</td><td>0.6</td></tr><tr><td>14</td><td>50</td><td>1500</td><td>0.7</td><td>0.5</td></tr><tr><td>14</td><td>50</td><td>1500</td><td>0.5</td><td>0.7</td></tr><tr><td>14</td><td>50</td><td>1500</td><td>0.5</td><td>0.6</td></tr><tr><td>14</td><td>50</td><td>1500</td><td>0.5</td><td>0.5</td></tr></tbody></table>

<table><caption>(c) Experiments settings for SOMA ALLToOne.</caption><thead><tr><th>D</th><th>NP</th><th>Migrations</th><th>PathLength</th><th>Step</th><th>PRT</th></tr></thead><tbody><tr><td>14</td><td>1000</td><td>200</td><td>3</td><td>0.11</td><td>0.1</td></tr><tr><td>14</td><td>1000</td><td>200</td><td>3</td><td>0.3</td><td>0.1</td></tr><tr><td>14</td><td>1000</td><td>200</td><td>3</td><td>0.1</td><td>0.1</td></tr></tbody></table>

## 3 Experimental Results

Our experimental results are summarized in Table 5. Highlighted rows represent runs that were unable to reach satisfying solution. First column of the table contains description of given settings along with its parameters. Second column contains best achieved fitness value of all runs and next columns contain information about final computed solution of the steel. Progress of the best fitness values is shown in Figures 1 and 2. One hundred test runs using given setting were performed and each test run is displayed as one line in these charts. Only selection of plots of runs that were able to reach satisfying solution are presented in this paper.
<table><caption>**Table 3.** The table of the chemical elements whose amounts we need to know. The amounts are stated in % and are set for 1,000 kilograms of the steel.</caption><thead><tr><th rowspan="2">Element</th><th colspan="3">Values [%]</th></tr><tr><th>Minimal</th><th>Optimal</th><th>Maximal</th></tr></thead><tbody><tr><td>C</td><td>0.003</td><td>0.035</td><td>0.040</td></tr><tr><td>Si</td><td>0.065</td><td>0.075</td><td>0.085</td></tr><tr><td>Mn</td><td>0.952</td><td>0.962</td><td>0.972</td></tr><tr><td>P</td><td>0.000</td><td>0.001</td><td>0.006</td></tr><tr><td>S</td><td>0.000</td><td>0.001</td><td>0.002</td></tr><tr><td>Cr</td><td>1.268</td><td>1.288</td><td>1.308</td></tr><tr><td>Ni</td><td>0.940</td><td>0.960</td><td>0.980</td></tr><tr><td>Mo</td><td>0.000</td><td>0.000</td><td>0.010</td></tr><tr><td>Cu</td><td>0.000</td><td>0.000</td><td>0.005</td></tr><tr><td>Nb</td><td>0.000</td><td>0.000</td><td>0.002</td></tr><tr><td>V</td><td>0.000</td><td>0.000</td><td>0.002</td></tr><tr><td>Al</td><td>0.000</td><td>0.003</td><td>0.013</td></tr><tr><td>Ti</td><td>0.000</td><td>0.000</td><td>0.005</td></tr><tr><td>N</td><td>0.000</td><td>0.000</td><td>0.005</td></tr><tr><td>W</td><td>0.000</td><td>0.000</td><td>0.005</td></tr><tr><td>Fe</td><td>96.671</td><td>96.676</td><td>96.681</td></tr></tbody></table>

<table><caption>**Table 4.** Materials and their solution used in our experiments. Column *Material Code* contains code of material and in other columns presence of each element in percents is shown.</caption><thead><tr><th rowspan="2">Material Code</th><th colspan="12">Element Values [%]</th></tr><tr><th>C</th><th>Si</th><th>Mn</th><th>P</th><th>S</th><th>Cr</th><th>Ni</th><th>Mo</th><th>Cu</th><th>Nb</th><th>V</th><th>Al</th><th>Ti</th><th>N</th><th>W</th><th>Fe</th></tr></thead><tbody><tr><td>FeMnHC</td><td>7</td><td>6</td><td>78</td><td>0.05</td><td>0.02</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>8.93</td></tr><tr><td>FeMnMC</td><td>2</td><td>3</td><td>88</td><td>0.1</td><td>0.02</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>6.88</td></tr><tr><td>FeMnLC</td><td>0.5</td><td>1.8</td><td>90</td><td>0.05</td><td>0.02</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>7.63</td></tr><tr><td>FeSiMn</td><td>0.5</td><td>25</td><td>65</td><td>0.05</td><td>0.02</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>9.43</td></tr><tr><td>FeCrHC</td><td>7</td><td>1.5</td><td>0</td><td>0.03</td><td>0.06</td><td>65</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>26.41</td></tr><tr><td>FeCrLC</td><td>0.05</td><td>1.5</td><td>0</td><td>0.03</td><td>0.02</td><td>67</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>31.4</td></tr><tr><td>FeNi</td><td>0.02</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>99.8</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0.18</td></tr><tr><td>FeMo</td><td>0.05</td><td>0.8</td><td>0</td><td>0.05</td><td>0.1</td><td>0</td><td>0</td><td>60</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>39</td></tr><tr><td>FeW</td><td>0.1</td><td>0.8</td><td>0.2</td><td>0.03</td><td>0.02</td><td>0</td><td>0</td><td>6</td><td>0.1</td><td>0</td><td>0</td><td>4</td><td>0</td><td>0</td><td>80</td><td>8.75</td></tr><tr><td>FeNb</td><td>0.1</td><td>2</td><td>0</td><td>0.08</td><td>0.08</td><td>0</td><td>0</td><td>0</td><td>0</td><td>65</td><td>1.5</td><td>0.8</td><td>0</td><td>0</td><td>0</td><td>30.44</td></tr><tr><td>FeV</td><td>0.2</td><td>1.5</td><td>5</td><td>0.05</td><td>0.05</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>60</td><td>0</td><td>0</td><td>0</td><td>0</td><td>33.2</td></tr><tr><td>NV</td><td>5</td><td>0.2</td><td>0.5</td><td>0.05</td><td>0.5</td><td>0.2</td><td>0</td><td>0</td><td>0.15</td><td>0</td><td>75</td><td>0.3</td><td>0</td><td>16</td><td>0</td><td>2.1</td></tr><tr><td>FeTi</td><td>0.2</td><td>0.5</td><td>0.1</td><td>0.05</td><td>0.05</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>5</td><td>70</td><td>0</td><td>0</td><td>24.1</td></tr><tr><td>Cu</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>99</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td></tr><tr><td>Al pigs</td><td>0</td><td>0.15</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0.5</td><td>0</td><td>0</td><td>99.2</td><td>0.04</td><td>0</td><td>0</td><td>0.11</td></tr><tr><td>Al pigs</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>97</td><td>0</td><td>0</td><td>0</td><td>2</td></tr><tr><td>C</td><td>98</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>2</td></tr></tbody></table>
From the results measured in our experiments we can see, that by using higher
values then 0.5 for *F* in DE the evolution requires higher number of generations
to successfully reach valid solution. With *F* = 0.5 we were able to reach satisfying
solution even with only 50 members in whole population. Although some of the
runs were unsuccessful and were unable to present valid solution, the runs that
completed successfully yielded correct result reliably and we have not recorded
single case when they would fail.

<figure><img src="image_2.png" /><figcaption>Fig. 1. Differential Evolution (NP: 50, G: 1500, F: 0.5, CR: 0.7)</figcaption></figure>

4 Conclusion

We have proposed alternative way to compute steel alloying recipe. Method using
evolution algorithms has several advantages when compared to most commonly
used Simplex method. It allows to incorporate final cost of used alloying ma-
terials into equation. Result of Simplex method is always cheapest solution in
given range. Using our fitness function described in Section 2 we can control the
importance of precise solution of final steel over it's price.

All runs presented in our experiments that were able to achieve less then ap-
proximately 155 fitness value provide satisfactory results and are fully prepared
to be used in real life environment on real life cases.

We would like to extend our work and try out more evolution algorithms
to compare their results. Mainly we would like to design larger experiment to
compare performance and precision of larger set of evolution algorithms on this
problem.
<table><caption>Table 5. Experimental results.</caption><thead><tr><th rowspan="2">Settings</th><th rowspan="2">Fitness</th><th colspan="12">Alloying elements [%]</th></tr><tr><th>C</th><th>Si</th><th>Mn</th><th>P</th><th>S</th><th>Cr</th><th>Ni</th><th>Mo</th><th>Cu</th><th>Nb</th><th>V</th><th>Al</th><th>Ti</th><th>N</th><th>W</th><th>Fe</th></tr></thead><tbody><tr><td>DE (1,000, 1,500, 0.5, 0.5)</td><td></td><td>153.518</td><td>0.040</td><td>0.083</td><td>0.969</td><td>0.001</td><td>0.001</td><td>1.270</td><td>0.943</td><td>0.000</td><td>0.001</td><td>0.000</td><td>0.011</td><td>0.000</td><td>0.000</td><td>0.000</td><td>96.680</td></tr><tr><td>DE (1,000, 1,500, 0.5, 0.6)</td><td></td><td>153.578</td><td>0.039</td><td>0.083</td><td>0.972</td><td>0.001</td><td>0.001</td><td>1.269</td><td>0.942</td><td>0.000</td><td>0.003</td><td>0.000</td><td>0.001</td><td>0.008</td><td>0.002</td><td>0.000</td><td>0.000</td><td>96.680</td></tr><tr><td>DE (1,000, 1,500, 0.5, 0.7)</td><td></td><td>153.689</td><td>0.040</td><td>0.085</td><td>0.957</td><td>0.001</td><td>0.001</td><td>1.273</td><td>0.949</td><td>0.000</td><td>0.003</td><td>0.000</td><td>0.002</td><td>0.010</td><td>0.000</td><td>0.000</td><td>0.000</td><td>96.680</td></tr><tr><td>DE (1,000, 1,500, 0.7, 0.5)</td><td></td><td>15.789</td><td>470</td><td>0.042</td><td>0.084</td><td>0.958</td><td>0.001</td><td>0.001</td><td>1.273</td><td>0.940</td><td>0.000</td><td>0.000</td><td>0.007</td><td>0.003</td><td>0.012</td><td>0.002</td><td>0.000</td><td>0.004</td><td>96.674</td></tr><tr><td>DE (1,000, 1,500, 0.7, 0.6)</td><td></td><td>100.347</td><td>300</td><td>0.055</td><td>0.083</td><td>0.918</td><td>0.001</td><td>0.001</td><td>1.274</td><td>0.948</td><td>0.003</td><td>0.014</td><td>0.002</td><td>0.003</td><td>0.014</td><td>0.007</td><td>0.000</td><td>0.004</td><td>96.674</td></tr><tr><td>DE (1,000, 1,500, 0.8, 0.5)</td><td></td><td>146.710</td><td>100</td><td>0.050</td><td>0.091</td><td>0.953</td><td>0.001</td><td>0.001</td><td>1.287</td><td>0.933</td><td>0.009</td><td>0.007</td><td>0.002</td><td>0.008</td><td>0.007</td><td>0.004</td><td>0.001</td><td>0.022</td><td>96.624</td></tr><tr><td>DE (1,000, 1,500, 0.8, 0.6)</td><td></td><td>334.186</td><td>400</td><td>0.075</td><td>0.105</td><td>0.947</td><td>0.001</td><td>0.001</td><td>1.195</td><td>0.916</td><td>0.007</td><td>0.015</td><td>0.003</td><td>0.026</td><td>0.028</td><td>0.013</td><td>0.005</td><td>0.009</td><td>96.656</td></tr><tr><td>DE (500, 1,000, 0.7, 0.5)</td><td></td><td>139.756</td><td>300</td><td>0.060</td><td>0.084</td><td>0.895</td><td>0.001</td><td>0.001</td><td>1.305</td><td>0.955</td><td>0.009</td><td>0.001</td><td>0.013</td><td>0.007</td><td>0.008</td><td>0.006</td><td>0.001</td><td>0.002</td><td>96.654</td></tr><tr><td>DE (500, 1,000, 0.7, 0.6)</td><td></td><td>325.398</td><td>300</td><td>0.065</td><td>0.078</td><td>0.803</td><td>0.001</td><td>0.001</td><td>1.278</td><td>0.960</td><td>0.028</td><td>0.012</td><td>0.016</td><td>0.032</td><td>0.021</td><td>0.016</td><td>0.000</td><td>0.015</td><td>96.675</td></tr><tr><td>DE (500, 1,000, 0.8, 0.5)</td><td></td><td>352.591</td><td>900</td><td>0.085</td><td>0.121</td><td>0.883</td><td>0.001</td><td>0.001</td><td>1.205</td><td>0.969</td><td>0.006</td><td>0.014</td><td>0.003</td><td>0.015</td><td>0.033</td><td>0.002</td><td>0.000</td><td>0.010</td><td>96.652</td></tr><tr><td>DE (500, 1,000, 0.8, 0.6)</td><td></td><td>926.096</td><td>500</td><td>0.209</td><td>0.169</td><td>0.895</td><td>0.001</td><td>0.001</td><td>1.144</td><td>0.706</td><td>0.035</td><td>0.042</td><td>0.009</td><td>0.037</td><td>0.022</td><td>0.024</td><td>0.006</td><td>0.021</td><td>96.678</td></tr><tr><td>DE (50, 1,500, 0.5, 0.5)</td><td></td><td>153.164</td><td>0.040</td><td>0.083</td><td>0.972</td><td>0.001</td><td>0.001</td><td>1.271</td><td>0.941</td><td>0.000</td><td>0.000</td><td>0.000</td><td>0.001</td><td>0.010</td><td>0.001</td><td>0.000</td><td>0.000</td><td>96.680</td></tr><tr><td>DE (50, 1,500, 0.5, 0.6)</td><td></td><td>153.021</td><td>0.040</td><td>0.085</td><td>0.972</td><td>0.001</td><td>0.001</td><td>1.269</td><td>0.941</td><td>0.000</td><td>0.002</td><td>0.000</td><td>0.001</td><td>0.009</td><td>0.000</td><td>0.000</td><td>0.000</td><td>96.679</td></tr><tr><td>DE (50, 1,500, 0.5, 0.7)</td><td></td><td>152.896</td><td>0.040</td><td>0.085</td><td>0.970</td><td>0.001</td><td>0.001</td><td>1.270</td><td>0.940</td><td>0.000</td><td>0.000</td><td>0.000</td><td>0.001</td><td>0.010</td><td>0.000</td><td>0.000</td><td>0.000</td><td>96.681</td></tr><tr><td>DE (50, 2,000, 0.5, 0.5)</td><td></td><td>152.956</td><td>0.040</td><td>0.085</td><td>0.971</td><td>0.001</td><td>0.001</td><td>1.268</td><td>0.942</td><td>0.000</td><td>0.001</td><td>0.000</td><td>0.001</td><td>0.009</td><td>0.001</td><td>0.000</td><td>0.000</td><td>96.681</td></tr><tr><td>DE (50, 2,000, 0.5, 0.6)</td><td></td><td>152.858</td><td>0.040</td><td>0.085</td><td>0.971</td><td>0.001</td><td>0.001</td><td>1.270</td><td>0.943</td><td>0.000</td><td>0.000</td><td>0.000</td><td>0.000</td><td>0.009</td><td>0.000</td><td>0.000</td><td>0.000</td><td>96.681</td></tr><tr><td>DE (50, 2,000, 0.5, 0.7)</td><td></td><td>152.666</td><td>0.040</td><td>0.085</td><td>0.971</td><td>0.001</td><td>0.001</td><td>1.269</td><td>0.940</td><td>0.000</td><td>0.001</td><td>0.000</td><td>0.000</td><td>0.011</td><td>0.000</td><td>0.000</td><td>0.000</td><td>96.681</td></tr><tr><td>SOMA (1,000, 200, 0.1, 0.1)</td><td></td><td>152.582</td><td>0.040</td><td>0.085</td><td>0.972</td><td>0.001</td><td>0.001</td><td>1.268</td><td>0.940</td><td>0.000</td><td>0.000</td><td>0.000</td><td>0.000</td><td>0.012</td><td>0.000</td><td>0.000</td><td>0.000</td><td>96.681</td></tr><tr><td>SOMA (1,000, 200, 0.1, 0.11)</td><td></td><td>152.717</td><td>0.040</td><td>0.085</td><td>0.972</td><td>0.001</td><td>0.001</td><td>1.268</td><td>0.942</td><td>0.000</td><td>0.000</td><td>0.000</td><td>0.000</td><td>0.011</td><td>0.000</td><td>0.000</td><td>0.000</td><td>96.680</td></tr><tr><td>SOMA (1,000, 200, 0.1, 0.3)</td><td></td><td>152.935</td><td>0.040</td><td>0.085</td><td>0.971</td><td>0.001</td><td>0.001</td><td>1.268</td><td>0.940</td><td>0.000</td><td>0.004</td><td>0.000</td><td>0.000</td><td>0.008</td><td>0.000</td><td>0.000</td><td>0.000</td><td>96.681</td></tr></tbody></table><table><thead><tr><th></th><th colspan="12">Desired composition vectors</th></tr></thead><tbody><tr><td>Minimal composition vector</td><td>0.030</td><td>0.065</td><td>0.952</td><td>0</td><td>0</td><td>1.268</td><td>0.940</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>96.671</td></tr><tr><td>Ideal composition vector</td><td>0.035</td><td>0.075</td><td>0.962</td><td>0.001</td><td>0.001</td><td>1.288</td><td>0.960</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0.003</td><td>0</td><td>0</td><td>0</td><td>0</td><td>96.676</td></tr><tr><td>Maximal composition vector</td><td>0.040</td><td>0.085</td><td>0.972</td><td>0.006</td><td>0.002</td><td>1.308</td><td>0.980</td><td>0.010</td><td>0.005</td><td>0.002</td><td>0.002</td><td>0.013</td><td>0.005</td><td>0.005</td><td>0.005</td><td>0.005</td><td>96.681</td></tr></tbody></table>
<figure><img src="image_3.png" /><figcaption>**Fig. 2.** SOMA (NP: 1000, Migrations: 200, PRT: 0.1, Step: 0.3)</figcaption></figure>

**Acknowledgement** This work was supported by the European Regional Development Fund in the IT4Innovations Centre of Excellence project (CZ.1.05/1.1.00/02.0070) and by the Development of human resources in research and development of latest soft computing methods and their application in practice project, reg. no. CZ.1.07/2.3.00/20.0072 funded by Operational Programme Education for Competitiveness, co-financed by ESF and state budget of the Czech Republic.

## References

1. Coelho, L. dos Santos: Self-organizing migration algorithm applied to machining allocation of clutch assembly, Mathematics and Computers in Simulation, Volume 80, Issue 2, October 2009, Pages 427-435

2. Senkerik, R., Zelinka, I., Oplatkova, Z.: Evolutionary Techniques for Deterministic Chaos Control, Technological Developments in education and automation, 391-396, 10.1007/978-90-481-3656-8-71, 2010

3. De Falco, I.: Differential Evolution for automatic rule extraction from medical databases, Applied soft computing, Pages 1265 - 1283, 10.1016/j.asoc.2012.10.022, 2013

4. Koloseni, D., Lampinen, J., Lukka, P.: Differential Evolution Classifier with Optimized Distance Measures for the Features in the Data Sets, Book Advances in Intelligent Systems and Computing, Volume: 188, Pages: 103-111, 2013

5. Zelinka, I., Chadli et al: An investigation on evolutionary reconstruction of continuous chaotic systems, Mathematical and Computer Modelling, Volume: 57, Pages: 2-1, 2013

6. Senkerik, R. et al: Performance comparison of differential evolution and SOMA on chaos control optimization problems, International journal of bifurcation and chaos, Volume 22, DOI: 10.1142/S021812741230025X, 2012
7. Sun, Y. et al: A hybrid co-evolutionary cultural algorithm based on particle swarm optimization for solving global optimization problems, Elsevier, Neurocomputing, Volume 98, Pages 76-89, 2012

8. Zhou, Y., Li, X., Gao, L.: A differential evolution algorithm with intersect mutation operator, Applied soft computing, Volume 13, Pages: 390 - 401, DOI: 10.1016/j.asoc.2012.08.014, 2013

9. Alguliev, R., Aligulizev R., Isazade, N.: DESAMC+DocSum: Differential evolution with self-adaptive mutation and crossover parameters for multi-document summarization, Knowledge - based systems, Pages: 21 - 38, DOI: 10.1016/j.knosys.2012.05.017, 2012

10. Onwubolu, GC., Babu, BV.: New Optimization Techniques in Engineering, Springer, ISBN 3-540-20167-X Springer - Verlag Berlin Heidelberg New York, 2004

11. Chakraborty, U., K.: Advances in Differential Evolution: Springer - Verlag Berlin Heidelberg, 2008, ISBN 978-3-540-68827-3

12. Ghosh, A., Chatterjee, A. Ironmaking and steelmaking: theory and practice. New Delhi: Prentice-Hall of India, 2008. ISBN 978-812-0332-898.

13. Dantzig, G. B., Thapa, M. N.: Linear programming. New York: Springer, c1997-2003, 2 v. ISBN 03879861382.

14. Zhang, Y., Gong, DW., Zhang, JH: Robot path planning in uncertain environment using multi-objective particle swarm optimization, Neurocomputing, Pages 172 - 185, DOI: 10.1016/j.neucom.2012.09.019, 2013

15. Chakaravarthy, GV, Marimuthu, S., Sait, AN.: Performance evaluation of proposed Differential Evolution and Particle Swarm Optimization algorithms for scheduling m-machine flow shops with lot streaming, Journal of intelligent manufacturing, Volume 24, Pages: 175 - 191, 10.1007/s10845-011-0552-2, 2013

16. Subramanian, P.et al: PRISM: PRIority based SiMulated annealing for a closed loop supply chain network design problem, Applied soft computing, Volume 13, Pages: 1121 - 1135, DOI: 10.1016/j.asoc.2012.10.004, 2013

17. Chengfo, S.: Improved differential evolution algorithms, Computer Science and Automation Engineering (CSAE), 2012 IEEE International Conference, 25 – 27 May 2012, Pages 142 - 145

18. Price, KV., Storn RM., Lampinen JA: Differential Evolution A Practical Approach to Global Optimization, Springer, 1997

19. Zelinka, I., Skanderova, L.: Investigation on Evolutionary Control and Optimization of Chemical Reactor, Soft computing models in industrial and environmental applications, Advances in Intelligent Systems and Computing, Volume 188, Pages: 469-474, 2013

20. Pavlech, M.: Self-organizing Migration Algorithm on GPU with CUDA, Soft computing models in industrial and environmental applications, Advances in Intelligent Systems and Computing, Volume 188, Pages 173 – 182, 2013

21. Kadlec, P., Raida, Z.: A Novel Multi-Objective Self-Organizing Migrating Algorithm, Radioengineering, Volume 20, Pages 804 – 816, 2011