Flussdiagramm des Programms HOPSI-PI.C






Wir beginnen die Lösung der Aufgabe mit einem Blick auf das Flussdiagramm des Programms HOPSI-PI.C. Man erkennt, dass bei diesem Programm wieder auf die C-Funktionen "zeigen", "speichern" und "einlesen" verzichtet wurde. Dies liegt darin begründet, dass das Zeigen, Speichern und Einlesen der Gewichte des Sigma-Pi-Hopfield-Netzes 2-ter Ordnung zwar prinzipiell möglich ist, allerdings relativ speicherintensiv ist und bei Visualisierung wenig hilfreiche Informationen entstehen. Aus diesem Grunde wurde auf die entsprechenden Routinen verzichtet.
Mit Blick auf das Listing des Programms HOPSI-PI.C ist wesentlich, dass die Gewichte bis zur Ordnung 2 im Hebb-Lern-Modus bestimmt werden (Berücksichtigung multiplikativer Interferenzen mit bis zu drei Faktoren) und diese Gewichte höherer Ordnung natürlich auch im Ausführ-Modus eingesetzt werden müssen. Vergleicht man die dazu implementierte C-Funktion "ausfuehren" mit der in Kapitel 5 in Definition 5.3.3 gegebenen Quasi-PASCAL-Notation des Ausführ-Modus, so sollte auffallen, dass die Summation über die hier maximal dreielementigen Teilmengen R in {1,2,...,n} mit j in R ersetzt wird durch die geschachtelte Summation über j=1...n, i=1...n und k=1...i-1. Dabei fließt ein, dass in der C-Funktion "veraendern" zunächst alle Gewichte mit Null initialisiert werden. Da in der C-Funktion "lernen" im Rahmen des Hebb-Lern-Modus nicht auf ww[i][j] mit i=j und www[i][j][k] mit i=j oder i=k oder j=k zugegriffen wird, bleiben diese Gewichte auch auf Null gesetzt und haben keinen Einfluss in der C-Funktion "ausfuehren". Desweiteren wird in der C-Funktion "lernen" durch Symmetrisierung dafür gesorgt, dass stets ww[i][j]=ww[j][i] sowie www[i][j][k]=www[i][k][j]=www[j][i][k]=www[j][k][i]=www[k][j][i]=www[k][i][j] gilt. Lässt man auch diese Information einfließen, so ist klar, dass die C-Funktion "ausfuehren" exakt den Ausführ-Algorithmus aus Definition 5.3.3 für maximal dreielementige Teilmengen R aus {1,2,...,n} realisiert. Ansonsten ist das Programm -- bis auf einige Ausdünnungen -- in vielen Punkten mit dem Programm KOSKOBIL.C identisch und sollte deshalb keine Schwierigkeiten bereiten. Der wesentliche Unterschied besteht lediglich darin, dass es für dasselbe autoassoziative Problem nur die Hälfte an Neuronen -- allerdings Sigma-Pi-Neuronen -- benötigt.



Burkhard Lenze
Im Februar 2009