Kostenmaße. F3 03/04 p.188/395



Ähnliche Dokumente
Abschnitt: Algorithmendesign und Laufzeitanalyse

Teile und Herrsche Teil 2

Kapiteltests zum Leitprogramm Binäre Suchbäume

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

Programmieren I. Kapitel 7. Sortieren und Suchen

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Professionelle Seminare im Bereich MS-Office

Datenstrukturen & Algorithmen

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

1 topologisches Sortieren

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

Suchen und Sortieren Sortieren. Heaps

Die Komplexitätsklassen P und NP

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Überblick. Lineares Suchen

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

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

Abiturprüfung Mathematik 2008 (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe 1

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

Algorithmen und Datenstrukturen

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Primzahlen und RSA-Verschlüsselung

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Grundlagen der Künstlichen Intelligenz

15 Optimales Kodieren

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

Grundlagen der Informatik

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Grundbegriffe der Informatik

Vorkurs Informatik WiSe 15/16

Programmierkurs Java

Wie löst man Mathematikaufgaben?

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Datenstrukturen und Algorithmen

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140

Programmiertechnik II

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Plotten von Linien ( nach Jack Bresenham, 1962 )

Algorithmen & Datenstrukturen 1. Klausur

Theoretische Grundlagen der Informatik

Kugel-Fächer-Modell. 1fach. 3fach. Für die Einzelkugel gibt es 3 Möglichkeiten. 6fach. 3! Möglichkeiten

8 Diskrete Optimierung

Analysis I für Studierende der Ingenieurwissenschaften

Algorithmen II Vorlesung am

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Algorithmen und Datenstrukturen

16. All Pairs Shortest Path (ASPS)

Gratis Excel SVERWEIS Funktions-Anleitung, Tutorial, ebook, PDF-E-Book

Kurs 1613 Einführung in die imperative Programmierung

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Was ist Logische Programmierung?

Lenstras Algorithmus für Faktorisierung

Platinen mit dem HP CLJ 1600 direkt bedrucken ohne Tonertransferverfahren

Datenexport aus JS - Software

Informationsblatt Induktionsbeweis

Theoretische Grundlagen der Informatik WS 09/10

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Erstellen von x-y-diagrammen in OpenOffice.calc

Simplex-Umformung für Dummies

13. Binäre Suchbäume

Theoretische Informatik SS 04 Übung 1

Kapitel 5: Dynamisches Programmieren Gliederung

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

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Sortierverfahren. Sortierverfahren für eindimensionale Arrays

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Anmerkungen zur Übergangsprüfung

Numerische Verfahren und Grundlagen der Analysis

Statuten in leichter Sprache

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Bruchrechnung Wir teilen gerecht auf

Prozentrechnung. Wir können nun eine Formel für die Berechnung des Prozentwertes aufstellen:

Das Briefträgerproblem

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Übungen Programmieren 1 Felix Rohrer. Übungen

Lineare Gleichungssysteme

HIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN

WS 2009/10. Diskrete Strukturen

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Formelsammlung zur Kreisgleichung

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Das Leitbild vom Verein WIR

Zahlensysteme Seite -1- Zahlensysteme

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

Sortierverfahren für Felder (Listen)

Mächtigkeit von WHILE-Programmen

Wichtige Forderungen für ein Bundes-Teilhabe-Gesetz

Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou

Anleitung über den Umgang mit Schildern

Transkript:

Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben); logarithmisches Kostenmaß: Die Länge der Binärdarstellung von Registeradressen un Inhalten wird berücksichtigt. Im folgenden: uniformes Kostenmaß! F3 03/04 p.188/395

TM-Simulation von Grammatiken S ö BS Symbole nach rechts verschieben x,x,r S,B,R #,S,L x,x,l x,x,l B,B,R S,B,L B,S,L BS ö SB F3 03/04 p.189/395

Algorithmentechniken F3 03/04 p.190/395

rekursiv vs. iterativ/induktiv n n 0 0 rekursiv f(x) := g(...,f(x-1),...) := g(...,g(...,f(x-2),...),...) iterativ FOR i FROM 0 TO x DO f := g(...,f,...) F3 03/04 p.191/395

Beispiel: Fakultät rekursiv n! := { 1 für n = 0 n (n 1)! sonst Ein rekursives Programm: FUNCTION fac(n) BEGIN IF n = 0 THEN RETURN 1 ELSE RETURN n fac(n-1) END. F3 03/04 p.192/395

Beispiel: Fakultät iterativ Die übliche Definition n! := n iterative Lösung. Ein iteratives Programm: i=1 i suggeriert eine FUNCTION fac(n) BEGIN DECL prod INTEGER; prod 1; FOR i FROM 1 TO n DO prod prod i RETURN prod END. F3 03/04 p.193/395

Die Qual der Wahl... Welche der beiden Methoden soll nun verwendet werden? Diese Frage kann immer nur mit Blick auf das Problem entschieden werden. Manchmal lautet die Antwort: Keine von beiden! Warum? Z.B. ist bereits ab 13! = 6227020800 das Ergebnis bei 32-Bit-Integer-Darstellung nicht mehr darstellbar! Was gibt es für Alternativen? F3 03/04 p.194/395

Die Suche nach Alternativen Im Fall der Fakultätsfunktion ist die Antwort auf die erste Frage einfach: Diese Funktion sollte gar nicht programmiert, sondern nur durch eine Tabelle implementiert werden! Häufig sucht man nach geschlossenen Formen (Berechnung ohne Schleifen). In jedem Fall sollte die Komplexität abgeschätzt werden, um das effizienteste Verfahren auszuwählen! F3 03/04 p.195/395

Effektivität vs. Effizienz Effektivität: Ein Problem heißt effektiv lösbar, wenn ihm eine berechenbare Funktion zugrunde liegt, d.h. es ein ausführbares, endlich beschreibbares Verfahren gibt, das für alle Probleminstanzen in endlicher Zeit eine korrekte Lösung liefert. (BF) Effizienz: Ein Algorithmus heißt effizient, wenn er ein vorgegebenes Problem in möglichst kurzer Zeit und/oder mit möglichst geringem Aufwand an Betriebsmitteln löst. (Informatik-Duden) F3 03/04 p.196/395

Das Problem der binären Suche Gegeben: Gesucht: Antwort: eine in aufsteigender Reihenfolge sortierte Liste list von Zahlen und ein Wert x Kommt x in list vor? JA oder NEIN Allgemein kann auch von einer Menge mit vorgegebener linearer Ordnung < ausgegangen werden. So formuliert man das Problem dann z.b. auch für Listen von Wörtern. F3 03/04 p.197/395

Schema: binäre Suche 1, 5, 26, 36, 38, 40, 55, 72, 77, 98 Enthält die Liste die 6? 1, 5, 26, 36, 38, 40, 55, 72, 77, 98 6 38 6 40 1, 5, 26, 36, 38 6 26 6 36 1, 5, 26 6 5 6 26 Nein! F3 03/04 p.198/395

Algorithmus für binäre Suche Suche(x,A) [ A = 1 A {x} : x nicht in A 1. A = {x} : x in A 2. Partitioniere den Suchraum in zwei Teile A 1 und A 2, so dass A = A 1 A 2 mit A 1 = 1 2 A und A 2 = 1 2 A, sowie max(a 1) < min(a 2 ). 3. max(a 1 ) < x < min(a 2 ) : x nicht in A x max(a 1 ) : Suche(x,A 1 ) x min(a 2 ) : Suche(x,A 2 ) F3 03/04 p.199/395

Kosten der binären Suche Es wird jeweils mit einem ungefähr halbiertem Suchraum fortgefahren bis das Element gefunden ist. Schlimmstenfalls werden O(log n) Partitionierungen durchgeführt. Ein vollständiger ausgeglichener Binärbaum mit n Blättern hat eine Tiefe von log 2 n. In einem Feld mit einer Millionen Zahlen sind somit höchstens 20 Partitionierungsschritte nötig um ein bestimmtes Element zu finden! F3 03/04 p.200/395

Binärbäume 1 1.1 1.2 1.1.2 1.1.1 1.2.2 1.2.1 1.1.2.2 1.1.2.1 1.1.1.2 1.1.1.1 1.2.2.1 1.2.2.2 1.2.1.1 1.2.1.2 Tiefe ist log 8 = 3 8 Blätter = maximale Pfadlänge F3 03/04 p.201/395

Beispiel: Sortieren Gegeben: eine Folge von Elementen aus einer geordneten Menge: a = (a 1,a 2,...,a n ) Gesucht: eine sortierte Folge Antwort: eine Folge ā = (a i1,a i2,...,a in ) mit den gleichen Elementen und mit a i1 a i2 a i3... a in F3 03/04 p.202/395

Beispiel: MERGESORT 1. Zerlegung von a in zwei (fast) gleichgroße Teilfolgen: a = (a 1,...,a n 2 ), a = (a n 2 +1,...,a n ). 2. Sortieren von a und a mit dem gleichen Verfahren zu den Ergebnissen: ā,ā. 3. Mischen der sortierten Folgen ā,ā zu einer sortierten Folge ā. F3 03/04 p.203/395

Komplexität von MERGESORT... setzt sich zusammen aus der Anzahl der einzelnen Arbeitsschritte in 1.), 2.) und 3.): 1. Zerlegung: ein Schritt, 2. Mischen: O(n) Schritte, 3. Sortieren: Sei T A (n) die Zeitkomplexität von MERGESORT. Sortieren der Teilfolgen ā und ā benötigt jeweils T A ( n 2). F3 03/04 p.204/395

Kosten als Rekurrenzgleichung Insgesamt ergibt sich für MERGESORT die Rekursionsgleichung: ( n ) T A (n) = 2 T A + O(n), 2 mit der Lösung: T A (n) = O(n log n). F3 03/04 p.205/395

divide and conquer MERGESORT arbeitet nach dem divide and conquer-verfahren: nk Problem P der Größe n Aufteilung in a Subprobleme at(n/c) n c n c n c n c n c nk' Lösung Zusammenfassung zur Lösung von P F3 03/04 p.206/395

dichteste Punktepaare? Gegeben: Gesucht: Antwort: eine Menge P von n Punkten in der Ebene: p i = (x i,y i ), i = 1, 2,...,n zwei Punkte minimaler Distanz Koordinaten der Punkte Die Distanz (Entfernung) zweier Punkte ist wie folgt definiert: d(p i,p k ) := (x i x k ) 2 + (y i y k ) 2 Die Distanz wird in der euklidschen Metrik angegeben. F3 03/04 p.207/395

Distanz von Punkten in der Ebene pi = (xi,yi) p1 }d(p1,p2) p2 Die Punkte liegen nicht sortiert vor! F3 03/04 p.208/395

Eindimensionaler Fall Gegeben: Gesucht: Antwort: Eine Menge P von n Punkten auf einer Geraden: P = {p 1,p 2,...,p n } = {x 1,x 2,...,x n }, wobei x i die Abszisse von p i ist. zwei Punkte minimaler Distanz Punktkoordinaten Wir betrachten jetzt einen Algorithmus zur Bestimmung des dichtestes Punktepaars auf einer Linie. F3 03/04 p.209/395

Algorithmus 1. Zerlegung von P in P 1 und P 2 mit Trennungspunkt x = α (α P), so dass x i P 1 x i < α und x j P 2 x j > α. 2. Bestimmung des jeweils dichtesten Paares in P 1 und P 2 : Rekursion: δ:= minimale Distanz der beiden Paare, die in P 1 und P 2 gefunden wurden. 3. Sei x 1 max größtes Element in P 1 und x 2 min kleinstes Element in P 2 : δ := x 2 min x 1 max 4. δ := min{δ,δ } ist der dichteste Abstand von Punkten in P. F3 03/04 p.210/395

Ausblick Greedy-Algorithmen dynamische Programmierung Backtracking branch and bound Heuristiken und Approximation F3 03/04 p.211/395