Praktische Grenzen der Berechenbarkeit - Informatik
Praktische Grenzen der Berechenbarkeit - Informatik
Praktische Grenzen der Berechenbarkeit - Informatik
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
a1, a2, . . .,ak, die das Gewicht <strong>der</strong> zur Verfügung stehenden Gegenstände angeben,<br />
sowie eine Zahl b, die das maximale Gesamtgewicht darstellt. Gesucht ist<br />
eine Auswahl von Gegenständen, <strong>der</strong>en Gesamtgewicht möglichst groß ist, jedoch<br />
ohne b zu überschreiten.<br />
Eine Population von n Individuen (also eine Menge mit n Lösungskandidaten)<br />
lässt sich als n × k–Matrix L darstellen mit<br />
lij =<br />
<br />
1 falls <strong>der</strong> Gegenstand mit dem Gewicht aj Bestandteil <strong>der</strong> Lösung i ist<br />
0 sonst .<br />
Die Einträge <strong>der</strong> Matrix werden zunächst rein zufällig festgelegt und bilden die<br />
Ausgangspopulation. Die Konstruktion <strong>der</strong> nächsten Population erfolgt nun in<br />
drei Schritten:<br />
1. Selektion: Für jede Zeile i <strong>der</strong> Matrix wird <strong>der</strong> jeweilige Nutzenwert wi<br />
bestimmt. Dieser ergibt sich aus dem Gewicht gi <strong>der</strong> ausgewählten Gegenstände.<br />
Überschreitet das Gesamtgewicht den Wert b, wird <strong>der</strong> Nutzenwert<br />
−1 vergeben:<br />
gi =<br />
wi =<br />
k<br />
j=1<br />
lij · aj<br />
<br />
gi falls gi ≤ b<br />
−1 sonst .<br />
Nun wird eine Hilfspopulation gleicher Größe erzeugt (eine n × k–Matrix<br />
L ∗ ), indem n–mal zufällig zwei Lösungen mit einan<strong>der</strong> verglichen werden.<br />
Diejenige mit dem größeren Nutzenwert wird in die Hilfspopulation aufgenommen.<br />
Ergibt sich die Zeile i von L ∗ durch den Vergleich <strong>der</strong> Zeilen p<br />
und q von L, so gilt also<br />
l ∗ ij =<br />
<br />
lpj falls wp > wq<br />
lqj sonst .<br />
(j = 1, . . .,k)<br />
Anschließend wird L durch L ∗ ersetzt. Diesen Algorithmus bezeichnet man<br />
als binäre Wettkampfselektion.<br />
2. Kreuzung: Vor <strong>der</strong> Kombination <strong>der</strong> Lösungen werden diese paarweise gruppiert.<br />
Dann wird für jedes Paar zufällig eine Zahl t ∈ {1, . . .,k − 1}, die<br />
Trennstelle, festgelegt. In den Spalten 1 bis t <strong>der</strong> Matrix werden jeweils<br />
die Einträge <strong>der</strong> ” gepaarten“ Lösungen getauscht. Auch hier kann wie<strong>der</strong><br />
eine Hilfspopulation L ∗ verwendet werden. Für die Einträge <strong>der</strong> Matrix gilt<br />
36