<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/169301</link>
    <title>MATLAB Central Newsreader - GA optimization</title>
    <description>Feed for thread: GA optimization</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2008 by The MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>The MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Mon, 19 May 2008 04:06:26 -0400</pubDate>
      <title>Re: GA optimization</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/169301#432800</link>
      <author>Marcus M. Edvall</author>
      <description>Here is some quick TOMLAB code. It doesn't look like your formulation&lt;br&gt;
is complete since th is missing:&lt;br&gt;
&lt;br&gt;
Anyway, it might be a starting point for you. In general I would&lt;br&gt;
recommend that you code the gradient and use MAD for the 2nd order&lt;br&gt;
derivatives:&lt;br&gt;
&lt;br&gt;
function Result = newsok&lt;br&gt;
&lt;br&gt;
% Ri=(60:1:90);&lt;br&gt;
% Ro=(80:1:110);&lt;br&gt;
% A=(1:0.5:3);&lt;br&gt;
% F=(600:10:1000);&lt;br&gt;
% Z=(2:1:10);&lt;br&gt;
% x=[Ri;Ro;A;F;Z]&lt;br&gt;
% Need 2 here and divide by 2 in funcs&lt;br&gt;
x_L = [60;80;2;600;2];&lt;br&gt;
x_U = [90;110;6;1000;10];&lt;br&gt;
&lt;br&gt;
x_0 = round((x_L+x_U)/2);&lt;br&gt;
&lt;br&gt;
c_U = zeros(5,1);&lt;br&gt;
&lt;br&gt;
Aineq=[-1 0 0 0 0;0 1 0 0 0;1 -1 0 0 0;0 0 -1 0 0;...&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0 0 1 0 0;0 0 0 0 1;0 0 0 0 -1;0 0 0 -1 0;0 0 0 1 0];&lt;br&gt;
bineq=[-55;110;-20;-1.5;3;9;-1;0;1000];&lt;br&gt;
% x(3) is not twice as high, need to divide column by 2&lt;br&gt;
Aineq(:,3) = Aineq(:,3)/2;&lt;br&gt;
Prob = minlpAssign(@objfun, [], [], [], x_L, x_U, 'NewsOK', x_0, ...&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1:5, [], [], [], Aineq, -inf*ones(length(bineq),1), bineq, ...&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@consfun, [], [], [], [], c_U);&lt;br&gt;
Prob.user.Rho=0.000007850;&lt;br&gt;
Prob.PriLevOpt = 4;&lt;br&gt;
Prob.optParam.IterPrint = 1;&lt;br&gt;
Result = tomRun('minlpBB', Prob, 1);&lt;br&gt;
Result.x_k(3) = Result.x_k(3)/2;&lt;br&gt;
&lt;br&gt;
function f = objfun(x,Prob)&lt;br&gt;
x(3) = x(3)/2;&lt;br&gt;
Ri = x(1);&lt;br&gt;
Ro = x(2);&lt;br&gt;
A  = x(3);&lt;br&gt;
Z  = x(5);&lt;br&gt;
Rho = Prob.user.Rho;&lt;br&gt;
f(1)= pi*(Ro^2-Ri^2)*A*(Z+1)*Rho; % min weight&lt;br&gt;
&lt;br&gt;
%f(2)=Jz*omega/(Mh+Mf)*1000; % min time&lt;br&gt;
&lt;br&gt;
function c = consfun(x,Prob)&lt;br&gt;
x(3) = x(3)/2;&lt;br&gt;
Ri = x(1);&lt;br&gt;
Ro = x(2);&lt;br&gt;
A  = x(3);&lt;br&gt;
F  = x(4);&lt;br&gt;
Z  = x(5);&lt;br&gt;
&lt;br&gt;
% Rimin=55;&lt;br&gt;
% Romax=110;&lt;br&gt;
% deltaR=20;&lt;br&gt;
% Amin=1.5;&lt;br&gt;
% Amax=3;&lt;br&gt;
delta=0.5;&lt;br&gt;
Lmax=30;&lt;br&gt;
% Zmax=10;&lt;br&gt;
Vsrmax=10000;&lt;br&gt;
mi=0.5;&lt;br&gt;
s=1.5;&lt;br&gt;
Ms=40000;&lt;br&gt;
% Mf=3000;&lt;br&gt;
n=250;&lt;br&gt;
pmax=1;&lt;br&gt;
% Jz=55;&lt;br&gt;
% Fmax=1000;&lt;br&gt;
S=pi*(Ro^2-Ri^2);&lt;br&gt;
prz=F/S ;&lt;br&gt;
Rsr=(2/3)*((Ro^3-Ri^3)/(Ro^2-Ri^2));&lt;br&gt;
Vsr=(pi*Rsr*n)/30;&lt;br&gt;
% omega=(pi*n)/30;&lt;br&gt;
Mh=2/3*mi*F*Z*((Ro^3-Ri^3)/(Ro^2-Ri^2));&lt;br&gt;
&lt;br&gt;
c=[-Lmax+(Z+1)*(A+delta);prz-pmax;s*Ms-Mh;...&lt;br&gt;
prz*Vsr-pmax*Vsrmax;Vsr-Vsrmax];&lt;br&gt;
%    -th; removed since not defined&lt;br&gt;
&lt;br&gt;
Best wishes, Marcus&lt;br&gt;
Tomlab Optimization Inc.&lt;br&gt;
&lt;a href="http://tomopt.com/tomlab/"&gt;http://tomopt.com/tomlab/&lt;/a&gt;&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 19 May 2008 03:44:39 -0400</pubDate>
      <title>Re: GA optimization</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/169301#432798</link>
      <author>Marcus M. Edvall</author>
      <description>Hello - you can solve this problem with glcDirect, minlpBB and more in&lt;br&gt;
TOMLAB.&lt;br&gt;
&lt;br&gt;
The demo is available from here: &lt;a href="http://tomopt.com/tomlab/"&gt;http://tomopt.com/tomlab/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Best wishes, Marcus&lt;br&gt;
&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Thu, 15 May 2008 18:23:02 -0400</pubDate>
      <title>Re: GA optimization</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/169301#432325</link>
      <author>helper </author>
      <description>&amp;gt; I have solved the given problem described below by GA but &lt;br&gt;
&amp;gt; my results are real numbers. How can I get results in &lt;br&gt;
&amp;gt; discrete values? &lt;br&gt;
&lt;br&gt;
This is called "Integer Programming".  Check out the &lt;br&gt;
following link:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.mathworks.com/support/solutions/data/1-"&gt;http://www.mathworks.com/support/solutions/data/1-&lt;/a&gt;&lt;br&gt;
10PDHC.html?solution=1-10PDHC&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Thu, 15 May 2008 16:40:19 -0400</pubDate>
      <title>Re: GA optimization</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/169301#432280</link>
      <author>matt dash</author>
      <description>I could be wrong, but if you just rewrote your objective&lt;br&gt;
function to round each variable, wouldn't it find the&lt;br&gt;
optimum integer solution? (It would still return non integer&lt;br&gt;
results but rounding them would give the same solution).&lt;br&gt;
&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Thu, 15 May 2008 10:29:02 -0400</pubDate>
      <title>GA optimization</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/169301#432199</link>
      <author>OK1 </author>
      <description>Hi all,&lt;br&gt;
&lt;br&gt;
I have solved the given problem described below by GA but &lt;br&gt;
my results are real numbers. How can I get results in &lt;br&gt;
discrete values? They should be whitin the range:&lt;br&gt;
&lt;br&gt;
Ri=(60:1:90);&lt;br&gt;
Ro=(80:1:110);&lt;br&gt;
A=(1:0.5:3);&lt;br&gt;
F=(600:10:1000);&lt;br&gt;
Z=(2:1:10);&lt;br&gt;
&lt;br&gt;
Is it possible to get results in discrete values when using &lt;br&gt;
gamultiobjective in GA toolbox at all? If yes could you &lt;br&gt;
please explain it to me how to do it and what should I do. &lt;br&gt;
I'm just matlab user and I'm not good in programming at all &lt;br&gt;
some detailed description as for dumbbell :-) would be &lt;br&gt;
great.&lt;br&gt;
&lt;br&gt;
Thank You&lt;br&gt;
&lt;br&gt;
Problem:&lt;br&gt;
five design variables: x=[Ri;Ro;A;F;Z]&lt;br&gt;
&lt;br&gt;
objective functions:&lt;br&gt;
&lt;br&gt;
f(1)= pi*(Ro^2-Ri^2)*A*(Z+1)*Rho; % min weight&lt;br&gt;
f(2)=Jz*omega/(Mh+Mf)*1000; % min time&lt;br&gt;
&lt;br&gt;
subject to:&lt;br&gt;
&lt;br&gt;
linear constraints:&lt;br&gt;
&amp;nbsp;&amp;nbsp;Aineq=[-1 0 0 0 0;0 1 0 0 0;1 -1 0 0 0;0 0 -1 0 0;...&lt;br&gt;
0 0 1 0 0;0 0 0 0 1;0 0 0 0 -1;0 0 0 -1 0;0 0 0 1 0];&lt;br&gt;
bineq=[-55;110;-20;-1.5;3;9;-1;0;1000];&lt;br&gt;
&lt;br&gt;
nonlinear constraints:&lt;br&gt;
where c=&amp;lt;0&lt;br&gt;
c=[-Lmax+(Z+1)*(A+delta);prz-pmax;s*Ms-Mh;...&lt;br&gt;
-th;prz*Vsr-pmax*Vsrmax;Vsr-Vsrmax];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
ceq=[];&lt;br&gt;
&lt;br&gt;
where:&lt;br&gt;
&lt;br&gt;
Rimin=55; &lt;br&gt;
Romax=110; &lt;br&gt;
deltaR=20; &lt;br&gt;
Amin=1.5; &lt;br&gt;
Amax=3; &lt;br&gt;
delta=0.5; &lt;br&gt;
Lmax=30; &lt;br&gt;
Zmax=10; &lt;br&gt;
Vsrmax=10000; &lt;br&gt;
mi=0.5; &lt;br&gt;
Rho=0.000007850;&lt;br&gt;
s=1.5; &lt;br&gt;
Ms=40000; &lt;br&gt;
Mf=3000; &lt;br&gt;
n=250; &lt;br&gt;
pmax=1; &lt;br&gt;
Jz=55; &lt;br&gt;
Fmax=1000;&lt;br&gt;
&lt;br&gt;
and&lt;br&gt;
&lt;br&gt;
S=pi*(Ro^2-Ri^2); &lt;br&gt;
prz=F/S ; &lt;br&gt;
Rsr=(2/3)*((Ro^3-Ri^3)/(Ro^2-Ri^2)); &lt;br&gt;
Vsr=(pi*Rsr*n)/30; &lt;br&gt;
omega=(pi*n)/30;&lt;br&gt;
Mh=2/3*mi*F*Z*((Ro^3-Ri^3)/(Ro^2-Ri^2));&lt;br&gt;
</description>
    </item>
  </channel>
</rss>
