Vidas ist der Nachbau eines Assoziativspeichers, das Originalprogramm Vidas wurde von Andreas Dierks geschrieben. Im Rahmen der Vorlesung „Assoziative Programmierung I“ an der Universität Hildesheim habe ich zusammen mit zwei Kommilitonen das Ur-Vidas in Java nachprogrammiert. Ein Assoziativspeicher ist eine Alternative zu herkömmlichen Computern, die auf 0 und 1 basieren. Stattdessen ist ein Assoziativspeicher eine Nachbildung eines neuronalen Netzwerkes und funktioniert eher wie ein Gehirn. Vidas ist die Nachbildung eines solchen Speichers, verfügt allerdings nicht über alle Funktionen des aktuellen Original-Vidas (das mittlerweile eine eigentständige IDE mit einer eigenen Sprache ist). Der Speicher funktioniert in groben Worten wie folgt: Es wird eine Datei eingelesen (in diesem Beispiel eine Text-Datei mit circa 300 Städtenamen), ein Kodierer verarbeitet jeden Namen und speichert ihn im Assoziativspeicher ab. An diesen Speicher können dann Anfragen gestellt werden, der Vorteil des Assoziativspeichers ist seine hohe Fehlertoleranz.

 

Vidas Main GUI

Das Bild unten zeigt die Benutzeroberfläche von Vidas nach dem Einlesen der Liste. Der große Bereich ist eine grafische Darstellung des Assoziativspeichers, in dem alle Namen gespeichert wurden. Mit der Maus kann man sich entsprechende Datenpaare anzeigen lassen (siehte die Statusleiste am unteren Bildschirmrand). über die Abfrage kann der Speicher abgefragt werden und zeigt dann die Ergebnisse in einer Liste an. Da ein Assoziativspeicher über Schwellvektoren arbeitet, gibt es nicht nur einen 100%-Treffer, sondern auch der Anfrage ähnlich aussehende Städte. Realisiert wurde das ganze über Java, das Programm läuft also plattformunabhängig. Es lassen sich verschiedene Informationen über die Matrix abrufen oder die ähnlichkeit von Objekten unterschiedlich Berechnen (DICE und Einfaches Überdeckungsmaß).

Vidas GUI Stören

 

Die Fehlertoleranz lässt sich mit den Werkzeugen überprüfen. So gibt es Werkzeuge um gezielt einzelne Speicherbits zu zerstören, aber auch Funktionen die 5% der Matrix umdrehen oder große Bereiche auslöschen. Mit den Testfunktionen lässt sich der Speicher danach überprüfen. Im Bild unten ist der 5%-Störer und ein Kreis mit 1 angewendet worden, wie im Ergebnis zu erkennen ist, wird die Abfrage noch gefunden, aber die Güte ist gesunken.