sunbo 发表于 2007-7-19 11:14

八皇后问题1stopt程序

下面是求解八皇后问题的1stopt程序,
程序运行时没有错误提示,好象就一直在那里执行,也没有结果
请高人帮忙看看
Title "Type your title here";

constant N = 5;
Variable position(1:N),y;
Variable f(0:N-1,0:N-1);

StartProgram;
var
i,j,position: integer;
begin
for i := 0 to N-1 do begin
   for j := 0 to N-1 do begin
      if abs(position-positon) == abs(i-j) ||position == positon
             f := 1;
             else
             f := 0;
      end;
end;
end;
EndProgram;
minfunction y = sum(i=0:N-1)(j=0:N-1)(f);


谢谢

[ 本帖最后由 suffer 于 2007-7-20 05:39 编辑 ]

sunbo 发表于 2007-7-19 11:14

谢谢

sunbo 发表于 2007-7-19 11:23

对不起
if abs(position-positon) == abs(i-j) ||position == positon

应该是

if abs(position-positon) == abs(i-j) ||position == positon

[ 本帖最后由 suffer 于 2007-7-20 05:39 编辑 ]

suffer 发表于 2007-7-20 05:37

解决了吗?

sunbo 发表于 2007-7-20 08:42

没有   看起来没多大希望了    听别人推荐说这软件非常优秀    优化算法很好    没想到解决个八皇后问题 这么麻烦      大概是因为 我不会用吧

dingd 发表于 2007-7-20 09:39

语法错误不少。看下面改正后的代码。计算的目标函数等于皇后数N。(绿色版好像无法执行编程模式)

Title "Type your title here";
constant N = 8;                        //皇后数目,可改动
IntParameter position(0:N-1);
Exclusive = True;
Minimum;
StartProgram;
var i, j, d: integer;
begin
d := 0;
for i := 0 to N-1 do begin
   for j := i to N-1 do
      if (abs(position-position) = abs(i-j))or(position = position) then
             inc(d);
end;
FunctionResult := d;
end;
EndProgram;

sunbo 发表于 2007-7-20 10:34

谢谢   请问有无好的1stopt 教程   我想学习这个软件   
软件中自带的手册讲的不太详细    我发现很多关键字我都不认识

suffer 发表于 2007-7-25 14:44

原帖由 sunbo 于 2007-7-20 10:34 发表 http://www.chinavib.com/forum/images/common/back.gif
谢谢   请问有无好的1stopt 教程   我想学习这个软件   
软件中自带的手册讲的不太详细    我发现很多关键字我都不认识

没见过

dahai334 发表于 2007-11-23 22:19

1.5版破解版网上就有,一搜就着。另外,1stopt的用户手册的确太简单了。dingd是这方面的高手,也是这个软件的推手,不知道dingd能否现身释疑?
页: [1]
查看完整版本: 八皇后问题1stopt程序