|
|
| Johnny5555 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.12.2011, 23:12
Titel: Maximierungsproblem
|
 |
| |
 |
|
Hi!
Bin ziemlicher Neuling beim Optimieren mit Matlab. Hab aber bis jetzt noch keine wirklich aufschlussreichen Tutorials zum Thema gefunden, deshalb muss ich euch belästigen...
Im Prinzip ist mein Problem relativ simpel. Ich möchte eine stinknormale Gewinnmaximierung durchführen. Dafür habe ich eine Art "reduzierte Kosten"-Vektor.
Beispiel:
heißt in dem Beispiel die Elemente < 0 des Vektors A sind "potentielle Kunden" des Produktes. Gehen wir davon aus, dass in diesem Moment der Preis des Produktes noch 0 Geldeinheiten beträgt. Erhöhe ich jetzt beispielsweise den Preis um 2 Geldeinheiten würden 2 Kunden das Produkt nicht mehr kaufen. Da der Vektor A jetzt wie folgt aussehen würde:
Ich habe jetzt also nur noch 3 anstatt 5 potentielle Kunden.
Hier hat sich nun logischerweise der Gewinn vom Unternehmen gesteigert, denn vorher war bei einem Preis von 0 Geldheiten der Gewinn:
0*5 = 0
und danach mit einem Preis von 2 Geldeinheiten:
2*3 = 6
Also in der Theorie ganz logisch ... bloß leider bekomme ich dieses einfache Problem nicht in Matlab umgesetzt Hat vielleicht jemand einen kleinen Tipp oder einen guten Link für mich
MfG
Johnny
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.12.2011, 10:17
Titel:
|
 |
Hallo,
interessantes Problem
Bei Optimierungsproblemen musst du zunächst die Zielfunktion aufstellen.
Wenn ich dich richtig verstehe, wäre eine mögliche Formulierung in MATLAB: maximiere
Eine Visualisierung des Problems inkl. "Brute Force"-Lösung wäre also
Wenn du das als Minimierungsproblem mit der Optimization Toolbox umsetzen willst, musst du aufpassen, da:
- dieses Problem unstetig ist und die meisten Algorithmen auf der Annahme beruhen, dass die Zielfunktion stetig und differenzierbar ist.
- du den Produktpreis wahrscheinlich nicht kontinuierlich variieren kannst, sondern nur in Schritten von 0.01
Nun ist es eine Frage, wie lang dein echter Vektor A ist. Ich habe mal damit rumgespielt und bekomme selbst bei 1 Million Kunden noch innerhalb von < 1,5 Sekunden ein Ergebnis.
Grüße,
Harald
|
|
|
|
| Johnny5555 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.12.2011, 10:46
Titel:
|
 |
Guten Morgen Harald!
Danke für diese elegante Lösung! Hatte jetzt schon angefangen mich in die Optimization Toolbox einzulesen. Aber wie du schon erwähnt hattest, war dort auch meine Befürchtung, dass eventuell kein passender Solver zur Verfügung stehen würde.
Aber mit dieser Lösung ja völling unnötig sich Sorgen zu machen
Klappt wirklich wunderbar und ist ziemlich flott! Die Länge meines eigentlichen Vektors ist 10000. Da gibt es keine Probleme.
Nochmals vielen Dank!
MfG
Johnny
|
|
|
|
|
|
|
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 - 2025
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.
|
|