\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}
