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

Design-Variablen Genetischer Algorithmus

 

student_2021
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 26.01.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2021, 13:40     Titel: Design-Variablen Genetischer Algorithmus
  Antworten mit Zitat      
Hallo,

ich habe eine Frage zu den Design-Variablen des Genetischen Algorithmus.
In meinem x0 stehen 9 Einträge. Ohne Verwendung von "intCon" werden hier Dezimalzahlen verwendet, mit "intCon" nur ganzzahlige, was sich sehr positiv auf die Berechnungszeit auswirkt.
Nun zu meiner Frage: ich brauche keine Berechnung mit Dezimalzahlen wie 12.01568 oder ähnlich, aber es wäre auch wünschenswert dass nicht nur ganzahlige Werte wie 12 oder 13 verwendet werden.
Gibt es eine Möglichkeit, dem Genetischen Algorithmus zu sagen, dass die Elemente in x0 z.B. in einer Abstufung von 0.25 sein sollen? Heißt er darf nicht nur gannzahlige Werte wählen (12, 13, 14) sondern Dezimalzahlen aber nur innerhalb der Vorgabe (12.25, 12.75, 13.5) usw.

Falls hierzu jemand einen Rat weiß, wäre ich sehr sehr dankbar.

Vielen Dank und viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.458
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2021, 16:42     Titel:
  Antworten mit Zitat      
Hallo,

du kannst Arrays mit den erlaubten Werten erstellen, IntCon setzen und dann die Eingabe als Index verwenden.
Sollen für alle 9 Einträge von x0 die gleichen Werte zulässig sein?

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
 
student_2021
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 26.01.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2021, 17:26     Titel:
  Antworten mit Zitat      
Hallo,

vielen Dank für die Antwort!

Nein, für die 9 Einträge sollen jeweils unterschiedliche Wertebereiche zulässig sein, festgelegt durch die folgenden Grenzen:

Code:

 lb = [2 2 4 8 8 8 60 60 60]; % untere Grenze
 ub = [15 20 25 25 25 25 150 150 150]; % obere Grenze
 


Für x0(1) würde also zulässig sein:
Code:

[2:0.25:15]
 


Wie ist das mit der Eingabe als Index gemeint? Da kann ich mir gerade nichts drunter vorstellen.
Ersetzen dann die Arrays mit den erlaubten Werten die arrays lb und ub?

Vielen Dank und viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.458
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2021, 17:29     Titel:
  Antworten mit Zitat      
Hallo,

soll die Schrittweite jedes Mal gleich sein? Oder ist sie zumindest jedes Mal konstant? Dann geht es intuitiver, z.B.
Code:
lb = [2*4, ...]
ub = [15*4, ...];


In der Funktion:
Code:
x(1) = x(1) / 4;


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
 
student_2021
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 26.01.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2021, 17:44     Titel:
  Antworten mit Zitat      
Dankeschön für diese Idee, klasse! Gefällt mir richtig gut. Werde ich gleich mal ausprobieren. Ja, die Schrittweite soll jedes Mal gleich sein.

Viele Grüße
Daniel
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

mir fällt sogar was ein, was auch für unterschiedliche Schrittweite geht, wenn sie zumindest für jedes Element konstant ist:

Code:
lb = lb ./ stepsize;
ub = ub ./ stepsize;

und in der Funktion
Code:
x = x .* stepsize;


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



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.