Sie sind auf Seite 1von 6

Formale Methoden der Informatik WS 2010/2011

Lehrstuhl fur¨ Datenbanken und Kunstliche¨

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 Church’sche-These?

Jeder sinnvolle Berechenbarkeitsbegriff ist ¨aquivalent zur Turingberechenbarkeit bzw. µ-Rekursion bzw. Algorithmen (mit WHILE-Bedingungen). Eine (partielle) Funktion f : N n N ist genau dann im intuitiven Sinne (par- tiell) 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 ver- schiedenen Kriterien optimieren (die miteinander oftmals konkurrieren und sich teil- weise gegenseitig behindern“ oder sogar gegenseitig ausschließen):

Zeitbedarf bzw. Anzahl der Schritte bei der Ausfuhrung¨

ange des Programmes bzw. der Beschreibung des Verfahrens (m¨oglichst kurzes Programm)

Gr¨oße des ben¨otigten Speicherbedarfs bzw. Menge der (zwischenzeitlich) zu mer- kenden Informationen (m¨oglichst wenig Speicher)

(m¨oglichst kurze Dauer)

c) Worauf bezieht sich immer dieses n bei den Komplexit¨atsbetrachtungen?

Auf die Anzahl der Datenmenge, die vom Algorithmus bearbeitet wird. Beispiele:

beim Dijkstra (kurzester¨

beim schriftlichen Multiplizieren zweier Zahlen (nach der Schulmethode):

Weg): die Anzahl der Knoten im Graph,

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 F¨allen (und noch einigen weiteren).

Meist spricht man bei der Komplexit¨at von der sogenannten worst case Komple- xit¨at (der schlimmste anzunehmende Fall). Damit hat man eine obere Absch¨atzung fur¨ den Algorithmus (und meist ist diese Betrachtung auch schon aussagekr¨aftig genug). Zur Bestimmung ist h¨aufig eine eher oberfl¨achliche Betrachtung des Algorithmus und seiner Abl¨aufe bereits ausreichend.

Bei manchen Algorithmen unterscheidet sich die sogenannte average case Kom- plexit¨at (durchschnittlicher Aufwand) aber doch deutlich vom schlimmsten anzu- nehmenden Fall. Zur Bestimmung ist hier meist eine recht genaue Komplexi¨atsanalyse notwendig, da man hier insbesondere die H¨aufigkeit (und Wahrscheinlichkeit) der im Algorithmus auftretenden F¨alle berucksichtigen¨ muss.

Eine Minimal-Aufwandsbetrachtung kann manchmal interessant sein, um zu sehen, wie groß der Aufwand mindestens (bestenfalls) schon sein wird, wird aber eher selten durchgefuhrt.¨

1

e) Was versteht man unter Komplexit¨atsklassen?

die genaue Schrittzahl bei einem Ver-

fahren ben¨otigt. Insbesondere wird (meist) nicht mehr aufgefuhrt,¨

ob es Bereiche im Algorithmus gibt,

die (fur¨ sich genommen) einen h¨oheren oder niedrigeren Aufwand besitzen (immer ge- messen an der Datenmenge n). In solchen F¨allen werden die verschiedenen Aufw¨ande“ der Bereiche in eher grobe Klassen unterteilt (z.B. O(n), O(log n), O(n 2 ), O(e n )), zusammengeworfen“ und der gr¨oßte Aufwand im Algorithmus uberwiegt¨ dann. (siehe auch Aufgabe 50)

Meist werden keine exakten Angaben z.B. uber¨

f) Wie ermittelt man die Komplexit¨at 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 zun¨achst die innersten“) erh¨alt erstmal eine eigene Bewertung (in O-Notation).

Sequenz von Anweisungen konstanter Aufwand = O(1)

Wiederholungsschleife Wie oft wird die Schleife (im Verh¨altnis zu n) wie- derholt? (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 (ausgedruckt¨ abh¨angig von n) multipliziert. Dies gilt insbesondere fur¨ 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 – 2 n Wie- derholungen / Intervall-Teilung – log n Wiederholungen / etc.)

g) Welche Rechenregeln gibt es fur¨ die O-Notation?

O(α · x) = α · O(x) = O(x)

O(x) · O(y) = O(x · y)

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

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

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

h) Was ist eine Clique?

Ein vollst¨andiger Untergraph (im Sinne von: alle Knoten sind mit allen anderen Kanten des Untergraphen verbunden).

2

47. Aufgabe (4 Punkte) Post’sches Korrespondenzproblem:

Man zeige, dass die folgenden post’schen Korrespondenzprobleme eine L¨osung haben:

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

2, 2, 3, 1

aabaabba

=

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

1, 2, 3, 2

aaabbaaab

=

abba

a

a

ba

x

2

x

2

x

3

x

1

=

aaab

b aaa

b =

aaabbaaab = abba a a ba x 2 x 2 x 3 x 1 = aaab
aaabbaaab = abba a a ba x 2 x 2 x 3 x 1 = aaab

x

1

x

2

x

3

x

2

aab

aab

b

a

y

2

y

2

y

3

y

1

a

aab

ba

aab

y

1

y

2

y

3

y

2

48. Aufgabe (6 Punkte) Game of Life:

Geben Sie (ohne Hilfe des Simulators) die n¨achsten drei Iterationen an unter Angabe der verwen- deten Regeln.

111 212 323 123434321 112343 211 123434321 323 212 111 a) 1 1 1 232
111
212
323
123434321
112343
211
123434321
323
212
111
a)
1
1
1
232
1
1 3
3
1
2434
2
1
2 3
3
2
4
6
5
6
4
2
4
3
3
3
5
4
5
3
3
2
4
6
5
6
4
2
1
2
4
3
4
2
1
1
232
1
Regeln:
1.
Zellen mit nur einem Nachbarn sterben aus
Durch Symmetrie setzt
sich der Ausschnitt fort.
2.
Zellen mit zwei Nachbarn verändern sich nicht
3.
Zellen mit drei Nachbarn kommen neu hinzu
4.
Zellen mit vier oder mehr Nachbarn sterben aus

3

1 2 2 1 1 1 2 3 2 1 1 2 3 322 2
1 2
2
1
1 1
2
3
2
1
1 2
3
322
2
4
3
2
11
2
1
111
b)
1
2
2
1
1
1 2
1
1
2
3
4
3
1
2
1 4
1
2
1
2
2
1
2
353
2
2
1 5
2
3
1 2
2
1
1
1
2
3 2
2
1
1 3
1
2
1 1
3
2
1
1 1
1
111
1 1
1
1 1
1
2
1
2
2
1
2
111

49. Aufgabe (4 Punkte) Komplexit¨at verschiedener Algorithmen:

Geben Sie zu den gegebenen Aufgaben die Komplexit¨at des Problems in O-Notation an:

a) Suchen eines beliebigen Elementes in einer unsortierten Liste (z.B. Zahlen) der L¨ange n.

O(n)

b) Suchen eines beliebigen Namens im Telefonbuch (mit n Eintr¨agen im Telefonbuch). Hinweis: Denken Sie an die in der Vorlesung diskutierte Intervall-Teilung.

O(log 2 n)

c) Multiplizieren von zwei n-stelligen Zahlen nach der Schulmethode.

O(n 2 )

d) Multiplizieren von zwei n × n-Matrizen nach der Schulmethode.

O(n 3 )

4

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 finden, die zu allen Kunden und danach wieder zuruck¨ fuhrt.¨ Fur¨ jede Wegstrecke ist deshalb die Entfernung angegeben. Zur Vereinfachung wollen wir die Bedingungen fur¨ die Reiseroute so w¨ahlen, dass es zwischen jeweils zwei Kunden immer einen Weg gibt und dass jeder Kunde nur einmal aufgesucht werden darf. Mit diesen Einschr¨ankungen haben alle Reiserouten die gleiche Anzahl an Teilstrecken. Als Beispiel sei folgendes Wegenetz mit Ausgangspunkt(A) und den 5 Kunden (K 1 bis K 5 ) gegeben.

K

4

7 5

K

5

1

K

3

4

3 2 4 3 5 3 3
3
2
4
3
5
3 3

6 A

6

K

9

K

2

1

4

a) Wieviele M¨oglichkeiten fur¨ gultige¨

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 K 1 K 5 K 3 K 4 K 2 A oder ruckw¨ ¨arts. Suchmethode: Alle ausprobieren!

Dies ist die Suche nach der kurzesten¨

erlicherweise gibt es keinen effizienten Algorithmus, um nach der kurzesten¨

zu suchen (zumindest, wenn man das exakte Ergebnis wunscht¨ das systematische Ausprobieren).

Rundreise (Hamiltonkreis im Graphen). Bedau-

Rundreise

— dann hilft eben nur

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 fur¨ die Suche nach der optimalen Reiseroute?

Da die Anzahl der zu uberpr¨ ufenden¨ Reiserouten ziemlich schnell mit n steigt, kann man die Berechnung nur fur¨ kleine n uberhaupt¨ durchfuhren.!¨

e) Wenn ein Computer heute die L¨osung fur¨ 50 Kunden in akzeptabler Zeit berechnen k¨onnte, fur¨ wieviele Kunden k¨onnte dann ein um den Faktor 10 schnellerer Computer eine L¨osung mit dem gleichen Algorithmus berechnen?

Auch nur fur¨ 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 fur¨ sehr große n schneller wachsen.

i.

O(n 2 )

ii.

O(e n )

iii.

O(n)

iv.

O(n!)

v.

O(2 · n)

vi.

O(n 3 )

vii.

O(log n)

viii.

O(n · log n)

ix.

O(1)

x.

O(n n )

xi.

O(n 9 )

xii.

O(1.001 n )

xiii.

O((n n ) n )

xiv.

O(n ( n n ) )

O(1) < O(log n) < O(n) < O(2 · n) < O(n · log n) < O(n 2 ) < O(n 3 ) < O(n 9 ) < O(1.001 n ) <

O(e n ) < O(n!) < O(n n ) <

O((n n ) n ) < O(n ( n n )

O

( n n ·n )

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 (posi- tiven) Zahlen. Gesucht wird eine Aufteilung dieser Zahlen auf zwei Haufen, so dass die Differenz der Summen der Zahlen in den beiden Haufen m¨oglichst klein ist.

Eine ¨aquivalente Formulierung lautet pr¨aziser: Gegeben sei eine (Multi-)Menge A von N positiven Zahlen a i . Gesucht wird eine Untermenge A 1 A, so dass

a i

E :=

a i A 1

a i

a 1 A \ A 1

minimal wird. Ist die Summe aller N Zahlen ungerade, so ist die minimale Differenz E min eins, ansonsten null. Eine Aufteilung, fur¨ die E = E min ist, heißt perfekte Aufteilung.

Im folgenden sind einige Zahlenfolgen gegeben. Finden Sie eine perfekte Aufteilung oder begrunden¨

a) 3, 7, 11, 12, 14, 17, 20, 23, 31

Sie, warum keine m¨oglich ist.

A = {3, 7, 11, 17, 31} und A 1 = {12, 14, 20, 23}

b) 2, 4, 6, 8, 10, 12, 14, 16, 18

Nicht m¨oglich. Die Gesamtsumme der Folge bel¨auft sich auf 90. Eine perfekte Aufteilung in zwei Teil- mengen musste¨ jeweils eine Summe von 45 ergeben. Da nur gerade Zahlen zur Verfugung¨ stehen, ist eine Summe von 45 nicht erreichbar.

Eine m¨ogliche minimale Aufteilung (nicht verlangt) w¨are:

A = {16, 12, 10, 4, 2} (Summe = 44) und A 1 = {18, 14, 8, 6} (Summe = 46)

6