24小时热门版块排行榜    

查看: 2109  |  回复: 0

埃尔多安

银虫 (正式写手)

[求助] 请问用gamultiobj函数解决多目标规划时候这两个目标函数怎么了?

我把大概的写一下,然后给出说明:
CODE:
function f = my_first_multi(P)

CODE:
theta = zeros(1,45); for j =1:(size(P))/5;
theta(j) = heaviside(sum(P(((j-1)+1):5*j))-0.5);
end
% W     ---1*45
W = [1680 1680 2400 2400 1620 1620 1728 1620 1440,...     
1620 1080 3375 2304 2500 1680 1680 2400 2400,...     
1620 1620 1728 1620 1440 1620 1080 3375 2304,...     
2500 2304 2500 1440 1620 1080 3375 2304 2500,...     
2304 2304 2500 2304 2500 2304 2304 1250 2160];
f(1) = W*(theta)';

这是第一个函数,这里面W是1*45的维数,theta也是1*45,希望相乘得到一个数,作为用电量。
CODE:
D = [355 305 658 380 419 565 414 488 326;...   
695 533 469 506 434 473 390 390 604;...     
512 556 384 452 613 572 484 484 618;...     
324 541 320 466 422 650 306 306 688;...     
696 616 475 499 386 557 428 428 591];
%  D       --  5*45
D = [repmat(D(:,1),1,9),repmat(D(:,2),1,9),repmat(D(:,3),1,9),...     
repmat(D(:,4),1,9),repmat(D(:,5),1,9)];
%%%%%%%%%%距离乘以概率乘以偏好系数
fx2  = D.*((reshape(P,45,5))').*(pdffinal);
% 每个宿舍区都某教室偏好距离
f(2) = sum(fx2(:));

这里面D是5*45的维数,P是1*225的维数,pdffinal是5*45的维数,然后三个计算得到的 FX2是个5*45的维数,然后f(2)就是加总得到一个值。
f(1)以及f(2)都是最终得到两个值,目标函数为这两个均为最小。但是显然我没有约束到,我想知道是不是我约束条件有问题,谢谢。
回复此楼

» 猜你喜欢

续。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 埃尔多安 的主题更新
信息提示
请填处理意见