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
Übung 12
evoopt003_leicht_defekt.zip - in Vorlesung zu entwickelnde Programme Evoopt.java und ZahlenpaarRaten.java.

sim.zip - in Vorlesung zu entwickelnde Programme Modell.java, SchwingerModell.java, Integrator.java, EulerIntegrator.java, RuKuIntegrator.java.
Teil1 - Analyse
  • Laden Sie obige Klassen herunter.
  • Erstellen Sie zur besseren Analyse ein UML-Klassendiagramm von Evoopt.java.
  • Versuchen Sie das Gesamtprogramm zu verstehen und finden Sie zwei kleine eingebaute Fehler heraus und korrigieren Sie sie.
  • Konvergiert nun der Algorithmus? - Welche(n) Parameter könnte man variieren, um die Optimierung schneller konvergieren zu lassen?
evoopt004_schlechtestes_raus.zip - Lösung zu Teil 1.
Teil2 - Weiterentwicklung
  • Nun sollen die Parameter C und D aus dem Simulationsprogramm optimiert werden.
  • Die Durchführung einer Simulation mit den "realen" Parametern und die mit den aktuell "geratenen", sowie eine Fehlerberechnung, sollen mit Hilfe einer zu schreibenden Klasse "Simulator" geschehen.
  • Es liegt nahe zunächst eine Basisklasse "Fehlerfunktion" mit der virtuellen Methode "double berechneFehler(int[] par)" zu schreiben, von der sowohl ZahlenpaarRaten, als auch die zu schreibende Klasse "Simulator" erben.
  • Modifizieren Sie also zunächst Evoopt, bei dem dann ein Objekt vom Typ "Fehlerfunktion" registrierbar sein soll.
  • Passen Sie "ZahlenpaarRaten" dann so an, dass diese Klasse von "Fehlerfunktion" erbt und somit statt "Fehlerfunktion" in "Evoopt" benutzt werden kann.
  • Erst dann schreiben Sie die Klasse "Simulator", die dann statt "ZahlenpaarRaten" in "Evoopt" hineingehangen wird.
  • Ziel ist also C und D der Simulation gegenüber einem angenommenen realen System, das hier aber auch nur simuliert wird, mit Hilfe des evolutionären Algorithmus zu finden.
  • Versuchen Sie dort, wo diese Aufgabenbeschreibung nicht lückenlos alles vorgibt, selber Annahmen zu treffen, die zu einer funktionierenden Lösung führen.


evoopt004_musterloesung.zip - Musterlösung (...wird in der Vorlesung dargestellt.)