4. GA OPTIMISATION METHOD
4.3. Genetic Algorithm & The Fitness Function
As mentioned previously, the objective of the implementation of GA is to determine the different equation parameters (α, β, θ, q) for each individual agent, with the objective of optimising the overall HC supply chain profit: through minimising stock holding for each individual agent, guaranteeing availability, decreasing BBE date losses and improving forecasting and ordering accuracy.
As mentioned in Chapter 3, the SC analysis considers a distribution agent which delivers to the different channels and receives products from the manufactory agent. Stock management of the distributor is a priority policy. Each one of the five channels orders independently and, if there is stock in the distribution, the non-fulfilled orders are kept as backorders which will be fulfilled for each channel as soon as there is stock in the distribution, in the following order: Middle East Franchising (1), Wholesaler (2), US Hotel Chocolat (3), Mail Order (4) and Retail Outlets (5). The delivery time is stochastic and, in general equal to 2 or 1 (weeks) depending on the agent. There are two direct end customers (mail order customer and retail customers) and the other customers are seen as business partner customers. The goal is to determine the target inventories and the ordering quantities to the distribution centre in order to fulfil the overall customer demand, in order to minimise the expected stock and distribution costs in a finite planning horizon.
The problem was structured around:
1. Optimal ordering quantities to keep up with demand at Middle East Franchising, Wholesaler, US, Mail Order and Retail Outlets (channels);
2. Optimal stock levels to keep up with demand at Middle East Franchising, Wholesaler, US, Mail Order and Retail outlets;
The objective is to find the optimal policy for each agent in order to maximise the overall supply chain profit. In this context, the objective of the GA is to determine which genes (parameters) maximise
the profit. The fitness function corresponds to the profit, therefore the main objective is to achieve the maximum value for that profit.
In general, the profit equals to the product sales minus the incurring costs (transport costs, holding costs, BBE losses, etc.). In Table 4, the different costs types for each individual agent are defined.
Agent Retailer | Mailorder GCC | Wholesaler | US Distribution Manufacturing Costs Transport Costs
Table 4 Structuring the profit for each agent (from the HC perspective).
Note that in this case in particular and to simplify the calculations, as all agents belong to the same company, so product sales values only exist for agents with end users, so for the manufacturer and distributor sales values were not considered, (just costs). In reality, in most of supply chain cases this is not the case, so there are specific profit levels for each agent. In most companies all of the different agents from the supply chain are considered as different cost centres with individual costs and profits; in terms of cost accounting it keeps the cost accounts clearer and it allows to each agent to keep a measure of its individual (budget) performance.
Solving any optimization problem begins by its modelling, which consists of translating the problem into mathematical language, starting with the definition of variables, identification of the fitness function (objective) and identification of restrictions in order to obtain a model that allows an objective resolution of the problem. The following equations define the money flows for all the agents in the HC supply chain. Note that the type of costs and values are specific to this supply chain.
(11)
where T is time horizon and t is time period, and P corresponds to individual profit for the ordering agents (Retailer, Mail Order, US Hotel Chocolat, Wholesaler UK and Middle East Franchising), and C corresponds to the costs for the distribution and manufacturing agents.
Retailer and mail order profit
=
- (12)
where St are the sales at time period t, SPt Sales Profit at time period t, CTt are the transport costs at time period t, CBBE_Lt the BBE Losses Costs, CSHt stock holding costs, RSP the retail selling price, PC the product cost, is the shipment, Cut is the unit transportation cost, are the BBE losses, is the stock at period t and CH the cost of holding per item.
GCC, Wholesaler, US agents profit
(13)
where SAPt is the stock availability penalty at time t, AS% the agreed sale ratio %, are the backorders quantity at period t and Pen is the penalty cost per product, which corresponds to the penalty that the distribution has to pay to these partners if it misses or any delays in any deliveries.
Distribution Agent costs
+ (14) where where is the stock at period t and CH the cost of holding per item.
Manufacturing agent costs
(15) where CMart corresponds to the material costs and CProdt the packing & handling costs. UPC is the unit production cost for plant per unit period, is the manufactured quantity at period, is the Packing &
Handling Costs at period t per item, and is the number of items produced.
The GA was implemented in Java, and the implementation relates to an individual product line with well-known demand pattern. For the implementation of GA we considered a Population size of 156 and 200 Generations . The Crossover probability (Cp) and the Mutation probability
(Mp) are, respectively, 0.7 and 1. The table below represents the considered population, interval values:
Genes Parameters Interval values
convergence characteristics of the problem. With less intensive analyses this problem is typically overcome by having a huge population and simply running the analysis out many more generations than required.
In Java the randomisation and mutation is achieved using the following code:
α, β, θ Randomisation: this.setGene(2, m_rand.nextDouble());
Mutation: this.setGene(2, this.getGene(2) + m_rand.nextGaussian()* 0.01);
q Randomisation: this.setGene(3, m_rand.nextInt(1000));
Mutation: this.setGene(3, this.getGene(3) + m_rand.nextInt(21)-10);
Table 6 Randomisation and mutation coding in Java.
Demand information in 155 consecutive periods (T) for the different agents (Middle East Franchising, Wholesaler, US Hotel Chocolat, Mail Order and Retail Outlets) were generated and calculated by GA to provide the stock control policies of each agent. Both the orders and shipments were assumed to be integer values. 30845 solutions from the scheduling periods are compared and the combination, which represents the greatest value of profit, is selected as the stock control policy of the system as per the following schematics: