23.06.2013 Aufrufe

finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB

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.

4 Komplexitätstheorie und Speicherung<br />

von Graphen<br />

In diesem Kapitel führen wir einige der Grundbegriffe der Komplexitätstheorie ein, die<br />

für die algorithmische Graphentheorie und die kombinatorische Optimierung von Bedeutung<br />

sind. Wir behandeln insbesondere die Klassen P und N P und das Konzept der<br />

N P-Vollständigkeit. Die Darstellung erfolgt auf informellem Niveau. Gute Bücher zur<br />

Einführung in die Komplexitätstheorie sind Garey and Johnson (1979), Papadimitriou<br />

(1994) und Wegener (2003), weiterführende Aspekte werden unter anderem in Wagner<br />

and Wechsung (1986) und van Leeuwen (1990) behandelt. Shmoys and Tardos (1995)<br />

ist ein guter Übersichtsartikel. Einen detaillierten Überblick über Komplexitätsklassen<br />

gibt Johnson (1990), noch mehr Komplexitätsklassen findet man unter der URL:<br />

http://qwiki.caltech.edu/wiki/Complexity_Zoo.<br />

Komplexitätstheorie kann man nicht ohne Grundkenntnisse in Kodierungstechniken<br />

betreiben. Noch wichtiger aber sind Datenstrukturen beim Entwurf effizienter Algorithmen.<br />

Diesen Themenkreis streifen wir kurz in Abschnitt 4.3. Zur Vertiefung dieses Gebietes<br />

empfehlen wir Aho et al. (1974), Cormen et al. (2001), Mehlhorn (1984), Meinel<br />

(1991), Ottmann and Widmayer (2012) und Tarjan (1983). Ein Handbuch zu Datenstrukturen<br />

mit breiten Übersichtsartikeln ist Mehta and Sahni (2004).<br />

4.1 Probleme, Komplexitätsmaße, Laufzeiten<br />

In der Mathematik (und nicht nur hier) kann das Wort „Problem“ sehr verschiedene<br />

Bedeutungen haben. Für unsere Zwecke benötigen wir eine (einigermaßen) präzise Definition.<br />

Ein Problem ist eine allgemeine Fragestellung, bei der mehrere Parameter offen<br />

gelassen sind und für die eine Lösung oder Antwort gesucht wird.<br />

Ein Problem ist dadurch definiert, dass alle seine Parameter beschrieben werden und<br />

dass genau angegeben wird, welche Eigenschaften eine Antwort (Lösung) haben soll.<br />

Sind alle Parameter eines Problems mit expliziten Daten belegt, dann spricht man im<br />

Englischen von einem „problem instance“. Im Deutschen hat sich hierfür bisher kein Standardbegriff<br />

ausgeprägt. Es sind u. a. die Wörter Einzelfall, Fallbeispiel, Problembeispiel,<br />

Probleminstanz oder Problemausprägung gebräuchlich. Ebenso wird auch das (allgemeine)<br />

Problem manchmal als Problemtyp oder Problemklasse bezeichnet. In diesem Skript<br />

werden wir keiner starren Regel folgen. Aus dem Kontext heraus dürfte i. a. klar sein,<br />

was gemeint ist.<br />

Das Travelling-Salesman-Problem ist in diesem Sinne ein Problem. Seine offenen Parameter<br />

sind die Anzahl der Städte und die Entfernungen zwischen diesen Städten. Eine<br />

59

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!