Penalty- und Barriere-Methode

 
  • Hier steht Ihnen ein Programm für die äussere Penalty-Methode bzw. Barrieremethode mit gemischten Restriktionen zur Verfügung.
  • Es soll also ein Minimierungsproblem der Form
    f(x) = min, h(x)=0, g(x)>=0
    mit der Penalty-Methode bzw. der gemischten Penalty-Barriere-Methode gelöst werden.
  • Hierbei wird eine Funktion phi konstruiert, deren lokale und globale Minima in einer Umgebung des zulässigen Gebietes die lokalen und globalen Lösungen des Problems approximieren. Die Güte der Approximation ist bei einem streng regulären Problem (mit der LICQ-Bedingung, strikter Komplementarität und hinreichender Bedingung zweiter Ordnung) O(1/rho). In anderen Fällen kann die Approximationsgüte wesentlich schlechter sein.
  • phi(x;rho) = f(x)+rho*(||h(x)||2+||g(x)-||2) bzw.
    phi(x;rho) = f(x)+rho*(||h(x)||2)-(1/rho)*sumi log(gi(x))
    Man kann zwischen den beiden Varianten wählen.
  • Hier geht rho gegen unendlich, wenn die Lösung des Ausgangsproblems beliebig genau approximiert werden soll. Numerisch beschränken wir rho auf einen Wert rhomax.
  • phi wird mit dem BFGS-Verfahren minimiert.
  • Der Penaltyparameter rho geht von rhomin bis rhomax.
  • Sie können entweder festvorgegebene Problembeispiele aus der Hock&Schittkowski Sammlung berechnen lassen, oder sie geben selbst ein Optimierungsproblem an.
 

Es gibt zwei unterschiedliche Eingabeseiten: Predefined und Userdefined

Die Eingaben - Predefined Variante

 
  • Als erstes sollten Sie sich aus der Beispielsammlung eine Problemnummer suchen. Die Problemnummer besteht immer aus der Zeichenfolge: hs dann eine Zahl und bei manchen Problemen ein scal (=skaliert). Diese Nummer tragen Sie dann bitte auf der Eingabeseite in das entsprechende Feld ein.
  • Penalty- oder gemischte Barrierefunktion ?
  • Soll der Iterationsverlauf ausgegeben werden ?
  • Es gibt eine Standardparametereinstellung, ( epsx=1.E-5, rhomin=100, rhomax=1.E6 und rhofac=1.5,) aber Sie können diese natürlich auch selbst einstellen:
    1. epsx: Die innere Iteration endet, falls
      ||grad phi|| <= epsx*(1+epsx*|phi|)
      oder
      ||x-xprevious|| <= epsx*(1+||x||).
      Wichtig : epsx > 0 !
    2. rhomin, rhomax: Den minimalen und den maximalen Wert des Penaltyparameters rho.
    3. rhofac: Faktor für die Erhöhung von rho. Wichtig : rhofac > 1 !
    4. Standardstartwert oder eigene Wahl des Startwerts ? Wichtig : die Dimension des Startvektors muß natürlich an das Problem angepaßt sein.
    Die Iteration bezüglich rho wird abgebrochen, wenn die primale und die duale Unzulässigkeit <= epsx sind und der Gradient der Lagrangefunktion in der Norm <= max(epsx,epsmach*100*cond) ist, spätestens aber bei Erreichen von rhomax, was dann als ''Versagen'' interpretiert wird. cond ist dabei eine Schätzung der Konditionszahl der Hessematrix der Penaltyfunktion, die aus der aufdatierten BFGS-Näherung gewonnen wird. Diese Konditionszahl wächst mit rho gegen unendlich unbeschränkt. Die Lagrangemultiplikatoren werden aus den Restriktionswerten nach der Standardformel geschätzt. Eine zweite Schätzung benutzt die Lagrangebedingung mit einem Least Squares Minimierungsansatz für den Gradienten der Lagrangefunktion.
    ||grad(f(x)) - N * lambda||_2 = minlambda
    N =
    Matrix der Gradienten der bindenden Restriktionen in x.
    Dabei werden alle Ungleichungsrestriktionen mit Werten <= epsx als bindend betrachtet und natürlich die Gleichungsrestriktionen.
  • Falls Sie eine graphische Ausgabe der Höhenlinien der Penaltyfunktion bzw. Barrierefunktion wünschen, müssen Sie noch die Koordinaten und das Rechteck, bezüglich derer der Plot erstellt werden soll, angeben. Es gibt dann noch die Wahl, ob diese künstliche Rechenbox an die eventuell im Problem enthaltenen Schrankenrestriktionen angepaßt werden soll.
 

Die Eingaben - Userdefinierte Variante

 
  • Bei dieser Variante braucht das Verfahren die Anzahl n der Variablen der zu minimierenden Funktion fx
  • sowie die Anzahl nh der Gleichungs- und ng der Ungleichungsrestriktionen.
  • Des weiteren können Sie hier die Funktion fx sowie die Gleichungs- hxi und Ungleichungsrestriktionen gxi spezifizieren.
  • Penalty- oder gemischte Barrierefunktion ?
  • Startwert. Wichtig : die Dimension des Startvektors muß natürlich an das Problem angepaßt sein.
  • Soll der Iterationsverlauf ausgegeben werden ?
  • Es gibt eine Standardparametereinstellung, ( epsx=1.E-5, rhomin=100, rhomax=1.E6 und rhofac=1.5,) aber Sie können diese natürlich auch selbst einstellen:
    1. epsx: Die innere Iteration endet, falls
      ||grad phi|| <= epsx*(1+epsx*|phi|)
      oder
      ||x-xprevious|| <= epsx*(1+||x||).
      Wichtig : epsx > 0 !
    2. rhomin, rhomax: Den minimalen und den maximalen Wert des Penaltyparameters rho.
    3. rhofac: Faktor für die Erhöhung von rho. Wichtig : rhofac > 1 !
  • Falls Sie eine graphische Ausgabe der Höhenlinien der Penaltyfunktion bzw. Barrierefunktion wünschen, müssen Sie noch die Koordinaten und das Rechteck, bezüglich denen der Plot erstellt werden soll, angeben. Es gibt dann noch die Wahl, ob diese künstliche Rechenbox an die eventuell im Problem enthaltenen Schrankenrestriktionen angepaßt werden soll. Beim Höhenlinienbild der Barrierefunktion wird außerhalb des zulässigen Bereiches ein sehr grosser Wert als Repräsentant von "unendlich" benutzt.
 

Die Ausgaben

 
  • Ausgegeben wird das Aufwandsprotokoll und die Lösung,
  • Wird das ausführliche Protokoll erwünscht, dann wird in der inneren Iteration, also bei festem rho, die Penalty- bzw. Barrierefunktion, die Norm ihres Gradienten und die Größe der Unzulässigkeit protokolliert. Weil der Penaltyparameter anwächst, wird der Gradient nicht wirklich "klein".
  • eine graphische Darstellung des Iterationsverlaufes
  • und einen Plot mit dem dekadischen Logarithmus der Penalty- bzw. Barrierefunktion und des Penalty- bzw. Barriereterms (psi). Die Sprünge in den Graphen treten an den Stellen auf, an denen rho erhöht wird.
  • Falls Sie dies wollen, wird noch ein Höhenlinienbild der letzten benutzten Penalty- bzw Barrierefunktion erzeugt.
 

Predefinierte Variante

 

Userdefinierte Variante

 
 

Zurück: Restringierte Minimierung

 
Back to the top!

03.02.2009