Seite 1 von 13 Name: Aufgabe 1: Suchalgorithmen (a) (4 Punkte ) Gegeben ist folgendes Streckennetz:

Ähnliche Dokumente
1 topologisches Sortieren

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Algorithmen und Datenstrukturen 2

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Kurs 1613 Einführung in die imperative Programmierung

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Algorithmen & Datenstrukturen 1. Klausur

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

Tutorium Algorithmen & Datenstrukturen

Graphen: Datenstrukturen und Algorithmen

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Vorlesung : Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Datenstrukturen & Algorithmen

6-1 A. Schwill Grundlagen der Programmierung II SS 2005

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Einführung in die Informatik 1

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

EndTermTest PROGALGO WS1516 A

Breiten- und Tiefensuche in Graphen

Aufgabe 1: Eigenschaften von Algorithmen I

Datenstrukturen in Java

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Programmiertechnik II

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 2

Grundwissen Informatik Q11/12 Fragenkatalog

Binäre Bäume Darstellung und Traversierung

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

Name:... Vorname:... Matrikel-Nr.:... Unterschrift:...

Anmerkungen zur Übergangsprüfung

8. Uninformierte Suche

Kapiteltests zum Leitprogramm Binäre Suchbäume

4 Greedy-Algorithmen (gierige Algorithmen)

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Suchen in Listen und Hashtabellen

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK

Wissensbasierte Systeme

Kapitel 5: Dynamisches Programmieren Gliederung

Konzepte der Informatik

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

DAP2-Klausur

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Sortierverfahren für Felder (Listen)

Algorithmen und Datenstrukturen

Statistische Untersuchungen zu endlichen Funktionsgraphen

Parallele und funktionale Programmierung Wintersemester 2013/ Übung Abgabe bis , 16:00 Uhr

Programmierung und Modellierung

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

Über Arrays und verkettete Listen Listen in Delphi

Kurs 1793 Software Engineering I Nachklausur am

Seminar künstliche Intelligenz

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Algorithmen und Datenstrukturen Bereichsbäume

Wasserfall-Ansätze zur Bildsegmentierung

Herbst. Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen. Prüfungsteilnehmer prüfungstermin Einzelprüfungsnummei. - Prüfungsaufgaben -

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany Stammbaum. Stammbaum. Stammbaum

DATENSTRUKTUREN UND ZAHLENSYSTEME

Grundlagen der Programmierung 2. Bäume

Schulinterner Lehrplan für das Fach Informatik der Sekundarstufe II an der Bettine von Arnim Gesamtschule

Probeklausur Grundlagen der Datenbanksysteme II

Zeichnen von Graphen. graph drawing

Präfx Trie zur Stringverarbeitung. Cheng Ying Sabine Laubichler Vasker Pokhrel

Datenbankentwurf. Entwicklungsprozess Anforderungsanalyse & Miniwelt

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Dr. Monika Meiler. Inhalt

Algorithmische Methoden der Netzwerkanalyse

Kurs 1793 Software Engineering I Hauptklausur am

HINWEISE ZUR ADS-KLAUSUR SS06 für BACHELOR (für beide Termine)

Vorlesung Informatik II

Verwendung der Visage Java-API

Inhalte Informatik. I1 Grundprinzip des objektorientierten Modellierens I3 Modellieren von Netzwerkanwendungen

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Fully dynamic algorithms for the single source shortest path problem.

Algorithmen und Datenstrukturen Suchbaum

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 6

Wissensbasierte Systeme

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = +

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Algorithmen und Datenstrukturen Balancierte Suchbäume

16. All Pairs Shortest Path (ASPS)

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. SS 06

VBA-Programmierung: Zusammenfassung

Binäre lineare Optimierung mit K*BMDs p.1/42

Beispiel zu Datenstrukturen

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

Sortieren. Eine Testmenge erstellen

9 Verteilte Verklemmungserkennung

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Software ubiquitärer Systeme

Transkript:

Seite 1 von 13 Aufgabe 1: Suchalgorithmen (a) (4 ) Gegeben ist folgendes Streckennetz: (12 ) B D A F Z C E Zeigen Sie durch Handsimulation wie mit dem Breitensuch-Algorithmus ein Weg von nach gefunden wird. Für die Reihenfolge, in der Nachfolger-Knoten besucht werden, sei eine alphabetische Ordnung vorgegeben (A B C D E F Z). (b) (1 Punkt ) Was ist ein Zyklus und wie können Zyklen bei der Breitensuche erkannt und vermieden werden?

Seite 2 von 13 (c) (4 ) Nun sind zusätzlich Entfernungen zwischen den Orten (an den Kanten) und untere Schranken für die Restwegkosten (an den Knoten) gegeben: 5 A 1 1 4 1 B 3 D 2 F 2 4 1 6 C 1 E 5 6 2 Z Zeigen Sie durch Handsimulation wie mit dem A* Algorithmus für bewertete Kanten der Weg von nach gefunden wird. Die Ordnung der Nachfolger-Knoten sei wieder alphabetisch. (d) (1 Punkt ) Was ist die Terminationsbedingung für A* und Branch-and-Bound?

Seite 3 von 13 (e) (1 Punkt ) In welcher Hinsicht ist Branch-and-Bound als Spezialfall von A* zu sehen? (f) (1 Punkt ) Mit welcher Speicherstruktur und welchem Abarbeitungsprinzip kann Tiefensuche realisiert werden?

Seite 4 von 13 Aufgabe 2: Greedy-Algorithmen (a) (1 Punkt ) Was ist der Unterschied zwischen greedy-lösbarkeit und greedy-algorithmus? (13 ) (b) (10 ) Ein Fabrikant möchte einige seiner Maschinen erneuern. Für jede Maschine sind die Leistung (Anzahl der produzierten Stücke pro Zeit) und die Betriebskosten (pro Zeit) bekannt. Erneuert werden sollen die unwirtschaftlichsten Maschinen. Die Auswahl soll durch einen greedy-algorithmus erfolgen. Entsprechend wird als greedy-kriterium der Quotient verwendet. Gegeben seien Maschinen, wovon erneuert werden sollen ( ). Die Maschinen werden durch folgenden Datentyp repräsentiert: TYPE Maschtyp = RECORD Kennung Kosten Leistung Erneuern END; : INTEGER; : REAL; : REAL; : BOOLEAN; TYPE Maschinen = ARRAY[1..n] OF Maschtyp; (* n als Konstante vorgegeben *) Gesucht ist eine (MODULA-2) Prozedur PROCEDURE erneuere (VAR AlleMasch:Maschinen), die aus den vorhandenen Maschinen diejenigen Maschinen auswählt, die bevorzugt erneuert werden sollen. Dabei sei AlleMasch bereits vorbelegt (Kennung, Leistung und Kosten sind gegeben; Erneuern ist für alle Maschinen auf FALSE gesetzt) und m und n seien als Konstanten vorgegeben. HINWEIS: Für den greedy-algorithmus sollen die Daten nicht vorsortiert werden!

Seite 5 von 13 PROCEDURE erneuere (VAR AlleMasch:Maschinen); END erneuere;

Seite 6 von 13 (c) (2 ) Gegeben ist das Rucksack-Problem: Ein Dieb will möglichst viel Geld aus einem Münz-Tresor stehlen. Die Münzen im Tresor haben alle dasselbe Gewicht, aber unterschiedliche Wertigkeiten. Der Dieb hat einen Rucksack dabei, in den maximal Münzen passen. Was ist das greedy-kriterium für dieses Problem?

Seite 7 von 13 Aufgabe 3: Graphalgorithmen (13 ) (a) (1 Punkt ) Was repräsentiert der aufspannende Baum eines Graphen? (b) (10 Punkt ) In einem Supermarkt soll die Anordnung der Waren optimiert werden. Aus diesem Grund wird zunächst für verschiedene Produktsorten (sowie die Kasse) erhoben, wie weit die Wege zwischen diesen Produkten sind. Das Ergebnis der Analyse ist im folgenden Graph abgebildet: BACKWAREN 3 KNABBER 12 5 KASSE MILCH 8 KONSERVEN 4 2 6 7 FLEISCH OBST Implementieren Sie den Dijkstra-Algorithmus (in MODULA-2) um zu ermitteln, wie hoch die minimalen Wegekosten von einer fest vorgegebenen Position zu allen anderen Positionen sind. Vorgaben: CONST MatrixDimension = 7; UNENDLICH = 99; TYPE Matrix = ARRAY[1..MatrixDimension],[1..MatrixDimension] OF INTEGER; ErgebnisArray = ARRAY[1..MatrixDimension] OF INTEGER; Die Knotenbezeichner ( Kasse, Backwaren, etc.) werden dabei durch Zahlen "!$#% &')(+*,-. / - '10 angegeben. Die Kosten sind als INTEGER vorgegeben. Gesucht ist die Prozedur PROCEDURE Dijkstra (VAR kmatrix: Matrix; VAR Ergebnis: ErgebnisArray; startknoten: INTEGER); wobei kmatrix bereits initialisiert sei (Adjazenzmatrix des Graphen).

Seite 8 von 13 PROCEDURE Dijkstra (VAR kmatrix: Matrix; VAR Ergebnis: ErgebnisArray; startknoten: INTEGER); END Dijkstra;

Seite 9 von 13 (c) (1 Punkt ) Wie hoch sind die minimalen Wegekosten von der Kasse zu allen angegebenen Waren? Backwaren Milch Fleisch Knabber Konserven Obst (d) (1 Punkt ) Was ist der Aufwand des Dijkstra-Algorithmus?

Seite 10 von 13 Aufgabe 4: Dynamische Datenstrukturen (a) (1 Punkt ) Welche Aufwandsklasse hat die Suche nach einem Eintrag in einem maximal ausgewogenen Binärbaum im Vergleich zur Suche in einer ungeordneten Liste (bei annährend gleichen Zugriffswahrscheinlichkeiten auf die Daten)? (12 ) (b) (1 Punkt ) Was ist ein 2 -höhen-balancierter Baum? (c) (3 ) Gegeben ist der unten abgebildete 1-höhenbalancierte, geordnete Binärbaum (angegeben sind nur die Schlüssel). In diesen Baum soll ein neues Element mit Schlüssel 11 eingefügt werden, so daß wieder ein 1-höhenbalancierter, geordneter Binärbaum entsteht. Zeichnen Sie den resultierenden Baum auf. 13 7 19 3 10 17 20 1 4 9 12 15 18

Seite 11 von 13 (d) (2 ) Wie kann beim offenen Hashing vermieden werden, daß alle Schlüssel dem selben Indexplatz zugewiesen werden?

Seite 12 von 13 (e) (3 ) Die Verwaltung einer Studierenden-Kartei soll von geschlossenem auf offenes Hashing umgestellt werden. Zukünftig soll der Zugriff über die erste Ziffer der fünfstelligen Matrikelnummer erfolgen. Bisher wurde die Hash-Tabelle durch folgende Datenstruktur realisiert: CONST N = 10000; (* Laenge der Hash-Tabelle *) TYPE ziffer = 0..9; daten = RECORD nachname: String; vorname: String; matnummer: ARRAY [1..5] OF ziffer; semesterzahl: CARDINAL; END; element = RECORD marke: BOOLEAN; (* FALSE bei geloeschtem Eintrag *) student: daten; END; tabelle = ARRAY [0..N-1] OF element; Modifizieren Sie die Datenstruktur so, daß offenes Hashing realisiert werden kann. (Notation wieder in MODULA-2, nur Datenstruktur, nicht Hash-Funktion)

Seite 13 von 13 (f) (2 ) In einer Mini-Datenbank sind die Daten von fünf Studierenden mit offenem Hashing gespeichert. Geben Sie an, wie diese Daten bei geschlossenem Hashing in einer Tabelle mit 10 Speicherplätzen abgelegt waren: Eintragsreihenfolge: nach dem ersten Buchstaben des Nachnamens; bei Kollision wird der nächste freie Speicherplatz verwendet. Schlüssel 3 : Quersumme der 5-stelligen Matrikelnummer Hashfunktion: Divisionsmethode: 46587-369 :$3;. '<>=. Tragen Sie die Werte für 4 5 und die Matrikelnummern in die vorgegebene Tabelle ein. j h (k) Mat-Nr. 0 0 1 Kurt Kohl Maria Meier 10530 14160 1 2 Anita Auer 24150 2 3 3 4 Hans Huber 43512 Lilli Lehmann 46963 4 5 5 6 6 7 7 8 8 9 9