Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Studierende:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Optimierungsproblem: Prozessverschiebung

 

Yeti11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 17.04.19
Wohnort: ---
Version: 2018b
     Beitrag Verfasst am: 10.05.2019, 16:08     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 20.222
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 10.05.2019, 16:15     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Yeti11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 17.04.19
Wohnort: ---
Version: 2018b
     Beitrag Verfasst am: 10.05.2019, 16:28     Titel:
  Antworten mit Zitat      
Jo schon richtig, ich bin das alles nochmal am durchchecken...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 20.222
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 10.05.2019, 16:34     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Yeti11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 17.04.19
Wohnort: ---
Version: 2018b
     Beitrag Verfasst am: 16.05.2019, 11:53     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 20.222
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 16.05.2019, 18:23     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2019 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.