• Keine Ergebnisse gefunden

Aufgabe1(BacktrackinginPython, 6+2Punkte ) AbgabeinderÜbungam29.06/30.06.2010 ÜbungenzuInformatikII-Blatt11

N/A
N/A
Protected

Academic year: 2021

Aktie "Aufgabe1(BacktrackinginPython, 6+2Punkte ) AbgabeinderÜbungam29.06/30.06.2010 ÜbungenzuInformatikII-Blatt11"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. G. Zachmann

David Mainzer

TU Clausthal Institut für Informatik

25. Juni 2010

Sommersemester 2010

Übungen zu Informatik II - Blatt 11

Abgabe in der Übung am 29. 06 / 30. 06. 2010

Bitte beachten Sie, dass die Programmieraufgaben von Ihnen in der Übung vorgeführt und er- klärt werden müssen. Zusätzlich senden Sie die Lösung, unter Angabe ihres Namens, andm@tu- clausthal.de.

Aufgabe 1 (Backtracking in Python, 6+2 Punkte)

Sie sitzen in der Mitte eines Labyrinthes und möchten einen Weg (Zusatzaufgabe: alle Wege) in die Freiheit finden. Eine gute Möglichkeit, diesen Weg zu finden ist die Verwendung von Backtracking.

Laden Sie sich hierfür von der Webpage das Archivlabyrinth.zip. Dies enthält das Framework labyrinthFramework.py und ein paar Labyrinthe. Diese Labyrinthe dienen zum Testen ihrer Lösung! Sie können dem Framework mittels Aufruf:

python labyrinthFramework.py TESTLABYRINTH eine Labyrinth-Datei übergeben. Ein Aufruf von:

python labyrinthFramework.py -h

erklärt den Aufbau der Labyrinth-Datei, falls Sie sich ein eigenes Labyrinth erstellen möchten. Auch ein parameterfreier Aufruf ist möglich, in diesem Fall wird das eingebaute Labyrinth verwendet.

Ziel ist in diesem Fall nicht das Finden des kürzesten Weges, sondern die korrekte Anwendung von Backtracking. Bitte kommentieren Sie ihren Code und geben Sie am Ende ihren gefunden Weg in folgender Form aus.

Weg:

(1, 1) (2, 1) (3, 1) (3, 2) (3, 3) (3, 4) (3, 5) (2, 5) (1, 5) (1, 4) oder

# # # # # # # # # # # #

# x # Z x x # #

# x x # # #

# x x x x x #

# # # # # # # # # # # #

a) Implementieren Sie ihren Algorithmus in das FrameworklabyrinthFrame.py b) Dokumentieren Sie ihren Code!

1

(2)

Aufgabe 2 (Clustering – Backtracking, 6+2 Punkte)

Wir definieren für eine PunktmengeA = x1; : : : ; xm den Durchmesser r(A) := maxfd(xi; xj) j xi; xj 2 Agwobeidirgend eine Abstandsfunktion ist.

Gegeben sei eine Mengenvon Datenpunkten und es gelte die euklidische Abstandsfunktion

d(xi; xj) =k xi xj k zwischen allen Punktpaaren. Unterteilen Sie die Datenpunkte so in zwei TeilmengenAundB, dassmaxfr(A); r(B)gminimal wird.

r(A)

r(B)

(a) Falsche Unterteilung

r(A)

r(B)

(b) Korrekte Unterteilung

Abbildung 1:

a) Beschreiben Sie in Pseudo-Code einen Algorithmus zur Lösung dieser Aufgabe. Die Bestimmung des Durchmessers einer Menge von Punkten ist bereits gegeben, z.B folgendermaßen:

Functiondurchmesser(A) Eingabe: Eine PunktmengeA

Ausgabe: Durchmesser dieser Punktmenge d = 0

fori = 0 ... len(A) - 1 do forj = i+1 ... len(A) - 1 do

dij =k xi xj k if dij> dthen

d = dij end end end

b) Wo und wie kann mittels Precomputation in Ihrer Lösung Zeit gespart werden? Beziehen Sie auch die Funktiondurchmesserin Ihre Überlegungen ein. Erläutern Sie ihre Lösung.

Bemerkung: Solch eine Unterteilung heißt Clustering. Dieses Verfahren kann man natürlich bei Bedarf rekursiv fortsetzen. Das Clustering ist eine wichtige Technik im sogenannten Maschinen-Lernen und dem Data-Mining.

2

Referenzen

ÄHNLICHE DOKUMENTE

Plötzlich spürt sie eine warme Hand auf ihrer Schulter, und eine freundliche Stimme fragt: „Aber Frau Hoffmann, was ist denn mit Ihnen los?“.. „Ich will nicht

Augen und Schwanz müssen exakt gearbeitet werden; sollen die Tiere oder Puppen geliebt werden, müssen alle Einzelheiten mit den neu erworbenen Vorstellungen des Schülers

für Konfliktfälle Gemeinsames Sorgerecht heißt jedoch nicht, daß beide Eltern in jeder das Kind be- treffenden Frage auch ge- meinsam entscheiden sollen.. Das neue

Weder das Werk als Ganzes noch seine Teile dürfen ohne Einwilligung des Verlages einge- scannt, an Dritte weitergeleitet, in ein Netzwerk wie Internet oder Intranet eingestellt

schiedliche Vorschläge unterbreitet worden. Ehe auf diese eingegangen wird, sei hier auf einen Sachverhalt aufmerksam gemacht, der, soweit ich sehe, bisher kaum

Am einfachsten ist es, wenn man mit den Legosteinen zunächst einen Rand um die gesamte Logo-Platte baut, sodass die Murmel nicht von der Platte rollen kann. Danach kann

Alle auf dem Foto identifizierbaren Personen müssen einer Veröffent-.. lichung des Bildes

Zu erklären, was Access to Own (ATO) ist, wäre auch eine schöne Aufgabe für Wissensschafe. Vielleicht würden Wissenschaftlerinnen und Wissenschaftler bestellte E-Books dann