数学建模社区-数学中国

标题: 程序出错了,invalid input . A syntax error has occurred [打印本页]

作者: Rain的雨    时间: 2013-7-16 20:27
标题: 程序出错了,invalid input . A syntax error has occurred
model:
   title location problem;
   sets:
      demand/1..6/:a,b,d;
      supply/1..2/:x,y,e;
      link(demand,supply):c;
   endsets
   data:
   !需求点的位置。;
      a=1.25 8.75 0.5 5.75 3 7.25;
      b=1.25 0.75 4.75 5 6.5 7.75;
   !供需量;
      d=3 5 4 7 6 11;
      e=20 20;
   init:
      x,y=5,1,2,7;
   endinit
   !目标;
      [OBJ] min=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(j))^2)^(1/2);
   !需求约束;
      @for(demand(i):[DEMAND_CON] @sum(supply(j):c(i,j))=d(i););
   !供应约束;
      @for(supply(i):[SUPPLY_CON] @sum(demand(j):c(i,j))<=e(i););
      @for(supply:@free(x);@free(y););
end
作者: Rain的雨    时间: 2013-7-16 20:29
结果出现了invalid input . A syntax error has occurred     15]  init
作者: wujianjack2    时间: 2013-7-16 21:22
本帖最后由 wujianjack2 于 2013-7-20 11:06 编辑

   如果没猜错,本例来自谢金星,薛毅老师编者的《优化建模与LINDO/LINGO软件》第95页至第98页
   楼主给出的程序主要错误有:
   1.DATA段没有以ENDDATA结尾;
   2.目标函数应该为:[OBJ] MIN=@SUM(LINK(I,J):C(I,J)*((X(J)-A(I))^2+(Y(J)-B(I))^2)^(1/2));楼主最后一个括号忘了写;
   3.倒数第二个@FOR语句中,应该为C(J,I)而不是C(I,J)。

完整程序如下:
MODEL:
TITLE LOCATION PROBLEM;
SETS:
DEMAND/1..6/:A,B,D;
SUPPLY/1..2/:X,Y,E;
LINK(DEMAND,SUPPLY):C;
ENDSETS
DATA:
A=1.25,8.75,0.5,5.75,3,7.25;
B=1.25,0.75,4.75,5,6.5,7.75;
D=3,5,4,7,6,11;
E=20,20;
ENDDATA
INIT:
X,Y=5,1,2,7;
ENDINIT
[OBJ] MIN=@SUM(LINK(I,J):C(I,J)*((X(J)-A(I))^2+(Y(J)-B(I))^2)^(1/2));
@FOR(DEMAND(I):[DEMAND_CON] @SUM(SUPPLY(J):C(I,J))=D(I));
@FOR(SUPPLY(I):[SUPPLY_CON] @SUM(DEMAND(J):C(J,I))<=E(I));
@FOR(SUPPLY:@FREE(X);@FREE(Y););
END

LINGO 11 运行结果为(仅给出重要信息),虽说是局部最优,但尝试用Global Solver求解最好解是一样的:
Local optimal solution found.
Objective value:                              85.26604
Infeasibilities:                              0.000000
Total solver iterations:                            68

X( 1)        3.254883            0.000000
X( 2)        7.250000          -0.1853513E-05
Y( 1)        5.652332            0.000000
Y( 2)        7.750000          -0.1114154E-05

如果楼主不满意,另一种可行的解答见此帖:http://www.madio.net/thread-190111-1-1.html 中的第五楼我的回复,这是我就这一问题写的另一求解方式,希望可以帮助你,如果还有问题,欢迎交流!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5