Unscharfe Mondlandung

Die Fuzzylogik ist ein Bereich der künstlichen Intelligenz, welcher vor allem in Expertensystemen und der Steuerungstechnik eingesetzt wird. Im Rahmen der Vorlesung über die künstliche Intelligenz habe ich ein solches System implementiert – wenn auch in vereinfachter Form. 

Das Spiel

Die Abbildungen unten zeigen das Spiel, welches von der KI gespielt werden soll. Mithilfe des roten Balkens auf der linken Seite lässt sich der Schub erhöhen, so kann die Rakete abgebremst werden. Diesen Hebel bedient normalerweise ein menschlicher Spieler. Da ich jedoch den Quelltext vorliegen habe, konnte das Spiel entsprechend angepasst werden, sodass das Spiel durch ein Programm gesteuert wird.

Das Spiel stammt aus dem Buch "Hello World!: Programmieren für Kids und andere Anfänger" von Warren D. Sande & Carter Sande. In dem Projekt wurde es von mir modifiziert.

Das System

Ein Fuzzysystem besteht aus Ein- und Ausgabemengen, einem Ag­gre­ga­tor und einem Mechanismus zur Defuzzyfizierung. Die Mengen in einem Fuzzysystem sind nicht mit Mengen aus der klassischen Mengenlehre zu verwechseln. In einem Fuzzysystem sollen unscharfe Aussagen wie "bei niedriger Höhe, muss die Rakete stark abgebremst werden" in ein Regelsystem übersetzt werden. Dies ist mit reiner Logik nicht oder nur sehr umständlich umsetzbar. 

Wie das System nun die Bremskraft bestimmt, hängt von der Konfiguration der Ein- und Ausgabemengen ab. Kurzgesagt: Für eine gegebene Höhe werden die Schnittpunkte mit den Eingabemengen bestimmt. Diese werden auf die Ausgabemengen übertragen. Mit diesen Schnittpunkten können die Ausgabemengen aggregiert werden, sodass die graue Fläche (s. erste Abbildung) entsteht. Über das Schwerpunktverfahren (o.ä.) wird diese Fläche in einen konkreten Wert übersetzt, mit dem die Rakete gesteuert (bzw. abgebremst) werden kann.

Eine genaue Beschreibung des Projekts und es Fuzzysystem ist auf Github zu finden:

https://github.com/tpoerschke/FuzzyMoonLanding

Programmierung 04. November 2021

Künstliche Intelligenz, Python, Fuzzy