Flussdiagramm des Programms LINASSOZ.C






Nach Aufruf des Programms wird die C-Funktion "veraendern" gestartet; durch sie wird die Anzahl der Ein- und Ausgabe-Neuronen abgefragt und alle veränderlichen Netzparameter mit Null initialisiert. Daran anschließend meldet sich das Programm durch den Ausdruck der Zeile
       lernen ausfuehren zeigen veraendern speichern einlesen beenden:
Es erwartet nun die Eingabe des Anfangsbuchstabens der jeweils anzustoßenden Routine, um dann entsprechend zu verzweigen, also z. B. "l (ENTER)" für den Start der Lern-Regel (hier: Hebb-Lernregel) oder "a (ENTER)", um im Ausführ-Modus für einen einzugebenden Eingabevektor den jeweiligen Ausgabevektor zu berechnen. Entsprechend liefert "z (ENTER)" die Bildschirmausgabe der aktuellen Gewichte und Schwellwerte, "v (ENTER)" die Option, auch bei bereits laufendem Programm das Netz neu zu konfigurieren, "s (ENTER)" das Abspeichern der Netzparameter, Gewichte und Schwellwerte in eine zu benennende Datei sowie schließlich "e (ENTER)" das Einlesen von zuvor abgespeicherten Netzparametern, Gewichten und Schwellwerten aus einer Datei. Mit "b (ENTER)" wird im eigentlichen Sinne keine C-Funktion aufgerufen, sondern lediglich das Programm beendet. Basierend auf dem Flussdiagramm sollte es keine Schwierigkeiten machen, auch das C-Programm selbst in seinem modularen Aufbau zu verstehen und prinzipiell vom Ablauf her zu durchschauen. Von besonders zentraler Bedeutung in Hinblick auf ihre konkrete Realisierung sind dabei die Funktionen "lernen" (Hebb-Lern-Modus) und "ausfuehren" (Ausführ-Modus für zweischichtige Feed-Forward-Netze) sowie die implizit benutzte Funktion "T" (Transferfunktion, hier die Identität). Die übrigen Funktionen (neben den bereits beschriebenen Funktionen kommen noch zwei Leseroutinen für Ein- und Ausgabeassoziationen hinzu, "lese_x" und "lese_y", die -- wie auch die Transferfunktion -- nur implizit benutzt werden) erleichtern lediglich den praktischen Umgang mit dem Netz und sind insofern nur von marginalem Interesse. Weitere Details entnehme man dem nachfolgenden Listing, wobei man beim Lesen am Ende mit dem eigentlichen Hauptprogramm "main" beginnen möge und stets das Flussdiagramm im Auge behalten sollte.



Burkhard Lenze
Im Februar 2009