Neuronale Netze und Fuzzy-Systeme

Softwarepraktika Wintersemester 2001/2002

zurück zur Hauptseite

Übersicht

Alle Themen können auch mehrfach vergeben werden. Allerdings sollte dann die Programmiersprache unterschiedlich sein oder, bei Verwendung einer anderen Programmiersprache als Java, für unterschiedliche Oberflächen (MS Windows oder Unix/X11) entwickelt werden, damit nicht so leicht eine Gruppe von einer anderen abschreiben kann.

zurück zur Hauptseite

Visualisierung von (Abhängigkeits-)Hypergraphen

(2-4 Personen)

Ein normaler Graph besteht bekanntlich aus einer Menge von Knoten und einer Menge von Kanten, die jeweils zwei Knoten miteinander verbinden. In einem Hypergraphen wird die Einschränkung, daß Kanten nur zwei Knoten verbinden können, fallengelassen. Man läßt Kanten zu, die eine beliebige Zahl von Knoten verbinden, sogenannte Hyperkanten.

In diesem Softwarepraktikum soll ein Visualisierungsprogramm für Hypergraphen erstellt werden. D.h., zu einer Eingabe, die aus Knotenlisten besteht, soll der zugehörige Hypergraph in möglichst übersichtlicher Weise angezeigt werden.

Weitergehendes Ziel ist es, die Abhängigkeitshyperkanten, die von dem Assoziationsregel-Lernprogramm apriori gelernt werden können, einem Benutzer in übersichtlicher Weise präsentieren zu können.

Vergabe: Noch nicht vergeben.

zurück zum Seitenanfang

Baumerweiterter naiver Bayes-Klassifikator

(2-4 Personen)

Ein naiver Bayes-Klassifikator ist ein auf der Wahrscheinlichkeitstheorie und Statistik aufbauender Klassifikator, also ein Programm, mit dem Objekte oder Fälle aufgrund ihrer Eigenschaften einer Klasse zugeordnet werden können. Genaueres zu naiven Bayes-Klassifikatoren findet man in diesem Aufsatz: nbplugin.ps.gz nbplugin.pdf.

Ein Nachteil eines naiven Bayes-Klassifikators ist, daß er sehr starke (naive) Unabhängigkeitsannahmen macht. Um diese Schwäche zu verringern, wurde von Friedman und Goldszmidt in diesem Aufsatz eine Verbesserung vorgeschlagen, der sogenannte baumerweiterte naive Bayes-Klassifikator (tree-augmented naive Bayes classifier, TAN).

In diesem Softwarepraktikum soll ein Lernprogramm für einen baumerweiterten naiven Bayes-Klassifikator erstellt werden. Das Programm sollte mit einer graphischen Benutzeroberfläche ausgestattet sein, die es erlaubt, Lern- und Testdaten aus Dateien zu laden, aus diesen Daten einen Klassifikator zu lernen bzw. ihn auf Daten auszuführen, und den Klassifikator anzuzeigen (Struktur und Wahrscheinlichkeitsverteilungen).

Vergabe: Noch nicht vergeben.

zurück zum Seitenanfang

Demonstrationsprogramm für Hopfield-Netze

Hopfield-Netze sind eine spezielle Form künstlicher neuronaler Netze, die sich zur Mustererkennung und zum Lösen von Optimierungsproblemen einsetzen lassen. Für beide Anwendungsfälle soll ein Demonstrationsprogramm entwickelt werden (zwei verschiedene Softwarepraktika).

Mustererkennung: Hopfield-Netze bieten eine einfache Möglichkeit, auch gestörte Formen bekannter Muster zu erkennen bzw. gestörte Eingaben zu korrigieren. Das zu entwickelnde Demonstrationsprogramm soll diese Eigenschaft verdeutlichen, indem ein Hopfield-Netz zum Erkennen zweidimensionaler Pixelmuster (z.B. Buchstaben, Zahlen u.ä.) implementiert wird. Auf einer graphischen Benutzeroberfläche soll ein Benutzer zunächst in einem Pixelraster die zu erkennenden Muster angeben und im Hopfield-Netz abspeichern können. Anschließend soll die Möglichkeit bestehen, weitere Muster (z.B. die abgespeicherten in gestörter Form) einzugeben und das Hopfield-Netz auszuführen, so daß das am besten passende abgespeicherte Muster gefunden wird.

Lösen von Optimierungsproblemen: Bei asynchroner Aktualsierung der Aktivierungen der Neuronen eines Hopfield-Netzes konvergiert es immer in einen stabilen Zustand. Der Beweis dieser Eigenschaft wird über eine Energiefunktion geführt, die durch die Aktualisierung der Aktivierungen minimiert wird. Man kann daher Hopfield-Netze auch zur Optimierung einsetzen, indem man die zu optimierende Funktion so umschreibt, daß sie als Energiefunktion eines Hopfield-Netzes gedeutet werden kann. Aus dieser Funktion lassen sich dann die Parameter des benötigten Hopfield-Netzes ablesen. In diesem Softwarepraktikum soll ein Hopfield-Netz zur Lösung des Problems des Handlungsreisenden implementiert werden. Die Lage der Städte soll ein Benutzer auf einer graphischen Oberfläche eingeben können.

Vergabe: Noch einmal in C/C++ für MS Windows vergeben.

zurück zum Seitenanfang

© 2001 Christian Borgelt
Last modified: Tue May 21 18:55:27 MEST 2002