找回密码
 新注册用户
搜索
查看: 10199|回复: 16

请前辈们帮看看:这样一个问题适合用分布式计算吗?

[复制链接]
发表于 2007-6-12 09:10:47 | 显示全部楼层 |阅读模式
有一个数字,有100位,每一位的取值范围:0-9。即该数最大为(10^100-1,10的100次方减1),也即100个9组成。

我想遍历在每个数(从0到10^100-1)情况下,处理一些简单事情。

关键是要遍历的次数较多,从而造成总运算量较大,能否用并行计算进行?如果能,能提高运算效率大概是多少?

对并行计算不了解,呵呵,新手一个。请各位赐教!谢谢!


(8#补充说明问题)

[ 本帖最后由 winde 于 2007-6-13 10:29 编辑 ]
回复

使用道具 举报

发表于 2007-6-12 15:05:34 | 显示全部楼层
估计可以,如果每个数可以独立处理的话。但是现在来讲这种计算是不现实的,因为可能性实在太多了。我个人认为你应该考虑的是如何改良算法。
或者你把问题贴出来我们看看?~~~
回复

使用道具 举报

发表于 2007-6-12 18:23:36 | 显示全部楼层
遍历每一个数
具体要干什么呢?
回复

使用道具 举报

发表于 2007-6-12 20:18:00 | 显示全部楼层
数字太大了,不知道什么时候才能算完。
多线程处理,在单机上看能不能提高速度。

LZ的问题也说的不清楚。
回复

使用道具 举报

发表于 2007-6-12 20:22:32 | 显示全部楼层
如果CPU每秒处理10^10个数字,那么10^100个数字需要10^80秒。
就算是分布式也不能。
回复

使用道具 举报

发表于 2007-6-12 20:23:06 | 显示全部楼层
写错了,应该是10^90秒
回复

使用道具 举报

发表于 2007-6-12 22:03:08 | 显示全部楼层
很多时候有些循环可以在很前面跳到下一个

比如

for a1 = 0 to 9 step 1
    ......
    for a2 = 0 to 9 step 1
        ......
        for a3 = 0 to 9 step 1
            ......
        next a3
    next a2
next a1

有的时候不需要遍历到 a100,而只需要遍历到 a2 就可以确定这个不行,这样可以提高一些速度……
回复

使用道具 举报

 楼主| 发表于 2007-6-13 10:22:49 | 显示全部楼层
没想到有这么多高手关注,先谢谢大家!

我是在做一个神经网络之遗传算法,考虑到遗传算法可能最终不能给出最优问题解答,就考虑到遍历。呵呵,只是想尝试下。遍历这么大的数,按常规算法来说,以现有计算机计算能力可能就是痴人说梦。

不过,看到这里的“并行计算”,就想问大家,有没好的算法和其它解决思路。

其中网络的权值加偏移值共100位,每个权值、偏移值变化范围为:0-9(是我人为特意这样设定)。

[ 本帖最后由 winde 于 2007-6-13 10:25 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2007-6-13 10:38:07 | 显示全部楼层
原帖由 老冬腌菜 于 2007-6-12 22:03 发表
很多时候有些循环可以在很前面跳到下一个

比如

for a1 = 0 to 9 step 1
    ......
    for a2 = 0 to 9 step 1
        ......
        for a3 = 0 to 9 step 1
            ......
        next a3
    next a2
...



这个思路我会考虑并试验下,谢谢!
回复

使用道具 举报

发表于 2007-6-14 05:25:16 | 显示全部楼层
FOR i = 1 TO 10
    FOR j = 1 TO i
        FOR k = 1 TO j
        NEXT k
    NEXT j
NEXT i

一共经历了多少次 k 循环...
回复

使用道具 举报

发表于 2007-6-14 22:01:40 | 显示全部楼层
1+(1+2)+.......+(1+2+........+10)
=(1^2+2^2+.......+10^2+1+2+3+......+10)/2
=(10*11*21/6+10*11/2)/2
=(385+55)/2
=220
回复

使用道具 举报

发表于 2007-6-18 15:53:17 | 显示全部楼层
我觉得这个数字还是太大了。不过如果说是神经网络的话,我建议用模拟退火法试试,因为这个问题的解质量的变化应该是连续的。这个算法也不保证能出全局最优解,但可以多次运行求出很多局部最优解,可以作为一种补充,同时也便于实现并行计算。具体情况可以找些书看看。
回复

使用道具 举报

发表于 2007-6-18 16:09:04 | 显示全部楼层
不好意思,借别人的手机不大会用重复发帖了。再补充一点,就是如果有什么可行的已知的约束条件的话也可以加到算法中。无论是什么算法,多一点信息都意味着少一点计算时间。
回复

使用道具 举报

发表于 2007-6-18 17:12:58 | 显示全部楼层

回复 #13 fwjmath2 的帖子

重复帖已删除,你们慢慢讨论,我细细看。
回复

使用道具 举报

发表于 2007-7-24 19:19:21 | 显示全部楼层
原帖由 老冬腌菜 于 2007-6-12 22:03 发表
很多时候有些循环可以在很前面跳到下一个

比如

for a1 = 0 to 9 step 1
    ......
    for a2 = 0 to 9 step 1
        ......
        for a3 = 0 to 9 step 1
            ......
        next a3
    next a2
...




这种穷举搜索法也许是最糟糕的,是否可以考虑一下深搜和广搜
回复

使用道具 举报

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

本版积分规则

论坛官方淘宝店开业啦~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-5-8 09:35

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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