\section{Das NEFCON-Model} Das NEFCON-Model basiert auf dem dreischichtigen, generischen Fuzzy-Perzeptron. Dabei wird der Ansatz des reinforcement learnings\cite{Nue99} verwendet. Das heißt, dass Regeln bzw. Fuzzy-Mengen je nach Güte belohnt oder bestraft werden. Dabei kann das NEFCON-Model zwei Problemstellungen lösen. Zum einen kann es eine Regelbasis aufbauen. Voraussetzung ist hierbei, dass die Fuzzy-Mengen korrekt und vollständig sind. Zum anderen kann es dazu verwendet werden Fuzzy-Mengen zu lernen, wobei eine vollständige Regelbasis vorausgesetzt wird. Zusätzlich ist es nötig, dass die Anzahl der Fuzzy-Mengen bekannt ist. \subsection{Erlernen einer Regelbasis} Die Regelbasen, die optimiert werden sollen, lassen sich in drei Klassen unterteilen. Regelbasen die bisher leer sind, Regelbasen die vollständig sind im Sinne aller kombinatorischen Möglichkeiten und Regelbasen, die zufällig generiert wurden. Bisher ist allerdings nur das Lernen durch leere und volle Regelbasen umgesetzt worden. Vgl. \cite{Nue99} Wird eine leere Regelbasis verwendet, werden zu Beginn alle kombinatorischen Mög"-lich"-keiten generiert und anschließend Regeln mit falschem Vorzeichen entfernt. Im Grunde erhält man dadurch also auch eine volle Regelbasis und somit lässt sich nun für beide möglichen Vorgehensweisen der gleiche Ablauf definieren. Die anschließende Vorgehensweise lässt sich nun in zwei Phasen aufteilen. In Phase 1 wird eine feste Periode oder Anzahl an Iterationen definiert und dabei werden Regeln entfernt, wenn diese nicht zur optimalen Ausgabe passen. In Phase 2 werden Regeln, die die gleiche Prämisse enthalten in Regelgruppen zusammengeführt um anschließend zufällig eine Regel der Regelgruppe auszuwählen. Jede dieser ausgewählten Regeln wird anhand ihrer Gewichtung ein Fehleranteil am Ergebnis berechnet. Anschließend werden alle Regeln, bis auf die mit dem kleinsten Fehleranzahl aus der Regelgruppe entfernt, wie auch Regeln die selten verwendet wurden. \subsubsection{Beispiel des Erlernens einer Regelbasis} Um das Lernverfahren zu veranschaulichen wird ein Beispiel verwendet das aus \cite{Lip06} entnommen ist. Dabei wird in diesem Beispiel ein inverses Pendel verwendet, dass sich auf einem Wagen bewegt. Ziel ist es nun geeignete Regeln zu finden, die das Pendel bei der Fahrt des Wagens ausbalanciert und es somit nicht umkippt. Die durch dieses Lernverfahren entstandenen Regeln sind wie folgt: \begin{center} \includegraphics[width=15cm]{img/nefconexample} \end{center} Das Erlernen der Regelbasis ist dabei vor allem davon abhängig, wie gut die Parameter gewählt wurden. Wichtig ist dabei die Wahl der Anzahl, der Iterationen durch Phase 1, sowie Phase 2. Empfohlen werden dabei 2000 bis 300 Iterationen. Außerdem sollte eine geeignete Stellgröße für die Minimalverwendung einer Regel gefunden werden. Dieser Wert sollte dabei zwischen 1.00 und 1.03 gewählt werden, da sonst wichtige Regeln, die aber nur selten vorkommen aus der Regelbasis entfernt werden. Zusätzlich ist es möglich bekannte Regeln zu definieren. Diese werden dann vom Lernalgorithmus nicht entfernt und es werden auch keine Regeln erzeugt, die die gleiche Prämisse enthalten.\cite{Lip06} \subsection{Erlernen von Fuzzy-Mengen} Ein weiterer Einsatzbereich des NEFCON-Models ist das Erlernen von Fuzzy-Mengen. Dabei wird vorausgesetzt, dass eine korrekte Regelbasis besteht. Durch den Fuzzy-Backpropagationalgorithmus wird die Güte einer Regel bestimmt um ``gute'' Regeln zu belohnen und ``schlechte'' Regeln zu bestrafen. Dabei wird der Beitrag $t_k$ der Regel $R_k$ zum Ergebnis durch $t_k = u^{-1}_{k}(o_k)$ ermittelt. Die dadurch erhaltene Stellgröße gibt den Zustand der Größe an wobei der Wert 0 dem optimalen Zustand entspricht. Enthält die Stellgröße dabei das richtige Vorzeichen, wird die Regel als gut eingestuft. Mit dieser Klassifizierung wird der Einfluss ``guter'' Regeln vergrößert und der Einfluss ``schlechter'' Regeln verkleinert. Das Lernverfahren selbst besteht aus sechs Einzelschritten: \paragraph{Schritt 1} Berechne Ausgabe $o$ für die Messwert, wende sie auf das zusteuernde System an und berechne die sich daraus ergebenden Messwerte. \paragraph{Schritt 2} Berechne den Fuzzy-Fehler, der sich aus den Messwerten von Schritt 1 ergibt. \paragraph{Schritt 3} Bestimme das Vorrücken des Stellwertes im neuen Systemzustand. \paragraph{Schritt 4} Berechne für Regel $R_k$ den Beitrag $t_k$. Dabei ist das Fehlersignal $F_k$ für Regel $R_k$ gegeben durch \begin{displaymath} F_k := \begin{cases} -o * E \qquad \text{Vorzeichen von $t_k$ richtig} \\ o * E \qquad \quad \text{Vorzeichen von $t_k$ falsch} \end{cases} \end{displaymath} \paragraph{Schritt 5} Modifizierung aller Eingabe-Fuzzy-Mengen $\tilde{A}_{i*}^{(k)} = (l_{i*}^{(k)},m_{i*}^{(k)},r_{i*}^{(k)})$. \begin{displaymath} \Delta l_{i*}^{(k)} = -\eta * F_k * (m_{i*}^{(k)} - l_{i*}^{(k)}) \end{displaymath} \begin{displaymath} \Delta r_{i*}^{(k)} = -\eta * F_k * (r_{i*}^{(k)} - m_{i*}^{(k)}) \end{displaymath} Dabei stehen $l$, $m$ und $r$ für die linke, rechte und mittlere Fuzzy-Menge, die in diesem Beispiel verwendet wird. Diese Fuzzy-Mengen werden um den $\Delta$ verschoben um ein optimale Fuzzy-Menge zu erhalten. $\eta$ entspricht der Gewichtung der Fuzzy-Menge. Allerdings wird Fuzzy-Menge $m$ nicht neu berechnet, sondern als korrekt angesehen. \paragraph{Schritt 6} Modifizierung aller Ausgabe-Fuzzy-Mengen $\tilde{B}_{i*}^{(k)} = (m_{i*}^{(k)},b_{i*}^{(k)})$. \begin{displaymath} \Delta b_{j*}^{(k)} \begin{cases} \eta * F_k * (b_{j*}^{(k)} - m_{j*}^{(k)}) \qquad b_{j*}^{(k)} > m_{j*}^{(k)}\\ \eta * F_k * (m_{j*}^{(k)} - b_{j*}^{(k)}) \qquad b_{j*}^{(k)} < m_{j*}^{(k)} \end{cases} \end{displaymath} \subsection{Nachteile des NEFCON-Models} Ein großer Nachteil des NEFCON ist die Voraussetzung von monotonen Fuzzy-Mengen. Das heißt das keine Gauß- \& Dreiecks-Mengen möglich, diese werden von Fuzzy-Control"-lern allerdings häufig verwendet. Ein weiterer Nachteil ist, dass es nur möglich ist ein Ausgabeneuron zu verwenden und es somit auch nur einen Ausgabewert gibt. Zusätzlich ist es nicht möglich die erzeugten Regeln zu überprüfen oder fehlende Fuzzy-Mengen zu generieren.\cite{Lip06}