ThKo26
Themenstarter
Forum-Century
Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
Verfasst am : 26.01.2018, 20:57
Titel :
Hallo Harald,
in diesem Fall gebe ich diese Gewichte vor und definiere somit, auf welches J man mehr Wert lege. und variiere händisch
funktioniert super!
Nur für die Umsetzung für
f3 = f2 + f1
kann es passieren, dass ich für f1 eine andere position erhalte als für f2. und somit habe ich um das min für f3 zu erreichen zwei vershiedene Positionen, die ich nicht umsetzen kann.
Somit muss w1, w2, ... solange optimiert werden, bis für das minf3, die positionen für f1 und f2 die gleichen sind.
Ich glaube, dass wir langsam zum Ziel kommen,
Danke Harald, dass du weiter mitmachst!
Grüße
Thomas
Harald
Forum-Meister
Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
Verfasst am : 26.01.2018, 22:31
Titel :
Hallo,
da die Zielfunktion ganzzahlig und somit unstetig ist, bleibt an Optimierungsfunktionen nur genetischer Algorithmus (
ga
). Dann leg mal los...
Grüße,
Harald
ThKo26
Themenstarter
Forum-Century
Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
Verfasst am : 26.01.2018, 22:50
Titel :
Hallo,
Zitat:
da die Zielfunktion ganzzahlig und somit unstetig ist, bleibt an Optimierungsfunktionen nur genetischer Algorithmus ( ga ). Dann leg mal los...
werde ich machen! Danke.
Ich melde mich
Grüße
Harald
Forum-Meister
Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
Verfasst am : 26.01.2018, 23:57
Titel :
Hallo,
mir wurde gerade klar, dass man das Problem anders auffassen kann und sollte:
Minimiere f = min(w1 * J(:,1) + w2 * J(:,2) + w3* J(:,3) + w4 * J(:,4) + w5 * J(:,5));
mit (vermutlich) NB: Summe der w = 1.
Das kannst du auch mit fmincon lösen.
Grüße,
Harald
ThKo26
Themenstarter
Forum-Century
Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
Verfasst am : 30.01.2018, 15:49
Titel :
Hallo Harald,
ich habe jetzt für die fmincon folgenden Input über das Optimization Tool.
costfunction:
Code:
function f = costfunction( w1,w2,w3,w4,w5)
global J; global GripWL, global CzTmm
f = min ( ( w1 * J( :,1 ) + w2 * J( :,2 ) ) * CzTmm + ...
( w3* J( :,3 ) + w4 * J( :,4 ) + w5 * J( :,5 ) ) *GripWL) ;
end
ich habe mit global, die Ergebnismatrix und zwei zusätzliche feste Koeffizienten gesetzt.
Zusätzlich habe ich das System mit dem Genethischen Algorithmus aufgebaut.
Code:
function f = costfunction_ga( w1,w2,w3,w4,w5)
global J; global GripWL, global CzTmm
f = ( w1 * J( :,1 ) + w2 * J( :,2 ) ) * CzTmm + ...
( w3* J( :,3 ) + w4 * J( :,4 ) + w5 * J( :,5 ) ) *GripWL;
end
Danke für die Unterstützung.
Grüße
Beschreibung:
Download
Dateiname:
ga.JPG
Dateigröße:
110.52 KB
Heruntergeladen:
550 mal
Beschreibung:
Download
Dateiname:
fmincon.JPG
Dateigröße:
108.18 KB
Heruntergeladen:
508 mal
Harald
Forum-Meister
Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
Verfasst am : 30.01.2018, 19:20
Titel :
Hallo,
du musst w1 bis w5 zu einem Vektor w zusammenfassen.
Ansonsten auch mal einen Haltepunkt setzen, um den Fehler zu finden. Das ist bei Aufruf aus dem Command Window oft einfacher.
Grüße,
Harald
ThKo26
Themenstarter
Forum-Century
Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
Verfasst am : 31.01.2018, 12:14
Titel :
Hallo,
ich habe w1, ...,w5 zu einem Vektor zusammengefasst und habe für ga eine Lösung erhalten.
ich verstehe nur 'min' nicht, aber ohne funktioniert es nicht.
für fmincon lautet die Funktion gleich, bekomme aber weiterhin folgendne Fehler
Bild fmincon.
Grüße und Danke.
Beschreibung:
Download
Dateiname:
fmincon.JPG
Dateigröße:
108.18 KB
Heruntergeladen:
478 mal
Beschreibung:
Download
Dateiname:
ga.JPG
Dateigröße:
178.25 KB
Heruntergeladen:
525 mal
Harald
Forum-Meister
Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
Verfasst am : 31.01.2018, 13:14
Titel :
Hallo,
für feste w1 bis w5 kannst du ja schauen, welcher Run das Minimum liefert:
[fmin, pos] = min(f3) mit f3 = f2 + f1
Jetzt möchtest du w1 bis w5 so anpassen, dass der minimale Run minimal wird.
Mit der Fehlermeldung von fmincon kann ich nichts anfangen. Hast du evtl. im rechten Teil des Tools irgendwelche Einstellungen gemacht? Es kann auch einen Versuch wert sein, die Eingaben im Tool nochmal von vorne zu machen.
Alternativ File --> Generate Code und den entstehenden Code ansehen.
Grüße,
Harald
ThKo26
Themenstarter
Forum-Century
Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
Verfasst am : 31.01.2018, 13:35
Titel :
Hallo Harald,
genau, so habe ich das gelöst für von mir vorgegebene w.
Jetzt möchte ich, dass die w variiert werden, damit ich das absolute Minimum bekomme.
Zitat:
Mit der Fehlermeldung von fmincon kann ich nichts anfangen. Hast du evtl. im rechten Teil des Tools irgendwelche Einstellungen gemacht?
nein habe ich nicht. ich werde alles nochmal eingeben und einen Code generiren lassen.
Grüße
Harald
Forum-Meister
Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
Verfasst am : 31.01.2018, 13:51
Titel :
Hallo,
ist deine indirekte Frage
Zitat:
ich verstehe nur 'min' nicht
dann jetzt beantwortet?
Grüße,
Harald
ThKo26
Themenstarter
Forum-Century
Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
Verfasst am : 31.01.2018, 14:06
Titel :
Hallo,
Zitat:
dann jetzt beantwortet?
]
jupp, da ich ja nur einen Wert haben möchte.
Wenn ich ga nutze, und es öftes wiederhole, komme teilweise unterschiedliche Ergebnisse raus. sind minimal, aber unterschiedlich.
Grüße
ThKo26
Themenstarter
Forum-Century
Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
Verfasst am : 31.01.2018, 14:55
Titel :
Hallo,
mit der Toolbox funktioniert mein ga, jetzt habe ich einen Code generiert und möchte es erneut starten und bekomme die fehlermeldung.
Code:
Error using ga
Too many input arguments.
Error in ga ( line 11 )
ga( @costfunction_ga,nvars,[ ] ,[ ] ,Aeq,beq,lb,ub,[ ] ,[ ] ,options) ;
kann aber damit leider nicht wirklich etwas anfangen.
mein Skript.
Code:
function [ x2,fval2,exitflag2,output2,population2,score2] = ga( nvars,Aeq,beq,lb,ub)
%% This is an auto generated MATLAB file from Optimization Tool.
%% Start with the default options
options = gaoptimset;
%% Modify options setting
options = gaoptimset( options,'CrossoverFcn ', { @crossoverintermediate [ ] } ) ;
options = gaoptimset( options,'Display ', 'iter ') ;
options = gaoptimset( options,'PlotFcns ', { @gaplotbestf @gaplotbestindiv @gaplotexpectation @gaplotscorediversity @gaplotscores @gaplotselection @gaplotstopping } ) ;
[ x2,fval2,exitflag2,output2,population2,score2] = ...
ga( @costfunction_ga,nvars,[ ] ,[ ] ,Aeq,beq,lb,ub,[ ] ,[ ] ,options) ;
Ich möchte für die Optimierung die Position haben, wie vorher auch schon mein den händisch variirten w.
Danke und Grüße
Thomas
ThKo26
Themenstarter
Forum-Century
Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
Verfasst am : 31.01.2018, 15:07
Titel :
Hallo,
für fmincon erhalte ich dieselbe Fehlermeldung.
der Code unterscheidet sich nur in folgenden Code:
Code:
function [ x1,fval1,exitflag1,output1,lambda1,grad1,hessian1] = fmincon ( x0,Aeq,beq,lb,ub)
%% This is an auto generated MATLAB file from Optimization Tool.
%% Start with the default options
options = optimoptions( 'fmincon ') ;
%% Modify options setting
options = optimoptions( options,'Display ', 'iter ') ;
options = optimoptions( options,'FunValCheck ', 'off ') ;
options = optimoptions( options,'PlotFcns ', { @optimplotx @optimplotfunccount @optimplotfval @optimplotconstrviolation @optimplotstepsize @optimplotfirstorderopt } ) ;
options = optimoptions( options,'Diagnostics ', 'off ') ;
[ x1,fval1,exitflag1,output1,lambda1,grad1,hessian1] = ...
fmincon ( @costfunction,x0,[ ] ,[ ] ,Aeq,beq,lb,ub,[ ] ,options) ;
Harald
Forum-Meister
Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
Verfasst am : 31.01.2018, 15:23
Titel :
Hallo,
du solltest deine eigene Funktion nicht fmincon nennen, weil du damit die Standardfunktion fmincon überlagerst.
Grüße,
Harald
ThKo26
Themenstarter
Forum-Century
Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
Verfasst am : 31.01.2018, 15:28
Titel :
Hallo,
Zitat:
http://vieta.math.tu-cottbus.de/~kunath/WiSe201011/Modellierung/Aufgaben/Blatt02/optiMatlabEinf.pdf
leutet ein!
aber, bei ga sollte es ja prinzipiell funktionieren.
Grüße
Gehe zu Seite Zurück 1 , 2 , 3 Weiter
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 - 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.