基于遗传算法的排课算法

基于遗传算法的排课算法
基于遗传算法的排课算法

基于遗传算法的排课算法

蒲保兴

(邵阳学院信息与电气工程系,湖南 邵阳 422001)

摘 要: 本文把排课问题转化为一个组合优化问题,在此基础上以罚函数的方法建立数学模型,并给出了基

于遗传算法的解法,提出“动态罚值权定标方法”和“分块遗传策略”.

关键词: 排课算法;遗传算法;分块遗传策略;培养型变异;动态罚值权定标

中图分类号:G 642 文献标识码:A 文章编号:100528036(2006)0120083205

收稿日期:2005206201

作者简介:蒲保兴(1965-),男(瑶族),邵阳学院信息与电气工程系,副教授、硕士,主要从事人工智能研究.

优化排课问题就是在给定教师资源、教室资源和开课计划的前提下,如何合理地安排课表问题.其实质是含约束条件的目标函数优化问题,运筹学中论及了一些特殊的优化问题求解方法,如线性规划的单纯形法等[1].

在对排课问题建立数学模型后,发现它难以用传统的启发式算法求解,而且其约束条件和目标函数难以用解析式表示出来,因此,必须寻求其他的算法.遗传算法[2~5]作为一种有效的全局搜索方法,从产生至今不断扩展了其应用领域,由于它的鲁棒性,适用范围广,有组织性、自适应和学习性、并行性、不需要求导和其他辅助知识等特点,在求最优化问题时,甚至只需给出目标函数的计算规则而不必给出目标函数的解析式等优点,备受人们喜爱,遗传算法为排课问题的求解提供了有效的途径.

1 数学模型的建立

在实际排课过程中,以某一等长的时间段为课表的时间安排单位,称之为时间单元.一个可行的课表安排应满足以下约束条件:课表以一个星期为一周期,一个星期的课表就是一个学期的课表;课表应满足班级、教师、教室上课不冲突;教室的座位应该满足上课班级学生的需要;其他一些特殊要求.

在满足以上约束的前提下,应尽量使课程安排合理,符合教学规律,这叫做优化目标.优化目标包括以下几个方面:同一班级的同一门课程在时间安排上应尽量均衡;同一教师担任的所有的课程在时间上应安排均衡;同一班的同一门课程或同一教师担任的所有课程在节次上应错开,即不能均是相同的节次,例如,某一门课程每周开3次,这三次中最好有1—2节、3—4节、5—6节,不能都是1—2节或3—4节;若教室有空余的时间单元可以不排课,则这些空余时间单元应放在较差的时间段内,比如说下午.

以上的约束条件和优化目标可能会互相矛盾,在教师、教室资源比较紧张的情况下,有可能会发生顾此失彼的现象,这里应当说明的是,对于约束条件和优化目标是难以用解析式描述的.

设教室有n 1间,一个星期内有n 2天为上课时间,每间教室在每一天能排课的时间单元数为n 3,则一周内所有的教室可以排课的时间单元数为n 1×n 2×n 3,不妨把这些可供安排的时间单元记为T 1,T 2,Λ,T n ,我们把它称之为教室时间单元,其中n =n 1×n 2×n 3.为了方便操作,可以把属于同一间教室的时间单元放在一起,同时记下每一间教室在每一天的时间单元所对应的序号.

2006年2月

第15卷 第1期中央民族大学学报(自然科学版)Journal of the CUN (Natural Sciences Edition )Feb.2006V ol.15 N o.1

根据教学计划,可以得出每一个班级、每一门课程在每周内应安排课的次数,我们把每一次课称之为课程时间单元,它要占用一个教室时间单元,综合各个班的每门课程每周内应安排课的次数,便可以

得出一周内所有的班级、所有课程所需要的课程时间单元,不妨记为C

1

,C2,Λ,C m,同时记下每一课程

时间单元对应的班级名称、课程名称和任课教师.那么,排课问题就是如何把课程时间单元C

1

,C2,Λ, C m指派到教室时间单元T1,T2,Λ,T n中去的一个指派问题.

一般来说,有m≤n,当m

进一步分析,让C

1

,C2,Λ,C n和T1,T2,Λ,T n的次序固定,那么一次具体的指派就是把每一课程

时间单元C

i 指派给某一个教室时间单元,不妨记为T

l

i

,从而一次具体的指派与n个自然数的全排列

l1,l2,Λ,l n对应,反之亦然,即n个自然数的一个全排列l1,l2,Λ,l n对应一个具体的排课指派,其中:

l i∈{1,2,Λ,n},且当i≠j时有l i≠l j

从以上分析可以看出,问题的实质是一个组合优化问题,为了便于操作,把约束条件以罚函数的方式计入目标函数,若某一课程、某一班级或某一教师的排课不满足约束条件,则给目标函数加上一个单位的罚值,若有多处不满足,则进行罚值累加.优化目标同样也以罚函数的方式计入目标函数,当某一排课在某一处不满足优化目标,则给予相应的罚值,若多处不满足,进行罚值累加.从而目标函数值是约束罚值与优化罚值的带权和.其最小值为0,对应为最为理想的排课方式.从此可以看出排课问题是一个求最小值问题.其数学模型为:

min F(l1,l2,Λ,l n)

l i∈{1,2,Λ,n} i=1,2,Λ,n(1)

st l i≠l j 当i≠j时(2) 2 基于遗传算法的优化排课问题的求解

2.1 基于动态罚值权定标的目标函数的计算方法

约束条件和优化目标有轻重缓急之分,约束条件是必须满足的,优先级别最高,而各种优化目标也有优先级之分,应尽量满足级别高的优化目标.由于它们都转化为罚值,则其罚值权是不同的,高一级的罚值权比所有低级的罚值和还要大.从此可以看出,采用静态定标罚值权的方法是不可取的,我们采用动态罚值权的定标方法.遗传进化在进行选择操作中,我们着眼于目标函数或适应度函数的相对值而不关心其绝对值,确定个体的目标函数的真正目的是在于确定个体在群体中的优劣,因此我们根据整个群体情况来统一定标罚值权,我们把各级的罚值用一个向量来表示,而目标函数便是各级罚值的带权和.

设有k级罚值,其优先级是从大到小严格按顺序排列的,其中第一级罚值对应的是约束罚值,其余各级罚值是根据优先级排列的各级优化罚值,每一级罚值应有一个罚值权,一次具体的排课对应于不同级别的罚值分别为(p

1

,p2,Λ,p k),它构成了一个k维向量,那么目标函数便是各分量的带权和,不妨记为:

F=‖(p1,p2,Λ,p k)‖

现在来说明目标函数计算方法,设群体规模为M,每一个体对应一种排课方式,第i种排课方式对

应的罚值向量为(p

i1

,p i2,Λ,p ik),则它对应的目标函数值记为F i=‖(p i1,p i2,Λ,p ik)‖.

第1步 定所有个体的目标函数的初始值为0,即0→F

i

(i=1,2,Λ,M),k→t;

第2步 取G

t

=1,即优先级最低的罚值权为1;

第3步 分别计算F

i =F i+G t×p it,其中i=1,2,Λ,M;

48中央民族大学学报(自然科学版)第15卷 

第4步 t -1→t ,若t =0,结束;否则,取G t =max (F 1,F 2,Λ,F M ),转第2步;

以上求出(G 1,G 2,Λ,G k )便是各级的罚值权,同时计算出了每一个体的目标函数.

2.2 编码策略与适应度函数

标准的遗传算法采用二进制编码[6~7],但是,排课问题若采用二进制编码则不太直观,且交叉和变异较难操作,因此,就取这n 个自然数的全排列作为染色体编码:l 1l 2Λl n 这样交叉和变异操作就变得容易一些,且解码操作也非常容易.采用上述所述动态目标函数的计算方法,从计算过程可以看出,函数值越小,说明其罚值越小,其排课的质量越高,因此,原问题是求目标函数的最小化问题.

适应度函数应反映目标函数的相对大小,另外,对于较差的个体应减小其选择压力[4].因此适应度函数为:

f i =(1+c )×(max (F 1,F 2,Λ,F M )-min (F 1,F 2,Λ,F M ))-(F i -min (F 1,F 2,Λ,F M ))其中c 为一非负数,它的变化可以引起选择压力的变化.

2.3 交叉算子和变异算子

采用单点、对称、大片断基因保留、小片断基因保序的交叉办法[8],即对于父个体1和父个体2,随机地选择一个交叉点,同时确定该交叉点的对称点,父个体1的基因被交叉点分成了两部分,同时父个体2的基因被对称交叉点分成了两部分,在父个体1中选取较长的一部分基因直接遗传给子个体1,父体1中较短的那一部分基因接在父个体2中的顺序重新排列后组成子个体1的另一部分基因.同理,把父个体2的较长的一部分基因直接遗传给子个体2,把父个体2中较短的那一部分基因接在父个体1中的排列顺序重新排列组成子个体2的另一部分基因.例如,有以下两个父个体:

父个体1:347651289,父个体2:134562987

产生一个[1,8]之间的随机整数作为交叉点位置,比如交叉点位置为6,则对称交叉点的位置为3,那么交叉点和对称交叉点把两个父个体的基因分成了两部分

父个体1:347651|289,父个体2:134|562987

把父个体1中较长的一部分基因(347651)直接遗传给子个体1,父个体1中较短的那一部分基因(289)在父个体2中的顺序为(298),于是得出子个体1,同理可以得到子个体2.

子个体1:347651|298,子个体2:341|562987

从以上可以看出,新的个体保留两个父个体的共同特性,它继承了其中一个父个体中较长的基因片断和另一父个体中较短的基因顺序.尽量保证父个体中的优良模式遗传到下一代.此外,这种交叉方式能保证经交叉后的子个体仍然在所讨论的遗传空间中.

采用随机交换基因变异法,其操作如下,对每一个体,其各位基因变异的顺序是从第一位基因开始,从左至右逐位变异.对每一位基因,在变异概率的作用下,进行操作,产生一个[0,1]之间的随机数r ,若r >p m (其中p m 为变异概率),则该位不发生变异,否则,该位发生变异.当某一位发生变异时,首先,产生一个[1,n ]之间的随机整数p ,然后使该位处与第p 位处的基因进交换.

例如对于个体234578916,假设对第4位(该位的基因为5)进行变异,产生一个1至9之间的随机整数,不妨为7,则对该位的变异就是把该位的基因与第7位的基因进行交换,经变异后的个体为:234978516.显然,经变异后的个体仍然在所讨论的遗传空间中.

此外,根据人类进化的规律,变异应该是往更好的方向发展,子个体虽然继承了父个体的特性,同时应有别于父个体,增加新的、更好的特性,在变异过程中,一方面是随机的,另一方面应有向适应高方向发展的趋势,因此,我们提出了“培养型变异”策略,其基本思想是:当个体被变异后产生了新的个体,比较新个体的适应度与父个体的适应度,若新个体比父个体的适应度高,则把新个体替换原有个体,否则,再进行一次变异,而第二次变异对适应度不作检查,直接替换原有个体.改进后的变异策略,一方面保持了变异的随机性,另一方面含有向适应度高的方向发展的趋势[9]

.58 第1期蒲保兴:基于遗传算法的排课算法

3 分块遗传策略和算例

就实际排课的情况来看,作为指派的对象教室和被指派的对象班级往往存在着分块对应的关系[10~11],即按系或学院分配教室的情况居多,有时甚至所有班级的教室固定.这样,教室被分成了若干块,而班级也分成了相应的若干块,每个班的课程只能安排在相应的教室块内,且可共享该块内的所有教室.各块之间的排课既有一定的独立性,又有一定的联系,因为教师资源是共享的,同一教师可以在两个以上的班级块内任课.针对这种情况,我们提出了“分块遗传策略”.

分块遗传策略的基本思想是:根据教室分块情况和班级分块情况,把教室时间单元分成若干块,同样把课程时间单元也相应地分成与教室单元块数量一致的若干块,调整各块之间的排列顺序,使教室时间单元块与课程时间单元块一一对应.在进行排课指派时,应满足这一基本原则:每一课程时间块中任一单元可以被指派到相应教室时间块中的任一单元,但不能被指派到别的块中.因此,为了满足这一原则,在交叉和变异过程中,只要限制交叉和变异操作在块内进行即可.问题的实质便是“交叉、变异块内进行,适应度计算综合考虑”.具体操作如下:设可以指派的教室时间单元和被指派的课程时间单元分别被分成了相应的p块,同时对每个课程时间单元块添加若干虚拟课程时间单元,凑成单元数目与相应教室块的单元数目一致.教室时间单元和课程时间单元如下:

T11T12ΛT1k

1T21T22ΛT2k

2

ΛT

p1

T p2ΛT pk

p

,C11C12ΛC1k

1

C21C22ΛC2k

2

ΛC

p1

C p2ΛC pk

p

每一块内的排课方式与一个自然数的全排列对应,这样一个自然数的全排列组成了染色体一个基因段,整个染色体编码由若干块基因段连接而成.块内排课的可按上述介绍的方法进行,所有的块并行地进行块内交叉和变异操作,而目标函数的计算则综合考虑,不仅考虑了块内排课的约束和优化,还需考虑块间排课方式由于教师资源的共享而不至于冲突.

适应度的计算与精英保留策略是针对整染色体来考虑的,这便构成了分块遗传策略,它屏蔽了大量的“不可行解”,使得遗传空间缩小,从而提高了算法的运行效率.

根据上述算法原理,我们给出了一个仿真系统,采用该仿真系统对下述数据进行了计算,得到了较为满意的结果.

现有可供排课的教室2间,属于同一块,每一周有5天上课时间,每天3个时间单元,对一个星期的教室时间单元进行展开,得到了30个教室时间单元,设它们的编号分别为1,2,Λ,30,同时记下每个教室时间单元对应的教室编号、所在块号,以及工作日号和节次号.并假设有3个班参与排课,教学计划如表1.

表1 排课计划

T ab.1 Plan of school timetable arrangement

班级编号班级名称课程名称教师编号教师姓名每周次数块号1中文系一班中国革命史1陶老师31

1中文系一班高等数学2王老师21

1中文系一班普通物理3刘老师31

1中文系一班公共外语4孙老师21

2数学系二班中国革命史1陶老师21

2数学系二班高等数学2王老师31

2数学系二班体育5李老师21

2数学系二班哲学6曾老师31

3物理系一班普通物理3刘老师21

3物理系一班公共外语4孙老师21

3物理系一班体育5李老师31

3物理系一班哲学6曾老师21 68中央民族大学学报(自然科学版)第15卷 

以上共有16门课,在一个块内安排,与教室分块对应,每周共有29个课程时间单元,添加1个虚拟的课程时间单元,凑成30个课程时间单元,记它们编号分别为1,2,Λ,30,并记下它们对应的班级编号和任课教师编号,从而染色体的串长为30,群体规模取70,交叉概率为0.04653,变异概率为0.021,采用上述算法进行计算,两分钟后,得到最优个体为:10,5,30,26,4,2,13,9,29,6,11,1,19,14,3,22,8,1,28,24,20,15,7,18,23,21,25,17,12,16.它对应的各级约束罚值分别为:

第一级 可行性约束罚值为0,说明满足可行性约束,课表不会发生冲突;

第二级 同一班同一门课程不能安排在同一天,其罚值为0;

第三级 虚拟时间单元尽量安排在较差的时间段,其罚值为0;

第四级 课程安排在时间上均衡以及同一门课程在节次上错开,其罚值为8.

上述最优个体的意义是第一个课程时间单元被安排在第10个教室时间单元(第一间教室的星期四1-2节课),第二个课程时间单元被安排在第5个教室时间单元(第一间教室的星期二3-4节课),依此类推,便可以得出完整的课表.

从以上分析论证可以看出,该算法是切实可行的,采用该算法完全可以开发出一个较为满意的排课系统,它不仅适用于大专院校教室共享、分块共享的情形,同时也适合中小学教室独占、即每个班的教室独占的情况.该算法在运行时间上可能稍长了一点,但并不妨碍算法的使用,如能采用一些启发式方法改善运行时间,则算法的效果将更加好.

参考文献:

[1] 《运筹学》教材编写组.运筹学[M].北京:清华大学出版社,1999.

[2] 周明,孙树栋.遗传算法原理及应用[M].北京:国防工业出版社,1999.

[3] 陈国良,等.遗传算法及其应用[M].北京:人民邮电出版社,1996.

[4] 李敏强,寇纪淞,等.遗传算法基本理论与应用[M].北京:科学出版社,2002.

[5] 王小平,曹立明.遗传算法[M].西安:西安交大出版社,2002.

[6] 梁吉业.遗传算法应用中的一些共性问题研究[J ].计算机应用研究,1999(7).

[7] 彭伟,等.一种函数优化问题的混合遗传算法[J ].软件学报,1999(8).

[8] 梁艳春,等.遗传算法求解旅行商问题时的基因片断保序[J ].系统工程与实践.2000(7).

[9] 胡欣,等.遗传算法求解投资项目选择问题[J ].计算机应用研究,1999(4).

[10] 刘锋,等.基于改进型遗传算法的门阵列模式布局[J ].小型微型计算机系统,2002(3).

[11] 王斌,等.一种防止遗传算法过早收敛的“两阶段交替法”[J ].小型微型计算机系统,2003(3).

T he A lgorithm o f A rranging School T im etab le B ased on G enetic A lgorithms

PU Bao 2xing

(Department o f Information and Electricity Engineering ,Shaoyang College ,Shaoyang 422001,China )

Abstract :The paper trans forms the problem of the school timetable arrangement to the problem of combinatorial optimization ,upon which ,the mathematical m odel is created by penalty function and the s olution to the problem is given based on genetic alg orithms.Furtherm ore it puts forward “the dynamic scaling approach of penalty weight ”and “the blocked genetic method ”.

K ey w ords :school timetable arrangement alg orithm ;genetic alg orithm ;blocked genetic method ;culture

mutation ;dynamic scaling approach of penalty weight

[责任编辑:杨 玉]78 第1期蒲保兴:基于遗传算法的排课算法

基于遗传算法的排课系统设计 开题报告

基于遗传算法的排课系统设计开题报告 1 课题的意义 每个新学期开始,对于学校教务科来说首要而急需完成的任务是:如何合理而高效的排课。其本质是将课程、教师和学生在合适的时间段内分配到合适的教室中。但由于涉及到的问题较多,同时学校扩招,学生和课程数量比以往大大增加,教室资源明显不足,在这种情况下排课很难在同时兼顾多重条件限制的情况下用人工方式排出令教师和学生都满意的课表。 虽然排课问题很早以前就成为众多科研人员和软件公司的研究课题,但是真正投入使用的排课软件却很少。原因是多方面的,其中算法的选择是最关键的一个问题,S.Even等人在1975年的研究中证明了排课问题是一个NP-Complete问题,即若是用“穷举法”之外的算法找出最佳解是不可能的。然而由于穷举法成本太高,时间太长,根本无法在计算机上实现。如果假设一个星期有n个时段可排课,有m位教师需要参与排课,平均每位教师一个星期上k节课,在不考虑其他限制情况下,能够推出的可能组合就有n m*k种,如此高的复杂度是目前计算机所无法承受的。而遗传算法的出现正好解决了排课在算法上的问题,可以很有效的求出最优解。轻松而快速的解决了困扰教务科的一大难题,能在短时间内排出符合各项条件的课程表。 2 国内外研究现状 计算机排课问题是一个多目标,有限资源,带有模糊约束条件的组合规划问题,是计算机应用领域一个具有代表性的问题。20世纪60年代末,Gotlieb.C.C教授就对课程表问题进行了形式化描述。随后,此类研究发展起来。70年代中期,S.Even等人就论证了课表问题是NP完全类问题,将该问题理论化,同时也说明课表问题有其自身的理论化模型,即课表问题存在解。并且能找到解。但是根据计算和难解性理论,目前还没有解决NP完全类问题的多项式算法。到1979年,Schmit 和Strohein在文献中就列出了300多篇已发表的文献。近年来研究这一问题的人员不断增多,国外的运筹学杂志几乎每年都有相关内容的文章那个发表,此外它还广泛的出现在计算机,应用数学,教育管理等杂志上。80年代初,我国的很多大学也开始研究排课系统软件。大体上说这些排课系统软件可以分为两大类:第一类以所谓班——教员模型为主,它是在Gotlieb.C.C工作的基础上发展起来的。主要讨论此模型的定义扩充,解的特性及分析,不断提出新的猜测和推论。基本模型变化不大,并且这类模型适合课程长度一致,无合班教室的情况,并不适合一般院校的实际情况。第二类事所谓的课程调度问题,多于图的节点的着色问题有关,模型一旦产生,它的变量往往太多,规模太大,此外根据具体的校情对模型提出的各式各样要求对模型影响较大,有的甚至没有具体的模型可寻。通过对资料的查阅发现以往对课程问题的研究多侧重于自动生成,难度较大实现不易,往往是理论研究上的工作多,而实际应用方面的工作很少。有一些实际的例子,也往往是特定条件下对实际情况简化得到的,至今还没有自动生成可课表系统的软件应用于实际。对计算机而言,不像人工编排那样可以对任何情况进行合理的取舍,因此不存在完全冲突的课表很难排出来。 国内高校排课系统中,大连理工大学是从事此类软件开发较早单位。1987年该校开发了《教学组织管理及课程调度系统》1.00版本,之后在此基础上又推出了《教学组织管理及课程调度系统》2.00版本,1902年又推出了《教学组织管理及课程调度系统》2.01版本和

4遗传算法与函数优化

第四章遗传算法与函数优化 4.1 研究函数优化的必要性: 首先,对很多实际问题进行数学建模后,可将其抽象为一个数值函数的优化问题。由于问题种类的繁多,影响因素的复杂,这些数学函数会呈现出不同的数学特征。除了在函数是连续、可求导、低阶的简单情况下可解析地求出其最优解外,大部分情况下需要通过数值计算的方法来进行近似优化计算。 其次,如何评价一个遗传算法的性能优劣程度一直是一个比较难的问题。这主要是因为现实问题种类繁多,影响因素复杂,若对各种情况都加以考虑进行试算,其计算工作量势必太大。由于纯数值函数优化问题不包含有某一具体应用领域中的专门知识,它们便于不同应用领域中的研究人员能够进行相互理解和相互交流,并且能够较好地反映算法本身所具有的本质特征和实际应用能力。所以人们专门设计了一些具有复杂数学特征的纯数学函数,通过遗传算法对这些函数的优化计算情况来测试各种遗传算法的性能。 4.2 评价遗传算法性能的常用测试函数 在设计用于评价遗传算法性能的测试函数时,必须考虑实际应用问题的数学模型中所可能呈现出的各种数学特性,以及可能遇到的各种情况和影响因素。这里所说的数学特性主要包括: ●连续函数或离散函数; ●凹函数或凸函数; ●二次函数或非二次函数; ●低维函数或高维函数; ●确定性函数或随机性函数; ●单峰值函数或多峰值函数,等等。 下面是一些在评价遗传算法性能时经常用到的测试函数: (1)De Jong函数F1: 这是一个简单的平方和函数,只有一个极小点f1(0, 0, 0)=0。

(2)De Jong 函数F2: 这是一个二维函数,它具有一个全局极小点f 2(1,1) = 0。该函数虽然是单峰值的函数,但它却是病态的,难以进行全局极小化。 (3)De Jong 函数F3: 这是一个不连续函数,对于]0.5,12.5[--∈i x 区域内的每一个点,它都取全局极小值 30),,,,(543213-=x x x x x f 。

遗传算法在多目标优化的应用:公式,讨论,概述总括

遗传算法在多目标优化的应用:公式,讨论,概述/总括 概述 本文主要以适合度函数为基础的分配方法来阐述多目标遗传算法。传统的群落形成方法(niche formation method)在此也有适当的延伸,并提供了群落大小界定的理论根据。适合度分配方法可将外部决策者直接纳入问题研究范围,最终通过多目标遗传算法进行进一步总结:遗传算法在多目标优化圈中为是最优的解决方法,而且它还将决策者纳入在问题讨论范围内。适合度分配方法通过遗传算法和外部决策者的相互作用以找到问题最优的解决方案,并且详细解释遗传算法和外部决策者如何通过相互作用以得出最终结果。 1.简介 求非劣解集是多目标决策的基本手段。已有成熟的非劣解生成技术本质上都是以标量优化的手段通过多次计算得到非劣解集。目前遗传算法在多目标问题中的应用方法多数是根据决策偏好信息,先将多目标问题标量化处理为单目标问题后再以遗传算法求解,仍然没有脱离传统的多目标问题分步解决的方式。在没有偏好信息条件下直接使用遗传算法推求多目标非劣解的解集的研究尚不多见。 本文根据遗传算法每代均产生大量可行解和隐含的并行性这一特点,设计了一种基于排序的表现矩阵测度可行解对所有目标总体表现好坏的向量比较方法,并通过在个体适应度定标中引入该方法,控制优解替换和保持种群多样性,采用自适应变化的方式确定交叉和变异概率,设计了多目标遗传算法(Multi Objective Genetic Algorithm, MOGA)。该算法通过一次计算就可以得到问题的非劣解集, 简化了多目标问题的优化求解步骤。 多目标问题中在没有给出决策偏好信息的前提下,难以直接衡量解的优劣,这是遗传算法应用到多目标问题中的最大困难。根据遗传算法中每一代都有大量的可行解产生这一特点,我们考虑通过可行解之间相互比较淘汰劣解的办法来达到最 后对非劣解集的逼近。 考虑一个n维的多目标规划问题,且均为目标函数最大化, 其劣解可以定义为: f i (x * )≤f i (x t ) i=1,2,??,n (1) 且式(1)至少对一个i取“<”。即至少劣于一个可行解的x必为劣解。 对于遗传算法中产生大量的可行解,我们考虑对同一代中的个体基于目标函数相互比较,淘汰掉确定的劣解,并以生成的新解予以替换。经过数量足够大的种群一定次数的进化计算,可以得到一个接近非劣解集前沿面的解集,在一定精度要求下,可以近似的将其作为非劣解集。 个体的适应度计算方法确定后,为保证能得到非劣解集,算法设计中必须处理好以下问题:(1)保持种群的多样性及进化方向的控制。算法需要求出的是一组不同的非劣解,所以计算中要防止种群收敛到某一个解。与一般遗传算法进化到

生产自动排程系统如何实现优化排产教学内容

生产自动排程系统如何实现优化排产

生产自动排程系统如何实现优化排产 关键字:生产排程APS生产调度高级计划排程永凯软件永凯APS生产计划生产管理生产计划管理生产计划软件生产管理软件生产管理系统优化排程优化管理生产计划排程高级计划和生产排程PMC软件 全面解决生产计划与物料控制APS精益生产敏捷制造高级智能快速自动柔性社会功能层排程计划生产订单意向销售订单制令制单工单派工单委外外协工令工序工艺BOM机台生产线车间班次作业计划任务工作排程生产指示甘特图流程图表进度MRPMPS物料替代模拟排产资源调度滚动一键式网络手动优化结果精益生产敏捷制造即时响应快速排程 APS为何成为制造企业困境中的“救命稻草” 一、为什么多品种、小批量、短生命周期及短交货期是制造业面临的困境? 如果单单只是短交货期,企业可以通过大量库存就可以解决。然而当企业采用多品种、小批量的生产模式时,库存将涉及许多方面,特别是小批量时,产品需要的时间比较分散。为了防止因库存量不足而产生的机会损失,产品的安全库存量往往比较高,因此企业总体的库存水平也非常高。另一方面,由于产品短的生命周期,这些大量的库存可能一瞬间就会成为不良库存。 由于物流商和销售商都不想尽量持有库存,从而要求工厂交货时间要短。但“多品种、小批量”的产品在短时间交货是很不容易。

多品种、小批量生产时,会增加生产上的(切换)时间,同时还增加了物料管理的难度。由于产品不同,工序不同,交货期短,当工序为最后一道工序时,为了满足交货期可以很容易判断从哪个产品开始生产,但是对于中间工序而言就不容易判断从哪里开始生产。 很多企业期望通过增加库存来解决所面临的困境。如果仅增加库存就可以解决吗?殊不知增加库存会造成库存积压,恶化资金流通,并发生不良库存,陷入“减少库存量将迟延交货期,增加库存则产生不良库存”尴尬困境。 那要如何面对这种困境呢?增加产能?义务加班?也许可以临时解决,但是长期这么做会使企业增加经营成本,员工感到疲惫不堪。 二、到底怎样才能解决“制造业所面临的困境”? 对于多品种、小批量、短生命周期、短交货期的生产模式,缩短制造提前期是一个有效的方法,这是因为: 1、可应对短交货期要求; 2、减少生产过程中的中间品的库存浪费; 3、减少生产结束后的中间品的安全库存量; 4、改善资金流通,消减不良库存。 三、那怎样缩短制造提前期呢?

基于遗传算法的排课算法

基于遗传算法的排课算法 蒲保兴 (邵阳学院信息与电气工程系,湖南 邵阳 422001) 摘 要: 本文把排课问题转化为一个组合优化问题,在此基础上以罚函数的方法建立数学模型,并给出了基 于遗传算法的解法,提出“动态罚值权定标方法”和“分块遗传策略”. 关键词: 排课算法;遗传算法;分块遗传策略;培养型变异;动态罚值权定标 中图分类号:G 642 文献标识码:A 文章编号:100528036(2006)0120083205 收稿日期:2005206201 作者简介:蒲保兴(1965-),男(瑶族),邵阳学院信息与电气工程系,副教授、硕士,主要从事人工智能研究. 优化排课问题就是在给定教师资源、教室资源和开课计划的前提下,如何合理地安排课表问题.其实质是含约束条件的目标函数优化问题,运筹学中论及了一些特殊的优化问题求解方法,如线性规划的单纯形法等[1]. 在对排课问题建立数学模型后,发现它难以用传统的启发式算法求解,而且其约束条件和目标函数难以用解析式表示出来,因此,必须寻求其他的算法.遗传算法[2~5]作为一种有效的全局搜索方法,从产生至今不断扩展了其应用领域,由于它的鲁棒性,适用范围广,有组织性、自适应和学习性、并行性、不需要求导和其他辅助知识等特点,在求最优化问题时,甚至只需给出目标函数的计算规则而不必给出目标函数的解析式等优点,备受人们喜爱,遗传算法为排课问题的求解提供了有效的途径. 1 数学模型的建立 在实际排课过程中,以某一等长的时间段为课表的时间安排单位,称之为时间单元.一个可行的课表安排应满足以下约束条件:课表以一个星期为一周期,一个星期的课表就是一个学期的课表;课表应满足班级、教师、教室上课不冲突;教室的座位应该满足上课班级学生的需要;其他一些特殊要求. 在满足以上约束的前提下,应尽量使课程安排合理,符合教学规律,这叫做优化目标.优化目标包括以下几个方面:同一班级的同一门课程在时间安排上应尽量均衡;同一教师担任的所有的课程在时间上应安排均衡;同一班的同一门课程或同一教师担任的所有课程在节次上应错开,即不能均是相同的节次,例如,某一门课程每周开3次,这三次中最好有1—2节、3—4节、5—6节,不能都是1—2节或3—4节;若教室有空余的时间单元可以不排课,则这些空余时间单元应放在较差的时间段内,比如说下午. 以上的约束条件和优化目标可能会互相矛盾,在教师、教室资源比较紧张的情况下,有可能会发生顾此失彼的现象,这里应当说明的是,对于约束条件和优化目标是难以用解析式描述的. 设教室有n 1间,一个星期内有n 2天为上课时间,每间教室在每一天能排课的时间单元数为n 3,则一周内所有的教室可以排课的时间单元数为n 1×n 2×n 3,不妨把这些可供安排的时间单元记为T 1,T 2,Λ,T n ,我们把它称之为教室时间单元,其中n =n 1×n 2×n 3.为了方便操作,可以把属于同一间教室的时间单元放在一起,同时记下每一间教室在每一天的时间单元所对应的序号. 2006年2月 第15卷 第1期中央民族大学学报(自然科学版)Journal of the CUN (Natural Sciences Edition )Feb.2006V ol.15 N o.1

基于遗传算法的自动排课系统毕业设计

摘要 随着科学技术和社会信息技术的不断提高,计算机科学的日渐成熟,其强大的功能已为人们深刻认识,它在人类社会的各个领域发挥着越来越重要的作用,给人们的生活带来了极大的便利,成为推动社会发展的首要技术动力。排课是学校教学管理中十分重要、又相当复杂的工作之一。解决好教学工作中的排课问题对整个教学计划的进行,有着十分重要的意义。首先对排课的已有算法作了相关的调查研究,决定采用遗传算法。通过设计实现基于遗传算法的自动排课系统,研究了遗传算法在排课系统中的应用。 关键词:遗传算法、自动排课、Java。

Abstract Along with science technical and community information technical increases continuously, calculator science is gradually mature, its mighty function has behaved deep cognition, and it has entered the human social each realm erupts to flick the more and more important function, bringing our life biggest of convenience. Curriculum arrangement is an important and complicated working in school,so solving the problem is of great importance for teaching programming.Investigated and studied the algorithm existed, determine that adoptgenetic algorithm. ThroughDesign Implementation theAuto CourseArrangementManagement System Base onGenetic Algorithm, researched the application of genetic algorithmin theCourseArrangementManagement System. Keywords: Genetic Algorithm Auto Course Arrangement ManagementJava.

生产计划排程软件

百乔罗经典课程 2010年9月16-17日北京 2010年9月18-19日广州 2010年10月21-22日上海 2010年10月30-31日深圳 【主办单位】:BCG-百乔罗管理咨询有限公司 【参加对象】:生产总监、生产经理、生产计划相关人员、车间主任、物料主管,采购主管及相关人员 【收费标准】:¥2600元/人(含培训费、教材费、午餐费、茶点费等) 【报名时间】:即日起接受报名 【报名电话】: 【温馨提示】本课程可为企业提供上门内训服务,欢迎来电咨询! 课程风格 “60/40”时间原则(讲师40%,学员60%)、小组讨论/发表、管理电影分享/研讨、案例分析、情景仿真、自带企业资料现场诊断和实作对策、游戏分享、学员与学员、讲师互动相辅而成、少讲理论多讲实践经验,要求学员课堂结合本公司实际情况量身订做提出问题(可在课堂打断讲师思路),不是纯粹填鸭灌输,也不是研究客观案例.而是让学员体验执行过程,关注现实事例. 面对面向老师提出问题,老师需要提出解决问题措施/方案。 请同 学先在公司开会收集问题。带问题来,带方案走 授课师资 不是职业培训师,而是在职执行管理者+富有实践经验培训师+公司负责人 课程收益curriculum earnings 认证费用:中级600元/人;高级800元/人(不参加认证考试的学员无须交纳)

1.凡参加认证的学员,在培训结束参加考试合格者由<<国际职业认证标准联合会>> 颁发<<生 产管理师>>国际国内中英文版双职业资格证书,国际国内认证/全球通行/雇主认 可/官方网上查询; 2.凡参加认证的学员须提交本人身份证号码及大一寸数码照片; 3.课程结束后15个工作日内将证书快递寄给学员; 4.此证可申请中国国家人才网入库备案。 课程大纲curriculum introduction 生产计划/物料控制实操技法班 第一室:銷售計划/生産計划/物料計划协调接口管理 1.銷售計划/生産計划角色和定位---订单总导演/总指挥 2.銷售計划/生産計划/物料計划先进组织架构 ?东莞诺基亚公司銷售計划/生産計划/物料計划组织架构 3.生産計划/物料控制五大职能----欠料分析跟进/备料功能/呆料预防--处理--------- 4.生产计划与销售业务链接流程- ?准时生产计划VS市场业务部VS客户“三赢”规则 ?中兴通讯销售计划/生产计划/物料计划接口职能图/资源图实例分析 ?美的集团连续滚动周计划负荷分析和三天生产计划不能变职能图 ?一汽大众锁定一周生产计划不能变控制流程實例分析 ?有效控制扦单、急单、补单/加单五种措施(范例)-----中山某有限公司 ?通过市场调查/信息反馈提高订单预测准确率三大做法 5.销售预测与长、中、短期生产计划管理模式解析 ?銷售预测計划/生产计划变化反馈和预测库存控制协调管理 ?滚动銷售预测計划微调制度化降低预测库存成本原理分析 ?銷售計划流程――销售预测流程/销售计划流程/备货计划流程/生产计划 流程 ?华强三洋销售预测流程/销售计划流程/备货计划流程/生产计划流程案例 分析 6.制造业生产计划控制三种模式――预期滚动计划系统/推进式(push)生产控制系 统/拉动式(pull)生产控制系统 ?世界五百強企業.施耐德電氣Schneider推进式生产控制系统 ?预期滚动计划编制程序/特点/运作-----有效控制急单/插单/多单模式 ?传统推进式与准时化生产拉动式流程图范例解析

多目标遗传算法代码

. % function nsga_2(pro) %% Main Function % Main program to run the NSGA-II MOEA. % Read the corresponding documentation to learn more about multiobjective % optimization using evolutionary algorithms. % initialize_variables has two arguments; First being the population size % and the second the problem number. '1' corresponds to MOP1 and '2' % corresponds to MOP2. %inp_para_definition=input_parameters_definition; %% Initialize the variables % Declare the variables and initialize their values % pop - population % gen - generations % pro - problem number %clear;clc;tic; pop = 100; % 每一代的种群数 gen = 100; % 总共的代数 pro = 2; % 问题选择1或者2,见switch switch pro case 1 % M is the number of objectives. M = 2; % V is the number of decision variables. In this case it is % difficult to visualize the decision variables space while the % objective space is just two dimensional. V = 6; case 2 M = 3; V = 12; case 3 % case 1和case 2 用来对整个算法进行常规验证,作为调试之用;case 3 为本工程所需; M = 2; %(output parameters 个数) V = 8; %(input parameters 个数) K = 10; end % Initialize the population chromosome = initialize_variables(pop,pro); %% Sort the initialized population % Sort the population using non-domination-sort. This returns two columns % for each individual which are the rank and the crowding distance

生产排程

Chapter 8. 生产排程 Operations Scheduling 生产排程的架构 定义:将各个生产作业,根据其顺序限制,作业时间以及所需的设备资源,完成一系列的排序步骤或路径. 目标: 安排作业进度 确保准时交货 确保生产时能获得必要的材料,零件和设备 预知瓶颈,及早解决 使作业负荷平衡,生产线平衡 排程需考虑的要点 评估标准:对於排程问题管理人员主要关心的目标为交期,流程时间与工作中心产能的利用,但这三个目标通常都是相互冲突的. 工厂结构:流程型工厂之排程的复杂度和限制与零工工厂是不同的. 产品结构:单一工件或组装型工件,作业是否可重叠与批量是固定还是变动,都是排程时需考虑的重点. 工作中心产能:生产设备,员工以及瓶颈工作中心的产能是固定还是可变动的. 排程问题的种类 根据作业时间的特性,可排程问题分为以下两类: 静态(Static)排程问题:所有工件同时到达生产系统,并且所有的机器在工件到达时都是可以加工处理的. 动态(Dynamic)排程问题:所有工件并非一次全部同时到达,而是陆续的到达生产系统. 根据工件抵达生产系统的特性,可排程问题分为以下两类: 确定性(Deterministic)排程问题:所有的作业加工时间皆已知且固定. 随机性(Stochastic)排程问题:所有的作业加工时间呈现某一机率分配. 根据工厂现场可用的机器数目来分类,分类如下: 单机(Single Machine)排程问题:只有一台机器,且所有工件皆必须在此机器上加工. 多机(Multiple Machines)排程问题:多机排程问题又可根据工件在机台的加工作业流程分为平行机台(Parallel Machines)排程问题,流程型工厂(Flow Shop)排程问题以及零工型工厂(Job Shop)排程问题. 平行机台 生产环境中平行机台依照机器的性质可分成三类: 完全相同的机台(Identical Machine):每一部机器的功能或速度都完全相同,即相同的订单在任一机台上所需的加工时间皆相等. 等效机台(Uniform Machine):相同的订单在平行机台上的加工时间,会随著每一机台的速率参数不同而有变化. 非等效平行机台(Unrelated Parallel Machine):即相同的订单在任一机台上加工的时间均不相关且成不均匀的比例. 平行机台 流程型工厂 每一工件均必须以相同的作业顺序经过M部机器加工,而根据加工时间是否可以为零可以将流程型工厂区分为纯流程型工厂(Pure Flow-Shop)和一般流程型工厂(General Flow-Shop)两

基于遗传算法的高校排课系统研究

基于遗传算法的高校排课系统研究 [摘要]随着我国教育体制改革的不断深入,高校办学规模的扩大,在校学生人数、教师人数、课程门类的显著增加,这对高校教务排课工作提出了更高的要求。研究开发一个实用的排课系统具有十分重要的现实意义。 [关键词]排课遗传算法课程 排课是各高校教务管理部门的一项非常繁杂的工作,其基本目的是根据教学计划把各授课部门的教学任务进行汇总,为学校各教学部门开设的课程安排授课教师、上课时间和教室,从而使全校的教学工作能够有秩序、按计划进行,解决好排课问题对于整个教学工作的有序开展有着十分重要的意义。 一、排课的约束条件 排课基本问题是将班级、教师、课程、教室安排在一周内某一不发生冲突的时间,保证课表在时间的分配上符合一切共性和个性的要求,在此基础上,使其安排在各个目标上并尽量达到全局最优。因此,排课问题主要是处理好教师、教室和班级三者之间的冲突问题。排课问题要求保证班级、教师、教室不产生矛盾,并且要满足教室、教师资源的实际约束条件,即:在同一时间内,同一个班级,仅能由某一位教师上一门课;同一时间内,同一个教室,仅能有一个班级占用;一位教师只能在某一时间内某一个教室给某一个班级讲一门课。班级课表在星期上分布尽量均匀;同一课程的多个课时段要保持一定的时间间隔;充分利用教室资源,上课学生数和教室容量相匹配。 二、排课系统国内外研究现状及发展 排课问题是一个有约束的、非线性的、模糊多元目标化的、难解的、时空组合的数学问题。 早在20世纪50年代末,国外就有人开始研究课表编排问题。1963年,Gotlieb 曾提出一个课表问题的数学模型,但由于排课问题易受实际问题的影响,求解结果也不理想。

遗传算法的计算性能的统计分析

第32卷 第12期2009年12月 计 算 机 学 报 CH INESE JOURNA L OF COMPU TERS Vol.32No.12 Dec.2009 收稿日期:2008210219;最终修改稿收到日期:2009209227.本课题得到国家自然科学基金(60774084)资助.岳 嵚,男,1977年生,博士研究生,主要研究方向为进化算法.E 2mail:yueqqin@si https://www.360docs.net/doc/12283469.html,.冯 珊,女,1933年生,教授,博士生导师,主要研究领域为智能决策支持系统. 遗传算法的计算性能的统计分析 岳 嵚 冯 珊 (华中科技大学控制科学与工程系 武汉 430074) 摘 要 通过对多维解析函数的多次重复计算并对计算结果进行统计分析来讨论遗传算法的可靠性和可信度,结果表明:遗传算法的计算结果具有一定的稳定性,可以通过采用多次重复计算的方法提高计算结果的可信度,并用以评价算法及其改进的实际效果.关键词 遗传算法;计算可靠性;置信区间 中图法分类号TP 18 DOI 号:10.3724/SP.J.1016.2009.02389 The Statistical Analyses for Computational Performance of the Genetic Algorithms YU E Qin FENG Shan (Dep artment of Contr ol Science and Eng ineering ,H uazhong University of Science and T ech nology ,W u han 430074) Abstr act In this paper,the author s discuss the reliability of the GAs by reiteratively computing the multi 2dimensional analytic functions and statistical analysis of the results.The analysis re 2sults show that the GAs have certain stability;it could improve the reliability by reiteratively computation and estimates the effects of improvements. Keywor ds genetic algorithms;computational stability;confidence interval 1 遗传算法的随机性 遗传算法是将生物学中的遗传进化原理和随机优化理论相结合的产物,是一种随机性的全局优化算法[1].遗传算法作为一种启发式搜索算法,其计算结果具有不稳定性和不可重现性;遗传算法的进化过程具有有向随机性,整体上使种群的平均适应度不断提高.现在学术界对遗传算法中的某些遗传操作的作用机制还不十分清楚,遗传算法的许多性能特点无法在数学上严格证明.遗传算法的计算过程会受到各种随机因素的影响,如随机产生的初始种群和随机进行的变异操作等,尤其初始种群对计算结果影响较大.但另一方面,大量的实算结果表明,遗传算法的计算结果具有一定的规律性,在统计意义上具有一定的可靠性,这样就可以对待求解问题 进行多次重复计算后取平均值的方法,提高遗传算 法在实际计算中的准确性和可信度. 包括遗传算法在内的启发式搜索算法主要用于解决大型的复杂优化问题,这些问题一般难以使用传统的优化算法解决.遗传算法对这类问题的计算结果也难达到精确的最优解.这给对用遗传算法解决实际工程优化问题的计算结果的评价带来了困难,在实际工程计算中也难以评价遗传算法及其改进型的计算效果的优劣. 为了分析遗传算法的计算性能,本文采用的计算对象是一个复杂的多维解析函数.使用这类函数评价遗传算法计算性能的好处是可以事先通过其他方法求得最优解,这样便于评价遗传算法及其改进型的计算效果.本文从统计学角度对多次重复计算的结果进行分析,试图得到遗传算法的稳定性和可信度方面的相关结论,通过分析遗传算法及其改进

遗传算法的计算性能的统计分析

遗传算法遗传算法的计算性能的统计分析 岳嵚冯珊 (华中科技大学控制科学与工程系) 摘要:本文通过对多维解析函数的多次重复计算并对计算结果的进行统计分析来讨论遗传算法的可靠性和可信度,结果表明:遗传算法的计算结果具有一定的稳定性,可以通过采用多次重复计算的方法提高计算结果的可信度,并用以评价算法及其改进的实际效果。 关键词:遗传算法;计算可靠性;置信区间 分类号:TP18 1遗传算法的随机性 遗传算法是将生物学中的遗传进化原理和随机优化理论相结合的产物,是一种随机性的全局优化算法[1]。遗传算法作为一种启发式搜索算法,其计算结果具有不稳定性和不可重现性;遗传算法的进化过程具有有向随机性,整体上使种群的平均适应度不断提高。现在学术界对遗传算法中的某些遗传操作的作用机制还不十分清楚,遗传算法的许多性能特点无法在数学上严格证明。遗传算法的计算过程会受到各种随机因素的影响,如随机产生的初始种群和随机进行的变异操作等,尤其初是始种群对计算结果影响较大。但另一方面,大量的实算结果表明,遗传算法的计算结果具有一定的规律性,在统计意义上具有一定的可靠性,这样就可以对待求解问题进行多次重复计算后取平均值的方法,提高遗传算法在实际计算中的准确性和可信度。 包括遗传算法在内的启发式搜索算法主要用于解决大型的复杂优化问题,这些问题一般难以使用传统的优化算法解决。遗传算法对这类问题的计算结果也难达到精确的最优解。这给对用遗传算法解决实际工程优化问题的计算结果的评价带来了困难,在实际工程计算中也难以评价遗传算法及其改进型的计算效果的优劣。 为了分析遗传算法的计算性能,本文采用的计算对象是一个复杂的多维解析函数。使用这类函数评价遗传算法计算性能的好处是可以事先通过其他方法求得最优解,这样便于评价遗传算法及其改进型的计算效果。本文从统计学角度对多次重复计算的结果进行分析,试图得到遗传算法的稳定性和可信度方面的相关结论,通过分析遗传算法及其改进型求解解析问题的计算效果,再把所得到的相关结论推广应用到复杂的工程实际问题中去。 遗传算法在实际使用中有多种形式的变型,经典遗传算法是遗传算法的最简单的形式,但是经典遗传算法并不理想。本文使用的是粗粒度并行遗传算法。粗粒度并行遗传算法是遗传算法的一个重要改进型。它具有比经典遗传算法更好的计算性能。 2算例、实验方法和实验结果 2.1算例 本文所使用的算例是Deb 函数: ]10,10[,)]4cos(10[10)(12?∈??+=∑=i n i i i Deb x n x x x f i π(1) Deb 函数是一个高维的非凸函数,该函数在点(9.7624,9.7624,…,9.7624)上取得最大

人工智能之遗传算法论文含源代码

30维线性方程求解 摘要:非线性方程组的求解是数值计算领域中最困难的问题,大多数的数值求解算法例如牛顿法的收敛性和性能特征在很大程度上依赖于初始点。但是对于很多高维的非线性方程组,选择好的初始点是一件非常困难的事情。本文采用了遗传算法的思想,提出了一种用于求解非线性方程组的混合遗传算法。该混合算法充分发挥了遗传算法的群体搜索和全局收敛性。选择了几个典型非线性方程组,考察它们的最适宜解。 关键词:非线性方程组;混合遗传算法;优化 1. 引言遗传算法是一种通用搜索算法,它基于自然选择机制和自然遗传规律来模拟自然界的进化过程,从而演化出解决问题的最优方法。它将适者生存、结构化但同时又是 随机的信息交换以及算法设计人的创造才能结合起来,形成一种独特的搜索算法,把一些解决方案用一定的方式来表示,放在一起成为群体。每一个方案的优劣程度即为适应性,根据自然界进化“优胜劣汰”的原则,逐步产生它们的后代,使后代具有更强的适应性,这样不断演化下去,就能得到更优解决方案。 随着现代自然科学和技术的发展,以及新学科、新领域的出现,非线性科学在工农业、经济政治、科学研究方面逐渐占有极其重要的位置。在理论研究和应用实践中,几乎绝大多数的问题都最终能化为方程或方程组,或者说,都离不开方程和方程组的求解。因此,在非线性问题中尤以非线性方程和非线性方程组的求解最为基本和重要。传统的解决方法,如简单迭代法、牛顿法、割线法、延拓法、搜索法、梯度法、共轭方向法、变尺度法,无论从算法的选择还是算法本身的构造都与所要解决的问题的特性有很大的关系。很多情况下,算法中算子的构造及其有效性成为我们解决问题的巨大障碍。而遗传算法无需过多地考虑问题的具体形式,因为它是一种灵活的自适应算法,尤其在一些非线性方程组没有精确解的时候,遗传算法显得更为有效。而且,遗传算法是一种高度并行的算法,且算法结构简单,非常便于在计算机上实现。本文所研究的正是将遗传算法应用于求解非线性方程组的问题。 2. 遗传算法解非线性方程组为了直观地观察用遗传算法求解非线性方程组的效果,我们这里用代数非线性方程组作为求解的对象问题描述:非线性方程组指的是有n 个变量(为了简化讨论,这里只讨论实变量方程组)的方程组 中含有非线性方程。其求解是指在其定义域内找出一组数能满足方程组中的每 个方程。这里,我们将方程组转化为一个函数则求解方程组就转化为求一组值使得成立。即求使函数取得最小值0 的一组数,于是方程组求解问题就转变为函数优化问题 3. 遗传算子 遗传算子设计包括交叉算子、变异算子和选择算子的设计。

遗传算法多目标函数优化

多目标遗传算法优化 铣削正交试验结果 说明: 1.建立切削力和表面粗糙度模型 如: 3.190.08360.8250.5640.45410c e p z F v f a a -=(1) a R =此模型你们来拟合(上面有实验数据,剩下的两个方程已经是我帮你们拟合好的了)(2) R a =10?0.92146v c 0.14365f z 0.16065a e 0.047691a p 0.38457 10002/c z p e Q v f a a D π=-????(3) 变量约束范围:401000.020.080.25 1.0210c z e p v f a a ≤≤??≤≤??≤≤? ?≤≤? 公式(1)和(2)值越小越好,公式(3)值越大越好。π=3.14 D=8 2.请将多目标优化操作过程录像(同时考虑三个方程,优化出最优的自变量数值),方便我后续进行修改;将能保存的所有图片及源文件发给我;将最优解多组发给我,类似于下图(黄色部分为达到的要求)

遗传算法的结果:

程序如下: clear; clc; % 遗传算法直接求解多目标优化 D=8; % Function handle to the fitness function F=@(X)[10^(3.19)*(X(1).^(-0.0836)).*(X(2).^0.825).*(X(3).^0.564).*(X(4).^0. 454)]; Ra=@(X)[10^(-0.92146)*(X(1).^0.14365).*(X(2).^0.16065).*(X(3).^0.047691).*( X(4).^0.38457)]; Q=@(X)[-1000*2*X(1).*X(2).*X(3).*X(4)/(pi*D)];

第七章遗传算法应用举例

第七章 遗传算法应用举例 遗传算法提供了一种求解非线性、多模型、多目标等复杂系统优化问题的通用框架,它不依赖于问题具体的领域。随着对遗传算法技术的不断研究,人们对遗传算法的实际应用越来越重视,它已经广泛地应用于函数优化、组合优化、自动控制、机器人学、图象处理、人工生命、遗传编码、机器学习等科技领域。遗传算法已经在求解旅行商问题、背包问题、装箱问题、图形划分问题等多方面的应用取得了成功。本章通过一些例子,介绍如何利用第五章提供的遗传算法通用函数,编写MATLAB 程序,解决实际问题。 7.1 简单一元函数优化实例 利用遗传算法计算下面函数的最大值: ()sin(10) 2.0[1,2]f x x x x π=?+∈-, 选择二进制编码,种群中个体数目为40,每个种群的长度为20,使用代沟为0.9,最大遗传代数为25。 下面为一元函数优化问题的MA TLAB 代码。 figure(1); fplot ('variable.*sin(10*pi*variable)+2.0',[-1,2]); %画出函数曲线 % 定义遗传算法参数 NIND= 40; % 个体数目(Number of individuals) MAXGEN = 25; % 最大遗传代数(Maximum number of generations) PRECI = 20; % 变量的二进制位数(Precision of variables) GGAP = 0.9; % 代沟(Generation gap) trace=zeros (2, MAXGEN); % 寻优结果的初始值 FieldD = [20;-1;2;1;0;1;1]; % 区域描述器(Build field descriptor) Chrom = crtbp(NIND, PRECI); % 初始种群 gen = 0; % 代计数器 variable=bs2rv(Chrom,FieldD); % 计算初始种群的十进制转换 ObjV = variable.*sin (10*pi*variable)+2.0; % 计算目标函数值 while gen < MAXGEN, FitnV = ranking (-ObjV); % 分配适应度值(Assign fitness values) SelCh = select ('sus', Chrom, FitnV , GGAP); % 选择 SelCh = recombin ('xovsp',SelCh,0.7); % 重组 SelCh = mut(SelCh); % 变异 variable=bs2rv(SelCh,FieldD); % 子代个体的十进制转换 ObjVSel =variable.*sin(10*pi*variable)+2.0; % 计算子代的目标函数值 [Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV ,ObjVSel); % 重插入子代的新种群 gen = gen+1; % 代计数器增加 % 输出最优解及其序号,并在目标函数图象中标出,Y 为最优解,I 为种群的序号 [Y,I]=max(ObjV),hold on; plot (variable (I),Y , 'bo'); trace (1,gen)=max (ObjV); %遗传算法性能跟踪

排课系统

基于遗传算法排课系统的设计与实现 黄海 (东南大学计算机科学与工程系,江苏南京210096) 【摘要】排课任务是教务管理中是比较烦琐的一项,该系统可以通过使用遗传算法,对课表进行优化。文章就遗传算法排课系统的设计与实现进行了阐述。 【关键词】时间表;排课;遗传算法;适应度函数 【作者简介】黄海(1971- ),男,江苏盐城人,东南大学计算机科学与工程系讲师,研究方向:数据库应用。 课程表问题又称时间表问题,是一个多因素的整体优化问题。1975年,S.Even等人论证了课表问题是NP完全类问题。由于课程表问题所涉及的信息较多,并且求解课程表问题最优解的时间复杂性是课程表规模的指数级,所以一般采用求近似最优解的算法。在现实生活中,人们一般也只是要一个满足各种条件的近似最优解,或者说“满意解”,而不一定非要最优解不可。因此,对于课程表问题,关键不是如何找到最优解,而是如何提高解的满意度。 遗传算法是John.H.Holland根据生物进化的模型提出的一种优化算法,它是基于进化过程中的信息遗传机制和优胜劣汰的自然选择原则和搜索算法。它从一个种群开始,利用选择、交叉、变异等遗传算子对种群进行不断进化,最后得到全局最优解或近似最优解。根据其算法特点,遗传算法非常适合于排课表问题。 一、问题描述 考查课表的约束条件,最基本的要求无外乎这样几个: (一)每个班级在同一时间只能上一门课; (二)每个普通教室和实验室在同一时间只能容纳一个班上课,大教室和操场可以容纳其容量允许的班级数上课; (三)每个教师在同一时间只能在一个地点上课。 以上约束,称为硬约束,因为不如此,课表是不可行的。还有一些约束如:某个教师希望或不希望在某个时段上课;自习课和体育课最好不排每天的一二节课;同一门课在一周内的分布尽可能均匀等,这些要求称为软约束,因为它们或者可以通过排课以外的方法,如变更其他事务的日程安排等加以解决;或者只能尽可能满足,而不可能全部满足。 满足硬约束的课表是合法的,但却不一定是令人满意的。那么如何提高一个课表的满意度呢?可以请各个教师填一张“时段偏好”表,在每个上课时段上标上相应的数值,以确定他希望或不希望在某个时段上课――0表示不希望,1表示无所谓,2表示希望,3表示强烈希望。并且每个教师根据职称,或职务,或所上课程重要性的不同确定优先级:1,2,3级逐级递增,这样一张课表的满意度就很好计算了:每个上课时段所对应的上课老师的“时段偏好”值乘以这个老师的优先级的积的总和。 另一个决定课表好坏的度量就是同一门课在一周内的分布尽可能均匀,即课程的分散度。如果该课程一周只上一次,分散度设为1,如果一次以上,则可以将每次间隔的时段数相乘,因为分布越平均,其乘积就越大。将所有课程的分散度相加即总的课表的分散度。 定义适应度函数:适应度=满意度+分散度。

相关文档
最新文档