Klausur Paralleles Rechnen (Richtwert 60 min) 10. Dez. 2015
|
|
- Catrin Fuchs
- vor 7 Jahren
- Abrufe
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.1 Vorbemerkungen Bisher: Instruktionen von Programmen werden durch einen einzigen Prozessor sequentiell ausgeführt. Eine Beschleunigung von Algorithmen ist dabei nur möglich,
MehrKapitel 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
Mehr1 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
MehrSkript 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
MehrGrundlagen 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,
MehrDatenstrukturen 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:
MehrEinstieg 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
MehrSortierverfahren 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
MehrAlgebra 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
MehrTheoretische 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
MehrDifferenzengleichungen. 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
MehrTheoretische 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 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
MehrAlle 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
MehrAbschnitt: 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
Mehr1 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
MehrEntscheidungsbä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
Mehr3.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
MehrAchtung: 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
Mehr3.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)
MehrImperative 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
MehrErzeugende 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)
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
MehrKomplexitä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
MehrKostenmaß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);
MehrA2.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
MehrEine 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
MehrLenstras 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
MehrAlgorithmen 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
Mehr1. 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
MehrVorlesung "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
MehrEinstieg 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
MehrTechnische 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
MehrKapitel 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:
MehrProgrammiertechnik 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
MehrDatenpfad 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 Andreas Cap Sommersemester 2010 Kapitel 1: Einleitung (1) Für a, b Z diskutiere analog zur Vorlesung das Lösungsverhalten der Gleichung ax = b
MehrAlgorithmik Ü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,
MehrEinfü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
MehrDer 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
MehrRandomisierte 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
Mehr2: 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,
MehrKostenmodell. 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
Mehr1. 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
Mehr2.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
Mehr2 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
MehrFormale 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!
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
MehrDatenstrukturen & 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
MehrKapitel 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:
MehrAlgorithmentheorie 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
MehrAlgorithmen & 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
MehrGrundlagen 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
MehrTI-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,
MehrSOI 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
MehrEffiziente 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
MehrKontrollstrukturen, 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
MehrDivision 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
MehrDie (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
MehrEinfü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.
MehrAnalysis 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
Mehr11. 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
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
MehrAbgabe: (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,
MehrDATENSTRUKTUREN 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
MehrAlgorithms 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
Mehr6 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
MehrBeginn 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.
MehrGrundlagen: 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
MehrModul 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
MehrRandom 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,
Mehr16. 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
Mehr1 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,
MehrKurs ü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: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
MehrTransaktionen. 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).
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
MehrKurs: 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
MehrAlgorithmen 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
MehrGrundlagen 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
MehrEinfü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
MehrSimulation. 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
MehrProgrammieren. 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
MehrDynamisches 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)
Mehr1.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
MehrQuadratisches 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
MehrBerechnungen 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
Mehr2. 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)
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
MehrDr. 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
MehrProbabilistische 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
MehrLaufzeit 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
MehrInformatik 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
MehrInformatik 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
MehrWie 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
MehrPolynomdivision. 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
MehrZugriff 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
MehrKonvergenz 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.,
Mehr1. 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
MehrWiederholung 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