An Efﬁcient Hybrid Genetic Approach for Solving the Two-Stage Supply Chain Network Design Problem with Fixed Costs

: This paper deals with a complex optimization problem, more speciﬁcally the two-stage transportation problem with ﬁxed costs. In our investigated transportation problem, we are modeling a distribution network in a two-stage supply chain. The considered two-stage supply chain includes manufacturers, distribution centers, and customers, and its principal feature is that in addition to the variable transportation costs, we have ﬁxed costs for the opening of the distribution centers, as well as associated with the routes. In this paper, we describe a different approach for solving the problem, which is an effective hybrid genetic algorithm. Our proposed hybrid genetic algorithm is constructed to ﬁt the challenges of the investigated supply chain network design problem, and it is achieved by incorporating a linear programming optimization problem within the framework of a genetic algorithm. Our achieved computational results are compared with the existing solution approaches on a set of 150 benchmark instances from the literature and on a set of 50 new randomly generated instances of larger sizes. The outputs proved that we have developed a very competitive approach as compared to the methods that one can ﬁnd in the literature.


Introduction
Supply chains (SCs) are considered to be worldwide networks in which the actors are: suppliers, manufacturer plants, distribution centers (DCs), retailers, and customers, and their principal objective is the fulfillment of the customer needs. In order to obtain an effective management of SC systems, researchers have emphasized the transportation system design, as it plays a significant role within the SC. A supply chain is represented usually as a multi-level structure, while its optimal design has been acknowledged to be an NP-hard problem. For more information on supply chain network design, we refer to Govindan et al. [1], Klibi et al. [2], Melo et al. [3], Wang [4], Dotoli [5,6], etc.
The goal of a transportation model is to minimize the total cost in transporting goods from a set of sources to a set of destinations, fulfilling the request of the destinations and using the capacities of the sources. In practical applications, fixed costs are associated with the arcs connecting sources to destinations, supplementary to the variable transportation costs, which are proportional to the amount of goods distributed along the arcs, resulting in a problem known in the literature as the fixed cost transportation problem (FCTP). Obviously, FCTP is a generalization of the classical transportation problem, and it was introduced by Balinski [7]. Guisewite and Pardalos [8] showed that the FCTP is NP-hard. For more information on the FCTP including a review of exact and heuristic approaches developed for solving the problem, we refer to Buson et al. [9]. This paper focuses on a variation of the fixed cost transportation problem in a supply chain network, namely the two-stage supply chain network design problem in which we consider two kinds of fixed costs: ones for opening the DCs and the others associated with the routes between manufacturers and DCs and between DCs and customers. In the form considered in our paper, the two-stage supply chain network design problem with fixed costs (TSSCNDP-FC) was defined by Hong et al. [10]. The same authors proposed an integer linear programming model of the problem, as well as a solution approach based on ant colony optimization tested on a set of 150 instances split into three classes: small, medium, and large sized instances. Recently, Sabo et al. [11] described a valid model of the problem and pointed out some inaccuracies regarding the paper published by Hong et al. [10].
Some other two-stage transportation problems with fixed costs considered in the literature and related to the investigated problem are: • The two-stage transportation problem with fixed costs associated with the routes: Raj and Rajendran [12] proposed two scenarios of the two-stage transportation problem: the first one, called Scenario 1, takes into consideration fixed costs associated with the routes in addition to unit transportation costs and boundless capacities of the DCs, while the second one, called Scenario 2, considers the opening costs of the DCs in addition to unit transportation costs. The same authors developed a genetic algorithm (GA) with a particular coding scheme applicable for two-stage transportation problems, and also, they provided a set of 20 benchmark instances. Another GA dealing with the two-stage transportation problem with fixed charge associated with the routes from plants to customers through DCs was proposed by Jawahar and Balaji [13].
Pop et al. [14] proposed a hybrid method that combines a steady-state GA with a powerful local search procedure. Cosma et al. [15] described an efficient multi-start iterated local search (ILS) procedure for the total transportation cost minimization of the two-stage transportation problem, which begins with a feasible solution of the problem, makes use of a local search procedure with the goal of increasing the exploration, a perturbation mechanism, and a neighborhood operator with the scope of diversifying the search.

•
The two-stage transportation problem with fixed costs for opening the distribution centers (DCs): This two-stage transportation problem was introduced by Gen et al. [16]. The present literature regarding the two-stage transportation problem with fixed costs for opening the DCs is rather limited. This optimization problem has also been investigated by Raj and Rajendran [12], who called it Scenario 2. Calvete et al. [17] proposed a hybrid evolutionary algorithm whose principal characteristic is the employment of a chromosome encoding that offers information about the DCs used within the transportation system. Cosma et al. [18] described an effective heuristic algorithm that reduces the solution search space to a subspace with a reasonable size, without losing optimal or sub-optimal solutions by means of a perturbation mechanism that allows the reconsideration of the feasible solutions that are discarded and that might lead to such solutions. Lately, Cosma et al. [19] proposed a matheuristic approach for solving the two-stage transportation problem with fixed costs associated with the routes by incorporating a linear programming optimization problem within the framework of a genetic algorithm.

•
A particular case is where there exists only one plant manufacturer, and this version was considered by Molla et al. [20]. They proposed an integer linear programming mathematical model of the problem, and in addition, they described two solution approaches for solving it: a spanning tree-based genetic algorithm with a Prüfer number representation and an artificial immune algorithm. Some remarks regarding the mathematical model of the problem were published by El-Sherbiny [21]. Pintea et al. [22] proposed some hybrid algorithms, and Pintea and Pop [23] described an efficient hybrid approach combining the nearest neighbor search heuristic with a local search procedure for solving this particular two-stage transportation problem with fixed costs. Pop et al. [24] developed an innovative hybrid heuristic method achieved by combining a genetic algorithm based on a hash table coding of the individuals with a powerful local search procedure. Recently, Cosma et al. [25] described an effective hybrid heuristic approach that builds an initial feasible solution, then uses a local search procedure whose goal is to increase the exploration and a neighborhood structure for diversifying the search.

•
Another two-stage transportation problem takes into consideration its effect on the environment by reducing the greenhouse gas emissions and was introduced by Santibanez-Gonzales [26] for dealing with a practical application from the public sector. For this version of the problem, Pintea et al. [27] described a set of hybrid heuristic methods, and Pop et al. [28] proposed an effective reverse distribution system for solving it.
As we can observe, the investigated supply chain network design problem generalizes the previously mentioned transportation problems by considering simultaneously two types of fixed costs: ones associated with the transportation routes and the others for opening the DCs in addition to the variable transportation costs, which are proportional to the amount of goods distributed along the arcs.
We organize the remainder of the paper as follows: in Section 2, we define the investigated two-stage supply chain problem with fixed costs and present a set of notations that will be used throughout the paper, and in Section 3, we describe a mixed integer linear formulation of the problem. The novel hybrid method, which incorporates a linear programming problem within the framework of a genetic algorithm, is presented in Section 4, and the comprehensive computational experiments with their outcomes are showcased and analyzed in Section 5. Finally, we conclude our work and discuss our plans for future work in Section 6.

Definition of the Two-Stage Supply Chain Network Design Problem with Fixed Costs for Opening the Distribution Centers and Transportation Routes
In order to define and model the two-stage supply chain network design problem with fixed costs for opening the DCs and transportation routes, we consider a tripartite directed graph G = (V, A) that consists of a set of vertices V = V 1 ∪ V 2 ∪ V 3 and a set of arcs A = A 1 ∪ A 2 defined as follows: The entire set of nodes V is partitioned into three mutually exclusive sets corresponding to the set of manufacturers denoted by V 1 with |V 1 | = m, the set of distribution centers denoted by V 2 with |V 2 | = d, and the set of customers denoted by V 3 with |V 3 | = r.
In addition, we suppose that: • Every manufacturer i ∈ V 1 has S i units of supply; every distribution center j ∈ V 2 has a given capacity SC j ; each customer k ∈ V 3 has a demand D k ; • Every manufacturer may transport to any of the q distribution centers at a transportation cost c ij per unit from manufacturer i ∈ V 1 to DC j ∈ V 2 ; • Every DC may transport to any of the r customers at a transportation cost c jk per unit from DC j ∈ V 2 to customer k ∈ V 3 ; • In order to open any of the DCs, we have to pay a given fixed cost denoted by f j , and there exist fixed transportation costs from each manufacturer to each distribution center, denoted by f ij , where i ∈ V 1 and j ∈ V 2 , and from each DC to each customer, denoted by f jk , where j ∈ V 2 and k ∈ V 3 .
The aim of the two-stage supply chain network design problem with fixed costs associated with the transportation routes and for opening the DCs is to select the DCs and the routes to be opened and the corresponding transported quantities on these routes, such that the demands of the customers are satisfied, all transportation restrictions are fulfilled, and the total transportation costs are minimized. Figure 1 illustrates the two-stage supply chain network design problem with fixed costs that we investigated.

A Valid Mathematical Model of the Two-Stage Supply Chain Network Design Problem with Fixed Costs
In this section, we present a valid mathematical formulation based on mixed integer programming of the investigated two-stage supply chain network design problem with fixed costs associated with the transportation routes and for opening the DCs.
We introduce the following decision variables: Then, the two-stage supply chain network design problem with fixed costs can be formulated as the following mixed integer problem, described by Sabo et al. [11]: Our objective is to minimize the total transportation cost including the unit transportation costs and the fixed costs (for opening DC's and associated with the routes). Constraint (2) guarantees that the capacity of the manufacturers is not surpassed. Constraint (3) guarantees that the customers demands are fulfilled. Constraint (4) is the flow conservation conditions and assures that the units collected by a given distribution center from manufacturers are equal to the units transported from that distribution center to the customers. Constraint (5) guarantees that the storage capacities of the distribution centers are not surpassed. Finally, the last constraint sets the ranges of the decision variables.
Hong et al. [10] described an illustrative example consisting of 2 manufacturing plants, 4 DCs, and 6 customers, whose characteristics are presented in Figure 2. We solved this example using our proposed mixed integer programming formulation of the problem with CPLEX Version 12.7.0, and in Figure 3, we present the obtained optimal solution. In Figure 3, we point out the capacities of the manufacturers, the storage capacities of the DCs, the demands of the customers, the transportation costs, and with red color, the fixed costs for opening the DCs and fixed costs associated with the selected transportation routes.
In order to obtain the optimal solution for this example, using our model by means of CPLEX only took 0.05 s and 30 iterations, in contrast to the model proposed by Hong et al. [10], which used the LINGO solver in order to find the optimal solution of a cost of 449,050 within 93 iterations, and their proposed ant colony approach, which provided an suboptimal solution cost of 476,138 within 0.24 s.

Description of the Novel Solution Approach
To solve TSSCNDP-FC, we propose a genetic algorithm, hybridized with a linear programming procedure. Genetic algorithms (GAs) were introduced by Holland [29] and are search metaheuristic techniques inspired by the Darwinian evolutionary theory based on the "survival of the fittest" concept. GAs have the capability to deliver "good" sub-optimal solutions within reasonable computational running times, making them very attractive for solving optimization problems characterized by a large feasible solution space. A genetic algorithm begins with a collection of feasible solutions, called the initial population, which are represented by chromosomes. Solutions from the current population are selected and employed to compose a new population. This is motivated by the belief that the newly created population will be better than the old one in terms of the quality of the solutions. The solutions that are picked to generate the offspring are selected according to their fitness; the more appropriate they are, the more opportunities they have to reproduce. This is repeated until some criteria (for example, the number of populations, improvement of the best solution, etc.) are fulfilled.
Our genetic algorithm builds different breeds of chromosomes that evolve separately from random populations, until evolution stagnates. Then, the breeds are merged together, hoping that the newly formed hybrid chromosomes will be better.
The operating principle of our hybrid genetic algorithm is shown in Figure 4, and the description of its blocks are described within this section. The proposed GA makes use of an effective representation in which the genes of the chromosome represent the estimates of the flows corresponding to the optimal solution of the problem. Therefore, the chromosome contains two parts: the first one is an m × d matrix associated with the links from manufacturers to distribution centers, and the second one is a d × r matrix associated with the links from distribution centers to customers. We denote byx ij the gene corresponding to the link between manufacturer i and DC j andx jk the gene corresponding to the link between DC j and customer k. Initially, the chromosomes are generated randomly, with the only natural conditions that the estimates must not exceed the capacities of the manufactures, respectively the demands of the customers, i.e.,x ij ∈ [0, S i ], for all i ∈ V 1 and j ∈ V 2 , andx jk ∈ [0, D k ], for all j ∈ V 2 and k ∈ V 3 .
It is unlikely that such a random chromosome would represent a correct estimate of a feasible solution of the two-stage supply chain network design problem with fixed costs for opening the DCs and associated with the routes. However, each chromosome has an associated feasible solution that can be effectively determined by solving the following linear programming problem, which is a simplified variant of the mathematical model of the TSSCNDP-FC: The simplified variant of the mathematical model of the TSSCNDP-FC is actually a minimum cost flow problem for which there are well-known algorithms that solve it optimally in an efficient manner. We used the network simplex algorithm for solving this linear programming problem. The cost of the TSSCNDP-FC solution associated with the considered chromosome can be obtained using Relation (1) and the flows x ij and x jk determined by solving the simplified variant of the problem.
In order to boost the chances of discovering the optimal solution of the investigated supply chain problem with fixed costs, we developed a chromosome enhancement procedure shown in Algorithm 1, that processes all the chromosomes created throughout our genetic algorithm. If the solution has been improved, then the chromosome genes are updated in Step 8, using the streams determined in step 3. However, there is no guarantee that each iteration of the algorithm will enhance the TSSCNDP-FC solution associated with chromosome c. The algorithm stops when the solution worsens or a duplicate chromosome is reached. Finally, the genes of c are replaced with those of the last chromosome saved in Step 6. A chromosome c 2 is considered a duplicate of c 1 if the two chromosomes have the same corresponding TSSCNDP-FC solution.
For the newly created random chromosomes, the condition in Step 5 is changed toz ≤ z. This produces cleaner chromosomes in the initial population. Experiments showed that for the other chromosomes, it was better that the decision remained unchanged, because thus, there would be more diversity among the offspring.
In Figure 5, we illustrate the representation of an estimated chromosome associated with the example provided by Hong et al. [10], whose characteristics were presented in the previous section, where the entries of the matrix must not overcome the capacities of the manufacturers and the demands of the customers, and the representation of the chromosome after applying the chromosome enhancement procedure: We remark that the chromosome C 1 correspond to an unfeasible solution, while the enhanced chromosome P 1 corresponds to a feasible solution of the problem.
For initializing the algorithm, an initial population of 2 × (m × d + d × r) enhanced chromosomes is generated by the random generator block; see Figure 4.
The admission block chooses the chromosomes that will form the current population (generation) from a pool of chromosomes that can be either from the current population or the offspring resulting from applying genetic operators (crossover and mutation). The size of each generation is kept constant at (m × d + d × r)/2 chromosomes. The admission block applies the following rules, which were adjusted based on computational experiments:

•
The first two-thirds of the current population will be completed with the best chromosomes in the pool. At least half of these chromosomes must be newborn, i.e., not being part of the current population in the previous stages of evolution.

•
The other chromosomes in the current population are randomly chosen from the pool.
Selection is the phase of a GA in which individual chromosomes are selected from a population for later breeding. Our selection block uses the tournament selection strategy for choosing the two chromosomes that will be selected to undergo crossover in order to form an offspring. The number of participants for each tournament was randomly settled between two and 10.
Crossover is a genetic operator that combines the genetic information of two parents in order to achieve new offspring. Our crossover block groups the chromosomes supplied by the selection block two-by-two. Then, with each pair, it forms an offspring. Each gene of the offspring is taken with the same probability either from the first parent or from the second one. The way our proposed crossover operator works is illustrated in Figure 6.
The chromosomes C 1 and C 2 in Figure 6 are two random chromosomes associated with the illustrative example presented in the previous section. By applying the chromosome enhancement procedure, they are transformed into two new chromosomes denoted by P 1 and P 2 , which are feasible solutions of the TSSCNDP-FC. The offspring O 1 is obtained by applying the crossover operator to parents P 1 and P 2 , and finally, the enhanced offspring O 1e is obtained by applying the enhancement procedure to O 1 . We can observe that the enhanced offspring O 1e represents a better solution than the two feasible solutions corresponding to the parents P 1 and P 2 . In Figure 6, we represent with red color the genes inherited by the offspring O 1 from each of the parents P 1 and P 2 . Mutation is a genetic operator whose main scope is to maintain the diversity of the chromosomes between consecutive generations of the GA. It is similar to biological mutation and usually happens with low probability. Our mutation operation was applied with a probability of 1% to each newborn chromosome. To accomplish this operation, a client k and a set of minimum 1 and maximum d DCs are randomly chosen. Then, all genes corresponding to the links between the k client and the chosen DCs are changed as follows:x jk ← random value [1, D k ]. Then, a DC j and a set of a minimum of one and a maximum of m manufacturers are randomly chosen. Then, all genes corresponding to the links between the d DCs and the chosen manufacturers are changed as follows: The way the proposed mutation operator works is depicted in Figure 7.
The chromosome O 2 in Figure 7 represents the result of applying the mutation operator to the offspring O 1 presented in Figure 5. In this example, the mutation operator chooses the sixth client and a group of three DCS (1, 3, and 4), after which, it chooses the fourth DC and only one manufacturer (2). The enhanced offspring O 2e is obtained by applying the enhancement procedure to O 2 . This actually represents the optimal solution of the considered TSSCNDP-FC.
The genes of the chromosomes involved in the crossover and mutation examples are presented in Figure 8. The red entries in the representations of P 1 and P 2 are the genes inherited by the offspring O 1 and in O 2 are the genes that are changed by applying the mutation operator.  The evolution of a chromosome population ends when the best chromosome has not been improved in the last 25 generations. If a breed pool is available, then it is merged with the current population, using hybrid selection. The hybrid selection is different from the selection operation by the fact that it processes chromosomes from two different pools: the current population and the breed pool. One of the parent chromosomes is selected from the current population, and the other one is selected from the breed pool. The merging completes when the desired number of newborn chromosomes has been added to the offspring pool or when the desired number of crossover operations has been performed.
When the merging operation finishes, the breed pool is replaced with chromosomes taken from the current population, the existing breed pool, and the offspring. This operation is performed by the hybrid admission block, which applies the same rules as the admission block.

Discussion
This section is dedicated to the achieved computational results with the aim of assessing the effectiveness of our developed approach for solving the two-stage supply chain network design problem with fixed costs associated with the transportation routes and for opening the DCs.
We performed our computational experiments for solving the two-stage supply chain problem with fixed costs associated with the routes and for opening the distribution centers on a set of 200 instances randomly generated with varying characteristics in the same way as Hong et al. [10] generated. Since the test instances used by Hong et al. [10] could not be obtained in the literature, we generated new instances similar to those in Hong et al. [10]: the first 150 test instances classified into three problem classes: smaller, which consisted of 2 manufacturing plants, 5 DCs, and 10 customers, medium, which consisted of 4 manufacturing plants, 8 DCs, and 15 customers, and large, which consisted of 6 manufacturing plants, 10 DCs, and 20 customers. In addition, we generated randomly 50 test instances of the larger size consisting of 8 manufacturing plants, 12 distribution centers, and 25 customers, respectively 10 manufacturing plants, 15 distribution centers, and 30 customers. All the instances used in our computational experiments are available in [30].
We coded our algorithm in Java 8, and for each instance, we carried out 10 independent trials, on a PC with Intel Core i5-4590 3.3GHz, 4GB RAM, and the Windows 10 Education 64 bit operating system. To solve the proposed mixed integer programming formulation of the problem, we used CPLEX Version 12.7.0.
Tables 1-5 summarize the computational experiments performed for solving the considered instances using CPLEX 12.7.0 and the proposed hybrid solution approach.
In Table 1, we present the results obtained by CPLEX and the proposed hybrid genetic algorithm for solving small instances of the problem. The experimental study implied running each instance ten times. The first column displays the number of the instance; the next two columns contain the value of the optimal solution Z opt and the necessary computing time spent in solving the instances provided by CPLEX. The following six columns contain the results obtained by our hybrid genetic algorithm: the minimum and the maximum of the objective function achieved in the ten runs of each instance (Z min and Z max ), the percentage gap defined as 100 × (Z avg. − Z min )/Z min , the minimum, maximum, and average computing times (T min , T max , and T avg. ) necessary for solving the instances. Z avg. is the average of the objective function achieved in the ten runs of each instance. The last column provides the improvement gap of the time necessary to deliver the optimal solution by the hybrid genetic algorithm in comparison to CPLEX. The improvement time gap is calculated as follows: 100 × (T CPLEX − T avg. )/T CPLEX . The instances are ordered based on these improvements.
Analyzing the results presented in Table 1, we can remark that for all the considered small sized instances, CPLEX delivered the optimal solutions within a computational time ranging from 0.047 to 0.172 s. Our hybrid solution approach delivered as well the optimal solutions in all ten runs of each instance and the average computational time spent in solving the instances ranged from 0.000 to 0.009 s. The average improvement gap of the time spent to deliver the optimal solution by the hybrid genetic algorithm in comparison to CPLEX was greater than 95%.
In Table 2, we present the results obtained by CPLEX and the proposed hybrid genetic algorithm for solving medium instances of the problem. The columns of Table 2 are similar to those of Table 1, and we ordered the instances based on the improvement of the time necessary to deliver the optimal solution by the hybrid genetic algorithm in comparison to CPLEX.
Analyzing the results presented in Table 2, we can remark that for all the considered medium sized instances, CPLEX delivered the optimal solutions within a computational time ranging from 1.39 to 16.63 s. Our hybrid solution approach delivered as well the optimal solutions in all ten runs of each instance, i.e., Z min = Z max = Z opt , and the average computational time spent in solving the instances ranged from 0.09 to 3.07 s. The average improvement gap of the time spent to deliver the optimal solution by the hybrid genetic algorithm in comparison to CPLEX was greater than 87%. In Table 3, we present the results obtained by CPLEX and the proposed hybrid genetic algorithm for solving large instances of the problem. The first column displays the number of the instance, and the next two columns contain the value of the optimal solution Z CPLEX achieved by CPLEX and the necessary computing time spent in solving the instances provided by CPLEX when available, otherwise the solution determined by CPLEX when interrupting the run after 3600 s of computing time. The following six columns contain the results obtained by our hybrid genetic algorithm: the minimum and the maximum of the objective function achieved in the ten runs of each instance (Z min and Z max ), the percentage gap defined as 100 × (Z max − Z min )/Z min , the minimum, maximum, and average computing times necessary for solving the instances. The last column provides the improvements of the solutions delivered by the hybrid genetic algorithm in comparison to the solutions achieved by CPLEX. The instances are ordered based on these improvements. The improvement gap is calculated as follows: 100 × (Z CPLEX − Z min )/Z CPLEX . For the instances presented in Table 3, the running time of the algorithm was limited to 200 s.
Analyzing the computational results reported in Table 3, we can remark that for the first 43 instances, the best solution provided by our hybrid genetic algorithm improved the solution delivered by CPLEX within 3600 s, and the average computational time spent in solving the instances ranged from 11.63 to 113.26 s. The average improvement gap of the solutions delivered by the hybrid genetic algorithm in comparison to the solutions achieved by CPLEX was 0.114%. In the case of the last seven instances, CPLEX delivered the optimal solutions within a computational time ranging from 2071.50 to 3595.30 s. Our hybrid solution approach delivered as well the optimal solutions in all ten runs of each instance, i.e., Z min = Z max = Z opt , but with much less computational time effort, and the average computational time spent in solving the instances ranged from 1.76 to 31.05 s. The improvement time gap ranged from 98.52% to 99.95%, and the average was greater than 99%. For 29 out of 50 instances, our proposed approach did not achieve the same solution in all ten runs, but we could observe that the average percentage gap between the minimum and the maximum of the objective function achieved ranged from 0.01% and 0.25%, a fact that proved the stability of our proposed solution approach.
In Table 4, we report the results obtained by CPLEX and the developed hybrid genetic algorithm for solving larger instances of the problem, namely with 8 manufacturing plants, 12 distribution centers, and 25 customers. The columns of Table 4 are similar to those of Table 3, and the instances are ordered based on the achieved improvement gaps. For the instances presented in Table 4, the running time of the algorithm was limited to 500 s.
Analyzing the computational results reported in Table 4, we can remark that for the first 18 instances, the best solution provided by our hybrid genetic algorithm improved the solution delivered by CPLEX within 3600 s, and the average computational time spent in solving the corresponding instances ranged from 24.52 to 255.88 s. In the case of the last seven instances, the solutions delivered by CPLEX within 3600 s were the same as the solutions achieved by our hybrid solution approach in all ten runs of each instance, but with much less computational time effort, and the average computational time spent in solving the instances ranged from 19.81 to 260.02 s. For 12 out of 25 instances, our proposed approach did not achieve the same solution in all ten runs, but we could observe that the average percentage gap between the minimum and the maximum of the objective function achieved ranged from 0.003% and 0.11%, a fact that showed the stability of our proposed solution approach.
In Table 5, we report the results obtained by CPLEX and the proposed hybrid genetic algorithm for solving larger instances of the problem, namely with 10 manufacturing plants, 15 distribution centers, and 30 customers. The columns of Table 5 are similar to those of Table 3, and the instances are ordered based on the achieved improvement gaps. For the instances presented in Table 5, the running time of the algorithm was limited to 800 s. Analyzing the computational results reported in Table 5, we can remark that for all 25 instances, the best solution provided by our hybrid genetic algorithm improved the solution delivered by CPLEX within 3600 s, and the average computational time spent in solving the corresponding instances ranged from 22.9 to 484.6 s. In the case of these instances, our proposed approach did not achieve the same solution in all ten runs, but we can observe that the average percentage gap between the minimum and the maximum of the objective function achieved ranged from 0.001% and 0.3%, a fact that proved the stability of our proposed solution approach.
Overall, the results achieved by our hybrid genetic algorithm can be summarized as follows: • In the case of small and medium sized instances, our algorithm delivered the optimal solution in all ten runs of each instance, but with much less computational time effort in comparison to CPLEX.

•
As regards the 50 large sized instances, for seven of them, our hybrid algorithm delivered the optimal solution in all ten runs of each instance, but with much less computational time effort in comparison to CPLEX, and for the remaining instances, the best solution achieved by our algorithm improved the solution provided by CPLEX within 3600 s, but with much less computational time effort in comparison to CPLEX.

•
In the case of the proposed 50 larger instances, the best solution provided by our hybrid genetic algorithm improved the solution delivered by CPLEX within 3600 s, and the average computational times spent in solving the corresponding instances were lower compared to CPLEX.

•
We can remark that our developed solution outperformed in terms of the quality of the solutions and of computational times the ACO-based heuristic approach proposed by Hong et al. [10], which according to the previously mentioned authors, provided sub-optimal solutions with a gap of about 10% on average from the optimal solutions.

Conclusions
In this paper, we investigated the two-stage supply chain network design problem in which we considered two types of fixed costs: ones for opening the DCs and the others associated with the routes. This optimization problem was introduced recently by Hong et al. [10], and it generalized the previously considered two-stage transportation problems.
The main goal of our paper was to describe an effective hybrid genetic algorithm for solving the two-stage transportation network design problem with fixed costs. Our hybrid algorithm was achieved by incorporating a linear programming optimization problem within the framework of a genetic algorithm. The method we proposed had certain important features, and here are some of these: the employment of an efficient representation in which the chromosome was generated in two stages: from an estimation of the flows to a feasible solution of the problem, the building of different breeds of chromosomes that evolved separately from random populations, until evolution stagnates, then the breeds were merged together, hoping that the newly formed hybrid chromosomes would be better.
We evaluated the effectiveness of the proposed solution approach on a set of 200 instances classified into four classes: small, medium, large, and larger sized instances. The first 150 instances were generated in the same way as Hong et al. [10] suggested, and the others were larger sized instances. The computational results that we obtained proved the efficiency of our developed hybrid genetic algorithm in yielding high quality solutions within reasonable running times, besides its superiority as compared to CPLEX and the other existing solution approaches from the literature.
It is our intention to continue our research and further improve the developed hybrid genetic algorithm through a combination with the local search methods. We intend to carry out a parallel implementation of the proposed algorithm, in order to fully benefit from the processing power of the new multicore processors and to generalize the TSSCNDP-FC model so that customers can be supplied directly by manufacturers and so that the distribution centers can also supply other distribution centers. We also plan to assess the generality and scalability of the solution approach that we suggested by testing it on even larger instances.