22.11.2013 Aufrufe

AMPELSTEUERUNG EINER KREUZUNG

AMPELSTEUERUNG EINER KREUZUNG

AMPELSTEUERUNG EINER KREUZUNG

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

ANMERKUNGEN ZUM INFORMELLEN ALGORITHMUS<br />

Info1, Einführung<br />

(H) INFORMELLE SPEZIFIKATION VON ADT COLOUREDGRAPH I<br />

Info1, Einführung<br />

❑<br />

❑<br />

❑<br />

Definition (n-Clique)<br />

n Knoten bilden eine n-Clique, wenn alle n Knoten paarweise durch je eine Kante<br />

verbunden sind.<br />

-> Offensichtlich braucht man zum Färben einer n-Clique n Farben.<br />

Optimalität<br />

-> Falls die gefundene Lösung mehr Farben benötigt als die maximale Clique,<br />

kann sie trotzdem noch optimal sein.<br />

die Lösung ist nicht optimal bzgl. Ziel (2), da es isolierte Knoten gibt<br />

-> isolierte Knoten (BA, DC, ED) stehen mit keinem anderen Knoten im Konflikt<br />

-> könnten also immer frei geschaltet sein (Grüner Pfeil)<br />

-> isolierte Knoten beeinflussen aber nicht die benötigte Anzahl an Farben<br />

→ ColGraphT, benutzte Operationen<br />

❑ alle Knoten gefärbt ?<br />

-> allNodesColoured (in ColGraphT, out Boolean)<br />

❑ ∀ ungefärbten Knoten k<br />

-> firstUncolouredNode (in ColGraphT, out ColNodeT)<br />

-> nextUncolouredNode (in ColGraphT, inout ColNodeT, out Boolean)<br />

❑ k verbunden mit irgend einem Knoten aus einer Menge ?<br />

-> associatedWith (in ColGraphT, in ColNodeT, in ColSetT, out Boolean)<br />

❑ Einlesen des konkreten Graphen<br />

-> initGraph (inout ColGraphT)<br />

-> addNode (inout ColGraphT, in ColNodeT)<br />

-> addArc (inout ColGraphT, in ColNodeT, in ColNodeT)<br />

monika.heiner@informatik.tu-cottbus.de WS 2005 1.1 - 9 / 12<br />

monika.heiner@informatik.tu-cottbus.de WS 2005 1.1 - 11 / 12<br />

(G) PSEUDOKODE-ALGORITHMUS (AUF ADT GRAPH)<br />

procedure FAERBUNG (in G : Graph T,<br />

out farben : Integer )<br />

Info1, Einführung<br />

var neueFarbe : ColSetT; /* Menge von Knoten von G, denen */<br />

/* die gleiche neue Farbe gegeben wird */<br />

begin<br />

farben := 0;<br />

while nicht alle Knoten gefärbt do<br />

farben +:= 1; /* nimm eine neue Farbe -> aktuelle Farbe */<br />

neueFarbe := ø;<br />

loop ∀ ungefärbten Knoten k von G do<br />

if k ist nicht verbunden mit irgendeinem Knoten in neueFarbe<br />

then<br />

färbe k; /* mit der aktuellen Farbe */<br />

füge k in neueFarbe ein;<br />

endif<br />

endloop<br />

endwhile<br />

(H) INFORMELLE SPEZIFIKATION VON ADT COLOUREDGRAPH II<br />

→ ColNodeT, benutzte Operationen<br />

❑ färbe k<br />

-> setColour (inout ColNodeT, in Integer )<br />

→ ColSetT, Menge von (gefärbten) Knoten, benutzte Operationen<br />

❑ Menge löschen<br />

-> clear (inout ColSetT)<br />

❑ Knoten in der Menge enthalten ?<br />

-> member (in ColSetT, in ColNodeT, out Boolean)<br />

❑ Knoten zur Menge hinzufügen<br />

-> include (inout ColSetT, in ColNodeT)<br />

Info1, Einführung<br />

end FAERBUNG.<br />

monika.heiner@informatik.tu-cottbus.de WS 2005 1.1 - 10 / 12<br />

monika.heiner@informatik.tu-cottbus.de WS 2005 1.1 - 12 / 12

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!