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.
Ein Rundweg durch den Graphen, bei dem jede Kante genau einmal benutzt<br />
wird, kann nur dann gelingen, wenn je<strong>der</strong> Knoten genau so oft erreicht wird wie<br />
er wie<strong>der</strong> verlassen wird. Daran scheitert je<strong>der</strong> Lösungsversuch im Brückenproblem,<br />
wie wir bereits oben gesehen haben. Eulers Antwort auf die Frage nach <strong>der</strong><br />
Existenz eines solchen Rundweges — <strong>der</strong> für Graphen auch Eulerkreis genannt<br />
wird — lautet deshalb:<br />
In einem ungerichteten Graphen existiert genau dann ein Weg, <strong>der</strong> jede<br />
Kante genau einmal enthält und zum Ausgangsknoten zurückführt,<br />
wenn <strong>der</strong> Grad jedes Knotens gerade ist.<br />
Algorithmus Eulerkreis<br />
(Eingabe: Ein Feld g <strong>der</strong> Dimension n x n, das die Kanten des<br />
Graphen festlegt<br />
Ausgabe: ’ja’, falls <strong>der</strong> Graph einen Eulerkreis enthält, sonst ’nein’)<br />
begin<br />
euler←true<br />
for i from 1 to n do<br />
for j from 1 to n do<br />
grad[i]←grad[i]+g[i,j]<br />
for i from 1 to n do<br />
if grad[i] mod 2 = 1 then<br />
euler←false<br />
if euler=true then<br />
Ausgabe: ja<br />
else<br />
Ausgabe: nein<br />
end<br />
Abbildung 10: Algorithmus Eulerkreis<br />
Ein Algorithmus, <strong>der</strong> zu einem gegebenen Graphen mit n Knoten entscheidet, ob<br />
er einen Eulerkreis enthält, ist in Abbildung 10 angegeben. Als Eingabe wird hier<br />
eine n × n–Matrix G verwendet, für die gilt:<br />
gij = Anzahl <strong>der</strong> Kanten zwischen Knoten i und Knoten j .<br />
Dabei bezeichnet gij den Wert in <strong>der</strong> i–ten Zeile und j–ten Spalte, wenn man G<br />
als rechteckiges Schema notiert.<br />
Wegen <strong>der</strong> geschachtelten Zählschleife liegt die Zeitkomplexität des Algorithmus<br />
in <strong>der</strong> Klasse O(n 2 ). Das Problem ist also mit polynomialem Zeitaufwand<br />
lösbar.<br />
18