1.定义目标函数f 和约束向量函数g
首先编写M 文件mente. m 定义目标函数f 和约束向量函数g
function [f,g] = mente(x) ;
f=x(1)^2 + x(2)^2 +3*x(3) ^2 +4 * x(4)^2 + 2 *x(5)^2 -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] ;
2.求问题的解
rand('state', sum(clock)) ; %初始化随机数发生器
p0 = 0 ;
tic %计时开始
for i = 1 :10^6
x = randi[ 0,99],l,5) ; % 产生一行五列的区间[0, 99]上的随机整数
[f,g] =mengte(x) ;
if all (g < = 0)%g的每一个元素都小于0
if p0 < f
x0 = x ; pO = f ; %记录下当前较好的解
end
end
end
x0,p0
toc %计时结束