Nachdem durch das iterierte Matching -- zumindest in den unteren Ebenen
des Schnittbaumes -- dicht gepackte Meta-Blöcke generiert wurden und
innerhalb der entsprechenden Teil-Layouts die Verdrahtung
konstruiert wurde, ist es die Aufgabe des genetischen Algorithmus,
die Layouts ,, global`` zu optimieren.
Dazu sind die vorhandenen Meta-Blöcke so umzuarrangieren, daß
die Layout-Fläche minimal wird und möglichst optimale
globale Verdrahtungswege entstehen.
Dieses ist der wesentliche Unterschied zu dem herkömmlichen
Ansatz im Layout-Design:
Dort ist bei der Erstellung des Floorplans und der Konstruktion der globalen
Verdrahtung jeweils eine globale Sicht auf die Anordnung der Module gegeben.
Eben diese globale Sicht fehlt bei der Konstruktion eines Individuums.
Hier werden lediglich lokale Entscheidungen getroffen und
somit gute Teil-Layouts geschaffen, die globale Sicht auf das
gesamte, sich entwickelnde Layout bleibt dem genetischen Algorithmus
vorbehalten.
Figure: Mutation durch Austausch von Blöcken (links) oder durch
Verändern der Struktur des Schnittbaumes (rechts)
Ein Mutationsoperator verändert zufällig ein Individuum, d.h. es
geschieht nicht zielgerichtet und führt somit in den seltensten Fällen direkt
zu einer Verbesserung (bzgl. der Fitneß des Individuums).
Es existieren verschiedene Mutationsoperatoren, die mit unterschiedlicher
Häufigkeit angewendet werden.
Ein Individuum wird durch Austausch von Knoten (Abb. 5,
links) oder durch eine Veränderung der Struktur des Schnittbaumes (Abb. 5,
rechts) mutiert.
Andere Mutationsoperatoren verändern die Positionierung (aufeinander oder nebeneinander)
und die Rotation der beiden Blöcke innerhalb des Meta-Blockes oder ändern
die Seite, aus der ein Netz aus einem Kanal herausgeführt wird.
Es ist notwendig, daß eine optimale Lösung aus einem beliebigen Layout nur
durch Anwendung von Mutationsoperatoren erzeugt werden kann, denn durch die Anwendung
des Crossover-Operators werden keine vollkommen neuen Individuen erzeugt,
sondern nur Eigenschaften von schon existierenden Individuen vererbt.
Der Crossover-Operator wählt zwei Individuen
aus, aus denen ein Offspring generiert wird.
Diese Auswahl erfolgt nicht aus der gesamten Population, sondern nur
aus der Menge der besten Individuen (truncation selection).
Als Maß für die Fitneß eines Individuums dient die Fläche
des entsprechenden Layouts.
In der aktuellen Implementation werden beim Crossover zwei disjunkte Meta-Blöcke
aus beiden Parent-Individuen ausgewählt, welche die Grundlage für den Offspring bilden.
Da es unwahrscheinlich ist, daß sich die beiden durch diese Meta-Blöcke
repräsentierten Teil-Layouts zu einem
vollständigen Layout ergänzen, müssen in dem Schnittbaum des Offsprings
die noch fehlenden Blöcke ergänzt werden.
Dabei wird wiederum das iterierte Matching angewandt,
um die Verschnittfläche in diesem Teil des Layouts möglichst gering zu halten.
Die Wirkung des Crossover-Operators ist bei diskreten Optimierungsproblemen nur sehr gering, da bei der direkten Kreuzung nicht notwendigerweise korrekte Lösungen entstehen. Aus diesem Grund muß das Offspring-Individuum nach der Operation repariert werden, oder kann -- wie in diesem Fall -- nur teilweise durch Kreuzung zweier Individuen erzeugt werden. Hierdurch ist der Anteil der Vererbung deutlich geringer als in den meisten Anwendungen mit einer einfacheren Kodierung, da dort jedes Gen im Offspring-Genotyp direkt aus einem der beiden Parent-Individuen übernommen wird.