Matroids Matheplanet Forum Index
Moderiert von matroid
Mathematik » Numerik & Optimierung » Zielfunktion eines Optimierungsproblems mit "Positivteil"
Druckversion
Druckversion
Antworten
Antworten
Autor
Universität/Hochschule Zielfunktion eines Optimierungsproblems mit "Positivteil"
Angie93
Junior Letzter Besuch: im letzten Quartal
Dabei seit: 06.09.2019
Mitteilungen: 5
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2020-05-27


Hallo zusammen,

ich möchte ein Optimierungsproblem in Matlab programmieren und dazu benötige ich die Zielfunktion in Standardform. Allerdings sind dabei die Variablen in der "Positivteil"-Funktion \( (\cdot)^+ \) enthalten und außerdem gibt es noch Beträge.

Das sieht dann in etwa so aus:
\[
\underset{z_1,z_2}{\min} |a_1(z_1-b_1)^+ +a_2(z_2-b_1)^+-c_1|+|a_1(z_1-b_2)^+ +a_2(z_2-b_2)^+-c_2|
\]
\(a_1,a_2,b_1,b_2,c_1,c_2\) sind dabei einfach reelle Zahlen. Ich wollte nur noch deutlich machen, dass diese sich an den entsprechenden Stellen widerholen, falls das helfen sollte.

Wie bringe ich das jetzt in die Form

\[
\underset{z_1,z_2}{\min} \lambda_1 z_1 + \lambda_2 z_2
\]
so dass ich das in eine Matlab Funktion eingeben kann?

Vielen lieben Dank für eure Hilfe!

LG
Angela



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Delastelle
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 17.11.2006
Mitteilungen: 1498
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2020-05-28


Hallo Angie93!

Man kann eine reelle Zahl durch 2 positive Zahlen ausdrücken:
z = a+ - a-
mit a+, a- > 0

Und Beträge kann man auflösen:
|x| wird zu -x und x (2 Gleichungen bilden)

(Ich hoffe, das hilft ein bisschen...)

Viele Grüße
Ronald



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Goswin
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.09.2008
Mitteilungen: 1485
Aus: Chile, Ulm
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, eingetragen 2020-05-28


2020-05-27 21:47 - Angie93 im Themenstart schreibt:
Ich möchte ein Optimierungsproblem in Matlab programmieren und dazu benötige ich die Zielfunktion in Standardform.
[...]
Wie bringe ich [meine Zielfunktion] jetzt in die Form
\[
\underset{z_1,z_2}{\min} \lambda_1 z_1 + \lambda_2 z_2
\]

In welche "Standardform" soll denn deine Aufgabe gebracht werden? Lineare Optimierung, ganzzahlig lineare Optimierung, oder sonst etwas?  (So ohne Nebenbedingungen geht dein Vorhaben sicher nicht, da eine nichtkonstante lineare Funktion nie ein Minimum hat)


-----------------
/Kyristo meu kimgei kom nhi cumgen ta Gendmogen.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Angie93
Junior Letzter Besuch: im letzten Quartal
Dabei seit: 06.09.2019
Mitteilungen: 5
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2020-05-28


Hi zusammen,

vielen Dank für die Antworten. Leider stehe ich glaube ich trotzdem auf dem Schlauch. Tut mir leid, dass ich mich da etwas doof anstelle.

Ich füge jetzt also zu den \( (\cdot)^+ \) noch jeweils ein \( (\cdot)^- \) ein? Mit Vorfaktor ...?

Und was passiert dann in den Nebenbedingungen?

Und an welcher Stelle soll ich zwei Gleichungen bilden?

Optimierung ist bei mir so eeeeewig her. Damals war das alles irgendwie leichter :D

Zum Optimierungsproblem an sich: Natürlich hat es Nebenbedingungen. Diese sind zum Teil linear und zum Teil quadratisch. Die sind aber klar, wie ich sie umformen muss, da es sehr leichte Bedingungen sind.

\( \lbrace (z_i,q_i)|i=1,\ldots,m\rbrace \) stellt eine Diskretisierung einer Normalverteilung dar. Jetzt soll das erste Lower Partial Moment dem einer Normalverteilung angenähert werden, der Fehler also mimimiert. Insgesamt sieht das Ganze dann so aus:

\[
\begin{array}{rc}
\min & \sum\limits_{i=2}^m\left|\sum\limits_{j=1}^m q_j(z_j-Z_{i-1})^+ -\left( \frac{1}{\sqrt{2\pi}}e^{-\frac{Z_{i-1}^2}{2}}-Z_{i-1}\left(1-\Phi(Z_{i-1})\right)\right)\right|,\\
s.t.& \sum\limits_{i=1}^{m} q_i z_i = 0\\
&\sum\limits_{i=1}^{m} q_i z^2_i = 1\\
&Z_{i-1}\leq z_i \leq Z_i
\end{array}
\] Dabei ist \(m\in \mathbb{N}\) und die \(Z_i\) bilden Intervalle, in denen jeweils die \(z_i\) liegen. Den hinteren Teil kann man für jedes i einfach berechnen, daher habe ich das mal als Parameter beschrieben, um es einfacher verständlich zu machen. Alle Parameter und Variablen sind reelle Zahlen (bis auf m).

Das alles drum rum ist allerdings kein Thema. Ich weiß nur nicht wie ich das Problem jetzt in Matlab programmiere, da das nur mit Zielfunktionen der Form \( \lambda_1 x_1 + \ldots + \lambda_n x_n \) arbeiten kann. Nebenbedingungen kann ich mehr oder weniger beliebig angeben.

Soviel zum Hintergrund ^^

Vielen Dank jedenfalls für eure Hilfe!!

LG



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Delastelle
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 17.11.2006
Mitteilungen: 1498
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, eingetragen 2020-05-29


Hallo Angie93!

Ich muss mich an das Problem erst mal herantasten.
Bisher habe ich ein so geartetes Problem noch nicht gelöst.
(Glaube ich zumindest nach meiner Erinnerung!)

Eventuell kann man die Nebenbedingungen in die Zielfunktion integrieren.
"Barrieremethoden". Und dann ein Abstiegsverfahren (z.B. Gradientenverfahren) benutzen.

Es kann aber sein, dass jemand anderes eine noch bessere Idee zum Lösen hat!

Viele Grüße
Ronald



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Kitaktus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.09.2008
Mitteilungen: 6459
Aus: Niedersachsen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, eingetragen 2020-05-29


Eine etwas brutale Methode wäre folgende:

Man macht eine Fallunterscheidung, ob $z_1\geq b_1$ oder $z_1< b1$ und ob $z_1\geq b_2$ oder $z_1< b2$ ist. Das sind formal vier Fälle, von denen aber einer nicht eintreten kann. Das gleiche macht man für $z_2$. Je nach Fall ersetzte man $(z_i-b_j)^+$ durch $(z_i-b_j)$ oder 0.
Dann unterscheidet man noch die zwei mal zwei Fälle, ob die Terme in den Beträgen negativ oder nicht-negativ sind.
Auf die Weise bekommt man 36 Optimierungsprobleme(*) mit jeweils sechs zusätzlichen Nebenbedingungen. Diese muss man "nur" noch lösen und den besten Wert auswählen.

(*) Je nach Vorzeichen der $a_i$'s und $c_j$'s sind einige Fälle nicht möglich.



Für den Betrag hätte ich auch noch folgenden Ansatz:

$\min |f(x)|$ ist äquivalent zu $\min s$ unter der Nebenbedingung $s\geq f(x)\geq -s$, wobei im ersten Fall über die zulässige Menge $x\in X$ optimiert wird und im zweiten Fall über $(x,s)\in X\times\IR^{\geq 0}$.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Angie93 hat die Antworten auf ihre/seine Frage gesehen.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2020 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]