想问问遗传算法相关的问题

360 天前
 summerlv

事情是这样的,有个需求是设计一个抽题程序:能够随机抽题并且能够将题随机分配给班里相应数量的人回答,要做到题不重复,然后回答者也不重复。我想了下这就是一个交叉组合匹配的问题,然后前段时间我一个朋友毕设有用到遗传算法,他设计的是一个排课系统,利用遗传算法去优化了排课系统,我就在想这个抽题程序应该是跟排课系统逻辑差不多的吧,所以就去了解了下遗传算法。于是乎感觉这个抽题程序应该也可以用到遗传算法来优化组合匹配。但是我现在对于遗传算法一头雾水,摸不着头脑。我简单看了两篇博文

遗传算法入门详解 遗传算法实现自动组卷、随机抽题

能够有一些了解(就是主要去设计遗传算法中的选择,交叉,变异算子),但是对于如何应用到抽题程序还是很懵,所以想问问有没有前辈能够给出一些设计思路和建议? 谢谢~

1023 次点击
所在节点    程序员
6 条回复
houshuu
360 天前
4 年没碰了,但是我记得遗传算法选择,交叉,变异倒是几乎都差不多,重中之重是要构建合理的适应度函数。
下面这个知乎可能有帮助。
https://www.zhihu.com/question/40102661

你这个问题里,没有写清楚题目是否本身有其难度系数如果有的话那确实是典型可以用来优化的问题。
我自己做适应度函数的话,应该会设定为对于目标难度系数值的差值和分散惩罚项
summerlv
360 天前
可以加难度系数吧,我觉得可以设置题目难度系数(简单,中等,难)这三个等级
summerlv
360 天前
@houshuu 可以加难度系数吧,我觉得可以设置题目难度系数(简单,中等,难)这三个等级,适应度函数是怎么构建啊?我好好的看下你发的链接吧,谢谢指点咯~
coldheart
359 天前
需要优先考虑的是遗传算法的编码,即将具体问题转换为可计算的编码形式(如二进制编码)。
coldheart
359 天前
另外可以看一下这个库: http://geatpy.com/index.php/home/
lidegao899
359 天前
一点拙劣想法:
每个人抽两题,相当于一个二维向量;
全班十个人,合并起来就是一个二十维向量,作为 DNA ;
可以把向量内部题目重复度、难度系数作为惩罚函数,找到最佳个体。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/937365

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX