Package sfc_ft_a
Class GA
java.lang.Object
java.lang.Thread
sfc_ft_a.GA
- All Implemented Interfaces:
java.lang.Runnable
public class GA
extends java.lang.Thread
Genetic Algorithm
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
GA.supergenthread
Thread for the parallel computation of the GA within supergenerations loopNested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
-
Field Summary
Fields Modifier and Type Field Description (package private) boolean[]
activethreads
Check for active threads(package private) java.util.ArrayList<java.lang.Integer>
availnodes
available nodes; nodes capable to host the minimum capacity VNF of the chain(package private) Best
best
current best solution(package private) Best
best2
best solution produce by the supergenerations(package private) int
chromes
GA parameters(package private) services.VNFgraph
cnet
VNF graphint
cnodes
substrate nodes(package private) Codec
cod
Edge Vector codec(package private) double
crossprop
GA parameters(package private) int
d
iteration id(package private) java.lang.String
defsetup
GA default setup(package private) double
dif
population fitness range(package private) int
duration
embedded VNF life cycle duration(package private) java.util.ArrayList<int[]>
edgecharge
edge traffic load(package private) int
generations
GA parameters(package private) Mapping
m
mapping GA output(package private) double
max
min max population fitness(package private) int
maxnodeb
maximum node bandwidth; for FatTree it is 1Gbps(package private) double
min
min max population fitness(package private) double
mutprop
GA parameters(package private) java.util.ArrayList<int[]>
nodecharge
node capacity load(package private) double
normaliz
normalization factors for fitness function; set to 1.0 if not applicable(package private) double
normaliz2
normalization factors for fitness function; set to 1.0 if not applicable(package private) network.FTnetwork
pnet
substrate networkint
pnodes
VNF nodes(package private) Mapping[]
pop
arrays for storing populations(package private) Mapping[]
pop2
arrays for storing populations(package private) boolean
popgenheuristic
set true to use population generation heuristic(package private) Mapping[]
pops
arrays for storing populations(package private) Mapping[]
pops2
arrays for storing populations(package private) boolean
printmapping
print mappings on screen(package private) boolean
rejection
is last request rejected?(package private) Setup
setup
Running parameter setup(package private) int
supergen
GA parameters(package private) double
totalTime
runtimeFields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description private void
crossover()
Crossovervoid
genefitness(Mapping m)
compute fitness on given mappingvoid
genefitness_experimental1(Mapping m)
compute fitness on given mapping experimental version 1void
genefitness_experimental2(Mapping m)
compute fitness on given mapping experimental version 2void
genfit()
compute fitness for populationvoid
genfit1(Mapping[] somepop)
compute and store fitness on chromosomedouble
gettotaltime()
get runtimevoid
init()
initialize Genetic Algorithmvoid
init2()
execute genetic procedures for current generationboolean
isrejected()
is current request rejected?void
loadSetup(Setup s, java.lang.String dsetup)
load GA setupvoid
loadVNFgraph(services.VNFgraph vnf)
load VNF graphprivate void
multymutation(int d)
multiple point Mutationprivate void
mutation()
Mutationvoid
printgenes()
print populationvoid
printmapping(boolean b)
print mapping on screenvoid
printparams()
print GA parametersvoid
printsuper()
print super bestprivate void
range()
compute the range in the fitness of the populationprivate void
selection()
Selectionvoid
setduration(int d)
set SFC lifetimevoid
setid(int a)
set iteration idvoid
setpopgenheuristic(boolean popgenheur)
set true to enable population generation heuristic, set false to disablevoid
superbest(int in)
save generation best solutionvoid
superbest2(int in)
save supergeneration best solutionvoid
updatebest()
update currently best mappingvoid
updatetraffic()
update network traffic and CPU load if request is acceptedMethods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, run, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Field Details
-
cod
Codec codEdge Vector codec -
pop
Mapping[] poparrays for storing populations -
pop2
Mapping[] pop2arrays for storing populations -
pops
Mapping[] popsarrays for storing populations -
pops2
Mapping[] pops2arrays for storing populations -
m
Mapping mmapping GA output -
maxnodeb
int maxnodebmaximum node bandwidth; for FatTree it is 1Gbps -
cnet
services.VNFgraph cnetVNF graph -
pnet
network.FTnetwork pnetsubstrate network -
cnodes
public int cnodessubstrate nodes -
pnodes
public int pnodesVNF nodes -
d
int diteration id -
crossprop
double crosspropGA parameters -
mutprop
double mutpropGA parameters -
chromes
int chromesGA parameters -
supergen
int supergenGA parameters -
generations
int generationsGA parameters -
normaliz
double normaliznormalization factors for fitness function; set to 1.0 if not applicable -
normaliz2
double normaliz2normalization factors for fitness function; set to 1.0 if not applicable -
printmapping
boolean printmappingprint mappings on screen -
popgenheuristic
boolean popgenheuristicset true to use population generation heuristic -
duration
int durationembedded VNF life cycle duration -
min
double minmin max population fitness -
max
double maxmin max population fitness -
dif
double difpopulation fitness range -
best
Best bestcurrent best solution -
best2
Best best2best solution produce by the supergenerations -
rejection
boolean rejectionis last request rejected? -
totalTime
double totalTimeruntime -
nodecharge
java.util.ArrayList<int[]> nodechargenode capacity load -
edgecharge
java.util.ArrayList<int[]> edgechargeedge traffic load -
availnodes
java.util.ArrayList<java.lang.Integer> availnodesavailable nodes; nodes capable to host the minimum capacity VNF of the chain -
defsetup
java.lang.String defsetupGA default setup -
setup
Setup setupRunning parameter setup -
activethreads
boolean[] activethreadsCheck for active threads
-
-
Constructor Details
-
GA
public GA(int gens, int gnrs, int sgnrs, int cr, int mu)initialize GA with running parameters -
GA
public GA(network.FTnetwork pnet)initialize GA with substrate network object
-
-
Method Details
-
loadVNFgraph
public void loadVNFgraph(services.VNFgraph vnf)load VNF graph -
loadSetup
load GA setup -
setpopgenheuristic
public void setpopgenheuristic(boolean popgenheur)set true to enable population generation heuristic, set false to disable -
printparams
public void printparams()print GA parameters -
init
public void init()initialize Genetic Algorithm -
init2
public void init2()execute genetic procedures for current generation -
printmapping
public void printmapping(boolean b)print mapping on screen -
setduration
public void setduration(int d)set SFC lifetime -
setid
public void setid(int a)set iteration id -
isrejected
public boolean isrejected()is current request rejected? -
updatetraffic
public void updatetraffic()update network traffic and CPU load if request is accepted -
updatebest
public void updatebest()update currently best mapping -
superbest
public void superbest(int in)save generation best solution -
superbest2
public void superbest2(int in)save supergeneration best solution -
range
private void range()compute the range in the fitness of the population -
selection
private void selection()Selection -
crossover
private void crossover()Crossover -
multymutation
private void multymutation(int d)multiple point Mutation -
mutation
private void mutation()Mutation -
genfit
public void genfit()compute fitness for population -
genfit1
compute and store fitness on chromosome -
genefitness
compute fitness on given mapping -
genefitness_experimental1
compute fitness on given mapping experimental version 1 -
genefitness_experimental2
compute fitness on given mapping experimental version 2 -
printgenes
public void printgenes()print population -
gettotaltime
public double gettotaltime()get runtime -
printsuper
public void printsuper()print super best
-