房间份分配问题源代码,希望能发出来以后和大家多交流

OpenHero 2007-12-26 03:14:00
http://d.download.csdn.net/down/317516/OpenHero
房间份分配问题源代码,只写了两天,还有很多不如意的地方;希望能发出来以后和大家多交流
...全文
1245 33 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
brss 2011-03-04
  • 打赏
  • 举报
回复
学习了
napoleaon 2008-01-11
  • 打赏
  • 举报
回复
接分
捺捺 2008-01-07
  • 打赏
  • 举报
回复
re
zyx0507 2008-01-02
  • 打赏
  • 举报
回复
应该好好的补习补习数据结构的的知识了.
OpenHero 2008-01-02
  • 打赏
  • 举报
回复
最好还是结合起来用,先排序,然后利用排序的结果,再来做选择,这里的选择可以用退火算法,也可以用其他的,参数随机函数的时候按照正态分布或者其他的分布,从最大的地方开始选,然后选择分配后再插入排序队列里面,
fmddlmyy 2008-01-01
  • 打赏
  • 举报
回复
我后来想了想,denghui按照字符串比较排序其实是有问题的,例如:
1 0 0 0 0 0 0 0和0 0 0 0 0 0 0 1会被分隔很远,其实它们还是很般配的。
对于随机数据,排序没有问题。但对于有一定特征的数据,结果就可能很差。即使给予足够的运算时间,但由于算法的局限性,也达不到最优解。

而使用模拟退火算法只要每个温度迭代足够多步(以达到平稳分布),理论上是可以得到全局最优解的。

不过在两分钟限制的前提下,denghui的算法要明显优于模拟退火算法。
XX 2007-12-31
  • 打赏
  • 举报
回复
网页打开好慢!
everbuie 2007-12-31
  • 打赏
  • 举报
回复
网页打开好慢!
fmddlmyy 2007-12-30
  • 打赏
  • 举报
回复
算102400个学生时确实挺快,但结果太差:
The initial Disharmony is20466.3
Time to compute room assignments is 1.18871seconds
Final Disharmony is20335.4
用VC8编译的Release版,执行同样数据会有非法访问错误。

在算20480000学生时跑到
unstable_rooms.push_back(room);
就异常退出了,不用说40960000或268435454个学生。我看到的其它代码,至少计算20480000个学生是可以的。

我看到的最好的程序还是denghui0815的。
fmddlmyy 2007-12-30
  • 打赏
  • 举报
回复
OpenHero 2007-12-30
  • 打赏
  • 举报
回复
其实最好的还是先排序,然后再按照退火算法来做,这样优化以后,可以结合denghui利用的两种算法,只要控制好退火时间,理论上结果会更好:)
fmddlmyy可以去试试:)
OpenHero 2007-12-30
  • 打赏
  • 举报
回复
to:fmddlmyy :
1.windows下我算出来的结果,比你的还差,哈哈,这个不是在windows下算的,windows下只是用来做编写的,vc8只是用来做编辑工具用的,
要在intel下用icc编译,然后再linux下执行
2.windows下release是不能执行的,编译选项都没修改;
3.windows下如果用debug 版本跑,会占用比release版本多很多的内存,再说了,windows下xp顶多能用到3.2G的内存,即使装4G的内存也用不完的:)

要在linux下编译,再试试:)
sqqsw 2007-12-29
  • 打赏
  • 举报
回复
东西分享了才能获得快乐
cow8063 2007-12-29
  • 打赏
  • 举报
回复
顶一个,再下来看看
zhaojianlin 2007-12-29
  • 打赏
  • 举报
回复
顶下
洋溢2020 2007-12-29
  • 打赏
  • 举报
回复
o
yongbbk 2007-12-29
  • 打赏
  • 举报
回复
楼主的东西是收钱的,想看还需要门槛!
lky418 2007-12-29
  • 打赏
  • 举报
回复
注意一下我ID的拼音...
lky418 2007-12-29
  • 打赏
  • 举报
回复
楼主叫 开勇??? 是 不是姓赖?? ........
茶禅如水 2007-12-29
  • 打赏
  • 举报
回复
o(∩_∩)o...
代码写的很好 对tbb的应用也很多
模拟退火那段我一直不知道怎么tbb并行化,看了你的代码懂了一些。

代码中交换房间的学生应该有2种情况, r1.s2 <-> r2.s1 或 r1.s2 <-> r2.s2
而你代码中只有1种 我不知道应不影响td的值 想问一下你测试的结果
加载更多回复(12)

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧