17 - Komplexität von Algorithmen [ID:10710]
50 von 504 angezeigt

Der Plan für heute ist, dass wir noch ein letztes Faktum über Reduktionen von Touring-Maschinen

nachschieben, was wir letztes Mal in den letzten fünf Minuten leider nicht mehr geschafft haben.

Und anschließend so ein paar grundlegende Dinge über Touring-Maschinen ansehen, insbesondere

die universelle Touring-Maschine und Unentscheidbarkeit. Und so als Bonbon beweisen

wir am Ende in der letzten Viertelstunde den ersten Gödlchen-Unvollständigkeitssatz.

Ich mache mal jetzt ohne Überschrift weiter in meiner Serie von Fakten. Also das hier hätte

eigentlich der Schlusspunkt der letzten Stunde sein sollen, das haben wir jetzt nicht geschafft.

Also wir hatten uns, um da mal kurz wieder in Stimmung zu kommen, angesehen leichte Varianten

der Definition einer Touring-Maschine. Was sind Varianten? Gut, was für ein Alphabet hat die?

Wie viele Bänder hat die? Dergleichen mehr. Wir haben gesehen, dass das also alles im Wesentlichen

bis auf polynomialen Veränderungen der Laufzeit keine Rolle spielt. So auch hier in diesem letzten

Fall, wo es geht um beidseitige Unendlichkeit. Also. Kein Fakt drei? Achso, dann hatte ich vergessen,

die Nummer zu vergeben. Das mit den Oblivious Touring-Maschinen, das war Fakt drei. Kann sein,

dass ich vergessen hatte, die Nummer dran zu schreiben. Also zur Orientierung, Fakt eins war

Alphabetreduktion, Fakt zwei war Reduktion der Bandanzahl, Fakt drei war mehr oder weniger ein

Korrelar dazu. Das war also die Annahme, dass wir eine Touring-Maschine haben, die Oblivious ist,

das heißt, bei der die Kopfposition zu einem gegebenen Zeitpunkt immer nur abhängt von der

Länge des Inputs und nicht vom tatsächlichen Input. Und Fakt vier ist das, was jetzt kommt.

So, da kommt jetzt ein Begriff vor, den haben wir gar nicht eingeführt, der einer Touring-Maschine

mit beidseitig unendlichen Bändern, das führe ich hier so on the fly ein, also es müsste klar sein,

was eine Touring-Maschine mit beidseitig unendlichen Bändern ist. Wir hatten angenommen,

bisher Touring-Maschinen haben Bänder, die irgendwo anfangen, genauso gut kann ich natürlich

unterstellen, dass das Band nach links beliebig lange weitergeht. Und wenn ich das unterstelle,

ist natürlich die Frage, kann ich auf so einer Touring-Maschine, wo ich nach links das Band

beliebig lange weiterlaufen lasse, womöglich mehr oder schneller berechnen als auf einer Touring-Maschine,

wie wir sie eigentlich eingeführt haben? Die Antwort lautet natürlich nein.

Wir behaupten also, wenn das der Fall ist, dann ist F berechenbar auf einer Touring-Maschine. Ich

sage nicht dazu, dass sie dann links abbrechende Bänder hat, denn das sagt ja unsere Definition

von Touring-Maschine, dass das so ist. Also hier habe ich die Zeit vergessen. Also hier in Zeit t von n,

also auf der beidseitig unendlichen Maschine, dann haben wir es auf einer normalen Touring-Maschine,

in Zeit o von t von n. Also wir sind schon langsamer, aber wir sind nur einen konstanten

Faktor langsamer. Ja, die Idee ist, wie immer reißen wir sie nur kurz an. So, die Idee, die man da hat,

ist die, dass, naja gut, ich habe also jetzt einen Band, mir fehlt praktisch die Hälfte des Bandes.

Also wenn ich irgendwie sage, gut das Band hat eine Mitte, dann habe ich gegeben eine Touring-Maschine,

wo sich das Band in beide Richtungen erstreckt und ich muss das podieren auf einer Touring-Maschine,

wo das Band nur in einer Richtung geht. Aber erstmal, ich klappe das rüber. Also die Idee ist,

dass das Band zu falten in der Mitte. Wie sieht das dann aus? Das sieht so aus. Gut, ich habe hier

meine Nullposition, an der Stelle falte ich, gut da bleibt es also wie es ist. Und dann klappe ich

also hier die linke Seite rüber, das heißt, ich habe hier meine Position minus eins, minus zwei,

minus drei und so weiter. Die habe ich da rüber gefaltet, über meine Position, die ich vorher hatte,

eins, zwei, drei und vier und so weiter. Na ja, dann habe ich nur das Problem, dass ich ja jetzt

plötzlich hier an jede Stelle zwei Symbole schreiben muss, weil ich ja die linke Seite

rüber gefaltet habe und das jetzt hier alles aufeinander liegt. Na ja, gut, das heißt,

ich vergrößere das Alphabet. Das Alphabet ist jetzt also nicht mehr Gamma, also wenn es vorher

Gamma war, sondern jetzt Gamma quadrat, also sprich, das ein einzelnes Alphabet-Symbol besteht jetzt

aus zwei alten Symbolen. Na ja, sodass ich dann also hier jeweils zwei Symbole an jede Bandstelle

schreiben kann. Ja, und das war es schon. Wir haben gesehen, dass wir das Alphabet vergrößern können.

Und ja, das ist schon die ganze Geschichte. Gut, wir müssen so ein bisschen aufpassen mit dem

Bewegen des Kopfes, was aber nicht schwierig ist, weil wir im Gegenteil, wir können sogar,

wenn wir ganz schlau sind, hier schneller werden, weil wir vorher mit dem Kopf mühsam von 4 nach

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:24:06 Min

Aufnahmedatum

2013-06-14

Hochgeladen am

2019-04-22 14:59:03

Sprache

de-DE

  • Mathematische Hilfsmittel der Algorithmenanalyse: Abschätzung des asymptotischen Wachstums von Funktionen, Summationen, Anzahlen, divide-and-conquer-Rekursionen, etc.
  • Grundbegriffe der quantitativen Algorithmenanalyse: worst-case- und average-case-Analsyse, obere und untere Schranken, Algorithmen- und Problemkomplexität

  • Exemplarische Analysen von Sortieralgorithmen

  • Sortierkomplexität und Entropie

  • Quellcodierung und Datenkompression

  • Komplexität von arithmetischen Operationen und Problemen (Multiplikation, Primtest, Faktorisierung)

  • modulare Arithmetik und schnelle Fouriertransformation

  • Kryptographie und Komplexität

Lernziele und Kompetenzen:

Die Studierenden

  • erwerben fundierte Kenntnisse über die Grundbegriffe der quantitativen Algorithmenanalyse (Laufzeit) und die benötigten mathematischen Methoden

  • verstehen die Komplexität (Laufzeitverhalten) von Standardalgorithmen (z.B. Sortieren, arithmetische Algorithmen) und können deren praktische Bedeutung erklären

  • sind in der Lage, an einfachen, exemplarischen Algorithmen Analysen des worst-case-Verhaltens und des average-case-Verhaltens durchzuführen

  • können exemplarisch Algorithmenkomplexität und Problemkomplexität in Bezug setzen

  • können die Beziehungen zwischen Sortier- und Suchkomplexität und dem Entropiebegriff darstellen

  • erwerben Grundkenntnisse über algebraische Strukturen der Arithmetik und die Komplexität arithmetischer Operationen

  • können die Rolle von Komplexitätsaussagen für die Beurteilung der Sicherheit einfacher kryptografischer Protokoll darstellen

Literatur:

Graham, Knuth, Patashnik, Concrete Mathematics, Addison-Wesley, 1994.
Cormen, Leiserson, Rivest, Stein, Introduction to Algorithms, MIT-Press, 2001.
Heun, Grundlegende Algorithmen, Vieweg, 2001.

Einbetten
Wordpress FAU Plugin
iFrame
Teilen