• Keine Ergebnisse gefunden

Resümee (1)

N/A
N/A
Protected

Academic year: 2021

Aktie "Resümee (1)"

Copied!
14
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Resümee (1)

- Algorithmus “ägyptische” Multiplikation - Ziele der Vorlesung

9 18 36 45

5 2 1

- Rekursion: Reduktion auf eine einfachere Instanz des gleichen Problems

- "Einsicht" in das dahinterliegende Prinzip

f(a,b) = f(2a , b/2)

falls b gerade

a + f(2a, (b-1)/2)

sonst

a

falls b = 1

- Terminierung, Stack-Überlauf

- Der Algorithmus als rekursives Java-Programm

- Korrektheitsnachweis ∀ a, b ∈ N

+

: f(a,b) = a × b durch vollst. Induktion (über b)

- Robustes Programmieren

- Ausnahmen (exceptions) durch try und catch behandeln

- Exceptions, try, catch,... siehe Kap. 2.5 Buch von M.A. Weiss

(2)

Resümee (2)

- Effizienz des (rekursiven) Multiplikationsalgorithmus

- Elementaroperationen identifizieren

- Vergleich "altägyptische Methode" mit der Schulmethode

- Funktionales Programmieren

- Elementare Berechnungsoperationen

- "gerade", "halbiere", "verdopple", ...

- Java

- Programmstruktur - einfache Datentypen - Unterschiede zu C++

- Bytecode, Applets

- Arrays

(3)

Resümee (3)

- Definition, Charakterisierung

- Bäume

- Wurzelbaum

- Darstellung von Wurzelbäumen

- Erzeugen von Objekten; überladene Konstruktoren - Zuweisung von Referenzen

- Vergleich von Referenzen (== , !=)

- Dynamische Klassen und Referenzen

- klassenbezogene / instanzenbezogene Variablen und Methoden - Zugriffseinschränkungen, "information hiding" (public, private)

- Java-Klassen als Datenstrukturen

- Beispiel-Klasse "datum" (mit Methoden "frueher_als", "gleich"...) - this

- Strings

- Kommandozeilenargumente

- Java

- Binärbaum in Array-Darstellung - Typkonvertierung

- Ein- / Ausgabe - Hüllenklassen

String msg = "Die";

msg = msg + " sieben";

(4)

Resümee (4)

- Syntaxdiagramme

- Beispiel: Diagramme für arithmetische Ausdrücke - Syntaxanalyse von 1+2*3 und (1+2)*3

- Darstellung des Weges durch Einrücken von (Nicht-)Terminalen (d.h. Generierung eines Syntaxbaums!)

- Erzeugen von Syntaxbäumen beim rekursiven Abstieg - Auswertung von Operatorbäumen

- Syntaxanalyse durch rekursiven Abstieg

- Implementierung von Syntaxdiagrammen durch Java-Methoden - Parser als Java-Programm

- Stack-Implementierung

- Traversieren von Bäumen in inorder und postorder

- liefert Infix- bzw. Postfixausdruck bei Operatorbäumen

- Bäume

- Syntaxbaum

- Anwendungen mit Stacks

- Transformation Infix → Postfix - Auswertung von Postfixausdrücken

- Klammerchecker

(Analyse der Blockstruktur von Programmen)

(5)

Resümee (5)

- Codegenerierung für eine Stackmaschine bei Infix-Ausdrücken

- mit Stack

- Interpreter für Infix-Ausdrücke - Interpreter, Compiler

- Klammerchecker

(Analyse der Blockstruktur von Programmen)

- rekursiv (Nutzung des Laufzeitstacks)

- Übersetzung von Java-Ausdrücken nach Bytecode

- Java-VM als Bytecode-Interpreter

- Pakete in Java

(6)

Resümee (6)

- Pakete in Java

- Beispiel Bruchrechnung

- Klassenhierarchie / objektorientiertes Programmieren

- Klassifizierung und Vererbung

- Beispiel verkettete Liste; damit Realisierung eines Stack

- Eigenschaften abgeleiteter Klassen

- Zuweisungskompatibilität von Variablen versch. Hierarchiestufe - Zugriff auf Attribute und Methoden abgeleiteter Klassen

(7)

Resümee (7)

- Abstrakte Klassen und Methoden

- Generische (typunabhängige) Algorithmen

- Sortierverfahren für beliebige total geordnete Objekte

- Bsp.: Sortieren von Zahlen bzw. Objekten der Klasse "Studi"

- Polymorphie

- late binding

bzw. geometrischen Objekten - Beispiel: polymorphe Listen

- Java: Interfaces - Java: Exceptions

- Definieren eigener Ausnahmen - try, catch, throws, throw

(8)

Resümee (8)

- Binärbäume als Referenzstrukturen - Binäre Suchbäume

- Aufbau, Einfügen, Suchen, Löschen - symmetrisches Traversieren ("inorder")

- Sortieren mit Suchbäumen (n log n Schritten)

- Binärsuche auf arrays

- Algorithmus iterativ und rekursiv - Anwendungen

- Effizienz

- Korrektheit: Terminierung

(9)

Resümee (9)

- Beispiel: 8-Damen-Problem

- Backtracking

(Denkübung: wo genau erfolgt bei der rekursiven Lösung eigentlich der Backtracking-Schritt?)

- Spieltheorie

- endliche rein strategische 2-Personen-Nullsummenspiele mit vollständiger Information

- Spielbäume - Strategien

- Auszahlungsmatrix

- Gewinnstrategie, optimale Strategie

- systematisches ("rekursives") Durchmustern eines Problembereiches

(10)

Resümee (10)

- α-β-Algorithmus

- Schnitte

- α-β-Schranken

- Optimierte Spielbaumanalyse

- spekulative Suchfenster, last move improvement, Nullfenster

- Pragmatisches zur Spielbaumanalyse - Rekursives Problemlösen

- "Türme von Hanoi"-Spiel:

- rekursive Lösung - Effizienz

- Minimax-Algorithmus

- Analogie zur Auswertung von Operatorbäumen von Ausdrücken

- Auswertung von Spielbäumen, partielle Spielbäume

(11)

Resümee (11)

- Mergesort

- bottom-up / top-down

- array bzw. verkettete Liste

- Zeitaufwand proportional zu n log n (n = Anzahl der Elemente)

- Beispiel: Beweis für O(n log n) Zeitkomplexität bei mergesort

- Aufwand von Algorithmen

- Begriffe

- O-Notation, asymptotische Zeitkomplexität

- “Divide et impera”-Paradigma

- Bsp.: rekursive Minimumsbestimmung

(12)

Resümee (12)

- Zeitgesteuerte Simulation ("Weizen, Mäuse, Katzen")

- Darstellung des Kenngrössenverlaufs

- Ereignisgesteuerte Simulation

- Vorantreiben der Simulation (und Simulationszeit) durch Ereignisse - Beispiel Call-Center eines Reisebüros

- "Grenzen des Wachstums" (Weltmodell)

- Simulation

- Modell und Modellierung

- Definition, Zweck, Anwendungsgebiete

- "korrekte" Umsetzung der Spezifikation in ein Simulationsprogramm - Grösse von Δt

(13)

Resümee (13)

- Heaps

- Implementierung (insert, get_min) in Java - Definition (Binärbaum...)

- Realisierung als array

- Heapsort (mit garantiert n log n Zeitaufwand)

- Anwendungsmöglichkeiten von Heaps

- Prozesse

- Prozesszustände - Kontextwechsel

- Threads in Java

- Multitasking

200m - Realisierung als sortierte Liste

- als unsortierte Liste

- als Heap ("partiell sortiert"!)

- Simulatorzyklus; Ereignisroutinen; Ereigniseinplanung

- Modellierung quasi-paralleler Abläufe durch Ereignisse

- Ereignisbegriff

- Ereignislisten als "abstrakte Datentypen" (insert, get_min)

(14)

Resümee (14)

- Scheduling von Threads

- Methoden zur Kontrolle von

- Prioritäten

- "Simulation" eines Zeitscheiben-

- Multithreading: race conditions

100m

Threads

Schedulers

- Kritische Abschnitte

- Synchronized-Konstrukt

- Realisierung kritischer Abschnitte - synchronized-Konstrukt

- Safety, Liveness, Fairness

- Atomarität

- Synchronisationsprobleme bei Nicht-Atomarität

- Problematik von Lösungen mittels Thread-Prioritäten

Referenzen

ÄHNLICHE DOKUMENTE

Weg zum Hutberg 12 06295 Lutherstadt Eisleben.. Kindertagesstätte

Hort Freizeitstrolche Huttenstraße 12 OT Merseburg 06217 Merseburg Tel.. 15

Internationaler Bund, IB Mitte gGmbH für Bildung und Soziale Dienste, Niederlassung S-A, Gebiet Süd Jugendhilfe- u.. Bildungsverbund Halle/BLK

Eier, Larven und Juvenile des Eiskrills sind auch schon in der Wassersäule, aber nicht häufig, und Räuber sind ebenfalls noch selten.. Die Planktologen arbeiten eng mit

Uns wird aus Bremerhaven gemeldet, dass eine Verankerung wieder aufgetaucht ist, die wir vor drei Tagen ausgelegt haben.. Jede Verankerung ist mit einem Satellitensender

Während der Reise besuchten Gerfalken die "Polarstern" zweimal und ließen sich für eine kurze Weile auf dem gelben Bugmast nieder.. Mit einer Vermessung des

Die Messungen werden alle 15 Sekunden durchgeführt und liefern aneinandergereiht Informationen über die Sed-.. i---ment-dicke und Topographie

Als 1952 die Universität Harnburg an Franz Nus- ser, der sich als Mitglied der Geographischen Gesellschaft in Hamburg und außerhalb seines dienstlichen Tätigkeitsfeldes engagiert