dingd 发表于 2008-7-8 16:25

点对应移动优化问题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]
查看完整版本: 点对应移动优化问题1