kramann.info
© Guido Kramann

Login: Passwort:










Informatik3
1 Vom_struct_zur_Klasse
..1.1 Vom_struct_zur_Klasse
..1.2 struct_Programm
..1.3 Klassen_Programm
..1.4 Offene_Fragen
..1.5 Historie
..1.6 Objektabstraktion
..1.7 OO_Kundenverwaltung
..1.8 Objektfaehigkeiten
..1.9 Formatierung
..1.10 Motivation
..1.11 Uebung1
..1.12 Uebung2
2 UML
..2.1 Volumenberechnung
..2.2 UML_Klassendiagramm
..2.3 Konstruktor
..2.4 Statische_Variable
3 Strings
..3.1 Klassenbibliotheken
..3.2 stringUML
..3.3 Uebung3
4 Initialisierungen
4 bluej
5 Zeiger_und_Arrays
..5.1 Zeiger
..5.2 Zeiger_und_Funktion
..5.3 Uebung4
6 Vererbung
..6.1 MesswerteUML
..6.2 MesswerteProgramm
..6.3 VererbungsProgramm
..6.4 Vector
..6.5 Uebung
7 Modifikatoren
..7.1 public_Vererbung
..7.2 protected_Vererbung
8 Listen_und_Templates
..8.1 Containertypen
....8.1.1 ListeUML
....8.1.2 ListeProgramm
..8.2 Templates
....8.2.1 Listentemplate
....8.2.2 STLvectorTemplate
..8.3 Uebung5
..8.4 Uebung6
..8.5 Uebung7
9 Java
..9.1 Uebung
..9.2 GettingStarted
..9.3 Animation
..9.4 Hybrid
..9.5 Threads
10 Delegation
11 LayoutProjekt
12 Fenster
13 Uebung
14 Zwischenprojekt
..14.1 Befehle
..14.2 Planung
..14.3 JNI
..14.4 JNIumsetzen
..14.5 Anwendungsklasse
..14.6 GUI01
..14.7 GUI02
15 Rasterlayout
..15.1 Bilder_Packages
..15.2 interfaces
..15.3 ArrayList
..15.4 clone
..15.5 Uebung
16 Nuetzliches
..16.1 Threads
..16.2 Animation
..16.3 RungeKutta
..16.4 Loesungsansatz
..16.5 Internetprogrammierung
....16.5.1 Codegenerierung
....16.5.2 PHP_Programmierung
....16.5.3 PHP_OOP
....16.5.4 Java
17 Algorithmen
..17.1 RungeKutta
..17.2 Loesungsansatz
..17.3 Evoopt
..17.4 Uebung12
..17.5 Uebung8_2014
..17.6 Ausdruecke
18 Uebung10
19 UML_ALT
..19.1 Flaechenberechnung
..19.2 UML_Flaechenberechnung
..19.3 Implementierung
..19.4 ListeUML
..19.5 ListenImplementierung
..19.6 Anwendung

17 Algorithmen

  • Algorithmen wurden erfunden lange bevor es Computer gab. Viele konnten aber erst mit Hilfe der heutigen Technik wirklich nutzbringend eingesetzt werden.
  • Auch in der Simulationstechnik benötigt man eine Vielzahl an Algorithmen.
  • Ein Beispiel stellt die Parameterstudie dar: Hier werden alle Kombinationen an Parametern durchgespielt, die man zuvor in einem bestimmten Bereich gerastert hat.
  • Ein weiteres Beispiel aus der Simulationstechnik stellt das Gradientenverfahren dar, das ebenfalls zum Auffinden günstiger Modell-Parameter verwendet wird.
  • Die breiteste Anwendung finden aber wahrscheinlich Such- und Sortieralgorithmen.
  • In den folgenden Abschnitten wollen wir eine Auswahl an Algorithmen behandeln.
  • Sie sollen allerdings gleich objektorientiert in JAVA umgesetzt werden.
  • Zunächst soll das bereits behandelte Simulationsprogramm und der darin enthaltene Integrator weiterentwickelt werden.
  • Dann soll ein Optimierer implementiert werden, der einen genetischen Algorithmus verwendet.
  • Beide Teile sollen zu einem Simulations- und Parameter-Optimierungsprogramm zusammengefaßt und mit einer grafischen Benutzeroberfläche versehen werden.
  • Das folgende Schaubild soll eine Vorstellung von dem geplanten Projekt geben:
Simulationsumgebung

Bild 17-1: Simulations- und Optimierungsumgebung (vergl. nachfolgenden Text).

  • Um verschiedene Modelle mit verschiedenen Integrator-Verfahren kombinierbar zu machen, soll es für beides abstrakte Oberklassen geben, in denen Pflichtmethoden, die die erbenden Klassen implementieren müssen festgelegt werden.
  • Es gäbe prinzipiell auch die Möglichkeit Interfaces (Schnittstelle, Schlüsselwort: interface) als Oberklassen zu nehmen, jedoch muß dann alles in der Oberklasse abstrakt sein.
  • Ein Modellobjekt soll bei einem Integrator-Objekt registriert werden.
  • Eine Gütefunktion des Optimierers soll zwei Modellintegratoren verwenden:
  • Das erste soll Messungen simulieren, beim zweiten sollen Parameter so optimiert werden, dass dessen Verhalten dem ersten möglichst gut entspricht.
  • Das Ganze soll ein eine GUI eingebettet werden.
  • Im linken Bereich sollen die Parameter C und D eines linearen Schwingers eingestellt werden.
  • Per Knopfdruck "Optimieren" soll dann eine Parametersuche mit Hilfe des zweiten Modells starten und die Ergenisse im Verlauf rechts dargestellt werden.
  • Salopp gesagt: Wir haben zwei strukturell gleiche Modelle eines linearen Schwingers. Wir tun so, als sei das erste "die Realität" und als würden wir Messungen von diesem gedachten realen Schwinger bekommen.
  • Diese Messungen sollen möglichst gut in Deckung mit der Simulation des zweiten Modells gebracht werden.
  • Dies erledigt der Optimierer, indem er immer wieder neue Parameterkombinationen festlegt und das Ergebnis der entsprechenden Simulation mit "der Realität" vergleicht.