Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Entwicklung von Simulationsmodellen

Ähnliche Präsentationen


Präsentation zum Thema: "Entwicklung von Simulationsmodellen"—  Präsentation transkript:

1 Entwicklung von Simulationsmodellen
WS 2007/08 Dr. Falk-Juri Knauft Mittwoch 9.15 Uhr – Uhr S25 Praktikum zur Entwicklung von Simulationsmodellen: Mittwoch Uhr – Uhr GEO CIP-Pool Modul: 22a Es ist sinnvoll, die hier angegebenen Veranstaltungen zu kombinieren. Die Themen ergänzen sich gegenseitig.

2 Entwicklung von Simulationsmodellen WS 2007/2008 – Überblick I
Einführung, Ziele, Definition System, Model Systemanalyse vs. –simulation, Zustandsbeschreibung Diskretisierung, Auswertung der Excel-Simulation Programmierparadigmen Dieser Themenkatalog ist nur eine ungefähre Auflistung. Insbesondere die Termine sind eher unverbindlich.

3 Paradigmen der Programmierung
Motivation Definition Algorithmus Prozedurale Programmierung Deklarative Programmierung Funktionale Programmierung Logische Programmierung Objektorientierte Programmierung Thema dieser Vorlesung sind die Paradigmen der Programmierung. als Motivation ein paar einfache Beispiele klassisches Programmierparadigma -> Prozeduralen Programmierung Etwas spezieller, aber gerade in Fragen der Entwicklung von Simulationen nicht unbedeutend -> Deklarative Programmierung. Typen Funktionale und Logische Programmierung heute am häufigsten -> Objektorientierten Programmierung. heutige Themen nehmen in einem Informatik-Studiengang den Umfang von etlichen Semesterwochenstunden! -> einen Überblick vermitteln. 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)

4 Objektorient. Programm.
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 Wozu das ganze, wenn hier sowieso nur an der Oberfläche gekratzt werden soll?

5 Problem: Wie kommt der Nagel in den Balken?
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Problem: Wie kommt der Nagel in den Balken? Hilfsmittel: Schraubenzieher Bohrmaschine Säge Hammer

6 Objektorient. Programm.
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 Das 2. Problem ist Ihnen sicher noch aus Ihrem Physik-Unterricht vertraut: Wurfbeispiel

7 Problem: Modellierung des waagerechten Wurfes
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Problem: Modellierung des waagerechten Wurfes Zeit Höhe m s Weg Höhe m

8 Objektorient. Programm.
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 Während im letzten Problem die Verarbeitung von Funktionen im Vordergrund stehen wird, gibt es auch sehr viel stärker auf die Struktur der Daten abgelegte Situationen Bestandesdatenbeispiel

9 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Problem: Zuordnung räumlich bezogener Informationen

10 Objektorient. Programm.
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 Während im letzten Beispiel die Einzelbaumdaten als Repräsentation von Individuen, hinsichtlich Ihrer Behandlung, noch gar nicht von den Bestandesdaten unterschieden, so ist dies im Fall von interaktiver Einflussnahme erforderlich. Hecht-im-Forellenteich-Beispiel

11 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Problem: Hecht im Forellenteich

12 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Definition Algorithmus Andere Algorithmen: Kochrezept, Bauanleitung, Bestimmte Rechenregeln (mit mehreren Schritten)

13 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Prozedurale Programmierung Modellierung der Information Modellierung der Verarbeitung Information als Datentyp (integer, bool, real) in Variablen oder Variablen-Konstrukten (Arrays, Records) gespeichert Referenzen/Zeiger verweisen auf Variablen 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 zusammen-gesetzte Anweisung, evt. auch als unendliche Folge Prozedurale Programmierung klassischen Programmiersprachen Basic, C oder Pascal Wesentlich für diese Form ist die getrennte ... ...Modellierung der Verarbeitung... ...und der Information. Informationen nach Datentyp unterschieden: Integer, Bool und Real genannt. Verwaltet als Variablen oder Variablen-Konstrukten: Arrays (Matrix), Records (Liste) Verweise auf bestimmte Variablen: Zeiger Verarbeitung der Informationen als eine Folge globaler Zustandsänderungen Globaler Zustand: Gesamtheit der Variablen-Zustände. Eine Z.ä. : Änderung des Inhaltes einer oder mehrerer Variablen. oder neue Variable erzeugen oder alte entfernen. Z.ä.en durch elementare Anweisungen beschrieben: Zuweisung, die Allokation und Deallokation sowie die Lese- und Schreiboperationen. Mehrere Z.ä. in Folge können durch das Zusammensetzen mehrerer Anweisungen beschrieben werden. ->Algorithmus auch in unendlichen Schleifen (z.B. bei Überwachungsaufgaben).

14 Objektorient. Programm.
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: if i=1 then set c=blau Prozedur A: set i = i+1 Was ist denn nun eine Prozedur? einzelne oder Folgen von Anweisungen, durch einen spezifischen Namen angesprochen erfüllen bestimmte Aufgaben oder Teilaufgaben. Um die Prozeduren in verschiedenen Situationen verwenden zu können, werden der Prozedur Parameter mitgegeben. Liefert die Prozedur neben dem veränderten Gesamtzustand auch noch ein Ergebnis zurück, spricht man von einer Funktionsprozedur. Dies kann auch ein Wert vom Typ Bool sein, der besagt, ob die Prozedur erfolgreich durchgeführt wurde oder ob ein Problem innerhalb der Prozedur auftrat. Innerhalb einer Prozedur können natürlich auch andere Prozeduren aufgerufen werden. Prozedur-Aufrufe immer eindeutig: neben einer Prozedur für die Addition zweier Integer-Werte eine Weitere für die Addition zweier Real-Werte mit eigenem Namen existieren muss. Lassen Sie mich nun das zuvor gesagte an einem kleinen Beispiel illustrieren: Zustand 1: Variable int i=0 Variable color c=grau Zustand 2: i=1 c=grau Zustand 3: i=1 c=blau

15 Objektorient. Programm.
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 Deklarativen Programmierung mathematischen Beschreibungsmittel für die Programmierung erschließen. Erleichterung des Umgangs mit komplexen Daten, weitgehender Verzicht auf Variablen. nicht eine Verarbeitungsvorschrift, wie bei der Prozeduralen Programmierung, sondern eine Beschreibung des Programmergebnisses mit mathematischen Mitteln. Modellierung der Information sowie deren Beziehungen und Eigenschaften. Die Verarbeitung erfolgt dabei zumeist implizit.

16 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. 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.

17 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. 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 (1) eine beschleunigte Bewegung in vertikaler Richtung (2) Die durch Gleichsetzen von Gleichung (1) und (2) nach der Zeit t entstehende resultierende Bewegung entspricht einer Kurve, der Wurfparabel (3): (3) ha = Fallhöhe, s = Wurfweite, g = Erdbeschleunigung.

18 Das Beispiel als Haskell-Code
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. 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

19 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Deklarative Programmierung Funktionale Programmierung Logische 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. Programm als Sammlung von Fakten und Folgerungs-beziehungen, an die Fragen gestellt werden können Ausführung sucht Antworten auf solche Fragen Nutzt formale Logik, um Fakten und Zusammenhänge zu beschreiben Bsp.

20 Ein Beispiel im Prolog-Code
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. 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

21 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Deklarative Programmierung Funktionale Programmierung Logische 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. Programm als Sammlung von Fakten und Folgerungs-beziehungen, an die Fragen gestellt werden können Ausführung sucht Antworten auf solche Fragen Nutzt formale Logik, um Fakten und Zusammenhänge zu beschreiben Bsp. Weitere Form Deklarativer Programmierung: relationale Datenbank-Programmierung

22 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. Instanziierung Ein Objekt ist die Instanz einer Klasse In der Klasse werden alle Variablen und Methoden definiert, davon können dann Instanzen abgeleitet werden Jede Instanz hat eine eigene Kopie der Variablen, die in der Klasse definiert sind (Instanzvariable) Aus einer Klasse können beliebig viele Instanzen erzeugt werden Kapselung -> Daten und Methoden in einer Klasse, wahlweise nach außen sichtbar

23 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Objektorientierte Programmierung Nachricht => Auftragserteilung. Hunger!

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

25 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Objektorientierte Programmierung Methode => Auftragsdurchführung. Hunger!

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

27 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Objektorientierte Programmierung Klassifikation => hierarchische Zusammenfassung von Objekten gleicher Eigenschaften.

28 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. Vererbung => Eigenschaften übergeordneter Hierarchie-Ebenen werden auch nachgeordneten zugeordnet.

29 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Objektorientierte Programmierung Vererbung => Eigenschaften übergeordneter Hierarchie-Ebenen werden auch nachgeordneten zugeordnet.

30 Objektorient. Programm.
Motivation Def. Algorithmus Prozedurale Programm. Deklarative Programm. Objektorient. Programm. Objektorientierte Programmierung Lösungsansatz: Hecht im Forellenteich Klassen Teich Fisch Forelle Hecht Methoden GetTemperatur(private) Fressen (public), Fressen von Wasserflöhen Fressen von Kleinfischen Fressen von Forellen Fressen von Entenküken Eigenschaften Größe, Temperatur,... Hunger, Geruch, Wo? Menge in g Anzahl Gewicht in g

31 Entwicklung von Simulationsmodellen
Paradigmen der Programmierung Prozedurale Programmierung Deklarative Programmierung Funktionale Programmierung Logische Programmierung Objektorientierte Programmierung In der heutigen Vorlesung habe ich Ihnen einen Überblick über die wichtigsten Programmier-Paradigmen gegeben. weiteren detaillierteren Einführung: Vorlesungen in der Angewandten Informatik. Obwohl gegenüber der objektorientierten Programmierung das ältere Paradigma hat die prozedurale Programmierung auch heute noch ihre Anwendungsbereiche. Insbesondere in der Physik und den Ingenieurwissenschaften wird auch heute noch häufig Pascal oder Fortran eingesetzt. Hier macht sich einerseits die Trennung von Methode und Information als auch die damit möglich hohe Rechengeschwindigkeit bemerkbar. Funktionale Programmiersprachen werden Ihnen dort begegnen wo etwa umfangreiche Differentialgleichungssystem zu modellieren sind, während Ihnen im Zusammenhang mit den verschiedenen Datenbanken häufiger Logische Programmiersprachen begegnen werden. Schließlich werden Sie heutzutage am häufigsten mit objektorientierten Sprachen wie Java oder C++ zusammentreffen. Dies kann einerseits in Ihrem Problem, etwa der Modellierung der Interaktion von Objekten aber auch an der Implementation von Interaktionen von Programm und Nutzer begründet sein.


Herunterladen ppt "Entwicklung von Simulationsmodellen"

Ähnliche Präsentationen


Google-Anzeigen