加载中…
个人资料
amini遇
amini遇
  • 博客等级:
  • 博客积分:0
  • 博客访问:776,227
  • 关注人气:236
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]matlab 规划问题 利用蒙特卡洛法(随机取样法)解

(2013-08-27 14:36:04)
标签:

转载

分类: MATLAB
    整数规划求解方法,主要是针对线性整数规划而言,而对于非线性整数规划目前尚未有一种成熟而准确的求解方法,因为非线性规划本身的通用有效解法尚未找到,更何况是非线性整数规划。 
    然而,尽管整数规划由于限制变量为整数而增加了难度;然而又由于整数解是有限个,于是为枚举法提供了方便。当然,当自变量维数很大和取值范围很宽情况下,企图用显枚举法(即穷举法)计算出最优值是不现实的,但是应用概率理论可以证明,在一定的计算量的情况下,完全可以得出一个满意解。 
例  已知非线性整数规划为: 
[转载]matlab <wbr>规划问题 <wbr>利用蒙特卡洛法(随机取样法)解
解 (i)首先编写 M 文件 mente.m定义目标函数f 和约束向量函数g ,程序如下: 
function [f,g]=mengte(x); 
f=x(1)^2+x(2)^2+3*x(3)^2+4*x(4)^2+2*x(5)-8*x(1)-2*x(2)-3*x(3)-x(4)-2*x(5); 
g=[sum(x)-400  
x(1)+2*x(2)+2*x(3)+x(4)+6*x(5)-800 
2*x(1)+x(2)+6*x(3)-200 
x(3)+x(4)+5*x(5)-200]; 
(ii)编写M文件mainint.m如下求问题的解: 
rand('state',sum(clock)); 
p0=0; 
tic 
for i=1:10^6 
   x=99*rand(5,1); 
x1=floor(x);x2=ceil(x); 
[f,g]=mengte(x1); 
if sum(g<=0)==4 
   if p0<=f 
      x0=x1;p0=f; 
   end 
end 
[f,g]=mengte(x2); 
if sum(g<=0)==4 
   if p0<=f 
      x0=x2;p0=f; 
   end 
end 
end 
x0,p0 
toc 

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有