matlab 最优路径 代码

matlab 最优路径 代码,第1张

会用模拟退火,那么下面这段代码你该哗族懂的~

function

drawpath(chrom,x)

%%

路径函数

%输入

%

chrom

待画路径

%

x

各城市坐标位置

r=[chrom(1,:)

chrom(1,1)]

%一个随机解(个体)

figure

hold

on

plot(x(:,1),x(:,2),'o','color',[0.5,0.5,0.5])

plot(x(chrom(1,1),1),x(chrom(1,1),2),'rv','markersize'敬芦型,20)

for

i=1:size(x,1)

text(x(i,1)+0.05,x(i,2)+0.05,num2str(i),'color',[1,0,0])

end

a=x(r,:)

row=size(a,1)

for

i=2:row

[arrowx,arrowy]

=

dsxy2figxy(gca,a(i-1:i,1),a(i-1:i,2))%坐标转换

annotation('textarrow',arrowx,arrowy,'headwidth',8,'color'亮猜,[0,0,1])

end

hold

off

xlabel('横坐标')

ylabel('纵坐标')

title('轨迹图')

box

on

没看明白:

1、对于路径的要求是什么肢稿?比如并饥改终点?

2、绝判【每经过9个节点后必须返回至起点】,看起来是只能封闭在一个小的范围内,那么所谓的“最优”路径是什么概念?

3、“100x100的区域”和“边长4.3”这两个条件又起到了什么作用?

x0=[5,5,2]

题主困拆给出的线性规划模型可以用fmincon函数来

求其最优解,其方法:

1、首先建立目标函数,objectivef(x),其内容

y=x(1)*x(2)+2*(x(2)*x(3)+x(1)*x(3))

2、然后建立约束函数,汪闹枣constrainf(x),其内弯蔽容

%约束函数

c=[]

%非约束函数

ceq=x(1)*x(2)*x(3)-100

3、最后建立运行代码

x0=[5,5,2]

A=[]b=[]Aeq=[]beq=[]VLB=[5,0,0]VUB=[inf,inf,inf]

[x,fval,exitflag]=fmincon(@(x)objectivef(x),x0,A,b,Aeq,beq,VLB,VUB,@(x)constrainf(x))

A=x(1)*x(2)*x(3)

str=['x1x2x3=100 ',num2str(A)]

fprintf('%s\n',str)

4、根据上述 内容编程,执行可以得到

x1=5.848;x2= 5.848;x3=2.924

min S=102.6


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12356521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存