Keywords

1 Introduction

As a rule design problems are characterized by high computational complexity due to the search of huge number alternative solutions. Besides, to find the accurate solution it is necessary to carry out a exhaustive search, which is impossible. Design problems include partitioning problem, placement problem, routing problem etc. [1].

Placement and routing problems are the most important problems throughout the lifecycle duration. Traditionally, these problems are solved by different methods at different stages that lead to increase the time and computational complexity. So, a development of integrated methods for placement and routing problems seems appropriate at the present time. Such methods allow us to take into account constraints and current results during the problems solution [2].

To increase the problem solving effectiveness in terms of automated design of complex engineering systems, which contain a million components, it is useful to employ evolutionary and genetic algorithms [3].

A new development stage of genetic algorithm theory became hybrid systems. They are based on a combination of various scientific fields such as genetic algorithms, fuzzy systems and neural networks [49]. Currently mechanisms of parallelized evolutionary computations are widely used to effective computational resources management [1012].

2 Problem Formulation

Let E = {e i | i = 1, …, N} denote a set of elements, where e i  = (l i , h i , T i ) is an element which should be placed and N is a number of elements. Here \( l_{i} \) is a length of the element, \( h_{i} \) is a height of the element and \( T_{i} \) is a list of pins which can be written as Ti = {tj | j = 1, …, K}.

Here \( t_{j} \) is a pin, K is a number of pins in the element. Each pin is described as t j  = (x j , y j ) where \( x_{i} ,y_{i} \) are pin coordinates relative to the base point of the element.

The set of net that connected each element is defined as \( {\text{U}} = \left\{ {{\text{u}}_{\text{h}} |{\text{h}} = 1, \ldots ,{\text{L}}} \right\}, \) where \( u_{h} \) is a net, L is a number of nets.

The net is defined as \( u_{h} = \left\{ {\left( {Ne_{k} ,Nc_{k} } \right)|k = 1, \ldots ,M} \right\}, \) where N ek is a number of element, N ck is a number of pin and M is number of pins connected by the net.

It is required to find such elements placement that \( V = \left\{ {\left( {x_{i} ,y_{i} } \right)|i = 1, \ldots ,N} \right\}, \) where (xi, yi) are coordinates of upper left corner of the ith element.

For each net the contact list of connection field needs to be found.

\( V = \left\{ {\left( {x_{i} ,y_{i} } \right)|i = 1, \ldots ,N} \right\},{\text{W}}_{\text{h}} = \left\{ {\left( {{\text{x}}_{\text{q}} ,{\text{y}}_{\text{q}} } \right)|{\text{i}} = 1, \ldots ,{\text{Q}}} \right\}, \) where Q is a number positions through which passes the hth net.

3 Algorithm Description

For simultaneous solution placement and routing problems the parallelized genetic algorithm is used. It supposes a parallel implementation of evolutionary processes for several populations. The synchronization of asynchronous processes are performed in migration points. Migration points are defined by particular asynchronous events which may take place in each evolutionary process. If the event is occurs in the one of processes, the another random selected process is held. After that the migration operator is applied to both populations. The migration operator is transferred and copied individuals from one population to another.

The migration operator is applied to transfer chromosomes between populations. Individuals are selected from a number of chromosomes in populations with the best value of objective function. The selection is based on estimation of unrouting connection in the chromosome. For each placement which described by the chromosome the routing is implemented by the wave algorithm. Then chromosomes with the maximum total number of unrouting connections are copied from the population with the minimum total number of unrouting connections to other population. And the same numbers of chromosomes with the minimum value of the objective function are deleted from the second population.

Let the migration operator is applied to populations P i  = {h 1, h 2h s } and P j  = {h 1, h 2h s }, where h s is chromosome in population, s = [1, N] (N is a number of chromosome in population). A number of unrouting connection in P j population is less then in P i population. As a result of selection we obtain a subpopulation P j ′ = {h 1, h 2h t } where h i is a selected chromosome, t = [1, M] (M is a number of selected from P j population chromosome). Then in P i population the t chromosomes of with the minimum value of objective function are replaced with chromosomes from P j ′. So the P j population is not changed.

The right choice of migration frequency (time interval between migrations) and quantity of individuals is very important in the migration process. The frequent migration (migration of a large number of chromosomes) comes down to the combination of all populations and the preliminary convergence of the genetic algorithm. Also the rare migration can not prevent from the preliminary convergence of population. To define the probability of migration operator it is suggested fuzzy logic controller which is described below. The probability of migration operator along with crossover and mutation operators is determined on the basis of data on evolution effectiveness in each process.

In each evolutionary process the initial population is defined by the shotgun method. The selection is implemented by the roulette method. In the evolutionary process we apply the single-point crossover operator and multiple-point mutation operator in which the number of genes is proportional to the chromosome length. The probability of genetic operators is determined by fuzzy logic controller [4, 6, 13].

In Fig. 1 we show a block diagram of the developed algorithm for two population. In practice a number of population is considerably larger.

Fig. 1
figure 1

The block diagram of the algorithm

During the solution coding the set of position is represented by the regular structure (lattice). Each position pi has coordinates xi, yi. Positions are enumerated in coordinate xi ascending order within the string from left to right. But strings are enumerated in coordinate yi ascending order from top to bottom. According with this rule position are enumerated as shown in Fig. 2.

Fig. 2
figure 2

The position enumeration at connection field

Each solution is represented by chromosome Hi. The gene numerical number in chromosome corresponds the numerical number of the element which should be placed. The value of gene corresponds the number of position at connection field. A number of genes in the chromosome is equal a number of elements which should be placed.

Each element has a basic point \( O_{i}^{\delta } \) and basic coordinate axis \( O_{i}^{\delta } X_{i}^{\delta } \), \( O_{i}^{\delta } Y_{i}^{\delta } \). Each element has a square shape. Let element ei is assigned in position pj, if its basic point \( O_{I}^{\delta } \) matches with the point in connection field which has coordinates xj yj [14].

For example the chromosome <4> <5> <6> <9> <2> <3> assign the placement shown in Fig. 3. Intersection points of black dashed lines correspond to position within connection field.

Fig. 3
figure 3

Calculation of the placement fitness function

To calculate the objective function of placement it is needed to determined a normalized estimate of penalty for overlapping an area of placing elements, a total length of connection and a routing factor.

$$ {\text{F}}_{\text{p}} =\upalpha^{*} {\text{S}} +\upbeta^{*} {\text{L}} +\upgamma^{*} {\text{T }}. $$
(1)

The penalty for overlapping an area of placing elements is a total intersection area of all elements.

$$ \sum\limits_{i = 0}^{n} {\sum\limits_{j = i + 1}^{n} {R_{ij} } } $$
(2)

where Rij is an intersection area of ith and jth elements, n is a number of elements.

The interconnection length is estimated by calculation of half-perimeter of the net bounding rectangle.

$$ L = \sum\limits_{i = 0}^{l} {(x_{i}^{max} - x_{i}^{min} ) + (y_{i}^{max} - y_{i}^{min} )} $$
(3)

where x max i , x min i , y max i , y min i are maximum and minimum values of x and y in ith circuit, l is a number of nets.

The routing factor is determined by the total area of intersection of nets bounding rectangle.

$$ T = \sum\limits_{i = 0}^{l} {\sum\limits_{j = i + 1}^{l} {Q_{ij} } } $$
(4)

where Qij is a an intersection area of bounding rectangles of ith and jth nets, l is a number of nets.

The objective function of routing is a percent of unrouting connections.

$$ {\text{Fr}} = * 100, $$
(5)

where Cr is a number of unrouting connections, C is a total amount of connections.

4 Block of Fuzzy Control

The fuzzy control module is represented as follows:

$$ \bar{y} = \frac{{\mathop \sum \nolimits_{k = 1}^{N} \bar{y}^{k} \left( {\mathop \prod \nolimits_{i = 1}^{n} { \exp }\left( { - \left( {\frac{{\bar{x}_{i} - \bar{x}_{i}^{k} }}{{\sigma_{i}^{k} }}} \right)^{2} } \right)} \right)}}{{\mathop \sum \nolimits_{k = 1}^{N} \left( {\mathop \prod \nolimits_{i = 1}^{n} { \exp }\left( { - \left( {\frac{{\bar{x}_{i} - \bar{x}_{i}^{k} }}{{\sigma_{i}^{k} }}} \right)^{2} } \right)} \right)}} $$
(6)

where x k i is a centre, σ k i is a width of Gaussian curve (membership function of fuzzification block), y k are centers of membership functions of defuzzification block fuzzy sets.

This expression is one of the most popular and frequently used approaches for fuzzy systems realization. Each element is defined by function block (sum, composition, Gaussian function) which allowed create a multilayer network. In this case a neural network contains four layer. At first layer input signals \( {\text{x}}_{{{\text{i}}\;\_\_}} \) arrive, and in output for this signals membership function values are formed. The second layer correspond a rule base and multipliers correspond an output block. The third and fourth blocks realize the defuzzification block [47, 13, 14].

To increase the quality of search results expert information includes with evolution process using fuzzy controller which regulate values of factors.

There are input parameters.

$$ e_{1} (t) = \frac{{f_{ave} (t) - f_{best} (t)}}{{f_{ave} (t)}} $$
(7)
$$ e_{2} (t) = \frac{{f_{ave} (t) - f_{best} (t)}}{{f_{worst} (t) - f_{best} (t)}} $$
(8)
$$ e_{3} (t) = \frac{{f_{best} (t) - f_{best} (t - 1)}}{{f_{best} (t)}} $$
(9)
$$ e_{4} (t) = \frac{{f_{ave} (t) - f_{ave} (t - 1)}}{{f_{ave} (t)}} $$
(10)

where t is a time interval, f best (t) is the best value of the objective function at the iteration t; f best (t − 1) is the best value of the objective function at the iteration (t − 1), f worst (t) is the worse value of the objective function at the iteration t, f ave (t) is an average value of the objective function at the t iteration, f ave (t − 1) is an average value of the objective function at (t − 1) iteration [11] (Fig. 4).

Fig. 4
figure 4

Calculation of routing fitness function

As a result we obtain probabilities of crossover, mutation and migration operators. Consequently, to determine these parameters we use the fuzzy control block three times.

5 Experimental Results

To estimate the algorithm effectiveness we placed and route 300 randomly generated elements and 150 nets with from 2 to 5 pins. Experiments result with different number of parallel algorithm streams is shown in Table 1.

Table 1 Experimental results

To compare the effectiveness the test problems solved using the FLC and without it are investigated earlier [14]. Table 2 showed that the efficiency of the algorithm with use the controller is much higher than the efficiency of the algorithm without it.

Table 2 Comparison

6 Conclusion

Results of the experiments showed that the efficiency of the controller is increased after the introduction of the training unit on the basis of an artificial neural network model.

FLC parameters that were used in the study were obtained using a genetic algorithm learning. Training was carried out on the basis of statistical information on the dependence of the FLC parameters and the efficiency of the algorithm placement. This information is collected during the learning process.

We plan to further evaluate the effectiveness of the algorithm by simultaneously solving accommodation problems and tracing. Also, a comparative analysis of the obtained results with known analogues will be held.