Mit Virtuellen Maschinen
PD Stefan Bosse
Universität Bremen - FB Mathematik und Informatik
PD Stefan Bosse - VPP - Zelluläre Automaten ::
Einführung von Grundprinzipien beim Entwurfs von VP Systemen
Zelluläre Automaten als einfache VP Architektur und Datenverarbeitungsmodell
PD Stefan Bosse - VPP - Zelluläre Automaten :: Grundprinzipen beim Entwurf von Verteilten Systemen
Nach Werner Vogel, Amazon [101]
PD Stefan Bosse - VPP - Zelluläre Automaten :: Grundprinzipen beim Entwurf von Verteilten Systemen
Zelluläre Automaten vereinen fast alle dieser Grundprinzipien.
PD Stefan Bosse - VPP - Zelluläre Automaten :: Parallele Semantik
mogill.github.io/ems/Docs/index.html Arten von Parallelität
PD Stefan Bosse - VPP - Zelluläre Automaten :: Parallele Semantik
PD Stefan Bosse - VPP - Zelluläre Automaten :: Parallele Semantik
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Zelluläre Automaten besitzen diskrete Zustände und ändern ihren Zustand nur zu diskreten Zeitpunkten
Einfachstes paralleles bzw. eher verteiltes Berechnungsmodell → Verteilter Speicher mit expliziter Kommunikation!
Netzwerk aus einfachen kommunizierenden Rechnern (Zellen)
Eine Zelle besitzt eine endliche (kleine) Menge von Zuständen σ = { s1,..,sn}.
Eine Berechnung mit Eingabe- und internen Daten (Perzeption und innerer Zustand) führt i.A. zu einer Änderung des Zustandes der Zelle → es gibt einen Zustandsübergang
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
σi,j(t+1)=Φ({σk,l(t)|σk,l(t)∈N})
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Hoekstra,SCSCA,2010 Zellulärer Automat als Netzwerk aus einfachen kommunizierenden Berechnungseinheiten
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Hoekstra,SCSCA,2010 Verschiedene Nachbarschaftsrelationen
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Hoekstra,SCSCA,2010 Anzahl der Regeln eines ZA in Abhängigkeit der Anzahl der Zustände pro Zelle und des Verbindungsgrades der Zellen
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Betrachtet man den ZA als Simulator:
Es gibt keinen gemeinsamen globalen Speicher; durch die Kommunikation mit den Nachbarn (ersteinmal nur lesender Zugriff auf Nachbarspeicher) erhält man lokalen Gruppenspeicher (glokaler Bereich)
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Eine Zelle des ZA ist ein endlicher Zustandsautomat
Ein Zustandsautomat hat einen Kontrollzustand γ und Datenzustand δ, d.h., σ(t)=⟨γ,δ⟩(t)
Rein "funktionale" Automaten besitzen nur einen Datenzustand der sich durch eine Übergangsfunktion schrittweise ändert (einfachste Zelle), d.h., σ(t)=δ(t)
σi,j(t+1)=f(σi,j(t))
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Nr=|σ||σ|n
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Die einzelnen Pixel des Bildes (Sensoren) sind den Zellen zugeordnet
Typische Operationen: Rauschunterdrückung, Kantenfilter, Histogrammberechnung usw.
Eine Zelle verändert immer nur seinen eigenen Datenwert durch Anwendung einfacher Regeln der Menge Φ mit Nachbarzellendaten
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Das Problem: Anders als bei klassischen Algorithmen sind diese Regeln nicht bekannt! Diese Transformationsregeln werden daher häufig gelernt (d.h. die geeigneten Regeln z.B. für Kantentendetektion aus der Menge aller möglichen Kombination von Pixeloperationen ausgewählt)
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Rosin,2002 Alle 51 möglichen Muster (Regeln) damit ein Pixel seinen Wert (binär, SW Bild) invertiert (Mooresche Nachbarschaft mit 8 Nachbarn); gezeigt sind nur zentrale schwarze Pixel, durch Invertierung weitere 51 Regeln für weiße Pixel
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Rosin,2002 Rauschunterdückung durch einen binären ZA: (a) Originalbild (b) Verrauschtes Bild (c) Entrauschtes Bild mit dem unten gezeigten Regelsatz
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Rosin,2002 Kantendetektion (oben,links) Originalbild (oben,rechts) Konv. Alg. (unten, links) CA - ein Zyklus ZA (unten rechts) zwei Zyklen CA
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Um einen ZA zu programmieren muss dessen Größe (Netzwerk Zeilen und Spalten), die Nachbarschaftsverbindungen (Reichweite und Richtung) sowie die Zustandsübergangsfunktion einer Zelle beschrieben werden
Visualisierung mit einer festen Kachelgitterwelt und einer Farbpalette
Die Zustandsübergangsfunktion ist dreischrittig und unterteilt (optional):
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
Es gibt einen Scheduler der die Zellen in einer bestimmten oder randomisierten Reihenfolge aktiviert
Dabei kann es bis zu drei Phasen geben:
Die Reihenfolge der Zellenaktivierungen kann aufgrund der Nachbarschaftskommunikation zu unetrschiedlichen globalen Zuständen führen!
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zelluläre Automaten
type model = { rows : number, columns : number, neighbors: number, palette : string [], cell : cell class, data? : {}, start : { name:string, distribution:number }}type cell class = { method before (), method activity (neighbors), method after (), method color () -> number, method initialize (x,y),}
PD Stefan Bosse - VPP - Zelluläre Automaten :: ZA Beispiel in Lua
local cell=CA.Cell({ name = "wall", size = 4, state = { open = 0, wasOpen = 0 }})function cell:before () self.wasOpen = self.openendfunction cell:activity (neighbors,x,y) local surrounding = self.ask(neighbors, 'count', 'wasOpen', true) self.open = (self.wasOpen and surrounding >= 4) or surrounding >= 6endfunction cell:initialize (x,y) self.open = self.data[y][x] > 0.40endfunction cell:color () return conditional(self.open,1,2)end
PD Stefan Bosse - VPP - Zelluläre Automaten :: ZA Beispiel in Lua
model = { rows = 100, columns = 100, neighbors = 8, palette = {'white','red'}, scheduler = 'UPRIGHT', -- two phase all before; all process cell = cell, data = math.matrix(100,100,math.random), start = { name = 'wall', distribution = 100 }}
PD Stefan Bosse - VPP - Zelluläre Automaten :: ZA Beispiel in Lua
PD Stefan Bosse - VPP - Zelluläre Automaten :: Zusammenfassung
Verteilte und Parallele Systeme (VP) basieren auf einem gemeinsamen Satz von Entwurfsregeln → KISS Prinzip!
Zelluläre Automaten sind ein Beispiel für eine parallele und verteilte Datenverarbeitungsarchitektur nach dem KISS Prinzip: