Ich habe zwei Variablen k
und t
als Funktionen von zwei anderen Variablen p1
und p2
. Ich kenne auch ihre Maximalwerte. Ich habe keinen analytischen Ausdruck dafür. Ich möchte die Werte von k
und t
finden, die ihren Maximalwerten am nächsten kommen.
Gibt es eine Möglichkeit, das k = f1(p1, p2)
und zu optimieren t = f2(p1, p2)
?
Ich kann versuchen, das Produkt k0 * t0
oder das Produkt der Quadrate k0^2 * t0^2
oder eine andere Beziehung der beiden zu überprüfen .
Ist das effizient und welchen Weg?
Vielen Dank.
optimization
Christian Clason
quelle
quelle
p1
undp2
so , dassk
undt
zu erreichen (so nah wie möglich) ihre Maximalwerte? Ich gehe davon aus, dass Sie eine Funktion haben, die beip1
undp2
den Wert vonk
und zurückgibtt
, aber keine Informationen zu den Ableitungen vonk
undt
in Bezug aufp1
undp2
?k
undt
an demselben Punkt erreicht wird (den Sie zu finden versuchen), oder suchen Sie einen Kompromiss?Antworten:
Hier gibt es zwei Probleme:
Ihr Optimierungsproblem hat zwei konkurrierende Ziele: Maximieren von und Maximieren von . Dies wird als Optimierung mit mehreren Zielen (oder mehreren Kriterien ) bezeichnet, und solche Probleme haben eine unendliche Anzahl von Lösungen, die jeweils auf einer spezifischen Wahl des relativen Gewichts der Ziele basieren (dh ist es wichtiger, dass nahe beieinander liegt auf den Maximalwert als für ?). Wenn beide für Sie die gleiche Bedeutung haben, können Sie einfach die Funktion minimieren wobei und sind die bekannten Maximalwerte vonk=f1(p1,p2) t=f2(p1,p2) f1 f2 F(p1,p2)=(f1(p1,p2)−K)2+(f2(p1,p2)−T)2, K T k bzw. . Andernfalls würden Sie vor jedem Begriff ein entsprechendes Gewicht hinzufügen. (Wenn die nicht bekannt , würden Sie stattdessen minimieren .)t −f21−f22
Um einen Minimierer von , können Sie nur Funktionswerte von an einem bestimmten Punkt . Dies ist als derivatfreie Optimierung bekannt. siehe z. B. Einführung in die derivatfreie Optimierung von Conn, Scheinberg und Vicente oder Kapitel 9 in Numerische Optimierung . Die meisten von ihnen verwenden ungefähre Ableitungen, die auf endlichen Differenzen basieren, oder Ableitungen von Interpolationsfunktionen. Da eine Funktion von nur zwei Variablen ist, ist es nicht zu teuer (oder instabil), endliche Differenznäherungen des vollständigen Hessischen zu erstellen. Die Idee ist folgende: Wenn ein Punkt , konstruieren Sie ein lokales quadratisches ModellF F (p1,p2) F pk=(pk1,pk2) mk(pk+d)=F(pk)+(gk)Td+12dTHkd,
berechne seinen Minimierer und setze . Hier für ein kleines (aber nicht zu kleines, siehe unten) ,
mit und ist der ungefähre Gradient und
ist eine Taylor-Näherung des Hessischen. Dies erfordert die Bewertung vondk pk+1=pk+dk ϵ>0 gk=(g1,g2)T,gi=F(pk+ϵei)−F(pk−ϵei)2ϵ e1=(1,0)T e2=(0,1)T Hk=(h11h21h12h22),hij=F(pk+ϵei+ϵej)−F(pk+ϵei)−F(pk+ϵej)+F(pk)ϵ2 F an 5 zusätzlichen Punkten in jeder Iteration.
Ein wichtiges Problem bei jeder Finite-Differenzen-Approximation ist die Wahl von : Wenn es zu groß ist, haben Sie eine schlechte Approximation der Ableitung; Wenn es zu klein ist, besteht die Gefahr einer Stornierung und damit einer numerischen Instabilität. Eine gute Faustregel ist, , wobei die Einheitsrundung ist (ungefähr für doppelte Genauigkeit).ϵ ϵ=u1/3 u 10−16
In der Praxis möchten Sie dies mit einer Trust-Region-Strategie kombinieren, bei der Sie benötigen, um in einen Ball zu gelangen, dessen Radius Sie während der Iteration anpassen (siehe die oben genannten Bücher).dk
Einen Vergleich von Algorithmen und Implementierungen zur derivatfreien Optimierung finden Sie auf dieser Webseite , die dem Artikel "Derivatfreie Optimierung: Ein Überblick über Algorithmen und ein Vergleich von Softwareimplementierungen" von Luis Miguel Rios und Nikolaos V. Sahinidis beigefügt ist
quelle
fminunc
Bei der Mehrzieloptimierung gibt es viele Möglichkeiten, die Zielvariablen in Ihrer Analyse zu kombinieren / zu vergleichen. Das Problem ist, dass es keinen "richtigen" Weg gibt, dies zu tun. Es hängt ganz davon ab, was das Problem tatsächlich ist und was die Variablen darstellen. Ihre beste Wette ist wahrscheinlich, etwas wie zu maximieren, wobei ein beliebiger positiver Wert ist. Wenn Sie eine Antwort erhalten haben, prüfen Sie, ob Ihnen das resultierende und gefällt , und ändern Sie nach Bedarf, bis Sie eine Lösung gefunden haben, mit der Sie zufrieden sind.a k t ak+a∗t a k t a
Was die eigentliche Optimierung betrifft, ist es nicht das Ende der Welt, keinen analytischen Ausdruck für die Funktionen zu haben, aber keine Informationen zu haben, wird es schwierig machen. Wenn Sie ein gewisses Maß an Glätte / Kontinuität annehmen können, auch wenn es nur stückweise ist, können Sie einen Wurzelfindungsalgorithmus für eine abgeleitete Näherung verwenden, um lokale Maxima zu finden (es gibt viel ausgefeiltere Methoden als diese, aber ich bin nicht vertraut damit andere Leute hier könnten Sie wahrscheinlich in die richtige Richtung weisen). Wenn Sie Konvexität herstellen können, können Sie diese auf globale Optimalität ausweiten.
Eine echte Black-Box-Mehrzieloptimierung ist nicht gerade ein einfaches Problem, aber ein paar Annahmen und ein iterativer Prozess mit einer objektiven Reduzierung sollten Ihnen eine akzeptable Antwort geben (vorausgesetzt, es gibt eine).
quelle