遗传算法解释及代码(一看就懂)【精品毕业设计】(完整版)

遗传算法解释及代码(一看就懂)【精品毕业设计】(完整版)
遗传算法解释及代码(一看就懂)【精品毕业设计】(完整版)

遗传算法( GA , Genetic Algorithm ) ,也称进化算法。遗传算法是受达尔文的进化论的启发,借鉴生物进化过程而提出的一种启发式搜索算法。因此在介绍遗传算法前有必要简单的介绍生物进化知识。

一.进化论知识

作为遗传算法生物背景的介绍,下面内容了解即可:

种群(Population):生物的进化以群体的形式进行,这样的一个群体称为种群。

个体:组成种群的单个生物。

基因 ( Gene ) :一个遗传因子。

染色体 ( Chromosome ):包含一组的基因。

生存竞争,适者生存:对环境适应度高的、牛B的个体参与繁殖的机会比较多,后代就会越来越多。适应度低的个体参与繁殖的机会比较少,后代就会越来越少。

遗传与变异:新个体会遗传父母双方各一部分的基因,同时有一定的概率发生基因变异。

简单说来就是:繁殖过程,会发生基因交叉( Crossover ) ,基因突变( Mutation ) ,适应度( Fitness )低的个体会被逐步淘汰,而适应度高的个体会越来越多。那么经过N代的自然选择后,保存下来的个体都是适应度很高的,其中很可能包含史上产生的适应度最高的那个个体。

二.遗传算法思想

借鉴生物进化论,遗传算法将要解决的问题模拟成一个生物进化的过程,通过复制、交叉、突变等操作产生下一代的解,并逐步淘汰掉适应度函数值低的解,增加适应度函数值高的解。这样进化N代后就很有可能会进化出适应度函数值很高的个体。

举个例子,使用遗传算法解决“0-1背包问题”的思路:0-1背包的解可以编码为一串0-1字符串(0:不取,1:取);首先,随机产生M个0-1字符串,然后评价这些0-1字符串作为0-1背包问题的解的优劣;然后,随机选择一些字符串通过交叉、突变等操作产生下一代的M个字符串,而且较优的解被选中

的概率要比较高。这样经过G代的进化后就可能会产生出0-1背包问题的一个“近似最优解”。

编码:需要将问题的解编码成字符串的形式才能使用遗传算法。最简单的一种编码方式是二进制编码,即将问题的解编码成二进制位数组的形式。例如,问题的解是整数,那么可以将其编码成二进制位数组的形式。将0-1字符串作为0-1背包问题的解就属于二进制编码。

遗传算法有3个最基本的操作:选择,交叉,变异。

选择:选择一些染色体来产生下一代。一种常用的选择策略是“比例选择”,也就是个体被选中的概率与其适应度函数值成正比。假设群体的个体总数是M,那么那么一个体Xi被选中的概率为f(Xi)/( f(X1) + f(X2) + …….. + f(Xn) ) 。比例选择实现算法就是所谓的“轮盘赌算法”( Roulette Wheel Selection ) ,轮盘赌算法的一个简单的实现如下:

轮盘赌算法

/*

* 按设定的概率,随机选中一个个体

* P[i]表示第i个个体被选中的概率

*/

int RWS()

{

m =0;

r =Random(0,1); //r为0至1的随机数

for(i=1;i<=N; i++)

{

/* 产生的随机数在m~m+P[i]间则认为选中了i

* 因此i被选中的概率是P[i]

*/

m = m + P[i];

if(r<=m) return i;

}

}

交叉(Crossover):2条染色体交换部分基因,来构造下一代的2条新的染色体。例如:

交叉前:

00000|011100000000|10000

11100|000001111110|00101

交叉后:

00000|000001111110|10000

11100|011100000000|00101

染色体交叉是以一定的概率发生的,这个概率记为Pc 。

变异(Mutation):在繁殖过程,新产生的染色体中的基因会以一定的概率出错,称为变异。变异发生的概率记为Pm 。例如:

变异前:

000001110000000010000

变异后:

000001110000100010000

适应度函数 ( Fitness Function ):用于评价某个染色体的适应度,用f(x)表示。有时需要区分染色体的适应度函数与问题的目标函数。例如:0-1背包问题的目标函数是所取得物品价值,但将物品价值作为染色体的适应度函数可能并不一定适合。适应度函数与目标函数是正相关的,可对目标函数作一些变形来得到适应度函数。

三.基本遗传算法的伪代码

基本遗传算法伪代码

/*

* Pc:交叉发生的概率

* Pm:变异发生的概率

* M:种群规模

* G:终止进化的代数

* Tf:进化产生的任何一个个体的适应度函数超过Tf,则可以终止进化过程

*/

初始化Pm,Pc,M,G,Tf等参数。随机产生第一代种群Pop

do

{

计算种群Pop中每一个体的适应度F(i)。

初始化空种群newPop

do

{

根据适应度以比例选择算法从种群Pop中选出2个个体

if ( random ( 0 , 1 ) < Pc )

{

对2个个体按交叉概率Pc执行交叉操作

}

if ( random ( 0 , 1 ) < Pm )

{

对2个个体按变异概率Pm执行变异操作

}

将2个新个体加入种群newPop中

} until ( M个子代被创建 )

用newPop取代Pop

}until ( 任何染色体得分超过Tf,或繁殖代数超过G )

四.基本遗传算法优化

下面的方法可优化遗传算法的性能。

精英主义(Elitist Strategy)选择:是基本遗传算法的一种优化。为了防止进化过程中产生的最优解被交叉和变异所破坏,可以将每一代中的最优解原封不动的复制到下一代中。

插入操作:可在3个基本操作的基础上增加一个插入操作。插入操作将染色体中的某个随机的片段移位到另一个随机的位置。

五. 使用AForge.Genetic解决TSP问题

https://www.360docs.net/doc/404630953.html,是一个C#实现的面向人工智能、计算机视觉等领域的开源架构。https://www.360docs.net/doc/404630953.html,中包含有一个遗传算法的类库。

https://www.360docs.net/doc/404630953.html,主页:https://www.360docs.net/doc/404630953.html,/

https://www.360docs.net/doc/404630953.html,代码下载:https://www.360docs.net/doc/404630953.html,/p/aforge/

介绍一下AForge的遗传算法用法吧。AForge.Genetic的类结构如下:

IT项目管理系统的设计与实现_研究生论文

摘要 IT项目管理系统的设计与实现 摘要 随着信息需求的不断增长,IT项目的规模越来越庞大,IT项目的功能越来越复杂,信息化的风险也越来越高,金融机构对IT的依赖也越来越重……传统的信息交流方式早已不能满足企业对传递和处理大量信息的需要,信息化的发展过程中已经越来越凸显项目管理在项目实施中的重要性。因此,一套融合国际先进理念、契合企业管理办法的项目管理系统便被提上了企业的信息化建设日程。 本文描述了基于B/S架构的IT项目管理系统的设计与实现的过程,系统的开发采用了业内成熟稳定的J2EE SSH技术架构,设计并实现了企业内部项目的项目立项、人员配备、项目周报、会议纪要、问题管理、项目评审、需求变更、项目调整、项目结项等IT项目建设中的核心管理内容。该项目在开发过程中也严格依据项目管理的要求,从可行性分析到项目需求、设计、编码、测试,历经半年时间,在三名工程师的努力付出下,最终已在企业内部正式投入使用,系统的投产,大幅提升了企业管理层对项目协调的能力,大幅加强了项目经理日常管理的力度,大幅提升了企业项目管理水平的综合实力。该项目的投产,为项目实施的进度管理、质量保障、成本控制提供了有效的信息化的支撑平台。 本次论文重点以项目成本管理为例,通过项目立项及项目周报模块的实现,详细介绍了挣值管理理论在实践中的指导作用。通过项目经理提交项目周报,部门经理对周报实施审批后,系统将自动实现对项目成本偏差及项目进度偏差等挣值管理的相关信息进行实时的采集,该信息为企业领导层掌握项目实施状况提供了成本管理的数据模型,为未来项目管理系统向商业智能分析发展提供了有效的数据支持。 论文最后也讨论了本项目管理系统有待完善的环节和进一步研究的方向,为后续系统的升级改善提供了理论依据。 关键词:IT项目管理,信息化,J2EE,B/S

遗传算法经典MATLAB代码

遗传算法实例: 也是自己找来的,原代码有少许错误,本人都已更正了,调试运行都通过了的。 对于初学者,尤其是还没有编程经验的非常有用的一个文件 遗传算法实例 % 下面举例说明遗传算法% % 求下列函数的最大值% % f(x)=10*sin(5x)+7*cos(4x) x∈[0,10]% % 将x 的值用一个10位的二值形式表示为二值问题,一个10位的二值数提供的分辨率是每为(10-0)/(2^10-1)≈。% % 将变量域[0,10] 离散化为二值域[0,1023], x=0+10*b/1023, 其 中 b 是[0,1023] 中的一个二值数。% % % %--------------------------------------------------------------------------------------------------------------% %--------------------------------------------------------------------------------------------------------------% % 编程

%----------------------------------------------- % 初始化(编码) % 函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength 表示染色体的长度(二值数的长度), % 长度大小取决于变量的二进制编码的长度(在本例中取10位)。 %遗传算法子程序 %Name: %初始化 function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength)); % rand随机产生每个单元 为{0,1} 行数为popsize,列数为chromlength的矩阵, % roud对矩阵的每个单元进行圆整。这样产生的初始种群。 % 计算目标函数值 % 将二进制数转化为十进制数(1) %遗传算法子程序 %Name: %产生[2^n 2^(n-1) ... 1] 的行向量,然后求和,将二进制转化为十进制

遗传算法MATLAB完整代码(不用工具箱)

遗传算法解决简单问题 %主程序:用遗传算法求解y=200*exp(-0.05*x).*sin(x)在区间[-2,2]上的最大值clc; clear all; close all; global BitLength global boundsbegin global boundsend bounds=[-2,2]; precision=0.0001; boundsbegin=bounds(:,1); boundsend=bounds(:,2); %计算如果满足求解精度至少需要多长的染色体 BitLength=ceil(log2((boundsend-boundsbegin)'./precision)); popsize=50; %初始种群大小 Generationmax=12; %最大代数 pcrossover=0.90; %交配概率 pmutation=0.09; %变异概率 %产生初始种群 population=round(rand(popsize,BitLength)); %计算适应度,返回适应度Fitvalue和累计概率cumsump [Fitvalue,cumsump]=fitnessfun(population); Generation=1; while Generation

VC++管理系统项目设计与实现

VC++制作一个人事管理系统——教职工管理系统 关键词:VC++应用程序向导增加对话框资源 ADODC控件 DataGrid控件对话框切换2.1系统设计的目的和意义 人事管理系统是公司或学校或其他的事业单位用来统一管理人员的软件,下面我就一学校的教职工管理系统为例。 学校职工查询是学校管理中需要经常处理的一项工作,我的毕业设计结合一个简化的学校教职工管理系统的制作,介绍如何利用VC++的应用程序向导制作应用程序。该系统的制作涉及一个数据库、两个数据表及其相关的对话框的制作开发,涉及在工程中增加对话框、调用对话框的方法以及应用程序向导的使用方法。最重要的是,在我的毕业设计中,我将介绍一种新的数据源引用方法,即使用ADODC控件引用数据源并制作应用系统的方法。我的毕业设计程序是简单的,但方法是重要的。 2.2系统功能设计 本系统具有—般系统的数据处理功能,如数据录入、增加、修改、删除等。 2.3数据库与数据表的设计 本系统将首先创建一个职工信息数据库,并在它之中创建两个数据表,一个是“职工信息数据表”,—个是“职工工资信息表”。在我的毕业设计当中,我仅用Microsoft Access 2003创建教职工管理数据库及其数据表。 2.3.1利用Microsoft Access 2003创建教职工管理数据库及其数据表 微软公司的许多产品所支持的数据库结构与数据库驱动器类型均是通用的,因此,用户往往可以借助于相关的工具创建数据库与数据表,这里我介绍采用Microsoft Access 2003创建数据库及其数据表的方法。先定义职工信息数据表的结构,如表2.1所示,它专门用于记录教职工的基本情况。 表2.1职工信息数据表的结构 职工工资情况表的结构定义如表2.2所示,注意,这是一个简化了的职工工资数据表,因为工资表往往比较复杂,而且不同的单位工资表结构也有所不同.我不可能定义一个“万能”的工资表结构,只能创建一个具有示范意义的工资数据表结构。

MATLAB课程遗传算法实验报告及源代码

硕士生考查课程考试试卷 考试科目: 考生姓名:考生学号: 学院:专业: 考生成绩: 任课老师(签名) 考试日期:年月日午时至时

《MATLAB 教程》试题: A 、利用MATLA B 设计遗传算法程序,寻找下图11个端点最短路径,其中没有连接端点表示没有路径。要求设计遗传算法对该问题求解。 a e h k B 、设计遗传算法求解f (x)极小值,具体表达式如下: 321231(,,)5.12 5.12,1,2,3i i i f x x x x x i =?=???-≤≤=? ∑ 要求必须使用m 函数方式设计程序。 C 、利用MATLAB 编程实现:三名商人各带一个随从乘船渡河,一只小船只能容纳二人,由他们自己划行,随从们密约,在河的任一岸,一旦随从的人数比商人多,就杀人越货,但是如何乘船渡河的大权掌握在商人手中,商人们怎样才能安全渡河? D 、结合自己的研究方向选择合适的问题,利用MATLAB 进行实验。 以上四题任选一题进行实验,并写出实验报告。

选择题目: B 、设计遗传算法求解f (x)极小值,具体表达式如下: 321231(,,)5.12 5.12,1,2,3i i i f x x x x x i =?=???-≤≤=? ∑ 要求必须使用m 函数方式设计程序。 一、问题分析(10分) 这是一个简单的三元函数求最小值的函数优化问题,可以利用遗传算法来指导性搜索最小值。实验要求必须以matlab 为工具,利用遗传算法对问题进行求解。 在本实验中,要求我们用M 函数自行设计遗传算法,通过遗传算法基本原理,选择、交叉、变异等操作进行指导性邻域搜索,得到最优解。 二、实验原理与数学模型(20分) (1)试验原理: 用遗传算法求解函数优化问题,遗传算法是模拟生物在自然环境下的遗传和进化过程而形成的一种自适应全局优化概率搜索方法。其采纳了自然进化模型,从代表问题可能潜在解集的一个种群开始,种群由经过基因编码的一定数目的个体组成。每个个体实际上是染色体带有特征的实体;初始种群产生后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来越好的解:在每一代,概据问题域中个体的适应度大小挑选个体;并借助遗传算子进行组合交叉和主客观变异,产生出代表新的解集的种群。这一过程循环执行,直到满足优化准则为止。最后,末代个体经解码,生成近似最优解。基于种群进化机制的遗传算法如同自然界进化一样,后生代种群比前生代更加适应于环境,通过逐代进化,逼近最优解。 遗传算法是一种现代智能算法,实际上它的功能十分强大,能够用于求解一些难以用常规数学手段进行求解的问题,尤其适用于求解多目标、多约束,且目标函数形式非常复杂的优化问题。但是遗传算法也有一些缺点,最为关键的一点,即没有任何理论能够证明遗传算法一定能够找到最优解,算法主要是根据概率论的思想来寻找最优解。因此,遗传算法所得到的解只是一个近似解,而不一定是最优解。 (2)数学模型 对于求解该问题遗传算法的构造过程: (1)确定决策变量和约束条件;

一种基于遗传算法的Kmeans聚类算法

一种基于遗传算法的K-means聚类算法 一种基于遗传算法的K-means聚类算法 摘要:传统K-means算法对初始聚类中心的选取和样本的输入顺序非常敏感,容易陷入局部最优。针对上述问题,提出了一种基于遗传算法的K-means聚类算法GKA,将K-means算法的局部寻优能力与遗传算法的全局寻优能力相结合,通过多次选择、交叉、变异的遗传操作,最终得到最优的聚类数和初始质心集,克服了传统K-means 算法的局部性和对初始聚类中心的敏感性。关键词:遗传算法;K-means;聚类 聚类分析是一个无监督的学习过程,是指按照事物的某些属性将其聚集成类,使得簇间相似性尽量小,簇内相似性尽量大,实现对数据的分类[1]。聚类分析是数据挖掘 技术的重要组成部分,它既可以作为独立的数据挖掘工具来获取数据库中数据的分布情况,也可以作为其他数据挖掘算法的预处理步骤。聚类分析已成为数据挖掘主要的研究领域,目前已被广泛应用于模式识别、图像处理、数据分析和客户关系管理等领域中。K-means算法是聚类分析中一种基本的划分方法,因其算法简单、理论可靠、收敛速 度快、能有效处理较大数据而被广泛应用,但传统的K-means算法对初始聚类中心敏 感,容易受初始选定的聚类中心的影响而过早地收敛于局部最优解,因此亟需一种能克服上述缺点的全局优化算法。遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化搜索算法。在进化过程中进行的遗传操作包括编码、选择、交叉、变异和适者生存选择。它以适应度函数为依据,通过对种群个体不断进行遗传操作实现种群个体一代代地优化并逐渐逼近最优解。鉴于遗传算法的全局优化性,本文针 对应用最为广泛的K-means方法的缺点,提出了一种基于遗传算法的K-means聚类算法GKA(Genetic K-means Algorithm),以克服传统K-means算法的局部性和对初始聚类中心的敏感性。用遗传算法求解聚类问题,首先要解决三个问题:(1)如何将聚类问题的解编码到个体中;(2)如何构造适应度函数来度量每个个体对聚 类问题的适应程度,即如果某个个体的编码代表良好的聚类结果,则其适应度就高;反之,其适应度就低。适应度函数类似于有机体进化过程中环境的作用,适应度高的个体 在一代又一代的繁殖过程中产生出较多的后代,而适应度低的个体则逐渐消亡;(3) 如何选择各个遗传操作以及如何确定各控制参数的取值。解决了这些问题就可以利

部门项目管理系统的设计与实现毕业设计

部门项目管理系统的设计与实现毕业设计 目录 1 绪论 (1) 1.1系统开发的背景及目的 (1) 1.1.1系统开发背景 (1) 1.1.2系统研究的意义 (1) 1.2系统的实用价值 (2) 1.3部门项目管理的现状及发展趋势 (3) 1.4本文的章节安排 (3) 2 系统开发环境 (4) 2.1系统平台体系结构选择 (4) 2.2系统开发环境 (5) 2.2.1前台开发环境 (5) 2.2.2系统后台数据库环境 (5) 2.3J2EE平台概述 (6) 2.3.1J2EE规 (6) 2.3.2J2EE体系结构 (6) 2.4SSI框架介绍 (8) 3系统分析 (12) 3.1可行性分析 (12) 3.1.1可行性研究 (12) 3.1.2经济可行性分析 (12) 3.1.3技术可行性分析 (12) 3.1.4社会可行性分析 (12) 3.1.5操作可行性分析 (13) 3.2需求分析 (13) 3.2.1 项目目标 (13) 3.2.2 用户需求和模块功能 (13) 4系统概要设计 (15) 4.1系统总体设计 (15) 4.1.1系统设计目标 (15) 4.1.2系统功能模块图 (15) 4.2E-R图 (15)

4.3数据库概要设计 (17) 5详细设计 (20) 5.1系统登录模块说明 (20) 5.1.1功能简介及其页面的实现 (20) 5.2员工管理模块说明 (22) 5.2.1功能简介及其页面的实现 (22) 5.3项目管理模块说明 (24) 5.3.1功能简介及其页面的实现 (24) 5.4部门管理模块说明 (27) 5.4.1功能简介及其页面实现 (27) 5.5产品管理模块说明 (29) 5.5.1功能简介及其页面的实现 (29) 5.5.2添加产品: (29) 6 系统测试 (31) 6.1测试平台 (31) 6.2测试方法 (31) 6.2.1 白盒测试法 (31) 6.2.2 黑盒测试法 (32) 结论 (33) 致谢 (34) 参考文献 (35) 附录 (36) 附录A (36) 附录B (40)

遗传算法Matlab程序

% f(x)=11*sin(6x)+7*cos(5x),0<=x<=2*pi; %%初始化参数 L=16;%编码为16位二进制数 N=32;%初始种群规模 M=48;%M个中间体,运用算子选择出M/2对母体,进行交叉;对M个中间体进行变异 T=100;%进化代数 Pc=0.8;%交叉概率 Pm=0.03;%%变异概率 %%将十进制编码成16位的二进制,再将16位的二进制转成格雷码 for i=1:1:N x1(1,i)= rand()*2*pi; x2(1,i)= uint16(x1(1,i)/(2*pi)*65535); grayCode(i,:)=num2gray(x2(1,i),L); end %% 开始遗传算子操作 for t=1:1:T y1=11*sin(6*x1)+7*cos(5*x1); for i=1:1:M/2 [a,b]=min(y1);%找到y1中的最小值a,及其对应的编号b grayCodeNew(i,:)=grayCode(b,:);%将找到的最小数放到grayCodeNew中grayCodeNew(i+M/2,:)=grayCode(b,:);%与上面相同就可以有M/2对格雷码可以作为母体y1(1,b)=inf;%用来排除已找到的最小值 end for i=1:1:M/2 p=unidrnd(L);%生成一个大于零小于L的数,用于下面进行交叉的位置if rand()

项目管理系统毕业设计任务书

毕业设计(论文)任务书 题目:基于.NET的项目管理系统的设计与实现 专业:计算机科学与技术指导教师: 学院:信息学号: 2008080305325 班级: 200808030501A 姓名: 一、主要内容和基本要求 该毕业设计题为《基于.NET的项目管理系统的设计与实现》,主要运用C#语言进行开发,数据库采用MSSQL Server 05,将运行于安装有.NET Framewrok3.5以上的Windows系统平台上。该设计的主要内容包括: ①资源管理:主要为人员管理,包括人员基本的增删改查,角色分配等。 ②交付管理:项目经理录入、维护项目基本信息(包括一般信息、客户信息、分包商信息、财政信息、申请人员信息、项目经理等)、费用预算,建立项目里程碑,制定项目计划,管理项目风险;系统每周一凌晨计算分析上周人员、项目的收支情况以及费用管理员导入的其他ERP系统导出的报销费用明细;相关人员可以查询上述基本信息和统计分析图表(下钻)展示。 ③TIMESHEET管理:项目经理填写和提交项目组成员工时,以记录、查询出勤情况,同时也为项目实际开支计算提供基础数据。 ④系统管理:主要为用户管理。给用户分配角色和机构权限。 二、主要参考资料 [1]刘智勇,王文强.JavaScript从入门到精通[M].北京:化学工业出版社,2009:261-269. [2]奚江华https://www.360docs.net/doc/404630953.html,3.5开发详解Ⅱ——新功能篇[M].北京:电子工业出版社,2008:174-176. [3]w3school. 领先的Web技术教程.[EB/OL].[2011]. https://www.360docs.net/doc/404630953.html,/. [4]李力.企业项目管理系统的设计与实现[D].南开大学,2009. [5]应尚军,王炎.项目管理的研究现状与研究前景[J].科技进步与对策,2005,22(11):131-133. [6]袁经勇.国内外项目管理现状及发展趋势[J].化工建设工程,2001,23(3):8-9,12. [7]北京维普时代软件有限公司.成功案例.[OL] https://www.360docs.net/doc/404630953.html,/index.asp [8]金平.企业项目管理系统的分析与设计[J].中国制造业信息化,2009,38(9):10-12.

遗传算法经典MATLAB代码资料讲解

遗传算法经典学习Matlab代码 遗传算法实例: 也是自己找来的,原代码有少许错误,本人都已更正了,调试运行都通过了的。 对于初学者,尤其是还没有编程经验的非常有用的一个文件 遗传算法实例 % 下面举例说明遗传算法% % 求下列函数的最大值% % f(x)=10*sin(5x)+7*cos(4x) x∈[0,10]% % 将x 的值用一个10位的二值形式表示为二值问题,一个10位的二值数提供的分辨率是每为(10-0)/(2^10-1)≈0.01。% % 将变量域[0,10] 离散化为二值域[0,1023], x=0+10*b/1023, 其 中 b 是[0,1023] 中的一个二值数。% % % %--------------------------------------------------------------------------------------------------------------% %--------------------------------------------------------------------------------------------------------------% % 编程 %----------------------------------------------- % 2.1初始化(编码) % initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度),

% 长度大小取决于变量的二进制编码的长度(在本例中取10位)。 %遗传算法子程序 %Name: initpop.m %初始化 function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength)); % rand随机产生每个单元 为{0,1} 行数为popsize,列数为chromlength的矩阵, % roud对矩阵的每个单元进行圆整。这样产生的初始种群。 % 2.2 计算目标函数值 % 2.2.1 将二进制数转化为十进制数(1) %遗传算法子程序 %Name: decodebinary.m %产生[2^n 2^(n-1) ... 1] 的行向量,然后求和,将二进制转化为十进制 function pop2=decodebinary(pop) [px,py]=size(pop); %求pop行和列数 for i=1:py pop1(:,i)=2.^(py-i).*pop(:,i); end pop2=sum(pop1,2); %求pop1的每行之和 % 2.2.2 将二进制编码转化为十进制数(2) % decodechrom.m函数的功能是将染色体(或二进制编码)转换为十进制,参数spoint表示待解码的二进制串的起始位置

IT项目管理系统的设计与实现研究生论文

. word版本. 摘要 随着信息需求的不断增长,IT项目的规模越来越庞大,IT项目的功能越来越复杂,信息化的风险也越来越高,金融机构对IT的依赖也越来越重……传统的信息交流方式早已不能满足企业对传递和处理大量信息的需要,信息化的发展过程中已经越来越凸显项目管理在项目实施中的重要性。因此,一套融合国际先进理念、契合企业管理办法的项目管理系统便被提上了企业的信息化建设日程。 本文描述了基于B/S架构的IT项目管理系统的设计与实现的过程,系统的开发采用了业成熟稳定的J2EE SSH技术架构,设计并实现了企业部项目的项目立项、人员配备、项目周报、会议纪要、问题管理、项目评审、需求变更、项目调整、项目结项等IT项目建设中的核心管理容。该项目在开发过程中也严格依据项目管理的要求,从可行性分析到项目需求、设计、编码、测试,历经半年时间,在三名工程师的努力付出下,最终已在企业部正式投入使用,系统的投产,大幅提升了企业管理层对项目协调的能力,大幅加强了项目经理日常管理的力度,大幅提升了企业项目管理水平的综合实力。该项目的投产,为项目实施的进度管理、质量保障、成本控制提供了有效的信息化的支撑平台。 本次论文重点以项目成本管理为例,通过项目立项及项目周报模块的实现,详细介绍了挣值管理理论在实践中的指导作用。通过项目经理提交项目周报,部门经理对周报实施审批后,系统将自动实现对项目成本偏差及项目进度偏差等挣值管理的相关信息进行实时的采集,该信息为企业领导层掌握项目实施状况提供了成本管理的数据模型,为未来项目管理系统向商业智能分析发展提供了有效的数据支持。 论文最后也讨论了本项目管理系统有待完善的环节和进一步研究的方向,为后续系统的升级改善提供了理论依据。 关键词:IT项目管理,信息化,J2EE,B/S

项目管理系统设计毕业论文

项目管理系统设计毕业论文 目录 第1章绪论 (1) 1.1 研究背景 (1) 1.2 研究意义 (1) 1.3 研究内容 (2) 1.4 论文组织 (2) 第2章相关技术论述 (4) 2.1信息管理技术发展历程 (4) 2.2 .NET开发框架 (4) 2.3 Visual Studio .NET2010开发工具 (5) 2.4 SQL Server 2008数据库 (5) 2.5 B/S架构体系 (5) 第3章项目管理系统设计 (6) 3.1 功能设计 (6) 3.2 概要设计 (7) 3.3 详细设计 (9) 3.3.1.1 用户界面逻辑设计 (9) 3.3.1.2 数据流程设计 (9) 3.4 数据库的设计 (15) 3.4.1 employee (15) 3.4.2 employee group (15) 3.4.3 employeedetail (15) 3.4.4 group (16) 3.4.5 Project (16) 3.4.6 weekly (17) 结论 (18) 参考文献 (19) 谢辞 (20) I

附录一部分关键源码及解释 (21) II

项目管理系统设计 第1章绪论 1.1 研究背景 项目管理系统的应用在三十年前仅限于建筑、国防、航天等行业,三十年科技的迅速发展,项目管理系统应用到今天的计算机、电子通讯、金融业甚至政府机关等众多领域。目前在我国国内,对项目管理的认识正逐渐深入,但要求项目管理人员拥有相应资格认证的还主要为大的跨国公司、IT公司等与国际接轨的企业。为完成某个的产品或服务所做的一次性任务称为项目。项目管理是面向任务成果、基于团队工作、借助外部资源提供跨职能部门的解决方案,它能有效降低成本扩大利润,同时它又是灵活的。项目管理者的职责就是根据特定的规范、在预算范围内、按时完成任务。 从项目中获得最大的利润可以提高在市场中的竞争优势。待开发产品部件的采购形式是为了最大化社会资源,以此来获得更大的利润空间。一个项目系统能成功开放主要依赖高速的网络信息管理。如何更有效的管理项目建设是我们一直在探索的,主要可以从成员专业性和管理水平入手。一个有纪律有规则的组织在管理水平上会比无纪律无规则的组织高效许多。项目经理负责制是一个有纪律有组织的制度是现在很多企业所推行的。主要是因为现在开放项目涉及不同的专业,应用领域广泛,大部分都以管理为中心,所以项目经理负责制是必然趋势。项目经理已经认识到根据企业自身项目特点来完成相应要求的管理系统才能满足现在高速的信息化时代。国外软件公司相对成熟,是我们可以借鉴的好对象。 随着互联网的迅速发展,项目管理信息化日益扩大。基于.net的项目管理系统为了简单有效的对项目进行管理。通过构建项目管理系统是为了保障项目的顺利完成,并提高项目的整体运作效率。Web以信息发布平台的身份出现在Internet的发展史是一个重要的里程碑,为Internet成为当前信息技术的核心奠定了坚实的基础。现在,人们现在对网上信息的了解关注使用一般是通过浏览器浏览,所以将Web打造得更理想更人性化是当今研究的热点之一。 1.2 研究意义 现在是科学技术时代,最重要的就是信息的传递和收集,如何更快更准确的传递收集信息是社会的主要趋势。组织的工作必须项目化才能满足如今企业和组织的工作与任务需要及时更新、传递,总结进度制定计划更新、任务改变等,项目管理成为组织普遍采用的工作管理方式。一个组织通常要同时实施一定数量不同的项目,在同一时期内完成的项目数量越多,项目管理越复杂。在多个项目同时实施的情况下,这些项目在资金、时间、人 1

基于遗传算法的matlab源代码

function youhuafun D=code; N=50;%Tunable maxgen=50;%Tunable crossrate=0.5;%Tunable muterate=0.08;%Tunable generation=1; num=length(D); fatherrand=randint(num,N,3); score=zeros(maxgen,N); while generation<=maxgen ind=randperm(N-2)+2;%随机配对交叉 A=fatherrand(:,ind(1:(N-2)/2)); B=fatherrand(:,ind((N-2)/2+1:end)); %多点交叉 rnd=rand(num,(N-2)/2); ind=rnd tmp=A(ind); A(ind)=B(ind); B(ind)=tmp; %%两点交叉 %for kk=1:(N-2)/2 %rndtmp=randint(1,1,num)+1; %tmp=A(1:rndtmp,kk); %A(1:rndtmp,kk)=B(1:rndtmp,kk); %B(1:rndtmp,kk)=tmp; %end fatherrand=[fatherrand(:,1:2),A,B]; %变异 rnd=rand(num,N); ind=rnd[m,n]=size(ind); tmp=randint(m,n,2)+1; tmp(:,1:2)=0; fatherrand=tmp+fatherrand; fatherrand=mod(fatherrand,3); %fatherrand(ind)=tmp; %评价、选择 scoreN=scorefun(fatherrand,D);%求得N个个体的评价函数 score(generation,:)=scoreN; [scoreSort,scoreind]=sort(scoreN); sumscore=cumsum(scoreSort); sumscore=sumscore./sumscore(end); childind(1:2)=scoreind(end-1:end); for k=3:N tmprnd=rand; tmpind=tmprnd difind=[0,diff(t mpind)]; if~any(difind) difind(1)=1; end childind(k)=scoreind(logical(difind)); end fatherrand=fatherrand(:,childind); generation=generation+1; end %score maxV=max(score,[],2); minV=11*300-maxV; plot(minV,'*');title('各代的目标函数值'); F4=D(:,4); FF4=F4-fatherrand(:,1); FF4=max(FF4,1); D(:,5)=FF4; save DData D function D=code load youhua.mat %properties F2and F3 F1=A(:,1); F2=A(:,2); F3=A(:,3); if(max(F2)>1450)||(min(F2)<=900) error('DATA property F2exceed it''s range (900,1450]') end %get group property F1of data,according to F2value F4=zeros(size(F1)); for ite=11:-1:1 index=find(F2<=900+ite*50); F4(index)=ite; end D=[F1,F2,F3,F4]; function ScoreN=scorefun(fatherrand,D) F3=D(:,3); F4=D(:,4); N=size(fatherrand,2); FF4=F4*ones(1,N); FF4rnd=FF4-fatherrand; FF4rnd=max(FF4rnd,1); ScoreN=ones(1,N)*300*11; %这里有待优化

软件开发与项目管理毕业设计中期报告【精品范文】

软件开发与项目管理毕业设计中期报告 软件开发与项目管理毕业设计中期报告 毕业设计题目:基于web的超市管理系统 专业:软件开发与项目管理 本人自毕业设计开始以来所做的具体工作和取得的进展或成果以及存在的具体问题 一、前期完成的任务 需求分析文档: 对超市管理系统的需求做了比较详细的分析,把超市管理系统整体分成几个模块,整体分为系统主窗体、商品信息管理、销售管理、库存管理、员工管理、供货商管理、系统管理模块,方便后面的编程。同时整个程序按照MVC三层模式编写,一遍程序的后期维护; 所遇到的问题:对超市管理系统的业务流程不熟悉,对相关知识比较欠缺。 解决方法:在网上搜索相关信息,以及小组成员相互讨论。 数据库设计文档: 根据数据库设计文档设计数据库中需要的表以及表中的字段,数据库用的是Oracle数据库。主要完成的设计任务有概念结构设计,逻辑结构设计,物理结构设计,数

据字典设计,安全保密设计,主要包括用户表、资源表等数据表格。 所遇到的问题:对Oracle数据库使用不熟,数据库存储过程的具体使用不熟。 解决办法:阅读数据库帮助文档及上网查询,以及向老师请教。 测试文档: 该文档有助于实现以下目标:确定现有项目的信息和应测试的软件构件;列出推荐的测试需求(高级需求);推荐可采用的测试策略,并对这些策略加以说明;确定所需的资源,并对测试的工作量进行估计;列出测试项目的可交付元素。 所遇到的问题:测试技术不是很熟悉。测试计划覆盖面不全。 解决办法: 在网上搜索相关信息,询问专业测试人员。 二、在毕业设计中取得的成绩 对于项目开发的经验有了很大的提升,同时对软件开发生命周期有更深刻的理解:需求分析、详细设计、数据库设计文档。能够更好的理解需求,在开发过程中充分应用MVC设计模式,使本系统具有更好的可扩展性,可维护性。熟悉的运用开发技术,锻炼自己写代码的能力以及解决问题的能力。

遗传算法的MATLAB程序实例

遗传算法的程序实例 如求下列函数的最大值 f(x)=10*sin(5x)+7*cos(4x) x∈[0,10] 一、初始化(编码) initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度), 长度大小取决于变量的二进制编码的长度(在本例中取10位)。 代码: %Name: initpop.m %初始化 function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength)); % rand随机产生每个单元为 {0,1} 行数为popsize,列数为chromlength的矩阵, % roud对矩阵的每个单元进行圆整。这样产生的初始种群。 二、计算目标函数值 1、将二进制数转化为十进制数(1) 代码: %Name: decodebinary.m %产生 [2^n 2^(n-1) ... 1] 的行向量,然后求和,将二进制转化为十进制 function pop2=decodebinary(pop) [px,py]=size(pop); %求pop行和例数 for i=1:py pop1(:,i)=2.^(py-1).*pop(:,i); py=py-1; end pop2=sum(pop1,2); %求pop1的每行之和 2、将二进制编码转化为十进制数(2) decodechrom.m函数的功能是将染色体(或二进制编码)转换为十进制,参数spoint表示待解码的二进制串的起始位置。(对于多个变量而言,如有两个变量,采用20为表示,每个变量10为,则第一个变量从1开始,另一个变量从11开始。本例为1),参数1ength表示所截取的长度(本例为10)。 代码: %Name: decodechrom.m %将二进制编码转换成十进制 function pop2=decodechrom(pop,spoint,length) pop1=pop(:,spoint:spoint+length-1); pop2=decodebinary(pop1); 3、计算目标函数值 calobjvalue.m函数的功能是实现目标函数的计算,其公式采用本文示例仿真,可根据不同优化问题予以修改。

基于遗传算法的智能组卷策略的研究综述Word版

《基于遗传算法的智能组卷策略的研究》综述 姓名刘春晓 学号 2015216104 专业计算机技术 班级 3班 天津大学计算机科学与技术学院 2016年 6 月

基于遗传算法的智能组卷策略的研究综述 摘要随着计算机技术的日益发展和成熟,手工组卷已经不能满足现代的教学要求,组卷智能化在提高教学质量方面发挥着很重要的作用。文章对组卷策略进行了梳理,对比和总结,主要介绍了遗传算法的优点,从遗传算法的基本流程、编码方式、适应度函数和遗传算子方面进行了归纳。接着分析了目前智能组卷策略研究的不足和挑战,最后总结了未来的研究设想。 关键词智能组卷;遗传算法;适应度函数;遗传算子 1引言 在计算机技术发展飞速的今天,计算机应用已经慢慢的渗透到人类生活的方方面面,计算机的辅助教学功能也逐渐得到大家的重视。传统的手工组卷受到人为因素的干扰,导致考试的效率低下,组卷智能化已经成为不可或缺的一项研究。 近几年,智能优化算法倍受人们关注,如人工神经网络、遗传算法,为解决复杂问题提供了新的方法,并在诸多领域取得了成功。组卷问题是一个在一定约束条件下的多目标参数优化问题,针对传统的组卷算法具有组卷速度慢、成功率较低、试卷质量不高等缺点。 智能组卷算法在计算机辅导教学过程中之所以受到重视,是因为它把人工智能技术运用到了组卷中,能够智能的设计试卷的结构和内容,包括试卷的难易度,知识点,题型和题量等,使生成的试卷质量比较高。 遗传算法(Genetic Algorithm ,GA)基于达尔文的进化论和孟德尔的自然遗传学说,是通过模拟遗传选择和自然淘汰的生活进化的随机搜索和全局优化算法(张建国 2009:1)。由于该算法有智能的搜索技术和收敛性质,可以较好的满足智能组卷的要求。所以本系统选用遗传算法作为组卷算法,以试题章节、试题数量、试题知识点、试题题型、试题难度分布、试题曝光度、覆盖度、试题分数分配等约束为组卷条件,使试卷有更好的区分度。 基于遗传算法的智能组卷系统实现了组卷智能化,优化了其他组卷算法的不足,使教学更加自动化和公平化,提高了组卷效率。 2研究现状分析 在系统开发之前,应该首先选择适合本系统的组卷算法,组卷算法的选取对试卷的质量影响颇大。只有相对好的算法才能提高组卷的效率和成功率。组卷实质上就是在复杂的约束条件下的多目标求最优解的问题,保证试卷能够满足教学要求。随着计算机技术和人工智能理论的飞速发展,各种组卷策略层出不穷,选择适合的算法对系统运行有极其重要的作用。分析各种组卷算法的优缺点,找到最优的组卷算法是该系统开发的任务之一。这里我们就现阶段组卷算法进行分析和总结。 现阶段比较成熟的组卷算法有随机选取法、回溯试探法和遗传算法。随机选取法生成的试题重复率较高,难以达到预期效果。回溯试探法是一种有条件的深度优化法,对于状态类型和题量较小的题库系统而言,组卷成功率高,但占用内

基于遗传算法的BP神经网络MATLAB代码

用遗传算法优化BP神经网络的Matlab编程实例(转) 由于BP网络的权值优化是一个无约束优化问题,而且权值要采用实数编码,所以直接利用Matlab遗传算法工具箱。以下贴出的代码是为一个19输入变量,1个输出变量情况下的非线性回归而设计的,如果要应用于其它情况,只需改动编解码函数即可。 程序一:GA训练BP权值的主函数 function net=GABPNET(XX,YY) %-------------------------------------------------------------------------- % GABPNET.m % 使用遗传算法对BP网络权值阈值进行优化,再用BP算法训练网络 %-------------------------------------------------------------------------- %数据归一化预处理 nntwarn off XX=[1:19;2:20;3:21;4:22]'; YY=[1:4]; XX=premnmx(XX); YY=premnmx(YY); YY %创建网络 net=newff(minmax(XX),[19,25,1],{'tansig','tansig','purelin'},'tra inlm'); %下面使用遗传算法对网络进行优化 P=XX; T=YY; R=size(P,1); S2=size(T,1); S1=25;%隐含层节点数 S=R*S1+S1*S2+S1+S2;%遗传算法编码长度 aa=ones(S,1)*[-1,1]; popu=50;%种群规模 save data2 XX YY % 是将 xx,yy 二个变数的数值存入 data2 这个MAT-file,initPpp=initializega(popu,aa,'gabpEval');%初始化种群 gen=100;%遗传代数

相关文档
最新文档