A genetic algorithm for vehicle routing in logistic networks with practical constraints

. We optimise a postal delivery problem with time and capacity constraints imposed on vehicles and nodes of the logistic network. Time constraints relate to the duration of routes, whereas capacity constraints concern technical characteristics of vehicles and postal operation outlets. We consider a method which can be applied to a brownfield scenario, in which capacities of outlets can be relaxed and prospective hubs identified. As a solution, we apply a genetic algorithm and test its properties both in small case studies and in a simulated problem instance of a larger (i.e. comparable with real-world instances) size. We show that the genetic operators we employ are capable of switching between solutions based on direct origin-to-destination routes and solutions based on transfer connections, depending on what is more beneficial in a given problem instance. Moreover, the algorithm correctly identifies cases in which volumes should be shipped directly, and those in which it is optimal to use transfer connections within a single problem instance, if an instance in question requires such a selection for optimality. The algorithm is thus suitable for determining hubs and satellite locations. All considerations presented in this paper are motivated by real-life problem instances experienced by the Polish Post, the largest postal service provider in Poland, in its daily plans of delivering postal packages, letters and pallets.


Introduction
We consider a realistic variant of a postal delivery problem with time and capacity constraints, which is a special case of a general vehicle routing problem (VRP) (see Toth & Vigo, 2002). Duration of routes is constrained since volumes need to be shipped on time (Spliet & Gabor, 2015). The capacity of vehicles is constrained, as Borčinová (2017) or Ralphs et al. (2003) notice, so only a limited volume of postal cargo can be shipped within each vehicle. Keskin et al. (2019) also assert that the capacity of postal operations outlets -nodes of the network -is constrained both in terms of vehicles that can be served by an outlet, and in terms of volumes that can be processed there.
Within any logistic plan, streams of volumes (demands) can be delivered directly or they can be shipped using some outlets as transfer locations, in which volumes are processed, merged and shipped to their final destinations. We are interested in a technology capable of identifying such outlets within the network, so that they can be recommended as prospective hubs when the network expands. It should be remembered that within a brownfield type of analysis, such prospective hubs do not have to overlap with outlets in which currently most of the volume is processed.
We use a genetic algorithm and argue that with a natural representation of solutions and with relatively simple specifications of genetic operators, subject to the representation in question, we are capable of obtaining such technology as that tested in small case studies and in a real-life problem instance. In particular, the employed genetic operators are capable of switching between direct and transfer connections, depending on what is optimal in a given problem instance, and also of selecting which volumes should be shipped directly and which should be shipped using transfer connections within a single problem instance -if the instance in question requires such a selection for optimality. All considerations presented in this paper are motivated by real-life problem instances which we analysed for the Polish Post (Poczta Polska), the largest, state-owned provider of postal services in Poland.

Problem Statement
The problem discussed in this paper can be considered as a version of a VRP which contains elements of various VRP specifications, e.g. VRPs with split pickups and split deliveries (see Casazza et al., 2018;Wassan & Nagy, 2014), VRPs with time windows (see Benjamin & Beasley, 2013;Bräysy & Gendreau, 2005), VRPs with capacity constraints (see Baldacci et al., 2012) and VRPs with multiple depot locations (see Crevier et al., 2007;Nagy & Salhi, 2005). This problem differs from the typical ones, most importantly due to technical capacity constraints imposed on nodes of the network, and because of the fact that transported volumes can be split or merged in the nodes of the network in an arbitrary way. Additionally, we assume that an overall constraint is imposed on the length of the route (expressed here by the number of locations that can serve as transfer nodes within each route), whereas it is typical for VRPs that the length of the routes, i.e. sequences of locations visited by vehicles, is not constrained. More specifically, we assume that the route between the origin and the destination locations of a postal shipment can take the form of either a direct connection or a transfer connection, with one facility at most in which the vehicle stops along the route. Using direct connections can be beneficial, since they tend to avoid heavy traffic, and as a consequence smaller costs are incurred by vehicles and drivers. Moreover, if a substantial volume is processed on such a connection, i.e. a large vehicle (or vehicles) can be fully loaded, the number of utilised vehicles decreases, and so does the unit cost of the shipment.
On the other hand, transfer connections make it possible to split the stream into a given number of sub-streams and distributing them over the network, possibly merging with streams originating from different locations. It is also beneficial, since it reduces the number of vehicles needed to serve the deliveries and may help preventing vehicles from getting caught in heavy traffic at some locations. However, when a volume is shipped using a transfer location, it needs to be unloaded and processed by the staff and machinery of a transfer outlet, then re-loaded into either the same or another vehicle, and finally delivered to its destination location. Processing streams within postal operations outlets requires time and incurs costs.
The incorporation of these technical features of operation outlets into the definition of the analysed problem is crucial when we are interested in a brownfield analysis and the identification of prospective hubs. The solver must balance the above-mentioned elements of the problem.
The version of the postal delivery problem which we consider in this article is related to a number of other problems and approaches in the field of logistics and optimal planning, both in the context of the identification of transfer connections and in the context of the divisibility of the delivery. As regards the former, a useful, although a slightly outdated summary of formulations and solution heuristics used in point-to-point delivery systems (including postal systems) is proposed by Leung at al. (1990). Also de Camargo et al. (2013), Çetiner et al. (2010) and Karimi and Setak (2018) investigate how transfer locations are determined on the basis of demands and the topology of the postal delivery network. In the context of the divisibility of the product stream, Kerivin et al. (2008) present an up-to-date formulation of a splittable pickup and delivery problem with reloads, Archetti and Speranza (2012) also consider a framework with split deliveries, whereas Baumung et al. (2015), for example, focus on designing optimal plans for a postal delivery network with parcels and letter mail.
The set of orders (streams, demands) that need to be processed will be denoted by , and a single generic stream by ∈ . The execution of a stream consists in delivering a given positive volume of divisible cargo from the origin location to the destination location, using a logistic network with its operating characteristics like distances and travel times between nodes, capacity of vehicles, capacities of the nodes, time windows in which the nodes operate, costs of the utilisation of vehicles, and costs of volume processing within the nodes. The objective is to deliver all streams on time and at the smallest possible cost. In the further parts of the paper we will provide a more formal description of the analysed problem.

Logistic network
A logistic network is specified by an ordered pair ( , ), where = {1,2, … , } denotes an -element set of nodes (locations of postal operations outlets), and denotes a set of directed edges. In the case of the company whose problem is analysed here, there is a direct connection between each pair of nodes ( , ) ∈ , as long as ≠ , hence = 2 \{( , ), ∈ }. The term direct connection between a pair of locations, say ∈ and ∈ , does not necessarily mean that the physical route between location and location does not go through any ∈ location (or locations). It means, however, that when delivering the stream of volume from to , we do not stop in postal operations outlets located in such nodes.

Postal operations outlets
Each postal operations outlet has the following technical characteristics: a) a time window in which the outlet operates: are timestamps (points in time in a day), defined with the precision of up to a minute; b) the capacity of the outlet, in terms of the number of vehicles it can process, ℎ > 0; c) the capacity of the outlet, in terms of the volume it can process, > 0; d) the unit cost of processing volume > 0; e) time needed to process a unit of volume > 0. In practice, the values of and are similar for the respective ∈ outlets, but as they do not have to be identical, they are indexed by . They represent, respectively, the earliest and the latest time at which outlet is operational throughout the day, i.e. the earliest when any volume can enter it (the unloading of volumes from vehicles can start), and the latest any volume has to leave it (the loading of all volumes into vehicles has to finish). When a vehicle enters a postal operations outlet, what happens first is unloading the volume from it. The volume contained in a vehicle is the sum of the volumes of streams which were delivered by this vehicle 1 to the outlet. Each stream needs to be processed in an outlet, which takes time and incurs costs. Streams whose destination is a given outlet are processed in a simplified way, i.e. without a vehicle assignment, since they are not delivered to any further nodes of the network. But still, the time needed to process the stream without a vehicle assignment in its destination node is accounted for, along with the cost of processing.
The cargo of a stream finishing in an outlet is delivered to final destinations (post offices) outside of the model within the last mile. 2 If the time needed to implement the last mile around node is denoted by (it involves uploading the volumes onto vehicles which perform the last mile, delivering the volumes to their final destinations, i.e. post offices, and unloading them there) and the deadline for the delivery of stream is denoted by ̅ (the time by which the stream must reach the post office within the last mile), then the last possible departure time of this stream from location is not , but min� , ̅ − �. Indeed, streams whose destination is location must leave this location at the ̅ − time at the latest, and streams for which location is a transfer node can be processed until the time, and leave it by ̅ − < . Analogically, streams which originate in a given postal operations outlet are delivered to this outlet from outside the network within the first mile. If the time needed to implement the first mile around node is denoted by , and the starting time of the implementation of the first mile for stream is denoted by , then the effective earliest time at which this stream can enter outlet for processing is not , but max� , + �. Indeed, streams which originate in location can leave this location at + , and streams for which location is a transfer node can be processed starting from the time, and arrive there from + > . Note that the first mile correction applies only to streams which originate in node , and the last mile correction applies only to streams whose destination is location (i.e. it does not apply to the streams which use location as a transfer node).

Vehicles
We assume that vehicles are available on demand in each location. This is consistent with the common practice of many postal operators who often find it profitable to outsource the maintenance of their fleet of vehicles. This implies that the objective function abstracts from the possible cost which arises if a fleet of vehicles needs to be expanded (i.e. vehicles need to be purchased), but involves solely the costs of the operations of the fleet, so the costs incurred by the daily operations of the postal operator. Each vehicle has its technical characteristics, namely: a) the capacity in terms of the number of postal pallets it can carry ℎ > 0. Although the number of pallets must be an integer, we consider fractional numbers as well, which represent a pallet which is not fully loaded; b) the capacity in terms of the mass of the volume it can carry ℎ > 0; c) the cost of vehicle utilisation per kilometre ℎ > 0; d) the cost of vehicle utilisation per hour ℎ > 0; e) the cost of a driver per hour ℎ > 0.

Execution of streams
Let ∈ denote the origin node, and ∈ the destination node of stream ∈ . The volume associated with stream , which flows over the edge ( , ), will be denoted by . Naturally, ≥ 0 and ≤ , where > 0 denotes the volume (demand) of stream . Since and are the origin node and the destination node of stream , we know that > 0 for at least one ∈ \{ }, and > 0 for at least one ∈ \{ }. If the flow of volume from the origin node to the destination node is a direct one, then > 0. If a transfer connection is used (with one transfer node), we have 0 < = ≤ for some indices ∈ {1,2, … , }, where 1 ≤ ≤ − 2 denotes the number of transfer connections which are used for stream s, and, naturally, ∈ \{ , }. It can also be the case that none such node exists in the solution (i.e. = 0), which means that stream is processed using a (single) direct connection. It is also possible that a given stream is processed using only transfer connections, in which case = 0.

The search space
An order can be processed in the form of a direct connection or in the form of a transfer connection. There is one way of processing an order in the form of a direct connection, whereas in relation to a transfer connection (or connections), an order = 2 −2 − 1 ways, therefore altogether there are 2 −2 possibilities. Since deliveries from each node of the network are carried out to all other nodes, there are 2 − orders placed. Hence, there are 2 ( −1)( −2) possible solutions, without taking into account time and capacity constraints. We have ≈ 40, which yields 2 59280 ways in which orders can be processed, and this is without vehicle assignment. This precludes any approach based on direct enumeration of solutions.

The Algorithm
To optimise the problem outlined in the previous section, we employ a stochastic heuristic procedure which belongs to the family of genetic algorithms (see Boussaïd et al., 2013;Dréo et al., 2006or Katoch et al., 2021, which is one of many possible approaches that are used in case of logistic problems (see Arnold & Sörensen, 2019;Baker & Ayechew, 2003;Baldacci et al., 2010;Cordeau et al., 2002;Laporte et al., 2000, or Prins, 2002. To employ such a method, a solution must be encoded in an appropriate way, as e.g. Kadri and Boctor (2018) demonstrate.
In the following parts of the paper, we present a simplified narrative, i.e. our point is made without a detailed discussion of the possible formulations, in the form of a mixed-integer program (MIP). The implementation of the problem we deal with in the form of an MIP, which is then solved with techniques such as branch and bound, cutting plane, etc., would require the introduction of many additional variables, like index binaries showing if any volume is shipped through a given edge for each stream or not, time-related variables, etc. (see Granada-Echeverri et al., 2019;Rieck & Zimmermann, 2010or Theurich et al. (2021. Also, as shown by Boland et al. (2017), in such a case the reformulation of the problem in the form of a timeextended graph is possible.

Representation of solutions
Problem formulation presented in the previous section can be translated into a mathematical programming form with variables ≥ 0, which denote volumes of stream ∈ assigned to edges ( , ) for , ∈ , ≠ , and ℎ ∈ ℤ + , which denote a number of vehicles operating on edge ( , ). This would yield s olutions of the form � , ℎ , ∈ , , ∈ , ≠ � belonging to search space Although a genetic algorithm could, in principle, be applied to such a solution representation, there are more natural, concise and efficient ways in which solutions can be represented and genetic operations performed on them.
By 'natural' we mean that the representation of solutions resembles a constructive nature of a genetic algorithm, i.e. the fact that it constructs new solutions from the olds ones (in the process of a crossover). A mathematical programming formulation is generic and it does not reflect the inner workings of any optimisation technique, including that of a genetic algorithm. We will employ an approach in which the representation of solutions resembles the physical process of the construction of routes within a logistic plan.
By concise we mean that only relevant information is stored in the structure (object) which represents the solution. For example, we cannot rule out that in most situations (problem instances), at each stage of the search space exploration, most variables will be equal to zero, since most routes do not make sense from the economic point of view. Moreover, a set of such variables can vary at different stages of the optimisation for the algorithm runs which coordinate the search towards different local minima, therefore most of such variables cannot be set to zero a priori. As a consequence, potentially large objects need to be stored in memory, with significant access time to their elements, capable of representing many and diverse solutions, although only a fraction of the solutions is effectively processed, i.e. visited in the process of the search space exploration. 3 We will employ an approach in which the representation of solutions is minimal, i.e. only the relevant information is stored.
Finally, the criterion of efficiency is related to the fact that crossover and mutation operators either produce feasible solutions, in which case it has to be a tailor-made operator, compatible with constraints imposed in the problem in question, or a repair operator must be applied to the result of the work of the operator, so that the produced solutions, possibly infeasible at first, are projected 4 on the feasible region of the search space. It is also possible that the algorithm allows search space explorations through infeasible regions, but, in either case, final solutions produced by the optimiser must be feasible, for example due to increasing penalty applied to the objective function for infeasibility. For the problem in question, due to a multitude of the imposed feasibility constraints and due to the way in which crossovers and mutations are typically specified for problems formulated as mixed integer mathematical programmes using variables like and ℎ , no matter which approach is adopted, the production of feasible solutions can be computationally expensive, 5 especially if based on stochastic trials until a feasible solution is obtained, or can substantially restrict the way in which new solutions are constructed from the old ones, when tailored-made feasibility-preserving operators are employed. The caveat is that such feasibility-preserving operators tend to lead to a shrinkage of the subset of the feasible region that can be effectively explored by the solver.
In both the above-described cases, the efficiency of the search space exploration deteriorates -either due to a computational burden or a low diversity of the exploration which, at the end of the day, also translates into an increased computational burden: with less diversity in the search space exploration, more iterations are needed to explore the search space effectively. In the further parts of the paper, we will take advantage of the natural way in which solutions are represented (as discussed above), so that efficient feasibility-preserving operators of reproduction and mutation can be specified. Our representation of the solution is, informatively, equivalent to a specific representation in the form of a mathematical programme, i.e. a bijective correspondence between these two representations can easily be obtained.
Let denote the representation of the way in which stream ∈ is executed. If the delivery of stream involves a direct connection, then where ( , ) = ( , ) and 0 < ≤ represents the volume of which is delivered using a direct connection. Note that ( , ) = ( , ) does not have to be stored in explicitly, since the structures ( , ∈ ) and ( , ∈ ) must be stored anyway. If the delivery of does not involve a direct connection, then 6 ( ) = ∅ and = 0. If the delivery of stream involves at least one transfer connection, then where, again, ( , ) = ( , ), ∈ \{ , } with ≠ for any , ∈ {1,2, … , }, ≠ , and 0 < ≤ represents the volume of which is delivered using a transfer connection that passes through node , i.e. the vehicle travelling from to stops in the postal operations outlet located in , and the stream is processed in . Otherwise ( ) = ∅, and each = 0. A solution is represented by = ( , ∈ ). Such a representation is natural, since routes themselves are stored, along with volumes flowing through the edges. It is also concise, since only used connections are physically represented. As we will see, it also allows the implementation of efficient reproduction and selection operators.

Initial population
For genetic optimisation, a population of solutions is needed, which we denote by = { , = 1,2, … , | |}, where ≥ 0 is an iteration index of the algorithm (with 0 being the initial population), and | | denotes the size of the population, which is kept constant through the iterations. The initial population consists of | | solutions, each of which is constructed according to the procedure outlined below, which is sequentially applied to each of the streams.

Genetic operators
A genetic algorithm usually consists in the sequential application of the following three genetic operators: selection, reproduction and mutation. Selection is responsible for the stochastic promotion of high quality solutions to the reproduction phase (see Vajda et al., 2008), which in turn combines structural features of solutions producing new solutions, possibly of higher quality than the old ones (see Kora & Yadlapalli, 2017or Umbarkar & Sheth, 2015. 7 Mutation, by introducing random disturbances into offspring produced by reproduction, is mainly responsible for increasing the diversity of the search space exploration and for the prevention of premature convergence, as Lim et al. (2017) and Squillero and Tonda (2016) demonstrate. Our implementation of the genetic algorithm follows the idea, hence we have +1 = � � ( )��, where stands for selection, for reproduction, and for mutation operators.

Selection
A tournament selection is employed as a selection operator (see Bäck et al., 2018). It boils down to selecting | | times the two solutions , ∼ ( ) from , i.e. two uniform draws from , with the replacement and the promotion of to the reproduction phase if ( ) > ( ), and the promotion of otherwise. We augment, however, the typical formulation of a tournament selection by the rule of elitism, which assumes that the ∈ (0,1) share of the best solutions from is automatically promoted to the recombination phase, and they constitute share (0,1) ∋ ≥ of parental pool ( ). If > , then the ( − )| | solutions, which are integer by construction, randomly drawn from the share of , are duplicated. The above shows how ( ) is constructed.
First, index is drawn uniformly from set {1,2, … , }, the elements of which correspond to streams ∈ . The letter denotes the number of streams in a given problem instance, i.e. | | = . So far it has not been important to emphasize, but the solution = ( , ∈ ) comes in the form of an ordered set, a sequence, therefore streams ∈ are indexed and we can equivalently represent the solution as = ( , = 1,2, … , ), where represents the way in which the -th sequence is executed in solution .
The removal of a connection implies that some volume, say , needs to be distributed over the remaining | ( )| + | ( )| − 1 connections. It can happen that | ( )| + | ( )| − 1 = 0, so in other words, that contained exactly one route, which was removed. In such a case, a random connection is added to , either a direct or a transfer one, with probabilities and 1 − , respectively, and the volume from the removed connection is assigned to it. If | ( )| + | ( )| − 1 ≥ 1, then there is at least one route which is left after the removal of the sampled route.
The second possible change involves adding a random route to stream . The added route can either be a direct connection, if does not have one, or a transfer connection, if | ( )| < − 2. If does not already have a direct connection and it is possible to add a transfer connection, then the choice is made randomly with the probability of ′ and = 1 − ′, respectively. If a transfer connection is added, then the node for the connection is drawn uniformly from \ �{ , } ∪ � , = 1,2, … , �� . If already has a direct connection, then a transfer connection is added. When a direct or transfer connection is added, a random proportion of the volume of some other connection is shifted to it. The connection from which the volume is shifted is chosen uniformly. If the shifted volume equals the entire volume of the connection in question, it is then removed from . If a volume is perfectly divisible, this does not happen, but when it has to be modelled as an integer value, such a situation can happen. The third possible change reallocates the volume within the existing connections. More specifically, two connections are drawn at random, and their volumes are interchanged. In the way described above genetic operators are implemented.

Numerical Experiments
In this section, we present and discuss a selection of case studies. Our aim here is to verify the desired features of the algorithm, and to provide some insight into the ability of the algorithm to guide brownfield analyses for realistic-size problem instances.
Case studies are divided into the following two groups: a) stylised problem instances -to verify if the algorithm is capable of selecting direct and transfer connections appropriately; b) practical problem instances -to observe convergence and to compare the generated solution with a benchmark. The way to verify the solution is to check if it is satisfactory from the practical point of view. A possible practical benchmark is a solution in which all volumes are shipped directly from the origins to the depots.

Stylised case studies
To give an example of stylised case studies, we will demonstrate how it can be experimentally confirmed that the algorithm is capable of producing good-quality solutions in three cases: a) when streams should be executed directly; b) when merging of streams is optimal; c) when there are distinct areas in which shipments should be executed separately. Case a). Assume that the objective function is given by the total length of all routes of all streams counted separately, i.e. without merging volumes: where: i.e. and are indicator variables which show if involves a direct connection ( ), or at least one transfer connection ( ), and ( , ) denotes the distance between locations ∈ and ∈ . In such a case, the optimal solution boils down to using only direct connections, no matter how the network is organised. We also assume that = for all ∈ and that ℎ = for all vehicles, but due to the specification of , having ℎ > does not change the fact that the optimal solution involves only direct connections. For the graphical presentation of the results, we assumed that depots of respective streams are located in points ( , ), = 1,2, … , , on a circle with the center in (0,0), i.e. for = ( ) and . The centre of the circle serves as a single destination point for all streams, as shown in Figure 1.  For = 100, which is large enough from the practical perspective, we know that the optimal value of the objective function is = 99, hence it is easy to observe how the algorithm converges. Figure 1 plots the value of the objective function over 10,000 iterations for 10 independent runs. The dashed horizontal line presents the level of the optimal solution. In all runs, the algorithm converges closely to the optimal value. Figure 1 shows 10,000 iterations with converging to, respectively: 101.52, 100.13, 100.64, 100.32, 102.06, 100.20, 100.68, 100.82, 101.08 and 100.39. Figure 2 plots the best sub-optimal solution generated by the algorithm, with ( ) = 100.13, which is within 1.1% from the optimal solution. The left panel presents the solution with outlets aligned as in the input data of the problem. We know that there are transfer connections in this solution, but the alignment of the locations makes them hard to see. Therefore, on the right panel, we also present the same sub-optimal solution, but with a different alignment of nodes, so that we can observe that there are five transfer connections still left in the solution. 8 The conclusion is that the employed genetic operators allow the selection of solutions based on direct connections if the problem instance in question requires such coordination.
Case b1). Assume that the locations of all the outlets are the same as in Case a), and also that the volume of each stream stays the same, i.e.
= for all ∈ . Assume also that the objective function is modified, so that it is beneficial to merge volumes: where ℎ represents the number of vehicles assigned to the ( , ) edge, i.e. the minimal number of vehicles capable of loading volume = ∑ ∈ which flows through this edge. To make the merging of volumes possible, the capacities of vehicles are increased to a value larger than . We assume that ℎ = 3 for each vehicle. Now it seems reasonable to set up local hubs and coordinate the direct flows to the destination point from the hubs. For clarity, in Figures 3 and 4 we present the results for = 10, but an analogical behaviour of the algorithm is observed for greater values of . 9 Figure 3 shows the trajectory of the objective function over 10,000 iterations for 10 independent runs of the algorithm, where the dashed horizontal line represents the value of the objective function when only direct connections are used, with = 9 (the left panel), along with a solution which uses only direct connections (the right panel). Figure 4 presents two types of solutions generated by the algorithm, one of which is optimal with ( ) = 7.10 (the right panel), while the other is sub-optimal with ( ) = 7.42 (the left panel). As arrows on the figure suggest, we assumed that = 5. Case b2). Now let us assume that the locations of nodes are given as presented in the left panel of Figure 5. Location of origin nodes is the same as in Case a) and b1), with the exception of the location of the single destination node, which was shifted from (0,0) to (0,4). Let us assume that ℎ = 100 , which in practical terms means that the capacities of vehicles are unlimited. The objective is defined as in Case b1). The right panel of Figure 5 presents the trajectory of the objective function over 5,000 iterations for 10 independent runs of the algorithm. The dashed horizontal line represents the value of the objective function when only direct connections are used.  Figure 6 presents the optimal solution generated by the algorithm with ( ) = 23.25. For clarity, we present an example of a solution for = 20, but an analogical behaviour of the algorithm is observed for larger values of . The figure shows that the algorithm is capable of coordinating the execution of streams by setting up four hubs -for regions NE, NW, SE and SW, to which volumes are shipped from nearby locations and from which merged volumes are shipped by single vehicles directly to the destination location. Please note that streams originating in locations selected as hubs are shipped directly to their destination points. The conclusion from Cases b1) and b2) is that the employed genetic operators are capable, whenever necessary, of selecting hubs in which volumes are merged and from which they are transferred directly to their destinations. Case b3). This case is analogical to b2), but we introduce two regions -one consists of locations on the circle centred at (0,0), as in the a) and b1) Cases, and the other is analogical to the b2 Case, but with the circle centred in (4,0) and the single destination in (2,0). In Figure 7, locations are presented on the left panel and the convergence of the objective on the right one (the dashed line represents the benchmark solution with = 28.14). Figure 8 presents both the optimal and the suboptimal solutions, the latter being very close to the optimal solution as far as the value of is concerned ( = 17.47 for the optimal solution, and = 17.49 for the suboptimal one). Note that although the difference in the objective is small in the two presented instances, the implied logistic organisation of the East region is substantially different, especially as far as the status of node 16 is concerned (which was given the status of a hub node in the right case, but no such status in the left one). Also the hub status in the NE region is interchanged between nodes 12 and 13.

Practical case study
To show some sample results of a brownfield analysis supported by our algorithm, let us consider a problem in which locations correspond to 26 chosen facilities from the logistic network of an existing postal service provider (left panel of Figure 9), with distances and travel times calculated on the basis of real measurements, with realistic assumptions regarding demands and technical characteristics of vehicles and outlets, and with the objective defined as the cost of the execution of the plan. 10 The cost is calculated by a simulation of the execution of the solution and the calculation of the following variables: -total volume processed, i.e. = ∑ ( ) ∈ , where ( ) denotes the total volume processed in outlet ∈ , -total distance travelled by vehicles, -total time in which the vehicles travelled, -total time of the work of drivers (which is longer than since it includes situations when drivers have to wait for the volume to be processed in transfer nodes). These variables are then crossed with cost characteristics , ℎ , ℎ and ℎ . The right panel of Figure 9 presents the trajectory of the objective function for 1,000 iterations for 10 independent runs of the algorithm. The dotted line at = 312,300 represents the cost of the benchmark solution. We present a sample solution which is at least 5% better than the benchmark. This suboptimal solution obtains = 294,000. Figure 10 presents the outflows and inflows of the volume for the respective nodes of the network, for the benchmark solution (in blue) and for the presented solution (in red). Please note that for each node, both the outflow and the inflow of volume is larger for the suboptimal solution than for the benchmark one, in which outflows and inflows correspond to volumes originating and finishing in the respective nodes. The residual outflow and inflow (the net flow) equals the sum of the total outflow from a node decreased by the outflow which originates in the node and the total inflow of the node decreased by the inflow which finishes in that node. The net flow grows due to the utilisation of transfer connections and the merging of volumes.
Net flows are shown in Figure 11 as nominal values (the upper panel), as percentages of outflows and inflows of the suboptimal solution (the middle panel), and as percentages of outflows and inflows of the benchmark solution (the lower panel). When the net flow is big in absolute terms, as well as relatively to the outflow which originates in the node and relatively to the inflow which finishes in the node, the node is identified as a hub. Note that, for example, nodes 13 and 14, which, relatively to some other nodes in the network, are not the origin or destination of any great volume of shipments, are considered as prospective hubs, whereas nodes 22 and 23, where a substantial amount of volume originates and finds destination, are considered so to a lesser extent.

Conclusions
We studied a realistic variant of a postal delivery problem with pickups and deliveries, split pickups and deliveries, time constraints and capacity constraints, the latter imposed both on vehicles and operations outlets. Our main conclusion is that the implementation of the genetic algorithm we used (with a relatively simple specification of genetic operators) makes it possible to select streams which should be delivered directly and those which should be merged with other streams along the routes, and allows the determination of transfer nodes within the network. The implementation with such features, when used in a real-life case study with relaxed constraints on the capacities of outlets, allows the determination which outlets will be able to serve as prospective hubs when the network expands. From the practical point of view, such a conclusion means that the algorithm in question can be helpful in the brownfield type of analyses of postal companies, especially large ones, which operate on a country-wide infrastructure. Strong trends that we nowadays observe on the market of postal shipments, which are driven e.g. by a substantial surge in the volumes of orders that consumers place via the Internet (vs. stationary shopping), which will most probably continue and strengthen in the future, pose a serious challenge for the operator. On the other hand, such a situation opens the way for the development of optimisation techniques in the process of both tactical and strategic planning. Our research focused on one aspect of this kind of planning, namely on the identification of prospective hubs within the postal network, and on the approach to this problem. We assumed that transfer connections could pass through arbitrary transfer locations, which allowed the identification of hub locations. The next step would be to introduce an optimisation model in which hub locations would be fixed and transfer connections could be executed only through them, whereas peripheral locations would never serve as transfer nodes. We plan to add such second part of the model to obtain a closed, two-step procedure for postal optimisation. Moreover, in the model presented in this study, we accounted only for the overall time feasibility constraints, i.e. the time of logistic operations and transport which did not exceed the time windows in which outlets operate. The second part of the model would need to take into consideration time constraints resulting from vehicles' queuing in the network nodes and from the necessity of waiting in a hub location for the volumes originating from peripheral locations to be merged there. The above would be a meaningful follow-up to the study presented in this paper.