antsynnet: applying ant colony optimization to the network...

51
Carleton University Final Year Project in Computer Science AntSynNet: Applying Ant Colony Optimization to the Network Synthesis Problem Simon Wilkinson Student: 100229698 Supervisor: Dr. Tony White, SCS December 19 th , 2003

Upload: others

Post on 16-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Carleton University Final Year Project in Computer Science

AntSynNet: Applying Ant Colony Optimization to the Network Synthesis Problem

Simon Wilkinson Student: 100229698

Supervisor: Dr. Tony White, SCS

December 19th, 2003

Page 2: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

1. Introduction

The Ant Colony Optimization (ACO) meta-heuristic has been applied to many

discrete optimization problems such as the Traveling Salesman Problem (TSP) and the

quadratic assignment problem (QAP) with varying degrees of success. Many practical

problems have constraints that make them difficult for the ACO algorithms to process.

Therefore, new methods and extensions to the ACO algorithm have great importance to

the further development of this meta-heuristic technique.

In this paper, the application of ACO to a network synthesis problem is examined.

This type of problem has direct applications to the design of telecommunication systems.

The problem is highly constrained and, at times, finding feasible solutions can be

extremely difficult. This paper addresses an approach to this problem that is appropriate

for processing by ACO. "Extending ant like algorithms to situations like

telecommunications networks which are not found in nature will also increase our

understanding of the abstract and general abilities of such algorithms over and above

those applications found in nature." [Schoonderwoerd et al., 1996]

This paper is organized as follows. Section 2 gives background information on

the ACO meta-heuristic, while Section 3 discusses network design and outlines the

network synthesis problem. Section 4 defines the modeling approach and strategy used

to solve the problem. From this, the results will be presented in Section 5, and finally, in

Section 6, conclusion and future work are discussed.

Page 3: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

2. Ant Colony Optimization

2.1 History

Ant Colony Optimization (ACO) studies artificial systems that take inspiration

from the behaviour of real ant colonies and which are used to solve discrete optimization

problems.

Ant algorithms were first proposed by Dorigo and colleagues [Dorigo et al., 1991]

as a multi-agent approach to difficult combinatorial optimization problems like the

traveling salesman problem (TSP) and the quadratic assignment problem (QAP), and

later introduced the ACO meta-heuristic [Dorigo and Di Caro, 1999]. There is currently a

lot of ongoing activity in the scientific community to extend/apply ant-based algorithms

to many different discrete optimization problems. Recent applications cover problems

like vehicle routing [Bullnheimer et al., 1999], graph coloring [Costa and Hertz, 1997],

and routing in communications networks [Di Caro and Dorigo, 1998][Varela and

Sinclair, 1999].

Ant algorithms were inspired by the observation of real ant colonies. Ants are

social insects, that is, insects that live in colonies and whose behavior is directed more to

the survival of the colony as a whole than to that of a single individual component of the

colony. Social insects have captured the attention of many scientists because of the high

level of structure their colonies can achieve, especially when compared to the relative

Page 4: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

simplicity of the colony’s individuals. An important and interesting behavior of ant

colonies is their foraging behavior, and, in particular, how ants can find shortest paths

between food sources and their nest. While walking from food sources to the nest and

vice versa, ants deposit on the ground a substance called pheromone, forming in this way

a pheromone trail. Ants can smell pheromone and, when choosing their way, they tend to

choose, in probability, paths marked by strong pheromone concentrations. The

pheromone trail allows the ants to find their way back to the food source (or to the nest).

It can also be used by other ants to find the location of the food sources found by their

nest-mates. It has been shown experimentally that this pheromone trail following

behavior can give rise, once employed by a colony of ants, to the emergence of shortest

paths. That is, when more paths are available from the nest to a food source, a colony of

ants may be able to exploit the pheromone trails left by the individual ants to discover the

shortest path from the nest to the food source and back.

The Ant Colony Optimization meta-heuristic employs a co-operating colony of

ants in an attempt to find good solutions to difficult discrete optimization problems.

Cooperation is a key design component of ACO algorithms: The choice is to allocate the

computational resources to a set of relatively simple agents (artificial ants) that

communicate indirectly by stigmergy. Good solutions are an emergent property of the

agents’ cooperative interaction.

Artificial ants have a double nature. First, they are an abstraction of real ants

found in nature and of their behaviour. On the other hand, artificial ants have also been

Page 5: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

enriched with some capabilities which are not found among their natural counterparts.

Since the artificial ants are employed in software to solve difficult discrete optimization

problems, it is reasonable to give the ants some capabilities, which while not found in

real ant behaviour, make them more efficient and effective.

2.2 Similarities and Differences With Real Ants

This section will explore some of the more important similarities and differences

between real ants and the artificial ants employed by the ACO meta-heuristic.

Most of the ideas of ACO stem from real ants and their behaviour. In particular,

the use of: (i) a colony of cooperating individuals, (ii) an (artificial) pheromone trail for

local stigmergic communication, (iii) a sequence of local moves to find shortest paths,

and (iv) a stochastic decision policy using local information and no lookahead. [Dorigo et

al., 1999]

Colony of cooperating individuals: As with real ant colonies, ant algorithms

comprise of a population, or colony, of concurrent and asynchronous entities co-

operating at a global level in order to find an optimal solution to the problem at hand.

Although each individual ant is given the task of building a feasible solution, high quality

solutions are the result of the cooperation of the individuals among the entire population.

Ants within the population communicate among themselves by means of the information

Page 6: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

they read/write on the problems states that they visit. This is explained in more detail in

the next item.

Pheromone trail and stigmergy: As real ants move about, they deposit a chemical

substance, called pheromone, on the areas they visit. Artificial ants also modify some

aspects of their environments, by mimicking this pheromone depositing behaviour. This

artificial pheromone trail changes some numeric information locally stored in the

problem’s state they visit. This information takes into account the ant’s current

history/performance and can be read/written by any ant accessing the state. In ACO

algorithms local pheromone trails are the only communication channels among the ants.

This stigmergic form of communication plays a major role in the utilization of collective

knowledge. Its main effect is to change the way the environment (the problem landscape)

is locally perceived by the ants as a function of all the past history of the whole ant

colony. Just as real pheromone would evaporate over time, so do the artificial

pheromone trails. Pheromone evaporation helps prevent the ant colony from prematurely

converging upon a sub optimal solution, by allowing the ant colony to slowly forget it’s

past history so that it can search in new directions without being over-constrained by its

past decisions.

Shortest path searching and local moves: Both real and artificial ants share a

common goal; to find a shortest (minimum cost) path from an origin to a destination (nest

to food source). Both ant types move simply through their environment, going from one

Page 7: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

problem state to another, adjacent problem state. These steps and states are, of course,

problem specific.

As was mentioned above, in order to help increase the efficiency and

effectiveness of the solution, artificial ants have some characteristics that are not apparent

in their real ant counterparts. [Dorigo et al., 1999]

- Artificial ants live in a discrete world, and their moves are from one discrete state

to the next.

- Artificial ants keep an internal state, which contains the memory of the ant’s past

actions.

- Artificial ants deposit an amount of pheromone that is a function of the quality of

solution found.

- Artificial ants timing in laying pheromone is problem dependent. In some cases,

pheromone trails are only updated after a solution is found. In other cases, high

quality solutions are given pheromone reinforcement.

- To help improve overall efficiency, ACO algorithms can also be enriched by

ideas such as lookahead, local optimization, anti-pheromone, and accumulated

experience.

2.3 ACO Meta-Heuristic

Within each step of the ACO process, each ant adds some element to its solution

until a termination condition has been met. How an ant chooses the next element is

Page 8: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

problem specific, but is built upon some common ground work. Each ant maintains a

tabu list, J, of elements already contained in its solution. This guarantees that the ant will

not add the same element twice. In order to select the next element, a probabilistic model

is used. The transition probability for the ant to the next element is defined in Figure 1

below. The visibility (ηij ) of element i from j is defined as the inverse of the Euclidian

distance between the two elements, and τij(t) is the amount of pheromone on the edge

between elements i and j.

p ijk ( t ) =

[τ ij ( t )] α ⋅ [ η ij ] β

[τ il ( t )] α ⋅ [η il ] β

l∈ J ik

if j belongs to Jik, and 0 otherwise

Figure 1: Transistion probability formula

The probability can differ for two ants on element i, as it depends on the partial solution

made by ant k (i.e., the tabu list of the ant).

After completing a tour, each ant k deposits ∆τijk(t) on each edge (i, j) it traversed

in compiling its solution. Τhis amount depends on how well the ant k performed,

according to the formula in Figure 2.

Page 9: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

∆τijk(t) = Q / Lk(t)

if (i, j) belongs toTκ(t), and 0 otherwise.

Figure 2: Amount of pheromone to deposit

Here Tk(t) is the tour of ant k at iteration t, and parameter Q is set to a problem specific

value. To avoid stagnation, pheromone decays with coefficient ρ, 0 ≤ ρ < 1 (ρ must be <

1 to prevent unlimited pheromone accumulation). The pheromone update rule, which is

applied to all edges, is seen in Figure 3 below. At time t = 0, there is a small constant

amount of pheromone on all edges.

τij(t) = (1 - ρ) ∗ τij(t) + ∆ τij(t),

where ∆ τij(t) = ∑κ=1m ∆ τijk(t), and there are m ants.

Figure 3: Pheromone update rule These pieces are comnined together to create the overall ACO meta-heuristic, which is

summarized in Figure 4.

procedure ACO_meta-heuristic() while(termination condition not satisfied) schedule_activities ant_generation_and_activity() pheromone_evaporation() deposit_pheromone() end schedule activities end while end procedure procedure ant_generation_and_activity() for 1 -> numAnts create new ant ant_activity()

Page 10: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

end for end procedure procedure ant_activity() while (current state != target state) compute_transition_probabilities() apply_decision_policy() move_to_next_state() end while evaluate_solution() clear_tabu_list() end procedure

Figure 4: ACO meta-heuristic pseudocode

(Adapted from [Brander and Sinclair, 1995])

3. The Network Synthesis Problem

The design of an efficient telecommunications network is a complicated task.

Typical problem domains include topology, connectivity, and routing requirements. The

measurement of efficiency is typically based on one or more of these facets. There has

been much work done on the design of networks, and comparing several meta-heuristic

design techniques. [Cantarella et al., 2002][Myslek and Karas, 2002] These types of

heuristics generally look at ideas such as Concave Link Elimination (CLE) and other

types of network reduction methods. It is these types of ideas that have been extended to

the use of artificial intelligence to network design. [White et al., 1999] [Berry et al.,

1999]

Page 11: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

From this type of work stemmed the inspiration for the use of artificial

intelligence to routing in networks. This started with Genetic Algorithms (GAs) and has

continued on into the use of ant colonies. [Singh et al., 2003][Varela and Sinclair, 1999]

The problem of network synthesis is a common one in the design of

telecommunications networks. The problem aims to satisfy pre-defined traffic

requirements between sets of nodes at a minimum cost. The problem space for network

synthesis is large, as in a network of n nodes, there are 2n(n-1)/2 possible topologies. Thus,

for a network as small as ten nodes, there are trillions of possibilities. In order to assess

the problem, the following information is required: the traffic demand between each

origin-destination (O-D) pair, and a cost function for carrying traffic on each possible

link between nodes i and j.

There has been recent interest in the problem both in the application of GAs

[Berry et al., 1997] in which a GA is used to synthesize the network while a linear

programme (LP) is used to allocate the traffic amongst the routes of the network. There

has also been some work done in applying the ACO meta-heuristic to the problem.

[Randell and Tonks, 2001]

4. Application of ACO to the Network Synthesis Problem

In this implementation, the notion of pre-computed traffic routes is employed.

This idea was first proposed in a paper on a simulated annealing approach to network

Page 12: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

design. [Randell et al., 1999] A route is a sequence of nodes between an origin and a

destination node, and can be limited by a hop limit. A hop is considered an edge between

any nodes i and j. Figure 5 shows a simple five-node network that has 4 routes. The pre-

computed route strategy has several advantages over a hop-by-hop approach. For

instance, hop limits are automatically satisfied and routes are always feasible.

Figure 5: An Example Network The set of possible routes in a fully connected network is quite large, and

therefore techniques have been developed for the creation of smaller subsets. The

technique used in this approach was to select the subset of k-shortest paths (KSP). There

have been many algorithms proposed for the implementation of this problem [Yen,

1971][Lawler, 1972]. In Yens algorithm the shortest path (containing p ≤ n nodes) is

found using a standard single shortest-path algorithm (i.e., Dijkstra's algorithm) and

placed into a results list (Yen's list A). Then every node in the shortest path, except the

terminating node, is taken and another shortest path (spur) is calculated from each

selected node to the terminating node. For each such node, the path from the start node to

The routes are: (1, 3, 5) (2, 1) (2, 3, 4) (4, 1)

1

2

35

4

Page 13: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

the current node is the root path. Two restrictions are placed on the spur path: 1) It must

not pass through any node on the root path (i.e. it must be loopless), and 2) It must not

branch from the current node on any edge used by a previously found k-shortest path

with the same root. Node and edge marking is used to prevent the spur paths from

looping or simply following the route of a previous k-shortest path. If a new spur path is

found it is appended to the root path for that node, to form a complete path from origin to

destination node, which is then a candidate for the next KSP. All such paths are stored

(Yen's list B) and the shortest remaining unselected path is selected as the next KSP, and

transferred to the results list (Yen's list A). The same process is repeated, calculating a

spur path from each node in each new KSP, until the required number of KSP have been

found [Brander and Sinclair, 1995].

The algorithm developed for this implementation differs from above in that it

maintains edge-disjointness amoung all routes. That is, no two routes can share a

common edge. In the five and ten node networks that were used in testing this

implementation, this also imposed a hop limit of two. Loopless path are also gauranteed

using this algorithm, which is outlined in Figure 6 below.

procedure k-shortest paths() initialize graph for 1 -> k do

result <- dijkstra() //to find a single shortest path remove edges used in result from graph

end for end procedure procedure dijkstra() Q = Vertices of graph while Q is not empty do u <- extractMin(Q)

Page 14: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

S <- S U {u} for each neighbour v of u do if distance to u through v is shorter than known distance updateDistance()

end for end while end procedure

Figure 6: K-shortest paths algorithm

The computational complexity of the above algorithm is O(kn3), where k is the required

number of shortest paths between every origin-destination pair, and O(n2) is due to the

shortest-path calculation. By removing edges at each iteration, the algorithmic speed and

complexity are improved upon as the algorithm progresses, due to the smaller number of

neighbours that are caluculated during Dijkstra's algorithm. The known computational

complexity for Yen's algorithm is also O(kn3).

The network synthesis problem now becomes one of progessively building up a

set of routes chosen from the smaller subset, until all the traffic requirements have been

met. In terms of ant behaviour, this means that at each step of an iteration, an ant will

select another route from the pre-computed route set and add it to its network. The

selection of the next route is done using the transistion probability function in Figure 1.

In this implementation, the visibility is the inverse of the sum of the hop distances. An

ant computes the transition probability for each route that satisfies the remaining origin-

destination pair requirements not in the ants tabu list. It then generates a random number

and chooses the next route, adding it to its tabu list. It terminates when a route to satisfy

every origin-destination pair has been choosen. Pheromone updates are done using an

inverse ranking scheme. The ants with the top e solutions lay down pheromone on the

Page 15: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

routes used in their solutions, weighted by a factor of (e - rank + 1). So, if the value of e

were set to five, the top network would be given a weighting factor of five, the second

best solution a factor of four, the third a factor of 3, and so on.

The fitness of the solution is based upon the length of the route and the bandwidth

required on each hop. Bandwidth is allocated in discrete intervals of five, in the effort to

make sharing hops more advantageous, in terms of generating a smaller overall fitness.

In this sense, if one route (r1) required three units of bandwidth, 5 must be allocated.

Therefore, it would be advantageous for the network if another route that uses one or two

units shared hops with r1, as it must already allocate five. The algorithm to determine the

fitness of an ant's network is outlined in Figure 7.

procedure evaluate_fitness()

Vector v for i = 1 -> numRoutes do Route r <- ants.routeAt[i] for j = 1 -> numHopsInRoute do Hop h = r.hopAt[j] if v contains r add r.bandwidthRequired to v's entry else v.add(r) end for end for d = 0 f = 0 while v has more elements do Hop t = v.removeNext() round t.bandwidthRequired up to nearest 5 d += t.distance f += t.bandwidthRequired end while networkLength = d networkFitness = f

end procedure

Figure 7: Network fitness algorithm

Page 16: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

The running time of the above algorithm is O(NR * H + NH), where NR is the number of

required origin-destination pair routes, H is the hop limit, and NH is the total number of

hops used in the network. The above algorithm keeps track of all the hops used in the

network, and computes values based on the hops, not the individual routes, in order to

avoid counting the same hop multiple times.

The entire application of ACO to the network synthesis problem is described in

Figure 8. The createDistanceTable() function simply computes the distances between

every pair of nodes and stores it in a lower triangular matrix. Triangular matrices were

used wherever possible to decrease the amount of memory needed to store information.

This was not a major concern for the networks used in testing, but would become more

prevalent as network size grew.

procedure AntSynNet() createDistanceTable() makeRoutes() initializePheromone() for 1 -> MAX_ITERATIONS do runIteration() end for end procedure procedure makeRoutes() for 1 -> numRoutesRequired do k-shortest_paths() end for end procedure procedure runIteration() for a = 1 -> numAnts do makeNetwork(a) evaluate_fitness() end for

Page 17: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

evaporatePheromone() for a = 1 -> e do updatePheromone(a) end for

clearTabuLists() end procedure

Figure 8: The AntSynNet algorithm The function initialzePheromone() deposits a small amount of pheromone on every route.

In makeNetwork(a), the ant a chooses a route based on the transistion probability until

one for every required origin-destination pair has been added to its network.

5. Testing

5. 1 Control Parameters

In order to come up with appropriate control parameters for the testing, a

combination of known ideas and test results using small five-node networks. These

networks and test results are given in Appendix 1. While almost all parameters lead to

the same best fitness values, the parameters that lead to the best results on the average

were selected.

The number of ants was set to the same number as the number of nodes in the

network. Too many ants can lead to premature convergence upon a sub-optimal solution,

while too few ants creates a colony with little or no cooperation because of the

pheromone decay. The ants are initially placed on a randomly selected route. That is,

Page 18: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

one route is chosen randomly from the pool of routes belonging to a randomly selected

origin-destination pair. This allows the transition probabilities of two ants to differ as

their partial solutions thus far (their tabu lists) will differ. The tabu lists keep an ant from

selecting another route out of the pool of k-routes for an origin-destination pair they have

already selected from.

The initial amount of pheromone deposited upon all routes was 10-6. Using a

small value here allows for good solutions to grow more slowly, allowing for greater

exploration of the search space. The variable Q (found in the formula in Figure 2) is set

to such a value that the best solution is given a 1% - 10% increase from the amount of

initial pheromone. For the five-node networks tests, this value was also 10-6. Keeping

this update value relatively small is important as it helps to prevent premature

convergence, and allows pheromone values to build slowly over successive iterations.

For similar reasons of preventing premature converge upon sub-optimal solutions p, the

pheromone evaporation rate (found in the formula in Figure 3) is set to a low value of

0.2.

The values for α and β (found in the equation in Figure 1) are also important, as

they play a large factor in the transition probability function. If α is set to a low value,

the equation becomes stochastically greedy, and shorter routes are likely to be selected.

If β is set to a low value the greater the attraction to pheromone levels, and the more

likelihood of rapid convergence upon sub-optimal solutions. A balance between these

two extremes must be found. During testing of the five-node networks, it was found that

Page 19: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

a ratio of two to one for α to β yielded encouraging results, and so α was set to four and β

was set to two.

In order to test these chosen parameters for validity, a five-node network and

corresponding traffic matrix where constructed with specific link goals in mind. The

traffic matrix was designed so that routing over shared hops would be advantageous. The

traffic matrix and resulting matrix can be found in Appendix 2. The results of this

validity test were as desired, converging upon the optimal solution over 95% of the time.

5.2 Testing Results

Testing was done by running three different traffic matrices upon four different

ten-node network configurations. These traffic matrices are shown in Appendix 3, along

with examples of the networks and testing results. Each network had 10 trials run with

each traffic matrix. Unfortunately, there are no similar tests against which the results

could be compared. However, the significance of the results will be discussed below.

Test results showed a fairly wide variety of result networks. As expected,

differing traffic demands give rise to different "efficient" networks. The traffic matrices

used in these tests were all fairly high demand, having a range of 90% - 100% traffic

requirements between all nodes.

Page 20: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Results were varying within the same test groups, suggesting that the pheromone

feedback may have been causing premature convergence upon sub-optimal solutions.

This may also have been a result of the relatively small network size. A possible solution

to this, apart from simply increasing the test network size, would be to add a facility

whereby an ant can choose a route randomly from time to time (approximately 5% - 10%

of the time) in order to allow exploration to continue even in situations where a network

may have already emerged.

Also clearly seen from the results is that the shortest length network is not always

the network with the most desirable fitness. This is not necessarily a poor result, but in

actual telecommunication design, there is generally a cost associated with simply lying

down a physical cable (represented as an edge on the graphs). Therefore, one solution

would be to associate an edge penalty into the fitness function, whereby networks with

fewer edges (and therefore, smaller overall length) are rewarded over longer networks.

Some early testing with this idea shows promising results, as some improved network

designs were found. This also further encourages the notion of sharing edges. Another

possible solution would be to allocate bandwidth in intervals that are larger than units of

five.

Overall, test results were encouraging. They have shown that the ACO can be

applied to the Network Synthesis Problem effectively. This application has also lead to

some ideas of how to further extend the idea.

Page 21: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

5.3 Future Work

Along with some of the suggestions made in the previous section, there are some

other improvements that could be made to AntSynNet. Firstly, the implementation of

another KSP algorithm may prove beneficial. This change could lead to improvements in

the computational complexity, as well as provide a more robust pool of paths, by not

maintaining a strict edge-disjointness property. In addition, other route selection

techniques could be used instead of, or in conjunction with KSP, in an effort to find a

more useful subset of routes.

There could also be the addition of more control parameters, such as hop count,

node degree limits, edge capacity restraints, and node capacity restraints. All of these

additions would correspond to issues that would need to be addressed in the design of an

actual physical network. Unfortunately, they were outside the scope and timeframe of

this project.

These types of additions would then also make it possible to compare results with

other work done on the network synthesis problem, using various other solution

techniques. [Minoux, M., 1989][Randell et al., 2002]

Page 22: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5.txt 1 1721 21040 | 2 1911 20970 | alpha = 4; 3 1911 20970 | beta = 2; 4 1969 21030 | Q = Math.pow(10, (-6)); 5 1396 21100 | initialPheromone = Math.pow(10, (-6)); // 10^(-6) 6 2108 20970 | evaporationRate = 0.2; 7 1911 20970 | e = 5; 8 1585 20980 | k = 4; 9 1585 20980 | MAX_CYCLES = 200;

10 2108 20970 | | Average 1820.50 20998.00 | Minimum 1396 20970 Maximum 2108 21100 Best Network:

Page 23: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5.txt 1 1632 21335 | 2 1918 21040 | alpha = 5; 3 1911 20970 | beta = 1; 4 1447 21150 | Q = Math.pow(10, (-6)); 5 1778 21345 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 1396 21100 | evaporationRate = 0.2; 7 1918 21040 | e = 5; 8 1969 21030 | k = 4; 9 1918 21040 | MAX_CYCLES = 200;

10 1121 21220 | | Average 1700.80 21127.00 | Minimum 1121 20970 Maximum 1969 21345 Best Network:

Page 24: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5.txt 1 1772 21030 | 2 1918 21040 | alpha = 1; 3 1911 20970 | beta = 5; 4 1911 20970 | Q = Math.pow(10, (-6)); 5 1918 21040 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 1721 21040 | evaporationRate = 0.2; 7 2108 20970 | e = 5; 8 1911 20970 | k = 4; 9 1911 20970 | MAX_CYCLES = 200;

10 1446 21100 | | Average 1852.70 21010.00 | Minimum 1446 20970 Maximum 2108 21100 Best Network:

Page 25: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5.txt 1 1918 21040 | 2 1721 21040 | alpha = 4; 3 1585 20980 | beta = 2; 4 2108 20970 | Q = Math.pow(10, (-6)); 5 1585 20980 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 1911 20970 | evaporationRate = 0.5; 7 1969 21030 | e = 5; 8 2301 21275 | k = 4; 9 1593 21160 | MAX_CYCLES = 200;

10 1969 21030 | | Average 1866.00 21047.50 | Minimum 1585 20970 Maximum 2301 21275 Example Network:

Page 26: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5.txt 1 1593 21160 | 2 1911 20970 | alpha = 5; 3 1911 20970 | beta = 2; 4 1585 20980 | Q = Math.pow(10, (-6)); 5 1388 20980 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 1121 21220 | evaporationRate = 0.3; 7 2116 21090 | e = 5; 8 1721 21040 | k = 4; 9 1446 21100 | MAX_CYCLES = 200;

10 1911 20970 | | Average 1670.30 21048.00 | Minimum 1121 20970 Maximum 2116 21220 Example Network:

Page 27: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5-2.txt 1 2382 22370 | 2 2986 23320 | alpha = 4; 3 2572 23320 | beta = 2; 4 2796 22370 | Q = Math.pow(10, (-6)); 5 2796 22370 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 2986 23320 | evaporationRate = 0.2; 7 3127 22360 | e = 5; 8 2572 23320 | k = 4; 9 2382 22400 | MAX_CYCLES = 200;

10 3127 22360 | | Average 2772.60 22751.00 | Minimum 2382 22360 Maximum 3127 23320 Best Network:

Page 28: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5-2.txt 1 2382 22370 | 2 2572 23320 | alpha = 5; 3 1827 23330 | beta = 1; 4 2759 23490 | Q = Math.pow(10, (-6)); 5 2382 22400 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 2578 24235 | evaporationRate = 0.2; 7 2382 24440 | e = 5; 8 2572 23320 | k = 4; 9 2572 23320 | MAX_CYCLES = 200;

10 2382 22370 | | Average 2440.80 23259.50 | Minimum 1827 22370 Maximum 2759 24440 Best Network:

Page 29: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5-2.txt 1 2572 23320 | 2 2382 22400 | alpha = 1; 3 3127 22360 | beta = 5; 4 2572 23320 | Q = Math.pow(10, (-6)); 5 2382 22400 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 2572 23320 | evaporationRate = 0.2; 7 2572 23320 | e = 5; 8 2572 23320 | k = 4; 9 2572 23320 | MAX_CYCLES = 200;

10 2572 23320 | | Average 2589.50 23040.00 | Minimum 2382 22360 Maximum 3127 23320 Best Network:

Page 30: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5-2.txt 1 2382 22400 | 2 3127 24055 | alpha = 4; 3 2535 24440 | beta = 2; 4 2382 23450 | Q = Math.pow(10, (-6)); 5 3127 22360 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 2241 23360 | evaporationRate = 0.5; 7 2572 25015 | e = 5; 8 2986 22400 | k = 4; 9 3127 22360 | MAX_CYCLES = 200;

10 2986 22400 | | Average 2746.50 23224.00 | Minimum 2241 22360 Maximum 3127 25015 Example Network:

Page 31: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5-2.txt 1 2572 23320 | 2 3127 22360 | alpha = 5; 3 2572 23320 | beta = 2; 4 2986 23320 | Q = Math.pow(10, (-6)); 5 2572 23320 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 2572 23320 | evaporationRate = 0.3; 7 3127 22360 | e = 5; 8 2431 23360 | k = 4; 9 2382 22400 | MAX_CYCLES = 200;

10 2382 22370 | | Average 2672.30 22945.00 | Minimum 2382 22360 Maximum 3127 23360 Example Network:

Page 32: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5-3.txt 1 981 14410 | 2 981 14410 | alpha = 4; 3 981 14410 | beta = 2; 4 981 14410 | Q = Math.pow(10, (-6)); 5 981 14410 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 981 14410 | evaporationRate = 0.2; 7 981 14410 | e = 5; 8 981 14410 | k = 4; 9 981 14410 | MAX_CYCLES = 200;

10 981 14410 | | Average 981.00 14410.00 | Minimum 981 14410 Maximum 981 14410 Best Network:

(Similar results held for other runs of test5-3, so those results will not be shown here.)

Page 33: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5-4.txt 1 923 16360 | 2 778 15710 | alpha = 4; 3 1271 16655 | beta = 2; 4 895 15870 | Q = Math.pow(10, (-6)); 5 923 16360 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 778 15710 | evaporationRate = 0.2; 7 778 15710 | e = 5; 8 967 16655 | k = 4; 9 778 15710 | MAX_CYCLES = 200;

10 895 15870 | | Average 898.60 16061.00 | Minimum 778 15710 Maximum 1271 16655 Best Network:

Page 34: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5-4.txt 1 1112 16365 | 2 1237 17415 | alpha = 5; 3 923 17235 | beta = 1; 4 895 15870 | Q = Math.pow(10, (-6)); 5 778 15710 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 1344 17940 | evaporationRate = 0.2; 7 895 15870 | e = 5; 8 1227 17515 | k = 4; 9 895 15870 | MAX_CYCLES = 200;

10 1082 16795 | | Average 1038.80 16658.50 | Minimum 778 15710 Maximum 1344 17940 Best Network:

Page 35: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5-4.txt 1 895 15870 | 2 923 16360 | alpha = 1; 3 1112 16365 | beta = 5; 4 895 16310 | Q = Math.pow(10, (-6)); 5 778 15710 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 1112 16365 | evaporationRate = 0.2; 7 895 16310 | e = 5; 8 1112 16365 | k = 4; 9 923 16360 | MAX_CYCLES = 200;

10 895 15870 | | Average 954.00 16188.50 | Minimum 778 15710 Maximum 1112 16365 Best Network:

Page 36: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5-4.txt 1 895 15870 | 2 1271 16655 | alpha = 4; 3 778 15710 | beta = 2; 4 778 15710 | Q = Math.pow(10, (-6)); 5 1416 18285 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 1271 16655 | evaporationRate = 0.5; 7 778 15710 | e = 5; 8 895 16310 | k = 4; 9 778 15710 | MAX_CYCLES = 200;

10 923 16360 | | Average 978.30 16297.50 | Minimum 778 15710 Maximum 1416 18285 Example Network:

Page 37: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test5-4.txt 1 1112 16870 | 2 778 15710 | alpha = 5; 3 1112 16870 | beta = 2; 4 1112 16365 | Q = Math.pow(10, (-6)); 5 923 16360 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 967 16655 | evaporationRate = 0.3; 7 1112 16365 | e = 5; 8 967 16655 | k = 4; 9 778 15710 | MAX_CYCLES = 200;

10 967 16655 | | Average 982.80 16421.50 | Minimum 778 15710 Maximum 1112 16870 Example Network:

Page 38: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Example Results: Trial Number Length Fitness | Test5-validity.txt

1 297 1485 | 2 297 1485 | alpha = 4; 3 297 1485 | beta = 2; 4 297 1485 | Q = Math.pow(10, (-6)); 5 297 1485 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 297 1485 | evaporationRate = 0.2; 7 297 1485 | e = 5; 8 328 1640 | k = 4; 9 297 1485 | MAX_CYCLES = 200;

10 297 1485 | | Average 300.10 1500.50 | Minimum 297 1485 Maximum 328 1640 Traffic Matrix: 0 3 2 3 2 3 0 2 0 0 2 2 0 0 5 3 0 0 0 2 2 0 5 2 0 Best Network:

Page 39: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Traffic Matrices Used: 1) 0 3 9 5 8 10 5 1 6 7 3 0 5 4 3 6 0 4 6 0 9 5 0 8 10 6 1 1 2 0 5 4 8 0 10 0 9 0 4 7 8 3 10 10 0 8 1 0 9 2 10 6 6 0 8 0 1 4 10 9 5 0 1 9 1 1 0 0 6 9 1 4 1 0 0 4 0 0 10 9 6 6 2 4 9 10 6 10 0 9 7 0 0 7 2 9 9 9 9 0 2) 0 3 9 5 8 10 5 1 6 7 3 0 5 4 3 6 0 4 6 0 9 5 0 8 10 6 1 1 2 0 5 4 8 0 10 0 9 0 4 7 8 3 10 10 0 8 1 0 9 2 10 6 6 0 8 0 1 4 10 9 5 0 1 9 1 1 0 0 6 9 1 4 1 0 0 4 0 0 10 9 6 6 2 4 9 10 6 10 0 9 7 0 0 7 2 9 9 9 9 0 3) 0 6 10 4 10 2 7 3 4 4 6 0 1 8 8 6 8 10 10 7 1 5 0 10 7 7 9 4 3 9 10 6 1 0 7 10 3 7 5 1 9 8 5 7 0 10 1 7 8 7 2 7 10 4 3 0 7 4 5 10 10 8 8 2 7 5 0 10 5 9 10 1 6 2 10 2 7 0 1 7 6 1 4 4 6 3 7 6 0 9 9 4 3 8 6 8 6 9 9 0

Page 40: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test10-1-1.txt

1 5725 76245 | 2 5630 76240 | alpha = 4; 3 6140 73610 | beta = 2; 4 5919 71240 | Q = Math.pow(10, (-6)); 5 6191 74480 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 6670 76425 | evaporationRate = 0.2; 7 5311 71130 | e = 5; 8 6614 74455 | k = 9; 9 6408 73100 | MAX_CYCLES = 200;

10 5217 71915 | | Average 5982.50 73884.00 | Minimum 5217 71130 Maximum 6670 76425 Best Network:

Page 41: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test10-1-2.txt 1 5482 71710 | 2 6703 77010 | alpha = 4; 3 7104 76440 | beta = 2; 4 6635 72365 | Q = Math.pow(10, (-6)); 5 6684 75895 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 6476 76205 | evaporationRate = 0.2; 7 5807 72505 | e = 5; 8 6321 73580 | k = 9; 9 6758 77250 | MAX_CYCLES = 200;

10 6658 74175 | | Average 6462.80 74713.50 | Minimum 5482 71710 Maximum 7104 77250 Best Network:

Page 42: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test10-1-3.txt 1 7293 76815 | 2 6114 74985 | alpha = 4; 3 7013 75045 | beta = 2; 4 6647 75395 | Q = Math.pow(10, (-6)); 5 7330 76275 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 5860 74250 | evaporationRate = 0.2; 7 6071 71690 | e = 5; 8 6788 74310 | k = 9; 9 6590 75500 | MAX_CYCLES = 200;

10 6700 73740 | | Average 6640.60 74800.50 | Minimum 5860 71690 Maximum 7330 76815 Best Network:

Page 43: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test10-2-1.txt 1 6885 75040 | 2 6323 76425 | alpha = 4; 3 7237 75745 | beta = 2; 4 7221 76560 | Q = Math.pow(10, (-6)); 5 6938 77725 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 6869 76290 | evaporationRate = 0.2; 7 6338 78090 | e = 5; 8 6280 78870 | k = 9; 9 7171 77265 | MAX_CYCLES = 200;

10 6831 79010 | | Average 6809.30 77102.00 | Minimum 6280 75040 Maximum 7237 79010 Best Network:

Page 44: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test10-2-2.txt 1 6660 75380 | 2 6346 76720 | alpha = 4; 3 6077 78695 | beta = 2; 4 5804 77350 | Q = Math.pow(10, (-6)); 5 7188 79400 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 5689 76285 | evaporationRate = 0.2; 7 6533 78220 | e = 5; 8 6672 77285 | k = 9; 9 5736 77255 | MAX_CYCLES = 200;

10 7717 75060 | | Average 6442.20 77165.00 | Minimum 5689 75060 Maximum 7717 79400 Best Network:

Page 45: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test10-2-3.txt 1 5790 84145 | 2 6343 84955 | alpha = 4; 3 5696 84780 | beta = 2; 4 6306 86685 | Q = Math.pow(10, (-6)); 5 6701 85715 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 7470 88295 | evaporationRate = 0.2; 7 6336 85465 | e = 5; 8 6952 84245 | k = 9; 9 7885 86655 | MAX_CYCLES = 200;

10 7659 85785 | | Average 6713.80 85672.50 | Minimum 5696 84145 Maximum 7885 88295 Best Network:

Page 46: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test10-3-1.txt 1 5336 54755 | 2 4791 54010 | alpha = 4; 3 5218 53865 | beta = 2; 4 4078 52925 | Q = Math.pow(10, (-6)); 5 3898 52840 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 5313 54500 | evaporationRate = 0.2; 7 4039 54075 | e = 5; 8 4529 55035 | k = 9; 9 4769 50460 | MAX_CYCLES = 200;

10 4017 53455 | | Average 4598.80 53592.00 | Minimum 3898 50460 Maximum 5336 55035 Best Network:

Page 47: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test10-3-2.txt 1 4936 53145 | 2 4960 53545 | alpha = 4; 3 4985 54940 | beta = 2; 4 4827 54570 | Q = Math.pow(10, (-6)); 5 4396 52690 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 5238 53045 | evaporationRate = 0.2; 7 5012 53670 | e = 5; 8 4998 53045 | k = 9; 9 4096 53290 | MAX_CYCLES = 200;

10 4172 53250 | | Average 4762.00 53519.00 | Minimum 4096 52690 Maximum 5238 54940 Best Network:

Page 48: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test10-3-3.txt 1 4828 70490 | 2 6051 72105 | alpha = 4; 3 4753 69170 | beta = 2; 4 5105 66640 | Q = Math.pow(10, (-6)); 5 5157 70630 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 5961 69470 | evaporationRate = 0.2; 7 5300 68825 | e = 5; 8 5568 66775 | k = 9; 9 5971 70785 | MAX_CYCLES = 200;

10 5510 69125 | | Average 5420.40 69401.50 | Minimum 4753 66640 Maximum 6051 72105 Best Network:

Page 49: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test10-4-1.txt 1 7274 78825 | 2 6526 79885 | alpha = 4; 3 6239 78865 | beta = 2; 4 6199 78280 | Q = Math.pow(10, (-6)); 5 7191 81310 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 6707 78920 | evaporationRate = 0.2; 7 6021 79940 | e = 5; 8 7283 80630 | k = 9; 9 6589 80825 | MAX_CYCLES = 200;

10 6653 79385 | | Average 6668.20 79686.50 | Minimum 6021 78280 Maximum 7283 81310 Best Network:

Page 50: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test10-4-2.txt 1 6844 79605 | 2 6518 78335 | alpha = 4; 3 7003 79495 | beta = 2; 4 7067 79735 | Q = Math.pow(10, (-6)); 5 6377 79105 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 6058 78585 | evaporationRate = 0.2; 7 6280 81010 | e = 5; 8 6431 80260 | k = 9; 9 6444 79360 | MAX_CYCLES = 200;

10 7390 81130 | | Average 6641.20 79662.00 | Minimum 6058 78335 Maximum 7390 81130 Best Network:

Page 51: AntSynNet: Applying Ant Colony Optimization to the Network …people.scs.carleton.ca/~arpwhite/documents/honours... · 2003-12-20 · behavior can give rise, once employed by a colony

Trial Number Length Fitness | Test10-4-3.txt 1 7009 88695 | 2 6282 86665 | alpha = 4; 3 6284 88995 | beta = 2; 4 7289 91480 | Q = Math.pow(10, (-6)); 5 7401 91195 | initialPheromone = Math.pow(10, (-6)); // 10^(-6)6 6256 87260 | evaporationRate = 0.2; 7 7181 89535 | e = 5; 8 7338 92455 | k = 9; 9 7103 91035 | MAX_CYCLES = 200;

10 5940 88270 | | Average 6808.30 89558.50 | Minimum 5940 86665 Maximum 7401 92455 Best Network: