Annehmen
wo eine symmetrische Matrix und Reshapes in einen eindimensionalen Vektor mit Einträge.
Der Teil des obigen Programms, der mir Probleme bereitet, ist \ max \ {⋅, ⋅ \} . (Das Einschränken von Lösungen auf nichtnegative symmetrische Matrizen scheint unkompliziert zu sein.)
Vielen Dank im Voraus für jede Hilfe oder Hinweise!
Antworten:
Bearbeiten: Lassen Sie uns diese Erklärung noch einmal versuchen, diesmal wenn ich wacher bin.
Es gibt drei große Probleme mit der Formulierung (in der Reihenfolge des Schweregrads):
Keine offensichtliche glatte / konvexe / lineare Neuformulierung
Zunächst einmal gibt es keine offensichtliche Neuformulierung jeder Einschränkung. Arons Vorschlag gilt für die allgemeinere Einschränkung , bei der eine Einschränkung wie durch die folgenden zwei äquivalenten Ungleichungen ersetzt wird:Die Neuformulierung ist nicht ideal. Jede Bedingung wurde durch lineare Bedingungen ersetzt, aber sie konvertiert ein nicht glattes nichtlineares Programm in ein lineares Programm, das um Größenordnungen schneller zu lösen ist.min U i j ≤ min k { U i k , U k j } U i j ≤ U i k ,max min
Wolfgang weist darauf hin, dass es möglich sein könnte (er schließt keinen Beweis ein), die Einschränkungen durch Hinzufügen von Slack-Variablen linear und glatt umzuformulieren. Für jede Einschränkung in der ursprünglichen Formulierung muss eine Slack-Variable hinzugefügt werden. Dies bedeutet, dass wir in dieser Neuformulierung Einschränkungen hinzufügen . Außerdem wird jede Einschränkung durch (oder so) lineare Einschränkungen ersetzt. Der wahre Mörder ist, dass die Nichtglätte von den Randbedingungen zum Ziel verschoben wird, sodass die Formulierung von Wolfgang immer noch ein nichtglattes nichtlineares Programm ergibt.max n 2 max 2 nmax max n2 max 2n
Es gibt keine Standard-Neuformulierung von Einschränkungen in einem mir bekannten Minimierungsproblem, nachdem ich mein Lehrbuch zur linearen Programmierung überprüft und eine Literaturrecherche durchgeführt habe. Dies bedeutet nicht, dass eine solche Neuformulierung nicht existiert. es bedeutet nur, dass ich nicht darauf gestoßen bin. Wenn ich raten müsste, würde ich sagen, dass es keine LP-Formulierung gibt.max
Nichtglätte
Ungleichmäßigkeit bedeutet in diesem Zusammenhang, dass mindestens eine der Funktionen in der Formulierung (das Ziel oder die Nebenbedingungen) nicht zweimal kontinuierlich differenzierbar ist. Die nicht glatten Funktionen in dieser Formulierung sind die Funktionen.max
Nichtglätte ist ein großes Problem, weil:
Da Funktionen nicht einmal kontinuierlich differenzierbar sind, können Sie auch herkömmliche Gradientenabstiegsmethoden nicht ohne Schwierigkeiten anwenden. Nicht glatte nichtlineare Programmieralgorithmen sind langsamer als ihre glatten Gegenstücke.max
Mögliche Nichtkonvexität
Ihr Problem könnte nicht konvex sein, da in "Standardform" für nichtlineare Programme (dh Ausdrücken aller Einschränkungen in der Form ) die lästigen Einschränkungen in Ihrem Formulierung sindg(x)≤0
Diese Funktionen sind konkav.
Beweis: In diesem Fall sind die Funktionen und beide konvex. Die Summe der konvexen Funktionen ist konvex, und das Multiplizieren einer konvexen Funktion mit -1 ergibt eine konkave Funktion. (QED.) max k { U i k , U k j }−Uij maxk{Uik,Ukj}
Nur weil nicht konvex ist, heißt das nicht, dass Ihr Problem tatsächlich nicht konvex ist. Wenn Sie jedoch versuchen, ein Optimierungsproblem mit globaler Optimalität zu lösen, können Sie nur garantieren, dass ein konvexer Optimierungslöser dies tut Geben Sie ein globales Optimum zurück, wenn Ihr Problem konvex ist. Wenn Sie wirklich ein globales Optimum wünschen, müssen Sie feststellen, ob Ihre realisierbare Menge konvex ist (oder nicht). Fehlen solche Informationen, müssen Sie davon ausgehen, dass Ihr Problem möglicherweise nicht konvex ist, und Sie müssen Algorithmen verwenden, die nicht auf Konvexitätsinformationen beruhen. Selbst dann sind die Unstetigkeit und das Fehlen einer guten Neuformulierung viel größere Probleme.g
Möglichkeiten zur Lösung des Problems
Geben Sie sich damit zufrieden, eine mögliche Lösung zu finden. In diesem Fall tue, was Aron gesagt hat, und ersetze durch die dann unter Verwendung einer Standard-LP-Neuformulierung als zwei separate Ungleichungen ausgedrückt werden können. Das resultierende Problem ist eine LP-Einschränkung des Problems, das Sie lösen möchten. es sollte sich relativ zu Ihrem ursprünglichen Problem schnell lösen lassen, und wenn es eine Lösung hat, ist diese Lösung für Ihr ursprüngliches Problem durchführbar, und sein Zielfunktionswert ist eine Untergrenze für den optimalen Zielfunktionswert Ihres ursprünglichen Problems.U i j ≤ min k { U i k , U k j } ,
Versuchen Sie Ihr Glück mit Ihrer Formulierung, so wie sie mit einem Bundle-Löser für nicht reibungslose Programme ist. Ich habe nicht viel Erfahrung mit diesen Arten von Lösern. (Ein Kollege von mir verwendet sie für seine Recherchen.) Sie sind wahrscheinlich langsam, da sie keine abgeleiteten Informationen verwenden können. (Ich denke, sie verwenden stattdessen Subgradienten- oder Clarkes allgemeine Gradienteninformationen.) Es ist auch unwahrscheinlich, dass Sie große Probleminstanzen mit einem Bundle-Solver lösen können.
quelle
Die Lösung für Ihre Frage lautet .- ∞
Sei Da und ein Randbedingung ist linear in , jeden positiven multiple von erfüllt die Einschränkungen. Daher ist .A⋅vec(U)Ut±UminV(A⋅vec(V))≤mint(A⋅vec(tU))=-∞
quelle
Um die Bedingungen zu formulieren , erstellen wir Binärvariablen , , . Sei die Grenze der Variablen , dann müssen wir nur die folgenden Bedingungen hinzufügen:n b i ∈ { 0 , 1 } 1 ≤ i ≤ n M ff≤max{f1,f2,...,fn} n bi∈{0,1} 1≤i≤n M f
1)f≤fi+(1−bi)M,∀i
2)∑ibi=1
Normalerweise setze wenn wir den Wert von schätzen können .f iM:=maxifi−minifi fi
quelle
Können Sie keine Slack-Variable einführen? Um die Bedingung schreiben Sie sie wie folgt: Dies hat eine unmögliche Lösung in Bezug auf das ursprüngliche Problem, wenn Sie s = unendlich wählen. Aber ich bin mir ziemlich sicher, dass Sie zeigen können, wenn Sie der einen Ausdruck hinzufügen (dh Sie möchten, dass so klein ist) wie möglich, vorzugsweise Null) und ausreichend groß ist , dann werden Sie eine machbare Lösung zurück , wenn das ursprüngliche Problem als unendlich machbare Lösungen mit objektivem Wert weniger hat.
(Ein Beweis würde , dass, wenn und wenn , die Lösung nicht realisierbar ist, mit anderen Worten, ein Maß für die Unrealisierbarkeit bezüglich Wenn das Problem stabil ist, sollte es eine endliche Verbesserung des objektiven Funktionswerts für eine endliche Verletzung der Durchführbarkeit geben. Wenn Sie c größer als das Verhältnis zwischen Änderung des objektiven Werts und Verletzung der Durchführbarkeit wählen, dann die modifizierte Zielfunktion würde für Probleme wachsen , die in die unmögliche Region gehen.)si>=max(ai) xi=si si−max(ai)
quelle
Ich kann den Kommentarbutton nicht finden ...
Wie Geoff betonte, handelt es sich um eine konkave Einschränkungsfunktion. Es spielt jedoch keine Rolle, ob die Funktion selbst konkav ist oder nicht. Konkave Funktionen unter linearen Bedingungen können konvexe Mengen sein (z. B. ).l o g( x ) < 5
Wenn es sich um eine konvexe Menge handelt, können Sie für Ihre Zielfunktion einen Gradientenabstieg durchführen, indem Sie so etwas wie Dykstra's_projection_algorithm verwenden , um zurück auf den Raum der Abhängigkeiten zu projizieren.
quelle
quelle