• Keine Ergebnisse gefunden

Aufgabe2(GreedyPfadplanung, 5Punkte ) Aufgabe1(Greedy-Algorithmen, 2+3+2Punkte ) AbgabeinderÜbungam22.06/23.06.2010 ÜbungenzuInformatikII-Blatt10

N/A
N/A
Protected

Academic year: 2021

Aktie "Aufgabe2(GreedyPfadplanung, 5Punkte ) Aufgabe1(Greedy-Algorithmen, 2+3+2Punkte ) AbgabeinderÜbungam22.06/23.06.2010 ÜbungenzuInformatikII-Blatt10"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. G. Zachmann

David Mainzer

TU Clausthal Institut für Informatik

15. Juni 2010

Sommersemester 2010

Übungen zu Informatik II - Blatt 10

Abgabe in der Übung am 22. 06 / 23. 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 (Greedy-Algorithmen, 2+3+2 Punkte)

Mit Ihrem neuen Erdgas-Auto planen Sie einen Ausflug über die Alpen zum Schiefen Turm von Pisa.

Einerseits wollen Sie auf der Fahrt so selten wie möglich zum Tanken anhalten, andererseits müssen Sie beachten, dass bisher nur ausgewählte Tankstellen Erdgas anbieten. Mit einem vollem Tank können Sie maximal D Kilometer fahren. Sie starten mit vollem Tank in Clausthal-Zellerfeld (E0) und fahren bis nach Pisa (En). Unterwegs kommen Sie der Reihe nach an den Erdgas-Tankstellen E1; E2; : : : ; En 1vorbei. Der Abstand zwischenEi 1undEibeträgtdiKilometer (miti = 1; : : : ; n), wobei jeweilsdi D gilt.

a) Geben Sie eine Greedy-Strategie für dieses Problem an.

b) Implementieren Sie ihre Strategie in Python, so dass Ihr Programm die minimale Anzahl an Tank-Stops ermittelt und eine Liste der anzufahrenden Tankstellen zurück gibt (die Position der Tankstelle im Array ist hier ausreichend). Implementieren Sie ihren Ansatz so, dass beim Auf- ruf array_Tankstellen = IHRE_STRATEGIE ( D,d )ein Array mit den anzufahrenden Tankstellen ausgegeben wird.

# Beispiel:

#

# Reichweite mit einer Tankfüllung D = 400

# Bsp. Array für Abstände der Tankstellen, beachten Sie, dass

# für jeden Wert im Array d < D gelten muss d = [100,20,304,50,43,34,2,34,124,45,232,45,90]

meine_Tankstops = berechnet ( D,d )

# Lsg. --> meine_Tankstops = [1,4,9]

c) Warum hat Ihre Greedy-Strategie die Greedy-Choice-Eigenschaft, d.h., warum liefert sie eine optimale Lösung?

Aufgabe 2 (Greedy Pfadplanung, 5 Punkte )

Beschreiben Sie einen Algorithmus als Pseudo-Code, um folgendes Problem zu lösen. Gegeben sind eine Menge achsenparallele Rechtecke in der Ebene als Hindernisse, die sich nicht gegenseitig über- lappen und nicht berühren. Außerdem ist ein Startpunkt (grün) und ein Endpunkt (rot) gegeben, die sich nicht in einem der Rechtecke befinden.

1

(2)

Die Aufgabe ist, einen möglichst kurzen Weg zu finden, der nicht durch die Hindernisse geht. (Der Weg darf auf dem Rand der Vierecke verlaufen, quasi “dicht an der Wand” entlang.)

Sie können davon ausgehen, dass eine Routine zur Berechnung des nähesten Schnittpunktes zwischen einem Geradensegment und einer Menge von achsenparallelen Rechtecken vorhanden ist (diese Routi- ne liefert ggf. auch die Antwort “kein Schnitt”). Außerdem liefert diese Routine die Seite des Vierecks, auf dem dieser Schnittpunkt liegt. Sie können auch davon ausgehen, dass Sie zu einer Viereckseite die beiden Eckpunkte bekommen können, und alle Informationen, die Sie sonst noch über Vierecke benötigen.

falscher Weg korrekter Weg

2

Referenzen

ÄHNLICHE DOKUMENTE

2 Man k¨ onnte sich vorstellen, dass in dieses Window alle 3D-Punkte innerhalb des View-Frustums nach der Viewing- Transformation und nach der Projektion abgebildet werden. 3 Hier

Neh- men wir nun an, wir h¨ atten einen Monitor, dessen Pixel keinen RGB-Wert entgegennehmen, sondern eine Frequenz (wieder pro Frame). jeder Pixel ist eine frei konfigurierbare

Der Ruckgabewert muss der String sein, welcher ausgeben werden soll, falls print RECHTECK aufgeruft

Ihre Aufgabe besteht nun darin, fur die folgenden Listenoperationen anzugeben, wie die Zeiger um- gebogen werden mussen. Fur einige Listenoperationen wurde dies bereits in

Vergleichen Sie die lineare, binäre und exponentielle Suche sowie Interpolation Search miteinander. Implementieren Sie dazu die Suchalgorithmen in Python und fügen Sie

Eine weitere Möglichkeit ist die Verwendung des Mittelwerts des ersten und des letzten Elements als Pivot-Wert: pivot := b(a[l]:key + a[r]:key)=2c. Sortieren Sie die oben

Eine p-Queue ist eine Queue, in der beim Herausnehmen eines Elementes aus der Queue immer das Element mit höchstem Wert gewählt wird (= Operation extract- max).. Mithilfe eines

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