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) classGA.supergenthreadThread 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[]activethreadsCheck for active threads(package private) java.util.ArrayList<java.lang.Integer>availnodesavailable nodes; nodes capable to host the minimum capacity VNF of the chain(package private) Bestbestcurrent best solution(package private) Bestbest2best solution produce by the supergenerations(package private) intchromesGA parameters(package private) services.VNFgraphcnetVNF graphintcnodessubstrate nodes(package private) CodeccodEdge Vector codec(package private) doublecrosspropGA parameters(package private) intditeration id(package private) java.lang.StringdefsetupGA default setup(package private) doubledifpopulation fitness range(package private) intdurationembedded VNF life cycle duration(package private) java.util.ArrayList<int[]>edgechargeedge traffic load(package private) intgenerationsGA parameters(package private) Mappingmmapping GA output(package private) doublemaxmin max population fitness(package private) intmaxnodebmaximum node bandwidth; for FatTree it is 1Gbps(package private) doubleminmin max population fitness(package private) doublemutpropGA parameters(package private) java.util.ArrayList<int[]>nodechargenode capacity load(package private) doublenormaliznormalization factors for fitness function; set to 1.0 if not applicable(package private) doublenormaliz2normalization factors for fitness function; set to 1.0 if not applicable(package private) network.FTnetworkpnetsubstrate networkintpnodesVNF nodes(package private) Mapping[]poparrays for storing populations(package private) Mapping[]pop2arrays for storing populations(package private) booleanpopgenheuristicset true to use population generation heuristic(package private) Mapping[]popsarrays for storing populations(package private) Mapping[]pops2arrays for storing populations(package private) booleanprintmappingprint mappings on screen(package private) booleanrejectionis last request rejected?(package private) SetupsetupRunning parameter setup(package private) intsupergenGA parameters(package private) doubletotalTimeruntimeFields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY -
Constructor Summary
-
Method Summary
Modifier and Type Method Description private voidcrossover()Crossovervoidgenefitness(Mapping m)compute fitness on given mappingvoidgenefitness_experimental1(Mapping m)compute fitness on given mapping experimental version 1voidgenefitness_experimental2(Mapping m)compute fitness on given mapping experimental version 2voidgenfit()compute fitness for populationvoidgenfit1(Mapping[] somepop)compute and store fitness on chromosomedoublegettotaltime()get runtimevoidinit()initialize Genetic Algorithmvoidinit2()execute genetic procedures for current generationbooleanisrejected()is current request rejected?voidloadSetup(Setup s, java.lang.String dsetup)load GA setupvoidloadVNFgraph(services.VNFgraph vnf)load VNF graphprivate voidmultymutation(int d)multiple point Mutationprivate voidmutation()Mutationvoidprintgenes()print populationvoidprintmapping(boolean b)print mapping on screenvoidprintparams()print GA parametersvoidprintsuper()print super bestprivate voidrange()compute the range in the fitness of the populationprivate voidselection()Selectionvoidsetduration(int d)set SFC lifetimevoidsetid(int a)set iteration idvoidsetpopgenheuristic(boolean popgenheur)set true to enable population generation heuristic, set false to disablevoidsuperbest(int in)save generation best solutionvoidsuperbest2(int in)save supergeneration best solutionvoidupdatebest()update currently best mappingvoidupdatetraffic()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, yieldMethods 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
-