Gleichzeitige Maximierung zweier Funktionen ohne verfügbare Ableitungen

8

Ich habe zwei Variablen kund tals Funktionen von zwei anderen Variablen p1und p2. Ich kenne auch ihre Maximalwerte. Ich habe keinen analytischen Ausdruck dafür. Ich möchte die Werte von kund tfinden, 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 * t0oder das Produkt der Quadrate k0^2 * t0^2oder eine andere Beziehung der beiden zu überprüfen .

Ist das effizient und welchen Weg?

Vielen Dank.

Christian Clason
quelle
1
Könnten Sie etwas genauer sagen, wonach Sie suchen? Möchten Sie finden p1und p2so , dass kund tzu erreichen (so nah wie möglich) ihre Maximalwerte? Ich gehe davon aus, dass Sie eine Funktion haben, die bei p1und p2den Wert von kund zurückgibt t, aber keine Informationen zu den Ableitungen von kund tin Bezug auf p1und p2?
Christian Clason
@ChristianClason ja, du verstehst es richtig. Ich kann die Derivate nicht bekommen, und im Allgemeinen sind keine Analgetika verfügbar.
Und wissen Sie, ob das Maximum von kund tan demselben Punkt erreicht wird (den Sie zu finden versuchen), oder suchen Sie einen Kompromiss?
Christian Clason
@ChristianClason Ich gehe (und sicher) davon aus, dass die Maximalwerte nicht am selben Punkt liegen. Ich suche einen Kompromiss. Aber ich kann nicht sagen, auf welche Weise - wahrscheinlich kann ich die Produkte oder die Summen der Werte vergleichen ...

Antworten:

14

Hier gibt es zwei Probleme:

  1. 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)f1f2

    F(p1,p2)=(f1(p1,p2)K)2+(f2(p1,p2)T)2,
    KTkbzw. . Andernfalls würden Sie vor jedem Begriff ein entsprechendes Gewicht hinzufügen. (Wenn die nicht bekannt , würden Sie stattdessen minimieren .)tf12f22

  2. 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 Modell FF(p1,p2)Fpk=(p1k,p2k)

    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 vondkpk+1=pk+dkϵ>0
    gk=(g1,g2)T,gi=F(pk+ϵei)F(pkϵei)2ϵ
    e1=(1,0)Te2=(0,1)T
    Hk=(h11h12h21h22),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/3u1016

    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

Christian Clason
quelle
Vielen Dank für die tolle Antwort! Es ist wirklich hilfreich, obwohl das Thema für mich ziemlich kompliziert ist. Entschuldigung, mein Ruf ist zu niedrig, ich kann nicht für Ihre Antwort stimmen.
@AlexPi Keine Sorge, ich bin froh, dass die Antwort hilfreich ist. Und das Thema ist in der Tat kompliziert (sonst wären Mathematiker arbeitslos :)). Wenn Sie Zugriff auf die Optimization Toolbox von Matlab haben, können Sie versuchen, Ihr einzugeben (das eine ähnliche Methode wie oben verwendet), um zu sehen, was passiert. Ffminunc
Christian Clason
2
@AlexPi: nehmen Sie nicht zu klein ist , oder Sie werden Probleme der numerischen Stabilität führen. eps
Arnold Neumaier
@ArnoldNeumaier: Guter Punkt. Ich habe einige Anmerkungen zu diesem Thema hinzugefügt.
Christian Clason
1
@ChristianClason Ich denke, der zweite Term in Ihrem h_ij sollte F sein (p ^ k + \ epsilon * e_i).
Suzie
2

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+atakta

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).

Godric Seer
quelle