Modellierung und Analyse mittels FSPs Analysevefahren am Beispiel Wechselseitiger Ausschluß

Größe: px
Ab Seite anzeigen:

Download "Modellierung und Analyse mittels FSPs Analysevefahren am Beispiel Wechselseitiger Ausschluß"

Transkript

1 Modellierung und Analyse mittels FSPs Analysevefahren am Beispiel Wechselseitiger Ausschluß Analyse von nebenläufigen Prozessen 1

2 Übersicht Beispielproblem: Interferenz von Prozessen und wechselseitiger Ausschluß (mutual exclusion). Modellierung:FSP Modell Analyse: Testen Komposition mit Fehlerdetektionsprozeß Zustandsraumexploration Minimierung Analyse von nebenläufigen Prozessen 2

3 Interferenz Ornamental Garden Problem: Besucher betreten einen Park durch zwei Eingänge mit Drehkreuzen. Die Verwaltung möchte zu jedem Zeitpunkt über die aktuelle Anzahl Besucher informiert sein. Park West Turnstile Besucher East Turnstile Das nebenläufige Programm besteht aus zwei Threads und einem geteilten Objekt zur Zählung der Besucher. Analyse von nebenläufigen Prozessen 3

4 Ornamental Garden Programm - Klassendiagramm Applet Thread Garden east,west Turnstile people Counter init() go() run() increment() eastd, westd, counterd NumberCanvas setvalue() display display Der Turnstile Thread simuliert periodische Ankünfte von Besuchern (1 je Sekunde) durch Warten und Aufruf der Methode increment() für das Counter Objekt. Analyse von nebenläufigen Prozessen 4

5 Ornamental Garden Programm - Display Nachdem East und West Turnstile Threads jeweils 20 mal ein increment() durchgeführt haben, zeigt der Zähler nicht die Summe der beiden Turnstile Aufrufe! Einige Zählererhöhungen sind verloren gegangen, warum? Analyse von nebenläufigen Prozessen 5

6 Aktivierung nebenläufiger Methoden Die Aktivierung von Java Methoden ist nicht atomar- Threads East und West können gleichzeitig den Code für die Inkrement Methode ausführen. west PC program counter geteilter Code increment: read value write value + 1 east PC program counter Analyse von nebenläufigen Prozessen 6

7 Ornamental Garden Modell go end go end arrive value east: TURNSTILE go end arrive value west: TURNSTILE value:var read write GARDEN display Der Prozeß VAR modelliert Lese- und Schreibzugriffe auf den geteilten Zähler value. Increment() intern in TURNSTILE modelliert, weil Aktivierung von Java Methoden nicht atomar. Interleaving bei Lese- und Schreibzugriffen Analyse von nebenläufigen Prozessen 7

8 Ornamental Garden Modell const N = 4 range T = 0..N set VarAlpha = { value.{read[t],write[t]} } VAR = VAR[0], VAR[u:T] = (read[u] ->VAR[u] write[v:t]->var[v]). Alphabet des Prozesses VAR explizit als set Konstante, VarAlpha. TURNSTILE = (go -> RUN), RUN = (arrive-> INCREMENT end -> TURNSTILE), INCREMENT = (value.read[x:t] -> value.write[x+1]->run )+VarAlpha. GARDEN = (east:turnstile west:turnstile { east,west,display} ::value:var) /{ go /{ east,west}.go, end/{ east,west}.end}. Alphabet von TURNSTILE um VarAlpha erweitert damit keine freien Aktionen in VAR auftreten, dh alle Aktionen in VAR sind von TURNSTILE kontrolliert. Analyse von nebenläufigen Prozessen 8

9 Fehlersuche mittels Testen - Animation Testen eines Szenario - erzeuge einen Trace. Ist dieser Trace korrekt? Analyse von nebenläufigen Prozessen 9

10 Testalgorithmus - rudimentär s ist initialer Zustand while ( s STOP ) do for all od return od ( s, x, s ) ask user if selected then append(trace,x) ; s = s ; Wesentliche Anforderung an Modellwelt ist eine berechenbare Funktion (genauer Relation) zur Bestimmung aller Übergänge für einen Zustand s. In FSP durch Angabe einer syntaktischen Ableitungsregel je Operator. Analyse von nebenläufigen Prozessen 10

11 Ableitungsregeln für Transitionsrelation Beispiel: parallele Komposition sei P Π, Q Π a A Für P Q wird durch folgende Regeln erzeugt: Π ist ERROR Prozeß P a P P a Q P Q a αq P Q Q a Q a P Q a αp P a a P, Q Q a P Q P Q a τ Analyse von nebenläufigen Prozessen 11

12 Beispielberechnung zur Transitionsrelation (east:turnstile west:turnstile {east,west,display}::value:var) /{ go/{east,west}.go, end/{east,west}.end } go (east:run west:run {east,west,display}::value:var) /{ go/{east,west}.go, end/{east,west}.end } east.arrive west.arrive (east:increment west:run {east,west,display}::value:var) /{ go/{east,west}.go, end/{east,west}.end } Nachfolgerberechnung durch textuelle Manipulation der Prozeßbeschreibung textuelle Ersetzung gemäß Regeln für ->,, und Rekursion. Analyse von nebenläufigen Prozessen 12

13 Spezielles Problem bei Prozeßalgebren Transitionsrelation liefert jeweils vollständige Prozeßbeschreibung als Nachfolgezustand Gleichheit von Zuständen als Gleichheit von Prozessen in FSP Unterschiedliche Definitionsmöglichkeiten Gleichheit als Gleichheit von Strings (naheliegend) Gleichheit unter Berücksichtigung von geltenden Kommutativ- und Assoziativgesetzen z.b. bzgl Choice und Parallel Composition Gleichheit falls jeweils gleiche Übergänge möglich sind und diese auch zu wechselseitig gleichen Nachfolgern führen (Bisimulation,starke Äquivalenz) Test auf Gleichheit in jedem Fall aufwendig, hier Gleichheit von Strings betrachtet Analyse von nebenläufigen Prozessen 13

14 Zustandsraumexploration - Abbildung FSP -> LTS Unterschiedliche Sichtweisen Ableitung des LTS aus FSP Transitiver Abschluß der Erreichbarkeitsrelation Γ wobei ( s0, s0) Γ und x T ( s, x, s ) ( s, bei nebenläufigen Prozessen tritt kombinatorische Explosion auf (Zustandsraumexplosion) Unterschiedliche Implementierung von Explorationsverfahren Graphalgorithmen (DFS,BFS) zum Durchlaufen gerichteter Graphen : s ) Γ Bitstate Hashing (SPIN) verteilte Algorithmen, Zuordnung von Adreßbereichen zu Prozessoren Divide&Conquer mit Perfect Hashing (Kronecker Verfahren) Matrixpotenzierung (zu aufwendig) Symbolic Modelchecking: BDDs zur Kodierung einer binären Relation und zur Berechnung des transitiven Abschlusses i.a. zusätzliches Problem: Erkennung unendlicher Zustandsräume Analyse von nebenläufigen Prozessen 14

15 Algorithmus zur Zustandsraumexploration - DFS/BFS s ist initialer Zustand, while ( N {} ) do entferne s aus N for all od od if then S = N = {s} ( s, x, s ) s S S = S { s }; N = N { s } Resultat: Menge aller erreichbaren Zustände S Wesentliche Anforderungen an die Modellwelt sind: a) Nachfolgerelation, b) Test auf Gleichheit. Datenstruktur für N: bei DFS Stack, bei BFS Queue Crux: Platzbedarf, eff. Such-/Einfügeoperation bei großem S und N. Analyse von nebenläufigen Prozessen 15

16 Zustandsraumexploration - Eigenschaften ermitteln Welche Eigenschaften sind erkennbar? Erreichbarkeit von Zuständen mit besonderen Eigenschaften Durchführbarkeit von Abläufen, Sequenzen von Aktionen Wie lassen sich Eigenschaften beschreiben & erkennen? Spezielle Zustände als Teilmenge des Zustandsraum leicht charakterisierbar, Erkennung entspricht Existenztest im Zustandsraum Beschreibung von Abläufen oder Zuständen durch zusätzliches beobachtendes Teilmodell, das ggfs Deadlock/ERROR bewirkt. Impliziert Transformation des Modells und Existenztest bzgl spezieller Zustände im LTS Eigenschaftsbeschreibung durch eigene Sprache (Modale Logik) und Evaluation am LTS durch spezielle Verfahren (Graphalgorithmen) Für Benutzerinteraktion wichtig: Angabe eines Zeugen, falls eine Eigenschaft vorliegt Angabe eines Gegenbeispiels, falls eine Eigenschaft nicht gilt Analyse von nebenläufigen Prozessen 16

17 Algorithmus für erschöpfende Suche nach ERROR Zuständen mit BFS s ist initialer Zustand, while ( N {} und s ERROR) do entferne s aus Queue N for all od od ( s, x, s ) s S if then enqueue(n,s ); S = N = {s} S = S {s}; Falls ERROR gefunden, muß abschließend Pfad in S ermittelt werden. Alternativ: je Zustand s Triple (s,x,s ) merken,... BFS vorteilhaft zur Bestimmung kürzester Pfade. Analyse von nebenläufigen Prozessen 17

18 Fehlersuche mittels erschöpfender Suche Das Modell wird mit einem TEST Prozeß komponiert, der die Summe der Ankünfte mit dem angezeigten Wert vergleicht: TEST = TEST[0], TEST[v:T] = (when (v<n){east.arrive,west.arrive}->test[v+1] end->check[v] ), CHECK[v:T] = (display.value.read[u:t] -> (when (u==v) right -> TEST[v] when (u!=v) wrong -> ERROR ) )+{display.varalpha}. Wie STOP, nur ERROR ist ein vordefinierter FSP Prozeß mit fester Zustandsnummer -1 im LTS. Analyse von nebenläufigen Prozessen 18

19 Ornamental Garden Modell - Fehlersuche TESTGARDEN = (GARDEN TEST). Mit LTSA erschöpfende Suche nach ERROR. Trace zum Fehlerfall in TEST: go east.arrive east.value.read.0 west.arrive west.value.read.0 east.value.write.1 west.value.write.1 end display.value.read.1 wrong LTSA produziert den kürzesten Pfad zum ERROR Zustand. BFS oder DFS? Analyse von nebenläufigen Prozessen 19

20 Interferenz und wechselseitiger Ausschluß Ein destruktives Update, das durch beliebiges Interleaving aus Lese- und Schreiboperationen erzeugt wird, heißt Interferenz. Fehler durch Interferenz sind schwer zu lokalisieren. Generelle Lösung: Methoden dürfen nur im wechselseitigen Ausschluß auf geteilte Objekte zugreifen. Wechselseitiger Ausschluß kann durch atomare Aktionen modelliert werden. (klassisches Thema in Vorlesung Betriebssysteme) Analyse von nebenläufigen Prozessen 20

21 Wechselseitiger Ausschluß im Beispielproblem Java kann mit jedem Objekt einen lock assoziieren (synchronized). Bei Aufruf einer Methode wird zusätzlicher Code zur Belegung (Aquire, vor Ausführung) und Freigabe (Release nach Ausführung und vor Return) des Locks durchlaufen. Nebenläufige Prozesse müssen ggfs bei Belegung zunächst auf Freigabe des Locks warten. Analyse von nebenläufigen Prozessen 21

22 Modelierung eines wechselseitigen Ausschlusses Wir definieren einen LOCK Prozeß, komponieren in mit Prozeß VAR und modifizieren das Alphabet: LOCK = (acquire->release->lock). LOCKVAR = (LOCK VAR). set VarAlpha = {value.{read[t],write[t], acquire, release}} Wir ergänzen TURNSTILE um die Belegung/Freigabe des Locks: TURNSTILE = (go -> RUN), RUN = (arrive-> INCREMENT end -> TURNSTILE), INCREMENT = (value.acquire -> value.read[x:t]->value.write[x+1] -> value.release->run )+VarAlpha. Analyse von nebenläufigen Prozessen 22

23 Verbessertes Ornamental Garden Modell - Fehlersuche Animation eines Beispiel Traces go east.arrive east.value.acquire east.value.read.0 east.value.write.1 east.value.release west.arrive west.value.acquire west.value.read.1 west.value.write.2 west.value.release end display.value.read.2 right Mittels TEST und LTSA erschöpfende Suche: Ist TEST erfüllt? Analyse von nebenläufigen Prozessen 23

24 Zusammenfassung Konzepte Prozeß Interferenz Wechselseitiger Ausschluß Modellierung und Analyse mit FSPs Komposition mit TEST Prozeß, somit Abbildung des Fehlers auf Deadlock Erschöpfende Suche Allgemeiner: Zustandsraumexploration Minimierung mittels Bisimulation Analyse von nebenläufigen Prozessen 24

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf Übersicht Komplexitätsresultate Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (4) Drei Komplexitätsresultate Eine genaue Schranke für den Platzbedarf

Mehr

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) 02 Grundlagen Dr. Sebastian Voss fortiss GmbH Kompetenzfeldleiter Model-based Systeme Engineering Themenübersicht - Gesamtvorlesung

Mehr

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

Analysevefahren am Beispiel Wechselseitiger Ausschluß II

Analysevefahren am Beispiel Wechselseitiger Ausschluß II Modellierung und Anlyse mittels FSs Anlysevefhren m Beispiel Wechselseitiger Ausschluß II Üersicht- Wiederholung Beispielprolem: Interferenz von rozessen und wechselseitiger Ausschluß (mutul exclusion).

Mehr

Kapitel 6. Verklemmungen (Deadlocks)

Kapitel 6. Verklemmungen (Deadlocks) Seite 1 Kapitel 6 Verklemmungen (Deadlocks) Prof. Dr. Rolf Hennicker 16.06.2016 6.1 Charakterisierung von Deadlocks Seite 2 Eine Verklemmung entsteht, wenn alle Prozesse in einem System blockiert (d.h.

Mehr

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion Betriebssysteme Vorlesung im Herbstsemester 2010 Universität Mannheim Kapitel 6: Speicherbasierte Prozessinteraktion Felix C. Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung

Mehr

1. Einführung in Temporallogik CTL

1. Einführung in Temporallogik CTL 1. Einführung in Temporallogik CTL Temporallogik dient dazu, Aussagen über Abläufe über die Zeit auszudrücken und zu beweisen. Zeit wird in den hier zunächst behandelten Logiken als diskret angenommen

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion

Mehr

Klausur: Lösungsvorschlag Software Engineering für spezielle Anwendungsgebiete: Entwurf und Implementierung paralleler Programme. Nachname...

Klausur: Lösungsvorschlag Software Engineering für spezielle Anwendungsgebiete: Entwurf und Implementierung paralleler Programme. Nachname... Ludwig-Maximilians-Universität München SoSe 2013 Institut für Informatik 18.07.2013, 11:30 13:30 Uhr Prof. Dr. R. Hennicker, A. Klarl, M. Busch Klausur: Lösungsvorschlag Software Engineering für spezielle

Mehr

Reduktion. 2.1 Abstrakte Reduktion

Reduktion. 2.1 Abstrakte Reduktion 2 Reduktion In diesem Kapitel studieren wir abstrakte Eigenschaften von Regeln. In den ersten beiden Abschnitten betrachten wir nicht einmal die Regeln selbst, sondern nur abstrakte Reduktionssysteme,

Mehr

Testen nebenläufiger Objekte

Testen nebenläufiger Objekte Testen nebenläufiger Objekte Threads in Java Julian Lambertz Seminar Tests in Informatik und Statistik im SS 2004 Universität Ulm J.L., Juni 2004 1 Themenüberblick Einleitung Begriff der Nebenläufigkeit

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Beispiel für überladene Methode

Beispiel für überladene Methode Beispiel für überladene Methode class Gras extends Futter {... abstract class Tier { public abstract void friss (Futter x); class Rind extends Tier { public void friss (Gras x) {... public void friss (Futter

Mehr

Ausnahmebehandlung in Java

Ausnahmebehandlung in Java Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012 Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Abgeschlossenheit (Definition)

Mehr

Verteilte Systeme Teil 2

Verteilte Systeme Teil 2 Distributed Computing HS 2012 Prof. Dr. Roger Wattenhofer, Dr. Thomas Locher C. Decker, B. Keller, S. Welten Prüfung Verteilte Systeme Teil 2 Freitag, 8. Februar 2013 9:00 12:00 Die Anzahl Punkte pro Teilaufgabe

Mehr

Parallele Prozesse. Prozeß wartet

Parallele Prozesse. Prozeß wartet Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:

Mehr

Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt.

Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt. 432 433 434 435 Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt. 436 437 438 439 440 441 442 443 Die verkürzte

Mehr

Betriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen)

Betriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen) Betriebssysteme G: Parallele Prozesse (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen) 1 Allgemeine Synchronisationsprobleme Wir verstehen ein BS als eine Menge von parallel

Mehr

Zweizusammenhang und starker Zusammenhang

Zweizusammenhang und starker Zusammenhang .. Zeizusammenhang und starker Zusammenhang Carsten Gutenger Vorlesung Algorithmen und Datenstrukturen WS /. Januar Zeizusammenhang Betrachte ein Netzerk (Graph) Z.B. Computernetzerk, Flug- oder Schienennetzerk

Mehr

Property Based Testing

Property Based Testing Property Based Testing Nicolai Mainiero sidion Testen ist schwer Testen ist schwer Warum? Alle Pfade durch den Code aufzuzählen ist aufwendig. Selbst vermeintlich einfache Systeme können komplex sein.

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Ausnahmebehandlung und Nebenläufigkeit 9. Vorlesung am 15. Dezember 2010 Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A

Mehr

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :

Mehr

Philosophie des Intuitionismus und sein Einfluß auf die Informatik

Philosophie des Intuitionismus und sein Einfluß auf die Informatik Philosophie des Intuitionismus und sein Einfluß auf die Informatik Christoph Kreitz Was ist Intuitionismus? Unterschiede zur klassischen Mathematik Historische Entwicklung Bezüge zur Informatik Ähnlichkeit

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 20 (23.7.2014) All Pairs Shortest Paths, String Matching (Textsuche) Algorithmen und Komplexität Vorlesungsevaluation Sie sollten alle eine

Mehr

Übungsblatt 2: Betriebssysteme, Prozesse

Übungsblatt 2: Betriebssysteme, Prozesse Ludwig-Maximilians-Universität München München, 13.05.2009 Institut für Informatik Priv.-Doz. Dr. Peer Kröger Thomas Bernecker Einführung in die Informatik: Systeme und Anwungen SS 2009 Übungsblatt 2:

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

Klausur zur Vorlesung Grundlagen der Betriebssysteme

Klausur zur Vorlesung Grundlagen der Betriebssysteme Prof. Dr. L. Wegner Dipl.-Math. K. Schweinsberg Klausur zur Vorlesung Grundlagen der Betriebssysteme 19.2.2004 Name:... Vorname:... Matrikelnr.:... Studiengang:... Hinweise: Bearbeitungszeit 2 Stunden.

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Traversierung 1 / 16. P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V3 23. April / 16

Traversierung 1 / 16. P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V3 23. April / 16 P.F. Stadler & S. Will (Bioinf, Uni LE) ADS, V. April 0 / P.F. Stadler & S. Will (Bioinf, Uni LE) ADS, V. April 0 / Traversierung ADS: Algorithmen und Datenstrukturen Teil Prof. Peter F. Stadler & Sebastian

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /

Mehr

Kapitel 2. Prozesse und Java-Threads

Kapitel 2. Prozesse und Java-Threads Seite 1 Kapitel 2 Prozesse und Java-Threads Prof. Dr. Rolf Hennicker 05.05.21 2.1 Prozessbegriff Seite 2 Prozess: Programm in Ausführung Prozesszustand (zu einem Zeitpunkt): Wird charakterisiert durch

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 3

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 3 UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 3 Algorithmen mit Gedächtnis Besonderheit Beispiele Typische Algorithmen Realisierungsvarianten Institut für Pervasive Computing Johannes

Mehr

Laborskript Verteilte Systeme

Laborskript Verteilte Systeme Laborskript Verteilte Systeme Nebenläufigkeit in Java Prof. Dr. Oliver Haase 1 Threads Java bietet zwei verschiedene Arten an, Threads zu erzeugen und zu starten: Entweder durch Erweitern der Klasse Thread,

Mehr

Praktische Informatik 3

Praktische Informatik 3 Praktische Informatik 3 Christian Maeder WS 03/04 Vorlesung vom 12.1.2004: Ein/Ausgabe in funktionalen Sprachen Vorlesung vom 12.1.2004: Ein/Ausgabe in funktionalen Sprachen 3 Inhalt Wo ist das Problem?

Mehr

Sommersemester Implementierung I: Struktur

Sommersemester Implementierung I: Struktur Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit

Mehr

Vorlesung 2. Prozesse und Threads

Vorlesung 2. Prozesse und Threads Vorlesung 2 Prozesse und Threads 1 PROZESSE IN SOFTWARESYSTEMEN Komplexe Systeme bestehen aus mehreren Programmen, die gelichzeitig/nebenläufig ausgeführt werden Die Ausführung eines Programms wird oft

Mehr

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (5) Bisher. Jetzt. Aktuelle Themen zu Informatik der Systeme: WS 2011/12

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (5) Bisher. Jetzt. Aktuelle Themen zu Informatik der Systeme: WS 2011/12 Stand der Folien: 15. November 2011 Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (5) 1 Übersicht über die Operationen Mutual-Exclusion

Mehr

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.06.2014 1 Das Postamt-Problem b(p, q) = {x 2 R 2 : xp = xq } p q h(p, q) h(q, p) = {x

Mehr

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112

Mehr

Algorithmen implementieren. Implementieren von Algorithmen

Algorithmen implementieren. Implementieren von Algorithmen Algorithmen implementieren Implementieren von Algorithmen Um Algorithmen ablaufen zu lassen, muss man sie als Programm darstellen (d.h. implementieren) Wie stellt man die algorithmischen Strukturelemente

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik

Mehr

GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT

GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT User Requirements GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT Softwareentwicklung Praktikum, Übungsbeispiel 1 Gruppe 18 Andreas Hechenblaickner [0430217] Daniela Kejzar [0310129] Andreas Maller [0431289]

Mehr

FHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt

FHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt Inhalt 1. Einführung 1. Beispiel: Fakultät 2. Beispiel: Zahlenfolge 3. Beispiel: Formale Sprache 4. Unterschied Iteration/Rekursion 2. Rekursive Methoden 1. Beispiel: Fakultät 2. Beispiel: "Türme

Mehr

14. Rot-Schwarz-Bäume

14. Rot-Schwarz-Bäume Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).

Mehr

Abschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften

Abschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Abgeschlossenheit (Definition) Gegeben sei eine Menge M und ein n-ärer

Mehr

Kapitel 2. Prozesse und Java-Threads

Kapitel 2. Prozesse und Java-Threads Seite 1 Kapitel 2 Prozesse und Java-Threads Prof. Dr. Rolf Hennicker 18.04.2013 2.1 Prozessbegriff Seite 2 Prozess: Programm in Ausführung Prozesszustand (zu einem Zeitpunkt): Wird charakterisiert durch

Mehr

Model Checking mit Büchi Automaten

Model Checking mit Büchi Automaten Ingo Weigelt Softwaretechnik 3 16.05.2007 Übersicht 1 Automaten über unendlichen Wörtern ω-automaten Büchi-Automaten 2 Model Checking mit Büchi Automaten Konstruktion von A Konstruktion von A S Leerheitstest

Mehr

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) 02 Grundlagen Dr. Sebastian Voss fortiss GmbH Kompetenzfeldleiter Model-based Systeme Engineering Themenübersicht - Gesamtvorlesung

Mehr

4. Alternative Temporallogiken

4. Alternative Temporallogiken 4. Alternative Temporallogiken Benutzung unterschiedlicher Temporallogiken entsprechend den verschiedenen Zeitbegriffen LTL: Linear Time Logic Ähnlich der CTL, aber jetzt einem linearen Zeitbegriff entspechend

Mehr

Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden.

Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden. 7 Parallelität und Nebenläufigkeit Mehrere Prozessen oder Threads Parallelität Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 13 (6.6.2018) Graphenalgorithmen II Yannic Maus Algorithmen und Komplexität Repräsentation von Graphen Zwei klassische Arten, einen Graphen

Mehr

INFORMATIK FÜR BIOLOGEN

INFORMATIK FÜR BIOLOGEN Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 25. Vorlesung Dynamisches Programmieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Klausurvorbereitung Tipp: Schreiben Sie sich alle Fragen

Mehr

1. Datenstrukturen zur Lösung von Mengenverwaltungsproblemen

1. Datenstrukturen zur Lösung von Mengenverwaltungsproblemen Prof. Dr. Norbert Blum M.Sc. Adrian Schmitz Informatik V BA-INF 032 - Algorithmen und Berechnungskomplexität I WS 2014/15 Mögliche Klausuraufgaben Stand 3. Februar 2015 Bitte beachten Sie, dass die tatsächlichen

Mehr

6. Tutorium zu Softwaretechnik I

6. Tutorium zu Softwaretechnik I 6. Tutorium zu Softwaretechnik I Parallelität und Testen Michael Hoff 01.07.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 24. April 2019 [Letzte Aktualisierung: 24/04/2019,

Mehr

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217 EIDI 1 Einführung in die Informatik 1 PGdP Praktikum Grundlagen der Programmierung Harald Räcke 2/217 Wie löst man Probleme mithilfe von Computern? 0 Harald Räcke 3/217 Inhalte: EIDI 1 1. Was ist das Problem?

Mehr

Bäume und der Sequence ADT

Bäume und der Sequence ADT Bäume und der Sequence ADT Motivation: Der Sequence ADT Bei der Vorstellung verschiedener Implementierungen für Stacks, Queues und Deques wurde vor allem auf die Unterschiede zwischen Arrays fester Größe,

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

Wintersemester 2004/ Februar 2005

Wintersemester 2004/ Februar 2005 Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

Mehr

Mutual Exclusion. Annika Külzer Florian Störkle Dennis Herzner

Mutual Exclusion. Annika Külzer Florian Störkle Dennis Herzner Mutual Exclusion Annika Külzer Florian Störkle Dennis Herzner Gliederung 1 Mutual Exclusion allgemein 2 Lock-Algorithmen 2.1 LockOne 2.2 LockTwo + Beweis 2.3 Peterson Lock 2.4 Lamport's Bakery Lock-Algorithmus

Mehr

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März

Mehr

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden! Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar

Mehr

Breitensuche BFS (Breadth First Search)

Breitensuche BFS (Breadth First Search) Breitensuche BFS (Breadth First Search) Algorithmus BREITENSUCHE EINGABE: G = (V, E) als Adjazenzliste, Startknoten s V 1 Für alle v V 1 If (v = s) then d[v] 0 else d[v] ; 2 pred[v] nil; 2 Q new Queue;

Mehr

Leser-Schreiber-Realisierung mit Semaphoren

Leser-Schreiber-Realisierung mit Semaphoren Leser-Schreiber-Realisierung mit Semaphoren Reader: down(semwriter); down(semcounter); rcounter++; up(semwriter); read(); down(semcounter); rcounter--; Writer: Problem: down(semwriter); Busy Waiting siehe

Mehr

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen Einführung in die Programmierung für NF Rückgabewerte, EBNF, Fallunterscheidung, Schleifen FUNKTIONEN UND PROZEDUREN 3 Rückgabewerte, EBNF, Fallunterscheidung, Schleifen 2 Funk@on und Prozedur Methoden

Mehr

Elementare Verbandstheorie. Elementare Verbandstheorie Sommersemester / 1

Elementare Verbandstheorie. Elementare Verbandstheorie Sommersemester / 1 Elementare Verbandstheorie Elementare Verbandstheorie Sommersemester 2009 1 / 1 Halbordnungen Definition Eine binäre Relation auf einer Menge M heisst Halbordnung, wenn sie reflexiv, transitiv und antisymmetrisch

Mehr

Kap. 6.5: Minimale Spannbäume ff

Kap. 6.5: Minimale Spannbäume ff Kap. 6.: Minimale Spannbäume ff Professor Dr. Karsten Klein Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 20. VO 2. TEIL DAP2 SS 2009 2. Juli 2009 SS08 1 Überblick 6.:

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 19. 25. Februar 2003 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()

Mehr

Kapitel 5. Monitore und Synchronisationsbedingungen

Kapitel 5. Monitore und Synchronisationsbedingungen Seite Kapitel 5 Monitore und Synchronisationsbedingungen Prof. Dr. Rolf Hennicker 5.6.24 5. Synchronisationsbedingungen Seite 2 Bisherige Verwendung von Monitoren: Verkapselung von Daten, Zugriffoperationen

Mehr

Wann sind Codes eindeutig entschlüsselbar?

Wann sind Codes eindeutig entschlüsselbar? Wann sind Codes eindeutig entschlüsselbar? Definition Suffix Sei C ein Code. Ein Folge s {0, 1} heißt Suffix in C falls 1 c i, c j C : c i = c j s oder 2 c C und einen Suffix s in C: s = cs oder 3 c C

Mehr

Erreichbarkeitsanalyse

Erreichbarkeitsanalyse Erreichbarkeitsanalyse 1 Definition Unter Erreichbarkeitsanalyse versteht man Berechnung aller erreichbaren Zustände Resultat kann explizit oder symbolisch repräsentiert werden wird für weitere Algorithmen

Mehr

Binary Decision Diagrams (Einführung)

Binary Decision Diagrams (Einführung) Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von

Mehr

Klausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 18. Februar Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte

Klausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 18. Februar Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte Universität Düsseldorf Mathematisch-naturwissenschaftliche Fakultät Institut für Informatik Prof. Dr. Michael Schöttner Florian Klein Kevin Beineke Janine Haas Klausur zur Vorlesung Informatik 1 im Wintersemester

Mehr

Resolutionsalgorithmus

Resolutionsalgorithmus 112 Resolutionskalkül Mit dem Begriff Kalkül bezeichnet man eine Menge von syntaktischen Umformungsregeln, mit denen man semantische Eigenschaften der Eingabeformel herleiten kann. Für den Resolutionskalkül:

Mehr

Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:

Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele: Parallele Prozesse SWE-131 Prozeß: Ausführung eines sequentiellen Programmstückes in dem zugeordneten Speicher (Adressraum). Veränderlicher Zustand: Speicherinhalt und Programmposition. Parallele Prozesse:

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

Kap. 6.6: Kürzeste Wege

Kap. 6.6: Kürzeste Wege Kap. 6.6: Kürzeste Wege Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 1./. VO DAP SS 009./9. Juli 009 1 Nachtest für Ausnahmefälle Di 1. Juli 009, 16:00 Uhr,

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

Kapitel 2. Prozesse und Java-Threads

Kapitel 2. Prozesse und Java-Threads Seite 1 Kapitel 2 Prozesse und Java-Threads Prof. Dr. Rolf Hennicker 27.04.2017 2.1 Prozessbegriff Seite 2 Prozess: Programm in Ausführung Prozesszustand (zu einem Zeitpunkt): Wird charakterisiert durch

Mehr

reach 4 explizit = jeder Zustand/Übergang wird einzeln repräsentiert symbolisch = Mengen-Repräsentation von Zuständen/Übergängen durch Formeln

reach 4 explizit = jeder Zustand/Übergang wird einzeln repräsentiert symbolisch = Mengen-Repräsentation von Zuständen/Übergängen durch Formeln Erreichbarkeitsanalyse reach 1 Symbolisch vs Explizit reach 2 Definition Unter Erreichbarkeitsanalyse versteht man explizit = jeder Zustand/Übergang wird einzeln repräsentiert symbolisch = Mengen-Repräsentation

Mehr

1. Motivation. Problemstellung: Dateninkonsistenzen (data races) aufgrund von konkurrierenden Zugriffen auf gemeinsame Daten sollen verhindert werden.

1. Motivation. Problemstellung: Dateninkonsistenzen (data races) aufgrund von konkurrierenden Zugriffen auf gemeinsame Daten sollen verhindert werden. 1. Motivation Problemstellung: Dateninkonsistenzen (data races) aufgrund von konkurrierenden Zugriffen auf gemeinsame Daten sollen verhindert werden. 25.09.09 Ferienakademie 2009 Kurs 1: Data Coloring

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 16 Programm: Einführung

Mehr

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

Mehr

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München Informatik 1 Sommersemester 2011 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Einführung in Grundkonzepte der Informatik; Einführung in Denkweisen der Informatik;

Mehr

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen)

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen) WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Relationen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Mögliche Implementierung von intern():

Mögliche Implementierung von intern(): Mögliche Implementierung von intern(): public class String { private static int n = 1024; private static List[] hashset = new List[n]; public String intern() { int i = (Math.abs(hashCode()%n);

Mehr

Kap. 6.6: Kürzeste Wege

Kap. 6.6: Kürzeste Wege 0.0.00 Nachtest für Ausnahmefälle Kap..: Kürzeste Wege Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund./. VO DAP SS 00./. Juli 00 Di. Juli 00, :00 Uhr, OH, R.

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading

Lehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading Leistungskurs C++ Multithreading Zeitplan 16.10. Vorlesung 23.10. Vorlesung, Gruppeneinteilung 30.10. Vorlesung, HA1 06.11. Vorlesung, HA2 13.11. Vorlesung entfällt wegen SVV 20.11. Präsentation Vorprojekt

Mehr