穷举法求解0-1整数规划的matlab程序(原创)

合集下载

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题Matlab是一种强大的数学计算工具,可以用于求解线性规划和整数规划问题。

本文将详细介绍如何使用Matlab来求解这两类问题。

一、线性规划问题的求解方法线性规划问题是一类常见的数学优化问题,其目标是在一组线性约束条件下,找到使目标函数取得最大(或者最小)值的变量取值。

以下是求解线性规划问题的普通步骤:1. 定义目标函数和约束条件首先,需要明确线性规划问题的目标函数和约束条件。

目标函数是需要最大化或者最小化的函数,通常是一个线性函数。

约束条件是对变量的一组线性不等式或者等式限制。

例如,假设我们要最大化目标函数 f(x) = 3x1 + 4x2,同时满足以下约束条件:2x1 + x2 ≤ 10x1 + 3x2 ≤ 12x1, x2 ≥ 02. 构建模型将目标函数和约束条件转化为Matlab中的矩阵和向量形式。

可以使用矩阵A 表示约束条件的系数矩阵,向量b表示约束条件的右侧常数向量,向量c表示目标函数的系数向量。

在上述例子中,可以定义矩阵A、向量b和向量c如下:A = [2, 1; 1, 3]b = [10; 12]c = [-3; -4]3. 求解线性规划问题使用Matlab的线性规划求解函数linprog来求解线性规划问题。

该函数的基本语法如下:[x, fval, exitflag] = linprog(c, A, b)其中,x是最优解向量,fval是最优解的目标函数值,exitflag是求解器的退出标志。

继续以上述例子为例,可以使用以下代码求解线性规划问题:[x, fval, exitflag] = linprog(c, A, b)4. 结果解读最优解向量x即为线性规划问题的最优解。

最优解的目标函数值fval表示在最优解下目标函数的取值。

退出标志exitflag用于判断求解器是否成功找到最优解。

二、整数规划问题的求解方法整数规划问题是线性规划问题的一种扩展,其变量需要取整数值。

MATLAB求解编程

MATLAB求解编程

NIND=200;MAXGEN=2000;NV AR=55;max=5000000;P=0.3;M=3;N=5;L=7;A=[313000000 378000000 465000000] ;M=[20000 10000 30000 40000 40000] ;D=[165 150 200 100 150 300 200] ;f=[6000000;4000000;6000000;700000;5000000] ;V=[80;80;90;955;100] ;a=[15;20;24;20;15;20;20;15;20;24;20;15;24;20;15] ;C=[20;15;15;20;15;20;15;20;25;20;25;15;15;15;15;15;15;20;20;25;20;30;20;20;20;20;25;20;20;1 5;15;15;20;20;20;20] ;P=3;for i=l:NINDwhile 0<1for j=1:5chroml(i,j)=round(rand(i)) ;endif(sum(chroml(i,:),3)>=1)&(sum(chroml(i,:) ,3)<=P)breakendendendsumb=zeros(NIND,5) ;sumd=zeros(NIND,5);for i=l:NINDfor j=l:5if chrom1(i,j)=0chrom3(i,(2*(j-1)+1):(3*j))=0;chrom3(i, (7*(j-l)+1):(8*j))=0;elsewhile chroml(i,j)=l chrom3(i,(3*(j-1)+1):(3*j)=rand(i,3).* min(A[M(j)M(j)]);sumb(i,j)=sum(chrom3(i,(3*(j-l)+1):(3*j)),3);chrom3(j,(7*(j-1)+1):(7*j))=rand(1,7).*(rep([M(j)],[11]));sumd(i,j)=sum(chrom3(i,(7*(j-l)+1):(7*j)),3);chrom3(i,(7*(j-l)+1):(7*j))=(sumb(i,j)/sumd(i,j))*chrom3(i,(7*(j-l)+1):(7*j));if sumb(i,j)<=1.0*M(j)breakendendendendendchrom=[chroml chrorn2 chrom3];%产生初始种群[objvalue]=calobjvaluc(chrom,M,N,L,A,C, V,f);[fitvalue,restriction]=calfitvalue(objvalue,chrom,max,M,N,L,A,M,D,P); [bestindividual,bestfit,bestrestriction,nopos]=best(chrom,fitvalue,restriction);gem=0;while gen<MAXGEN,[objvalue]=calobjvalue(chrom,M,N,L,A,C,V,D);[fitvalue,restriction]=calfitvalue(objvalue,chrom,max,M,N,L,A,M,D,P); [bestindividuall,bestfitl,bestrestrictionl,noposl]=best(chrom,fitvalue,restriction);if bestrestriction>bestrestrictionlbestindividual=bestindividual l;besttit=-bestfitl;bestrestriction=bestrestriction l;endif bestrestriction =bestrcstrictionl)&(bestfit<bestfitl)bestindividual=beStindividual l;besttit=-bestfitl;bestrestriction=bestrestrictionl:endchrom(noposl,:)=bestindividual;[newchrom]=selection(chrom,fitvalue);[newchrom]=crossover(newchrom,M,N,1);[newchrom]=mutation(newchrom,P,M,N,1);[bestindividual2,bestfit2,bestrestrietion2,nopos2]=best(newchrom,fitvalue, restrietion); If bestrestriction>bestrestriction2bestindividual=bestindividual2;bestfit=bestfit2;bestrestriction=bestrestriction2;endif(bestrestriction=bestrestriction2)&(bestfit<bestfit2)bestindividual=bestindividual2;bestfit =-bestfit2;bestrestriction =bestrestriction2;endchrom=newchrom;gen=gen+1;endbestindividual,bestfit,bestrestriction%目标函数Function[objvalue]=ealobjvalue(chrom,M,N,L,A, V,f)Chrom1= chrom(:,1:N);Chrom2=chrom(:,(N+1):(N+M*N));chrom3= chrom (:,(N+M*N+1):(N+M*N+N*L));[NIND,NV AR]=size(chrom);for i=l:NINDfor j=l:Nu(i,j)=7300*sum(chrom2(i,(2*(j-l)+1):(2*j)),2);endendobjvalue=chrom2*a*7300+chrom3*c*3650+sqrt(u).* chroml*V+chroml*f; %适应度计算和约束判断Function[fitvalue restrection]=ealfitvalue(objvalue,chrom, max,M,N,l,A,M,D,P)Global gen;[NIND,NV AR]=size(chrom);Chroml=chrom (:,1:N);chrom2=Chrom(:,(N+1):(N+M*n));chrom3=Chrom(:,(N+M*N*N+1):(N+M*N+N*1));restriction=zeros(NIND,1);r=zeros(NIND,M);s=zeros(NIND,N);t=zeros(NIND,1);u=zeros(NIND,3);p=zeros(NIND,n);for i=l:NINDfor j=l:Mr(i,j)=A(j)-sum((chrom2(i,j:m:m*}n)),2);if r(i,j)<0restriction(i,1)=restriction(i,1)+1;endendfor j=l:lt(i,j)=sum((chrom3(i,j:l:n*1)),2)-D(j);if t(i,j)<0restriction(i,1)=-restriction(i,l)+1;endendfor j=l:ns(i,j)=chroml(i,j)*M(j)-sum(chrom2(i,(M*(j-1)+1):(M*j)),2);p(i,j)=abs(sum(chrom3(i,(1*(j-1)+1):(1*j)),2)-sum(chrom2(i,(M*(j-1)+1):(M*j)),2));if s(i,j)<0restrietion(i,1)=restriction(i,1)+l;endif p(i,j)>=l e-3restriction(i,1)=restriction(i,l)+l;endendu(i,1)=P-sum(chroml(i,:),2);if u(i,1)<0restriction(i,1)=restriction(i,l)+1;endu(i,2)=sum(chroml(i,:),2)-1;if u(i,2)<0restrigtion(i,1)=restriction(i,1)+l;endif(objvalue(i,1)<max)fitvaluc(i,1)=max-objvaluc(i,1);elsefitvalue(i,1)=0.0;endend%找出最优个体和最差个体function[bestindividual,bestfit,bestrestriction,nopos]=best(chrom,fitvalue,restriction); [NIND,NV AR]=size(chrom);pos=l;for i=l:NINDif restriction(pos,1)>restriction(i,1)pos=i;endif(restriction(pos,1)=restriction(i,1))&(fitvalue(pos,1)<fitvalue(i,1)) pos=i;endendbestindividual=chrom(pos,:);bestfit=fitvalue(pos);bestrestriction= restriction (pos,:);nopos=1;for i=l:NINDif restriction(nopos,1)<restriction(i,1)nopos=i;endif(restriction(nopos,1)=restriction(i,1))&(fitvalue(nopos,1)>fitvalue(i,1)) nopos=i;endend%选择Function[newchrom]=selection(chrom,fitvalue)totalfit=sum(fitvalue);fitvalue=:fitvalue/totalfit;fitvalue=cumsum(fitvalue);[NIND,NV AR]=size(chrom);ms=sort(rand(NIND,1));fitin=1;newin=1;while newin<=NINDif(ms(newin))<fitvalue(fitin)temp(newin,:)=chrom(fitin,:);newin=newin+1;elsefitin=fitin+1;endif fitin>=NINDfitin=NIND;endendnewchrom=temp;%交叉Function[newchrom]=crossover(chrom,M,N,1)global gen;[NIND,SVAR]=size(chrom);chrom1=chrom(:,l:n);chrom2=chrom(:, (N+1) : (N+M*N)) ;chrom3=chrom(:, (N+m*n+1) : (N+M*N+N*1)) ; newchrom=zeros(NIND,NV AR) ;P=0.75;for i=l:2:NIND-1if(rand<P)point=ceil(rand*(N-1));ifpoint<5newchrom(i,:)=[chroml(i,l:point)chromI(i+1,point+1:n) ... chrom2(i,l:M*point)chrom2(i+l,M*point+1:M*N) ... chrom3(i,1:l*point)chrom3(i+l,1*point+l:N*1)]; newchrom(i+l,:)=[chroml(i+l,1:point)chroml(i,point+l:n) ... chrom2(i+l,l:m*point)chrom2(i,M*point+l:M*N) ...chrom3(i+1,1:l*point)chrom3(i,1*point+l:N*1)];elsenewchrom(i,:)=chrom(i,:);newchrom(i+1,:)=chrom(i+l,:);endelsenewchrom(i,:)=chromo,:);newchrom(i+l,:)=chrom(i+l,:);endend%变异Function[newchrom]=mutation(chrom,P,M,N,L)global gen;FieldDR=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;20000 20000 10000 10000 30000 30000 40000 40000 40000 40000];RANGE=[0 0 0 0 0 0 0;165 150 200 100 150 300 200];[NIND,NV AR]=size(chrom);chroml=chrom(:,l:N);chrom2=chrom(:, (N+1):(N+M*N));chrom3=chrom(:, (N+M*N+1):(N+M*n+ 1));newchrom=zeros(NIND,NV AR);newchroml=zeros(NIND,N);newchrom2=zeros(NIND,M*N);newchrom3=zeros(NIND,N*1);for i=1:NINDfor j=l:Nif chrom l(i,j)=0newchrom2(i,(M*(j-1)+1):(M*j))=0;newchrom3(i,1*(j-l)+1):(1*j)=0;elseif round(rand)=0newchrom2(i,(M*(j-1)+1):(M*j))=chrom2(i,(M*(j-1)+1):(M*j)+ ...(FieldDR(2,(M*(j-1)+1):(M*j))=chrom2(i,(M*(j-1)+1):(M*j)))*(1-rand^((1-gen/2000)^10));newchrom3(i,(1*(j-1)+1):(1*j)=chrom3(i,(1*(j-1)+1):(1*j) + ...([165 150 200 100 150 300 200]-chrom3(i,(1*(j-1)+1):(1*j)))*(1-rand^((1*gen/2000)^10));elseif round(rand)=lnewChrom2(i,(M*(j-1)+1):(M*j) ) = Chrom2 (i,(M*(j-1)+1):(M*j)) ...(chrom2(i,(M*(j-1)+1):(M*j))-[00])*(1-rand^((1-gen/2000)^10));newchrom3(i,(1*(j-1)+1):(1*j)):chrom3(i,(1*(j-1)+1):(1*j)) ...(chrom3(i,(1*(j-1)+1):(N))-[0 0 0 0 0 0 0 0])*(1-rand^((1*gen/2000)^10));endendendendnewchrom1=chrom1;newchrom=[newchrom1 newchrom2 newchrom3];endendnewchrom1=chrom1;newchrom=[newchrom1 newchrom2 newchrom3];bestindividualbestindividual=columms 1 through 171.0000 1.0000 0 0 1.000 80.3686 20.6636 0 0 23.7458 50.7648 63.57695 0 0 123.6753 39.7648 19.5769 0 0 289.6753 columms 18 through 3419.5849 50.7648 45.7985 64.2875 19.9768 53.6843 135.6752 32.6437 24.5342 27.9485 9.9873 24.7638 125.7958 27.8745 columms 35 through 510 0 0 0 0 0 00 0 0 0 0 0 0columms 52 through 5595.7482 35.9862 83.4768 28.4769 74.5867 113.4786 44.4873。

穷举法求解0-1整数规划的matlab程序(原创)

穷举法求解0-1整数规划的matlab程序(原创)

穷举法求解0-1整数规划的matlab程序(原创)0-1整数规划有很广泛的应用背景,比如指派问题,背包问题等等,实际上TSP 问题也是一个0-1问题,当然这些问题都是NP问题,对于规模较大的问题用穷举法是没有办法在可接受的时间内求得最优解的,本程序只不过是一个练习,得意之处是用递归法把所有解都排列出来。

另:胡运权所著的《运筹学基础及应用(第三版)》第97页的例3,我用本程序求解得到的结果是:最优解是x*=(1,0, 0, 0, 0),最优值是f(x*)=8,但书求得最优解是x*=(1,0, 1, 0, 0),最优值是f(x*)=4,是不是书中写错了,请大家验证。

以下是源程序,大家可以任意使用无版权问题,另外,如果大家有大规模的0-1规划的问题也希望提供给我,谢谢。

%%% 用隐穷举法求解0-1线性规划%%% min c'x%%% s.t. Ax<=bfunction [y,fval]=qiongju(c,A,b)guimo=length(c);suoyoujie=lingyi(guimo);?? % 所有可能解的排列[m,n]=size(A);opt_solution=inf; % 解的上界for i=1:2^guimoyueshu=A*suoyoujie(i,:)';for j=1:mif yueshu(j)>b(j)?? % 不满足某约束条件,则不是解break;endendif j==m?? % 满足所有约束,则计算该的目标值,并与当前最优解相比较val=c'*suoyoujie(i,:)';if val<=opt_solutionopt_solution=val;y=suoyoujie(i,:);endendendfval=opt_solution;function y=lingyi(k)if k==3y=[0 0 0;0 0 1;0 1 0;0 1 1;1 0 0;1 0 1;1 1 0;1 1 1];elselc=2^(k-1);xinlie1=zeros(lc,1);xinlie2=ones(lc,1);xinlie=[xinlie1;xinlie2];pre_lingyi=lingyi(k-1);pre_lingyi=[pre_lingyi;pre_lingyi];y=[xinlie,pre_lingyi];endFeedback忘了说了,变量个数至少是3个,要不然没办法运行了。

Matlab程序0-1整数线性规划

Matlab程序0-1整数线性规划

Matlab程序0-1整数线性规划0-1整数线性规划Matlab程序x = bintprog(f)x = bintprog(f, A, b)x = bintprog(f, A, b, Aeq, beq)x = bintprog(f, A, b, Aeq, beq, x0)x = bintprog(f, A, b, Aeq, Beq, x0, options)[x, fval] = bintprog(...)[x,fval, exitflag] = bintprog(...)[x, fval, exitflag, output] = bintprog(...)这里x是问题的解向量f是由目标函数的系数构成的向量A是一个矩阵,b是一个向量A,b和变量x={x1,x2,…,xn}一起,表示了线性规划中不等式约束条件A,b是系数矩阵和右端向量。

Aeq和Beq表示了线性规划中等式约束条件中的系数矩阵和右端向量。

X0是给定的变量的初始值options为控制规划过程的参数系列。

返回值中fval是优化结束后得到的目标函数值。

exitflag=0表示优化结果已经超过了函数的估计值或者已声明的最大迭代次数;exitflag>0表示优化过程中变量收敛于解X,exitflag<0表示计算不收敛。

output有3个分量,iterations表示优化过程的迭代次数,cgiterations表示PCG迭代次数,algorithm表示优化所采用的运算规则。

在使用linprog()命令时,系统默认它的参数至少为1个,但如果我们需要给定第6个参数,则第2、3、4、5个参数也必须给出,否则系统无法认定给出的是第6个参数。

遇到无法给出时,则用空矩阵“[]”替代。

例如max=193*x1+191*x2+187*x3+186*x4+180*x5+185*x6; %f 由这里给出st.x5+x6>=1;x3+x5>=1;x1+x2<=1;x2+x6<=1;x4+x6<=1;%a、b由不等关系给出,如没有不等关系,a、b取[]x1+x2+x3+x4+x5+x6=1; %aep、bep由等式约束给出代码如下f=[-193;-191;-187;-186;-180;-185;];a=[0 0 0 0 -1 -1;0 -1 0 0 -1 0;1 1 0 0 0 0;0 1 0 0 0 1;0 0 0 1 0 1]; b=[-1,-1,1,1,1]';aeq=[1 1 1 1 1 1];beq=[3];x=bintprog(f,a,b,aeq,beq)注意目标值为最大值时应乘以-1化为求最小值;不等约束为>=时应乘以-1化为<=;。

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题Matlab是一种功能强大的数学软件,可以用于求解线性规划和整数规划问题。

在本文中,我将详细介绍如何使用Matlab来解决这些问题。

首先,让我们来了解一下线性规划和整数规划的概念。

线性规划是一种数学优化方法,用于在给定的一组线性约束条件下,寻觅使目标函数最优化的变量取值。

整数规划是线性规划的一种扩展,要求变量的取值必须为整数。

在Matlab中,我们可以使用优化工具箱来求解线性规划和整数规划问题。

优化工具箱提供了一系列函数和工具,可以匡助我们定义问题、设置约束条件和求解最优解。

首先,我们需要定义目标函数和约束条件。

目标函数是我们希翼最小化或者最大化的函数,约束条件是对变量的限制条件。

在Matlab中,我们可以使用符号变量来定义目标函数和约束条件。

例如,假设我们有一个线性规划问题,目标函数为最小化函数f(x) = 2x1 + 3x2,约束条件为2x1 + x2 >= 10,x1 + 3x2 >= 15,x1 >= 0,x2 >= 0,其中x1和x2是变量。

在Matlab中,我们可以使用sym函数来定义符号变量。

代码示例如下:```matlabsyms x1 x2f = 2*x1 + 3*x2;constraint1 = 2*x1 + x2 >= 10;constraint2 = x1 + 3*x2 >= 15;```接下来,我们需要将目标函数和约束条件转换为优化工具箱可以理解的形式。

我们可以使用matlabFunction函数将目标函数和约束条件转换为Matlab函数。

代码示例如下:```matlabf = matlabFunction(f);constraint1 = matlabFunction(constraint1);constraint2 = matlabFunction(constraint2);```现在,我们可以使用优化工具箱中的linprog函数来求解线性规划问题。

0-1规划1

0-1规划1

0-1型整数线性规划0-1型整数线性规划是一类变量仅取0或1的特殊的整数规划;一般描述如下⎩⎨⎧===10),,1(..min 或取n i A t s f i x bx cx 其中),,(,)(,),,(),,,(111'=='==⨯m n m ij n n b b a A x x c c b x c 。

此时的决策变量称为0-1变量或二进制变量。

在实际问题中,如果引进0-1变量,就可以把各种需要分别讨论的线性(或非线性)规划问题统一在一个问题中讨论。

13.6.2 求解0-1线性规划的隐牧举法分枝定界法就是一种解整数规划的隐牧举法,0-1规划可以通过增加限定10≤≤i x 的整数规划来求解。

对于n 个变量的0-1规划,如果使用穷举法,则需要检查2n 个取值组合,这显然不是聪明的办法。

这里所说的隐牧举法,是根据0-1规划的特点,设计的一些方法,只检查变量组合的一部分,而不是全部。

值得说明的是,对于有些问题(例如一部分变量是0-1变量的混合线性规划)隐牧举法有时是不适用的,还得使用穷举法。

隐牧举法原理与算法步骤:(ⅰ)记∞=f f 0,将n 个决策变量构成的x 的2n 个取值组合按二进制(或某种顺序)排列;(ⅱ)按上述顺序对x 的取值首先检验0f f cx ≤=是否成立,若不成立则放弃该取值的x ,按次序换(ⅰ)中下一x 的取值重复上述过程;若成立,则转下一步;(ⅲ)对x 逐一检验b x A ≤中的m 个条件是否满足,一旦某一条件不满足便停止检验后面的条件,而放弃这一x 的取值,按次序换(ⅰ)中下一x 的取值执行(ⅱ),若m 个条件全满足,则转下一步;(ⅳ)记),,min(00f f f = 按次序换(ⅰ)中下一x 的取值,执行(ⅱ); (ⅴ)最后一组满足b x cx A f f ≤≤=和0的x 即为最优解。

求解0-1型整数线性规划的MATLAB 程序Ⅰ、转换十进制数为二进制数的程序如下是枚举和隐枚举程序中要调用的把十进制数转换为二进制数的程序。

第2章 0-1规划

第2章 0-1规划

用自编函数itgm: [r1,r2,ex1,ex2]=itgm(g,a,b,aq,bq) 定出决策变量x1,x2,x3的取值范围: x1:0~3 x2:0~2 x3:0~2
下面用枚举法求解:
k=1; for x1=0:3 for x2=0:2 for x3=0:2 q=[x1 x2 x3]';p=a*q; if p<=b z(k)=f*q; v(k,:)=q'; k=k+1; end end end end [zm,mi]=max(z); x=v(mi,:); zv=[z',v];
解得: ex =1 fv =53
x= 0 1 0 1 0 0 0 0 1
则当x1=0,x2=1,x3=0,x4=1,x5=0, x6=0,x7=0,x8=0,x9=1时,目标函数取 得最小值53。
例2-4 新产品研制,某工厂计划试制4种新产品A1、A2、 A3、A4。现有科研经费40万元,科技人员60名。各新产 品的试制费用、所需科技人员及预期的年利润如表2-1所 示。如果研制产品A2必须先研制产品A1,但产品A1的研 制与产品A2无关。另外该厂想至少研制其中的两种新产 品。问决策者应如何决定研制计划,使该厂获得利润最 大?
表2-6
货物编号i
1
2
3
单位重量(t)
3
4
5
单位价值ci
4
5
6
解:设第i种货物装载件的数量为xi(i=1,2,3),则所述 问题可表为:
max z 4x1 5x2 6x3
s.t.
3x1 4x2 5x3 10
xi
0, xi为整数(i=1,2,3)
f=[4,5,6]; a=[3,4,5]; b=10;

MATLAB枚举法求解0-1规划源程序及应用实例

MATLAB枚举法求解0-1规划源程序及应用实例

M文件function [intx,intf] = ZeroOneprog(c,A,b,x0)%目标函数系数向量,c%不等式约束矩阵,A%不等式约束右端向量,b%初始整数可行解,x0%目标函数取最小值时的自变量值,intx%目标函数的最小值,intfsz = size(A);if sz(2) < 3[intx,intf] = Allprog(c,A,b); %穷举法else[intx,intf] = Implicitprog(c,A,b,x0); %隐枚举法endfunction [intx,intf] = Allprog(c,A,b);sz_A = size(A);rw = sz_A(1);col = sz_A(2);minf = inf;for i=0:(2^(col)-1) %枚举空间x1 = myDec2Bin(i,col); %十进制转化为二进制if A*x1 >= b %是否满足约束条件f_tmp = c*x1;if f_tmp < minfminf = f_tmp;intx = x1;intf = minf;elsecontinue;endelsecontinue;endendfunction [intx,intf] = Implicitprog(c,A,b,x0)%隐枚举法sz_A = size(A);rw = sz_A(1);col = sz_A(2);minf = c*x0;A = [A;-c];b = [b;-minf]; %增加了一个限制分量for i=0:(2^(col)-1)x1 = myDec2Bin(i,col);if A*x1 >= bf_tmp = c*x1;if f_tmp < minfminf = f_tmp;b(rw+1,1) = -minf; %隐枚举法与穷举法的区别在于此句 intx = x1;intf = minf;elsecontinue ;endelsecontinue ;endendfunction y = myDec2Bin(x,n) %十进制转化为二进制str = dec2bin(x,n);for j=1:ny(j) = str2num(str(j));endy = transpose(y);求解实例求解下面0-1规划()⎪⎩⎪⎨⎧=≥++++≥++++++++=105224287453232min 54321543215432154321或,x ,x ,x ,x x x x x x x x x x x x ,s.t.x x x x x x f在MATLAB 命令框在输入下列命令:>> c=[1 2 3 1 1];>> A=[2 3 5 4 7;1 1 4 2 2];>> b=[8;5];>> x0=[1;1;1;1;1]’;>> [intx,intf]=ZetoOneprog(c,A,b,x0)所得结果如下:intx =111 intf =3。

matlab解整数规划程序

matlab解整数规划程序

function [x,y]=ILP(f,G,h,Geq,heq,lb,ub,x,id,options)global upper opt c x0 A b Aeq beq ID options;if nargin<10options=optimset({});options.Display='off';rgeScale='off';endif nargin<9,id=ones(size(f));endif nargin<8,x=[];endif nargin<7 ||isempty(ub),ub=inf*ones(size(f));endif nargin<6 ||isempty(lb),lb=zeros(size(f));endif nargin<5,heq=[];endif nargin<4,Geq=[];endupper=inf;c=f;x0=x;A=G;b=h;Aeq=Geq;beq=heq;ID=id;ftemp=ILP(lb(:),ub(:));x=opt;y=upper;%下面是子函数function ftemp=ILP(vlb,vub)warning off all;global upper opt c x0 A b Aeq beq ID options;[x,ftemp,how]=linprog(c,A,b,Aeq,beq,vlb,vub,x0,options);if how <=0return;end;if ftemp-upper>0.00005 %in order to avoid errorreturn;end;if max(abs(x*ID-round(x*ID)))<0.00005if upper-ftemp>0.00005 %in order to avoid erroropt=x';upper=ftemp;return;elseopt=[opt;x'];return;end;end;notintx=find(abs(x-round(x))>=0.00005); %in order to avoid error intx=fix(x);tempvlb=vlb;tempvub=vub;if vub(notintx(1,1),1)>=intx(notintx(1,1),1)+1;tempvlb(notintx(1,1),1)=intx(notintx(1,1),1)+1;ftemp=ILP(tempvlb,vub);end;if vlb(notintx(1,1),1)<=intx(notintx(1,1),1)tempvub(notintx(1,1),1)=intx(notintx(1,1),1);ftemp=ILP(vlb,tempvub); end;。

0-1型整数线性规划模型理论

0-1型整数线性规划模型理论

0-1型整数线性规划模型理论(1) 0-1型整数线性规划0-1型整数线性规划是一类特殊的整数规划,它的变量仅取值0或1.其模型如下:T min ..01(1,2,,)j f s t x j n =⎧⎨=⎩c xAx =b 取或 其中()T 12,,,,n c c c =c ()T 12,,,,n x x x =x (),ij m na ⨯=A ()T 12,,,.mb b b =b 称此时的决策变量为0-1变量,或称二进制变量.在实际问题中,如果引进0-1变量,就可以把各种需要分别讨论的线性(或非线性)规划问题统一在一个问题中讨论了.(2) 求解0-1型整数线性规划的分支界定法Matlab 指令x = bintprog(f,A,b): 求解0-1型整数线性规划,用法类似于linprog.x = bintprog(f,A,b,Aeq,beq): 求解下述线性规划问题:T min ,z =f x ≤Ax b ,≤Ax b ,⋅≤Aeq x beq ,x 分量取0或1.x = bintprog(f,A,b,Aeq,beq,x0): 指迭代初值x0,如果没有不等式约束,可用[]代替A,b 表示默认,如果没有等式约束,可用[]代替Aeq 和beq 表示默认;用[x,fval]代替上述各命令行中左边的x,则可得到最优解处的函数值fval.例如:求解0-1型整数线性规划模型:1min ni i Z x ==∑()()()12345356894679123471256758129232200..20002001(1,2,,9)j x x x x x x x x x x x x x x x x x x x s t x x x x x x x x x x x j ⎧-++++≤-⎪-++++≤-⎪⎪-+++≤-⎪⎪--+≤⎪-≤⎪⎨--+≤⎪⎪-≤⎪-+≤⎪⎪--+≤⎪⎪==⎩或用Matlab 软件编程可解得1236791x x x x x x ======,其他变量为0,共六门课,满足所给条件, Matlab程序代码如下:c = ones(1,9);a =[-1,-1,-1,-1,-1,0,0,0,0;0,0,-1,0,-1,-1,0,-1,-1;0,0,0,-1,0,-1,-1,0,-1;-1,-1,2,0,0,0,0,0,0;0,0,0,1,0,0,-1,0, 0;-1,-1,0,0,2,0,0,0,0;0,0,0,0,0,1,-1,0,0;0,0,0,0,-1,0,0,1,0;-1,-1,0,0,0,0,0,0,2];b = [-2;-3;-2;0;0;0;0;0;0];A = [5 4 4 3 4 3 2 2 3];x = bintprog(c,a,b)f = A*x运行结果:Optimization terminated.x =111111f =20。

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题Matlab是一种强大的数值计算软件,可以用于求解线性规划和整数规划问题。

在本文中,我将详细介绍如何使用Matlab来解决这两类问题。

1. 线性规划问题的求解步骤:(1) 定义决策变量:根据实际问题,定义需要求解的决策变量,并给出变量的取值范围。

(2) 建立目标函数:根据问题的要求,建立线性规划的目标函数,并确定是最大化还是最小化。

(3) 设置约束条件:根据问题的约束条件,建立线性规划的约束条件,并将其转化为线性等式或者不等式。

(4) 求解线性规划问题:使用Matlab中的线性规划求解函数linprog来求解线性规划问题。

该函数的基本用法为:[x, fval, exitflag, output] = linprog(f, A, b, Aeq, beq, lb, ub)其中,f为目标函数的系数向量,A和b分别为不等式约束条件的系数矩阵和右侧向量,Aeq和beq分别为等式约束条件的系数矩阵和右侧向量,lb和ub分别为决策变量的下界和上界。

(5) 分析结果:根据求解结果,分析最优解的取值以及对应的目标函数值,判断是否满足问题的要求。

2. 整数规划问题的求解步骤:(1) 定义决策变量:根据实际问题,定义需要求解的整数决策变量,并给出变量的取值范围。

(2) 建立目标函数:根据问题的要求,建立整数规划的目标函数,并确定是最大化还是最小化。

(3) 设置约束条件:根据问题的约束条件,建立整数规划的约束条件,并将其转化为线性等式或者不等式。

(4) 求解整数规划问题:使用Matlab中的整数规划求解函数intlinprog来求解整数规划问题。

该函数的基本用法为:[x, fval, exitflag, output] = intlinprog(f, intcon, A, b, Aeq, beq, lb, ub)其中,f为目标函数的系数向量,intcon为整数决策变量的索引向量,A和b分别为不等式约束条件的系数矩阵和右侧向量,Aeq和beq分别为等式约束条件的系数矩阵和右侧向量,lb和ub分别为决策变量的下界和上界。

MATLAB求解线性规划(含整数规划和01规划)问题

MATLAB求解线性规划(含整数规划和01规划)问题

MATLAB 求解线性规划(含整数规划和0-1规划)问题线性规划是数学规划中的一类最简单规划问题,常见的线性规划是一个有约束的,变量范围为有理数的线性规划。

如:max 712z x y =+9430045200s.t 310300,0x y x y x y x y +≤⎧⎪+≤⎪⎨+≤⎪⎪≥⎩对于这类线性规划问题,数学理论已经较为完善,可以有多种方法求解此类问题。

但写这篇文章的目的并不是为了介绍数学理论,我们这里主要讲解如果利用工具求解这一类线性规划问题。

最著名,同时也是最强大的数学最优化软件是LINGO/LINDO 软件包,它能够求解多种的数学规划问题,同时还提供了多种的分析能力。

但LINGO 软件并不容易上手,同时,应用LINGO 的场合一般是大规模的线性规划问题,小小的线性规划完全可以不使用它。

一个更受科研人员欢迎的数学软件是MATLAB ,它以功能强大而称著,并有数学软件中的“航空母舰”之称。

我们这里就是要学习使用MATLAB 软件求解线性规划(含整数规划和0-1规划)问题。

为了使得不熟悉MATLAB 的人员也能够使用MATLAB 进行线性规划问题求解,本文将对MATALB 中使用到的函数和过程以及结果进行详细的分析,最后会对每一个问题都给出一个可以完全“套用”的MATLAB 程序。

我们首先从上面的线性规划问题开始,为了便于表达,将上面的式子写成矩阵形式:max 712z x y =+9430045200s.t 310300,0x y x y ⎧⎛⎫⎛⎫⎛⎫⎪ ⎪ ⎪∙≤⎪ ⎪ ⎪ ⎪⎨⎝⎭ ⎪ ⎪⎝⎭⎝⎭⎪⎪≥⎩于是约束就表达为了一个Ax b ≤不等式。

求解MATLAB 线性规划时,最常用的函数是linprog 函数,下面来介绍一下这个函数的使用。

打开MATLAB 帮助文档(PS:帮助文档的内容是最全的,只要你的英文过了专业8级),可以看到linprog 函数求解的是具有如下标准形式的线性规划:min .Tx f x A X b s t Aeq X beq lb x ub ≤⎧⎪=⎨⎪≤≤⎩公式中各符号的意义是自明的,在这里简单介绍下,首先MATLAB 中求解的是目标函数是最小值的问题,但如果我们的目标函数是求最大值,可以通过对目标函数中每一项中乘以-1,将求最大值问题转化为求最小值问题;A ,b 分别为不等式约束中的系数矩阵。

基于MATLAB的非线性0-1规划的求解

基于MATLAB的非线性0-1规划的求解

4 1基于MATLAB 的非线性0-1规划的求解学 生:易棉生指导教师:宋来忠三峡大学理学院摘要:本文主要研究非线性0-1整数规划的解法。

首先,通过对传统求解方法的研究,提出从0-1整数规划的变量只取值0和1这个特点来求解,为利用好这个特点,构造了一种数据结构——组合树,还根据目标函数和约束条件所含的变量是否被包含在解中取值为1的变量集中,将0-1整数规划的解细分为目标特殊解和约束特殊解。

然后,把这个特点具体化为4条性质。

根据这些性质,设计出合理的算法,并用MATLAB 实现该算法。

实验表明,该算法是有效的。

Abstract: In this paper, the problem about solving nonlinear 0-1 integer programming is studied. Firstly the view that we can use the feature that the variables of 0-1 integer programming only have two values 0 and 1 is raised after discussing some traditional algorithms. To express the feature, a new tree structure, called combination tree in the paper is given and also object-satisfied solution and constrain-satisfied solution is defined, based on whether the variables with the value 1 in objective function and constrained condition belong to the variables with the value 1 in solution. Then it can be specified by 4 properties. According to these properties, a new algorithm is designed and implemented with MATLAB language. From the experiment, it is proved that the algorithm is effective.关键词:0-1规划 非线性 组合树 解的标记 MATLABkey words: 0-1 integer programming; nonlinear; combination tree; the mark of solution; MA TLAB前言本文研究的模型可是:111min ()..()0()0{0,1}f x Ax b A x b s t C x C x x ≤=⎧⎪≤=⎨⎪∈⎩,,,,(1)其中,()f x 都是非线性函数,A 、b 、1A 、1b 是矩阵,1()()C x C x 、非线性矩阵函数。

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题引言概述:Matlab是一种强大的数学计算软件,广泛应用于科学、工程和金融等领域。

在数学优化中,线性规划和整数规划问题是常见的优化问题。

本文将介绍如何使用Matlab求解线性规划和整数规划问题,并详细阐述求解过程和注意事项。

正文内容:1. 线性规划问题求解1.1 线性规划问题的定义线性规划问题是在一组线性约束条件下,最大化或者最小化线性目标函数的问题。

在Matlab中,可以使用线性规划函数linprog进行求解。

1.2 线性规划问题的建模在求解线性规划问题之前,需要将问题转化为标准的线性规划形式。

这包括定义决策变量、约束条件和目标函数。

在Matlab中,可以使用矩阵和向量表示线性约束条件和目标函数。

1.3 线性规划问题的求解步骤求解线性规划问题的普通步骤包括定义问题、建模、调用linprog函数进行求解、获取结果并进行分析。

在Matlab中,可以使用linprog函数指定问题的目标函数、约束条件和变量范围,然后通过调用该函数获得最优解。

2. 整数规划问题求解2.1 整数规划问题的定义整数规划问题是在线性规划问题的基础上,对决策变量增加整数限制的问题。

在Matlab中,可以使用整数线性规划函数intlinprog进行求解。

2.2 整数规划问题的建模与线性规划问题类似,整数规划问题也需要定义决策变量、约束条件和目标函数。

不同之处在于,决策变量需要增加整数限制。

在Matlab中,可以使用矩阵和向量表示整数约束条件和目标函数。

2.3 整数规划问题的求解步骤整数规划问题的求解步骤与线性规划问题类似,只是需要调用intlinprog函数进行求解。

在Matlab中,可以通过指定问题的目标函数、约束条件、变量范围和整数约束条件来调用该函数,然后获取最优解。

总结:在本文中,我们介绍了如何使用Matlab求解线性规划和整数规划问题。

对于线性规划问题,需要定义问题、建模、调用linprog函数进行求解,并获取结果进行分析。

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题Matlab是一种强大的数学软件工具,可以用于求解各种数学问题,包括线性规划和整数规划问题。

在本文中,我们将详细介绍如何使用Matlab来求解这两类问题,并提供一些示例和数据来帮助您更好地理解。

一、线性规划问题的求解线性规划问题是指在一定的约束条件下,求解一个线性目标函数的最大值或最小值。

在Matlab中,可以使用线性规划工具箱来解决这类问题。

1. 定义线性规划问题首先,我们需要定义线性规划问题的目标函数和约束条件。

目标函数是我们希望最大化或最小化的线性表达式,约束条件是一组线性不等式或等式。

例如,我们考虑以下线性规划问题:```最大化目标函数:f(x) = 3x1 + 5x2约束条件:2x1 + x2 <= 10x1 + 3x2 <= 12x1, x2 >= 0```2. 求解线性规划问题在Matlab中,可以使用`linprog`函数来求解线性规划问题。

该函数的基本语法如下:[x, fval] = linprog(f, A, b, Aeq, beq, lb, ub)```其中,`f`是目标函数的系数矩阵,`A`和`b`是不等式约束条件的系数矩阵和常数向量,`Aeq`和`beq`是等式约束条件的系数矩阵和常数向量,`lb`和`ub`是变量的下界和上界。

对于上述线性规划问题,我们可以使用以下代码进行求解:```matlabf = [-3; -5];A = [-2, -1; -1, -3];b = [-10; -12];lb = [0; 0];[x, fval] = linprog(f, A, b, [], [], lb);```3. 解释结果求解得到的结果保存在变量`x`和`fval`中。

其中,`x`是最优解向量,`fval`是最优解对应的目标函数值。

对于上述线性规划问题,求解结果如下:```x = [2; 4]fval = -26这表示在满足约束条件的情况下,目标函数的最大值为-26,最优解为x1=2,x2=4。

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题Matlab是一种强大的数学软件,可以用于求解各种数学问题,包括线性规划和整数规划问题。

本文将详细介绍如何使用Matlab来求解这两类问题。

一、线性规划问题的求解线性规划是一种优化问题,其目标是在给定的约束条件下,最大化或者最小化一个线性目标函数。

下面是一个线性规划问题的标准形式:最小化:C^T * X约束条件:A * X <= BX >= 0其中,C是一个n维向量,X是一个n维向量,A是一个m×n维矩阵,B是一个m维向量。

在Matlab中,可以使用linprog函数来求解线性规划问题。

下面是一个示例:```matlabC = [-1; -2]; % 目标函数的系数向量A = [1, 1; -1, 2; 3, 2]; % 约束条件的系数矩阵B = [2; 2; 6]; % 约束条件的右侧常数向量LB = [0; 0]; % 变量的下界UB = []; % 变量的上界[X, FVAL, EXITFLAG] = linprog(C, A, B, [], [], LB, UB);```在上述示例中,C是一个2维向量,A是一个3×2维矩阵,B是一个3维向量。

linprog函数的输出参数X是最优解,FVAL是最优解对应的目标函数值,EXITFLAG是求解器的退出标志。

二、整数规划问题的求解整数规划是一种线性规划问题的扩展,其变量需要取整数值。

在Matlab中,可以使用intlinprog函数来求解整数规划问题。

下面是一个示例:```matlabC = [-1; -2]; % 目标函数的系数向量A = [1, 1; -1, 2; 3, 2]; % 约束条件的系数矩阵B = [2; 2; 6]; % 约束条件的右侧常数向量LB = [0; 0]; % 变量的下界UB = []; % 变量的上界INTCON = [1; 2]; % 整数变量的索引[X, FVAL, EXITFLAG] = intlinprog(C, INTCON, A, B, [], [], LB, UB);```在上述示例中,INTCON是一个整数变量的索引向量,表示哪些变量需要取整数值。

MATLAB枚举法求解 规划源程序及应用实例

MATLAB枚举法求解 规划源程序及应用实例

M文件function [intx,intf] = ZeroOneprog(c,A,b,x0)%目标函数系数向量,c%不等式约束矩阵,A%不等式约束右端向量,b%初始整数可行解,x0%目标函数取最小值时的自变量值,intx%目标函数的最小值,intfsz = size(A);if sz(2) < 3[intx,intf] = Allprog(c,A,b); %穷举法else[intx,intf] = Implicitprog(c,A,b,x0); %隐枚举法endfunction [intx,intf] = Allprog(c,A,b);sz_A = size(A);rw = sz_A(1);col = sz_A(2);minf = inf;for i=0:(2^(col)-1) %枚举空间x1 = myDec2Bin(i,col); %十进制转化为二进制if A*x1 >= b %是否满足约束条件if f_tmp < minfminf = f_tmp;intx = x1;intf = minf;elsecontinue;endelsecontinue;endendfunction [intx,intf] = Implicitprog(c,A,b,x0)%隐枚举法sz_A = size(A);rw = sz_A(1);col = sz_A(2);minf = c*x0;A = [A;-c];b = [b;-minf]; %增加了一个限制分量for i=0:(2^(col)-1)x1 = myDec2Bin(i,col);if A*x1 >= bif f_tmp < minfminf = f_tmp;b(rw+1,1) = -minf; %隐枚举法与穷举法的区别在于此句intx = x1;intf = minf;elsecontinue;endelsecontinue;endendfunction y = myDec2Bin(x,n) %十进制转化为二进制str = dec2bin(x,n);for j=1:ny(j) = str2num(str(j));endy = transpose(y);求解实例求解下面0-1规划在MATLAB命令框在输入下列命令:>> c=[1 2 3 1 1];>> A=[2 3 5 4 7;1 1 4 2 2];>> b=[8;5];>> x0=[1;1;1;1;1]’;>> [intx,intf]=ZetoOneprog(c,A,b,x0) 所得结果如下:intx =111intf =3。

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题

Matlab求解线性规划和整数规划问题线性规划和整数规划是运筹学中常见的优化问题,可以通过数学模型来描述。

Matlab是一种强大的数值计算软件,提供了丰富的工具和函数,可以用于求解线性规划和整数规划问题。

本文将详细介绍如何使用Matlab来求解这两类问题。

一、线性规划问题的求解方法:线性规划问题的数学模型可以表示为:```max/min c'xs.t. Ax <= bx >= 0```其中,c是目标函数的系数向量,x是决策变量向量,A是约束矩阵,b是约束向量。

Matlab提供了linprog函数来求解线性规划问题。

该函数的基本用法如下:```[x, fval, exitflag, output, lambda] = linprog(c, A, b, Aeq, beq, lb, ub)```其中,c是目标函数的系数向量,A和b是不等式约束的系数矩阵和向量,Aeq 和beq是等式约束的系数矩阵和向量,lb和ub是决策变量的下界和上界。

函数的输出包括最优解x、最优值fval、求解状态exitflag、求解过程信息output和对偶变量lambda。

下面通过一个例子来演示如何使用linprog函数求解线性规划问题。

例:求解线性规划问题```max 3x1 + 4x2s.t. x1 + 2x2 <= 52x1 + x2 <= 4x1, x2 >= 0```首先,我们需要将问题转化为Matlab中的数学模型。

目标函数系数向量c为[3; 4],约束矩阵A为[1 2; 2 1],约束向量b为[5; 4]。

然后,调用linprog函数进行求解:```c = [3; 4];A = [1 2; 2 1];b = [5; 4];lb = zeros(2, 1);[x, fval, exitflag, output, lambda] = linprog(-c, A, b, [], [], lb);```由于linprog函数求解的是最小化问题,而我们需要求解的是最大化问题,因此需要将目标函数系数取反。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

穷举法求解0-1整数规划的matlab程序
(原创)
0-1整数规划有很广泛的应用背景,比如指派问题,背包问题等等,实际上TSP 问题也是一个0-1问题,当然这些问题都是NP问题,对于规模较大的问题用穷举法是没有办法在可接受的时间内求得最优解的,本程序只不过是一个练习,得意之处是用递归法把所有解都排列出来。

另:胡运权所著的《运筹学基础及应用(第三版)》第97页的例3,我用本程序求解得到的结果是:最优解是x*=(1,0, 0, 0, 0),最优值是f(x*)=8,但书求得最优解是x*=(1,0, 1, 0, 0),最优值是f(x*)=4,是不是书中写错了,请大家验证。

以下是源程序,大家可以任意使用无版权问题,另外,如果大家有大规模的0-1规划的问题也希望提供给我,谢谢。

%%% 用隐穷举法求解0-1线性规划
%%% min c'x
%%% s.t. Ax<=b
function [y,fval]=qiongju(c,A,b)
guimo=length(c);
suoyoujie=lingyi(guimo);?? % 所有可能解的排列
[m,n]=size(A);
opt_solution=inf; % 解的上界
for i=1:2^guimo
yueshu=A*suoyoujie(i,:)';
for j=1:m
if yueshu(j)>b(j)?? % 不满足某约束条件,则不是解
break;
end
end
if j==m?? % 满足所有约束,则计算该的目标值,并与当前最优解相比较
val=c'*suoyoujie(i,:)';
if val<=opt_solution
opt_solution=val;
y=suoyoujie(i,:);
end
end
end
fval=opt_solution;
function y=lingyi(k)
if k==3
y=[0 0 0;
0 0 1;
0 1 0;
0 1 1;
1 0 0;
1 0 1;
1 1 0;
1 1 1];
else
lc=2^(k-1);
xinlie1=zeros(lc,1);
xinlie2=ones(lc,1);
xinlie=[xinlie1;xinlie2];
pre_lingyi=lingyi(k-1);
pre_lingyi=[pre_lingyi;pre_lingyi];
y=[xinlie,pre_lingyi];
end
Feedback
忘了说了,变量个数至少是3个,要不然没办法运行了。

^_^ Matlab的求解线性规划的函数linprog不适应于0-1规划。

我们采用穷举法编写了如下程序可以实现0-1规划的求解。

%0-1 program:linprog01.m
%%% min c'x
%%% s.t. Ax<=b
%%% Aeqx=beq
%%% Aieq~=bieq
function [x,fval]=linprog01(c,A,b,Aeq,beq,Aieq,bieq)
iVal=size(c,1);
xVal=zeros(size(c));
x=xVal;
opt_solution=c'*xVal;
for i=1:2^iVal-1
strBin_i=dec2bin(i);
xVal=zeros(size(c));
for k=1:length(strBin_i)
xVal(k)=str2num(strBin_i(k));
end
constrA=A*xVal<=b;
constrAeq=Aeq*xVal==beq;
constrAieq=Aieq*xVal~=bieq;
if all(constrA) & all(constrAeq) & all(constrAieq) objVal=c'*xVal;
if objVal<=opt_solution
opt_solution=objVal;
x=xVal;
end
end
end
fval=opt_solution;。

相关文档
最新文档