点对应移动优化问题1
原题见研学论坛:(http://bbs.matwav.com/post/view?bid=89&id=842147&tpg=1&ppg=1&sty=1#843415)
如附件图,散乱的蓝色点为初始化位置
现:经过移动变为红色3×3 队列;
问题:如何规划每一个蓝色点移到哪个对应的红色点,使得所有蓝色点移动的距离和最短。
如果没有最优解,是否有优化解。
1stOpt代码:
Constant FixX=, FixY=;//红点x及y坐标
Constant RndX=, RndY=;//蓝点x及y坐标
Parameter P(1:9)=;
Exclusive = True;
Minimum;
StartProgram ;
Procedure MainModel;
var j: integer;
temV: double;
Begin
temV := 0;
for j := 1 to 9 do
temV := temV + sqrt(sqr(RndX-FixX])+sqr(RndY-FixY]));
FunctionResult := temV;
End;
EndProgram;
结果:
目标函数值(最小): 15.9877648155411
p1: 6
p2: 5
p3: 3
p4: 1
p5: 4
p6: 2
p7: 7
p8: 9
p9: 8
即第一个蓝点p1移到第6个红点, p2移到第5个红点...p9移到第8个红点。最短距离为:15.9877648155411
页:
[1]