• Keine Ergebnisse gefunden

½ S[j] = the agent assigned to job j inS,

Ri = the accumulated resources assigned to agent i inS.

1: P

i∈I

Ri 0;F ← {1, . . . , n};

2: while F 6=∅ do

3: j Random(F); /* take a random job */

4: search for an agent i which has the best cost-resource index criij and fulfills Ri+rij ≤bi,∀i∈I;

In Abbildung 6.4 ist ein Beispiel f¨ur die Initialisierung mittels Ratio-Heuristik an-gegeben. Es gilt das Gleiche, wie f¨ur das vorherige Beispiel. In der Problemmatrix ist, zus¨atzlich zum Resourcenverbrauch bzw. den Kosten, der Rang des Kosten-Resourcen-Index angegeben (Reihung nach criij). Die Reihenfolge, in der die Auf-gaben j verteilt werden sollen, wurde analog zum Beispiel f¨ur die Constraint-Initialisierung gew¨ahlt. Die jeweilige Maschine i ergibt sich dabei aus dem Rang (Reihenfolge) des Kosten-Resourcen-Indexcriij.

52 KAPITEL 6. NEUE L ¨OSUNGSANS ¨ATZE

Problemmatrix:

Maschine i Aufgabe j

rij(cij) 1 2 3 4 5 6 bi

1 15 (8)2. 11 (4) 1. 28 (1) 1. 19 (6)2. 25 (7)4. 20 (6) 4. 30 2 29 (5)3. 23 (9) 4. 22 (5) 4. 24 (8)4. 14 (3)1. 11 (9) 3. 33 3 23 (7)4. 16 (5) 2. 28 (2) 2. 30 (5)3. 13 (5)2. 15 (3) 1. 29 4 20 (2)1. 14 (7) 3. 25 (4) 3. 22 (1)1. 17 (7)3. 30 (3) 2. 35 Initialisierungsvorgang:

Schritt 1: j = 2→i= 1

1 2 3 4 5 6

S[j] / 1 / / / / a1 = 19 Schritt 2: j = 4→i= 4

1 2 3 4 5 6

S[j] / 1 / 4 / / a4 = 13 Schritt 3: j = 3 →i= 13

1 2 3 4 5 6

S[j] / 1 3 4 / / a3 = 1 Schritt 4: j = 1 →i= 41

1 2 3 4 5 6

S[j] 1 1 3 4 / / a1 = 4 Schritt 5: j = 5→i= 2

1 2 3 4 5 6

S[j] 1 1 3 4 2 / a2 = 19 Schritt 6: j = 6 →i= 342

1 2 3 4 5 6

S[j] 1 1 3 4 2 2 a2 = 8 f(S) = 27 u(S) = 0

Abbildung 6.4: Beispiel f¨ur Ratio-Initialisierung

6.4. EVALUIERUNG DER INDIVIDUEN 53

6.4 Evaluierung der Individuen

Die Fitnessfunktion f(S) dient zur Evaluation der Individuen und ist bei der Se-lektion von entscheidender Rolle (Abschnitt 4.6). Die Fitnessfunktion wird, wie in Abschnitt 4.5 dargestellt, mittels Skalierung aus der Bewertungsfunktion g(S) be-rechnet.

Folgende Bewertungsfunktionen werden betrachtet:

Fitness Evaluation

Diese kommt bei Chu und Beasley zur Anwendung und ber¨ucksichtigt aus-schließlich die Fitness eines Individuums, d.h. die Kapazit¨atsverletzungen wer-den bei der Selektion ¨uberhaupt nicht beachtet, sondern nur bei der Ersetzung.

Lack Evaluation

Dielack evaluation(Mangel) ber¨ucksichtigt bei der Bewertung eines ung¨ultigen Individuums ausschließlich den Mangel (den ¨Uberhang an Resourcenverbrauch gegen¨uber der vorhandenen Kapazit¨at) ohne Ber¨ucksichtigung der zugrunde liegenden Fitness des Individuums. Liegt ein g¨ultiges Individuum (ohne Ka-pazit¨atsverletzung) vor, so wird nach der Fitness des Individuums verfahren.

Condition Evaluation

Diecondition evaluation(Kondition, Beschaffenheit) ber¨ucksichtigt immer bei-de Aspekte eines Individuums, n¨amlich die Fitness (bei-den Zielfunktionswert) als auch die Untauglichkeit.

6.4.1 Kennzahlen

Der Zielfunktionswert h(S) der Optimierungsaufgabe errechnet sich zu:

h(S) = Xn

j=1

cS[j],j

Der maximale ZielfunktionswertHmax stellt eine obere Schranke dar und errechnet sich hierbei wie folgt: Anders ausgedr¨uckt, werden f¨ur jede Aufgabe j die Maschine i, die am teuersten kommt, ausgew¨ahlt und die so entstandenen Kosten cij aufsummiert (ohne R¨uck-sicht auf Kapazit¨atsgrenzen). Der so gewonnene Wert,Hmax, dient dazu die Kandi-datenl¨osungen in zwei disjunkte Mengen von g¨ultigen und ung¨ultigen Individuen zu trennen.

Der folgende Ausdruck gibt die relative Kapazit¨ats¨uberschreitung (relative overcon-sumption) einer Kandidatenl¨osung an:

54 KAPITEL 6. NEUE L ¨OSUNGSANS ¨ATZE Diese dient dazu, ung¨ultige L¨osungen mit einem Abschlag, entsprechend der Ver-letzung der Bedingungen (constraint violation), zu versehen. Sie ist genau null f¨ur g¨ultige L¨osungen (somit keine ¨Uberschreitung) ansonsten gr¨oßer null (d.h. mehr als die 100% Gesamtkapazit¨at aller Maschinen ist in Verwendung).

In dem Ausdruck (6.2) kommt die relative Kapazit¨ats¨uberschreitung einer Maschine zur Anwendung – diese hilft die Auswirkung einer konkreten Aufgaben-Maschinen Belegung ¨uber alle Maschinen hinweg vergleichbar zu machen (durch Normierung mit der Kapazit¨at einer Maschinebi). Weiters hat der relative Abschlag den großen Vorteil, daß dieser direkt in die Bewertung einer Kandidatenl¨osung einfließen kann.

Die unterschiedlichen Einheiten Kosten/Resourcen spielen keine Rolle – es ist somit keine Skalierung notwendig.

6.5 Bewertungsfunktion

6.5.1 Fitness Evaluation

Bei der Fitness Evaluation wird die direkte Skalierung f(S) = g(S) angewandt, wobei in diesem Fallg(S) dem Zielfunktionswerth(S) entspricht – der Penaltyfunk-tionswert wird zur Bewertung nicht herangezogen.

6.5.2 Lack Evaluation

Bei der Lack Evaluation wird ebenfalls nicht zwischen der Bewertungsfunktion und der Fitnessfunktion unterschieden. Sie ber¨ucksichtigt bei ung¨ultigen Individuen aus-schließlich die Untauglichkeit.

g(S) =

½ h(S) oc(S) = 0,

(Hmax+ 1)·(1 +oc(S)) oc(S)>0.

Somit ist bei einer Minimierungsaufgabe sichergestellt, daß alle g¨ultigen Belegungen innerhalb dieser Schranke zu liegen kommen, w¨ahrend sich alle ung¨ultigen Belegun-gen oberhalb dieser Schranke befinden – die beiden Bereiche (durch die Schranke Hmax voneinander getrennt) sind somit disjunkt.

6.5.3 Condition Evaluation

Bei diesem Ansatz d¨urfen sich g¨ultige und ung¨ultige Individuen ”vermischen”. Die Fitness- bzw. Bewertungsfunktion ergibt sich dabei zu:

g(S) =h(S)·(1 +oc(S)) oc(S)≥0.

Die Idee dahinter ist, daß g¨ultige Individuen mit ung¨ultigen in Konkurrenz stehen – der Funktionswert oc(S) fungiert hierbei als (relative) Entfernung zu einer g¨ulti-gen L¨osung. Das Ziel der Condition Evaluation ist, ein ausgewog¨ulti-generes Bild der Wertigkeit eines Individuums abzugeben.

6.6. SELEKTIONSSTRATEGIE 55

6.6 Selektionsstrategie

Zur Selektion dient die bin¨are Tournament Selektion, d.h. bei jedem Durchgang (,,Turnier”) werden zwei Individuen zuf¨allig aus der Population ausgew¨ahlt und jenes mit dem besseren Fitnesswert ist das Selektierte. Der (Worst-Case) Aufwand mit O(2) ist somit konstant.

Der Ansatz von Chu und Beasley ist ausschließlich fitnessorientiert, die Untauglich-keit (unfitness) wird nicht ber¨ucksichtigt. Laut Chu und Beasley besteht die Popula-tion sehr bald aus fast ausschließlich g¨ultigen Individuen, daher konzentriert sich die Selektion ausschließlich auf Individuen mit hoher Fitness (siehe Fitness Evaluation, Abschnitt 6.4 bzw. Abschnitt 6.5).

Bei unserem Ansatz wird der Schwerpunkt auf m¨oglichst g¨ultige Individuen gelegt, daher wird f¨ur die Selektion neben der Fitness auch die Untauglichkeit herangezogen (Standard-Implementierung der EA-Bibliothek von Raidl [22]). Gerade zu Beginn des GA ist es von großer Bedeutung m¨oglichst rasch zu g¨ultigen Individuen in der Population zu kommen (siehe Lack- und Condition-Evaluation, Abschnitt 6.4 bzw.

Abschnitt 6.5).

F¨ur die Lack-Evaluation spricht, daß sie ohne spezieller Vorkehrungen auskommt, nachdem die ung¨ultigen Individuen immer schlechter bewertet werden als das schlechteste g¨ultige. Bei der Condition-Evaluation ist zu beachten, daß sich ohne geeignete Gegenmaßnahmen, ung¨ultige Individuen in der Population durchsetzen k¨onnen (Individuen mit geringer Verletzung der Kapazit¨at, aber gutem Fitnesswert).

Eine dieser Gegenmaßnahmen ist die Anwendung vonSAW-ing.

Unter SAW-ing wird die Adaptierung der Fitnessfunktion zur Behandlung von Pro-blemen mit Nebenbedingungen (constraint problem) verstanden. Dies funktioniert hierbei wie in Algorithmus 6.5 angegeben. Der Algorithmus wurde der Arbeit ’SAW-ing EAs’ von Eiben und Hemert [10] entnommen.

Algorithmus 6.5Prinzip des SAW-ing Algorithmus