|
|
Lineare Optimierung - interne Variable für Nebenbedingung |
|
Demian |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 16.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.02.2009, 13:54
Titel: Lineare Optimierung - interne Variable für Nebenbedingung
|
|
Hallo,
ich habe folgendes Problem:
Matlab verlangt für die lineare Optimierung folgende Form der Nebenbedingung:
[A]* (x) <= (b) , wobei x: Entscheidungsvariable der Zielfunktion, b: Restriktion ist
Ist es möglich, interne Variablen zu definieren, die nur einen Teil der Zielfunktionsvariablen enthalten?
Bsp.: [A] * (xa;xb) <= (b) mit Zielfunktionsvariablen (x1,...x6)
und xa= x1+x2+x3 und xb=x4+x5+x6 ?
Danke und Gruß
|
|
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 16.02.2009, 14:44
Titel:
|
|
Hallo Demian,
ja, das ist gewiss möglich. Schreib mal die genauen Nebenbedingungen, die Du modellieren möchtest, dann bringen wir das zusammen in Matlab-Notation.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Demian |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 16.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.02.2009, 17:32
Titel:
|
|
Hi,danke für die schnelle Antwort.
Also die Zielfunktion lautet:
f=c1*x1+c2*x2 + c3*x3 + c4*x4 .... mit x als Entscheidungsvariable
nun muss die Nebenbedingung der Form A * x >= b sein,
wobei die Elemente von
A =
[ A11, A12
A21, A22]
Die Nebenbedingungen in ausgeschriebener Form:
A11 * (x1+x2) + A12 * (x3+x4) <= b1
A21 * (x1+x2) + A22 * (x3+x4) <= b2
Ist es verständlich, was ich meine? Ich will eine innere Verrechnung der Entscheidungsvariablen über eine Variable oder ähnliches.
dank dir!
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 16.02.2009, 17:44
Titel:
|
|
Hallo Demian,
wie wäre es mit:
Dann entspricht A*x <= b genau Deinen Nebenbedingungen.
Herzliche Grüße
Bijick
P.S. A*x >= b erreicht man mittles -A*x <= -b, falls das nicht nur ein Tippfehler in Deinem Beitrag war.
_________________
>> why
|
|
|
Demian |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 16.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.02.2009, 17:49
Titel:
|
|
Hallo Bijick,
die Möglichkeit hatte ich mir überlegt. Da Grundmatrix A recht groß ist und eine Menge an Entscheidungsvariablen vorliegen, wird die Matrix dann gewaltig groß und unüberschaubar.
Siehst du da eine andere Lösung?
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 16.02.2009, 18:17
Titel:
|
|
Hallo Demian,
in der linearen Optimierung sind die Werkzeuge sehr mächtig, wenn man Ihnen die stark standardisierten Probleme in der Form übergibt, wie sie erwartet werden. Wenn man am Format herumtrickst, verschlechtert sich die Performance immer eklatant. Für die Komplexität des Programms ist eine Zusammenlegung der Variablen "unüberschaubarer" als die Vergrößerung der Matrix, da sie nur von der Variablenzahl und der Zahl der Nebenbedingungen abhängt.
Wenn es nur um die Übersichtlichkeit im Code geht, kann man sicher mit
für eine Vereinfachung sorgen.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Demian |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 16.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.02.2009, 18:26
Titel:
|
|
mmm, hat Matlab irgendwelche Grenzen, was die Größe der Matrix in der Nebenbedingung angeht?
Ich habe mein Problem nun grob überschlagen und aus der [364x54]-Matrix würde eine [364x 20.000]-Matrix werden.
Ich will ja nichts anderes, als beispielsweise die Summe der ersten 20 Entscheidungsvariablen nehmen und mit der ersten Spalte der Matrix multiplizieren, dann mit die nächsten 20 mit der 2. Spalte, usw.
Kenne mich mit Matlab nicht allzusehr aus, so dass ich letztendlich deinen Vorschlag übernehmen muss, es seid denn, es existiert noch eine einfachere Lösung
Viele Grüße,
Demian
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 16.02.2009, 19:24
Titel:
|
|
Hallo Demian,
Eine Idee ist mir noch gekommen. Du könntest Schlupfvariablen y einführen, für die dann gelten muss:
x1 + x2 + ... + x20 - y1 = 0
x21 + x22 + ... + x40 - y2 = 0
usw.
und
A11*y1 + A12*y2 + ... <= b1
Damit hättest Du Deine 54 Ungleichungsrestriktionen, aber zusätzlich eben die ganzen Gleichheitsrestriktionen und nochmal zusätzliche Variablen. Je nach Dimension kann das sinnvoll sein. Die y müssen dann auch in die Zielfunktion mit Koeffizient Null.
Hilft Dir das weiter? Hat allerdings nichts mit Matlab zu tun, sondern ändert die mathematische Problemformulierung.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Demian |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 16.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.02.2009, 19:35
Titel:
|
|
Vielen Dank, du hast recht! Das ist eine rein mathematische Formulierung! Ich werde es mal ausprobieren!
Danke nochmal
|
|
|
Demian |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 16.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.02.2009, 10:17
Titel:
|
|
Supi!
Hat funktioniert! Vielen Dank!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|