Sie sind auf Seite 1von 6

Formale Methoden der Informatik WS 2010/2011

Lehrstuhl f
ur Datenbanken und K
unstliche Intelligenz

Prof. Dr. Dr. F. J. Radermacher H. Unver


T. Rehfeld J. Dollinger
9. Aufgabenblatt

Besprechung in den Tutorien vom 12.01.2011 (ab Ubungstermin)

bis 19.01.2011 (bis Ubungstermin)

46. Aufgabe (4 Punkte) Verst


andnisfragen:
a) Was besagt die Churchsche-These?
Jeder sinnvolle Berechenbarkeitsbegri ist aquivalent zur Turingberechenbarkeit bzw.
-Rekursion bzw. Algorithmen (mit WHILE-Bedingungen).
Eine (partielle) Funktion f : Nn N ist genau dann im intuitiven Sinne (partiell) berechenbar, wenn sie (partiell) turing-berechenbar ist.
b) Welche Arten von Komplexit
atsbetrachtungen kann man unterscheiden?
Bei der Komplexit
at eines Algorithmus oder eines Programmes kann man nach verschiedenen Kriterien optimieren (die miteinander oftmals konkurrieren und sich teilweise gegenseitig behindern oder sogar gegenseitig ausschlieen):

Zeitbedarf bzw. Anzahl der Schritte bei der Ausf


uhrung (moglichst kurze Dauer)
L
ange des Programmes bzw. der Beschreibung des Verfahrens
(m
oglichst kurzes Programm)
Gr
oe des ben
otigten Speicherbedarfs bzw. Menge der (zwischenzeitlich) zu merkenden Informationen (moglichst wenig Speicher)
c) Worauf bezieht sich immer dieses n bei den Komplexitatsbetrachtungen?
Auf die Anzahl der Datenmenge, die vom Algorithmus bearbeitet wird.
Beispiele:
beim Dijkstra (k
urzester Weg): die Anzahl der Knoten im Graph,
beim schriftlichen Multiplizieren zweier Zahlen (nach der Schulmethode):
die L
ange (Anzahl der Stellen) der Zahlen,
bei Sortierproblemen: die Anzahl der zu sortierenden Daten,
bei Suchproblemen: die Anzahl der Daten, in denen gesucht wird.
d) Welche F
alle betrachtet man meistens
(minimaler Aufwand / durchschnittlicher Aufwand / maximaler Aufwand)?
Es gibt in der Tat Betrachtungen zu allen diesen Fallen (und noch einigen weiteren).
Meist spricht man bei der Komplexitat von der sogenannten worst case Komplexit
at (der schlimmste anzunehmende Fall). Damit hat man eine obere Abschatzung
f
ur den Algorithmus (und meist ist diese Betrachtung auch schon aussagekraftig
genug).
Zur Bestimmung ist haug eine eher oberachliche Betrachtung des Algorithmus
und seiner Abl
aufe bereits ausreichend.
Bei manchen Algorithmen unterscheidet sich die sogenannte average case Komplexit
at (durchschnittlicher Aufwand) aber doch deutlich vom schlimmsten anzunehmenden Fall.
Zur Bestimmung ist hier meist eine recht genaue Komplexiatsanalyse notwendig, da
man hier insbesondere die Haugkeit (und Wahrscheinlichkeit) der im Algorithmus
auftretenden F
alle ber
ucksichtigen muss.
Eine Minimal-Aufwandsbetrachtung kann manchmal interessant sein, um zu sehen,
wie gro der Aufwand mindestens (bestenfalls) schon sein wird, wird aber eher
selten durchgef
uhrt.
1

e) Was versteht man unter Komplexitatsklassen?


Meist werden keine exakten Angaben z.B. u
ber die genaue Schrittzahl bei einem Verfahren ben
otigt.
Insbesondere wird (meist) nicht mehr aufgef
uhrt, ob es Bereiche im Algorithmus gibt,
die (f
ur sich genommen) einen hoheren oder niedrigeren Aufwand besitzen (immer gemessen an der Datenmenge n).
In solchen F
allen werden die verschiedenen Aufwande der Bereiche in eher grobe

Klassen unterteilt (z.B. O(n), O(log n), O(n2 ), O(en )), zusammengeworfen und der

gr
ote Aufwand im Algorithmus u
berwiegt dann. (siehe auch Aufgabe 50)
f) Wie ermittelt man die Komplexitat eines Algorithmus?
Im wesentlichen durch Betrachtung der Struktur des Algorithmus.
Man Unterteilt den Algorithmus in verschiedene Bereichte:
(vor und nach einer Wiederholungsschleife / innerhalb einer Wiederholungsscheife /
Bereich, der rekursiv aufgerufen wird und sich deshalb immer wieder wiederholt /
etc.)
Jeder dieser Bereiche (insbesondere zunachst die innersten) erhalt erstmal eine

eigene Bewertung (in O-Notation).


Sequenz von Anweisungen konstanter Aufwand = O(1)
Wiederholungsschleife Wie oft wird die Schleife (im Verhaltnis zu n) wiederholt?
(z.B. n mal einfache Wiederholung / log n mal bei Intervall-Teilung)
(man achte auf die Schleifenbedingungen)
Der Aufwand im inneren der Schleife wird mit dieser Anzahl (ausgedr
uckt
abh
angig von n) multipliziert.
Dies gilt insbesondere f
ur geschachtelte Schleifen.
Rekursion abh
angig von der Art der Rekursion wird der Aufwand des in
neren der Rekursion wieder mit der Anzahl der Wiederholungen multipliziert.
(z.B. lineare Rekursion n Wiederholungen / baumartige Rekursion 2n Wiederholungen / Intervall-Teilung log n Wiederholungen / etc.)
g) Welche Rechenregeln gibt es f
ur die O-Notation?
O( x) = O(x) = O(x)
O(x) O(y) = O(x y)

, mit = const., x = x(n)


, mit x = x(n), y = y(n)

O(klein) + O(gro) = O(gro)


h) Was ist eine Clique?
Ein vollst
andiger Untergraph (im Sinne von: alle Knoten sind mit allen anderen Kanten
des Untergraphen verbunden).

47. Aufgabe (4 Punkte) Postsches Korrespondenzproblem:


Man zeige, dass die folgenden postschen Korrespondenzprobleme eine Losung haben:
a) (x1 , y1 )
(x2 , y2 )
(x3 , y3 )

= (abba, a),
= (a, aab),
= (ba, b)
2, 2, 3, 1 aabaabba =

a 
a 
ba abba


x2

b) (x1 , y1 )
(x2 , y2 )
(x3 , y3 )

x2

x3

x1

aab 
aab 
b 
a

y2

y2

y3

y1

= (aaab, a),
= (b, aab),
= (aaa, ba)
1, 2, 3, 2 aaabbaaab =

b 
aaa 
b
aaab
  
x1

x2

x3

x2

a 
aab 
ba 
aab

y1

y2

y3

y2

48. Aufgabe (6 Punkte) Game of Life:


Geben Sie (ohne Hilfe des Simulators) die nachsten drei Iterationen an unter Angabe der verwendeten Regeln.
1

a)

Regeln: 1.
2.
3.
4.

Zellen mit nur einem Nachbarn sterben aus


Zellen mit zwei Nachbarn verndern sich nicht
Zellen mit drei Nachbarn kommen neu hinzu
Zellen mit vier oder mehr Nachbarn sterben aus

Durch Symmetrie setzt


sich der Ausschnitt fort.

b)

49. Aufgabe (4 Punkte) Komplexit


at verschiedener Algorithmen:
Geben Sie zu den gegebenen Aufgaben die Komplexitat des Problems in O-Notation an:
a) Suchen eines beliebigen Elementes in einer unsortierten Liste (z.B. Zahlen) der Lange n.
O(n)
b) Suchen eines beliebigen Namens im Telefonbuch (mit n Eintragen im Telefonbuch).
Hinweis: Denken Sie an die in der Vorlesung diskutierte Intervall-Teilung.
O(log2 n)
c) Multiplizieren von zwei n-stelligen Zahlen nach der Schulmethode.
O(n2 )
d) Multiplizieren von zwei n n-Matrizen nach der Schulmethode.
O(n3 )

50. Aufgabe (5 Punkte) Komplexit


at des Travelling Salesman Problems:
Stellen Sie sich einen Aussendienstmitarbeiter vor, der n Kunden nacheinander besuchen soll. Die
Aufgabe soll nun sein, die Reiseroute zu nden, die zu allen Kunden und danach wieder zur
uck
f
uhrt. F
ur jede Wegstrecke ist deshalb die Entfernung angegeben. Zur Vereinfachung wollen wir
die Bedingungen f
ur die Reiseroute so wahlen, dass es zwischen jeweils zwei Kunden immer einen
Weg gibt und dass jeder Kunde nur einmal aufgesucht werden darf. Mit diesen Einschrankungen
haben alle Reiserouten die gleiche Anzahl an Teilstrecken. Als Beispiel sei folgendes Wegenetz mit
Ausgangspunkt(A) und den 5 Kunden (K1 bis K5 ) gegeben.
.................
.
...
...........
...........
....... .............3
.
... .............
.
.
.
.
. ......
.....
...
.
.
.
.
.
................
.
.
.
....
...
...... ........
..
..
...
...
..
..
.....
.....
...
...
... 4.........
... 2.....
..
.
.
.
.
.
.
.
.
............... ...... ..
... ...... ..............
.
.
.
.
.
.. ... ...........
.
.
..
........ ...
.
.
... .. ........
.
.
.
.
...
.
..
... ...
....... .........
......
.
...
.
.........
....
...
...
......
...... ............ .........
... .... .................
......... ... ...
....... ... ........
............. ..........
.
.
. .. .. ..
.... .......... .....
... ........... ....
..
.....
...
...
...
..
...
... 5.....
... 1....
...
..............
...
..
.
..............
.....
.
.
.............
.....
......
.
.
.
.
.
.
.
.
.
... .......
........ ...
.........
..........
...
.
................
.

7 5
K

2 K
9

a) Wieviele M
oglichkeiten f
ur g
ultige Reiserouten gibt es?
Kombinatorische M
oglichkeiten:
5! = 5 4 3 2 1 = 120
b) Welches ist die optimale Reiseroute? Nach welcher Methode suchen Sie diese?
A K1 K5 K3 K4 K2 A oder r
uckwarts.
Suchmethode: Alle ausprobieren!
Dies ist die Suche nach der k
urzesten Rundreise (Hamiltonkreis im Graphen). Bedauerlicherweise gibt es keinen ezienten Algorithmus, um nach der k
urzesten Rundreise
zu suchen (zumindest, wenn man das exakte Ergebnis w
unscht dann hilft eben nur
das systematische Ausprobieren).
c) Wieviele verschiedene Reiserouten gibt es bei 5, 50 und 500 Kunden?
Bei 5 Kunden: (siehe oben) 5! = 120
Bei 50 Kunden: 50! = 30414093201713378043612608166064768844377641568960512000000000000
Bei 500 Kunden 500! =
12201368259911100687012387854230469262535743428031928421924135883858453731538819
97605496447502203281863013616477148203584163378722078177200480785205159329285477
90757193933060377296085908627042917454788242491272634430567017327076946106280231
04526442188787894657547771498634943677810376442740338273653974713864778784954384
89595537537990423241061271326984327745715546309977202781014561081188373709531016
35632443298702956389662891165897476957208792692887128178007026517450776841071962
43903943225364226052349458501299185715012487069615681416253590566934238130088562
49246891564126775654481886506593847951775360894005745238940335798476363944905313
06232374906644504882466507594673586207463792518420045936969298102226397195259719
09452178233317569345815085523328207628200234026269078983424517120062077146409794
56116127629145951237229913340169552363850942885592018727433795173014586357570828
35578015873543276888868012039988238470215146760544540766353598417443048012893831
38968816394874696588175045069263653381750554781286400000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000
d) Was bedeutet das f
ur die Suche nach der optimalen Reiseroute?
Da die Anzahl der zu u
ufenden Reiserouten ziemlich schnell mit n steigt, kann
berpr
man die Berechnung nur f
ur kleine n u
uhren.!
berhaupt durchf
e) Wenn ein Computer heute die L
osung f
ur 50 Kunden in akzeptabler Zeit berechnen konnte,
f
ur wieviele Kunden k
onnte dann ein um den Faktor 10 schnellerer Computer eine Losung
mit dem gleichen Algorithmus berechnen?
Auch nur f
ur 50 oder 51.
5

51. Aufgabe (3 Punkte) Reihenfolge verschiedener O-Funktionen:


Gegeben sind folgende Komplexit
aten in O-Notation. Bringen Sie diese in die richtige Reihenfolge.
Hinweis: Beachten Sie, welche der Funktionen f
ur sehr groe n schneller wachsen.
i.
ii.
iii.
iv.
v.
vi.
vii.
viii.
ix.
x.
xi.
xii.
xiii.
xiv.

O(n2 )
O(en )
O(n)
O(n!)
O(2 n)
O(n3 )
O(log n)
O(n log n)
O(1)
O(nn )
O(n9 )
O(1.001n )
O((nn )n )
n
O(n(n ) )
O(1) < O(log n) < O(n) < O(2 n) < O(n log n) < O(n2 ) < O(n3 ) < O(n9 ) < O(1.001n ) <
n
O(en ) < O(n!) < O(nn ) < O((nn )n ) < O(n(n )
  
O(nnn )

52. Aufgabe (2 Punkte) Partition:


Das Partitionsproblem (auch Zahlenaufteilungsproblem, oft mit Partition notiert) ist ein
Optimierungs- bzw. Entscheidungsproblem der Kombinatorik.
Die Aufgabenstellung beim Partitionsproblem lautet: Gegeben sei eine (Multi-)Menge von (positiven) Zahlen. Gesucht wird eine Aufteilung dieser Zahlen auf zwei Haufen, so dass die Dierenz
der Summen der Zahlen in den beiden Haufen moglichst klein ist.
Eine
aquivalente Formulierung lautet praziser: Gegeben sei eine (Multi-)Menge A von N positiven
Zahlen ai . Gesucht wird eine Untermenge A1 A, so dass


 




E := 
ai
ai 
ai A1
a1 A\A1 
minimal wird. Ist die Summe aller N Zahlen ungerade, so ist die minimale Dierenz Emin eins,
ansonsten null. Eine Aufteilung, f
ur die E = Emin ist, heit perfekte Aufteilung.
Im folgenden sind einige Zahlenfolgen gegeben.
Finden Sie eine perfekte Aufteilung oder begr
unden Sie, warum keine moglich ist.
a) 3, 7, 11, 12, 14, 17, 20, 23, 31
A = {3, 7, 11, 17, 31} und A1 = {12, 14, 20, 23}
b) 2, 4, 6, 8, 10, 12, 14, 16, 18
Nicht m
oglich.
Die Gesamtsumme der Folge belauft sich auf 90. Eine perfekte Aufteilung in zwei Teilmengen m
usste jeweils eine Summe von 45 ergeben. Da nur gerade Zahlen zur Verf
ugung
stehen, ist eine Summe von 45 nicht erreichbar.
Eine m
ogliche minimale Aufteilung (nicht verlangt) ware:
A = {16, 12, 10, 4, 2} (Summe = 44) und A1 = {18, 14, 8, 6} (Summe = 46)
6

Das könnte Ihnen auch gefallen