Zusammenfassung. Algorithmentheorie

Größe: px
Ab Seite anzeigen:

Download "Zusammenfassung. Algorithmentheorie"

Transkript

1 Zusammenfassung Zur Diplomprüfungsvorbereitung Algorithmentheorie Prof. Dr Thomas Ottmann PD Dr. A.Heinz Wintersemester 2002 Zusammengefasst von Markus Krebs und Andreas Horstmann November 2002

2 Vorlesung 1 Divide and Conquer...8 Das Divide and Conquer Prinzip:... 8 Geometrisches Divide and Conquer... 8 Algorithmus: Closest Pair Problem... 8 Algorithmus: Liniensegmentschnitt... 9 Kompletter Algorithmus im Detail Das Voronoi Diagramm Vorlesung 2 Fast Fourier Transformation (FFT)...15 Operationen die auf Polynomen angewandt werden können (mit Koeffizientendarstellung): Addition zweier Polynome p und q: Multiplikation zweier Polynome p und q: Auswerten eines Polynoms p an einer bestimmten Stelle x 0 mit dem Horner Schema Möglichkeiten zur Darstellung (Repräsentation) eines Polynoms Koeffizientendarstellung: Nullstellenprodukt: Punkt-/Wertdarstellung: Operationen auf Polynomen mit Hilfe der Punkt/Wertdarstellung Addition zweier Polynome p und q: Produkt zweier Polynome p und q: Auswertung an einer Stelle x Polynomprodukt unter Zuhilfenahme der Vorteile von beiden Darstellungen Repräsentation von p(x) Diskrete Fourier Transformation (DFT) Diskurs: Eigenschaften von Einheitswurzeln Kürzungslemma Halbierungslemma Summationslemma Fast Fourier Transformation (FFT) Berechnung der DFT im einzelnen: Eine kleine Verbesserung Der fertige Algorithmus Ein komplettes Beispiel durchgerechnet: Zeitanalyse des Algorithmus Interpolation Berechnen der a i Komplexität Vorlesung 3 Zufallszahlengeneratoren...27 Lineare Kongruenzmethode (Lehmer, 1951) Beurteilung von Zufallszahlengeneratoren Der komplette Algorithmus als Java Code: Vorschlag von Schrage (1979) Modifizierte Lehmer Algorithmus nach Schrage Gemischt kongruente Generatoren Satz: Vorlesung 4 Randomisierte Algorithmen...31 Randomisiertes Quicksort

3 Randomisierter Primzahltest Kleiner Fermat Carmichael Zahlen Satz über nichttriviale Quadratwurzeln Schnelle Exponentiation (Berechnung von a n ) Vorlesung 5 Kryptographie: RSA...36 Aufgaben von Sicherheitsdiensten: Public Key Verschlüsselungssysteme A verschickt eine Nachricht M an B: Erstellen einer digitalen Signatur - Prinzip Erstellen einer digitalen Signatur RSA Verschlüsselungssysteme Diskurs Multiplikative Inverse: Vorlesung 6 Randomisierte Datenstrukturen...41 Perfekte Skiplisten Randomisierte Skiplisten Einfügen in Randomisierte Skiplisten Algorithmus zum randomisierten Erzeugen von Höhen Entfernen eines Schlüssel aus einer randomisierten Skipliste Verhalten von randomisierten Skiplisten Randomisierte Suchbäume Was sind nun Treaps? Ein Element einfügen in einen Treap Ein Element aus einem Treap entfernen Randomisierte Suchbäume Vorlesung 7 Amortisierte Analyse...54 Was ist die Idee der Amotisierung? Aggregatmethode: am Beispiel Dualzähler Bankkontomethode: am Beispiel Dualzähler Potentialfunktion-Methode: am Beispiel Dualzähler Dynamische Tabellen Kosten von n Einfügeoperationen in eine anfangs leere Tabelle Fall 1: i-te Operation löst keine Expansion aus Fall 2: i-te Operation löst Expansion aus Entfernen von Elementen Einfügen Entfernen Vorlesung 8 Vorrangswarteschlangen (Priority Queues)...63 Operationen auf Vorrangswarteschlangen Implementationen von Vorrangswarteschlangen: Binomialqueues Binomialbäume Binomialqueues Child-Sibling Darstellung von Binomialqueues Vereinigung (verschmelzen) zweier Binomialbäume B, B gleicher Ordnung Vereinigung (verschmelzung) zweier Binomialqueues Q 1 und Q Zusammenfassender Vergleich: Vorlesung 9 Fibonacci Heaps...70 Beispiel für einen Fibonacci Heap: Vorteile zirkulärer, doppeltverketteter Listen

4 Operationen auf Fibonacci Heaps Der ganze Algorithmus sieht nun so aus: Algorithmus Decrease Key Algorthmus Q.cut Algorithmus Q.delete Markieren von Knoten Analyse der Operationen von Fibonacci Heaps Diskurs über die Annahme, dass der rang(q) 2 log n ist Maximaler Rang eines Knotens Vorlesung 10 Union Find Strukturen...79 Beispiel: Zusammenhangstest Repräsentation durch verkettete Listen: Repräsentation durch Wald von Bäumen Weitere Verbesserung durch Pfadverkürzung Analyse der Laufzeit Exkurs: Ackermann Funktion und Inverse Vorlesung 11 Greedy Verfahren...85 Zwei einfache Beispiele bei denen Greedy sehr schlecht werden kann Beispiel 1: Münzwechselproblem Beispiel 2: Travelling Salesman Problem (TSP) Das Aktivitäten Auswahlproblem Der Zugehörige Algorithmus Invarianten: Wann ist ein Greedy Verfahren Optimal? Binäre Zeichen Codes Präfix Codes Darstellung von Präfix-Codes Code Bäume Optimalität von Präfixcodes Kosten eines Code-Baumes Huffman Codes Vorschlag zur Konstruktion eines Code Baumes Korrektheit des Huffman Verfahrens Vorlesung 12 Dijkstra s kürzeste Wege...99 Optimalitätsprinzip Dijsktra s Algorithmus als Code Darstellungsformen eine Graphen Zwei verschiedene Implementierungen Vorlesung 13 Minimalspannende Bäume (MST) Aufspannende Bäume, minimalen Gewichts in Graphen Das MST Problem Färbungsverfahren von Tarjan - Greedy Methode Färbungsalgorithmus im Einzelnen Korrektheit des Färbungsalgorithmus Algorithmus von Kruskal Der Algorithmus von Prim Greedy Algorithmen und Matroide Vorlesung 14 Bin Packing Online Bin Packing Verfahren Die verschieden Online Bin Packing Verfahren

5 Online Algorithmen Allgemein Offline Bin Packing Verfahren First Fit Decreasing Vorlesung 15 Online Algorithmen Online Algorithmen und Kompetitivität Seitenaustauschstrategien Mögliche Strategien Least Recently Used Optimale offline Strategie MIN Unter Schranken Randomisierung und Gegenspieler Algorithmus Marking (fast gleich wie FWF nur randomisiert) Andere Bereiche für Online Algorithmen Vorlesung 16 Dynamische Programmierung Was ist dynamische Programmierung? Beispiel: Fibonacci-Zahlen Direkte Implementierung der Fibonaccizahlen Beispiel: Umsetzung bei den Fibonaccizahlen Implementierung mittels dynamischer Programmierung Memoisierte Version der Berechnung der Fibonacci Zahlen Das Optimalitätsprinzip Kettenprodukt von Matrizen Anzahl der veschiedenen Klammerungen Multiplikation zweier Matrizen Struktur der optimalen Klammerung Implementierung des Matrixkettenproduktes mit dynamischer Programmierung Matrixkettenprodukt und optimale Splitwerte mit dynamischer Programmierung Implementierung zur Berechnung/Ausgabe der optimalen Klammerung Matrixkettenprodukt mir dynamischer Programmierung (Top-Down Ansatz) Implementierung der Notizblockmethode zum Matrixkettenprodukt Konstruktion optimaler Suchbäume Rekursive Bestimmung der gewichteten Pfadlänge Vorlesung 17 Dynamische Programmierung Editierdistanz Probleme der Ähnlichkeit von Zeichenketten Editier-Distanz Berechnung der Editier-Distanz Rekursionsgleichung für die Editier-Distanz Algorithmus für die Editier-Distanz Beispiel für Editier-Distanz Implementierung: Berechnung der Editieroperationen Spurgraph der Editieroperationen Approximative Zeichenkettensuche Naives Verfahren: Abhängigkeitsgraph Ähnlichkeit von Zeichenketten Ähnlichste Teilzeichenketten Vorlesung 18 Suche in Texten (KMP/BM) Verschiedene Szenarios Problemdefinition Naives Verfahren Aufwandsabschätzung (Naives Verfahren) Verfahren von Knuth-Morris-Pratt Beispiel für die Bestimmung von next[j]: Korrektheit:

6 Laufzeit: Berechnung des next-arrays Algorithmus Berechnung des next-arrays Verfahren von Boyer-Moore Die Vorkommensheuristik Algorithmus zum Verfahren von Boyer-Moore (1. Version) Laufzeitanalyse (1. Version): Match-Heuristik Beispiel für die wrw-berechnung Algorithmus zum Verfahren von Boyer-Moore (2. Version) Vorlesung 19 Suche in Texten - Suffix Bäume Tries Suffix-Tries Suffix-Bäume Interne Repräsentation von Suffix-Bäumen Eigenschaften von Suffix-Bäumen Konstruktion von Suffix-Bäumen Naive Suffix-Baum-Konstruktion Algorithmus Suffix-Baum Algorithmus Suffix-Einfügen Der Algorithmus M (McCreight, 1976) Die Invarianten des Algorithmus M Der Algorithmus M als Code Beispiel für das Suffix-Einfügen Analyse des Rescannens Analyse des Scannens Analyse des Algorithmus M Suffix Baum Anwendung Suffix-Baum-Beispiel Eigenschaften von Suffix-Bäumen Vorlesung 20 Suche in Texten - Suffix Arrays Beispiel zum Suffix-Array Prefix-Suche im Suffix-Array Algorithmus L W -Search Verbesserung von L W -Search Verbesserung von L W -Search Nutzen von Llcp und Rlcp in L W -Search Vorlesung 21 Textcodierungen Kompressionsverfahren für Texte Arithmetische Codierung Lempel-Ziv Codierung Implementierung des Algorithmus Lempel-Ziv Lempel-Ziv-Welsh Eigenschaften Heuristische Optimierungsverfahren Vorlesung 22 Genetische Algorithmen Beispiel: 0/1 Mehrfach-Rucksack-Problem Suchverfahren für kombinatorische Optimierungsprobleme (KOP) Der Simple genetische Algorithmus (SGA) Legende zum SGA: Ermittlung der # Kopien # i von x i : Kreuzung zweier Individuen Mutation Vorgehensweise bei der Anwendungserstellung

7 Anwendungsbeispiel 1: Subset Sum-Problem Anwendungsbeispiel 2: Maximum Cut-Problem Test Beispiel (n=10) Selektion + Rekombination = Innovation Selektion + Mutation = stetige Verbesserung Vorlesung 23 Genetische Algorithmen Das Schema Theorem Parameterlose GA Algorithmus zum Parameterlosen Genetischen Algorithmus (PGA) Systeme zur Unterstützung von GA-Applikationen Vorlesung 24 Künstliche Neuronale Netze (KNN) Ein Hopfield Netz Die Energie eine Hopfield-Netzes Vorgehensweise bei der Lösung eines KOP mittels Hopfield-Netz Anwendungsbeispiel I Multi Flop Problem Anwendungsbeispiel 2 Travelling Salesperson Problem (TSP) Selbstorganisierende Karten (SOM) Anwendungsbeispiele für SOM Euklidisches Travelling Salesperson Problem (ETSP) Komplexität SOM für kombinatorische Optimierung Geschichtete Feed-Forward Netze (MLP) Paramterlernen bei MLP Gradientenbestimmung mit Backpropagation Vorlesung 25 Ameisen Algorithmen Einleitung Traveling Salesperson-Problem (TSP) Ameisen-Algorithmus für das TSP Legende zum ASA_TSP Berechnung der Pheromon-Menge τ ij(t) für Kante (i,j): Parameter des ASA_TSP Quadratisches Zuordnungsproblem (QAP) Ameisen-Algorithmus für das QAP Min-max-Regel: Ameisen-Algorithmus für das QAP Sintflut-Algorithmus Der Sintflut-Algorithmus (als Code) Legende zum Sintflut-Algorithmus

8 Vorlesung 1 Divide and Conquer Entwurfsprinzipien für Algorithmen Divide and Conquer Randomisierung Dynamische Programmierung Greedy Prinzip Backtracking Branch and Bound Amortisierung (Analysetechnik) Klassen von Algorithmen Geometrische Algorithmen Mathematische Algorithmen Zeichenketten Verarbeitung Graphen Algorithmen Internet Algorithmen Das Divide and Conquer Prinzip: Beispiel: Quicksort Geometrisches Divide and Conquer Algorithmus: Closest Pair Problem Bestimme für eine Menge S von n Punkten, das Paar mit minimaler Distanz 8

9 Der naive Algorithmus zur Lösung benötigt O(n²) Paarweise Vergleiche aller Punkte Besser geht es mit D&C in O(n log² n) aber Worst-Case Ω(n²); Worst Case tritt dann ein, wenn alle Punkte sehr nahe an der Trennlinie liegen. Divide: Teile S in S l und S r Conquer: d l := mindist(s l ); d r := mindist(s r ); Merge: Mindist:=min{d l, d r, min{dist(s l, s r ); s l aus S l, s r aus S r }} 1. Sortiere Punkte im Streifen mit Breite 2*d nach aufsteigenden y-werten 2. Betrachte zu jedem Punkt p alle Punkte q mit y-abstand höchstens d Zeitaufwand für Merge Schritt: O(n log n) Zeitaufwand Gesamt: O(n log² n) Algorithmus: Liniensegmentschnitt Bestimme alle Paare sich schneidender Segmente 9

10 Naiver Algorithmus benötigt hier auch wieder O(n²) Besser Divide and Conquer (Bild) Repräsentiere die horizontalen Segmente durch ihren Anfangs und Endpunkt, dadurch lässt sich die Menge gut aufteilen. Funktion: ReportCuts (S) liefert alle Paare von sich schneidenden vertikalen Segmenten in S und horizontalen Segmenten mit linkem oder rechtem Endpunkt in S Divide: Teile S in S 1 und S 2, falls #(S)>1 Conquer: ReportCuts(S 1 ); ReportCuts(S 2 ); Merge: Berichte alle Schnitte zwischen vertikalen Segmenten in S 1 und horizontalen Segmenten mit rechtem Endpunkt in S 2, deren linker Endpunkt weder in S 1 noch in S 2 liegt. Aufwand Sei k die Anzahl der Schnitte. Somit ergibt sich: T(N) = 2*T(n/2)+a*n+Ausgabez. = O(n log n) +k Die Komplexität des Algorithmus haengt nun ab, von der Ausgabe, d.h. wenn es n² viele Schnitte gibt, dann benötigt dieser auch O(n²). 10

11 Kompletter Algorithmus im Detail Basisfälle: Fall 2: S enthält mehr als nur ein Element Divide: Wähle eine Koordinate x m die S ind zwei etwas gleichgroße Teilmengen S 1 und S 2 aufteilt. 11

12 Conquer: (L 1,R 1,V 1 ) = SegSchnitt(S 1 ) (L 2,R 2,V 2 ) = SegSchnitt(S 2 ) Merge: L = L 2 U (L 1 \I) I = L1 R 2 R = R 1 U (R 2 \I) V = V 1 U V 2 Ausgabe 1. : Gebe alle Paare von Segmenten (h,v) aus mit der linke Endpunkt von h ist in L 1 \I enthalten die y-koordinate von h ist in v enthalten v V 2 Annahme: L 1 \I ist nach aufsteigenden y-koordinaten sortiert V 2 ist nach aufsteigenden unteren Endpunkten sortiert Ausgabe 2.: Gebe alle Paare von Segmenten (h,v) aus mit Der rechte Endpunkt von h ist in R 2 \I enthalten Die y-koordinate von h ist in v enthalten v V 1 Repräsentation der Mengen: S nach x Koordinaten sortiertes Array L,R,I nach y-koordinaten sortierte verkettete Listen V nach der unteren Intervallgrenze sortierte, verkettete Liste von Intervallen Analyse: 12

13 T(1) = O(1) T(n) = O(1) + 2 T(n/2) + O(n), falls n>1 = O((n log n) + k) Das Voronoi Diagramm Gutes Applet unter: Gegeben: Gesucht: Eine Menge von Punkten (sites) Eine Unterteilung der Ebene in Regionen gleicher nächster Nachbarn Lösung: Divide And Conquer Divide: Einteilung der Punktmenge in zwei Hälften Conquer: Rekursive Berechnung der beiden kleineren Voronoi Diagramme Abbruchbedingung: Voronoi Diagramm eines einzelnen Punktes ist die Gesamte Ebene 13

14 Merge: Verbindung der zwei Teildiagramm durch einen Kantenzug. Beschreibung: Es wird oben im unendlichen begonnen. Man bildet die Senkrechte zu den beiden obersten Punkten, die genau in der Mitte der beiden Punkte liegt. Trifft man auf eine blaue oder eine rote Linie dann nimmt man entweder einen neuen blauen oder einen neuen roten Punkt aus einem offenen Gebiet, welches in Richtung 14

15 der anderen Farbe zeigt, um dort die Senkrechte erneut zwischen dem neuen (blauen oder roten Punkt) und dem dem alten roten bzw. blauen Punkt zu bilden. Die blaue bzw. rote Linie muss dann entsprechend abgeschnitten werden Laufzeit: O(n log n) Vorlesung 2 Fast Fourier Transformation (FFT) Gegeben sei ein Polynom p mit Variablen x: Def.: Der Grad von p ist die höchste Potenz von p (=n) Def.: ist die Menge aller reeller Polynome Operationen die auf Polynomen angewandt werden können (mit Koeffizientendarstellung): 1. Addition zweier Polynome p und q: Relativ einfach: Aufsummieren der korrespondierenden (mit gleicher Potenz) Koeffizienten dies geht in O(n) Zeit 2. Multiplikation zweier Polynome p und q: Problem: Wenn man zwei Polynome mit Grad n miteinander multipliziert, kommt ein Polynom mit Grad 2n heraus. Deshalb setzen wir die Koeffizienten von p und q die höher sind als n auf 0. Das Ganze geht naiv in O(n²) bzw. O(n 1.58 ) Man spricht bei von einem Polynomring (Erfüllt die Vorraussetzungen für einen math. Ring) 15

16 3. Auswerten eines Polynoms p an einer bestimmten Stelle x 0 mit dem Horner Schema Dies geht in O(n) Möglichkeiten zur Darstellung (Repräsentation) eines Polynoms Koeffizientendarstellung: Nullstellenprodukt: Punkt-/Wertdarstellung: Dazu benötigen wir folgendes Lemma: Jedes Polynom p(x) aus vom Grad n ist eindeutig bestimmt durch n+1 Paare (x i,p(x i )) mit i=0,,n und x i x j für i j Beispiel: Die Paare (0,0),(1,6,),(2,0),(3,0) legen das Polynom: p(x)=3x(x-2)(x-3) eindeutig fest (Das ist jetzt relativ einfach gewesen, da wir als Wertpaare 3 Nullstellen hatten, sonst nicht so einfach) Operationen auf Polynomen mit Hilfe der Punkt/Wertdarstellung Addition zweier Polynome p und q: dies geht in O(n) Produkt zweier Polynome p und q: Vorraussetzung n Grad(pq) Die geht in O(n) (zum Vergleich bei der Koeffizientendarstellung dauerte es O(n²) Auswertung an einer Stelle x Dazu muss man nun wieder in Koeffizientendarstellung umwandeln 16

17 Polynomprodukt unter Zuhilfenahme der Vorteile von beiden Darstellungen Damit können wir die Berechnung des Polynomprodukt beshleunigen Repräsentation von p(x) Annahme: Grad(p)=n-1 Werte an den n Potenzen der n-ten komplexen Haupteinheitswurzel Potenzen von wn (Einheitswurzeln): 17

18 Diskrete Fourier Transformation (DFT) Werte von p für die n Potenzen von w n legen p eindeutig fest, falls Grad(p)<n Beispiel: n = 4 18

19 Diskurs: Eigenschaften von Einheitswurzeln Kürzungslemma (wenn oben und unten der gleiche Wert d ist, kann man diesen kürzen) Beweis (sehr intuitiv): Oben haben wir gesehen, dass: Dies wenden wir nun an: 19

20 Halbierungslemma Die Menge der Quadrate der 2n komplexen 2n-ten Einheitswurzeln ist gleich der Menge der n komplexen n-ten Einheitswurzeln Beweis: es gilt nach dem Kürzungslemma Angewendet auf jeden Eintrag erhalten wir die Menge der n komplexen n-ten Einheitswurzeln Summationslemma Dies kann man mit Hilfe der geometrischen Reihe beweisen Fast Fourier Transformation (FFT) Berechnung der Diskreten Fourier Transformation (DFT n (p)) mit Hilfe des D&C Ansatzes Wie können wir nun das Polynom geschickt aufteilen um D&C anwenden zu können: Wir nehmen an n sei gerade: Wir teilen so auf, dass ein Teilpolynom nur aus geraden Monomen (p 0 ) besteht und das Andere nur aus ungeraden Monomen (p 1 ) 20

21 Auswertung für k=0,,n-1.2 Fälle Beispiel: Wertet man nun das Polynom aus, stellt man fest, dass bestimmte Teile doppelt vorkommen (rote Kreise). Deshalb kann man den Algorithmus an diesen Stellen verbessern. Zunächst zeigen wir aber nun den Divide and Conquer Ansatz ohne diese Verbesserung. Berechnung der DFT im einzelnen: Der Basisfall (dann wenn nicht mehr geteilt wird) ist: n=1 d.h. dass Grad(p)=n-1=0 Als Ergebnis erhalten wir dann Sind wir nicht auf der Ebene des Basisfalls, dann: Folgen weitere Divide - Schritte, wir teilen also p weiter auf in p 0 und p 1 Im Conquer Schritt folgt nun die rekursive Berechnung von DFT n/2 (p 0 ) und DFT n/2 (p 1 ) 21

22 im anschließenden Merge Schritt werden die Teillösungen wieder zusammengefügt berechne als für k=0, n-1 Eine kleine Verbesserung Nun wenden wir die oben bereits angesprochene Verbesserung an: Im 2. Fall haben wir nun eine Umformumg, die das Ganze verbessert. Also falls k < n/2 Wir berechnen nun keine Werte mehr doppelt, denn wir können bereits berechnet Werte wieder verwenden (siehe Bild weiter oben) Der 1. und der 2. Fall berechnen gleiche Teilterme, die wir uns zu Nutze machen können. Beim 2. Fall wird immer nur n/2 abgezogen, aber, da k größer ist als n/2, kommt der berechnet Wert eigentlich doppelt vor und kann somit wieder verwendet werden. Beispiel für die verbesserte Variante: 22

23 Der fertige Algorithmus 23

24 Ein komplettes Beispiel durchgerechnet: Zeitanalyse des Algorithmus T(n)= Zeit um ein Polynom vom Grad < n an den Stellen Auszuwerten. T(1) T(n) = O(1) = 2T(n/2)+O(n) = O(n log n) nun wollen wir unsere Punkt/Wert Darstellung wieder in die Koeffizientendarstellung bringen. Dazu benötigen wir die nun folgende Interpolation: 24

25 Interpolation Gegeben sind die Punkt/Wert-Paare Gesucht ist das Polynom p mit den Koeffizienten a 0,,a n-1 so dass wir haben nun also ein Gleichungssystem mit n Gleichungen Wir schreiben das Gleichungssystem als Matrix Diese Matrix könnten wir leicht direkt lösen, aber in O(n³) Wir haben nun aber den Spezialfall, dass alle X i Einheitswurzeln sind, das heisst es gilt: Definition: V n ist die Matrix aus den Einheitswurzeln a sind die gesuchten Koeffzienten y sind die Funkionswerte zu den Einheitswurzeln um a zu berechnen können wir nun umformen nach folgender Regel Wir müssen nun also die Inverse von V n berechnen, für diese gilt: Den zugehörigen Beweis überspringen wir hier 25

26 Hinweis: V n *V n -1 muss die Einheitsmatrix ergeben, dies wird in dem Beweis geprüft. Berechnen der a i a ist ein Vektor mit den Einträgen a i für i=0,,n-1 r ist ein Polynom mit den Koeffizienten y i in welches als x jeweils die Einheitswurzel eingesetzt wird. Alle Summen wenden eigentlich die gleiche Funktion an und sind sogar gleich, wenn man die w weglässt, deshalb können wir die Funktion r nehmen und sie mit den Einheitswurzeln füttern. Damit erhalten wir den Vektor a mit den Koeffizienten a i. unser Teilterm (in der Klammer) ist nun im Prinzip eine DFT n. die nur noch gespiegelt werden muss. 26

27 Komplexität Vorlesung 3 Zufallszahlengeneratoren Rechner generieren nur Pseudo-Zufallszahlen Systemfunktionen wie rand oder RAND0 sind nicht so gut ( Systemabhängigkeit, unbekannte statistische Eigenschaften Lineare Kongruenzmethode (Lehmer, 1951) Man spricht auch vom Lehmer-Generator Z 0 Z n+1 f(z) Startwert = f(z n ), für n=1,2, = a * z mod m Multiplikator: a {2,,m-1} Modul: m, (Große Primzahl) Periode von f: Anzahl verschiedener Werte für z n Reduktion auf (0,1): u n =z n /m (Erstellen einer Zufalls-zahl zwischen 0 und 1 Beispiele: 27

28 f(z)= 6z mod 13 (1,6,10,8,9,2,12,7,3,5,4,11,1 ) volle Periode (alle Zahlen von 1 12 abgedeckt) f(z)= 7z mod 13 (1,7,10,5,9,11, 12,6,3, 8,4,2,1) volle Periode, aber Zahlen wirken nicht zufällig f(z)= 5z mod 13 (1,5,12,8,1) (2,10,11,3,2) (4,7,9,6,4) (5 4 = mod 13 = 1 5 ist keine Primitwurzel) mehrere nicht volle Perioden schlecht! Beurteilung von Zufallszahlengeneratoren Folgende Tests zur Beurteilung: (T1) Ist f(z)=a*z mod m eine Funktion die eine volle Periode erzeugt (a muss eine Primitivwurzel sein)? (T2) Ist die von f(z) erzeugte Zahlenfolge (z 1,z 2,z 3, ) zufällig? (T3) Ist f effizient und korrekt implementiert? (32-Bit Rechner) Exkurs: Primitivwurzel a ist eine Primitivwurzel, wenn: a n mod m 1 für alle n 1,.m-2 Vorschlag von Lehmer: m = = ist eine Primzahl a = 7 5 = ist eine Primitvwurzel bzgl. m Beispiel: z 0 = 1 z = (Zum testen ob T3 erfüllt ist für Lehmers Vorschlag) 28

29 Der komplette Algorithmus als Java Code: Dieser Algorithmus ist leider fehlerhaft, da a*zn > als der Integerbereich ist, somit gibt es einen Überlauf: Z 0 = z 1 = Z 2 = z 3 = (ÜBERLAUF!!!) Problem ist, dass auf einem 32Bit Rechner nur Zahlen bis 2 32 gespeichert werden können (Anmerkung: Ein Longint wird aus zwei Integern zusammengesetzt!) Lösung des Problem mit Hilfe eines Vorschlags von Schrage Vorschlag von Schrage (1979) Korrekte, überlauffreie Ausführung der Operation auf 32 Bit Rechnern Idee: Nur Multiplikationen ausführen die im Bereich [-2 31, ] liegen. Dies wäre noch einfach falls m=a*q ist. Z n+1 = a*z n mod a*q = a*(z n mod q) < m ; (Stellt sicher, dass es innerhalb des Terms keinen Überlauf gibt) Falls m sich nicht Restfrei durch a teilen lässt, schreiben wir: m = a*q + r mit r < q Durch etliche mathematische Umformungen und Substituieren erhält man nun: z n+1 = γ(z n ) + m*δ(z n ) wobei γ(z n ) = a*(z n mod q) r* z n /q δ(z n ) = z n /q a*z n /m 29

30 Bedingungen: (1) δ(z n ) {0,1] (2) a*(z n mod q), r* z n /q {0,,m-1} (Sind die zwei teilterme von Gamma) (3) γ(z n ) m-1 Diese Bedingungen würden nun bewiesen werden Beobachtung: δ(z n ) = 0, gdw. γ(z n ) 0 δ(z n ) = 1, gdw. γ(z n ) < 0 deshalb nehmen wir für γ(z n ) 0 z n+1 = γ(z n ) sonst z n+1 = γ(z n ) + m Der modifizierte Lehmer Algorithmus sieht dann folgendermaßen aus: Modifizierte Lehmer Algorithmus nach Schrage Wir erhalten nun mit seed=1 folgende korrekte Pseudo-Zufallszahlen: z 0 = 16807, z 1 = , z 2 = , z 3 = , z 4 = , z 5 = z 6 =.. 30

31 Gemischt kongruente Generatoren z.b. z n+1 = (a*z n +b) mod m ; Häufige Wahl m=2 k Probleme: z n wechselt zwischen gerade und ungeraden Werten allgemein hat der Zyklus der letzten l Bits Periode 2 l So wurde diese Algorthmus in Java implementiert: Satz: Ist m = 2 k, so erzeugt f(z n ) = z n+1 = (a*z n +b) mod m alle ganzen Zahlen in {0,,2 k -1}, falls: 1. a mod 4 = 1 2. b ungerade ist Das gerade behandelte Thema können wir nun direkt anwenden im folgenden Teil. Vorlesung 4 Randomisierte Algorithmen Es gibt zwei große Klassen von randomisierten Algorithmen: 1. Las Vegas Algorithmen: wahrscheinlich schnell, immer korrekt Wir haben nur einen Erwartungswert für die Laufzeit Beispiel: Randomisiertes Quicksort 2. Monte Carlo Algorithmen: immer schnell, Wahrscheinlich korrekt Der Algorithmus hat eine Irrtumswahrscheinlichkeit für die richtige Ausgabe ( erhöhen durch mehrfaches Ausführen) Beispiel: Randomisierter Primzahltest Randomisiertes Quicksort Normaler Quicksort siehe Anfang. 31

32 Java-Code: Der randomisierte Quicksort-Algorithmus unterscheided sich vom normalen nur durch die Wahl des Pivotelementes. Das rechteste Element das normalerweise als Pivotelement gewählt wird, wird randomisiert, mit einem beliebigen anderen Element der Liste geswapt. Erwartungswert für die Laufzeit: Randomisierter Primzahltest Sehen wir uns zunächst die deterministische Variante an, die zwar immer korrekte Ergebnisse liefert, aber sehr langsam ist und für große Primzahlen nicht mehr praktikabel. Der Algorithmus teilt einfach jede zu testende Zahl n durch alle ungeraden Zahlen die kleiner als SQRT(n) sind. 32

33 Die Laufzeit für ein d-stelliges n ist 2 d/2 bzw. lineare Laufzeit Wir suchen nun ein randomisiertes Verfahren, das: In polynomieller Zeit ausführbar ist, Falls es als Ausgabe n nicht prim liefert, dann soll n auch nicht prim sein Falls es als Ausgabe n ist prim liefert, dann soll n zu einer bestimmten Wahrscheinlichkeit p > 0 auch prim sein. Nach k Iterationen ist n nicht prim zu einer Irrtumswahrscheinlichkeit von (1- p) k Ein wesentlicher theoretischer Bestandteil des randomisierten Primzahltestes ist der kleine Satze von Fermat : Kleiner Fermat Ist p prim und 0 < a < p, dann ist a p-1 1 (mod p) Beispiel: p=67, 2 66 mod 67 = 1 Integrieren wir nun den kleinen Satz von Fermat in einen randomisierten Primzahltest, so erhalten wir folgende 1. Version eines Algorithmus: leider haben wir noch eine relativ große Irrtumswahrscheinlichkeit. Ein weiteres Problem, das wir haben sind die so genannten Carmichael Zahlen: 33

34 Carmichael Zahlen Carmichael Zahlen sind Zahlen n für die gilt: Der Formel von Fermat ist zwar erfüllt:: o a n-1 mod n = 1 o aber n ist die Zahl die wir testen! und ist nicht zwingend prim denn a ist Teilerfremd mit n, also: o ggt(a, n) = 1 solche Zahlen die vermeintliche Primzahlen sind, nennt man Carmichael Zahlen. Die kleinste Carmichael Zahl ist 561 = 3 * 11 * 17. Wählt man nun das a also so aus, dass es gerade nicht Primfaktor oder Vielfaches von diesem von n ist, dann erhalten wir ein falsches Ergebnis. Die Wahrscheinlichkeit ein falsches a zu wählen ist sehr hoch. Beispiel: n = = 101 * 151 * 251 Außer für vielfache von 101, 151, 251 die leider nur ca. 1/50 stel aller möglichen Zahlen sind, ist a n-1 mod n = 1 wir wissen nun, das ein randomisierter Primzahltest alleine mit dem Satz von Fermat nicht gut genug ist, da die Irrtumswahrscheinlichkeit nahezu 1 ist! wir müssen nun die erste Bedingung, also den Satz von Fermat, mit einer zweiten Bedingung kombinieren, hierzu testen wir nun zusätzlich auf nichttriviale Quadratwurzeln. Satz über nichttriviale Quadratwurzeln Ist p prim und 0 < a < p, dann hat die Gleichung a 2 1 (mod p) genau die Lösungen: a = 1 und a = p-1 Falls a 2 mod n = 1 gilt, obwohl a 1 und a p-1, dann heisst a nichttriviale Quadratwurzel mod n Beispiel n = (mod 35) (mod 35) aber (mod 35) 6 ist Nichttriviale Quadratwurzel mod 35 wir müssen nun herausfinden ob es überhaupt eine Nichttriviale Quadartwurzel mod n gibt. Die machen wir während wir a n-1 berechnen: 34

35 Schnelle Exponentiation (Berechnung von a n ) 0 < a < n Laufzeit: O(log 2 a n log n) Im Java-Code sieht die Kombination dann so aus: Wir haben nun eine Laufzeit von: O(log 2 n log p) für diesen Teil Der gesamt randomisierte Primzahltest-Algorithmus mit beiden Bedingungen, d.h. Fermat und nichttriviale Quadratwurzeln sieht in Java nun so aus: 35

36 (auf unsere Powerfunktion von oben wird im Hauptprogramm zugegriffen) Folgender wichtiger Satz beschreibt die Irrtumswahrscheinlichkeit unseres Primzahltests: Satz: Ist n nicht prim, so gibt es höchstens (n-9)/4 Zahlen 0 < a < n, für die der Algorithmus primetest versagt. Also ca. ¼, führt man den Algorithmus aber z.b. 50 mal aus so reduziert sich die Irrtumswahrscheinlichkeit auf (¼) 50,also nahezu 0, oder besser gesagt niedriger als die Wahrscheinlichkeit für einen Hardwarefehler beim Rechnen. Vorlesung 5 Kryptographie: RSA Traditonelle Verschlüsselung mit symmetrischem Schlüssel: Probleme: Schlüssel müssen irgendwann ausgetauscht werden! Für Nachrichten zwischen n Parteien sind n(n-1)/2 Schlüssel erforderlich 36

Vorrangswarteschlangen:Operationen

Vorrangswarteschlangen:Operationen Fibonacci Heaps Vorrangswarteschlangen:Operationen (Vorrangs)warteschlange Q Operationen: Q.initialize(): erstellt die leere Schlange Q Q.isEmpty(): liefert true gdw. Q ist leer Q.insert(e): fügt Eintrag

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Algorithmentheorie Randomisierung

Algorithmentheorie Randomisierung Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

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

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Algorithmentheorie Randomisierung. Robert Elsässer

Algorithmentheorie Randomisierung. Robert Elsässer Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

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

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

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Datenstrukturen & Algorithmen

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

Mehr

1 topologisches Sortieren

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

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

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

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

WS 2009/10. Diskrete Strukturen

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

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Allgemein: Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

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:

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: AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls

Mehr

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema 2x 4 + x 3 + x + 3 div x 2 + x 1 = 2x 2 x + 3 (2x 4 + 2x 3 2x 2 ) x 3 + 2x 2 + x + 3 ( x

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt Methoden und Techniken an Beispielen erklärt Georg Anegg 5. November 009 Beispiel. Die Folge {a n } sei wie folgt definiert (a, d, q R, q ): a 0 a, a n+ a n q + d (n 0) Man bestimme eine explizite Darstellung

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

Modul Diskrete Mathematik WiSe 2011/12

Modul Diskrete Mathematik WiSe 2011/12 1 Modul Diskrete Mathematik WiSe 2011/12 Ergänzungsskript zum Kapitel 4.2. Hinweis: Dieses Manuskript ist nur verständlich und von Nutzen für Personen, die regelmäßig und aktiv die zugehörige Vorlesung

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

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

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)

Mehr

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12) Technische Universität München Zentrum Mathematik PD Dr. hristian Karpfinger http://www.ma.tum.de/mathematik/g8vorkurs 5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12) Aufgabe 5.1: In einer Implementierung

Mehr

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

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

11. Das RSA Verfahren und andere Verfahren

11. Das RSA Verfahren und andere Verfahren Chr.Nelius: Kryptographie (SS 2011) 31 11. Das RSA Verfahren und andere Verfahren Eine konkrete Realisierung eines Public Key Kryptosystems ist das sog. RSA Verfahren, das im Jahre 1978 von den drei Wissenschaftlern

Mehr

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

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

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

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

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

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 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/ws0809

Mehr

Algorithmen und Datenstrukturen Suchbaum

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

Mehr

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R L Ö S U N G E N Seite 7 n Wenn vier Menschen auf einem Quadratmeter stehen, dann hat jeder eine Fläche von 50 mal 50 Zentimeter

Mehr

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

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten! Mathefritz 5 Terme und Gleichungen Meine Mathe-Seite im Internet kostenlose Matheaufgaben, Skripte, Mathebücher Lernspiele, Lerntipps, Quiz und noch viel mehr http:// www.mathefritz.de Seite 1 Copyright

Mehr

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term

Mehr

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

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

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

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

3.1. Die komplexen Zahlen

3.1. Die komplexen Zahlen 3.1. Die komplexen Zahlen Es gibt viele Wege, um komplexe Zahlen einzuführen. Wir gehen hier den wohl einfachsten, indem wir C R als komplexe Zahlenebene und die Punkte dieser Ebene als komplexe Zahlen

Mehr

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr. Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr. Kurzweil Florian Franzmann André Diehl Kompiliert am 10. April 2006 um 18:33

Mehr

Kapitel 5: Dynamisches Programmieren Gliederung

Kapitel 5: Dynamisches Programmieren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

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 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:

Mehr

10. Public-Key Kryptographie

10. Public-Key Kryptographie Stefan Lucks 10. PK-Krypto 274 orlesung Kryptographie (SS06) 10. Public-Key Kryptographie Analyse der Sicherheit von PK Kryptosystemen: Angreifer kennt öffentlichen Schlüssel Chosen Plaintext Angriffe

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

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 )

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 ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume

Mehr

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel Ausarbeitung zum Proseminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn zum Thema Simulation des Anlagenpreismodels von Simon Uphus im WS 09/10 Zusammenfassung

Mehr

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

Kapitel 15. Lösung linearer Gleichungssysteme

Kapitel 15. Lösung linearer Gleichungssysteme Kapitel 15. Lösung linearer Gleichungssysteme Lineare Gleichungssysteme Wir befassen uns nun mit der Lösung im allgemeinen nichthomogener linearer Gleichungssysteme in zweifacher Hinsicht. Wir studieren

Mehr

Numerische Verfahren und Grundlagen der Analysis

Numerische Verfahren und Grundlagen der Analysis Numerische Verfahren und Grundlagen der Analysis Rasa Steuding Hochschule RheinMain Wiesbaden Wintersemester 2011/12 R. Steuding (HS-RM) NumAna Wintersemester 2011/12 1 / 16 4. Groß-O R. Steuding (HS-RM)

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) Aufgabe 3 Bankkonto Schreiben Sie eine Klasse, die ein Bankkonto realisiert. Attribute für das Bankkonto sind der Name und Vorname des Kontoinhabers,

Mehr

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen. Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems

Mehr

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

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

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Einfache kryptographische Verfahren

Einfache kryptographische Verfahren Einfache kryptographische Verfahren Prof. Dr. Hagen Knaf Studiengang Angewandte Mathematik 26. April 2015 c = a b + a b + + a b 1 11 1 12 2 1n c = a b + a b + + a b 2 21 1 22 2 2n c = a b + a b + + a b

Mehr

Analysis I für Studierende der Ingenieurwissenschaften

Analysis I für Studierende der Ingenieurwissenschaften Fachbereich Mathematik der Universität Hamburg WiSe 2015/16 Prof. Dr. M. Hinze Dr. P. Kiani Analysis I für Studierende der Ingenieurwissenschaften Lösungshinweise zu Blatt 2 Aufgabe 1: (12 Punkte) a) Beweisen

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Statistische Untersuchungen zu endlichen Funktionsgraphen

Statistische Untersuchungen zu endlichen Funktionsgraphen C# Projekt 1 Name: Statistische Untersuchungen zu endlichen Funktionsgraphen Aufgabe: Basierend auf dem Abschnitt 2.1.6. Random mappings, Kap.2, S 54-55, in [1] sollen zunächst für eine beliebige Funktion

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

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

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009) Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009) Probleme unseres Alltags E-Mails lesen: Niemand außer mir soll meine Mails lesen! Geld abheben mit der EC-Karte: Niemand außer mir soll

Mehr

Wir arbeiten mit Zufallszahlen

Wir arbeiten mit Zufallszahlen Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

Eigenwerte und Eigenvektoren von Matrizen

Eigenwerte und Eigenvektoren von Matrizen Eigenwerte und Eigenvektoren von Matrizen Das Eigenwertproblem Sei A eine quadratische Matrix vom Typ m,m. Die Aufgabe, eine Zahl λ und einen dazugehörigen Vektor x zu finden, damit Ax = λx ist, nennt

Mehr

Mathematischer Vorbereitungskurs für Ökonomen

Mathematischer Vorbereitungskurs für Ökonomen Mathematischer Vorbereitungskurs für Ökonomen Dr. Thomas Zehrt Wirtschaftswissenschaftliches Zentrum Universität Basel Gleichungen Inhalt: 1. Grundlegendes 2. Lineare Gleichungen 3. Gleichungen mit Brüchen

Mehr

Das RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009

Das RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009 Das RSA-Verfahren Armin Litzel Proseminar Kryptographische Protokolle SS 2009 1 Einleitung RSA steht für die drei Namen Ronald L. Rivest, Adi Shamir und Leonard Adleman und bezeichnet ein von diesen Personen

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK Mastermind mit dem Android SDK Übersicht Einführungen Mastermind und Strategien (Stefan) Eclipse und das ADT Plugin (Jan) GUI-Programmierung (Dominik) Mastermind und Strategien - Übersicht Mastermind Spielregeln

Mehr

a n + 2 1 auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

a n + 2 1 auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert: Beispiel: Wir untersuchen die rekursiv definierte Folge a 0 + auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert: ( ) (,, 7, 5,...) Wir können also vermuten, dass die Folge monoton fallend

Mehr

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

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.

Mehr

Gleichungen und Ungleichungen

Gleichungen und Ungleichungen Gleichungen Ungleichungen. Lineare Gleichungen Sei die Gleichung ax = b gegeben, wobei x die Unbekannte ist a, b reelle Zahlen sind. Diese Gleichung hat als Lösung die einzige reelle Zahl x = b, falls

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Beispiel 48. 4.3.2 Zusammengesetzte Zufallsvariablen

Beispiel 48. 4.3.2 Zusammengesetzte Zufallsvariablen 4.3.2 Zusammengesetzte Zufallsvariablen Beispiel 48 Ein Würfel werde zweimal geworfen. X bzw. Y bezeichne die Augenzahl im ersten bzw. zweiten Wurf. Sei Z := X + Y die Summe der gewürfelten Augenzahlen.

Mehr

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775, Aufgabenpool für angewandte Mathematik / 1. Jahrgang V B, C, D Drinks Ein gastronomischer Betrieb kauft 300 Dosen Energydrinks (0,3 l) und 400 Liter Flaschen Mineralwasser und zahlt dafür 50, Euro. Einen

Mehr

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik WS 09/10 Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3

Mehr

Amortisierte Analyse

Amortisierte Analyse Amortisierte Analyse Amortisierung Betrachte eine Folge a 1, a 2,..., a n von n Operation auf Datenstruktur D T i = Ausführungszeit von a i T = T 1 + T 2 +... + T n, Gesamtlaufzeit Oft kann die Laufzeit

Mehr

Nichtlineare Optimierung ohne Nebenbedingungen

Nichtlineare Optimierung ohne Nebenbedingungen Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche

Mehr

Anleitung Thunderbird Email Verschlu sselung

Anleitung Thunderbird Email Verschlu sselung Anleitung Thunderbird Email Verschlu sselung Christoph Weinandt, Darmstadt Vorbemerkung Diese Anleitung beschreibt die Einrichtung des AddOn s Enigmail für den Mailclient Thunderbird. Diese Anleitung gilt

Mehr

Wie löst man Mathematikaufgaben?

Wie löst man Mathematikaufgaben? Wie löst man Mathematikaufgaben? Manfred Dobrowolski Universität Würzburg Wie löst man Mathematikaufgaben? 1 Das Schubfachprinzip 2 Das Invarianzprinzip 3 Das Extremalprinzip Das Schubfachprinzip Verteilt

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner

Mehr

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. Binäre Suchbäume Tries (Folie 182, Seite 58 im Skript) In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. In Tries entspricht die ite Verzweigung dem iten Zeichen des Schlüssels.

Mehr