Programmierkurs Python II
|
|
|
- Eike Kerner
- vor 8 Jahren
- Abrufe
Transkript
1 Programmierkurs Python II Michaela Regneri & Stefan Thater FR 4.7 Allgemeine Linguistik (Computerlinguistik) Universität des Saarlandes Sommersemester 2011 Prüfungsleistungen Klausur am Semesterende - Zulassung: >50% der Punkte in den Übungsaufgaben Programmierprojekt Endnote - Klausur 50%, Projekt 50% 2
2 Kursübersicht Datenstrukturen & Algorithmen - Bäume & Graphen - Graph-Algorithmen Endliche Automaten & Transduktoren Maschinelles Lernen - Naive Bayes Classifier - Vektormodelle Kontextfreie Grammatiken & Parsing - Elementare Algorithmen - Chart-Parsing - Probabilistische kontextfreie Grammatiken 3 Heute: Kurze Wiederholung zu Python Bäume - Definition - Implementierung - Parsen von Baum-Ausdrücken - Suche in Bäumen (Tiefensuche) 4
3 Kurze Wiederholung Funktionen Rekursion Klassen Iteratoren Generatoren List-Comprehension 5 Wiederholung: Funktionen def fib(n): a, b = 0, 1 for i in range(n): a, b = b, a + b return a 6
4 Wiederholung: Rekursion def fib(n): if n < 2: return n else: return fib(n - 1) + fib(n - 2) 7 Wiederholung: Bsp. Wörter zählen def wc(filename): freq = dict() with open(filename) as f: for line in f: for word in line.split(): freq[word] = freq.get(word,0) +1 for (word, frq) in freq.items(): print('{0:s}\t{1:d}'.format(word, frq)) 8
5 Wiederholung: Klassen class MyClass(BaseClass): def init (self,...): <self initialisieren> def def mystaticmethod(...): # kein def myclassmethod(cls,...): # cls statt self... 9 Wiederholung: Iteratoren class FibIt: def init (self): self.a = 0 self.b = 1 def iter (self): return self def next (self): this = self.a self.a, self.b = self.b, self.a + self.b return this 10
6 Kurze Wiederholung: Generatoren def fibit(): a, b = 0, 1 while True: yield a a, b = b, a + b 11 Kurze Wiederholung: Comprehensions lst = [1, 2, 3, 4] [x * 2 for x in lst] [2, 4, 6, 8] [x for x in lst if x % 2 == 0] [2, 4] (x for x in lst if x % 2 == 0) <generator object <genexpr> at...> sum(x for x in lst if x % 2 == 0) 6 12
7 Bäume Text 13 Bäume S NP VP DT V NP This is DT N a tree 14
8 Bäume Bestandteile - Menge von Knoten (nodes, vertices) b - Menge von Kanten (edges) Hier immer gerichtete Bäume: - Kanten haben eine Quelle (source) und ein Ziel (target) - Im Bild: Quelle über (nördlich) Ziel Jeder Knoten hat höchstens eine eingehende Kante ( keine Zyklen) Knoten können etikettiert sein (Etikett = label) a c d e f 15 Bäume Quelle und Ziel nennen wir auch Mutter und Tochter (auch: Vater-Sohn, Eltern-Kind, Vorgänger-Nachfolger) Knoten mit gleichem Vater heißen entsprechend Geschwister Der einzige Knoten ohne Vorgänger ist die Wurzel (root) Wenn es mehrere Wurzeln gibt (= die Knoten hängen nicht zusammen) sprechen wir von einem Wald Knoten ohne Nachfolger heißen Blätter (leaves) b Blätter a Wurzel c d e f 16
9 Bäume Bäume kann man leicht als rekursive b c Datenstruktur implementieren: Baum = Wurzel-Etikett + Liste von Bäumen d e f Zum Beispiel: ( a,[( b,[]),( c,[( d,[]),( e,[]),( f,[])])]) Beachte: - a, b, sind eigentlich nur Etiketten, keine Knoten - Ein Knoten repräsentiert Teilbaum von sich selbst - Bäume sind hier auch geordnet, dh. die Reihenfolge in der Teilbaumliste ist wichtig a 17 Bäume (objektorientiert) class Tree: def init (self, label, children): self.label = label self.children = children... 18
10 Baumausdrücke Parsen (String Baum) Eingabe: Zeichenkette, die einen Baum beschreibt Format: - Baum ::= Etikett ( Etikett Baum... Baum ) - Etikett ::= beliebige Zeichenkette ohne (, ), Leerzeichen Beipiel: (S (NP (DET Der) (N Student)) (VP (V arbeitet))) Ausgabe: Baum als rekursive Datenstruktur 19 Baumausdrücke Parsen (String Baum) def parse(strng): tokens = tokenize(strng) return tree(next(tokens), tokens) def tokenize(strng): return <Iterator über die Tokens in strng> (S (NP (DET Der) (N Student)) (VP (V arbeitet))) 20
11 Baumausdrücke Parsen (String Baum) def tree(token, tokens): if token == '(': return Tree(next(tokens), list(trees(tokens))) else: return Tree(token, []) def trees(tokens): while True: token = next(tokens) if token == ')': break yield tree(token, tokens) (S (NP (DET Der) (N Student)) (VP (V arbeitet))) 21 Tiefensuche Mit Traversierung bezeichnen wir das Untersuchen der Knoten eines Baumes in einer bestimmten Reihenfolge Tiefensuche (depth first search) - zuerst betrachtet wir die Kinder eines Knotens - danach seine Geschwister. d b e a f c 22
12 Post-Order vs. Pre-Order Es gibt verschiedene Möglichkeiten, die Knoten eines Baumes mit Tiefensuche zu traversieren Pre-Order: jeder Knoten wird vor seinen Kindern betrachtet Post-Order: jeder Knoten wird nach seinen Kindern betrachtet 1 a 2 b 6 c 3 d 4 e 5 f 6 a 4 b 5 c 1 d 2 e 3 f 23 Tiefensuche (Pre-Order, Iterator) class TreeIterator: def init (self, tree): self.agenda = [tree] def iter (self): return self def next (self): if self.agenda == []: raise StopIteration current_tree = self.agenda.pop() for child in reversed(current_tree.children): self.agenda.append(child) return current_tree 24
13 Tiefensuche (Pre-Order, Generator) def TreeIterator(tree): yield tree for child in tree.children: for desc in TreeIterator(child): yield desc 25
368 4 Algorithmen und Datenstrukturen
Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist
Programmierkurs Python I
Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Kurze Wiederholung: while Sammeltypen (kurz
Graphen und Bäume. A.1 Graphen
Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt
Verkettete Datenstrukturen: Bäume
Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller
Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany [email protected]. Stammbaum. Stammbaum. Stammbaum
lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany [email protected]. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum
Algorithmen und Datenstrukturen Suchbaum
Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen
11.1 Grundlagen - Denitionen
11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die
9. Übung Algorithmen I
INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Musterlösung
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
Informatik 11 Kapitel 2 - Rekursive Datenstrukturen
Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
Programmierkurs Python II
Programmierkurs Python II Michaela Regneri & tefan Thater FR 4.7 Allgemeine Linguistik (Computerlinguistik) Universität des aarlandes ommersemester 2010 (Charniak, 1997) the dog biscuits N V N V the dog
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens [email protected] Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Datenstrukturen: Anordnung von Daten, z.b. als Liste (d.h. in bestimmter Reihenfolge) Beispiel: alphabetisch sortiertes Wörterbuch... Ei - Eibe - Eidotter... als Baum (d.h.
Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda
Bäume O1 O2 Text O3 O4 O5 O6 O7 Prof. Dr. Margarita Esponda SS 2012 22. ALP2-Vorlesung, M. Esponda Inhalt 1. Einführung 2. Warum Bäume? 3. Listen und Arrays vs. Bäume 4. Einfach verkettete binäre Suchbäume
Datenstrukturen. einfach verkettete Liste
einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten
Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?
Programmierkurs Python I
Programmierkurs Python I Michaela Regneri 2010-01-21 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater) Übersicht Mehr Abkürzungen in Python: - map - List Comprehensions Anonyme Funktionen, lambda
Informatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10
Binäre Bäume Bäume gehören zu den wichtigsten Datenstrukturen in der Informatik. Sie repräsentieren z.b. die Struktur eines arithmetischen Terms oder die Struktur eines Buchs. Bäume beschreiben Organisationshierarchien
Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)
Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Inhalt: Einleitung, Begriffe Baumtypen und deren Kodierung Binäre Bäume Mehrwegbäume Prüfer
Binary Decision Diagrams (Einführung)
Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von
Algorithmen und Datenstrukturen SS09
Foliensatz 8 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 29 TU Ilmenau Seite / 54 Binärbäume TU Ilmenau Seite 2 / 54 Binäre Bäume Bäume und speziell
Programmierkurs Python
Programmierkurs Python Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Das Programmierprojekt Aufgabenstellung Praktische
Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder
Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume
1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten
1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1
Bäume 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Inhalt Grundbegriffe: Baum, Binärbaum Binäre Suchbäume (Definition) Typische Aufgaben Suchaufwand Löschen allgemein, Methode Schlüsseltransfer
Minimal spannende Bäume
http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität 2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende Algorithmen
Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.
Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.
13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
8. Übung zu Algorithmen I 15. Juni 2016
8. Übung zu Algorithmen I 15. Juni 2016 Lisa Kohl [email protected] (mit Folien von Julian Arz, Timo Bingmann, Sebastian Schlag, Christian Staudt und Christoph Striecks) Nachtrag: Quicksort, alternative
Programmierkurs Python
Programmierkurs Python Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Dateien Ein- und Ausgabe Mehr zu Strings Einige
kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung
Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben
Binäre Bäume Darstellung und Traversierung
Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail [email protected] Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.
3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
Programmieren in Python
Iteratoren und Generatoren Programmieren in Python 10. Iteratoren und Generatoren Malte Helmert Albert-Ludwigs-Universität Freiburg Überblick über diese Lektion: Iteratoren Generatoren Generator Comprehensions
Mathematische Grundlagen der Computerlinguistik Bäume
Mathematische Grundlagen der Computerlinguistik Dozentin: Wiebke Petersen 6. Foliensatz (basierend auf Folien von Gerhard Jäger) Wiebke Petersen math. Grundlagen 1 Baumdiagramme Ein Baumdiagramm eines
Python-Workshop. Python für C/C++ Programmierer. Carl Friedrich Bolz. [email protected]. Carl Friedrich Bolz
Python-Workshop Python für C/C++ Programmierer [email protected] 1 Übersicht Einführung: Einfache Datentypen Kontrollstrukturen Komplexe Datentypen strings, lists, dicts, tuples slicing list comprehensions
6 Baumstrukturen. Formale Grundlagen der Informatik I Herbstsemester 2012. Robert Marti
6 Baumstrukturen Formale Grundlagen der Informatik I Herbstsemester 2012 Robert Marti Vorlesung teilweise basierend auf Unterlagen von Prof. emer. Helmut Schauer Beispiel: Hierarchisches File System 2
Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz
Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)
Datenstruktur, die viele Operationen dynamischer Mengen unterstützt
Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)
Binärbäume. Prof. Dr. E. Ehses, 2014 1
Binärbäume Grundbegriffe der Graphentheorie Bäume und Ihre Anwendungen Unterschiedliche Darstellungen von Bäumen und Binärbäumen Binärbäume in Java Rekursive Traversierung von Binärbäumen Ebenenweise Traversierung
Interaktive Visualisierung der Projektmanagement-Prozesse
Interaktive Visualisierung der Projektmanagement-Prozesse Abschlussvortrag zur Bachelorarbeit Dimitar Kosakov Inhaltsverzeichnis Rückblick Ziel Technologien Konzept View Webinterface Datenstruktur Umsetzung
Grundlagen der Programmierung 2. Bäume
Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)
Klausur Informatik B April Teil I: Informatik 3
Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.
Compiler. Kapitel. Syntaktische Analyse. Kapitel 4. Folie: 1. Syntaktische Analyse. Autor: Aho et al.
Folie: 1 Kapitel 4 Übersicht Übersicht Syntax: Definition 4 syn-tax: the way in which words are put together to form phrases, clauses, or sentences. Webster's Dictionary Die Syntax (griechisch σύνταξις
Teil XII. Datenstrukturen: Bäume, Stacks und Queues. Scientific Computing in Computer Science, Technische Universität München
Teil XII Datenstrukturen: Bäume, Stacks und Queues IN8008, Wintersemester 2011/2012 251 Stacks (Kellerspeicher/Stapel) Funktioniert wie ein natürlicher Stapel (z.b. Papierstapel auf dem Schreibtisch) Elemente
Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
Einführung in (Binäre) Bäume
edeutung und Ziele inführung in (inäre) äume Marc Rennhard http://www.tik.ee.ethz.ch/~rennhard [email protected] äume gehören ganz allgemein zu den wichtigsten in der Informatik auftretenden atenstrukturen,
Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April
WS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.
Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens
Rekurrenzen T(n) = T(n 1) + N beschreibt Laufzeitverhalten eines rekursiven Algorithmus
Algorithmen und Datenstrukturen Übung Rekurrenzen T(n) = T(n ) + N beschreibt Laufzeitverhalten eines rekursiven Algorithmus Bsp. Fibunacci F(n) = F(n ) + F(n ) N F(0) = F() = F(N) rekursive Aufrufe,8
Bäume und Wälder. Bäume und Wälder 1 / 37
Bäume und Wälder Bäume und Wälder 1 / 37 Bäume Ein (ungerichteter) Baum ist ein ungerichteter Graph G = (V, E), der zusammenhängend ist und keine Kreise enthält. Diese Graphen sind Bäume: Diese aber nicht:
Verteilen von Bällen auf Urnen
Verteilen von Bällen auf Urnen Szenario: Wir verteilen n Bälle auf m Urnen, d.h. f : B U mit B = {b 1,..., b n } und U = {u 1,..., u m }. Dabei unterscheiden wir alle Kombinationen der folgenden Fälle
Kap. 4.2: Binäre Suchbäume
Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:
14. Rot-Schwarz-Bäume
Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).
Allgemeine Informatik 2 im SS 2007 Programmierprojekt
v05 30.06.2007 Technische Universität Darmstadt Fachbereich Informatik Prof. Dr. Johannes Fürnkranz Allgemeine Informatik 2 im SS 2007 Programmierprojekt Bearbeitungszeit: 04.06. bis 13.07.2007 Die Formalitäten
Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern
Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben
Breiten- und Tiefensuche in Graphen
Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen
II.3.1 Rekursive Algorithmen - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.3.1 Rekursive Algorithmen -
4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.
Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel
Informatik II. PVK Part1 Severin Wischmann [email protected] n.ethz.ch/~wiseveri
Informatik II PVK Part1 Severin Wischmann [email protected] n.ethz.ch/~wiseveri KAUM JAVA Kaum Java Viel Zeit wird für Java-spezifisches Wissen benützt Wenig wichtig für Prüfung Letztjähriger Assistent
Objektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 22. Vorlesung Tiefensuche und Topologische Sortierung Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Vorlesungsumfrage Nutzen Sie die Vorlesungsbefragung
Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)
Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der
2.0. Jens Weller ([email protected]) Joel de Guzman ([email protected]) Hartmut Kaiser ([email protected])
2.0 Jens Weller ([email protected]) Joel de Guzman ([email protected]) Hartmut Kaiser ([email protected]) 2.0 - Agenda Was ist Spirit? Aufbau & Überblick Lex, Qi & Karma 2.0 Was ist das?
Aufgabentypen die in der Klausur vorkommen
Aufgabentypen die in der Klausur vorkommen können 1. Nennen Sie fünf wichtige Anwendungsgebiete der Computerlinguistik. 2. Für welches der drei Anwendungsgebiete Maschinelle Übersetzung, Rechtschreibkorrektur
Beispiel 19. December 4, 2009
Beispiel 9 December 4, 2009 Computermathematik (für Informatik) 4. Übungsblatt (Musterlösung) 2. 2. 2009 Die heutigen Übungen sollen mit dem Computeralgebrasystem Sage gelöst werden. Die Lösung der Beispiele
Einführung in die Informatik 1
Einführung in die Informatik 1 Datenorganisation und Datenstrukturen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag, 12:30-14:00
Formale Methoden 1. Gerhard Jäger 12. Dezember Uni Bielefeld, WS 2007/2008 1/22
1/22 Formale Methoden 1 Gerhard Jäger [email protected] Uni Bielefeld, WS 2007/2008 12. Dezember 2007 2/22 Bäume Baumdiagramme Ein Baumdiagramm eines Satzes stellt drei Arten von Information
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume [email protected] 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
10 Graphenalgorithmen in Java
10.1 Implementierung eines gewichteten Graphen 10.2 Implementierung der Breitensuche 10.3 Implementierung der Tiefensuche 10 147 Teil X Graphalgorithmen in Java Überblick Implementierung eines gewichteten
4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,
Bäume, Suchbäume und Hash-Tabellen
Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche
Einführung in Heuristische Suche
Einführung in Heuristische Suche Beispiele 2 Überblick Intelligente Suche Rundenbasierte Spiele 3 Grundlagen Es muss ein Rätsel / Puzzle / Problem gelöst werden Wie kann ein Computer diese Aufgabe lösen?
Geordnete Binärbäume
Geordnete Binärbäume Prof. Dr. Martin Wirsing in Zusammenarbeit mit Gilbert Beyer und Christian Kroiß http://www.pst.ifi.lmu.de/lehre/wise-09-10/infoeinf/ WS 09/10 Einführung in die Informatik: Programmierung
Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke
Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale
Parsing mit NLTK. Parsing mit NLTK. Parsing mit NLTK. Parsing mit NLTK. Beispiel: eine kleine kontextfreie Grammatik (cf. [BKL09], Ch. 8.
Gliederung Natürlichsprachliche Systeme I D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 WS 2011/12, 26. Oktober 2011, c 2010-2012
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung
Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung
Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:
Einführung in die Informatik 2
Einführung in die Informatik 2 Suchen in Texten Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.
Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)
Berlin, 21. Februar 2013 Name:... Matr.-Nr.:... Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) 1 2 3 4 5 6 7 8 9 Σ Bearbeitungszeit: 90 min. max. Punktezahl:
Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.
Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten
Informatik II Backtracking
6//0 lausthal Informatik II Backtracking. Zachmann lausthal University, ermany [email protected] Allgemeines Problem-Statement egeben: Eine Reihe von Variablen, für die man eine Belegung sucht onstraints
- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:
6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] Traversierung Durchlaufen eines Graphen, bei
Einführung Computerlinguistik. Konstituentensyntax II
Einführung Computerlinguistik Konstituentensyntax II Hinrich Schütze & Robert Zangenfeind Centrum für Informations- und Sprachverarbeitung, LMU München 2013-11-18 Schütze & Zangenfeind: Konstituentensyntax
Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.
Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
Kompaktkurs Python Einführung in die Programmierung zur Numerik mit Python
MÜNSTER Kompaktkurs Python Einführung in die Programmierung zur Numerik mit Python René Milk 09.-13. September 2013 Organisatorisches MÜNSTER Kompaktkurs Python 2 /50 Anwesenheit Scheine Login? Terminal
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] Algorithmen für Graphen Fragestellungen: Suche
Programmier-Befehle - Woche 10
Funktionen Rekursion Selbstaufruf einer Funktion Jeder rekursive Funktionsaufruf hat seine eigenen, unabhängigen Variablen und Argumente. Dies kann man sich sehr gut anhand des in der Vorlesung gezeigten
