org.dbe.eve.simulator
Class OptimisationSupervisor

java.lang.Object
  extended by java.lang.Thread
      extended by org.dbe.eve.simulator.OptimisationSupervisor
All Implemented Interfaces:
java.lang.Runnable, EventListener, Singleton

public class OptimisationSupervisor
extends java.lang.Thread
implements Singleton, EventListener

Author:
tkurz

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
private  java.lang.String algorithmName
           
(package private)  boolean doNotExit
           
private  int exchangePairsOfIndividualsInSubset
           
private  double GAinitPop
           
 int GAiterations
           
private  int gPopSize
           
(package private)  java.lang.ThreadGroup group
           
(package private) static org.apache.log4j.Logger logger
           
private  long optimisationContainerId
           
private  int optimizeXIndividualsInPopulation
           
private  int populationSize
           
private  int RUNS
           
private  boolean showComparisonGraph
           
private static OptimisationSupervisor singleSupervisor
           
private  uchicago.src.sim.analysis.Plot statisticPlot
           
private  java.util.HashMap threadMap
           
private  double timeout
           
private  double UMDAinitPop
           
private  int uPopSize
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
private OptimisationSupervisor()
           
 
Method Summary
 void addGa(LocalServicePool decentralSp, LocalServicePool centralSp, DemandedService request, SME remitterSME)
           
 java.lang.String getAlgorithm()
           
 int getExchangePairsOfIndividualsInSubset()
           
 double getGAinitPop()
           
 int getGAiterations()
           
 int getgPopSize()
           
static OptimisationSupervisor getInstance()
           
 int getOptimizeXIndividualsInPopulation()
           
 int getPopulationSize()
           
 int getRUNS()
           
 double getTimeout()
           
 double getUMDAinitPop()
           
 int getuPopSize()
           
private  void initStatisticPlot()
          create a new statistic plot
private  AbstractAlgorithm newAlgorithm(LocalServicePool sp, DemandedService request)
           
 void pushResult(AbstractAlgorithm alg, java.util.ArrayList result)
           
 void removeOptimisationContainer(long toRemove)
           
 void reset()
           
 void run()
           
 void setAlgorithm(java.lang.String value)
           
 void setExchangePairsOfIndividualsInSubset(int value)
           
 void setGAinitPop(double value)
           
 void setGAiterations(int value)
           
 void setgPopSize(int value)
           
 void setOptimizeXIndividualsInPopulation(int value)
           
 void setPopultationSize(int value)
           
 void setRUNS(int value)
           
 void setShowComparisonGraph(boolean value)
           
 void setTimoeut(double value)
           
 void setUMDAinitPop(double value)
           
 void setuPopSize(int value)
           
private  void writeStatistics(OptimisationContainer container)
          write statistic to file
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

logger

static org.apache.log4j.Logger logger

singleSupervisor

private static OptimisationSupervisor singleSupervisor

group

java.lang.ThreadGroup group

doNotExit

boolean doNotExit

threadMap

private java.util.HashMap threadMap

optimisationContainerId

private long optimisationContainerId

statisticPlot

private uchicago.src.sim.analysis.Plot statisticPlot

populationSize

private int populationSize

showComparisonGraph

private boolean showComparisonGraph

optimizeXIndividualsInPopulation

private int optimizeXIndividualsInPopulation

exchangePairsOfIndividualsInSubset

private int exchangePairsOfIndividualsInSubset

RUNS

private int RUNS

uPopSize

private int uPopSize

UMDAinitPop

private double UMDAinitPop

gPopSize

private int gPopSize

GAinitPop

private double GAinitPop

GAiterations

public int GAiterations

timeout

private double timeout

algorithmName

private java.lang.String algorithmName
Constructor Detail

OptimisationSupervisor

private OptimisationSupervisor()
Method Detail

getInstance

public static OptimisationSupervisor getInstance()

run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

newAlgorithm

private AbstractAlgorithm newAlgorithm(LocalServicePool sp,
                                       DemandedService request)

addGa

public void addGa(LocalServicePool decentralSp,
                  LocalServicePool centralSp,
                  DemandedService request,
                  SME remitterSME)

removeOptimisationContainer

public void removeOptimisationContainer(long toRemove)
Specified by:
removeOptimisationContainer in interface EventListener

pushResult

public void pushResult(AbstractAlgorithm alg,
                       java.util.ArrayList result)
Specified by:
pushResult in interface EventListener

initStatisticPlot

private void initStatisticPlot()
create a new statistic plot


writeStatistics

private void writeStatistics(OptimisationContainer container)
write statistic to file


reset

public void reset()

getPopulationSize

public int getPopulationSize()

setPopultationSize

public void setPopultationSize(int value)

getOptimizeXIndividualsInPopulation

public int getOptimizeXIndividualsInPopulation()

setOptimizeXIndividualsInPopulation

public void setOptimizeXIndividualsInPopulation(int value)

getExchangePairsOfIndividualsInSubset

public int getExchangePairsOfIndividualsInSubset()

setExchangePairsOfIndividualsInSubset

public void setExchangePairsOfIndividualsInSubset(int value)

getRUNS

public int getRUNS()

setRUNS

public void setRUNS(int value)

setShowComparisonGraph

public void setShowComparisonGraph(boolean value)

getuPopSize

public int getuPopSize()

setuPopSize

public void setuPopSize(int value)

getUMDAinitPop

public double getUMDAinitPop()

setUMDAinitPop

public void setUMDAinitPop(double value)

getgPopSize

public int getgPopSize()

setgPopSize

public void setgPopSize(int value)

getGAinitPop

public double getGAinitPop()

setGAinitPop

public void setGAinitPop(double value)

getGAiterations

public int getGAiterations()

setGAiterations

public void setGAiterations(int value)

getTimeout

public double getTimeout()

setTimoeut

public void setTimoeut(double value)

getAlgorithm

public java.lang.String getAlgorithm()

setAlgorithm

public void setAlgorithm(java.lang.String value)