Using a Permutation Representation Genetic Algorithm to Implement a Complex Pick Up/Drop Oﬀ Mathematical Model

The Variable Message Sign Problem (VMSP) aims to optimise the delivery, collection and maintenance of Variable Message Signs. Firstly, the problem was formulated as a rigorous mathematical model. It was then reformulated using a permutation representation removing the need for some hard constraints and the formation of illegal sub-tours within the solution. The reformulated model was shown to be solvable using diﬀerent artiﬁcial intelligence search techniques. The problem of parameter selection was then solved using self-adaption, which produced superior solutions with > 99 . 9% conﬁdence by avoiding numerous local optima on the ﬁtness landscape.


Introduction
The Variable Message Sign Problem (VMSP) is a variant of the Vehicle Routing Problem (VRP) where Variable Message Signs (VMS) are hired out to customers for a given time window. VMS are solar and battery powered roadside signs; the message displayed on VMS is configured remotely. A typical scenario of their use would be by the roadside instructing diversions. The service provided includes the delivery and collection of VMS to and from locations as well as maintenance while at a customer location. Therefore, transportation of goods within a time window is a key aspect of the service provided. Cost involving transportation has a direct and significant impact on profit margins. The objective of the VMSP is to keep the costs to a minimum while meeting customer obligations. This is mainly achieved by optimising vehicle routes and scheduling of crew and resources.
The rest of this paper proceeds as follows. Section 2 examines various vehicle routing problems and solutions. Section 3 develops a rigorous mathematical model for the VMSP. Section 4 demonstrates how this mathematical model was converted into a permutation representation. Section 5 compares the use of Local Search and Global Search with this new representation. Section 6 looks at how self-adaption was added to the new representation. Section 7 describes how the performance of the self-adaption was evaluated. Section 8 examines the results, section 9 draws conclusions and looks at future research.

Background
The problem of delivering, collecting and maintaining Variable Message Signs (VMS) is similar to many Vehicle Routing Problems [1]. Like the Vehicle Routing Problem (VRP), the Variable Message Sign Problem (VMSP) is a route optimisation problem faced by organisations where a fleet of vehicles is required to serve a set of customers by delivering goods and services. The objective is to find a route or set of routes which minimises the total traveling distance and/or time while satisfying all applicable constraints. It was reported that the use of a combinatorial optimisation such as VRP would often result in savings ranging from 5%-20% in transportation costs [2]. As the number of locations to be visited increases, the number of feasible solutions increases exponentially [3]. VRP is a NP-Hard type problem [4] therefore an algorithm does not exist that can find the optimal solution in polynomial time in every instance [5].
The delivery, collection and maintenance of Variable Message Signs (VMS) has similarities to the following variants of the VRP. The Capacitated Vehicle Routing Problem (CVRP) has one depot and a fleet of identical vehicles where the capacity of each vehicle must not be exceeded. CVRP produces optimal delivery routes where each vehicle only travels one route and each route must start and end at the depot. CVRP is also known as the classical VRP and is the most common variant as vehicles are rarely assumed incapacitated [6]. The Vehicle Routing Problem with Time Windows (VRPTW) is another variant of VRP in which, optimal routes must be constructed while ensuring that each task is carried out within a given time interval at minimum cost without violating the capacity and total trip time constraints of each vehicle [7] [8]. Time Windows are defined as hard constraints when it is not allowed to deliver outside of the given time [9] [10] and when it is allowed outside of the given time against a penalty, they are considered to be soft constraints [11] [12]. In the Vehicle Routing Problem with Pickup and Delivery (VRPPD), either objects or people need to be picked up from a certain location and dropped off at another. The main objective is to transport from an origin to a destination [13]. The pick up and drop off must be done by the same vehicle, therefore both locations must be included in the route [11]. The Vehicle Routing Problem with Product Backhauls (VRPPB) is when a vehicle does deliveries as well as pickups in one route [14]. The routes must consider collecting items from some customers and delivering items to another in the same route, either in a sequential or discontinuous manner. In the Vehicle Routing Problem with Heterogeneous Fleet (VRPHF), the vehicles do not share the same characteristics; they may have different capacities and fixed costs depending on vehicle type and configuration [15]. Exact Methods produce optimal solutions [16] when applied to a small-sized VRP. However, larger VRPs are best solved using heuristics because exact algorithms cannot be guaranteed to find the optimal tours within reasonable computing time when the number of locations to be visited is large. Heuristics allow acceptable performance at acceptable costs for a wide range of VRP variants [16].
A VRP with a set of vehicles and a set of locations, where each vehicle visits at least one location, can be formulated and solved as a Traveling Salesman Problem. The Travelling Salesman Problem (TSP) is a combinatorial optimisation problem which was first formulated as a mathematical problem in 1930, [17]. Since its introduction, TSP has been intensively studied in operations research and theoretical computer science. TSP in its pure form appears in the planning and transportation problems. However, it often appears as a sub-problem in more complex combinatorial problems with added constraints, for example vehicle routing, airport flight scheduling, time and job scheduling machines, DNA sequencing and manufacturing of microchips, [18]. The VMSP contains an asymmetric TSP sub-problem where there is a set of jobs at different locations, each job must only be carried out once, an employee must travel from the depot to a set of job locations and return to the depot, and the route through all the jobs must be optimised to ensure optimal use of company resources such as vehicle mileage and fuel. A TSP can be solved using either an exact algorithm or an approximate algorithm. An exact algorithm would fully search the solution space for the global optimal solution while an approximate algorithm provides a solution as close as possible to the optimal value in a reasonable amount of time but it does not ensure the optimal solution. With an exact algorithm, it is difficult to solve a large-scale problem because of its exponential time complexity. Exact algorithms used to solve the TSP include branch and bound [19] [20], Branch and cut, and brute force. Approximate algorithms used to solve the TSP include Simulated Annealing algorithm (SA) [21] [22], Tabu Search (TS) [21], Ant Colony Optimization (ACO) [23], and the Genetic algorithm (GA) [24] [25]. The hybridisation of algorithms has become popular in recent years as it combines useful features of multiple algorithms, while overcoming the limitations of individual algorithms. It was shown that a combination of genetic algorithm and 2-opt method produced a more efficient algorithm for solving TSP compared to using a genetic algorithm alone [26]. The hybridisation of a Genetic Algorithm with Nearest Neighbour heuristic produced an algorithm that was more efficient in terms of computational time and space, and had better convergence than a pure Genetic Algorithm or Nearest Neighbour heuristic [27]. Other examples of hybrid algorithms are; the glowworm swarm optimization and the complete 2-opt algorithm [28] and a stochastic approach combined with a variable neighborhood search algorithm [29]. New algorithms such as the water cycle algorithm [30] or improvements on older algorithms such as variations of the basic GA that produce larger numbers of offspring [31] have also been shown to be effective.
The Genetic Algorithm (GA) has been adapted for use in solving permutation problems such as the Traveling Salesman Problem (TSP) [32] [33]. The GA was introduced in 1975 [34] [35] and mimicked biological evolution as described by Charles Darwin in his 1880 book 'On the origin of species by means of natural selection' [36]. It consists of a population of chromosomes that goes through various stages, the stages are; parent selection, crossover providing an offspring, offspring mutation that adds variation in the population, and finally replacement. Replacement happens when the fitness of the offspring is superior to the fitness of a member of the existing population. The stages are repeated iteratively leading to the fitness of the population improving over time.
A drawback of using a genetic algorithm is that often, time must be spent fine-tuning its parameters [37] [38]. Such parameters may control population size, crossover type, crossover probability, mutation operator and mutation probability. To ease this problem self-adaption of some or all of these parameters has been developed. In particular, mutation operator and mutation probability have been self-adapted in the continuous [39] [40], binary [41] [42] [43] [44] and permutation domains [45]. Self-adaption of the mutation operator in permutation GAs has been shown to be advantageous. This is because each permutation mutation operator sees the fitness landscape in a very different way [46] [47] [48] [49]; what is a local optimum to one mutation operator is not to another and hence switching between mutation operators help prevent the GA getting stuck in a local optimum. It was found that self-adaptive permutation GA's produced better or comparable results compared to the best tuned non-adaptive GA's and this was irrespective of other GA parameter settings [45]. They demonstrated that the choice of mutation operator changed over time as each in turn became trapped in a local optimum within its associated fitness landscape. The next successful mutation operator to spread through the population was one that had a fitness landscape with no local Optima at that location. Since then self-adaption, in permutation GAs, has been applied to many problem types [50]

Mathematical model for the Variable Message Sign Problem
A rigorous mathematical model for the VMSP was developed. The objective function of the VMSP had to ensure that the most urgent tasks were carried out whilst also trying to minimise the travel time between jobs and hence fuel costs.

M aximise
Where J is the set of jobs that need to be done, B is the set of batches (jobs that are to be done together), x b is weighting allocated to Batch b, c bj indicates that Batch b contains Job j, p j is the priority allocated to Job j, and t b is the time to complete the jobs in Batch b. The batch weighting, x b , allows for the most current work to be weighted higher than the work to be done in the following days. This is important as the priorities of the work to be carried out can change on a daily basis. The VMSP objective function has two parts; one to ensure that the most urgent tasks are carried out ( j∈J c bj p j ) and one to minimise the travel time (t b ). The weighting of these two components are controlled by two constants, α and β.
The time component, t b , is made up from the time it takes to carry out each task or job and the time it takes to travel between the jobs.
Where k b is the sequence of Jobs in Batch b, D ij is the time to travel between Job i and Job j, D 0i is the time to travel between the Depot and Job i, D i0 is the time to travel between Job i and the Depot, and T i is the time taken to complete Job i.
The objective function is subject to a set of constraints. The jobs that can be carried out are put into batches. Each batch of jobs is allocated to a pair of workers and also a vehicle which will carry the signs and the batteries to be replaced. Each job may only be in one batch so each job which might be moving a sign or swapping batteries can only be carried out by one pair of workers using one vehicle.
Each batch of work may only contain no more than a given number of jobs in this case we set the number to N.
Each batch is associated with a single vehicle.
Where V is the set of Vehicles that are available, and h bv indicates that Batch b uses Vehicle v.
Each vehicle can only be used once in a given day. If L batches of work can be carried out each day we need to ensure that no vehicle is used more than once on the first day. We only need to check the first day as a new schedule is generated daily.
There is a load weight restriction each vehicle is allowed to carry. Each batch may involve the picking up and dropping off of multiple signs. Therefore, two constraints were used, the first to ensure a positive weight limit is not broken, when signs are being collected.
The second constraint ensuring that the weight limits are not broken when signs are being dropped off.
For both constraints S is the set of all signs. However, there are four types of sign that can be allocated to each job; S s is the set of all small sized signs, S m is the set of all medium sized signs, S l is the set of all large sized signs, and S r is the set of all radar speed signs.
Each size of sign has a weight; W s is the weight of a small sized sign, W m is the weight of a medium sized sign , W l is the weight of a large sized sign, and W r is the weight of a radar speed sign. The variable g js indicates that Sign s is allocated to Job j. g js ∈ {−1, 0, +1} where −1 indicates that a sign is being dropped off and +1 that a sign is being picked up. The variable r j indicates the number of batteries allocated to Job j, and W b is the weight of a single battery. W v v is the weight capacity of Vehicle v.
The combination of constraints allows for signs both being picked up and dropped off in the same batch of work. Similarly, we need constraints to deal with the volume of materials that can be carried by the vehicles.
Where M s is the volume of a small sized sign, M m is the volume of a medium sized sign, M l is the volume of a large sized sign, M r is the volume of a radar speed sign, M b is the volume of a battery, and M v v is the volume capacity of Vehicle v.
Three batches of work are carried out each day, and we need a constraint that ensures that the number of batteries that are used on that day is less than or equal to the number of batteries in reserve. All spare batteries are left on charge overnight at a secure unit.
Where R is the number of spare batteries in stock.
The jobs that are allocated to each batch are ordered, that is to say the permutation in which the jobs are done is very important as this affects the time taken to do the jobs and the fuel usage. Therefore, the ordered set, k b , was introduced to hold the permutation of the jobs in each batch. With the introduction of this variable it is important again to ensure that no job is allocated to more than one batch. b∈B Further checks must be carried out on the permutation to ensure that both the weight of signs and batteries placed on a vehicle and the volume of the signs and the batteries placed on the vehicle do not break its load constraint.
Where w bi is the weight of the items on the vehicle after Job i in Batch b, and w b0 is the weight of the items on the vehicle in Batch b when it leaves the Depot.
Where v bi is the volume of the items on the vehicle after Job i in Batch b, and v b0 is the volume of the items on the vehicle in Batch b when it leaves the Depot.
Each batch of work should not take more than 8 hours (480 minutes) to complete; however in exceptional circumstances they are allowed up to 10 hours (600 minutes). To cater for this, two soft constraints are added.  Figure 7 shows the time that each batch is expected to take; it is these calculated times that are used in constraint equations 19 and 20.

Reformulating the VMSP mathematical model using a permutation representation
The VMSP mathematical model attempts to find the shortest path between jobs in a given batch. Mathematical models and mathematical solvers have been shown to be very poor at solving this type of permutation problem. They can provide invalid solutions which contain a set of sub-tours which are not connected into a single tour.
A reformulation of the mathematical model into one that uses a permutation representation was developed; such a representation does not have the problem of creating sub-tours as by its very nature it can only create a single tour. The permutation representation contained the jobs that need to be carried out and the vehicles available to carry out those jobs. The fitness of a given permutation was calculated using the mathematical model's objective function and constraints after copying the jobs and vehicles within the permutation representation into the mathematical model variables c bj , h bv , g js , r j , and k b .
The genotype is a permutation of the pending jobs and the available vehicles, as shown in the example in Fig. 1. Within this representation an individual solution is a string of jobs and vehicles. A batch is represented as one or more adjacent job followed by a vehicle. A batch may contain 0 or more jobs and always end with a vehicle. A batch with 0 jobs is called an empty batch. The vehicle belonging to this batch is not scheduled. Jobs which do not belong to a batch are not scheduled; for example, J8, J9 and J10 in Fig. 1. The sequence of jobs in a batch determines the route that the vehicle will follow. For example, vehicle V1, belonging to batch 1, will travel from the depot to J1, J2 and J3, in that order, before returning to the depot. In this example, each batch of jobs is required to be carried out by a pair of employees. If the company has 6 employees, first three non-empty batches define the workload of day 1; second 3 batches define the workload of day 2 and so on. Each vehicle object is present in the representation 5 times. A vehicle can be used once per day and the schedule is created for 5 days. If the jobs in Fig. 1 are as follows.
Then the mathematical model variables c bj , h bv , g js , r j , and k b are as shown in Figures 2, 3, 4, 5, and 6. The time taken to complete each batch of jobs is calculated and stored in t b , as shown in Fig. 7. Implementing the time constraints shown in equations 19 and 20 required consideration. As soft constraints, they can be broken with the penalty increasing with the length of time that they are broken by. This is because with a single value penalty there is no reason for any search strategy to distinguish between a slight time overrun on the day's work and a massive one.     Using this permutation representation leads to the constraints shown in equations 3, 5 and 14 becoming redundant. This is because each job only occurs once in the permutation and therefore can only ever occur once in the Mathematical Models variables c and h.
The fitness function, for the search strategy, is a combination of the objective function value (obj fn) and the weighting (W i ) of the broken constraints (BC i ) as shown in equation 21. The values of α and β in the objective function described by equation 1 balance the importance of the priority of the tasks and the time taken to carry them out. The value of α was set to 20 and β to 1 to ensure that high priority jobs took precedence over shorter routes. The strategy for dealing with broken constraints was chosen for both its simplicity and its ability to reflect the number and importance of any constraint violations. The weighting (W i ) was set punitively high, so that any broken constraints would give a fitness function with a negative value. As the objective is to maximise utility, the higher the fitness value the better the solution.
f itness = obj f n − i=constraint 3..20 One modification must be made when implementing this fitness function. The objective function contains a weighting, x b for each batch, which ensures that the jobs for the current day (and those to shortly follow) are given a higher weighting. This weighting must also be applied to the broken constraints BC i . The permutation representation has been designed to be compatible with multiple search strategies.

Local versus global search
A comparison of a local and global search technique using the newly designed permutation representation was carried out. The local search and GA search strategies were kept as similar as possible. Both used the same mutation operator, both were allowed to run for the same numbers of calls to the fitness function and both had the same termination criteria. Local search was represented by a Greedy Local Search algorithm that used the swap operator. Global search was represented by a Genetic Algorithm (GA) which used swap for its mutation operator; the GA parameters are given in Table 1. Each search strategy was allowed to run for up to 1,000,000 calls to the fitness The important finding however is that this permutation representation is compatible with multiple search strategies. Many operators have been developed for permutation representations and selecting between them can be problematic.

Using a permutation genetic algorithm with self-adaption of the mutation operator and probability
Previous research [45] has shown that self-adapting the mutation operator and probability has proved beneficial for solving permutation problems such as the Traveling Salesman Problem. Changes to the pool size, selection algorithm, crossover operator and replacement strategies were shown not to affect performance significantly. There are a large variety of mutation operators that can be used in a permutation representation genetic algorithm as well as a variety of mutation rates. To avoid the need to choose a particular mutation operator or probability, self-adaption was added into each chromosome with the addition of two new genes at the end of the chromosome. The first gene represented the mutation operator and was an integer between 0 and 4 where 0 = Swap, 1 = Insertion, 2 = Inversion, 3 = Scramble, and 4 = Translocation. The second gene represented the mutation probability and was an integer between 0 and 7 where 0 = 0.0, 1 = 0.05, 2 = 0.1, 3 = 0.15, 4 = 0.2, 5 = 0.3, 6 = 0.4, and 7 = 0.5. At population initialisation, these integers were generated randomly in their given ranges and a 0.1 mutation probability was applied to each gene during an evolution. A set of experiments was carried out to evaluate the performance of self-adaption.

Evaluating the performance of self-adaption
A steady-state GA was used in all experiments, the GA's parameters are given in Table 2. In these experiments the mutation probability is the probability of a single mutation operation taking place once on the chromosome as a whole. Ten realistic synthetic datasets describing a busy period were generated. To enable statistical analysis, each time one of the settings of the GA was applied to a dataset and run twenty times with a different seed and the results were recorded. When self-adaption of the mutation operator or mutation probability is in play, then the offspring has an equal chance of inheriting the mutation operator or mutation probability from each of its parents. The GAs were allowed to run for up to 100, 000 calls to the fitness function or until no improvement was detected for 10, 000 iterations. It is not Binary tournament between the offspring and a random parent uncommon to initialise the initial parent population with some best guesses at a reasonable solution. In this case it would have been easy to sort the jobs by both latitude and longitude and insert these possible solutions into the initial population. This however would not have allowed such a rigorous examination of the mutation operators, as initialising the parent population completely randomly would do. The GAs were only allowed to run up to 100, 000 calls to the fitness function, this value was chosen simply for practicality. Choosing a larger value would have meant much larger execution time without showing us much more about the behaviour of the algorithm. In reality, when this software is put into real use the number of calls to the fitness function will be increased.

Results
In total the experiment was run 9,600 times; twenty differently seeded runs for each combination of mutation operator, mutation probability and dataset. Each run of the experiment was configured as described in Table 2 and allowed to execute for up to 100,000 calls to the fitness function. The results are given in Tables 3 and 4. Solutions with broken constraints were heavily penalised by the addition of a large negative penalty. The penalty was so large that any such solution would have a negative fitness value and this allowed easy identification of these solutions. Any solution with a broken constraint is likely to be infeasible; for example the solution might instruct a driver to place four signs on a lorry that can only physically carry three. An analysis of the experimental results was carried out to see if any of the GA configurations produced such infeasible solutions.  Table 3 shows the number of feasible and infeasible solutions for each of the mutation operators operating on each of the ten datasets. Each of the mutation operators produced a significant number of infeasible solutions. A simple glance at the table shows that mutation operators insert and swap produce less infeasible solutions than the other mutation operators. The fact that none of the mutation operators under investigation could guarantee to produce a valid solution was unexpected. Previous research [45] has shown that the number of calls to the fitness function is relatively low and that maybe with more time valid solutions may have been found.  Table 4 shows the number of feasible and infeasible solutions for each of the mutation probabilities under investigation for each of the datasets. Again Table 4 shows that each mutation probability creates many infeasible solutions. However, this time a striking pattern within the data can be seen. Looking down each column shows that for each of the datasets the number of feasible solutions increases and the number infeasible solutions decreases. So Table 4 indicates that as the mutation probability increases, so does the number of feasible solutions. In fact the best solutions are achieved with the very large mutation probability of 0.5. This is surprising as it tells us that mutation is playing a very significant part in the search for feasible solutions. This implies that there is a landscape pot marked by local Optima and that only by trying more and newer directions will the algorithm be able to move across the fitness landscape. Table 5 contains the counts of feasible and infeasible solutions by mutation probabilities and mutation operators. Scanning down the columns of Table 5 again shows that the number of feasible solutions increases with the mutation probability. With the data displayed in this format table 4 shows that some combinations of mutation operator and mutation probability have produced feasible solutions. In particular, mutation operator insert with mutation probability 0.3, swap with mutation probability 0.3 to 0.5 and self-adaptive with mutation probability 0.3 to 0.5 produced only feasible solutions. This indicates that the mutation operators insert and swap are well suited for solving this particular problem and it is assumed that when self-adaption is used that it will make good use of these two operators. This assumption will be examined later in this paper. Table 5 also clearly shows that the higher mutation probabilities produced the best results. Self-adaption of the mutation probability produced most feasible solutions for mutation operators insert, swap and self-adaptive. At the beginning of each run, when there is a lot of variation in the population, crossover should dominate the search across the fitness landscape. Once the population converges to a few similar solutions, then mutation should become more important to the search. Hence, when self-adaption of the mutation probability is used, the probability typically starts with a low value but increases over time ensuring that variation is maintained within the population. In these experiments, self-adaption of the mutation probability has not guaranteed that only feasible solutions will be found. This may be explained by the fact [45] that when using self-adaption the GA will typically need to run longer. One of the runs will be examined in more detail later in this paper to see if that is the case here. Table 6 shows the mean fitness by mutation operator and mutation probability. The table shows that the fitness increases with the mutation probability as was seen in Tables 4 and 5. The highest mean fitness was produced with a self-adapting mutation operator and the highest mutation probability of 0.5. When only considering the combinations of mutation operator of mutation probability that produced only feasible solutions, a self-adaptive mutation operator performed the best. The Kruskal-Wallis Test indicated with > 99.9% confidence that there was a significant difference in the performance of the seven combinations of mutation probabilities and mutation operators used in the GA that produced only feasible results. The Mann-Whitney Test indicated, with 99.9% confidence, that the performance of the GA using the combination of mutation operator and mutation probability that gave the highest mean fitness value was significantly better than that with the second highest. Hence, these results indicate that the GA that uses the self-adaptive mutation operator and a mutation probability of 0.5 significantly outperforms other GAs. Table 6 clearly shows the superior performance of the self-adaptive mutation operator. Whereas the other single operators will always see the same fixed fitness landscape the self-adaptive mutation operator can switch between the fitness landscapes seen by the single operators at will, giving it the ability to move past any obstacles found in a single landscape. Figure 9 indicates which mutation operator was used whilst solving one of the pick-up/drop-off problems. The initial fitness readings have not been plotted as they contained large negative numbers indicating broken constraints. If these values had been plotted, then the remaining values would not be distinguishable. The fitness plot contains many plateaus which indicate that the search is stuck in a local optimum as a result of both crossover and mutation failing to find a better solution. Figure 9 shows us that different mutation operators dominate mutation at different times during the search. The translocation operator comes into play very early on; at the beginning of the search it must be moving good partial solutions around and fixing broken constraints. Swap and insertion dominate improving the quality of the solution with the inversion operator playing a lesser role. Scramble seems to come into play when the other operators are unable to move out of local Optima. It seems to behave in a similar way as allowing immigration [56] of new population members, i.e. adding new blood to the population. The inversion operator may be playing a similar role, but in a much subtler way. It is clear from Figure 9 that the self-adaption of the mutation operator has allowed this search to escape from local Optima. This happens because each of the mutation operators sees a different fitness landscape. Where one mutation operator can see no way of escaping the local Optima in which it is trapped, another mutation operator can see a clear pathway ahead. Figure 10 shows the self-adaption of the mutation probability with a fixed mutation operator. It shows that the mutation probability has drifted up and down between its limits without any underlying pattern. It was expected from prior research that the mutation probability would increase over time, increasing the amount of mutation in the latter stages of the search. The fact that this did not happen may be explained by the shape of the fitness plot. It is made up of numerous plateaus, indicating local Optima, connected by sharp improvements. Whilst the algorithm is stuck in one of the local Optima and no improvements are found no preference for the mutation probability can be inferred by the algorithm. Instead, if the fitness plot had shown a smooth improvement instead of these large steps, then the search algorithm would have learned the benefit of a high mutation probability and that would spread throughout the population. Between them Figures 9 and  10 indicate that the behaviour of the self-adaption is dependent on the shape of the fitness landscape.
A further experiment was run where both the mutation operator and probability were allowed to self-adapt. This experiment was allowed to run for 500,000 iterations and it was expected that given more time the mutation probability might increase towards the end of the search. This however was not the case, the mutation probability behaved in exactly the same way as shown in Figure 10 indicating that self-adaption of the mutation operator plays a greater role in finding better solutions. Given the extra time, however the search produced a much superior solution. This demonstrates the power of self-adaption to avoid searches becoming stuck in local Optima and to do this without the need for the user to tune the search algorithm.

Conclusions and Further research
In this paper a rigorous mathematical model was developed to describe the VMSP. Mathematical models that describe route optimisation often cannot guarantee the creation of illegal sub-tours within a solution without the addition of sub-tour elimination constraints. To avoid this problem a reformulation of the mathematical model into a permutation representation was also developed which could then be solved using search techniques from the artificial intelligence domain. This reformulation • removed the need to introduce sub-tour elimination constraints, • removed the need for hard constraints that prevented jobs, vehicles and personnel being multiply assigned, • identified the need for time related soft constraints to be interpreted differently to allow for a graduated penalty when those constraints were broken.
This reformulation of the VMSP created valid solutions which the original mathematical model could not guarantee. However, reformulating the mathematical model as a permutation introduced its own problems; there are many permutation operators from which to choose, and they tend to be more complex than non-permutation operators. To lessen this problem the reformulation added the ability to automatically select which permutation operator and probability to use, via a self-adaption mechanism. The self-adaption of the mutation operator played a greater role than that of the mutation probability in finding better solutions. In the VMSP a combination of the self-adaption of the mutation operator with a high mutation probability performed best leading to the conclusion that the fitness landscape is made up of numerous local Optima. The addition of self-adaption to the GA produced significantly better solutions with > 99.9% confidence and removed the need to select the mutation operator or probability. A comparison of the performance of other search strategies applied to this problem could form a basis for future research. This research identified that changing the paradigm describing a problem can lead to its simplification which could be applied to other problem areas. This research has also touched on how the fitness landscape affects the performance of the search strategy. Examining and predicting the properties of different fitness landscapes and the best ways to search them will make an interesting area of future research.