当前位置:首页 » 操作系统 » 选课算法

选课算法

发布时间: 2025-05-09 17:44:38

⑴ 数学建模选课问题完整解答

这个问题应该算是一个0-1背包问题吧。18个学分算是背包容量,每门课的学分是物体体积,物品收益都相同,是1.

第一问属于背包的最少收益问题,第二问是最大收益问题。

然后这个问题应该就可以用经典背包问题求解算法了。比如动态规划:
对课程1,考虑选择它和不选择它
如果选择它,就只需要再选择13个学分,然后这个问题会简化为要选择13个学分,少了课程1后的课程选择问题,问题还是原先的问题,但是问题的规模小了点,剩下的继续递归。
如果不选择它,就需要选择18个学分,,问题简化为18个学分,但是没有课程1,剩下的也递归下去。
两种选择,哪种优选择哪一个。

当进行递归的时候,如果碰到选择方案不能满足约束条件,即任选课大约1/6小于1/3,则该方案返回0值,如果还有同修要求的,比如限选课6,如果开始选择的是不选课程1,那么对于课程6,就不存在选择和不选择问题了,必然是不选择,如果开始第一步选择了课程1,当递归到课程6的时候才有选择和不选两种选择。

最终会得到一组第一问和第二问的最优解,则第三问结果也有了。

另外,附赠一个思路:可以查一下关键词【演化算法】,不用确定性算法,而是用智能优化算法,将所有的课用一个二进制位进行编码,0表示不选,1表示选择。每一种01串表示一种课程选择策略,对应一个学分,还对应一个对各种约束的满足程度,将对约束的违反当做罚函数。然后进行演化算法的选择交叉变异就开始搞,反正演化算法不能说来话长,如果感兴趣自己看看。

热点内容
移动ip案例云dns服务器 发布:2025-05-10 01:51:46 浏览:164
侠盗飞车解压密码是多少 发布:2025-05-10 01:45:04 浏览:711
c语言程序操作 发布:2025-05-10 01:23:04 浏览:412
ad滤波算法 发布:2025-05-10 01:17:59 浏览:895
自制网络存储 发布:2025-05-10 01:03:29 浏览:505
java防重复提交 发布:2025-05-10 01:02:32 浏览:737
如何在家用乐高制作解压玩具 发布:2025-05-10 00:55:07 浏览:439
linux的mtu 发布:2025-05-10 00:54:52 浏览:155
android判断root 发布:2025-05-10 00:44:06 浏览:689
if条件编译 发布:2025-05-10 00:21:02 浏览:72