求排课系统的算法,百分酬谢,不够另加! 先找个老师问一下排课时要注意避免什么现象再来研究算法会更好些。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 排课非常难的,不是想得那么简单 我来大概说说吧。首先你要知道你要做的排课系统要符合哪些要求。这些要求可以分成两大类:一类是硬要求,即一定要满足的,比如说一个老师在同一个时间段,不能上两门课等等。另外一类是软要求,即尽量要满足的,比如说如果一门课一个星期要上两次课,那么最好这两次课相隔两天以上等等。其次,对这些要求,你要进一步形式化,用数学表达式来表达,并进行量化,使计算机可以进行评估计算。比如说满足一个硬要求的话,那么该方案就得多少分,如果全部满足的话,那么就是得满分了。然后,你可以随便给出一个初始的方案(当然,这个方案是不满足需求的)然后通过一些调整策略(这是算法的关键),把方案的分值逐步提高,直到满足需求为止。 一般说来,用枚举法比较简单,速度稍微慢了一点:1.先使用最基本的限制条件,缩小枚举的范围(比如:每天的数学课不能超过三节,同一老师不能同时出现在两个教室)2.随机安排,并对结果进行评分(比如:方差法)3.比较分数是否比上次高,如果是,保留这次结果。重复n遍,就能不断逼近完美。 咦,好像和楼上的差不多,嘿嘿…… 找几个教学辅助软件参照一下,北京四中好象有这方面的演示程序有时一个现成的演示过程比说明管用多了 xml查询的问题 请管理员删除上一个同标题的帖子,更改分数重新发!仍然是联动问题。。。 在C#中如何动态的向程序集中添加现有cs文件? 100分求救 奇怪!奇怪!.Net 写文件 BUG!!! 怎样构造数据库查询条件界面实现通用查询 关于winfrom的问题,自己写的程序要如何才能在任务栏中隐藏~~ 未处理的“System.ExecutionEngineException”类型的异常出现在 mscorlib.dll 中 怎样在我的WinFORM里内嵌一个IE浏览器??? 如何从数据库中读取数据(不用dataset) 关于Unicode-字符位置识别-100分 怎样获得“我的文档”的路径
首先你要知道你要做的排课系统要符合哪些要求。
这些要求可以分成两大类:一类是硬要求,即一定要满足的,比如
说一个老师在同一个时间段,不能上两门课等等。另外一类是软要求,
即尽量要满足的,比如说如果一门课一个星期要上两次课,那么最好
这两次课相隔两天以上等等。
其次,对这些要求,你要进一步形式化,用数学表达式来表达,并进行
量化,使计算机可以进行评估计算。比如说满足一个硬要求的话,那么该
方案就得多少分,如果全部满足的话,那么就是得满分了。
然后,你可以随便给出一个初始的方案(当然,这个方案是不满足需求的)
然后通过一些调整策略(这是算法的关键),把方案的分值逐步提高,直到
满足需求为止。
1.先使用最基本的限制条件,缩小枚举的范围(比如:每天的数学课不能超过三节,同一老师不能同时出现在两个教室)
2.随机安排,并对结果进行评分(比如:方差法)
3.比较分数是否比上次高,如果是,保留这次结果。重复n遍,就能不断逼近完美。
有时一个现成的演示过程比说明管用多了