中国分布式计算论坛 » 分布式计算之开发与测试 » TSPChina@home已经做好请大家去测试

2004-7-5 00:00 youngfan
TSPChina@home已经做好请大家去测试

凡进入前100位(动态变化)者可累计一分,刚开始很容易,以后会越来越难.
http://www.aitech.cn/grid/

2004-7-5 00:00 碧城仙
我进去看了,正在研究中...............

2004-7-5 00:00 碧城仙
你应该在页首也加上JAVA虚拟机的下载链接,就象那个破密码的界面一样。

2004-7-5 00:00 碧城仙
在界面上应该填加“刷新”按扭,我每次都把鼠标移到IE工具拦上再移到界面上不方便。呵呵,一点小建议。

2004-7-5 00:00 碧城仙
我现在以绝对优势排名第一,太困了,先睡了,楼主辛苦了,也早点休息吧!计算和统计都做得很好的,让人佩服!
排名 用户名 积分
(1) 碧城仙 172
(2) youngfan 32
(3) hackerboy 0
(4) equn 0
(5) ninina 0
(6) Ronchen 0
(7) wangji 0
(8) lcl121 0

2004-7-5 00:00 acSix
一边看球一边做...开始很容易就可以拿积分啊...
葡萄牙居然1-0死掉.....55555555555555....输了餐饭.....

2004-7-5 00:00 碧城仙
[quote][b]以下是引用[i]youngfan在2004-7-5 1:18:50[/i]的发言:[/b]
刚开始很容易,以后会越来越难.
[/quote]的确是这样的哈,现在是越来越慢了,但还是在坚持中.............
排名 用户名 积分
(1) 碧城仙 340
(2) acSix 200
(3) youngfan 107

2004-7-5 00:00 youngfan
不知道谁能突破5414公里的极限?理论上如果每秒钟尝试100种方法,也需要4.65*40*39*38*37*36*......*8*7*6*5*4*3*2*1年才能试完。

因为取地球平均半径作为计算球面距离的依据,所以认为精确度取到公里比较合适。

2004-7-5 00:00 lcl121
最好能自动,不然点得手指都酸

2004-7-5 00:00 youngfan
主要是需要每次得到第100位的数据,这样比较保险。

没想到实验课题这么快就到了极限。又得伤脑筋找课题了。

2004-7-5 00:00 lcl121
呵,做PI啊,不要用JAVA,不然效率太低了

2004-7-5 00:00 碧城仙
几何计算公式
  Cosine Formula

余弦     cos A = cos B cos C + sin B sin C cos A

  Sine Formula

    Sin a   Sin b   Sin c
正弦    ─── = ─── = ───
    Sin A   Sin B   Sin C

  球面间两点的距离

   cos Z = sinψa sinψb + cosψa cosψb cosλ
    ┌ψa、ψb ── 两点分别的纬度
    └λ    ── 两点间的经度差
然后用反余弦求出Z
             Z
    两点间的距离S = ── × 地球实际周长
            2π
[align=right][color=#000066][此贴子已经被作者于2004-7-5 14:44:27编辑过][/color][/align]

2004-7-5 00:00 youngfan
啊,我是按Z = sinψa sinψb + cosψa cosψb cosλ 算的,还要求反余弦吗?

2004-7-5 00:00 youngfan
我马上修改程序,积分保留,数据重新来过。

2004-7-5 00:00 youngfan
修改后距离程序如下,总长为4万公里左右。昨天晚上做到3点,头有点晕了,大家重新计算,原来积分保留(我的回0)。

public int getdistance()
{ double s=0.0;
   double co=0.0;
   double d=0.0;
   double p1x,p1y,p2x,p2y;
   double w1,w2,dj;
   for (int i=0;i<44;i++)
      {p1x=citypos[ind[i]*2];
       p1y=citypos[ind[i]*2+1];
       p2x=citypos[ind[i+1]*2];
       p2y=citypos[ind[i+1]*2+1];
       w1=Math.PI*p1y/180.0;
       w2=Math.PI*p2y/180.0;
       dj=Math.abs(p1x-p2x)*Math.PI/180.0;
       co=Math.sin(w1)*Math.sin(w2)+Math.cos(w1)*Math.cos(w2)*Math.cos(dj);
       d=Math.acos(co)*6371.0;
       s+=d;
      }
   return (int)s;
}//end getdistance






[align=right][color=#000066][此贴子已经被作者于2004-7-5 15:17:11编辑过][/color][/align]

2004-7-5 00:00 youngfan
现在的数据看上去才比较合理。

2004-7-5 00:00 碧城仙
以前的公式按直线距离算的是“5414公里的极限”,为什么改为球面弧线了,距离反而短了,现在是“36291公里”。

2004-7-5 00:00 youngfan
以前公式错了,把cos(Z)当成了Z,还有另外一个Bug,只返回了d,而不是总和S.
现在应该合理了,45个城市,远的3,4千,近的几百公里,平均千八百公里合理


[align=right][color=#000066][此贴子已经被作者于2004-7-5 17:01:20编辑过][/color][/align]

2004-7-5 00:00 youngfan
[quote][b]以下是引用[i]lcl121在2004-7-5 14:33:13[/i]的发言:[/b]
呵,做PI啊,不要用JAVA,不然效率太低了
[/quote]

随着现在机器性能提高,JAVA也不是很慢,可以达到C的70%-80%计算能力,而且还有很多通用的便利。

2004-7-5 00:00 Lightalt
我觉得暂时不要考虑通用性
JAVA太麻烦了

2004-7-5 00:00 youngfan
...



[align=right][color=#000066][此贴子已经被作者于2004-7-6 10:00:12编辑过][/color][/align]

2004-7-5 00:00 lcl121
编译后的最好,操作系统也不是很多

2004-7-5 00:00 wpolly
能否把提交服务器的过程自动化?

2004-7-5 00:00 youngfan
之所要按按钮,是考虑到在计算的时候用户可能不在网上,而提交时再接上网可以节省费用。而接通互联网的动作需要提醒用户。
这个项目只是实验性质,所以有些可以做成后台的没有做成非常自动,好体验更多的交互。将来复杂的项目可能需要本地应用程序来支持时,回提供给主要会员应用程序版的Java程序。一般用户对安装陌生人的软件会有隔阂,所以用applet可以避免这种情况

2004-7-5 00:00 youngfan
[quote][b]以下是引用[i]lcl121在2004-7-5 18:52:19[/i]的发言:[/b]
编译后的最好,操作系统也不是很多
[/quote]

java也是编译语言,要编译成class文件,操作系统不多是什么意思?java在各种平台上都可以运行,不是更具有分布计算广泛性的要求的特性吗?

C#只有在微软的.net平台上,用linux的用户怎么办?

2004-7-5 00:00 wpolly
C, 不是C#.
Java效率太低, Applet的装入时间太长,并且不能提供对系统中层/底层的访问(如优先级/CPU关系设置)

2004-7-5 00:00 lcl121
那就用C++,B也可以,再用SEE1优化,因为很多CPU都支持,如PIII,CII以上

2004-7-5 00:00 youngfan
Java可以用setPriority语句设定和控制线程的优先级.

2004-7-6 00:00 fent
争论这些没什么意思,不知道seti和boinc是什么编的?有些问题还是多学学前人的经验的好。

2004-7-6 00:00 lcl121
SETI和BOINC都是用C编的,官方有源代码

页: [1] 2


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.