schmitzm.test.dynamic
Class SingleCellularAutomaton
java.lang.Object
AbstractNamedObject
edu.bonn.xulu.model.AbstractXuluModel
edu.bonn.xulu.model.AbstractStepModel
schmitzm.test.dynamic.SingleCellularAutomaton
- All Implemented Interfaces:
- StepModel, XuluModel
public class SingleCellularAutomaton
- extends AbstractStepModel
@todo Haupt-Dokumentation erstellen
CA, der die Expansion eines LUC-Typs simuliert:
- ein Startpunkt S
- ein LUC-Typ U
- ein Liste D[.] von Bedarfen (#Zellen) pro Modell-Schritt
- Anzahl T zu modellierender Schritte
- ein Raster mit der initialisen LUC
- ein Ausgabe-Raster (optional)
- Schwellwert MIN_U, ab wann eine Zelle fuer den LUC-Typ U geeignet ist
- In jedem Zeitschritt wird iteriert bis Bedarf gedeckt ist
- In jeder Iteration wird jede Zelle des Regionen-Rand (initial die
8 Zellen um den Startpunkt) betrachtet und bewertet (durch die
Methode
getPreferenceValue(Point,int)
).
- Alle fuer U in Frage kommenden Zellen werden (samt dem Bewertungswert)
in einer (sortierten) Liste gespeichert
- Nachdem alle Zellen im Rand betrachtet wurden, werden solange die
geeignetsten umgewandelt, bis der Bedarf gedeckt ist.
- Fuer jede umgewandelte Zelle werden die 8 umgebenden Zellen in den
Rand aufgenommen, sofern sie noch nicht durch das Modell umgewandelt
wurden (nicht: sofern sie nicht bereits den Typ U hat! Sonst kann es
zu einem Deadlock kommen, wenn ein Bereich erreicht wird, der bereits
in der initialen LUC den Typ U besitzt!)
- Version:
- 1.0
- Author:
- Martin Schmitz (University of Bonn/Germany)
Method Summary |
double |
getPreferenceValue(Point p,
int luc)
|
void |
performModelDispose()
Implementiert die eigentliche Freigabe der Modell-Ressourcen, indem alle
internen Modell-Ressourcen aus dem Speicher geloescht und die
externen wieder frei gegeben werden. |
void |
performModelInit()
Muss die eigentliche Initialisierung des Modells implementieren und
alle internen Modell-Ressourcen auf einen Ausgangszustand
zurueck setzen, so dass das Modell komplett neu gestartet werden
kann. |
void |
performModelStep(int stepNo)
Modelliert genau einen Zeitschritt. |
Methods inherited from class edu.bonn.xulu.model.AbstractXuluModel |
addModelListener, checkBreakingCommands, determineCaption, disposeModel, fireModelDisposed, fireModelEvent, fireModelInitialised, fireModelStarted, fireModelStopped, getContentManager, getEvents, getModelSpecificGUI, getResourceProvider, getStatusOut, initModel, isDisposed, isInitialised, isRunning, isStopped, performError, releaseAccess, removeModelListener, resetCaptions, setStatusOut, startModelling, stopModelling |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface edu.bonn.xulu.model.XuluModel |
addModelListener, disposeModel, getContentManager, getEvents, getModelSpecificGUI, getResourceProvider, getStatusOut, initModel, isDisposed, isInitialised, isRunning, isStopped, performError, removeModelListener, setStatusOut, startModelling, stopModelling |
baseLUC
protected WritableGrid baseLUC
outLUC
protected WritableGrid outLUC
areaMapping
protected WritableGrid areaMapping
demand
protected ListPropertyReadAccess demand
SingleCellularAutomaton
public SingleCellularAutomaton()
performModelInit
public void performModelInit()
- Description copied from class:
AbstractXuluModel
- Muss die eigentliche Initialisierung des Modells implementieren und
alle internen Modell-Ressourcen auf einen Ausgangszustand
zurueck setzen, so dass das Modell komplett neu gestartet werden
kann.
- Specified by:
performModelInit
in class AbstractXuluModel
performModelDispose
public void performModelDispose()
- Description copied from class:
AbstractXuluModel
- Implementiert die eigentliche Freigabe der Modell-Ressourcen, indem alle
internen Modell-Ressourcen aus dem Speicher geloescht und die
externen wieder frei gegeben werden.
- Specified by:
performModelDispose
in class AbstractXuluModel
performModelStep
public void performModelStep(int stepNo)
- Modelliert genau einen Zeitschritt.
- Specified by:
performModelStep
in interface StepModel
- Specified by:
performModelStep
in class AbstractStepModel
- Parameters:
stepNo
- Nummer des Zeitschritts
getPreferenceValue
public double getPreferenceValue(Point p,
int luc)