找回密码
 注册
Simdroid-非首页
查看: 1088|回复: 52

[1stOpt] 趣味填字!

[复制链接]
发表于 2009-12-31 15:24:30 | 显示全部楼层 |阅读模式 来自 北京海淀
本帖最后由 shamohu 于 2010-1-1 19:14 编辑

仿造Mathematica版:http://forum.simwe.com/thread-913182-1-1.html

用1到18这18个数组成两个方程组等式如下,每个数只能也必须用一次,如何求解?

( )/( )( )+( )/( )( )+( )/( )( )=1
( )/( )( )+( )/( )( )-( )/( )( )=0.5

用其它软件也行:思路、方法、代码。
发表于 2010-1-4 17:08:40 | 显示全部楼层 来自 湖南湘潭
回复 不支持

使用道具 举报

发表于 2010-1-4 17:30:43 | 显示全部楼层 来自 湖南湘潭
Parameter x(18)=[1,18,0];
Exclusive = True;
StartProgram;
Procedure MainModel;
Begin
     ObjectiveResult := sqr(x1/(x2*10+x3)+x4/(x5*10+x6)+x7/(x8*10+x9)-1)+ sqr(x10/(x11*10+x12)+x13/(x14*10+x15)-x16/(x17*10+x18)-0.5);
End;
EndProgram;

====== 结果 ======

迭代数: 198
计算用时(时:分:秒:毫秒): 00:00:04:359
计算中止原因: 达到收敛判定标准
优化算法: 最大继承法
目标函数值(最小): 4.56229303585364E-11
x1: 17
x2: 1
x3: 8
x4: 6
x5: 16
x6: 15
x7: 3
x8: 13
x9: 11
x10: 12
x11: 2
x12: 4
x13: 10
x14: 18
x15: 14
x16: 5
x17: 9
x18: 7

====== 计算结束 ======
有点误差,第一项左边值为148051/148050 很接近但不等于1

另外请教楼主,算法设置下拉框,不管选什么算法(包括自动选择),运行后都变成“最大继承法”,这是什么原因?
回复 不支持

使用道具 举报

发表于 2010-1-4 21:31:26 | 显示全部楼层 来自 北京海淀
很小很强大
想问一下,能否用该软件算出1-9九个数填进去,和为1/4的所有解
回复 不支持

使用道具 举报

 楼主| 发表于 2010-1-4 21:36:10 | 显示全部楼层 来自 北京
有点问题,以若x4= 6,x5= 16,x6= 15为例:

“x4/(x5)(x6)”项应为“6/1615”,而不是“x4/(x5*10+x6) = 6/16015“,因此当x6>9时,“x4/(x5)(x6)”应等价于“x4/(x5*100+x6)”
回复 不支持

使用道具 举报

发表于 2010-1-4 21:47:34 | 显示全部楼层 来自 湖北武汉
以x1/x2x3为例,程序应对x3是否小于10进行判断,如是,则此项为x1/(x2*10+x3),否则,应为x1/(x2*100+x3)。

即:上面这一项应为x1/(x2*10^n1+x3),n1根据x3的情况取1或者取2。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-1-5 08:36:50 | 显示全部楼层 来自 北京海淀
是这个意思。
回复 不支持

使用道具 举报

发表于 2010-1-6 10:42:01 | 显示全部楼层 来自 湖南湘潭
综合楼上思路编写下面程序,但得不到精确的解,程序及最好结果如下,请楼主指教
Parameter x(18)=[1,18,0];
Exclusive = True;
ConstStr k1 = if( x3 <=9, 1, 2);
ConstStr k2 = if( x6 <=9, 1, 2);
ConstStr k3 = if( x9 <=9, 1, 2);
ConstStr k4 = if( x12<=9, 1, 2);
ConstStr k5 = if( x15<=9, 1, 2);
ConstStr k6 = if( x18<=9, 1, 2);
MinFunction
  sqr(x1/(x2*10^k1+x3)+x4/(x5*10^k2+x6)+x7/(x8*10^k3+x9)-1)+sqr(x10/(x11*10^k4+x12)+x13/(x14*10^k5+x15)-x16/(x17*10^k6+x18)-0.5);

结果及其验证
x1 = 16
x2 = 8
x3 = 4
x4 = 14
x5 = 2
x6 = 1
x7 = 15
x8 = 10
x9 = 5
x10 = 17
x11 = 3
x12 = 9
x13 = 13
x14 = 18
x15 = 6
x16 = 7
x17 = 12
x18 = 11

k1 = IIf(x3 <= 9, 1, 2)
        k1 = 1
k2 = IIf(x6 <= 9, 1, 2)
        k2 = 1
k3 = IIf(x9 <= 9, 1, 2)
        k3 = 1
k4 = IIf(x12 <= 9, 1, 2)
        k4 = 1
k5 = IIf(x15 <= 9, 1, 2)
        k5 = 1
k6 = IIf(x18 <= 9, 1, 2)
        k6 = 2
x1 / (x2 * 10 ^ k1 + x3) + x4 / (x5 * 10 ^ k2 + x6) + x7 / (x8 * 10 ^ k3 + x9)
        Ans = 1
x10 / (x11 * 10 ^ k4 + x12) + x13 / (x14 * 10 ^ k5 + x15) - x16 / (x17 * 10 ^ k6 + x18)
        Ans = 0.50001

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-1-6 17:39:20 | 显示全部楼层 来自 北京海淀
可以简化一下代码:
Parameter x(18)=[1,18,0];
Exclusive = True;
ConstStr For(i=1:6)(k[i]=if(x[3*i]<=9,1,2));
ConstStr f1 = x1/(x2*10^k1+x3)+x4/(x5*10^k2+x6)+x7/(x8*10^k3+x9)-1,
             f2 = x10/(x11*10^k4+x12)+x13/(x14*10^k5+x15)-x16/(x17*10^k6+x18)-0.5;
PassParameter s1=f1, s2=f2;
MinFunction f1^2+f2^2;

加大种群数,多运行几次(选择“多重运算”)应该可以得到精确解,只是想知道用其它软件如何求解,结果如何?
回复 不支持

使用道具 举报

发表于 2010-1-6 21:12:19 | 显示全部楼层 来自 广东江门
9# shamohu

9/12 + 15/105 + 18/168-1
13/117 + 17/34 - 14/126-0.5
1.5版本也能解出来,用的就是上面的代码,只是将 For 换成 8# 的了。
1stOpt 确实很棒。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-1-7 08:35:05 | 显示全部楼层 来自 北京海淀
楼上答案还有差异:
9/12 + 15/105 + 18/168-1 = -1.110223025E-16
13/117 + 17/34 - 14/126-0.5 = 0

应该有精确解的(等式右边均为0)
回复 不支持

使用道具 举报

发表于 2010-1-7 11:57:09 | 显示全部楼层 来自 广东江门
这个应该是精确解,9/12 + 15/105 + 18/168 的分子分母均为211680,是否版主手上还有其他解?
回复 不支持

使用道具 举报

发表于 2010-1-7 12:15:15 | 显示全部楼层 来自 广东江门
请教一下,如果想排除已求出的这个解,去搜寻其他解,应如何写代码(要适合1.5版本的1stOpt)。
回复 不支持

使用道具 举报

发表于 2010-1-7 18:26:46 | 显示全部楼层 来自 湖南湘潭
另一组解:(9# shamohu 的程序)
************** 循环常数(LoopConstant) i=10 **************
====== 结果 ======

重复计算最佳目标函数: 0
重复计算求得最佳目标函数次数: 2
重复计算最差目标函数: 1.96880155599765E-9
重复计算平均目标函数: 4.87757935348365E-10
重复计算总用时: 0:01:12
优化算法: 最大继承法
函数表达式: (x1/(x2*10^(if(x3<=9,1,2))+x3)+x4/(x5*10^(if(x6<=9,1,2))+x6)+x7/(x8*10^(if(x9<=9,1,2))+x9)-1)^2+(x10
          /(x11*10^(if(x12<=9,1,2))+x12)+x13/(x14*10^(if(x15<=9,1,2))+x15)-x16/(x17*10^(if(x18<=9,1,2))+x18)-0.5)^
          2
目标函数值(最小): 0
x1: 15
x2: 5
x3: 13
x4: 11
x5: 4
x6: 18
x7: 17
x8: 1
x9: 8
x10: 12
x11: 2
x12: 6
x13: 7
x14: 16
x15: 9
x16: 3
x17: 10
x18: 14

传递参数(PassParameter):
s1: 0
s2: 0
回复 不支持

使用道具 举报

发表于 2010-1-7 21:43:58 | 显示全部楼层 来自 广东江门
除了这两个答案还有,看来用1stOpt是找不全的。
回复 不支持

使用道具 举报

发表于 2010-1-9 12:36:11 | 显示全部楼层 来自 湖南湘潭
15# ljwxhlzp
对此很感兴趣,有什么方法可以既快速又全面(不遗漏)地得出答案?
关注中。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-1-10 22:00:39 | 显示全部楼层 来自 北京
个人觉得这道题是个非常不错的组合优化例题,比著名的旅行商(TSP)问题,同等参数规模下,难度更大一些,既有排列又有组合。那位高手用其它软件试试,看结果如何?

下面是用1stOpt得到的四组解:
x1        14        12        16        15
x2        1        1        7        5
x3        5        8        6        13
x4        11        11        12        11
x5        9        4        11        4
x6        15        9        4        18
x7        10        16        13        17
x8        18        14        1        1
x9        3        7        9        8
x10        13        13        14        12
x11        2        2        2        2
x12        6        6        8        6
x13        16        10        18        7
x14        7        17        3        16
x15        12        5        15        9
x16        4        18        10        3
x17        17        3        17        10
x18        8        15        5        14
回复 不支持

使用道具 举报

 楼主| 发表于 2010-1-10 23:17:32 | 显示全部楼层 来自 北京
本帖最后由 shamohu 于 2010-1-11 08:55 编辑

又找到三组,不知确切共有多少组解:

x1        13        13        17
x2        1        1        13
x3        4        5        3
x4        9        7        12
x5        15        3        7
x6        12        15        6
x7        11        12        15
x8        16        10        2
x9        8        8        1
x10        5        9        18
x11        2        11        4
x12        10        16        5
x13        18        14        16
x14        3        2        14
x15        6        4        8
x16        17        17        9
x17        7        18        11
x18        14        6        10
回复 不支持

使用道具 举报

发表于 2010-1-11 12:17:56 | 显示全部楼层 来自 湖南湘潭
下面是8,9十个解(未仔细剔除重复解,按行排列)。
  • 6 7 14 16 11 9 18 2 1 17 3 4 12 10 8 15 13 5
    7 11 5 17 16 10 13 1 4 14 2 8 18 3 12 9 15 6
    7 14 6 12 5 11 13 1 4 17 9 18 16 3 2 15 8 10
    7 14 6 13 1 4 12 5 11 16 3 2 15 8 10 17 9 18
    7 14 6 12 5 11 13 1 4 17 9 18 16 3 2 15 8 10
    7 15 2 8 12 16 18 1 9 13 11 4 14 3 6 5 17 10
    8 12 16 7 15 2 18 1 9 14 3 6 13 11 4 5 17 10
    9 1 2 18 16 8 15 10 5 14 12 6 17 3 4 13 11 7
    9 1 2 18 16 8 15 10 5 13 11 7 17 3 4 14 12 6
    9 1 2 18 16 8 15 10 5 17 3 4 14 12 6 13 11 7
    9 1 2 18 16 8 15 10 5 17 3 4 13 11 7 14 12 6
    9 1 7 11 2 4 10 8 16 14 3 6 17 13 5 18 12 15
    9 1 2 18 16 8 15 10 5 17 3 4 13 11 7 14 12 6
    9 12 15 16 1 8 14 13 5 6 10 2 17 3 4 11 18 7
    9 15 12 11 16 8 13 1 4 18 3 6 17 7 14 5 2 10
    9 15 12 11 16 8 13 1 4 5 2 10 18 3 6 17 7 14
    9 15 12 11 16 8 13 1 4 18 3 6 5 2 10 17 7 14
    9 15 12 11 16 8 13 1 4 17 7 14 18 3 6 5 2 10
    9 15 12 13 1 4 11 16 8 18 3 6 17 7 14 5 2 10
    9 15 12 13 1 4 11 16 8 17 7 14 18 3 6 5 2 10
    9 15 12 11 16 8 13 1 4 5 2 10 18 3 6 17 7 14
    9 15 12 13 1 4 11 16 8 5 2 10 18 3 6 17 7 14
    9 15 12 13 1 4 11 16 8 18 3 6 5 2 10 17 7 14
    9 16 2 13 11 7 15 1 8 18 3 6 12 17 4 10 14 5
    10 1 2 14 15 6 13 16 9 12 5 7 17 3 8 18 11 4
    10 14 5 13 1 4 2 8 12 18 3 9 7 15 6 11 17 16
    11 1 2 13 16 12 14 18 6 17 3 4 10 15 8 5 7 9
    11 4 9 12 1 8 16 14 7 13 2 6 10 17 5 18 3 15
    11 4 9 12 1 8 16 14 7 10 17 5 13 2 6 18 3 15
    11 9 15 10 18 3 14 1 5 4 17 8 13 2 6 16 7 12
    12 1 8 11 4 9 16 14 7 10 17 5 13 2 6 18 3 15
    12 1 8 16 14 7 11 4 9 13 2 6 10 17 5 18 3 15
    12 3 15 11 10 5 18 2 1 17 4 7 14 9 8 6 13 16
    12 5 11 13 1 4 7 14 6 16 3 2 15 8 10 17 9 18
    12 5 11 7 14 6 13 1 4 15 8 10 16 3 2 17 9 18
    12 5 11 13 1 4 7 14 6 16 3 2 15 8 10 17 9 18
    12 5 11 7 14 6 13 1 4 16 3 2 15 8 10 17 9 18
    12 5 11 13 1 4 7 14 6 16 3 2 15 8 10 17 9 18
    12 7 14 18 2 1 15 11 9 17 3 4 16 13 6 10 8 5
    12 7 14 18 2 1 15 11 9 16 13 6 17 3 4 10 8 5
    12 7 14 15 11 9 18 2 1 16 5 4 13 3 6 17 10 8
    12 8 7 5 10 15 18 2 1 14 11 9 17 3 4 16 13 6
    12 11 4 13 1 9 16 7 6 18 3 15 14 2 8 10 17 5
    13 1 4 17 16 10 7 11 5 14 2 8 9 15 6 18 3 12
    13 1 4 2 8 12 10 14 5 7 15 6 18 3 9 11 17 16
    13 1 4 11 16 8 9 15 12 18 3 6 17 7 14 5 2 10
    13 1 4 7 14 6 12 5 11 16 3 2 17 9 18 15 8 10
    13 1 5 7 3 15 12 10 8 9 11 16 14 2 4 17 18 6
    13 1 4 6 11 9 15 7 14 17 3 5 18 2 10 12 16 8
    13 1 4 17 16 10 7 11 5 6 15 9 14 2 8 12 3 18
    13 1 4 9 15 12 11 16 8 18 3 6 17 7 14 5 2 10
    13 1 9 12 11 4 16 7 6 14 2 8 10 17 5 18 3 15
    13 1 4 17 16 10 7 11 5 9 15 6 14 2 8 18 3 12
    13 1 4 9 15 12 11 16 8 17 7 14 18 3 6 5 2 10
    13 1 4 9 15 12 11 16 8 18 3 6 5 2 10 17 7 14
    13 1 4 6 11 9 15 7 14 18 2 10 17 3 5 12 16 8
    13 1 4 11 16 8 9 15 12 17 7 14 18 3 6 5 2 10
    13 1 4 10 14 5 2 8 12 18 3 9 7 15 6 11 17 16
    13 1 4 12 5 11 7 14 6 17 9 18 16 3 2 15 8 10
    13 1 4 7 14 6 12 5 11 16 3 2 17 9 18 15 8 10
    13 1 4 12 5 11 7 14 6 15 8 10 16 3 2 17 9 18
    13 1 4 7 14 6 12 5 11 17 9 18 16 3 2 15 8 10
    13 1 4 17 16 10 7 11 5 18 3 12 14 2 8 9 15 6
    13 1 4 12 5 11 7 14 6 15 8 10 16 3 2 17 9 18
    13 1 4 7 11 5 17 16 10 9 15 6 14 2 8 18 3 12
    13 1 4 12 5 11 7 14 6 15 8 10 16 3 2 17 9 18
    13 1 4 9 15 12 11 16 8 17 7 14 18 3 6 5 2 10
    14 1 5 10 18 3 11 9 15 16 7 12 13 2 6 4 17 8
    14 1 5 10 18 3 11 9 15 13 2 6 4 17 8 16 7 12
    14 11 4 13 1 5 17 16 15 12 3 6 9 2 7 18 10 8
    14 13 8 11 6 9 17 2 3 18 4 5 12 1 15 7 16 10
    14 18 6 13 16 12 11 1 2 10 15 8 17 3 4 5 7 9
    14 18 6 11 1 2 13 16 12 17 3 4 5 7 9 10 15 8
    15 5 13 11 4 18 17 1 8 12 2 6 7 16 9 3 10 14
    15 10 5 12 1 7 18 11 9 13 2 6 3 14 4 17 8 16
    15 11 9 18 2 1 12 7 14 16 5 4 13 3 6 17 10 8
    15 11 9 12 7 14 18 2 1 17 3 4 16 13 6 10 8 5
    15 17 10 5 11 4 18 1 9 14 3 6 13 7 8 12 2 16
    16 1 8 7 3 15 12 13 5 18 17 4 14 2 9 10 11 6
    16 11 9 6 7 14 18 2 1 12 10 8 17 3 4 15 13 5
    17 1 8 11 4 18 15 5 13 12 2 6 7 16 9 3 10 14
    17 11 7 13 16 9 14 1 8 12 2 4 5 10 6 15 3 18
    17 11 9 10 1 4 18 12 6 3 16 5 14 2 8 13 7 15
    17 11 7 13 16 9 14 1 8 5 10 6 12 2 4 15 3 18
    17 13 3 12 7 6 15 2 1 18 4 5 16 14 8 9 11 10
    17 16 10 13 1 4 7 11 5 14 2 8 9 15 6 18 3 12
    17 16 10 13 1 4 7 11 5 14 2 8 18 3 12 9 15 6
    17 16 10 7 11 5 13 1 4 9 15 6 14 2 8 18 3 12
    18 2 1 5 10 15 12 8 7 17 3 4 16 13 6 14 11 9
    18 16 8 9 1 2 15 10 5 17 3 4 14 12 6 13 11 7
回复 不支持

使用道具 举报

发表于 2010-1-11 21:44:26 | 显示全部楼层 来自 湖南湘潭
本帖最后由 lin2009 于 2010-1-12 10:28 编辑

剔除掉重复解,得出的30组满足条件的解,
(每组解可以有12种或24种变形)<  x10/(x11x12) =1/2或 x13/(x14x15)=1/2 时为24种,无1/2项时为12种>
这可能只是很小的一部分解答,个人认为,要得到全部的解,就必须对所有的18!= 6.4024*10^15种组合进行直接或间接地分析判断,这在一般的计算机上是不可能完成的事情!
下面的数据是主流双核笔记本运行24小时得出的数据(1/2项可能存在于x13x,14,x15中)。
     2     8    12    10    14     5    13     1     4     7    15     6    18     3     9    11    17    16
     5    10    15    12     8     7    18     2     1    14    11     9    17     3     4    16    13     6
     5    11     4    15    17    10    18     1     9    13     7     8    14     3     6    12     2    16
     6     7    14    16    11     9    18     2     1    12    10     8    17     3     4    15    13     5
     6    11     9    13     1     4    15     7    14    17     3     5    18     2    10    12    16     8
     7     3    15    12    10     8    13     1     5     9    11    16    14     2     4    17    18     6
     7     3    15    12    13     5    16     1     8    14     2     9    18    17     4    10    11     6
     7    11     5    13     1     4    17    16    10     9    15     6    14     2     8    18     3    12
     7    11     5    13     1     4    17    16    10     6    15     9    14     2     8    12     3    18
     7    14     6    12     5    11    13     1     4    16     3     2    17     9    18    15     8    10
     7    15     2     8    12    16    18     1     9    13    11     4    14     3     6     5    17    10
     9     1     2    15    10     5    18    16     8    13    11     7    17     3     4    14    12     6
     9     1     7    10     8    16    11     2     4    14     3     6    17    13     5    18    12    15
     9    12    15    14    13     5    16     1     8     6    10     2    17     3     4    11    18     7
     9    15    12    11    16     8    13     1     4     5     2    10    18     3     6    17     7    14
     9    16     2    13    11     7    15     1     8    10    14     5    18     3     6    12    17     4
    10     1     2    13    16     9    14    15     6    12     5     7    17     3     8    18    11     4
    10    18     3    11     9    15    14     1     5     4    17     8    13     2     6    16     7    12
    11     1     2    13    16    12    14    18     6     5     7     9    17     3     4    10    15     8
    11     4     9    12     1     8    16    14     7    10    17     5    13     2     6    18     3    15
    11     4    18    15     5    13    17     1     8     7    16     9    12     2     6     3    10    14
    11     6     9    14    13     8    17     2     3    12     1    15    18     4     5     7    16    10
    11    10     5    12     3    15    18     2     1    14     9     8    17     4     7     6    13    16
    12     1     7    15    10     5    18    11     9     3    14     4    13     2     6    17     8    16
    12     7     6    15     2     1    17    13     3    16    14     8    18     4     5     9    11    10
    12     7    14    15    11     9    18     2     1    10     8     5    17     3     4    16    13     6
    12     7    14    15    11     9    18     2     1    13     3     6    16     5     4    17    10     8
    12    11     4    13     1     9    16     7     6    10    17     5    14     2     8    18     3    15
    13     1     5    14    11     4    17    16    15     9     2     7    12     3     6    18    10     8
    13    16     9    14     1     8    17    11     7     5    10     6    12     2     4    15     3    18
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-29 08:52 , Processed in 0.052394 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表