Programmteil-Eingabe

 
  • In den Formularen der restringierten Minimierung von OptiWWW können Sie die zu minimierende Funktion definieren.
  • Es sind schon Beispiele in den Eingabeformularen vorgegeben, so daß Sie diese als Vorlage benutzen und entsprechend Ihrem Problem modifizieren können.
  • Die genaue Beschreibung der Eingabeform finden Sie eingeteilt nachfolgend in den Abschnitten Variablen und Parameter, Funktionsbezeichung, Fortranbefehle sowie ein Beispiel zu der Implementierung.
 

Variablen und Parameter

 
  • Als Variablennamen sind vorgesehen: x(j), j=1,...,n, wobei n die Dimension ist.
  • Außerdem können Sie Hilfsgrößen x1,....,x4 (nicht notwendig gleich x(1) usw), f1,f2,f3,f4,f5,f6,h,sum und den Vektor z(1),...,z(100)
  • sowie die Integer i,j,k
  • und die Booleans bool1, bool2, bool3 verwenden.
  • Desweiteren stehen Ihnen die Konstanten pi (wirklich pi), sqrt2=wurzel(2) und e1=exp(1) zur Verfügung.
  • Eigene Variablen können nicht definiert werden.
 

Funktionsbezeichungen

 
  • Die zu minimierende Funktion ist in der Fortran-Spezifikation mit FX zu bezeichnen.
 

Fortranbefehle

 
  • Die benutzte Programmiersprache ist f77 mit dem milstd 1753, das bedeutet, daß die übliche FORTRAN-Fixed Form eingehalten werden muß
    1. Enthät die erste Spalte einer Zeile ein Alpha-Zeichen, so ist sie als Kommentarzeile zu lesen
    2. Die Spalten 1 bis 5 können auch eine (im Programmtext jeweils eindeutige) positive ganze Zahl enthalten , die dann als ''Label'' dient, d.h. Sie können diese Anweisungszeile direkt mit einem ''goto'' ansteuern.
    3. ein Zeichen ungleich blank (Zwischenraum) in Spalte 6 kennzeichnet die Zeile als Fortsetzungszeile, Anweisungen können sich also über viele Zeilen erstrecken.
    4. Die Länge einer Zeile ist auf 72 Zeichen beschränkt. Das ist hier aber fest eingebaut.
    5. Erlaubt und empfehlenswert ist die Benutzung von modernen Schleifen
      DO i= ,, ''i von ... bis .. ''

      ENDDO
      DO WHILE ( )

      ENDDO
    6. Wenn Sie label für do-loops oder goto verwenden, müssen diese grösser als 1500 und kleiner als 10000 sein, weil Ihr Text in ein bestehendes Programm einkopiert wird.
 

Beispiel

 
  • einer Funktionsimplementierung:
    FX=X(1)*X(2)+X(3)*X(4)+
    * X(5)**2
 

Zurück zur Optimierung:

 
 
Back to the top!

25.11.2010