ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: lanyf

[求助] 数组内容随机排序问题请教

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-10-21 18:57 | 显示全部楼层
sunsoncheng 发表于 2011-10-21 16:36
法师:

关于随机算法已懂了一点,

但遗传及变异,什么种子堆,总是不明白
==============================
遗传和变异都是方便理解的说法而已,实际上程序是把一个现成的结果,随机变化其中一部分,产生一个新的结果
这种做法类似DNA的变异
遗传则是选取所有结果的最好的一部分,假定这些好结果都有好的DNA,因此下一代的变化就从这些好结果出发,而不是随机算法的“盲目”出发

起始的种子库里不是有200个?为什么后的参与更新的只用100个?
==========================================
种子库就是每一代选取多少个好结果,保留进入下一代。
100个应该是遗传算法对种子库大小的最低要求,取更大的种子库会更好,但是计算时间也随之增加。

新的种子库里的合力既是以最小为标准,为什么不对进行排序,后面的新种子插入到顺序值?
=====================================
因为我用的是 堆 作为种子库数据结构,所以无须排序,堆结构的特点是,其第一个数组元素永远是所有堆元素里面最小(最大)的一个
所以我先建立种子堆,然后第一个数组元素就是最差的种子,新的结果跟这个最差种子比较即可,不需要插入一个排好序的表
堆的详情你可以搜索 堆排序,或者搜索 优先队列

选用的基因原则是什么?
如果我这样选行吗:
现在有200个种子,里面选1/4就是50个最好的,考查其位置,位置出现最多的N个(但这N个不知如何定呢,为什么这样定呢?)
位置不变,而变其它的位置?
这里的变异好象只是两个位置互换?,为什么只是两个位置互换?
=======================================
选用基因的原则可以很多很灵活,不过此题的最终目的还是要合力最佳的结果,所以我直接用最小的合力来选种子
你的方法也可以。
变异的方法也可以很多,不过考虑到计算速度,我就只用简单的位置互换来产生新的结果
实际上遗传算法每一个要素都会大大影响算法的求解结果
1 种子库大小
2 变异的剧烈程度
3 遗传多少代
而衡量上述三点,要综合考虑速度,优化程度,代码复杂程度,要多次测试才能得到一个较佳的经验值,所以我才说遗传算法本身就是个很麻烦的东东。

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-12 05:56 , Processed in 0.022047 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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