Motivation

Werbung
Entwicklung von Simulationsmodellen
WS 2007/08
Dr. Falk-Juri Knauft
Mittwoch 9.15 Uhr – 10.00 Uhr S25
Praktikum zur Entwicklung von Simulationsmodellen:
Mittwoch 14.00 Uhr – 17.00 Uhr GEO CIP-Pool
Modul: 22a
http://www.bayceer.uni-bayreuth.de/mod/html/ws0708/geooekologie/simulationsmodelle
Entwicklung von Simulationsmodellen
WS 2007/2008 – Überblick I
17.10.2007
Einführung, Ziele, Definition System, Model
24.10.2007
Systemanalyse vs. –simulation, Zustandsbeschreibung
31.10.2007
Diskretisierung, Auswertung der Excel-Simulation
07.11.2007
Programmierparadigmen
14.11.2007
21.11.2007
28.11.2007
05.12.2007
12.12.2007
19.12.2007
http://www.bitoek.uni-bayreuth.de/mod/html/ws0708/geooekologie/simulationsmodelle
http://www.bayceer.uni-bayreuth.de/mod/html/ws0708/geooekologie/simulationsmodelle
Paradigmen der Programmierung
•
Motivation
•
Definition Algorithmus
•
Prozedurale Programmierung
•
Deklarative Programmierung
•
-
Funktionale Programmierung
-
Logische Programmierung
Objektorientierte Programmierung
Unter einem Paradigma versteht man eine forschungsleitende
Perspektive oder Sichtweise, die für eine bestimmte Zeit und
bestimmte Gruppe von Wissenschaftlern konsensbildend ist.
(nach Thomas S. KUHN, 1976)
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Motivation:
Diese Vorlesung soll es Ihnen ermöglichen,...
durch Kenntnis der wesentlichen Programmier-Paradigmen ...
dasjenige auszuwählen,...
welches Ihnen am besten erlaubt ...
Ihr spezifisches Simulationsproblem zu lösen.
Problem 1
Objektorient.
Programm.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Problem: Wie kommt der Nagel in den Balken?
Hilfsmittel:
• Schraubenzieher
• Bohrmaschine
• Säge
• Hammer
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Motivation:
Diese Vorlesung soll es Ihnen ermöglichen,...
durch Kenntnis der wesentlichen Programmier-Paradigmen ...
dasjenige auszuwählen,...
welches Ihnen am besten erlaubt ...
Ihr spezifisches Simulationsproblem zu lösen.
Problem 1
Problem 2
Objektorient.
Programm.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Problem: Modellierung des waagerechten
Wurfes
Höhe
m
Höhe
m
Zeit s
Weg m
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Motivation:
Diese Vorlesung soll es Ihnen ermöglichen,...
durch Kenntnis der wesentlichen Programmier-Paradigmen ...
dasjenige auszuwählen,...
welches Ihnen am besten erlaubt ...
Ihr spezifisches Simulationsproblem zu lösen.
Problem 1
Problem 2
Problem 3
Objektorient.
Programm.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Problem: Zuordnung räumlich bezogener
Informationen
Projekt
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
ewexpo2000
Abteilung Par. A Par. B Par. C Par. D Baumart Höhe Par. E Projekt
BHD Alter
3060100
1
1
1
6
112
34
0 ewexpo2000
23,4 116
3060100
1
1
1
5
211
30
0 ewexpo2000
25,7 116
3060100
1
2
1
5
211
5
0 ewexpo2000
6 42
3060200
1
0
1
5
211
9
0 ewexpo2000
12,6 38
3060200
1
0
1
1
511
12
0 ewexpo2000
14,1 28
3060200
1
0
1
3
811
15
0 ewexpo2000
15,7 28
3070100
1
1
1
6
112
39
0 ewexpo2000
24,7 131
3070100
1
1
1
5
211
23
0 ewexpo2000
23,7 86
3070100
1
3
1
5
211
5
0 ewexpo2000
6 42
3070100
1
2
1
5
211
15
0 ewexpo2000
15,8 86
3070201
1
2
1
5
211
9
0 ewexpo2000
12,6 38
3070201
1
2
1
1
511
11
0 ewexpo2000
12,8 28
3070201
1
1
1
3
811
15
0 ewexpo2000
15,7 28
3070202
1
1
1
5
211
42
0 ewexpo2000
28,6 151
3070202
1
3
1
5
211
4
0 ewexpo2000
0 8
3070202
1
3
1
1
511
4
0 ewexpo2000
0 8
3100101
1
5
1
6
112
52
0 ewexpo2000
28,8 157
3100101
1
1
1
5
211
32
0 ewexpo2000
27,9 111
3100101
1
1
1
5
211
4
0 ewexpo2000
4,1 37
3100102
1
1
1
6
112
53
0 ewexpo2000
25,1 191
3100102
1
1
1
5
211
32
0
27,9 111
ewexpo2000
3100102
1
2
1
5
211
23
0
19,3 111
ewexpo2000
3100102
1
3
1
5
211
4
0
4,1 37
ewexpo2000
3100200
1
2
1
5
211
9
0
12,6 38
ewexpo2000
3100200
1
2
1
1
511
11
0
12,8 28
ewexpo2000
3100200
1
1
1
3
811
16
0
16,8 28
ewexpo2000
3780100
1
1
1
1
511
34
0
30,9 99
ewexpo2000
3780100
1
1
1
3
811
35
0
28,9 99
ewexpo2000
3780100
1
2
1
3
811
21
0
21,2 46
ewexpo2000
3780100
1
2
1
1
511
16
0
18,8 46
ewexpo2000
3780201
1
1
1
6
112
50
0
24,9 178
ewexpo2000
3780201
1
1
1
5
211
35
0
27,1 131
ewexpo2000
ewexpo2000
BA Par. F Per
Par. G
Abteilung
23,37
0
3060100
10,5
1,52
0
3060100
10,5
4,5
0
3060100
10,5
14,691
3060100 0
10,5
4,092
0
3060100
10,5
1,155
0
3060100
10,5
19,98
0
3060100
10,5
2,55
0
3060100
10,5
1,05
0
3060100
10,5
0,78
0
3060100
10,5
15,045
3060100 0
10,5
3,2
0
3060100
10,5
1,155
0
3060100
10,5
19,3
0
3060100
10,5
0,1
0
3060100
10,5
0,1
0
3060100
10,5
21,945
3060100 0
10,5
1,38
0
3060100
10,5
2,6
0
3060100
10,5
18,87
0
3060100
10,5
4,14
0
3060100
10,5
2,24
0
0,5
3060100
1
0,26
0
0,5
3060100
1
14,16
0
0,5
3060100
1
4,8
0
0,5
3060100
1
1,205
0
0,5
3060100
1
35,64
0
0,5
3060100
1
2,66
0
0,5
3060100
1
10,68
0
0,5
3060100
1
10
0
0,5
3060100
1
14,76
0
0,5
3060100
1
12,52
0
0,5
3060100
1
3060100
1
Nr
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Art
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
BHD
29.7
38.6
32.9
38.4
35.3
40.9
27.7
19.8
30.2
23.2
19.9
27.0
34.8
41.6
24.3
32.3
41.3
20.2
27.5
32.6
41.0
29.7
35.1
27.9
42.0
36.9
37.0
30.2
29.9
29.7
38.3
45.6
16.8
h
21.9
23.6
23.7
23.6
24.1
24.2
22.5
20.4
22.5
21.5
20.9
21.5
23.8
24.6
21.1
23.0
24.8
19.8
22.6
23.1
24.9
22.5
24.0
22.8
25.8
24.5
23.8
23.6
22.4
22.2
23.2
25.0
19.1
kra
14.2
14.9
15.3
14.9
15.4
15.2
14.8
13.9
14.6
14.4
14.3
14.1
15.3
15.4
14.1
14.8
15.6
13.4
14.9
14.9
15.6
14.7
15.3
15.0
16.2
15.6
15.1
15.4
14.6
14.4
14.6
15.5
13.2
kd
5.4
6.9
5.8
6.9
6.2
7.3
4.9
3.6
5.4
4.1
3.6
4.9
6.2
7.4
4.4
5.8
7.3
3.7
4.9
5.8
7.2
5.3
6.2
4.9
7.4
6.5
6.6
5.3
5.3
5.3
6.9
8.1
3.1
x
53.9
36.5
92.3
34.0
83.4
39.3
81.9
39.9
65.6
55.5
21.3
61.8
98.0
80.6
49.3
11.1
14.0
46.5
38.2
72.9
79.1
8.6
84.8
36.3
58.5
77.8
20.1
27.0
88.9
52.3
54.9
41.9
11.1
y
89.9
5.7
63.5
47.6
4.4
70.6
74.7
29.5
62.2
67.7
25.1
39.4
41.7
54.2
53.8
9.7
46.8
40.5
86.4
56.4
62.9
23.7
25.1
39.3
76.7
86.2
10.9
36.3
84.4
18.0
28.7
11.7
85.1
kenn mortjn
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Motivation:
Diese Vorlesung soll es Ihnen ermöglichen,...
durch Kenntnis der wesentlichen Programmier-Paradigmen ...
dasjenige auszuwählen,...
welches Ihnen am besten erlaubt ...
Ihr spezifisches Simulationsproblem zu lösen.
Problem 1
Problem 2
Problem 3
Problem 4
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Problem: Hecht im Forellenteich
Objektorient.
Programm.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Definition Algorithmus
Deklarative
Programm.
Objektorient.
Programm.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Prozedurale Programmierung
Modellierung der Information
• Information als Datentyp (integer,
bool, real) in Variablen oder VariablenKonstrukten (Arrays, Records)
gespeichert
• Referenzen/Zeiger verweisen auf
Variablen
Modellierung der Verarbeitung
• Folge globaler Zustandsänderungen
(globaler Zustand als Gesamtheit der
Variablen-Zustände)
• Je Z.ä. wird Inhalt einer oder
weniger Variablen geändert ...
• ... oder es werden Variablen erzeugt
oder entfernt
• Z.ä. durch elementare Anweisung
beschrieben (Zuweisung, Allokation,
Deallokation, Lese- oder
Schreiboperation)
• Folgen von Z.ä. als zusammengesetzte Anweisung, evt. auch als
unendliche Folge
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Prozedurale Programmierung
Prozeduren
• Benannte parametrisierte Anweisungen, meist zur Erledigung von
Aufgaben/ Teilaufgaben
• Funktionsprozeduren liefern Ergebnisse
• P. können andere P. aufrufen
• P.aufrufe müssen eindeutig zugeordnet sein
Prozedur B:
Prozedur A:
if i=1
then set c=blau
set i = i+1
Zustand 1:
Zustand 2:
Variable int i=0
Variable color c=grau
i=1
c=grau
Zustand 3:
i=1
c=blau
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Deklarative Programmierung
Erschließung mathematischer Beschreibungsmittel für die Programmierung
• Erleichterung des Umgangs mit komplexen Daten
• Verzicht auf Variablen
Nicht Verarbeitungsvorschrift,
sondern Spezifikation der Programm-Ergebnisse
mit speziellen mathematischen Beschreibungsmitteln.
 Modellierung von Informationen, sowie deren Beziehungen und Eigenschaften
 Verarbeitung der Informationen zumeist implizit
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative Programmierung
Funktionale Programmierung
• Programm als partielle Funktion von
Eingabe- und Ausgabedaten
• Ausführung durch Anwendung der
Funktion auf die Eingabe
• Deklaration von Datentypen und
Funktionen, evt. auch geschachtelt
• Ermöglicht die Nutzung komplexer
Datenstrukturen ohne Zeiger und
Variablen
• Bsp.
Deklarative
Programm.
Objektorient.
Programm.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Deklarative Programmierung
Funktionale Programmierung
Ein in waagerechter Richtung abgeworfener Körper führt zwei unabhängige
Bewegungen zu gleicher Zeit aus:
eine Bewegung mit konstanter Geschwindigkeit v0 in horizontaler Richtung
x  v t
0
(1)
eine beschleunigte Bewegung in vertikaler Richtung
y
1
g  t2
2
(2)
Die durch Gleichsetzen von Gleichung (1) und (2) nach der Zeit t
entstehende resultierende Bewegung entspricht einer Kurve, der Wurfparabel
(3):
x2 g
y
2
2  v0
bzw .
ha = Fallhöhe,
s = Wurfweite,
g = Erdbeschleunigung.
s2  g
ha 
2
2  v0
(3)
Objektorient.
Programm.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative Programmierung
Funktionale Programmierung
Das Beispiel als Haskell-Code
sq::Int
sq y=y*y
fallhoehe :: Int -> Real -> Int
fallhoehe sgv = sq s * g / 2 * sq v
e1 :: Real
e1 = fallhoehe 5 9.81 10
Deklarative
Programm.
Objektorient.
Programm.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Deklarative Programmierung
Funktionale Programmierung
Logische Programmierung
• Programm als partielle Funktion von
• Programm als Sammlung von Fakten
• Ausführung durch Anwendung der
Funktion auf die Eingabe
• Ausführung sucht Antworten auf
solche Fragen
• Deklaration von Datentypen und
Funktionen, evt. auch geschachtelt
• Nutzt formale Logik, um Fakten und
Zusammenhänge zu beschreiben
Eingabe- und Ausgabedaten
• Ermöglicht die Nutzung komplexer
Datenstrukturen ohne Zeiger und
Variablen
• Bsp.
und Folgerungs-beziehungen, an die
Fragen gestellt werden können
• Bsp.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative Programmierung
Logische Programmierung
Ein Beispiel im Prolog-Code
istBlume( Rose ).
blüht(x) :- istBlume(x).
blüht( Rose )?
ja
blüht( Salat )?
nein
Deklarative
Programm.
Objektorient.
Programm.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Deklarative Programmierung
Funktionale Programmierung
Logische Programmierung
• Programm als partielle Funktion von
• Programm als Sammlung von Fakten
• Ausführung durch Anwendung der
Funktion auf die Eingabe
• Ausführung sucht Antworten auf
solche Fragen
• Deklaration von Datentypen und
Funktionen, evt. auch geschachtelt
• Nutzt formale Logik, um Fakten und
Zusammenhänge zu beschreiben
Eingabe- und Ausgabedaten
• Ermöglicht die Nutzung komplexer
Datenstrukturen ohne Zeiger und
Variablen
• Bsp.
und Folgerungs-beziehungen, an die
Fragen gestellt werden können
• Bsp.
Weitere Form Deklarativer Programmierung:
• relationale Datenbank-Programmierung
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Objektorientierte Programmierung
Vorgänge werden durch handelnde Individuen (Instanzen oder„Objekte“) modelliert,
die Aufträge erledigen und vergeben können.
Nachricht => Auftragserteilung.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorientierte Programmierung
Nachricht => Auftragserteilung.
Hunger!
Objektorient.
Programm.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Objektorientierte Programmierung
Vorgänge werden durch handelnde Individuen (Instanzen oder„Objekte“) modelliert,
die Aufträge erledigen und vergeben können.
Nachricht => Auftragserteilung.
Methode => Auftragsdurchführung.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorientierte Programmierung
Methode => Auftragsdurchführung.
Hunger!
Objektorient.
Programm.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Objektorientierte Programmierung
Vorgänge werden durch handelnde Individuen (Instanzen oder„Objekte“) modelliert,
die Aufträge erledigen und vergeben können.
Nachricht => Auftragserteilung.
Methode => Auftragsdurchführung.
Klassifikation => hierarchische Zusammenfassung von
Objekten gleicher Eigenschaften.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Objektorientierte Programmierung
Klassifikation => hierarchische Zusammenfassung von Objekten gleicher
Eigenschaften.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Objektorientierte Programmierung
Vorgänge werden durch handelnde Individuen (Instanzen oder„Objekte“) modelliert,
die Aufträge erledigen und vergeben können.
Nachricht => Auftragserteilung.
Methode => Auftragsdurchführung.
Klassifikation => hierarchische Zusammenfassung von Objekten
gleicher Eigenschaften.
Vererbung => Eigenschaften übergeordneter Hierarchie-Ebenen
werden auch nachgeordneten zugeordnet.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Objektorientierte Programmierung
Vererbung => Eigenschaften übergeordneter Hierarchie-Ebenen werden
auch nachgeordneten zugeordnet.
Motivation
Def.
Algorithmus
Prozedurale
Programm.
Deklarative
Programm.
Objektorient.
Programm.
Objektorientierte Programmierung
Lösungsansatz: Hecht im Forellenteich
Klassen
Methoden
Eigenschaften
•Teich
•GetTemperatur(private)
•Größe, Temperatur,...
•Fisch
•Fressen (public),
•Hunger, Geruch, Wo?
•Forelle
•Hecht
•Fressen von Wasserflöhen
•Menge in g
•Fressen von Kleinfischen
•Anzahl
•Fressen von Forellen
•Gewicht in g
•Fressen von Entenküken
•Gewicht in g
Entwicklung von
Simulationsmodellen
Paradigmen der Programmierung
•
Prozedurale Programmierung
•
Deklarative Programmierung
•
-
Funktionale Programmierung
-
Logische Programmierung
Objektorientierte Programmierung
Herunterladen