\begin{matlab}
function [fitnesswert,idealwert,aussenlaenge, ...
          wabenanzahl,fitnessquotient] = fitness(zustandsraum)
%FITNESS Berechnet den Fitnesswert für eine beliebige Wabenstruktur
%   Diese Version berechnet die Fitness anhand der
%   Kompaktheit der Struktur: man berechnet die
%   Gesamtlänge der Außenkanten und teilt sie durch die
%   Anzahl der bebauten Zellen. Je höher dieser Wert, desto
%   kompakter die Struktur - Idealfall: Kreisform
%   Löcher in der Struktur führen zur Abwertung der Fitness
%
%   Von der Funktion werden folgende Werte zurückgegeben:
%   - berechneter Fitnesswert für die Struktur
%   - Idealwert eines Kreises mit gleicher Fläche
%   - Gesamtlänge der Außenwand
%   - Anzahl der bebauten Waben
%   - Quotient aus berechneter Fitness und idealer Fitness:
%     dieser Wert wird als Fitnesswert für strengthga benutzt
global Knotenzahl;

% Die Fläche einer sechseckigen Zelle wird berechnet
zellenflaeche = ( 3 / 2 ) * sqrt( 3 );
% Die Indizes der bebauten Zellen werden ermittelt
bebautezellen = find(zustandsraum(4,:));
% Die Anzahl der bebauten Zellen wird errechnet
wabenanzahl = length(bebautezellen);


aussenlaenge = 0;
for zellindex=1:wabenanzahl
 nachbarliste = nachbarn(bebautezellen(zellindex));
 for zindex=1:6
  if (nachbarliste(zindex) < 1) || ...
   (nachbarliste(zindex) > Knotenzahl)
   bebauung = 0;
  else
   bebauung = zustandsraum(4,nachbarliste(zindex));
  end
  if bebauung == 0
   aussenlaenge = aussenlaenge + 1;
  end
 end
end

% Kantenlänge des Sechsecks ist 1
% Nimmt man als Fitnesswert das Verhältnis von Fläche A zu Umfang U der
% Struktur (möglichst groß), so ergibt sich der Idealwert für die Fitness
% bei einer Kreisform, für die folgende Gleichungen gelten:
% - $A = r^{2} \cdot \pi$
% - $U = 2 \cdot r \cdot \pi$
% - $A = \dfrac{U}{(2 \cdot \pi)^{2}} \cdot \pi = \dfrac{U^{2}}{4 \cdot \pi}$
% - $\dfrac{A}{U} = \dfrac{U}{4 \cdot \pi}$
idealwert = aussenlaenge / ( 4 * pi );
fitnesswert = (wabenanzahl * zellenflaeche) / aussenlaenge;
fitnessquotient = fitnesswert / idealwert;

end
\end{matlab}