|
|
Optimierungsproblem: Prozessverschiebung |
|
Yeti11 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 17.04.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2018b
|
|
|
|
|
|
Verfasst am: 10.05.2019, 15:08
Titel:
|
|
Das ist bei dieser Nebenbedingung schon der Fall, das ist das kuriose.
Er soll laut NB genau 5 Prozesse auswählen, wählt aber teilweise 50 Prozesse aus. Je mehr er auswählt desto höher die Leistungskurve und desto höher das erreichte Minimum.
Ich verstehe nicht ganz wieso ga da dann immer mehr Prozesse auswählt, obwohl das gegen die Minimierung ist.
Gerade wenn ich den Zeitraum sehr große wähle und bei nur 5 Prozessen bleibe, ist die Lösung eigentlich trivial:
Die Prozesse können so verteilt werden über den großen Zeitraum, dass die Geräte nie parallel arbeiten und schon hat man das Minimum...stattdessen wählt ga 10,20,30 Prozesse aus und erhöht das Minimum unnötig.
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.05.2019, 15:15
Titel:
|
|
Hallo,
ga ist in der Hinsicht "dumm", dass es keine "trivialen" Lösungen kennt und nur quasi zufällig auf diese stößt.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Yeti11 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 17.04.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2018b
|
|
|
|
|
|
Verfasst am: 10.05.2019, 15:28
Titel:
|
|
Jo schon richtig, ich bin das alles nochmal am durchchecken...
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.05.2019, 15:34
Titel:
|
|
Hallo,
eine Möglichkeit, die ich noch sehe:
selbst die CreationFcn, MutationFcn und CrossOverFcn definieren. Dann kann man dafür sorgen, dass Nebenbedingungen anfangs eingehalten werden und auch eingehalten bleiben.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Yeti11 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 17.04.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2018b
|
|
|
|
|
|
Verfasst am: 16.05.2019, 10:53
Titel:
|
|
|
|
|
ga läuft jetzt mit Nebenbedingungen, dazu waren zwei Maßnahmen nötig:
1. PopulationSize sehr hoch wählen (>500)
2. InitialPopulationMatrix definieren. Also mögliche Konstellationen mit der richtigen Anzahl an Prozessen als Start-Population. Wenn ich das nicht mache, kommt er überhaupt nicht auf die richtige Spur.
Allerdings ist das Ergebnis sehr unbefriedigend. Er verbessert die Ausgangslage etwas, aber ist weit entfernt vom globalen Minimum und rechnet sehr lange.
Und ich bin ja erst beim Minimalbeispiel. Ich fürchte das wird auf lange Sicht zu kompliziert mit ga.
Deshalb noch eine andere Idee mein Problem in ein lineares zu überführen und die Frage ob sich das in Matlab umsetzen lässt?
Meine Zielfunktion lässt sich auch so formulieren:
f = max((P * x - d)*p,0)
Nun könnte ich eine zweite Variable einführen mit zwei Constraints:
f = t * p
t >= P * x - d
t >= 0
dazu die üblichen Constraints für x:
A*x<=b ...
Das wäre dann linear.
Gibt es einen Solver mit dem ich auf diese Weise (oder vielleicht kann mans auch noch anders formulieren?) optimieren kann, also zwei Variablen in den Constraints?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 16.05.2019, 17:23
Titel:
|
|
Hallo,
das geht in die Richtung dessen, was ich zuletzt vorgeschlagen hatte (eine CreateFcn hat einen ähnlichen Sinn wie die InitialPopulationMatrix). Ich würde aber eben noch vorschlagen, eine CreateFcn und eine MutateFcn zu erstellen.
Zitat: |
Dann kann man dafür sorgen, dass Nebenbedingungen anfangs eingehalten werden und auch eingehalten bleiben. |
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
Gehe zu Seite Zurück 1, 2
|
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.
|
|