This web page provides the implementation details for the project in genetic programming and protocol construction for the degree of Master of Science in Distributed Interactive Systems. The separate programs for each of the separate parts of the implementation are listed as separate pages. They are grouped together in relation to their description in the dissertation. Therefore, all files based in one chapter are placed together.
Chapter 2
The genetic program for generating the program for y= x+(x*x)+(x*x*x)+(x*x*x*x)
is implemented using the following four files:
Filename |
Description |
|
Interface
for using the genetic program
|
|
|
Fitness
function
|
|
|
Sets
the parameters of the genetic program run
|
|
|
Set
the parameters for initialising the genetic program
|
File |
Description |
|
Defines the UDP genetic programming primitive for
use in the terminal set
|
|
|
Defines the NAKCK genetic programming primitive
for use in the terminal set
|
|
|
Defines the UNICAST genetic programming primitive
for use in the terminal set
|
|
|
Defines the GMS genetic programming primitive for
use in the terminal set
|
|
|
Defines the FLUSH genetic programming primitive
for use in the terminal set
|
|
|
Defines the FD genetic programming primitive for
use in the terminal set
|
|
|
Defines the FD_RAND genetic programming primitive
for use in the terminal set
|
|
|
Defines the MACK genetic programming primitive for
use in the terminal set
|
|
|
Defines the MNAK genetic programming primitive for
use in the terminal set
|
|
|
Defines the PING genetic programming primitive for
use
in the terminal set
|
|
|
Defines the STABLE genetic programming primitive
for use in the terminal set
|
|
|
Defines the VIEW_ENFORCER genetic programming primitive
for use in the terminal set
|
|
|
Defines the TOTAL genetic
programming primitive for use in the terminal set
|
One function class needs to be created for appending stack layers together (:). The code for this is found in the following:
File |
Description |
|
Interface for ProtocolImpl object
|
|
|
Implementation of Object for providing test methods
|
|
|
Implementation of Server on which the object is
created
|
|
Filename
|
Description
|
|
Main interface for the genetic
program – allows Population and generation parameters to be altered on
start up
|
|
|
Fitness function for measuring how well the generated
stacks perform
|
|
|
Set the parameters of the GP run – crossover prob.
Mutation probability etc.
|
|
|
Create the initial properties of the GP – terminal
set, function set
|
The fitness function calls two methods from the ProtocolImpl
method above. However, these methods use extra servers and objects to create
a Pt2Pt application. A sending object and a receiving object. These are
implemented using the following:
Filename |
Description |
|
Interface for SendingImpl object
|
|
|
Implementation of Object for providing sending methods
for the two experiments
|
|
|
Implementation of a server on which the SendingImpl
object is created
|
|
|
Interface for ReceivingImpl object
|
|
|
Implementation of Object for receiving methods for
the first experiment
|
|
|
Implementation of a server on which the ReceivingImpl
object is created
|
Chapter 6 – Reliable Ordered
Multicast Experiment
|
Filename
|
Description
|
|
Main interface for the genetic
program – allows Population and generation parameters to be altered on
start up
|
|
|
Fitness function for measuring how well the generated
stacks perform
|
|
|
Set the parameters of the GP run – crossover prob.
Mutation probability etc.
|
|
|
Create the initial properties of the GP – terminal
set, function set
|
The tests run on the basic distributed system that uses the ProtocolImpl
code and the SendingImpl code. However ReveivingImpl is replaced by the
MulticastImpl
object which is created using the following files:
Filename |
Description |
|
Interface describing methods on the remote object
|
|
|
Implementation of the MulticastImpl object and the
four main methods it provides
|
|
|
Server on which the multicast object is created
|
The final piece of code used in the tests was the creation of the JUMBLE
micro-protocol, whose code is found here: