基于遗传算法的课程安排优化设计
- 格式:doc
- 大小:458.50 KB
- 文档页数:24
基于遗传算法的学生课程表排班技术研究学生课程表排班是大学管理中一个非常重要的环节。
一方面,排班质量直接影响学生学习效果,另一方面,排班任务非常繁琐,需要考虑到多种因素。
因此,基于遗传算法的学生课程表排班技术研究成为一个备受关注的研究方向。
一、研究背景学生课程表排班是大学管理中最为基础的一项工作,它涉及所有的学生和教师,对于学校的办学质量影响巨大。
传统的手动排班方式,其时间消耗和人员投入极为巨大,并且很难充分考虑到各种因素的特点和复杂性。
近年来,随着信息技术的不断更新和发展,遗传算法应用到学生课程表排班中成为一个研究热点。
二、研究意义基于遗传算法的学生课程表排班技术既可以解决时间消耗和人员投入的问题,又可以灵活地考虑到课程和教师的特点,从而提高效率和工作质量。
同时,该技术具有可复制性和可拓展性,具有广泛的应用前景。
三、遗传算法原理遗传算法是通过模仿进化的过程,将复杂问题转化为优化问题,并通过迭代搜索的方式,寻求最优解。
不同于传统算法,遗传算法关注的是解的质量而不仅仅是解的数量。
遗传算法包括选择操作、交叉操作和变异操作三个阶段。
在选择操作中,通过对每个个体的适应度进行计算,选出优质的解作为下一轮选择操作的对象。
交叉操作是通过对两个优质的解进行染色体交叉操作,产生新的后代解。
变异操作是在交叉操作的基础上,通过改变染色体的部分基因,产生变异后代。
四、学生课程表排班中遗传算法的应用学生课程表排班技术要考虑到多种因素,如学生选课情况、教师上课情况、教室及设备的占用情况、课程时长和课程内容等。
因此,遗传算法的应用可以将这些因素进行综合考虑,并产生优质的方案。
在具体实现中,首先需要建立适应度函数,按照一定规则对遗传算法生成的解进行评价。
然后,通过不同的遗传测算、繁衍和代际交替等步骤,确定最佳方案。
五、总结随着信息技术的不断发展,基于遗传算法的学生课程表排班技术已经成为管理工作中的主流应用之一。
它涉及到多种因素的考虑,并可以实现在较短时间内产生优质解的目标。
使用遗传算法编写课程表引言:在现代社会中,课程表的编排是学校教学工作的基础之一。
合理的课程表设计不仅能够满足学生学习的需求,还能最大程度地提高教学效率。
然而,由于课程表编排所面临的诸多限制条件和约束条件,使得传统的手工编排方法难以满足需求。
因此,借助遗传算法优化课程表的编排成为一种新的解决方案。
遗传算法概述:遗传算法是一种模拟自然选择和遗传机制的优化算法,它模拟了生物进化的过程。
遗传算法的基本思想是通过模拟进化的过程,通过选择、交叉和变异等操作,逐步优化解决问题的解。
在课程表编排中,可以将课程表看作是一个解空间,通过遗传算法不断搜索和优化,找到最优的课程表。
遗传算法编写课程表的步骤:1. 定义编码方式:将课程表编码成一串染色体,每个基因代表一个课程,每个染色体代表一个候选课程表。
2. 初始化种群:随机生成一定数量的染色体作为初始种群。
3. 适应度评估:根据设定的适应度函数,评估每个染色体的适应度,作为选择的依据。
4. 选择操作:根据染色体的适应度大小,选择一部分优秀的染色体,作为下一代的父代。
5. 交叉操作:从父代中选择两个染色体,进行交叉操作,产生新的染色体。
6. 变异操作:对新生成的染色体进行变异操作,引入新的基因,增加种群的多样性。
7. 更新种群:将新生成的染色体加入到种群中,更新种群。
8. 判断终止条件:根据设定的终止条件,判断是否终止算法。
9. 输出结果:输出适应度最好的染色体,即为优化后的课程表。
遗传算法编写课程表的优势:1. 自动化:遗传算法能够自动化地搜索和优化解空间,大大减少了人工编排课程表的工作量。
2. 全局优化:遗传算法能够全局搜索解空间,找到最优的课程表,避免了局部最优解的问题。
3. 可扩展性:遗传算法能够灵活地应对不同的约束条件和限制条件,并且可以根据需要进行扩展和调整。
4. 多样性:遗传算法通过交叉和变异操作,增加了种群的多样性,避免了陷入局部最优解的问题。
遗传算法编写课程表的挑战:1. 约束条件和限制条件:课程表编排面临着多个约束条件和限制条件,如教室容量、教师时间安排等,这些条件需要在遗传算法中进行合理的建模和处理。
遗传算法的课程设计思路一、教学目标本课程旨在让学生理解遗传算法的原理和应用,掌握基本的编程技能,培养学生的创新意识和解决问题的能力。
知识目标:使学生了解遗传算法的基本概念、原理和流程,理解遗传算法的编码、选择、交叉和变异操作,掌握遗传算法在解决优化问题中的应用。
技能目标:培养学生使用编程语言实现遗传算法的能力,能够运用遗传算法解决实际问题,提高学生的编程实践能力。
情感态度价值观目标:培养学生对领域的兴趣,激发学生探索科学奥秘的热情,培养学生的团队合作意识和沟通能力。
二、教学内容本课程的教学内容主要包括遗传算法的基本概念、原理和流程,遗传算法的编码、选择、交叉和变异操作,以及遗传算法在解决优化问题中的应用。
1.遗传算法的基本概念:介绍遗传算法的发展历程、基本原理和应用领域。
2.遗传算法的编码、选择、交叉和变异操作:讲解个体的编码方式、选择机制、交叉和变异操作的实现方法。
3.遗传算法在解决优化问题中的应用:通过实例分析,使学生掌握遗传算法在求解最大值、最小值、路径规划等优化问题中的应用。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。
1.讲授法:讲解遗传算法的基本概念、原理和流程,使学生掌握遗传算法的基本知识。
2.案例分析法:通过分析实际案例,使学生了解遗传算法在解决优化问题中的应用。
3.实验法:引导学生动手实践,用编程语言实现遗传算法,培养学生的编程技能。
4.讨论法:学生进行小组讨论,分享学习心得,提高学生的团队合作意识和沟通能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的遗传算法教材,为学生提供系统的学习资料。
2.参考书:提供相关的遗传算法参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT,直观地展示遗传算法的原理和应用。
4.实验设备:为学生提供必要的计算机设备,确保实验环节的顺利进行。
5.在线资源:推荐权威的网络教程和案例,方便学生课后自主学习和拓展。
有关遗传算法的课程设计一、课程目标知识目标:1. 学生能理解遗传算法的基本概念,掌握遗传算法的主要步骤和原理。
2. 学生能运用遗传算法解决简单的优化问题,并解释其背后的遗传学原理。
3. 学生了解遗传算法在人工智能、生物信息学等领域的应用。
技能目标:1. 学生具备运用编程语言实现遗传算法解决问题的能力。
2. 学生能通过调整遗传算法的参数,优化算法性能,提高问题求解的效率。
3. 学生具备分析遗传算法结果,提出改进策略的能力。
情感态度价值观目标:1. 学生培养对人工智能技术的兴趣,增强对计算机科学的热爱。
2. 学生通过遗传算法的学习,认识到算法思维在解决问题中的重要性。
3. 学生学会团队合作,共同探讨遗传算法的优化方案,培养沟通与协作能力。
本课程针对高中年级学生,结合数学、计算机科学和生物等多学科知识,旨在提高学生的跨学科素养。
课程注重理论与实践相结合,以实际问题驱动教学,培养学生的算法思维和编程能力。
在教学过程中,关注学生的个体差异,激发学生的学习兴趣,使其在掌握遗传算法知识的同时,提高解决实际问题的能力。
通过课程学习,为学生未来的学术研究和职业发展奠定基础。
二、教学内容1. 遗传算法基本原理:讲解遗传算法的起源、基本概念,包括遗传编码、适应度函数、选择、交叉和变异等操作。
教材章节:第3章“遗传算法概述”2. 遗传算法流程与实现:详细介绍遗传算法的步骤,并通过编程实践,让学生掌握遗传算法的实现方法。
教材章节:第4章“遗传算法流程与实现”3. 遗传算法应用案例:分析遗传算法在人工智能、生物信息学等领域的具体应用,提高学生的实际应用能力。
教材章节:第5章“遗传算法应用实例”4. 遗传算法参数调整与优化:讨论遗传算法参数设置对算法性能的影响,引导学生学会调整参数,优化算法性能。
教材章节:第6章“遗传算法参数设置与优化”5. 遗传算法拓展知识:介绍遗传算法的拓展知识,如多目标优化、并行遗传算法等,拓展学生的知识面。
基于遗传算法的排课优化问题求解排课优化问题一直是学校、大学以及一些培训机构所必须要面对的难题,在人力资源有限的情况下,如何科学地排出一个合理且不冲突的课表,已经成为了许多学校面临的共同问题。
为了解决这一难题,科学家和工程师们通过运用遗传算法和其他优化算法的方法,开发了许多可行性方案。
本文将从遗传算法的角度来探讨排课优化问题。
遗传算法(Genetic Algorithm)是一种模拟自然界进化的算法。
在自然界中,个体之间通过基因的遗传组合完成进化,并产生了最适应环境的生物种群。
将这种思想运用到人工智能领域中,遗传算法会更加聚焦于表现最佳的计算模型,从而求解出问题最优解。
在将遗传算法应用到排课优化问题中,我们首先需要清楚我们的目标,也即是要确定如何评价可以生产出合适课程表的个体(也就是排出来的课程表方案)。
通常我们选择以下几个指标:1.冲突数:每次安排的排课必须要避免同一时间段安排了不同课程的同学出现冲突的情况。
2.教师数量:我们需要限制每个教师一天最多要授课的数量。
3.上课时间:不同年级或专业应该拥有不同的上课时间设定。
4.考试时间:考试最好不要安排在同一天,或考试之间要有合适的缓冲时间。
在确定了目标之后,剩下的就是如何将遗传算法应用于实践中。
首先,我们需要确定个体应该包括哪些元素。
通常,我们选择将每个个体定义为一个完整的课程表,并将每节课定义为单一个体上的基因变量。
每个体内包括所有的课程计划,教室,教师和学生信息,并建立起课程表和基因之间的关系。
经过基因变异,评分和自然选择步骤后,我们就能得到最适应环境,即最优解的课程表方案。
在遗传算法中,最适应环境的确定方式通常是通过一个称为适应度函数(Fitness Function)的评分公式来计算的。
适应度函数由用户来设定,根据具体应用场景的实际需求设置不同的适应度计算规则。
这个过程可以理解为将每个个体放入一个生态系统中,生态中的任务是评判每个个体的适应度,并将最适应生物的优良特性遗传下去。
基于遗传算法的智能排课系统设计与优化摘要基于遗传算法的智能排课系统设计与优化是一项具有挑战性和重要性的任务。
排课是学校管理中关键的一环,它需要平衡师生时间表安排,确保教室和教学资源的有效利用。
然而,传统的手动排课方式存在效率低、容易出错的问题。
因此,开发一种高效、准确的智能排课系统对于学校管理的提升至关重要。
本文将介绍基于遗传算法的智能排课系统设计与优化的方法和实现。
1. 引言智能排课系统是指利用计算机科学和人工智能技术,通过自动化和优化算法来实现对学校课程排列的自动分配和优化。
传统的手动排课方式一方面存在人力浪费的问题,另一方面也容易出现排课冲突和资源浪费的情况。
基于遗传算法的智能排课系统可以借助计算机的高效计算能力和优化算法,解决传统排课方式的一系列问题。
2. 系统设计基于遗传算法的智能排课系统的设计包含以下几个关键步骤:2.1 问题建模智能排课系统需要将问题建模为数学模型。
通常,问题的建模包括定义课程、教师、班级、时间和教室等相关参数,以及约束条件。
建模的目的是为了将复杂的排课问题转化为数学优化问题。
2.2 遗传算法设计基于遗传算法的智能排课系统主要采用进化算法中的遗传算法来进行优化。
遗传算法模拟了生物界的进化过程,通过选择、交叉和变异等操作来生成和改进解。
具体来说,遗传算法包括以下几个关键步骤:初始化种群、选择操作、交叉操作、变异操作和适应度评价。
通过不断迭代和优化,遗传算法能够逐渐找到最优解。
2.3 系统实现基于遗传算法的智能排课系统的实现需要开发相关的软件工具和算法。
通常,系统的实现包括以下几个方面的内容:数据管理模块、遗传算法优化模块、结果评价模块和用户界面模块。
数据管理模块负责对课程、教师、班级、时间和教室等数据进行管理和处理。
遗传算法优化模块是系统的核心部分,负责通过遗传算法来进行排课优化。
结果评价模块用于评估算法的性能和结果的质量。
用户界面模块则提供给用户一个友好的交互界面,方便用户使用和操作系统。
基于遗传算法的高校排课系统设计与实现随着高校规模的不断扩大和课程种类的不断增多,高校排课系统越来越成为高校管理的一项重要任务。
有效的排课系统能够帮助高校管理者合理安排教学资源,提高教学效率和质量,同时也能够为学生提供更加优质的教育体验。
本文将基于遗传算法的思想,探讨高校排课系统的设计与实现。
一、高校排课系统的需求分析高校排课系统是高校管理中的一项重要任务,其主要目的是为了合理安排教学资源,实现教学资源的最大化利用。
在实际操作中,高校排课系统需要考虑以下几个方面的需求:1. 教学资源的合理利用:高校排课系统需要考虑各种教学资源的利用率,包括教室、教师、课程等。
2. 课程的安排:高校排课系统需要考虑课程的安排,包括课程的时间、地点、教师等。
3. 教师的分配:高校排课系统需要考虑教师的分配,包括教师的时间、地点、课程等。
4. 学生的需求:高校排课系统需要考虑学生的需求,包括课程的时间、地点、教师等。
以上几个方面的需求,需要高校排课系统综合考虑,才能够实现教学资源的最大化利用。
二、遗传算法的基本原理遗传算法是一种基于自然选择和遗传机制的搜索算法,其基本原理是模拟生物进化过程,通过优胜劣汰的方式逐步优化解。
遗传算法主要包含以下几个基本步骤:1. 初始化种群:随机生成一定数量的解作为初始种群。
2. 选择操作:根据适应度函数的值,选择一部分优秀的个体作为下一代的父代。
3. 交叉操作:对父代进行交叉操作,生成新的子代。
4. 变异操作:对子代进行变异操作,生成新的解。
5. 评估适应度:计算每个个体的适应度函数值。
6. 重复执行2-5步,直到满足停止条件。
三、基于遗传算法的高校排课系统设计与实现基于遗传算法的高校排课系统主要包含以下几个模块:1. 数据输入模块:将高校的课程信息、教学资源信息、学生信息等输入到系统中。
2. 种群初始化模块:随机生成一定数量的解作为初始种群。
3. 适应度函数模块:计算每个个体的适应度函数值,根据适应度函数值选择优秀的个体作为下一代的父代。
基于遗传算法的学生选课系统优化设计在当今社会,教育日益受到人们的重视,而学生选课是升学及学习生涯中的一项重要环节。
但选课系统在面对复杂的课程编排以及庞大的学生群体时,极易出现诸多问题。
如何优化学生选课系统,提高选课准确率、公平性和满意度等方面成为了必须考虑的问题。
为了解决这一问题,本文提出了一种基于遗传算法的学生选课系统优化设计方案。
一、选课系统现状及问题随着社会的快速发展,学生在进行选课时所需考虑的因素也日益复杂。
除了带有必修课程之外,选修课程和专业选修课程也成为了必选课程。
但是在学生选课的过程中,常常会遇到一些问题,比如说容易出现时间冲突,不同专业之间开设的课程数量过多或过少,选修课程被满额选满等问题,使得学生选课的效率和准确性大大降低。
二、遗传算法与选课系统优化1.遗传算法原理遗传算法是一种模拟自然界生物进化过程的搜索算法。
它利用人工智能、进化论、群体遗传遗传学等交叉领域的知识,通过模拟自然界生物进化过程,实现在指定搜索空间中寻找最优解的算法。
遗传算法的基本理念是基于模拟进化过程,通过进化算子的作用,逐次进化最优解。
它通过遗传、变异、选择等操作,产生具有适应性的群体,从而实现优化结果的搜索。
2.选课系统优化方案本文提出的基于遗传算法的学生选课系统优化设计方案,主要分为三步:初始状态的生成,进化过程的实现和最终解的输出。
首先,对学生的选课状态进行二进制化编码,用1表示选修该门课程,0表示不选修该门课程。
我们还需要设定某个学期内选修的总学时量、必修课程的数量等条件,从而生成每个学生在该学期内可能选修的状态空间。
然后,利用遗传算法的交叉、变异、选择进化算子,对生成的初始状态进行优化。
具体操作如下:(1)交叉:利用单点交叉算子,将两个个体的染色体串在某一位置点上交换,从而得到新的个体。
(2)变异:随机抽取某一位置上的染色体,将其进行变异操作,从而生成新的个体。
(3)选择:借鉴自然进化中“适者生存”的规律,采用轮盘赌选择算法,选出适应度最高的个体。
南京师范大学毕业设计(论文)(届)题目:基于遗传算法的课程安排优化设计学院:专业:姓名:学号:指导教师:南京师范大学教务处制摘要课程表规划问题是一个NP 完全问题,其规划策略可以通过多种方法实现,一般启发式搜索算法是通过在全局区间找到可行结果,通常适合于简单的例子,对于多参数输入和结果要求,寻找一个相当好的解决方案可能需要耗费很多时间,甚至是不可能的。
遗传算法(GAs) 是基于启发式方法的种群,该方法已经成功应用于人工智能、搜索和优化的各个领域,遗传算法的原理是由Holland设计并进行开发的,遗传算法具有以下特性:(1)从种群中选择个体的机制;(2)创造新个体的运算;(3)通过将以前的单个方案随机打乱,生成新解决方案的过程(4)更新个体的规则,这些特性分别被称为选择,杂交,变异,更新。
本论文拟将遗传算法应用于课程表的多参数优化,寻找满足约束条件的课程规划。
关键字:课程表规划,遗传算法,选择,杂交,变异,更新AbstractMaking a class schedule is one of those NP-complete problems which can be solved by many methods. The normal heuristic search algorithm finds the optimal solution based local search procedure, but it only works for simple cases. For more complex inputs and requirements, finding a considerably good solution can take a while, or it may be impossible. Genetic algorithms (GAs) are population based heuristic approaches. They have been applied successfully in various domains of artificial intelligence, search, and optimization. The promising results were obtained for many difficult optimization problems. The principles of GAs were developed by Holland .Very briefly, GAs can be characterized by the following features: (1) a mechanism for selecting individuals from the population; (2) an operator for creating new individuals; (3) a procedure for generating new solution by random perturbations of the single previous solutions; (4) a rule for updating the population. These features are referred to as selection, crossover, mutation, and updating. In this paper, GAs will be applied to optimizing the multi-parameter of schedule and searching the schedule which satisfies the requirements .Key words: class schedule planning,genetic algorithms,selection,crossover,mutation,updating.目录摘要 (1)Abstract (2)第一章绪论 (4)1.1研究目的及意义 (4)1.2研究现状 (4)1.3研究内容 (4)第二章排课问题研究的概述 (5)2.1课程表问题的描述 (5)2.1.1 时间表问题概述 (5)2.1.2 课程表问题概述 (5)2.2大学课程表问题的研究情况 (6)2.2.1 大学课程表问题的理论研究 (6)2.2.2 大学课程表问题解决方法 (6)2.3排课的各种算法的比较 (7)第三章课程表的类对象 (9)3.1课程表的类对象 (9)3.2Chromosome 染色体 (9)3.2.1 Representation 表示 (9)3.2.2 Fitness 适应度 (10)3.2.3 Crossover 杂交 (11)3.2.4 Mutation 突变 (12)第四章基于遗传算法的课程规划 (12)4.1遗传算法的来源和研究发展 (12)4.2具体操作 (13)4.3课表观察员 (15)4.4配置 (16)4.4.1 配置文件 (16)4.4.2 配置文件的例子 (17)4.4.3 解析一个配置文件 (18)4.5程序运行示意图 (19)第五章结论 (21)致谢 (22)参考文献 (23)第一章绪论1.1研究目的及意义排课问题的本质是将课程、教师和学生在合适的时间段内分配到合适的教室中,涉及到的因素较多,是一个多目标的调度问题,即NP(Nondeterministic Polynomial,非确定的多项式)完全问题。
NP-完全问题的简单与否,取决于问题的难易程度,只能用启发式算法找出最优解。
然而这种算法太慢了,根本无法在计算机上实现。
因此众多研究者提出了多种其他排课算法,如模拟退火、禁忌搜索、进化算法等。
其中,遗传算法(Genetic Algorithm, 简称GA)是很有效的求最优解的算法。
本课题的主要目的是通过综合研究、分析现有的排课优化的解决方法,实现基于遗传算法的自动排课优化。
本课题的研究意义在于,实现基于遗传算法的排课优化问题,可以提高优化的满意度和灵活度。
实践证明,这种算法设计得出的课程安排可以达到了师生的高度满意。
1.2研究现状大学课程表问题(University Timetable Problem-UTP)或者时间表问题(Time Table Problem-TTP)是一个一直困扰各个学校的令人头疼问题,它是运筹学典型的组合优化问题之一。
教师,教室,时间,课程和班级是五个制约该问题解决的重要因素。
19世纪60年代,开始有学者从事计算机辅助排课的研究,Appleby等人开始使用简单的经验法,来解决小规模的排课问题。
遗传算法是由美国芝加哥大学Holland教授于1975年所提出。
其基本观念源自于达尔文的进化论(Darwin's Theory of Evolution)中适者生存的理论,是一种通过模拟自然界生物进化过程求解极值的自适应人工智能技术。
遗传算法借用了生物遗传学的观点,通过自然选择、遗传、变异等作用机制来提高各个个体的适应性,体现了自然界中“物竞天择、适者生存”的进化过程。
1975年,经过对该问题进行证明,S.Even提出它是一个NP完全问题。
这意味着普通的方法比如图着色,整数规划,对复杂的学校排课问题并不能进行良好的解决。
从70年代到90年代,有些学者开始了利用矩阵向量方法来对排课问题进行研究,能够解决规模稍大的问题,但是仍然存在缺陷。
到了90年代后,国内外很多学者转而采用遗传算法对排课问题进行了研究,随着遗传算法的发展,有了一定的结果,但是仍然未能解决满意度的问题。
1.3研究内容第一步:了解遗传算法的概念及其对于排课优化的重要意义。
第二步:研究现有的排课优化方案及存在问题。
第三步:利用遗传算法建立数学模型,定义染色体编码方案和适应度函数。
第四步:通过初始化种群、选择、交叉、变异等过程不断进化,最后得到最优解。
第五步:结果分析及其优化。
第二章排课问题研究的概述2.1课程表问题的描述2.1.1 时间表问题概述时间表问题(Time Table Problem)既是一个理论方面的问题也是一个来源于实践的问题,它是实际生活中人们可以遇到的问题,甚至对于我们来说很常见。
比如说交通时间表问题[11][12](transportation Timetabling),这个问题是如何设计城市中公交车或者有轨电车的时间表问题,使其能够良好的运行,减缓城市交通的压力;比赛时间表问题[13](employee timetabling)是如何设计一项大型赛事的时间表,来保证大型赛事能够良好的进行;还有雇员工作时间表问题(employee timetabling),研究得是如何来安排雇员的工作,使其工作能够达到最高的效率;当然还有我们要研究的大学课程表问题,这个问题研究的主要目的是提出一种优秀的算法最大程度上使学校课程安排人性化、合理化。
时间表问题是一类具有多约束的将有限时间资源分配给多个事件组合优化问题。
通常,一个时间表问题会有一系列事件(event)和一组有限的时空单元(time-space slot)和一组具体地点,并且还要受到一系列约束的限制,这些约束又分为硬约束和软约束。
硬约束就是我们在进行时间表安排的情况下必须无条件满足的一系列限制,不能有任何违反,而软约束也是一系列的限制,但是我们不一定要全部满足,但是这些软约束的满足情况却决定了我们时间表安排的合理情况。
当你排一个课程表时,你必须考虑很多要求(教授、学生、班级和教室的数目,教室的大小,教室里的实验器材等等)。
这些需求可通过其重要性被分成若干组。
硬约束(如果你不能解决其中一个,这个排课计划就是不可行的):●一个班级只能放在一个空教室里●没有教授和学生可以在同一时间上一门以上的课●一个教室要有足够的位子安排所有的学生●如果要在一个教室排课,此教室要有这门课程所需要的设备(例如电脑)软约束(即使不能解决,计划仍是可行的)●一些教授对上课时间的偏好●一些教授对上课地点的偏好●学生或教授的在时间和地点上的班级分配当然,硬的和软的约束取决于有关情况。
在这个程序中,只有硬约束落到了实处。
2.1.2 课程表问题概述本文主要研究的是时间表问题中的课程表问题。
这个问题是来源于学校日常生活,和学生的日常生活息息相关。
随着学校规模扩大,学生的数量急剧增加,学校的教育资源显得越来越有限,这个问题就显得越发突出。
所以对这个问题的研究具有现实意义,但是它又不缺乏理论性,1975年,S.Even对该问题进行了研究,并指出大学课程表问题是一个NP完全问题,这就说明了该问题没有真正意义上的最优解,人们的求解只有可能是相似最优解,也就是说求解获得的答案只可能不断接近最优解,但是不可能是最优解。