{{\def\dash{\raise2.1pt\hbox{\rule{5pt}{0.3pt}}\hspace{1pt}}\begin{tabbing}
classdef\ classifier\\
\ \ \ \ {\textit{\%CLASSIFIER\ Definiert\ die\ Struktur\ eines\ Klassifikators}}\\
\ \ \ \ {\textit{\%\ \ \ Klassendefinition\ für\ die\ Klassifikatoren}}\\
\ \ \ \ {\textit{\%\ \ \ die\ das\ Verhalten\ der\ Agenten\ steuern}}\\
\ \ \ \ {\textit{\%}}\\
\ \ \ \ {\textit{\%\ \ \ Ein\ Klassifikator\ in\ LCS\ besteht\ aus\ einer\ Regel,\ die}}\\
\ \ \ \ {\textit{\%\ \ \ einen\ Detektor\ (hier\ als\ String\ implementiert)\ und}}\\
\ \ \ \ {\textit{\%\ \ \ einen\ Effektor\ miteinander\ verknüpft.}}\\
\ \ \ \ {\textit{\%\ \ \ Außerdem\ werden\ noch\ verschiedene\ zus�?tzliche\ Parameter}}\\
\ \ \ \ {\textit{\%\ \ \ wie\ St�?rke(Fitness)\ oder\ Spezifizit�?t\ der\ Regel\ als}}\\
\ \ \ \ {\textit{\%\ \ \ Bestandteil\ des\ Klassifikators\ definiert.}}\\
\ \ \ \ \\
\ \ \ \ properties\\
\ \ \ \ \ \ \ \ detector\ {\textit{\%\ enth�?lt\ den\ String\ zur\ Definition\ des\ Detektors\ zur}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ Verarbeitung\ der\ Umwelt}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ B\ \ \ \ \ \ \ \ \ \ \ =\ beliebiger\ Baustein\ an\ Position}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ $\ast$\ \ \ \ \ \ \ \ \ \ \ =\ don{'}t\ care}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ 0,1,2,3,...\ =\ bestimmter\ (bzw.\ kein)\ Baustein\ an\ Position}}\\
\ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ effector\ {\textit{\%\ Definiert\ die\ Aktion\ des\ Agenten\ \dash{}\ in\ diesem\ Modell\ also}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ den\ Typ\ des\ zu\ bauenden\ Bausteins\ als\ Zahlenwert\ (1,2,3,}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ ...)\ bzw.\ auch\ eben\ KEINEN\ Baustein\ zu\ setzen\ (0)}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ strength\ {\textit{\%\ skalarer\ Wert\ zur\ Bestimmung\ der\ St�?rke\ oder\ Fitness}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ \dash{}\ normiert\ auf\ Wert\ $>$=\ 0\ \&\&\ $<$=\ 255}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ wichtig\ wegen\ interner\ Codierung\ in\ 8bit\ Gray\ code}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ für\ GA}}\\
\ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ fitnessstring\ {\textit{\%\ Fitnesswert\ in\ 8bit\ Gray\ code\ als\ Textstring\ z.B.\ {'}00110110{'}}}\\
\ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ specificity\ {\textit{\%\ Wert\ zur\ Bestimmung\ der\ Genauigkeit\ der\ Regel}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ entspricht\ der\ Zahl\ der\ Elemente\ des\ Detektor\dash{}Strings}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ die\ nicht\ \string"$\ast$\string"\dash{}don{'}t\dash{}care\ entsprechen}}\\
\ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ age\ {\textit{\%\ wird\ in\ jedem\ Zeitschritt\ erhöht,\ bei\ Benutzung\ des\ Klassifikators\ erniedrigt}}\\
\ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ nach\ Modell\ von\ Holland(78)}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ frequency\ {\textit{\%\ H�?ufigkeit\ der\ Aktivierung\ des\ Klassifikators}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ Wird\ bei\ jeder\ Aktivierung\ um\ 1\ erhöht}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ attenuation\ {\textit{\%\ D�?mpfungskoeffizient}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ wird\ bei\ der\ Berechnung\ des\ Feedback\ aus\ der\ Umgebung}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ miteinbezogen}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ detectorlength\ =\ 6;\ {\textit{\%\ L�?nge\ des\ Detektors\ (im\ zweidimensionalen\ Modell\ 6,}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ im\ dreidimensionalen\ 20}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ bid\ {\textit{\%\ skalarer\ Wert,\ der\ aus\ strength\ und\ specificity\ in\ jedem\ Zeitschritt\ neu\ berechnet\ wird}}\\
\ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ wird\ nur\ berechnet,\ wenn\ Klassifikator\ im\ Matchset\ auftaucht}}\\
\ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ Je\ höher\ der\ bid\dash{}Wert\ des\ Klassifikators,\ desto\ höher\ seine}}\\
\ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ Chance\ auf\ Ausführung.\ Pro\ Zeitschritt\ wird\ nur\ ein}}\\
\ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ Klassifikator\ angewendet.}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ minfit\ {\textit{\%\ Untergrenze\ für\ Roulette\dash{}Wheel\dash{}Selection}}\\
\ \ \ \ \ \ \ \ maxfit\ {\textit{\%\ Obergrenze\ für\ Roulette\dash{}Wheel\dash{}Selection}}\\
\ \ \ \ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ \\
\ \ \ \ {\textbf{end}}\\
\ \ \ \ \\
\ \ \ \ methods\\
\ \ \ \ \ \ \ \ {\textbf{function}}\ obj\ =\ classifier(\ rulestring,\ fitness\ )\ {\textit{\%\ Konstruktor}}\\
\ \ \ \ \ \ \ \ \ \ \ \ obj.detector\ =\ rulestring(1:obj.detectorlength);\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ kopiert\ die\ relevanten\ Teile\ des\ Strings\ in\ den\ Detektor}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ \ \ \ \ obj.strength\ =\ bin2gray(fitness,{\texttt{{'}fsk{'}}},256);\ {\textit{\%\ Konvertierung\ in\ 8bit\ Gray\ code}}\\
\ \ \ \ \ \ \ \ \ \ \ \ obj.fitnessstring\ =\ dec2bin(obj.strength,8);\ {\textit{\%\ Darstellung\ der\ Fitness\ als\ Bitstring\ für\ GA}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ \ \ \ \ obj.specificity\ =\ 0;\\
\ \ \ \ \ \ \ \ \ \ \ \ {\textbf{for}}\ pos=1:obj.detectorlength\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textbf{if}}\ (\~{}(strcmp(obj.detector(pos),\ {\texttt{{'}$\ast${'}}})))\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ obj.specificity\ =\ obj.specificity\ +\ 1;\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textbf{end}}\\
\ \ \ \ \ \ \ \ \ \ \ \ {\textbf{end}}\ {\textit{\%\ Spezifizit�?t\ der\ Regel\ wird\ berechnet}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ \ \ \ \ obj.effector\ =\ str2double(rulestring(obj.detectorlength\ +\ 1));\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ letzte\ Position\ des\ RuleString\ ist\ der\ Effektor}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
\ \ \ \ \ \ \ \ \ \ \ \ obj.age\ =\ 0;\\
\ \ \ \ \ \ \ \ \ \ \ \ obj.frequency\ =\ 0;\\
\ \ \ \ \ \ \ \ \ \ \ \ obj.attenuation\ =\ 0;\ {\textit{\%\ Initialisierung\ von\ age,\ frequency\ und\ attenuation}}\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\textit{\%\ Anfangswerte\ bei\ allen\ gleich\ Null}}\\
\ \ \ \ \ \ \ \ {\textbf{end}}\\
\ \ \ \ {\textbf{end}}\\
\ \ \ \ \\
{\textbf{end}}\\

\end{tabbing}}}
