Klausur Paralleles Rechnen (Richtwert 60 min) 10. Dez. 2015

Größe: px
Ab Seite anzeigen:

Download "Klausur Paralleles Rechnen (Richtwert 60 min) 10. Dez. 2015"

Transkript

1 Klausur Paralleles Rechnen (Richtwert 60 min) 10. Dez Aufgabe 1: (30 Punkte) 1. Erläutern Sie kurz das PRAM-Modell? Was wird sehr idealistisch, was wird realistischer im Vergleich mit echten Parallelrechnern abgebildet? 2. Welchem Parallelrechnertyp nach der Taxonomie von Flynn entspricht das PRAM-Modell? 3. Skizzieren Sie wie man aus einem PRAM-Programm zur Lösung eines Problems P ein LogP- Programm zur Lösung von P erhalten kann. Lösung: [Zu 1.] (13 Punkte, pro Item ein Punkt mit zwei Ausnahmen) PRAM steht für Parallel Random Access Machine N Rechner sind über eine zentrale Steuereinheit miteinander verknüpft Die Steuereinheit synchronisiert die Programme auf den unterschiedlichen Rechnern: Jeder Prozess führt das gleiche Programm aus In jedem Takt führt jeder Prozess denselben Befehl durch oder ist idle Jeder Rechner besitzt eine eindeutige ID, die in einem PRAM-Programm zur Verfügung steht und anhand dessen auch eine Programmverzeigung möglich Jeder Rechner hat Zugriff auf einen lokalen Speicher und auf einen gemeinsamen (globalen) Speicher Die Kommunikation der verschiedenen Rechner findet über den globalen Speicher statt Der globale Speicher besitzt genügend (unendlich) viele Zellen (für jeweils einen Datenwert) Ein PRAM-Programm besteht aus einzelnen parallelen Rechenschritten; jeder parallele Rechenschritt besteht aus (2 P) o einer Lesephase, in der ein Datum aus dem globalen Speicher eingelesen werden kann, o einem Rechenschritt, in dem eine endliche Anzahl von Operationen mit den Daten im lokalen Speicher ausgeführt wird und o einem Schreibschritt, in dem ein Ergebniswert wieder zurück in den globalen Speicher geschrieben werden kann. Es gibt vier verschiedene Varianten einer PRAM, nämlich EREW, CREW, ERCW, CRCW, wobei ER/CR für Exclusiv/Concurrent-Read, EW/CW für Exclusive/Concurrent Write, die danach unterschieden werden, ob ein exklusiver oder ein konkurrierender Lese- oder Schreibzugriff erlaubt ist. Bei einem konkurrierenden Schreibzugriff auf dieselbe Zelle des globalen Speichers wird eine zusätzliche Strategie oder Vereinbarung erforderlich. (2 P)

2 Ein PRAM ist ein idealisiertes Modell eines Parallelrechners, es wird nicht allen unterschiedlichen Klassen und Typen von Parallelrechnern gleichermassen gerecht. (1 P) Es beschreibt am ehesten einen SIMD-Rechner mit globalem Speicher und zentraler Steuereinheit, die den Ablauf des Programmes auf den unterschiedlichen Prozessoren synchronisiert. (4 P) Für Rechner vom Typ MIMD Programme stellt es eine erhebliche Vereinfachung dar. Im Folgenden werden PRAM und MIMD miteinander verglichen und die gravierenden Unterschiede aufgelistet: Die Kommunikation findet über einen globalen Speicher statt und damit ohne Kommunikationsnetzwerk. Faktisch kostet damit die Kommunikation keine extra Zeit (allerdings besteht die Einschränkung, dass pro parallelem Rechenschritt lediglich höchstens ein Datum eingelesen werden kann). (2 P) Ein Berechnungsproblem muss in beiden Modellen für die verschiedenen Rechner in Teilprobleme zerlegt und gelöst werden muss. (2 P) Eine weitere Übereinstimmung besteht darin, dass jeder Prozess das gleiche Programm führt das gleiche Programm aus, lediglich durch die Prozessor-ID kann eine Programmverzweigung realisiert werden. (2 P) [Zu 2.] (4 Punkte, falls diese oben noch nicht gegeben wurden) Nach der Taxanomie von Flynn ist ein PRAM am ehesten ein Rechner vom SIMD (Single Instruction Multiple Datastream) (synchrone Abarbeitung derselben Instruktion im gleichen Rechen-Takt) [Zu 3.] (6 Punkte) Wie lässt sich aus einem PRAM-Programm ein LogP-Programm machen? Wir machen die Annahme, dass die gleiche Anzahl von Prozessoren zur Verfügung stehen und keine neue Zuordnung von Operationen an die Prozessoren. Wenn man keine weiteren Einschränkungen machen muss, beispielsweise dass ein möglichst effizientes Programm erstellt wird, so sind lediglich die Zugriffe auf den globalen Speicher durch Kommunikationsprimitive zu ersetzen. (2 P) Zunächst formulieren wir das PRAM-Programm so um, dass der Zugriff auf eine globale (nicht-lokale) Variablen A nur noch in der Form A := // Sendepunkt x := A // Empfangspunkt erfolgt, wobei x eine lokale Prozessvariable ist. (2 P) Für jedes Paar solcher Anweisungen bei denen ein Prozess P i einen Wert in die Variable A zurückschreibt und ein Prozess P j danach den Wert A einliest und damit die lokale Variable x durch A aktualisiert (bevor ein weiterer Prozess P k die globale Variable A neu belegt) ist im entsprechenden LogP-Programm eine Nachricht von Prozess P i an Prozess P j zu versenden, d.h. der Prozess P i ruft eine Sendeprimitive auf und der Prozess P j die dazu passende Empfangsroutine. (2 P)

3 Aufgabe 2: (max. 20 Punkte) Gegeben ist das folgende PRAM-Programm. Aus den n Eingabewerten A[0],, A[n 1] wird durch eine parallele Berechnung eine Ausgabe berechnet. Algorithmus: DoSomeWork (für Prozessor i) begin: end ; IN: A[0], A[1],, A[n 1] /* n Eingabewerte (n ist eine Zweierpotenz) */ OUT:A[0] /* enthält den Resultatwert */ for j = log (n) to 1 do endfor If (i < 2 j 1 ) then endif A[i] = f(a[i + 2 j ], A[i j ]) 1. Welche Laufzeit, Arbeit und Effizienz hat das Verfahren, wenn a. Die Werte A[0], A[1],, A[n 1] ganzzahlig sind und die Funktion f das Maximum berechnet, b. die Berechnung von f(a[i + 2 j ], A[i j ]) den Aufwand O(log(n)) besitzt, c. Die Werte A[0], A[1],, A[n 1] Matrizen sind und die Funktion f das Matrizenprodukt sequentiell berechnet. 2. Unter welchen Voraussetzungen ist der Algorithmus in Aufgabe 1. optimal? Lösung: [Zu 2.1] (je 2 Punkte) Aufgabe 2.1.a Aufgabe 2.1.b Aufgabe 2.1.c Laufzeit log (n) (log(n)) 2 m 2 log (n) Arbeit n log (n) n (log(n)) 2 n m 3 log (n) Effizienz 1/log (n) 1/(log(n)) 2 1/(m 3 log (n)) Arbeit eines optimalen Verfahrens n n log (n) n m 3 Es gilt hierbei, dass n die Anzahl der Prozessoren und in Aufgabe 1.c die Variablen A[0], A[1],, A[n 1] für m m-matrizen stehen. [Zu 2] (8 Punkte) Der Algorithmus kann niemals optimal sein, denn die for-schleife wird log(n) Mal ausgeführt. Bei jeder weiteren Iteration wird die Anzahl der aktiven Prozessoren gegenüber der vorangegangenen Iteration halbiert, d.h. am Ende gibt es nur noch einen aktiven Prozessor. Die anderen Prozessoren sind idle. Da die idle Prozessoren mit gezählt werden, ist die Arbeit des PRAM-Programms jeweils um den Faktor log (n) grösser ist als der des sequentiellen Algorithmus.

4 Aufgabe 3: (max. 25 Punkte) Es seien n ganze Zahlen a 1, a 2,, a n gegeben und es sei eine assoziative Operation auf den ganzen Zahlen. Es sind die Produkte a 1 a 2, a 1 a 2 a 3,, a 1 a 2 a n zu berechnen. 1. Wie heisst dieses Problem in der Literatur? Wie schnell lässt sich dieses Problem lösen? 2. Wie lösen Sie dieses Problem mittels einer MPI-Bibbliothek? Skizzieren Sie kurz eine mögliche MPI-Realisierung unter der Annahme, dass jeder Prozess bereits mit seinen Initialdaten versorgt ist. (nur die wichtigsten Anweisungen angeben) 3. Im Folgenden seien die Listen L 1, L 2, L n zu berechen, wobei L i (für alle i, 1 i n ) die sortierte Liste aller Elemente a 1, a 2,, a i sei. a. Nehmen Sie zu folgender Behauptung Stellung: Die Berechnung der Listen lässt sich ähnlich wie die Berechnung des oberen Produktes für eine geeignet gewählte Operation berechnen? b. Kennen Sie ein Verfahren zur Berechnung der Listen L i. Erläutern Sie dieses kurz. Welche Laufzeit hat es? Lösung [Zu 3.1] Die Präfix-Summation. Es lässt sich für n Eingabewerte und bei genügender Prozessorzahl, beispielsweise für n viele Prozessoren in log (n) Zeit lösen. (3 P) [Zu 3.2] Die Präfix-Summation kann mittels eines einzigen Aufrufes der Primitive MPI_SCAN berechnet werden. (5 P) [Zu 3.3.1] Nein, das stimmt nicht. (2 P) Auf den ersten Blick sieht das durchaus ähnlich wie die Präfixsummation ganzer Zahlen aus. Das stimmte allerdings nur dann, wenn man die Operation mit dem Ergebnis einer sortierten Liste als atomare Operation auffassen und das Ergebnis (eine sortierte Liste) wie einen einzelnen Ergebniswert behandeln kann könnte. (2 P) Tatsächlich geht das im PRAM-Modell nicht. Einerseits ist das Mergen zweier sortierter Teilfolgen zu einer sortierten Gesamtfolge keine atomare Operation (sie benötigt für beliebige Eingaben mehr als eine feste Anzahl paralleler Rechenschritte wie im Fall der Addition), andererseits ist das Ergebnis kein Einzelwert, sondern eine Liste. (2 P) Ein Einzelrechner benötigt für das Zusammenfügen zweier sortierter Teilfolgen zu einer sortierten Folge der Länge k nämlich den Aufwand O(k), und wenn beliebig viele Rechner eingesetzt werden dürfen, wird mindestens log (k) viele Schritte benötigt. (2 P) Betrachten wir Bitonisches Sortieren als mögliches Verfahren zur Lösung der Aufgabe: Beim Bitonischen Sortieren verdoppelt sich die Ergebnisfolge mit jedem Iterationsschritt, so dass nach log (n) vielen Schritten die gesamte Folge der Länge n sortiert ist. Für das Abspeichern einer Ergebnisfolge der Länge k sind schon k viele parallele Rechenschritte erforderlich (im Fall eines einzelnen Prozesses). Beim Bitonischen Sortieren geht das Sortieren und Abspeichern zwar Hand in Hand, dafür sind dann aber k viele Rechner ständig involviert. (4 P)

5 In MPI könnte man mittel MPI_OP_CREATE eine assoziative Operation für die Anwendung in der MPI_SCAN-Anweisung benutzen. Das Zusammenfügen zweier sortierter Teillisten zu einer sortierten Gesamtliste ist zwar assoziativ, allerdings ist diese Betrachtungsweise unfair. Einerseits wächst auch hier der Aufwand linear mit der Länge der Eingabefolgen, und andererseits werden die Ergebnisfolgen immer länger, womit auch die Nachrichtenpakete, die zwischen den Prozessen ausgetauscht werden müssen, immer länger werden. Bei wirklichen langen Eingabefolgen ist auch dieser Aufwand nicht mehr vernachlässigbar. (5 P) [Zu 3.3.2] Ein effizientes Verfahren, um obiges Problem zu lösen, kann es nicht geben. (2 P) Betrachten wir das Bitonische Sortieren als möglichen Kandidaten. Hier werden beginnend mit Listen der Länge 1, in jedem weiteren Iterationsschritt zwei gleich lange sortierte Folgen zu einer neuen doppelt so langen sortierten Folge verknüpft. (1 P) In der obigen Aufgabe ist jedoch nicht nur eine sortierte Gesamtliste aller n Zahlen zu erstellen, wie es das ursprüngliche Bitonische Sortierverfahren durchführt, sondern auch für alle k, 1 k n, die ersten k Glieder der Eingabefolge zu sortieren. Grundsätzlich können auch ungleichlange Teilfolgen zu einer sortierten Gesamtliste zusammengefügt werden, allerdings sind im Fall des bitonischen Sortierens zur Erstellung der Teilfolgen der Länge k alle k Prozessoren aktiv. Daher müssten die sortierten Teilfolgen nacheinander erzeugt werden und die parallele Laufzeit zur Bestimmung aller sortierten Teilfolge beträgt dann n(log(n)) 2, was zeigt dass das Bitonische Sortieren nicht geeignet wäre, um das obere Problem effizient zu lösen. (4 P)

6 Aufgabe 4: (25 Punkte) Gegeben ist ein Polynom p(x) = a n x n + a n 1 x n a 1 x 1 + a 0 über den Koeffizienten a 0, a 1,, a n. Zu berechnen ist der Wert p(x 0 ), also der Wert des Polynoms an der Stelle x 0. Hinweis: Die Auswertung eines Polynoms lässt sich wie folgt zerlegen (Die Operation / ist eine Division ohne Rest): wobei p(x 0 ) = x 0 (n+1)/2 p 1 (x 0 ) + p 2 (x 0 ) p 1 (x 0 ) = a n x 0 (n 1)/2 + + a (n+1)/2, p 2 (x 0 ) = a (n 1)/2 x 0 (n 1)/2 + + a 0 1. Geben Sie einen Berechnungsbaum zur parallelen Auswertung eines Polynoms vom Grad 7 an, und zwar des Polynoms p(x 0 ) = a 7 x a 6 x a 1 x a Geben Sie ein PRAM-Programm an, wobei sie der Einfachheit halber annehmen sollen, dass der Grad n des Polynoms p(x) eine Zweierpotenz minus eins ist, also n = 2 k 1 für eine ganze Zahl k. Verwenden Sie das Programm-Skelett von Aufgabe 2. Lösung: [Zu 4.1] (12 Punkte) [Zu 4.2] (13 Punkte) Algorithmus: Polynomauswertung (für Prozessor i) begin: end ; IN: A[0], A[1],, A[n] /* (n + 1) Koeffizienten des Polynoms, dabei (n + 1) ist eine Zweierpotenz) */ X[0] /* enthält die Stelle an der das Polynom ausgewertet wird */ X[1],,X[log (n + 1)] /* sind vorerst unbesetzt */ OUT:A[0] /* enthält den Resultatwert */ for j = 1 to log (n + 1) do endfor if (i == 0) then /* X[1],,X[log (n + 1)] speichern die Potenzen von x 0 */ endif; X[j] = X[j 1] X[j 1]; If (i < 2 log (n+1) j ) then endif A[i] = X[j 1] A[i + 2 log(n+1) j ] + A[i log(n+1) j ])

6. Parallele Algorithmen

6. Parallele Algorithmen 6. Parallele Algorithmen 6.1 Vorbemerkungen Bisher: Instruktionen von Programmen werden durch einen einzigen Prozessor sequentiell ausgeführt. Eine Beschleunigung von Algorithmen ist dabei nur möglich,

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs

Mehr

1 Potenzen und Polynome

1 Potenzen und Polynome 1 Potenzen und Polynome Für eine reelle Zahl x R und eine natürliche Zahl n N definieren wir x n := x x x... x }{{} n-mal Einschub über die bisher aufgetretenen mathematischen Symbole: Definition mittels

Mehr

Skript zur Vorlesung Parallele Algorithmen. Andreas Goerdt Technische Universität Chemnitz Fakultät Informatik Theoretische Informatik

Skript zur Vorlesung Parallele Algorithmen. Andreas Goerdt Technische Universität Chemnitz Fakultät Informatik Theoretische Informatik Skript zur Vorlesung Parallele Algorithmen Andreas Goerdt Technische Universität Chemnitz Fakultät Informatik Theoretische Informatik Wintersemester 1994 Das Skript ist eine etwas breiter dargestellte

Mehr

Grundlagen der Programmierung 2. Parallele Verarbeitung

Grundlagen der Programmierung 2. Parallele Verarbeitung Grundlagen der Programmierung 2 Parallele Verarbeitung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 27. Mai 2009 Parallele Algorithmen und Ressourcenbedarf Themen: Nebenläufigkeit,

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Algebra und Diskrete Mathematik, PS3. Sommersemester Prüfungsfragen

Algebra und Diskrete Mathematik, PS3. Sommersemester Prüfungsfragen Algebra und Diskrete Mathematik, PS3 Sommersemester 2016 Prüfungsfragen Erläutern Sie die Sätze über die Division mit Rest für ganze Zahlen und für Polynome (mit Koeffizienten in einem Körper). Wodurch

Mehr

Theoretische Informatik SS 03 Übung 3

Theoretische Informatik SS 03 Übung 3 Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige

Mehr

Differenzengleichungen. und Polynome

Differenzengleichungen. und Polynome Lineare Differenzengleichungen und Polynome Franz Pauer Institut für Mathematik, Universität Innsbruck Technikerstr. 13/7, A-600 Innsbruck, Österreich franz.pauer@uibk.ac.at 1 Einleitung Mit linearen Differenzengleichungen

Mehr

Theoretische Informatik SS 03 Übung 4

Theoretische Informatik SS 03 Übung 4 Fakten aus Übung 3 Theoretische Informatik SS 03 Übung 4 In Übung 3 wurden einigen Fakten bewiesen, die für diese Übung benötigt werden. Folgende Konstrukte können mit LOOP-Programmen simuliert werden:

Mehr

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion: Übungsblatt 1 Aufgabe 1.1 Beweisen oder widerlegen Sie, dass für die im Folgenden definierte Funktion f(n) die Beziehung f(n) = Θ(n 4 ) gilt. Beachten Sie, dass zu einem vollständigen Beweis gegebenenfalls

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

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

1 Zahlentheorie. 1.1 Kongruenzen

1 Zahlentheorie. 1.1 Kongruenzen 3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern

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

3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen

3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen 3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen Sortierproblem Eingabe: Folge von n natürlichen Zahlen a 1, a 2,, a n, die Folge

Mehr

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik

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

Imperative vs. Funktionale Programmierung

Imperative vs. Funktionale Programmierung Beispiel: Entwerfe eine Funktion, die testet, ob eine Zahl n eine Primzahl ist oder nicht. Beobachtung: (1) Wenn n Primzahl ist, ist die Menge der Teiler von n leer. (2) Die Menge der Teiler von n sind

Mehr

Erzeugende Funktionen

Erzeugende Funktionen Hallo! Erzeugende Funktionen sind ein Mittel um lineare Rekursionen schneller ausrechnen zu können. Es soll die Funktion nicht mehr als Rekursion angeschrieben werden, sondern so, dass man nur n einsetzen

Mehr

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

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

Mehr

Komplexität von Algorithmen

Komplexität von Algorithmen Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen

Mehr

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

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

A2.3 Lineare Gleichungssysteme

A2.3 Lineare Gleichungssysteme A2.3 Lineare Gleichungssysteme Schnittpunkte von Graphen Bereits weiter oben wurden die Schnittpunkte von Funktionsgraphen mit den Koordinatenachsen besprochen. Wenn sich zwei Geraden schneiden, dann müssen

Mehr

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

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

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind

Mehr

1. Einführung. Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen?

1. Einführung. Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen? 1. Einführung Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen? Wie beschreiben wir Algorithmen? Nach welchen Kriterien

Mehr

Vorlesung "Verteilte Systeme" Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

Vorlesung Verteilte Systeme Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19. Verteilte Systeme 19. Distributed Shared Memory Sharing!! No Sharing! Sharing? Evolution der Berechnungsmodelle Vergangenheit Gemeinsamer Speicher Einzelrechner Gegenwart Nachrichtenkommunikation Verteilte

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking

Mehr

Technische Universität München Zentrum Mathematik. Übungsblatt 7

Technische Universität München Zentrum Mathematik. Übungsblatt 7 Technische Universität München Zentrum Mathematik Mathematik (Elektrotechnik) Prof. Dr. Anusch Taraz Dr. Michael Ritter Übungsblatt 7 Hausaufgaben Aufgabe 7. Für n N ist die Matrix-Exponentialfunktion

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Übungen zu Einführung in die Lineare Algebra und Geometrie

Übungen zu Einführung in die Lineare Algebra und Geometrie Übungen zu Einführung in die Lineare Algebra und Geometrie Andreas Cap Sommersemester 2010 Kapitel 1: Einleitung (1) Für a, b Z diskutiere analog zur Vorlesung das Lösungsverhalten der Gleichung ax = b

Mehr

Algorithmik Übung 3 Prof. Dr. Heiner Klocke. Sortierfolge nach Werten: 7 8 9 10 Bube Dame König As nach Farben: Karo ( ) Herz ( ) Piek ( ) Kreuz ( )

Algorithmik Übung 3 Prof. Dr. Heiner Klocke. Sortierfolge nach Werten: 7 8 9 10 Bube Dame König As nach Farben: Karo ( ) Herz ( ) Piek ( ) Kreuz ( ) Algorithmi Übung 3 Prof. Dr. Heiner Kloce Winter 11/12 16.10.2011 Divide&Conquer- Algorithmen lassen sich gut als reursive Algorithmen darstellen. Das Prinzip eines reursiven Algorithmus beruht darauf,

Mehr

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen

Mehr

Der Algorithmus von Bresenham

Der Algorithmus von Bresenham Der Algorithmus von Bresenham Das Bresenham-Verfahren beruht im wesentlichen auf zwei grundsätzliche Beobachtungen: - Es reicht ein Verfahren aus um Geraden mit einer Steigung im Bereich von null bis eins

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch

Mehr

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

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

2.3.1 Einleitung Einfache Sortierverfahren Höhere Sortierverfahren Komplexität von Sortierverfahren Spezielle Sortierverfahren

2.3.1 Einleitung Einfache Sortierverfahren Höhere Sortierverfahren Komplexität von Sortierverfahren Spezielle Sortierverfahren 2.3 Sortieren 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 Höhere Sortierverfahren 2.3.4 Komplexität von Sortierverfahren 2.3.5 Spezielle Sortierverfahren 1 Selection-Sort Idee: Suche kleinstes

Mehr

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) : 2 Sortieren Das Sortieren einer Datenfolge ist eines der am leichtesten zu verstehenden und am häufigsten auftretenden algorithmischen Probleme. In seiner einfachsten Form besteht das Problem darin, eine

Mehr

Formale Grundlagen 2008W. Vorlesung im 2008S Institut für Algebra Johannes Kepler Universität Linz

Formale Grundlagen 2008W. Vorlesung im 2008S  Institut für Algebra Johannes Kepler Universität Linz Formale Grundlagen Institut für Algebra Johannes Kepler Universität Linz Vorlesung im 2008S http://www.algebra.uni-linz.ac.at/students/win/fg Inhalt Definition Sei A eine Menge und ɛ A A A eine zweistellige

Mehr

Übersicht. Berechnung der Potenz für zwei ganze Zahlen Klausuraufgabe SS 2010! Berechnung der Cosinus-Funktion Klausuraufgabe WS 2010/2011!

Übersicht. Berechnung der Potenz für zwei ganze Zahlen Klausuraufgabe SS 2010! Berechnung der Cosinus-Funktion Klausuraufgabe WS 2010/2011! Algorithmen und Datenstrukturen Wintersemester 2012/13 8. Vorlesung Algorithmen in Java Jan-Henrik Haunert Lehrstuhl für Informatik I Übersicht Berechnung der Potenz für zwei ganze Zahlen Klausuraufgabe

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

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

Algorithmen & Programmierung. Rekursive Funktionen (1)

Algorithmen & Programmierung. Rekursive Funktionen (1) Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden

Mehr

Grundlagen der Informatik I (Studiengang Medieninformatik)

Grundlagen der Informatik I (Studiengang Medieninformatik) Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de

Mehr

TI-89. Gleichungssysteme

TI-89. Gleichungssysteme TI-89 Gleichungssysteme Hans Berger 005 Lineare Gleichungssysteme Der TI-89 kann beliebige Objekte in Variable speichern, auch ganze Gleichungen. Man kann somit beliebige Gleichungen z.b. in g1, g, g3,

Mehr

SOI 2013. Die Schweizer Informatikolympiade

SOI 2013. Die Schweizer Informatikolympiade SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I H 10. Präsenzaufgabenblatt, Wintersemester 2015/16 Übungstunde am 18.01.2015 Aufgabe Q Ein Reiseveranstalter besitzt ein Flugzeug, das maximal p Personen aufnehmen kann. Der Veranstalter bietet einen Flug

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

Division mit Rest - der heimliche Hauptsatz der Algebra

Division mit Rest - der heimliche Hauptsatz der Algebra Division mit Rest - der heimliche Hauptsatz der Algebra Franz Pauer Institut für Mathematik, Universität Innsbruck, Technikerstr. 25, A-6020 Innsbruck, Österreich. Franz.Pauer@uibk.ac.at 3. Juni 2004 Einleitung

Mehr

Die (Un-)Sicherheit von DES

Die (Un-)Sicherheit von DES Die (Un-)Sicherheit von DES Sicherheit von DES: Bester praktischer Angriff ist noch immer die Brute-Force Suche. Die folgende Tabelle gibt eine Übersicht über DES Kryptanalysen. Jahr Projekt Zeit 1997

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Suchen in Datenmengen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.

Mehr

Analysis I. 4. Beispielklausur mit Lösungen

Analysis I. 4. Beispielklausur mit Lösungen Fachbereich Mathematik/Informatik Prof. Dr. H. Brenner Analysis I 4. Beispielklausur mit en Aufgabe 1. Definiere die folgenden (kursiv gedruckten) Begriffe. (1) Eine bijektive Abbildung f: M N. () Ein

Mehr

11. Rekursion, Komplexität von Algorithmen

11. Rekursion, Komplexität von Algorithmen 11. Rekursion, Komplexität von Algorithmen Teil 2 Java-Beispiele: Power1.java Hanoi.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 23. Nov. 2015 Anwendung der Rekursion Rekursiv

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

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

DATENSTRUKTUREN UND ALGORITHMEN

DATENSTRUKTUREN UND ALGORITHMEN DATENSTRUKTUREN UND ALGORITHMEN 2 Ist die Datenstruktur so wichtig??? Wahl der Datenstruktur wichtiger Schritt beim Entwurf und der Implementierung von Algorithmen Dünn besetzte Graphen und Matrizen bilden

Mehr

Algorithms for Regression and Classification

Algorithms for Regression and Classification Fakultät für Informatik Effiziente Algorithmen und Komplexitätstheorie Algorithms for Regression and Classification Robust Regression and Genetic Association Studies Robin Nunkesser Fakultät für Informatik

Mehr

6 Reelle und komplexe Zahlenfolgen

6 Reelle und komplexe Zahlenfolgen $Id: folgen.tex,v.7 200//29 :58:57 hk Exp hk $ 6 Reelle und komplexe Zahlenfolgen 6. Folgenkonvergenz In der letzten Sitzung hatten wir den Begriff der Konvergenz einer reellen oder komplexen Folge gegen

Mehr

Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011)

Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011) M. Sc. Frank Gimbel Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011) 1 Motivation Ziel ist es, ein gegebenes lineares Gleichungssystem der Form Ax = b (1) mit x, b R n und A R n n zu lösen.

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University,

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

1 Random Access Maschine

1 Random Access Maschine 1 RANDOM ACCESS MASCHINE 1 1 Random Access Maschine Neue Hardware: Random Access Maschine = RAM. Der Name hat nichts mit Zufall zu tun, sondern mit wahlfreiem Zugriff. Die RAM besteht aus einem Eingabeband,

Mehr

Kurs über Lineare Gleichungssysteme. PD Dr. Karin Halupczok

Kurs über Lineare Gleichungssysteme. PD Dr. Karin Halupczok Kurs über Lineare Gleichungssysteme PD Dr. Karin Halupczok Mathematisches Institut Albert-Ludwigs-Universität Freiburg http://home.mathematik.unifreiburg.de/halupczok/diverses.html karin.halupczok@math.uni-freiburg.de

Mehr

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Ü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.

Mehr

Transaktionen. Michael Löwe 04/15/16. FHDW Hannover, Freundallee 15, Hannover address:

Transaktionen. Michael Löwe 04/15/16. FHDW Hannover, Freundallee 15, Hannover  address: Transaktionen Michael Löwe 04/15/16 FHDW Hannover, Freundallee 15, 30173 Hannover E-mail address: michael.loewe@fhdw.de KAPITEL 1 Isolation 1.1. Formales Modell für Transaktionen und Ablaufpläne Zustand.

Mehr

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965). 5. Graphenprobleme Im folgenden bezeichnen G = (E, K) einen endlichen Graphen mit der Eckenmenge E und der Kantenmenge K. G kann ungerichtet, gerichtet, schlicht oder nicht schlicht sein. 5.1 Spannende

Mehr

Kurs: Parallele Algorithmen (01824) Datum: Oktober 2011 Prüfer: Prof. Verbeek Dauer: 30 Minuten Art: Leistungsnachweis (unbenotet, bestanden)

Kurs: Parallele Algorithmen (01824) Datum: Oktober 2011 Prüfer: Prof. Verbeek Dauer: 30 Minuten Art: Leistungsnachweis (unbenotet, bestanden) Kurs: Parallele Algorithmen (01824) Datum: Oktober 2011 Prüfer: Prof. Verbeek Dauer: 30 Minuten Art: Leistungsnachweis (unbenotet, bestanden) Professor Verbeek ist ein angenehmer Prüfer, der mehr an einem

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

Grundlagen der Parallelisierung

Grundlagen der Parallelisierung Grundlagen der Parallelisierung Philipp Kegel, Sergei Gorlatch AG Parallele und Verteilte Systeme Institut für Informatik Westfälische Wilhelms-Universität Münster 3. Juli 2009 Inhaltsverzeichnis 1 Einführung

Mehr

Einführung in die Informatik Algorithms

Einführung in die Informatik Algorithms Einführung in die Informatik Algorithms Vom Problem zum Algorithmus und zum Programm Wolfram Burgard Cyrill Stachniss 1.1 Motivation und Einleitung In der Informatik sucht man im Normalfall nach Verfahren

Mehr

Simulation. Lineare Regression Methode der kleinsten Quadrate (Excel-Matrix-Formel) Verknüpfung des Euler- und Newton-Verfahrens. Das Euler-Verfahren

Simulation. Lineare Regression Methode der kleinsten Quadrate (Excel-Matrix-Formel) Verknüpfung des Euler- und Newton-Verfahrens. Das Euler-Verfahren Simulation Lineare Regression Methode der kleinsten Quadrate (Excel-Matrix-Formel) Verknüpfung des Euler- und Newton-Verfahrens Dynamische Prozesse: Prozesse, bei denen sich das zeitliche und örtliche

Mehr

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

Dynamisches Programmieren - Problemstruktur

Dynamisches Programmieren - Problemstruktur Dynamisches Programmieren - Problemstruktur Optimale Substruktur: Optimale Lösung enthält optimale Lösungen von Teilproblemen. Bsp.: Kürzester Weg im Graphen, LCS (s. etwa Folie 42 der letzten Vorlesung)

Mehr

1.2 Eigenschaften der ganzen Zahlen

1.2 Eigenschaften der ganzen Zahlen Lineare Algebra I WS 2015/16 c Rudolf Scharlau 13 1.2 Eigenschaften der ganzen Zahlen Dieser Abschnitt handelt von den gewöhlichen ganzen Zahlen Z und ihren Verknüpfungen plus und mal. Man kann die natürlichen

Mehr

Quadratisches Sieb. Aufgabenstellung

Quadratisches Sieb. Aufgabenstellung Quadratisches Sieb Aufgabenstellung Sei N > 1 eine zerlegbare positive ganze Zahl. Wir wollen ein Verfahren entwickeln, mit dem N in Primfaktoren zerlegt werden kann. Ist N von der Form N = p e mit einer

Mehr

Berechnungen mit dem Horner-Schema

Berechnungen mit dem Horner-Schema Berechnungen mit dem Horner-Schema Das Hornerschema kann als Rechenhilfsmittel zur Berechnung von Funktionswerten von Polynomfunktionen, zur Faktorisieriung von Polynomen alternativ zur Polynomdivision

Mehr

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben Algorithmen und Algorithmisierung von Aufgaben 2-1 Algorithmisierung: Formulierung (Entwicklung, Wahl) der Algorithmen + symbolische Darstellung von Algorithmen Formalismen für die symbolische Darstellung

Mehr

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf) Musterlösung Übung 2 Aufgabe 1: Große Zahlen Das Ergebnis ist nicht immer richtig. Die Maschine erzeugt bei Zahlen, die zu groß sind um sie darstellen zu können einen Über- bzw. einen Unterlauf. Beispiele

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8

Mehr

Probabilistische Primzahltests

Probabilistische Primzahltests 23.01.2006 Motivation und Überblick Grundsätzliches Vorgehen Motivation und Überblick Als Primzahltest bezeichnet man ein mathematisches Verfahren, mit dem ermittelt wird, ob eine gegebene Zahl eine Primzahl

Mehr

Laufzeit und Komplexität

Laufzeit und Komplexität Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen

Mehr

Informatik 1 Programmieren in MATLAB Georg Richter

Informatik 1 Programmieren in MATLAB Georg Richter Informatik Programmieren in MATLAB Georg Richter Aufgabe 8: Bierschaumzerfall (zum Auf- und Erwärmen) Für manch einen (selbstverständlich nicht für jeden) gilt an heißen Tagen eine maßvoll gefüllte Hopfenkaltschale

Mehr

Informatik B von Adrian Neumann

Informatik B von Adrian Neumann Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000

Mehr

Wie funktioniert das Sortieren einer Reihe von Zufallszahlen mit Quicksort?

Wie funktioniert das Sortieren einer Reihe von Zufallszahlen mit Quicksort? Wie funktioniert das Sortieren einer Reihe von Zufallszahlen mit Quicksort? Seite 1 Sehen wir uns zunächst einmal die grundsätzliche Vorgehensweise des Programmes an, ohne auf Einzelheiten oder Fachtermini

Mehr

Polynomdivision. W. Kippels 22. April Lösungsprinzip Grundmuster einer Polynomdivision Spezielle Beispiele,

Polynomdivision. W. Kippels 22. April Lösungsprinzip Grundmuster einer Polynomdivision Spezielle Beispiele, Polynomdivision W. Kippels 22. April 214 Inhaltsverzeichnis 1 Lösungsprinzip 3 1.1 Grundmuster einer Polynomdivision..................... 3 1.2 Spezielle Beispiele, Fallen......................... 6 2

Mehr

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Matrixzugriff Wir wollen nun unsere Einführung in die Arbeit mit Vektoren und Matrizen in MATLAB

Mehr

Konvergenz einer Folge. 1-E1 Ma 1 Lubov Vassilevskaya

Konvergenz einer Folge. 1-E1 Ma 1 Lubov Vassilevskaya Konvergenz einer Folge 1-E1 Ma 1 Lubov Vassilevskaya Konvergenz einer Folge: Inhalt Drei Verhaltensmuster von Folgen. Beispiele 1 ) = 1 n, = n n +1, 2 ) = ( 1)n n +1 n und ihre graphischen Darstellungen.,

Mehr

1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben?

1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben? Die Themen 1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben? Er sollte von wirklichen Zufallsgeneratoren nicht unterscheidbar sein?! Eine viel zu starke Forderung: Stattdessen sollte ein

Mehr

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

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr