Einführung SS09
Aus ProgrammingWiki
Archivierte Version vom 2010-03-16T19:07:39+00:00. Aktuelle Version
Inhaltsverzeichnis |
Absolut unlösbare Probleme
- Theoretische Informatik: Es gibt absolut unlösbare Probleme (Beispiel: Halteproblem, s. Lehrveranstaltung Programmierparadigmen)
Praktische unlösbare Probleme
- Algorithmus zur Lösung bekannt, meist sogar recht einfach; aber Prozess zur Ermittlung dieser Lösung erfordert eine Zeit, die jegliche Grenzen sprengt.
Beispiel: Schachspiel
- Baum aller Schachspiele ist endlich und kann (theoretisch) angegeben werden. Praktisch unmöglich.
Ackermann-Peter-Funktion
- Hier kann man immer wieder Argumente x,y finden, die dazu führen, dass man für AP(x,y) in zumutbarer Zeit keinen Wert erhält.
<eval id="4b9f7abf098a8"> (AP 2 3) </eval>
Sehr weit kommt man nicht, wenn man eine entsprechende x-y-Tabelle mit Werten der AP-Funktion ausfüllen möchte.
<eval id="4b9f8212ed7a7"> (do ((x 0 (+ x 1)))</eval>
((= x 4) (newline))
(do ((y 0 (+ y 1)))
((= y 4) (newline))
(display (cat (AP x y) 6))))Hinweis
cat sorgt für die Formatierung. Man entnimmt das Sprachelement der SRFI-54.
Empirische Analyse
- Problemgröße n feststellen und Aufwandsfunktion T(n)=f(n) anstreben.
Bit- vs. uniforme Komplexität
- Die Wahl der Basis b des Stellenwertsystems hat keinen Einfluss auf die Größenordnung des Aufwandes, d.h. lediglich ein konstanter Faktor ist zu berücksichtigen.
Beispiel: Multiplikation a la Russe
Hier stehen die Scheme-Prozeduren.
GNUPlot-Quelltext
set xlabel "n" set ylabel "T(n)" set data style lines plot \ <dataset> 10 105 60 2570 110 11640 160 27885 210 41715 260 73269 310 100959 360 143735 410 174574 460 242307 510 301169 560 357982 610 422730 660 519390 710 591507 760 645435 810 711284 860 865909 910 919575 960 988310 </dataset>
Probleminstanzen und Analyseformen
- Für jedes n Programm für k Probleminstanzen anwenden
- Je nach Analyseform den größten oder kleinsten bzw. das arithmetische Mittel der Werte nehmen.
- Analyseformen sind
- Worst-case-Analyse: Nimm die größte aller Instanzenzeiten.
- Averege-case-Analyse: Nimm das arithmetische Mittel aller Instanzenzeiten.
- Best-case-Analyse: Nimm die kleinste aller Instanzenzeiten.