ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 邯郸学步2之学有所成:随机优化分班

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-8 14:42 | 显示全部楼层
  下图是详尽分析:
   5.jpg
  分析附件如下:
   代码运行时间分析.rar (7.7 KB, 下载次数: 23)

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-8 14:50 | 显示全部楼层
本帖最后由 aoe1981 于 2014-8-8 17:28 编辑

  刚想到了,在上楼时间分析附件中增加了一列:
   1.jpg
  发现,运行时间完全取决于实际交换次数,二者完全正相关!
  只是对比理论次数,这个实际次数多了随机的特点,不太可控……
  如果每次交换时,第一个“方差变小学生”出现的早,则后面的循环便不再进行,这样循环的次数就会少一些……

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-8 14:58 | 显示全部楼层
本帖最后由 aoe1981 于 2014-8-8 17:27 编辑

  最后再上一张图:
   1.jpg
  此图为前楼稍大数据测试截图的一部分。
  可见,人数+性别+语文单科+数学单科+综合单科的均衡并没有使四大分数段变得均衡!
  我上图圈起来的地方,往往是老师很在意的地方……
  呵呵,继续保留我的“分数段均衡”的猜想……哈哈哈……

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-8 14:59 | 显示全部楼层
  引用一句:“我自横刀仰天笑 笑完之后去睡觉!”

TA的精华主题

TA的得分主题

发表于 2014-8-8 15:39 | 显示全部楼层
aoe1981 发表于 2014-8-8 11:06
  香川曾说:
  “这个不是随机交换了,而是遍历交换。
  当然,我的算法遍历次数会少 ...

这当然仍然是遍历的算法,而不是随机的算法。

应该描述为:
1. 两层遍历循环 (外层为主动班学生、内层为被动班交换学生)
2. 内层循环择优交换、终止退回上一层继续遍历
3. 1-2的算法反复多次进行


…………
而随机,则可能是两种情况:
1. 全随机:
按一定次数、任意选择2个学生进行比较,择优交换。

2. 半随机:
外层主动班进行循环遍历
内层剩余班进行一定次数的随机比较、择优交换。


…………
一般随机算法的目的,在于:
针对人数增长导致计算量平方级倍增的问题,
以随机方式进行不完全的检查交换,提高计算效率。
但可能会牺牲一定的准确性(可能无法得到最优解)
但一般仍能较快得到次优解。

呵呵。



评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-8 17:26 | 显示全部楼层
香川群子 发表于 2014-8-8 15:39
这当然仍然是遍历的算法,而不是随机的算法。

应该描述为:

  您说得也在理……不过,我这样1次1次的遍历下去,当提示框显示“实际替换较小方差状态为0”时是否就是得到了最优结果呢?这个我不太敢断定,但是我倾向于认为是这样的……
  我说随机主要还是针对海量的分班方案:h!,我觉得把这个试到了,才算是遍历吧,而不只是“数据两两对换”的遍历……

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-8 20:19 | 显示全部楼层
  再上两张关于运行时间的图:
   1.jpg
   2.jpg
  可见,均是“实际替换0次较小方差状态”,我猜测:这就是最优方案!

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-8 20:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  关于上楼所上运行时间,总结两点:
  1.与21楼测试时间对比,遍历2次时间由563秒延长为1097秒;遍历1次时间由58秒延长为553秒。这说明,越往后,寻找“方差较小方案“越困难,所需的找寻时间越长,如果实在找不到,就会遍历所有数据,故而,我猜测是最优状态!
  2.上楼中遍历1次基础数据时,实际尝试交换426615人次,与21楼公式计算的理论次数426616.875次非常接近,出入是由于各班人数并不是完全相等带来的!
  当然以上仍然以954人分16班为测试标准。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-8 20:28 | 显示全部楼层
  均衡分班做到下图这样,算是到了极致了吧……
   3.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-8 20:50 | 显示全部楼层
  关于极端情况疑问的测试与回应:
  170人分25班、27班、29班。
   25.jpg

   27.jpg

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

本版积分规则

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

GMT+8, 2024-5-16 02:58 , Processed in 0.051051 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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