求个matlab求最短路径代码代码运行结果

>> 用于求解TSP问题的matlab程序,能直接运行
用于求解TSP问题的matlab程序,能直接运行
所属分类:
下载地址:
BasicAntColonAlgorit文件大小:6.57 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
用于求解TSP问题的matlab程序,能直接运行-BasicAntColon AlgorithmmatlabforTSP
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
&BasicAntColon&0.00 B16% 14-09-09
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
评价成功,多谢!
下载BasicAntColonAlgorit
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:342.943ms - init:0.1;find:0.6;t:0.5;tags:0.4;related:103.4;comment:0.1; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧小木虫 --- 600万学术达人喜爱的学术科研平台
&&查看话题
已知两个MATLAB程序,求助matlab运行程序。
楼主是研究高分子合成的,接触matlab不到一周,由于课题原因需要用matlab求解一个多相方程,方程会在图片附件里面提供,两个方程是四元共聚Walling-briggs以及Skeits方程分别为图片中的a和b。方程是建立起总单体转化率x和单体在聚合物中的所占比例F的关联。其中竞聚率rij是已知的。初始的f1,f2,f3,f4(即四种单体的投料比例)也是已知的(可以随便输入比如都为0.25)。而单体在聚合物组成的F和转化率x是未知的。这些都是一篇文献里面的东西,文章我也会在附件给到。文章的作者使用MATLAB软件,结合ODE45,得到了总单体转化率x与单体在聚合物组成F的曲线图(见附件的F-X图片)。
之后我联系了作者,要到了matlab对应四元共聚Walling-briggs-Skeits的程序,在附件中呈现。但是不知道怎么运行:sweat:好尴尬- -
这两个matlab代码其中一个(a:walling) 是:The nonlinear system of coupled ordinary differential equations is stored in a script file in Matlab.
(b:walling_convert)是 A script file to convert the monomer to polymer ratio using the Walling-Briggs model(这些是文章里面写的)。我这几天试着使用ODE45运行了两个程序,但是程序a显示错误,看了下木虫的帖子,应该是a里面的因变量没有定义。程序b感觉本身就不符合ODE45的运算,所以我现在很困惑不知道怎么解决。我感觉应该是先运行b程序,然后以b的数据为基础在结合ODE45运行a程序。这只是我的猜测。。
所以这个帖子就是想求助大家,我应该输入哪些代码来运行这两个matlab程序,才可以得到转化率x与瞬时单体在共聚物组成F(某一转化率下的单体在聚合物的组成)的图片,以及转化率x与累积单体在共聚物组成F(某一转化率之前所有F的加和)的图片。
程序本身应该没有问题,因为求的是原作者的代码,但是后来我再问怎么使用ODE45算法计算,人家就不理我了。
最后感谢大家花了这么长时间看我的求助帖子,有什么地方理解不了可以加我QQ:
F-X曲线图.png
walling-briggs-skeits.png
感谢你的回复,s-16的文件是Mathematica软件运行的结果,这个代码与Skeits方程没有关联,没办法将转化率x和单体组成F进行建联并获得曲线图。这个问题我也问过作者
The Mathematica file “Walling Briggs Model 4” determines the necessary monomer feed, once the reactivity ratios and desired polymer composition are known. It is essentially a quick way to algebraically solve for 4 equations and 4 unknowns - for simpler systems such as a binary copolymer, programs like Excel + Solver can be easily substituted. Since the Walling-Briggs model involves calculating determinants, Excel may have convergence issues because if the determinant matrix is expanded, it is quite long and complicated. I was uncertain of how to use Mathematica for solving nonlinear coupled ODEs. 这个是作者对于我的回复。
所以关键还是那两个matlab的文件。
感谢你的回复~
首先,你的专业概念我确实不懂,所以作者的回复我理解不了。
但是,我从编程的角度说的是没错的。如果你学过C语言编程,应该能明白我的意思。(你看第一行的定义也能明白啊,function...)它只是实现某种功能的一个模块,需要外部去调用它。换句话说,你还有主逻辑代码没拿到;还有一种可能,整个程序的过程比较简单,只包含这两个公式(这需要你利用专业知识去分辨,里面的算法是不是能满足你的需求的完整的过程),如果是这样的话,那更简单了。在matlab主窗口(或者新建脚本文件)打出这个函数方法,并且提供参数给它,应该直接出你想要的结果。就一行代码,一行代码!!!!!!
我觉得这个应该是你说的第二种可能,因为我仔细分析了以下代码,整理出来之后其实就是第二个Skeits公式,skeits里面的F用Walling-Briggs公式代入了,也就是说就是f和x的公式。你说的那一行代码怎么写入啊,因为接触Matlab时间太短了,还不是很懂。而且我觉得 walling_convert这个文件应该是你说的只有一行代码,但是walling那个文件应该是用ODE45计算的吧(但是这里面缺东西不能用ODE45计算)。。
你看我签名档,线下联系我吧
ODE45是matlab提供的常微分方程的数值求解算法,你暂时理解为和你无关,不用管它
下午有点事,刚回来,明白你的意思了,就是两个code分别对应两个简单的方程,输入几个简单的变量就可以得到数据。刚才试了一下确实是,但是怎么能够得到我想要的递增图呢,是不是需要把两个数据结合到一起啊?层主这方面有什么经验吗
你这个是正常画图程序吧,这个我会的,但是我求助的不是这个程序。。而是怎么把两个代码运行合并,通过ODE45计算最后绘制想要的图形
估计是这样的,初始值没看到咋定的
QQ截图17.png
层主这个程序怎么写的啊,就是想要这个图片~
需要的 话加QQ
北京学而思教育科技有限公司 地址:北京市海淀区北三环甲18号中鼎大厦A座1层102室 电话:010-求助大神,这个matlab程序如何修改才能正确运行?function[Zp,Y1p,Y2p,Y3p,Xp,LC1,LC2]=JSPGA(M,N,Pm,T,P)%--------------------
求助大神,这个matlab程序如何修改才能正确运行?
function [Zp,Y1p,Y2p,Y3p,Xp,LC1,LC2]=JSPGA(M,N,Pm,T,P)
%--------------------------------------------------------------------------
%??JSPGA.m
%??流水线型车间作业调度遗传算法
%??GreenSim团队原创作品,转载请注明
%??GreenSim团队主页:
%??欢迎访问GreenSim——算法仿真团队→
%--------------------------------------------------------------------------
%??输入参数
%??M? ?? ? 遗传进化迭代次数
%??N? ?? ? 种群规模(取偶数)
%??Pm? ?? ?变异概率
%??T? ?? ? m×n的矩阵,存储m个工件n个工序的加工时间
%??P? ?? ? 1×n的向量,n个工序中,每一个工序所具有的机床数目
%??输出参数列表
%??Zp? ?? ?最优的Makespan值
%??Y1p? ???最优方案中,各工件各工序的开始时刻,可根据它绘出甘特图
%??Y2p? ???最优方案中,各工件各工序的结束时刻,可根据它绘出甘特图
%??Y3p? ???最优方案中,各工件各工序使用的机器编号
%??Xp? ?? ?最优决策变量的值,决策变量是一个实数编码的m×n矩阵
%??LC1? ???收敛曲线1,各代最优个体适应值的记录
%??LC2? ???收敛曲线2,各代群体平均适应值的记录
%??最后,程序还将绘出三副图片:两条收敛曲线图和甘特图(各工件的调度时序图)
%第一步:变量初始化
[m,n]=size(T);%m是总工件数,n是总工序数
Xp=zeros(m,n);%最优决策变量
LC1=zeros(1,M);%收敛曲线1
LC2=zeros(1,N);%收敛曲线2
%第二步:随机产生初始种群
farm=cell(1,N);%采用细胞结构存储种群
X=zeros(m,n);
X(i,j)=1+(P(j)-eps)*
farm{k}=X;
counter=0;%设置迭代计数器
while counter
%第三步:交叉
newfarm=cell(1,N);%交叉产生的新种群存在其中
Ser=randperm(N);
for i=1:2:(N-1)
A=farm{Ser(i)};%父代个体
Manner=unidrnd(2);%随机选择交叉方式
if Manner==1
cp=unidrnd(m-1);%随机选择交叉点
%双亲双子单点交叉
a=[A(1:cp,:);B((cp+1):m,:)];%子代个体
b=[B(1:cp,:);A((cp+1):m,:)];
cp=unidrnd(n-1);%随机选择交叉点
b=[B(:,1:cp),A(:,(cp+1):n)];
newfarm{i}=a;%交叉后的子代存入newfarm
newfarm{i+1}=b;
%新旧种群合并
FARM=[farm,newfarm];
%第四步:选择复制
FITNESS=zeros(1,2*N);
fitness=zeros(1,N);
for i=1:(2*N)
X=FARM{i};
Z=COST(X,T,P,plotif);%调用费用的子函数
FITNESS(i)=Z;
%选择复制采取两两随机配对竞争的方式,具有保留最优个体的能力
Ser=randperm(2*N);
f2=FITNESS(Ser(2*i));
farm{i}=FARM{Ser(2*i-1)};
fitness(i)=FITNESS(Ser(2*i-1));
farm{i}=FARM{Ser(2*i)};
%记录最佳个体和收敛曲线
minfitness=min(fitness);
meanfitness=mean(fitness);
LC1(counter+1)=%收敛曲线1,各代最优个体适应值的记录
LC2(counter+1)=%收敛曲线2,各代群体平均适应值的记录
pos=find(fitness==minfitness);
Xp=farm{pos(1)};
%第五步:变异
if Pm&%变异概率为Pm
X=farm{i};
I=unidrnd(m);
J=unidrnd(n);
X(I,J)=1+(P(J)-eps)*
farm{i}=X;
farm{pos(1)}=Xp;
counter=counter+1;
%输出结果并绘图
figure(1);
[Zp,Y1p,Y2p,Y3p]=COST(X,T,P,plotif);
figure(2);
plot(LC1);
figure(3);
plot(LC2);
function [Zp,Y1p,Y2p,Y3p]=COST(X,T,P,plotif)
%??JSPGA的内联子函数,用于求调度方案的Makespan值
%??输入参数列表
%??X? ?? ? 调度方案的编码矩阵,是一个实数编码的m×n矩阵
%??T? ?? ? m×n的矩阵,存储m个工件n个工序的加工时间
%??P? ?? ? 1×n的向量,n个工序中,每一个工序所具有的机床数目
%??plotif??是否绘甘特图的控制参数
%??输出参数列表
%??Zp? ?? ?最优的Makespan值
%??Y1p? ???最优方案中,各工件各工序的开始时刻
%??Y2p? ???最优方案中,各工件各工序的结束时刻
%??Y3p? ???最优方案中,各工件各工序使用的机器编号
%第一步:变量初始化
[m,n]=size(X);
Y1p=zeros(m,n);
Y2p=zeros(m,n);
Y3p=zeros(m,n);
%第二步:计算第一道工序的安排
Q1=zeros(m,1);
Q2=zeros(m,1);
R=X(:,1);%取出第一道工序
Q3=floor(R);%向下取整即得到各工件在第一道工序使用的机器的编号
%下面计算各工件第一道工序的开始时刻和结束时刻
for i=1:P(1)%取出机器编号
pos=find(Q3==i);%取出使用编号为i的机器为其加工的工件的编号
lenpos=length(pos);
if lenpos&=1
Q1(pos(1))=0;
if lenpos&=2
for j=2:lenpos
Q1(pos(j))=Q2(pos(j-1));
Q2(pos(j))=Q2(pos(j-1))+T(pos(j),1);
Y1p(:,1)=Q1;
Y3p(:,1)=Q3;
%第三步:计算剩余工序的安排
R=X(:,k);%取出第k道工序
Q3=floor(R);%向下取整即得到各工件在第k道工序使用的机器的编号
%下面计算各工件第k道工序的开始时刻和结束时刻
for i=1:P(k)%取出机器编号
pos=find(Q3==i);%取出使用编号为i的机器为其加工的工件的编号
lenpos=length(pos);
if lenpos&=1
EndTime=Y2p(pos,k-1);%取出这些机器在上一个工序中的结束时刻
POS=zeros(1,lenpos);%上一个工序完成时间由早到晚的排序
for jj=1:lenpos
POS(jj)=ppp(1);
EndTime(ppp(1))=I
%根据上一个工序完成时刻的早晚,计算各工件第k道工序的开始时刻和结束时刻
Q1(pos(POS(1)))=Y2p(pos(POS(1)),k-1);
Q2(pos(POS(1)))=Q1(pos(POS(1)))+T(pos(POS(1)),k);%前一个工件的结束时刻
if lenpos&=2
for j=2:lenpos
Q1(pos(POS(j)))=Y2p(pos(POS(j)),k-1);%预定的开始时刻为上一个工序的结束时刻
if Q1(pos(POS(j)))&Q2(pos(POS(j-1)))%如果比前面的工件的结束时刻还早
Q1(pos(POS(j)))=Q2(pos(POS(j-1)));
Y1p(:,k)=Q1;
Y2p(:,k)=Q2;
Y3p(:,k)=Q3;
%第四步:计算最优的Makespan值
Y2m=Y2p(:,n);
Zp=max(Y2m);
%第五步:绘甘特图
mPoint1=Y1p(i,j);
mPoint2=Y2p(i,j);
mText=m+1-i;
PlotRec(mPoint1,mPoint2,mText);
Word=num2str(Y3p(i,j));
%text(0.5*mPoint1+0.5*mPoint2,mText-0.5,Word);
x1=mPoint1;y1=mText-1;
x2=mPoint2;y2=mText-1;
x4=mPoint1;y4=mT
%fill([x1,x2,x3,x4],[y1,y2,y3,y4],'r');
fill([x1,x2,x3,x4],[y1,y2,y3,y4],[1,0.5,1]);
text(0.5*mPoint1+0.5*mPoint2,mText-0.5,Word);
function PlotRec(mPoint1,mPoint2,mText)
%??此函数画出小矩形
%??mPoint1? ? 输入点1,较小,横坐标
%??mPoint2? ? 输入点2,较大,横坐标
%??mText? ?? ?输入的文本,序号,纵坐标
vPoint = zeros(4,2) ;
vPoint(1,:) = [mPoint1,mText-1];
vPoint(2,:) = [mPoint2,mText-1];
vPoint(3,:) = [mPoint1,mText];
vPoint(4,:) = [mPoint2,mText];
plot([vPoint(1,1),vPoint(2,1)],[vPoint(1,2),vPoint(2,2)]);
plot([vPoint(1,1),vPoint(3,1)],[vPoint(1,2),vPoint(3,2)]);
plot([vPoint(2,1),vPoint(4,1)],[vPoint(2,2),vPoint(4,2)]);
plot([vPoint(3,1),vPoint(4,1)],[vPoint(3,2),vPoint(4,2)]);
不是有联系方式么。直接写信给
解决方案二:
显示的是B没有定义。
【云栖快讯】快速解决数据库难题,云数据库经典案例及最佳实践直播专场!阿里云数据库专家团队成员倾囊相授!赶紧报名。&&
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、PostgreSQL、高...matlab代码运行结果报错求解答_matlab吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:164,738贴子:
matlab代码运行结果报错求解答收藏
各位热心的吧友,我在win8,64位操作系统上安装的matlab2016b,因为用到贝叶斯网络,所以导入了贝叶斯网络工具箱FullBNT-1.0.7,但是运行代码结果显示如下:(1)代码:N=5; %四个节点分别是国家政策C,学校政策U,工作压力大W,身体状况差B,过劳死Ddag=zeros(N,N); %网络连接矩阵初始化C=1;U=2;W=3;B=4;D=5; %初始化节点顺序dag(C,U)=1; %定义节点之间的连接关系dag(U,[W B])=1;dag(W,D)=1;dag(B,D)=1;discrete_nodes=1:N; %离散节点node_sizes=2*ones(1,N); %节点状态数%建立网络架构bnet=mk_bnet(dag,node_sizes,'names',{'国家政策(C)','学校政策(U)','工作压力大(W)','身体状况差(B)','过劳死(D)'},'discrete',discrete_nodes);%手工构造条件概率CPT表bnet.CPD{C} = tabular_CPD(bnet,C,[0.5 0.5]);bnet.CPD{U} = tabular_CPD(bnet,U,[0.95 0.01 0.05 0.99]);bnet.CPD{W} = tabular_CPD(bnet,W,[0.9 0.05 0.1 0.95]);bnet.CPD{B} = tabular_CPD(bnet,B,[0.3 0.01 0.7 0.99]);bnet.CPD{D} = tabular_CPD(bnet,D,[0.335 0.3 0.05 0 0.665 0.7 0.95 1]);%画出建立好的贝叶斯网络figuredraw_graph(dag)(2)结果显示:未定义与 'matlab.graphics.axis.Axes' 类型的输入参数相对应的运算符 '*'。出错 arrow (line 393)ax = o *出错 draw_graph (line 82)h = arrow([x(i)+dx1 y(i)+dy1],[x(k)-dx2 y(k)-dy2],'BaseAngle',30);求各位大神解答
AutoTDS-V1型全自动热解吸仪是一款20位常温二次全自动热解吸仪,气路采....
楼主解决了吗。看来这个问题挺常见的
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 matlab运行代码 的文章

 

随机推荐