WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Optimierung mit GA-Toolbox, Problem: integer Variablen

 

jumpmen
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 03.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.04.2009, 11:37     Titel: Optimierung mit GA-Toolbox, Problem: integer Variablen
  Antworten mit Zitat      
Hallo zusammen,

ich nutze derzeit für ein Optmierungsproblem die GA-Toolbox und bin eigentlich ganz zufrieden damit.
Das Problem welches ich nun habe, ist das für eine Erweiterung der Optimierung es nötig wäre einen der zu variierenden Werte (also die independent variables) nur ganzzahlig zu variieren. Der zulässigee Wertebereich ist also nur vom Typ integer. Für die restlichen Variablen sind auch real Werte zulässig.

Wie kann ich das realsieren? Im Moment sehe ich dafür keine Lösung....
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2009, 15:59     Titel:
  Antworten mit Zitat      
Hallo,

dazu müsste man eigene creation, mutation und crossover-Funktionen verwenden. Hier ein Beispiel aus der Finanzwelt, das aber auch auf andere Bereiche übertragbar ist:

http://www.mathworks.com/company/ev.....amp;p1=56449&p2=56450

Die Beispieldateien dazu:
http://www.mathworks.com/matlabcentral/fileexchange/18126

Ich hoffe, das hilft weiter.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
jumpmen
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 03.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2009, 17:14     Titel:
  Antworten mit Zitat      
hmm... hatte gehofft da exisiert wo noch ne versteckte fertige Option....
klar das das funktioniert wenn ich die Verfahren komplett selber schreibe.

nur besteht meine Aufgabe darin, die algorithmische Eignung für ein bestimmtes Problem zu ermitteln. Daher war es schön auf die bereits fertigen Routinen zurückgreifen zu können. Die müßte ich ja alle dann ändern damit ich die dann alle nochmal testen kann... schade... wird wohl doch nen Stück mehr Arbeit...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2009, 17:25     Titel:
  Antworten mit Zitat      
Eine fertige Lösung gibt es leider nicht.
Sind die Integer in einem kleinen Bereich?

Empfehlung: wenn die anderen Variablen reellwertig sind, sie in den selbst geschriebenen Funktionen an eine der Standardfunktionen "durchleiten" und nur die eine Integer-Variable separat ändern.
Private Nachricht senden Benutzer-Profile anzeigen
 
jumpmen
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 03.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2009, 17:33     Titel:
  Antworten mit Zitat      
teste zur Zeit ne kleine Probleminstanz. Zur Zeit bräuchte ich ne Intervall von 1-5.
über 100 selbst bei größeren Modelln wird's wohl nicht kommen...

warum? welche Möglichkeiten bringt mir das?

das mit dem Durchleiten ist keine schlechte Idee... muß ich mal durchdenken
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2009, 18:03     Titel:
  Antworten mit Zitat      
Vorschlag für 1-5:
Creation function: ceil(5*rand(...))
Mutation function: +/- 1 [kombinieren mit min/max, um nicht aus dem Bereich herauszufallen]
Crossover function: den Eintrag eines der "parents" übernehmen.

Bei größeren Bereichen muss man sich doch etwas mehr Gedanken machen, wie stark man die Variable ändern will. Und das lässt sich dann wohl nur durch Testen herausfinden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button 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.