欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab optimization terminated,求助Optimization terminated. 的问题

发布时间:2025/3/15 循环神经网络 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 matlab optimization terminated,求助Optimization terminated. 的问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

小弟按照课本写了的一个这样的程序

%利用分支定界法实现整数线性规划

%调用格式为[intx,intf]=Intprog(f,A,b,Aeq,beq,lb,up)

%f,A,b,Aeq,lb,up与linprog函数中意义相同

%intx为目标函数最小值时的变量

%intf目标函数的最小值

function [x,intf]=Intprog(f,A,b,Aeq,beq,lb,up)

x=NaN;intf=NaN;

NFlb=zeros(size(lb));

NFup=zeros(size(up));

NFlb(:,1)=lb;

NFup(:,1)=up;

F=inf;

while 1

sz=size(NFlb);

k=sz(2);

opt=optimset('TolX',1.0e-9);

%求解线性规划

[xm,fv,exitflag]=linprog(f,A,b,Aeq,beq,NFlb(:,1),NFup(:,1),[],opt);

if exitflag==-2  %不存在最优解

xm=NaN;

fv=NaN;

end

if xm==NaN

fv=inf;

end

if fv~=inf

if fv

if max(abs(round(xm)-xm))<1.0e-7 %判断各个分量是否为整数

F=fv;

x=xm;

tmpNFlb=NFlb(:,2:k);    %去掉第一列

tmpNFup=NFup(:,2:k);    %去掉第一列

NFlb=tmpNFlb;

NFup=tmpNFup;

if isempty(NFlb)==0

continue;

else

if x~=NaN

intf=F;

return;

else

disp('不存在最优解');

x=NaN;

intf=NaN;

return;

end

end

else

lb1=NFlb(:,1);

up1=NFup(:,1);

tmpNFlb=NFlb(:,2:k);    %去掉第一列

tmpNFup=NFup(:,2:k);    %去掉第一列

NFlb=tmpNFlb;

NFup=tmpNFup;

[barr,index]=find(abs(xm-round(xm))>=1.0e-7);

%任意找一个非整数变量

p=barr(1);

newlb=lb1;

newup=up1;

newlb(p)=max(floor(xm(p))+1,lb1(p));%更新求解表

newup(p)=max(floor(xm(p)),up1(p));%更新求解表

NFlb=[NFlb newlb lb1];

NFup=[NFup up1 newup];

continue;

end

else                         %fv大于F

tmpNFlb=NFlb(:,2:k);    %去掉第一列

tmpNFup=NFup(:,2:k);    %去掉第一列

NFlb=tmpNFlb;

NFup=tmpNFup;

if isempty(NFlb)==0

continue;

else

if x~=NaN

intf=F;

return;

else

disp('不存在最优解');

x=NaN;

intf=NaN;

return;

end

end

end

else                         %fv为无穷大

tmpNFlb=NFlb(:,2:k);    %去掉第一列

tmpNFup=NFup(:,2:k);    %去掉第一列

NFlb=tmpNFlb;

NFup=tmpNFup;

if isempty(NFlb)==0

continue;

else

if x~=NaN

intf=F;

return;

else

disp('不存在最优解');

x=NaN;

intf=NaN;

return;

end

end

end

end

最后在运行时输入f=[4;7;3]

A=[-1 -3 -1;-3 -1 -2]

b=[-5;-8]

[x,intf]=Intprog(f,A,b,[],[],[0;0;0],[inf;inf;inf])

课本中求出了结果,为什么我运行的过程中不断的出现

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

Optimization terminated.

最终按ctrl+c停止程序后,有这样的提示;

Error in ==> optim\private\lipsol>direction at 1363

dy(perm,1) = Rinf \ (Rinf' \ full(rhs(perm)));

Error in ==> optim\private\lipsol at 862

[dx,dy,dz,ds,dw,Sherman_OK,Mdense,Rinf,cgiter] = ...

Error in ==> linprog at 205

[x,fval,lambda,exitflag,output] = lipsol(f,A,B,Aeq,Beq,lb,ub,options,defaultopt,computeLambda);

Error in ==> Intprog at 18

[xm,fv,exitflag]=linprog(f,A,b,Aeq,beq,NFlb(:,1),NFup(:,1),[],opt);

Error in ==> Untitled at 4

[x,intf]=Intprog(f,A,b,[],[],[0;0;0],[inf;inf;inf]);

哪路大侠可以指导一下啊!(最不能理解的是课本Optimization terminated.出现了5次结果就出来了,我的一直没有结果)

总结

以上是生活随笔为你收集整理的matlab optimization terminated,求助Optimization terminated. 的问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。