遗传算法原理和应用

2024-05-16

遗传算法原理和应用(精选七篇)

遗传算法原理和应用 篇1

自然免疫系统是一个相对复杂自适应过程, 它能准确识别“自我”和“非我”, 保护人体不受外界病原体的入侵。当受到病原体刺激的时候, 淋巴细胞表面的“抗原识别受体”和病原体的“抗原决定基”相互结合使病原体失去致病性。当两者结构互补性越高, 亲和力越强时, 相互结合的几率就越大。

二、遗传算法

美国新墨西哥大学的Forrest研究小组在深入分析生物免疫与机制的基础上, 提出了一种计算机免疫算法型。该模型将安全问题看成类似免疫系统中“自我”与“非我”的问题。Forrest思想是假定“自我集”随机分布在整个空间, 为辨别“自我”与“非我”, 空间随机产生检测器, 删除检测到自己的检测器, 使其余非己的检测器保留下来。入侵检测原理就是在“自我”与“非我”集合中构建一个边界, 从而提高传统异常检测算法中效率和误报率低下的问题。

三、遗传算法对算子的操作

遗传算法对算子的基本操作分为三种, 分别是选择、交叉和变异。

选择算子 (selection/reproduction) :

选择算子是指从群体中按某一概率选择个体, 某个体xi被选择的概率Pi与其适应度值成正比。选择算子代码如下:

交叉算子 (Crossover)

交叉算子将被选中的个体基因链按pc概率进行交叉, 生成新的个体, 交叉位置是随机的。

变异算子 (Mutation) :

变异也就是通过概率改变染色体位串上的某个基因, 将新个体基因链的各位按pm概率进行变异。变异算子代码如下:

四、遗传算法特点

遗传算法是求最优解的一种通用算法, 对于各种通用问题都可以使用它。求最优解算法的共同特征为:

(1) 首先选出一组候选解;

(2) 依据适应性条件计算这些候选解的适应度范围;

(3) 根据适应度保留下某些候选解, 淘汰其他的候选解;

(4) 对保留的候选解进行淘汰, 最后所得即是新的最优解。

在遗传算法中, 上述几个特征基于染色体群的并行搜索, 带有猜测性质的选择操作、交换操作和突变等特征, 将遗传算法与其它搜索算法区别开来。

五、遗传算法的应用

(1) 遗传算法在入侵检测系统的应用

侵检测系统是一种主动防御体系, 它从计算机系统中采集分析数据, 通过检测引擎判断异常响应事件, 在计算机系统受到危害之前拦截特征行为。譬如说计算机软件中毒之后, 入侵检测系统能收集病毒库相关信息并纳入防御体系, 从而避免重中毒的行为。目前, 遗传算法已经很好的应用于入侵检测系统当中, 通过遗传算法的主动学习方式可以增强系统防范能力, 有效弥补软件防火墙被动杀毒和病毒库特征需要升级的不足, 很好的防护计算机的安全。

(2) 优化函数

优化函数是遗传算法的经典应用领域。目前构造出各种各样复杂形式来测试函数:连续函数、离散函数、凸函数和凹函数、低维函数和高维函数、单峰函数和多峰函数等。对于一些非线性、多目标的函数优化问题用其它优化组合的方法难以求解, 而遗传算法可以很好的得到较好的结果。

(3) 组合优化

随着问题规模的增大, 组合优化问题的搜索范围也随之急剧增大, 有时在目前的计算上用枚举法很难求出问题的最优解。对于这类复杂问题, 遗传算法可以寻求这种满意解的最佳工具之一。实践证明, 遗传算法对于组合优化中问题非常有效, 例如遗传算法已经在求解旅行商问题、装箱问题、背包问题和图形划分问题等方面得到成功的应用。

六、小结

遗传算法是一类基于生物免疫系统功能、原理、特征建立的计算学习处理系统, 拥有卓越的智能学习效率和自适应性, 近年来用于故障诊断、行为仿真、入侵检测等领域。随着计算机技术的发展, 遗传算法应用领域将会越来越广阔。

摘要:入侵检测系统的特点是利用生物免疫系统的原理与机制, 实现对入侵行为的检测。本文主要阐述遗传算法的实现原理, 比较几种算法各自的特点, 最后介绍遗传算法的应用领域。

遗传算法应用的分析与研究 篇2

关键词:人工智能;进化算法;遗传算法(GA)

中图分类号:TP18文献标识码:A文章编号:1007-9599 (2010) 13-0000-01

Analysis&Research of Genetic Algorithm

Yang Hui

(Agricultural Bank of China,Hunan Branch,Changsha410005,China)

Abstract:This paper introduces the principle and historical of evolutionary algorithm and genetic algorithm of application,and analyzed its various important factors.

Keyword:Artificial intelligence;Evolutionary algorithm;Genetic algorithm(GA)

一、遗传算法及其优越性

遗传算法(Genetic Algorithm)是进化算法的一个重要分支。遗传算法的主要特点是群体搜索策略和群体中个体之间的信息互换,它实际上是模拟由个体组成的群体的整体学习过程,其中每个个体表示问题搜索空间中的一个解点。遗传算法从任一初始的群体出发,通过随机选择,交叉和变异等遗传操作,使群体一代代地进化到搜索空间中越来越好的区域,直至抵达最优解点。

遗传算法和其它的搜索方法相比,其优越性主要表现在以下几个方面:首先,遗传算法在搜索过程中不易陷入局部最优,即使在所定义的适应度函数非连续。不规则也能以极大的概率找到全局最优解,其次,由于遗传算法固有的并行性,使得它非常适合于大规模并行分布处理,此外,遗传算法易于和别的技术相结合,形成性能更优的问题求解方法。

二、遗传算法的基本流程

一个串行运算的遗传算法通常按如下过程进行:

(1)对待解决问题进行编码;t:=0

(2)随机初始化群体X(0):=(x1,x2,Λ,xn);

(3)对当前群体X(t)中每个染色体xi计算其适应度F(xi),适应度表示了该个体对环境的适应能力,并决定他们在遗传操作中被抽取到的概率;

(4)对X(t)根据预定概率应用各种遗传算子,产生新一代群体X(t+1),这些算子的目的在于扩展有限个体的覆盖面,体现全局搜索的思想;

(5)t:=t+1(新生成的一代群体替换上一代群体);如果没有达到预定终止条件则继续(3)。

三、遗传算法中各重要因素分析

(一)编码理论。遗传算法需要采用某种编码方式将解空间映射到编码空间。类似于生物染色体结构,这样容易用生物遗传理论解释,各种遗传操作也易于实现。编码理论是遗传算法效率的重要决定因素之一。二进制编码是最常用的编码方式,算子处理的模式较多也较易于实现。但是,在具体问题中,根据问题的不同,采用适合解空间的形式的方式进行编码,可以有效地直接在解的表现型上进行遗传操作,从而更易于引入相关启发式信息,往往可以取得比二进制编码更高的效率。

(二)染色体。每个编码串对应问题的一个具体的解,称为染色体或个体。一个染色体可以通过选用的编码理论与问题的一个具体的解相对应,一组固定数量的染色体则构成一代群体。群体中染色体可重复。

(三)随机初始化。随机或者有规律(如从一个已知离解较近的单点,或者等间隔分布地生成可行解)生成第一代群体。一次遗传算法中有目的采用多次初始化群体会使算法拥有更强的搜索全局最有解的能力。

(四)适应度。一个染色体的适应度是对一个染色体生存能力的评价,它决定了该染色体在抽取操作中被抽取到的概率。估价函数是评价染色体适应度的标准,常见的估价函数有:直接以解的权值(如01背包问题以该方案装进背包物品的价值作为其适应度),累计二进制串中1/0的个数(针对以二进制串为编码理论的遗传算法),累加该染色体在各个目标上的得分(针对多目标最优化问题,另外,对于此类问题,本文提出了一种更有效的估价函数)。

(五)遗传算子。遗传算子作为遗传算法的核心部分,其直接作用于现有的一代群体,以生成下一代群体,因此遗传算子的选择搭配,各个算子所占的比例直接影响遗传算法的效率。一个遗传算法中一般包括多种遗传算子,每种算子都是独立运行,遗传算法本身只指定每种算子在生成下一代过程中作用的比例。算子运行时从当前这代群体中抽取相应数量的染色体,经过加工,得到一个新的染色体进入下一代群体。

(六)抽取。抽取操作是遗传算法中一个重要基本操作,作用是按照“优胜劣汰”的原则根据各个染色体的适应度从当前这代群体中挑选用于遗传算子的染色体。通常采用的手段是偏置转盘:

设算法中群体数量为population,首先计算当代群体的各染色体适应度之和 。将1~S(t)内的整数划分成population个区间段,每个染色体所占的区间段的长度既是它的适应度。这样,随机产生一个1~S(t)的整数,抽取该点所属区间段相对应的染色体,就可以保证任意一个染色体xi在抽取操作中被抽取到的概率为 。

(七)终止条件。遗传算法的终止条件用于防止遗传算法无止境的迭代下去,一般限制条件可以设为达到指定的迭代次数后终止,或当解的收敛速度低于一定值时自动终止。当遗传算法达到终止条件时,遗传算法结束,并按照要求返回中途最优的一个染色体(或所有满足条件的非劣最优解)

四、结束语

遗传算法的原理是简单的,但是如何熟练运用遗传算法却并不是一个简单的问题,理论要结合实际,对于不同问题,遗传算法要稍加变化,就如同画龙点睛一般,切忌不可生搬硬套。笔者认为遗传算法应当与现有优化算法结合,可产生比单独使用遗传算法或现有优化算法更好,更实用的算法。

参考文献:

[1]戴晓晖,李敏强,寇纪淞.遗传算法的性能分析研究[J].软件学报,2001

遗传算法原理和应用 篇3

随着广播电视数字化技术的发展与应用, 我国的新型地面数字电视业务, 如高清晰度电视、标准清晰度电视、移动多媒体广播已进入大规模推广应用阶段。新的地面数字电视业务的应用与发展, 需要使用大量的频谱资源, 如何提高频率的使用效率, 是模拟向数字过渡期间摆在我们面前的一个难题。

为提高频谱资源的使用效率, 世界各国在频率指配方法上展开了深入研究和应用。随着计算机技术的快速发展, 各种更高效的基于启发式算法的地面电视频率指配方法也相继应用到实际规划中。例如美国联邦通信委员会 (FCC) 通过使用“模拟退火”算法和相应的应用软件进行其数字电视的频率指配安排, 使得美国模拟向数字过渡期间的转换成本得到有效降低, 频率资源的使用效率得以提高, 并带来了巨大的商业效益。欧洲的T-DAB规划和RRC06规划也使用了多种基于启发式算法的频率指配方法[1]。

我国地面电视业务目前常用的频道数量一共有47个, 已指配给了数量众多的模拟发射机, 承担着公共服务和各地节目的播出和转播任务。模数同播及诸多新业务要求在有限的频谱资源里成倍地播出节目, 对地面电视频谱资源及地面数字电视覆盖网的规划带来极大的挑战。我国分米波段共有36个电视专用频道, 除了原有的4个模拟频道外, 模数过渡期间, 假设每个地区需要新增1个数字电视频道用于模数同播, 全国337个地级以上城市共需要337个数字电视发射频道, 总共有32337种可能方案。对这些方案的筛选, 若没有优化的算法, 即使用当今世界上最大、最快的计算机进行计算, 用“穷搜”办法, 也不可能在有生之年计算比较所有方案, 从中找出绝对的最佳方案。因此, 只能采用某些启发式优化算法找到满足规划要求的近似“最佳”方案[2]。

频道指配可以归结为在一定约束条件下的线性优化问题。在满足覆盖网中各台站频道数量要求的基础上, 覆盖网的综合干扰水平应最小, 占用频道数量应尽可能少, 有效覆盖的面积和人口应尽可能大。目前已有许多方法用于解决此类问题, 如顺序图着色算法、禁忌搜索算法、遗传算法、模拟退火算法等。本文将就遗传算法及其在地面电视频率指配中的应用和改进进行阐述。

1 遗传算法及其在频率指配中的应用和改进

1.1 遗传算法简介

遗传算法是Holland教授在20世纪70年代初期首先提出的[3], 是通过模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型去搜索最优解的方法。遗传算法尤其适用于处理传统搜索方法难于解决的复杂和非线性问题, 可以广泛用于组合优化、数据挖掘、规划设计、智能控制、生产调度等领域[4]。

1.2 遗传算法在频率指配中的应用

频率指配问题中应用遗传算法, 首先要明确表达方式。

1.基因链码。每个基因链码长度为N, 这相当于要指配频率的台站数量。基因采用实值编码方式, 基因链码中每个元素的值都为整数, 对应一个频率。基因链码如下所示:

其中fi (i=1, 2.⋯, N) 代表分配给台站i的频率。

2.初始化群体。基因链码的初始群体一般是随机建立的, 即给基因链码的每个台站从可用频率集合中随机指配一个频率。

3.交叉。从每一代的基因链码中每次选择两条基因链码, 随机选择交叉点, 采用多点交叉的方式, 由初始交叉点起, 向基因链码终点方向逐一交换并比对交换后台站的频率是否兼容。若可行, 则生成子代两条新的基因链码, 对应不同的频率指配方案。

4.变异。一般采用基因位置交换的变异方式, 即首先从每一代的基因链码中依概率选择个体, 随机交换个体中的两个基因, 如图1所示。比对兼容关系可行时, 接受操作。

遗传算法在频率指配中的算法步骤如下:

初始化群体

给各台站生成随机的频率指配方案, 用frequency[i]表示

主循环:

遗传代数初始化generation=0

计算每条基因链码的适应度fitness[i]

适应度最高的个体, 将其基因保存于frequency_best轮盘赌选择下一代种群的个体

随机选择交叉点, 交叉双亲个体

选中个体变异

END WHILE

1.3 频率指配中遗传算法的改进

1.初始群体的快速生成

在遗传算法的实验研究中, 我们发现初始群体中的解如果不是可行解, 经过选取、交叉和变异后很难得到可行解或解的质量很差。初始群体的生成如果用随机方法生成可行解, 其运算时间会随着群体的大小和基因链码的长度呈指数增长, 不利于大规模频率指配问题的解决。

顺序图着色算法在寻解时间上拥有遗传算法无法企及的优势。由此, 可以用“随机”图着色方法生成遗传算法的初始群体, 这样便解决了遗传算法的初始解的快速生成问题。

2.改进型遗传模拟退火算法[5]

在求解大型组合优化问题时, 基本的规范遗传算法有可能陷入局部最优或过早收敛。在求解过程的早期, 可通过在成员间引入更多的差异性以提高规范遗传算法的性能, 从而防止过早收敛。为防止过早收敛, 遗传局部搜索算法 (GLSA) [6]将局部搜索引入规范遗传算法的框架, 遗传退火算法 (GAA) [7]将模拟退火的概率接受测试技术引入递增遗传算法中 (IGA) 。

本文用顺序图着色方法生成遗传算法的初始群体, 在遗传算法的变异过程中引入接受概率改进的模拟退火算法, 提出了一种用于解决频率指配问题的改进型遗传模拟退火算法, 具体步骤如下:

初始化群体

给各台站用顺序图着色方法生成初始频率指配方案, 用frequency[i]表示

主循环:

遗传代数初始化generation=0

计算每条基因链码的适应度fitness[i]

适应度最高的个体, 将其基因保存于frequency_best轮盘赌选择下一代群体的个体

随机选择交叉点, 交叉双亲个体

初始化温度t0

计算目标函数E (fold)

从fold的邻域生成新的指配fnew计算目标函数E (fnew)

计算ΔE=E (fnew) -E (fold)

减小tk

2 实验结果

通过用顺序图着色的结果给遗传算法赋初值, 由此衍生出了四种改进遗传算法。为和随机图着色赋初值的遗传算法相区别, 针对每个兼容关系矩阵, 遗传算法都给出了五组实验结果, 第一组是随机赋初值, 后面四组是改进后的算法, 分别用GA1〜GA4表示。其中GA1、GA2、GA3、GA4指初始群体中分别含有顺序图着色[8]最大度优先1、最大度优先2、最小度居后、最大色度的生成结果的遗传算法。改进型遗传模拟退火算法用IGSA表示。

遗传算法群体大小设为100, 交叉概率设为0.95, 变异概率设为0.01, 迭代次数设为1000。改进型遗传模拟退火算法群体大小设为100, 交叉概率设为0.95, 变异概率设为0.01, 迭代次数设为100。实验中分别针对随机生成的大小为50、117、197、282的兼容关系矩阵, 对不同的遗传算法所需频率数目、运算时间比较进行了比较, 分别见图2、图3。

从实验结果可以看出, 改进型遗传模拟退火算法在所需频率数目比遗传算法少。这主要是由改进型遗传模拟退火算法结合了遗传算法“适者生存”和模拟退火算法“概率跳跃”的优点, 随机搜索性能较模拟退火和遗传算法更为宽泛。遗传模拟退火算法通过在遗传算法的变异运算过程中引入模拟退火算法, 使得串行的模拟退火算法转变为并行模拟退火算法, 而遗传算法的复制和交叉改变了模拟退火算法缺乏历史搜索信息的缺点[9]。改进型遗传模拟退火算法由于收敛速度快, 因此, 可通过减少迭代次数来减少运算时间。图3结果说明了在迭代次数减少10倍时, 遗传模拟退火算法运算时间和遗传算法相比可以减少30%〜60%。

3 总结

近年来, 根据“科学发展观要求”, 为使频率规划决策更具科学性, 我国在多次地面电视频率规划工程中, 均使用了覆盖面积、人口、可用场增量等统计指标, 取得了良好的收效。由于指标数据的获得需考虑复杂的台站地理关系和统计模型, 耗时费力, 在时间来不及时, 不得已还要借助经验进行频率规划决策。分析表明, 上述指标的统计方法具备一定规律, 经过适当的计算机标准化处理后可降低人工依赖, 自动获得, 如采用改进型遗传模拟退火算法等进行优化处理, 可极大提高频率使用效率, 降低覆盖网综合干扰水平, 加快我国地面数字电视频率规划进程。

参考文献

[1]Beutler.R.Frequency Assignment and Network Planning for Digital Terrestrial Broadcasting Systems[M].New York:pringer-Verlag, New York LLC, 2004.

[2]潘振中.美国地面HDTV规划的技术基础[J].广播电视技术, 1994.8 (5) :1-8.

[3]Holland J H.Adaptation in natural and artificial systems.MIT Press, 1975.

[4]王小平, 曹立明.遗传算法—理论、应用与软件实现[M].西安:西安交通大学出版社, 2002.1.

[5]韩文花, 靳希, 任海霞.基于遗传模拟退火算法的漏磁缺陷重构[J].应用基础与工程科学学报, 2007 (6) .

[6]LiYue, UdpaL, Udpa S S.Three-dimensional defect reconstruction from eddy-current NDE signals using a genetic local search algorithm[J].IEEE Transactions on Magnetics, 2004, 40 (2) :410-417.

[7]WongK P, Wong Y W.Genetic and genetic/simulated-annealing approaches to economic dispatch[J].IEE Proceedings-Generation, Transmission and Distribution, 1994, 141 (5) :507-513.

[8]李薰春, 杨明, 尹衍斌.基于顺序图着色方法的地面数字电视频率指配[J].电视技术, 2008 (5) .

遗传算法原理和应用 篇4

关键词:PID;遗传算法

中图分类号:TP317.4文献标识码:A文章编号:1007-9599 (2010) 06-0000-00

The Use of Genetic Algorithms&Fuzzy Logic PID Gain Tuning Method

Gong Jiang

(Xinjiang Xinkun Tire Co.Ltd.,Engineering Department,Urumqi830013,China)

Abstract:This paper presents a PID gain tuning method,using genetic algorithms(GA)-based estimates to gain the use of fuzzy logic GA classification.and then using this method in different responses PID gain tuning.Experimental results show that GA-based fuzzy logic tuning method can achieve better performance.This control system also used in soft computing method to study the possibility of.

Keywords:PID;Genetic algorithm

比例-积分-微分(PID)是使用最为广泛的工业控制器。这是由于其结构简单,鲁棒性好,可以适应各种操作环境。然而,对于非线性或者高阶系统,固定增益的PID控制器通常并不适合。为了解决这个弱点,人们对PID提出了各种修改方案,例如,继电自动整定和自适应PID[1]方案。PID控制器的设计需要规定三个增益:比例KP,积分KI和微分KD。大量研究人员已经提出了一些方法用来减少优化或者整定增益的工作量。Ziegler-Nichols(Z/N)就是最为知名的一种整定方法[2],通常使用它先获取初始估计值,然后使用一种特别的方法或者经验法则来进一步整定到最优性能[3]。

软计算方法是解决计算复杂性和数学难解问题的实用方法[9-12],因为人们可以通过软计算方法容易地将自然系统跟智能机器结合起来。最为流行的软计算方法是神经网络、模糊逻辑和遗传算法。

基于模糊逻辑的方法通过语言能力来解决不确定性,而遗传算法是在遗传科学的一些灵感之上进行功能强大的随机查找。

近年来,模糊逻辑作为一种基于特殊规则的方法进行PID整定的手段得到普及。神经-模糊方法当前也正在进行研究,以进一步提高其性能。最近,提出了自适应的神经-模糊推理系统,它作为一种减少依赖模糊规则生成专家的手段,用来描述非自适应模糊集[8]的设计。

本文提出了一种使用GA调节PID控制器增益的混合方法,使用模糊逻辑分级系统对其性能进行分析。这个系统也用作GA的适应度函数。对控制器错误信号的性能指标参数进行分析计算(包含每一点处的超调量、上升时间和稳态误差)后,把它们送入基于模糊逻辑的分级系统,为当前所计算的控制器增益分配一个等级。该方法提高了控制器性能,在本文的实验结果部分比较了Z/N方法和尝试错误整定方法。为了简化仿真结果,不失一般性,只使用了机械手的一个节点(末端节点)。本研究中使用FANUC S-900机械手,仿真包的建模和重构做了适当简化。

一、机械手的动态特性

由于机械手使用耦合非线性微分方程能够较好地展示系统的高动态响应,所以适合用来评估控制器的性能。机械手动态特性的一般形式如下:

这里, 、 和 分别是关节点的位置、速度和加速度向量, 是惯性矩阵, 是Coriolis/Centripetal力矩阵, 是摩擦分量, 是重力向量, 代表扰动, 是控制输入向量,包含部件的转矩和力的向量(对于旋转关节和移动关节)。

二、PID控制器的调整

PID控制规则可以使用下面得公式表示:

这里, 是转矩控制信号, 是误差信号(用°表示), 、 、 分别是比例、积分和微分增益。为了达到满意的性能,这三个PID增益都需要进行整定。

使用最大增益Z/N方法,首先完成比例控制器,然后增加 ,直到这个过程临界稳定而呈现出持续震荡。这样便得到了临界值增益 和振荡周期 ,这样便可计算出PID增益,也给出了试探法计算出的增益,用于跟本文在后面部分中提出的方法进行比较。

(一)信号分析

这部分的任务是记录错误信号e(t),它由当前的轨迹参考点减去当前机械手的方位输出。

e(t)=ref(t)– (t)

在系统达到下一个参考点之前,分析仪通过前面记录的信号数据计算出3个主要性能指标(PI)参数:上升时间(Rt)、超调量(Os)和稳态误差(SSe)。能够由这些参数计算出总体控制器的性能。随着上升时间减小,超调量和稳态误差趋于零,系统的性能得以提升。一般情况下,上升时间小一点比较好,但是,如果速度是机械手轨迹的一个主要参数,那么上升时间就较强地依赖于速度这个因素了。本研究中,忽略了速度这个因素,因此,较小的上升时间代表了较好的性能。

三、结论

基于PID的控制器的一个重要挑战是对其进行增益整定。很多人使用诸如Z/N法和试探法等通用的整定方法,这类整定方法对于工厂内部行为未知的系统不能很好地进行调节。文中提出的混合方法由遗传算法、模糊逻辑和(基于系统超调量、上升时间和稳态误差的)控制分析仪组成。GA用于估计增益,模糊逻辑在信号分析仪的帮助下,使用GA的适应度函数对这些增益进行排序。仿真结果证明:使用该技术,从性能指标参数的角度能够降低控制器的总误差率。另外,由于系统使用GA进行估计,会带来一些速度上的问题。但是因为染色体长度很短,在实际应用平台中GA还是能够成立,这个问题也容易处理。

参考文献:

[1]张潮海,朱德明.数字随动系统PID调节器参数寻优[J].电机电器技术,1991,(04)

[2]王利,王矛棣,王克奇,邹丹丁.一类滞后系统最优PID调节器设计方法的仿真研究[J].东北林业大学学报,1992,(04)

[3]王宏,李洪,朱军.PID调节器参数优化设计的一种改进方法[J].信息技术,1997,(01)

[4]曹军,王克奇,常恕吾,杨肃.PID调节器参数优化设计的一种改进方法[J].东北林业大学学报,1990,(02)

作者简介:龚江(1965-),男,四川安岳人,大学本科,就职于新疆新昆轮胎有限责任公司,工程师,研究方向:仪表自动化。

遗传算法原理和应用 篇5

随着电网规模的不断增大、电网互联趋势的日益发展以及电网无功电源规划滞后等原因,导致现代电网存在大量无功能量的不合理流动,缺乏对电网无功能量的科学优化,导致电网网损增大,降低了供电企业的运营效率和供电收益,因此开发1套指导电网无功电源规划以及无功电压运行优化的可视化软件是适应现实需要的。

近年来,已有相关文献介绍了COM技术在电力系统相关软件开发中的应用[1,2],如在继电保护和短路计算软件开发中已有应用[3],但是,运用COM技术开发出能够进行电网无功优化计算的国产软件极少,如大型电力系统综合分析程序PSASP只能进行电网网损计算,其目标函数缺乏考虑无功电源投资费用和安装费用等现实存在的费用,其他少许软件也只能在DOS环境下运行,需要操作者记忆太多命令,明显不满足人性化、图形化操作方式发展的需要。

因此,针对现实需求,基于Matlab和Delphi平台,运用COM技术和遗传算法开发了能够进行潮流计算、无功规划优化计算和无功运行优化计算的软件。本文较详细的说明了整个开发过程所涉及到的主要开发平台及其主要编程技术方法,最后还用算例验证了开发出的软件系统的科学性和实用性。

1 软件功能介绍

运用本软件主要能够进行电网的潮流计算、无功规划优化计算和无功运行优化计算等,由于在算法中考虑了分布式电源[4,5]接入的影响,因此该软件可用于含分布式电源的配电网无功优化计算。

1.1 电网单线图绘制

运用TCAD控件[6]开发出来的电网元件库为单线图绘制提供了丰富的绘图单元,用户只需要通过简单的拖动、双击和连接操作就可以完成电网单线图的绘制,并且在单线图上可以显示电网元件名称以及电压等级。

1.2 进行各种计算

在完成电网单线图绘制并输入电网基础参数以后,用户需要先进行保存操作,程序通过图元属性来进行全网搜索,以完成单线图中各节点、线路、变压器、负荷、电容器等的编号以及各个电网元件相关属性赋值操作,也是为后面潮流计算和优化计算提供所需要的参数值。在进行优化计算操作时,只需要通过下拉框选择计算选项,程序就会自动完成用于Matlab核心计算程序所需参数的数据卡形成操作,并把计算结果数据存入到指定数据库。

1.3 计算结果输出及管理

为了方便管理和程序设计,软件分别建立了潮流计算、无功规划优化和运行优化计算结果数据库,并用Tree View组件进行树状显示,用户可以在1个窗体中方便进行优化前和优化后的各种参数对比,还可以将各种数据表格保存为Excel形式。

2 软件设计思想

2.1 采用的主要算法介绍

潮流计算算法考虑了分布式电源接入和环网的影响,因此本文对适用于辐射状配电网潮流计算的分层前推回代法进行了改进,对环网中的解裂点采用注入补偿电流法来等效环网的影响,而对分布式电源采用根据分布式电源类型模拟成PQ、PI、PV和PQ(V)类型的节点来处理。

无功规划优化和运行优化的目标函数[7]为:

等式和不等式约束为:

式中:ΔPloss为网损;Kpunish为节点电压越限惩罚因子,为正值;ΔVj表征电压越限程度;Nc,Nk,分别为可投切电容器节点集、可调变压器节点集;Ci,Cimin,分别为节点i投切电容器组数、可投切电容器组数上下限;Ti,Timax,Timin分别为变压器档位数、变压器档位数上下限;(1)为潮流等式约束,(2)为状态变量约束,(4)和(5)为在进行无功运行优化时的控制变量约束。

优化算法采用遗传算法[8]进行寻优,为方便处理如变压器分接头位置、电容器投入组数等这样的离散变量,染色体编码方式采用十进制编码方式:

式中:Ci表示节点i电容器投入组数;Ti表示节点i变压器分接头所处档位;Nc、Ct分别表示无功补偿节点集和可调变压器个数。

在优化程序编码中,对交叉和变异算子进行自适应改进,也就是说这2个算子不是固定不变的,而是随着进化过程动态改变的,这将有利于全局最优搜寻。

2.2 主要模块开发技术

2.2.1 电气元件库开发

利用TCAD矢量图形开发组件可以开发各种矢量图形,它把电气元件看成1个对象或者类,这个对象或类具有属性和方法等信息,因此可以像C语言中的结构体一样来描述1个电气元件的电压等级、阻抗等信息,如图1所示。

在TCAD中将所有电气元件的图元及其属性开发完成后,将其存入1个文件类型为“libname.lib”的文件中。然后再程序窗体中就可以窗体的“loadlib”方法来打开元件库,如以下语句:

LibShowFrm.LoadLib (libname)

这种开发方式,实际上是对图元属性进行了封装,也就是说图元的内置数据结构不能由用户直接访问,只能由设计人员检查图元各种属性数据的有效性,防止编译错误的发生。若要对图元属性进行赋值或者读取参数等操作时,需要通过如下语句进行访问:

Mainunit.Sshape.UserData.GetValueByKey (‘名称’);也就是说电气元件的所有电气参数被封装成图元的Sshape.UserData属性中,用户可以通过GetValueByKey方法进行访问。另外值得提醒的就是,对电压等级等属性,由于要进行标幺值参数换算,其在某些表达式中会作为分母,所以其属性“value”最好指定1个不为零的默认值,避免第一次双击图元弹出参数录入窗体时出现错误。

2.2.2 电气元件参数录入窗体开发要点

每一个电气元件如母线节点、线路、双卷变、三卷变、负荷、发电机或等值系统、电容器等都要开发1个参数录入窗体,这些窗体主要完成主要电气参数录入工作,并提供如标幺值输入、物理描述参数输入、试验参数输入等多种方式录入电气参数,但最终存入数据库中的参数都为标幺值参数。在这些窗体的单元文件程序中,主要包括如下过程:

(1)在双击电气图元时,在弹出相应参数录入窗体的同时,要在窗体的FormShow事件中进行初始化操作,比如基准电压默认值、元件名称显示、已经录入的一些参数以及一些必要的判断操作等。相关代码为:

transfer2setfrm.Edit9.Text:=Mainunit.Sshape. UserData.GetValueByKey (‘电抗’)

(2)当通过参数窗体中的非直接输入标幺值的方式录入参数时,要在相应按钮的Click事件中编写标幺值参数转换代码。

(3)当参数录入完毕后,在窗体的Close事件中编写将标幺值参数和主要有名值参数存入到相应电气元件的图元属性中,其相关语句为:

M ainunit.Sshape.UserData.ChangeValueByKey(‘电抗’,transfer2setfrm.Edit9.Text)

2.2.3 单线图的绘制及电网基础数据库形成

用户通过拖动电气元件到画布、双击图元、录入参数、将各个元件连接成网等步骤后需要点击“保存”来完成电网电器元件自动编号、根据相关属性的值进行图元相互空间位置判断、进行相关电气参数统计工作、将所有图元属性值保存到电网基础数据中等主要操作。图元属性值写入电网基础参数数据库主要通过如下代码实现:SQL.Add (‘Insert into双卷变参数(’名称‘) values (MyCAD1.MyShapes[i].UserData.GetValueByKey(’名称‘)’)。

单线图的绘制所需要的背景及其画布形成主要是通过MyCAD1控件来实现的,该控件封装了丰富的属性和事件,在其属性和事件中可以定义在画布上的所有动作和响应,如鼠标滚轮方向实现画布放大缩小、左键双击图元弹出参数录入窗体、鼠标移动过程实现坐标定位、图元信息提示、新增图元响应等。

2.2.4 COM技术实现计算程序嵌入

传统的Matlab程序调用方法存在环境和参数设置复杂的问题,或者不能摆脱Matlab软件环境运行的缺点。COM技术是1种二进制和网络标准,目的是为了提高软件的可复用度,解决不同程序间的通信问题,互操作性,以及软件的跨平台,跨网络应用问题。

利用Matlab2009a提供的Deployment Tool工具可以实现将众多的m文件形式的计算程序编译连接成动态链接库[9,10],并自动在本机进行注册,这时,就可以在Delphi中找到相应的类名,只要进行简单的导入操作即可在Delphi控件栏中的ActiveX处找到以该类名命名的控件。设计人员只需把这个控件拖到窗体上,就可以像对待普通控件一样进行调用,而m文件中的众多子函数将成为该控件的属性,设计人员只需调用该控件的属性即可完成对相应计算程序的动态调用和控制。相关语句如下:

ReactiveOptimal 1.reactive_power_optimization();其中的ReactiveOptimal1即为控件名,reactive_power_optimization()为控件属性。

要实现COM组件制作,一般要经过如下3个步骤:

(1)在Matlab中输入mbuildsetup命令进行编译器设置,按提示操作即可;

(2)启动Deployment Tool,加载m文件,为工程命名(即为后来的类名),指定编译器地址然后编译即可生产DLL;

(3)若要使得计算程序能够脱离matlab环境运行,必须对DLL及其相关文件进行打包,注意,此时一定要勾选MCR选项,否则打包会失败,打包后会生产可执行文件如ReactiveOptimal_pkg。以后只需要双击运行此文件即可进入COM组件的注册和发布,并安装MCR Installe.exe。

2.2.5 计算调用模块开发

这部分是软件开发的核心部分,需要完成较多重要的步骤:用户通过界面选择计算功能后,程序先向sel.txt文档中写入1个标记数字(0为潮流计算,1为运行优化计算,2为规划优化计算),程序会自动形成相应数据计算功能的数据卡,将相应计算用数据存到data.txt中。里面是按照界面开发人员和计算程序开发人员的约定格式形成的一些全数字数据,然后调用COM组件进行进算,也就是调用COM组件的某一个对应的属性,等待计算完成后,COM组件会自动生成1个计算结果mytext.txt文档,这个文档不能被用户读懂,缺乏注释标记,因此,还必须对此时的计算结果进行注释,然后再写入到计算结果数据库中供用户查询。大体计算流程可以描述如图2所示:

在形成数据卡中,需要用到如下命令:

通过以上命令即可实现从数据库中抽取数据并写入data.txt中形成数据卡;

在读写计算结果时,要用到如下命令:

MySQL1.SQL.Add (‘Insert into节点电压结果(节点号)values(“‘+pline[()+’”)’);

值得提醒的是,在数据卡和结果数据文档的第一行中,计算程序编写人员和界面开发人员一定要有一个明确的约定,因为这一行是表头,里面提供了本文档的行数信息以及数据读入顺序的一些重要信息,不能出错,否则将导致计算结果错误。

2.2.6 数据库系统开发

本软件中要建立2类数据库,一类是电网基础参数数据库,一类是电网计算结果数据库。数据库的建立有两种方式,一种是利用Delphi提供的BDE或者ADO控件,按照数据集组建+DataSouse+数据控制组件来实现数据库连接;一种是动态建立数据库连接。前者具有设置简单的特点,但是若用户改变了安装程序所在文件件名称或者盘符,会造成链接错误;所以本文采用后者,就是当需要链接数据库时,不必在窗体上放置控件,而是通过代码动态建立链接,在代码中实现链接所需路径、协议等参数,可以跟踪可执行安装文件来确定安装路径,链接结束后自动关闭。相关代码如下:

3 算例验证

为了验证本软件的实用性和有效性,搭建了1个含分布式电源的电网,对其进行了无功规划优化计算和无功运行优化计算,得出了该算例的无功规划和运行优化方案。

(1)电网基本情况

节点1为平衡节点,电压为220 kV,节点15和17分别接入2个分布式电源,本算例将分布式电源设置为PQ节点,用以模拟输出有功和无功为定值的分布式电源。电网母线基本参数如表1所示,PG为有功出力,MW;PL为有功负荷,MW;QL为无功负荷,Var。输电线路参数如表2所示,采用标幺值进行计算,基准功率取100 mVa。系统单线图拓扑见图3。

(2)无功规划优化

为了有针对性的对电容器位置进行规划,将可调变压器档位投到基本档位。优化前节点电压幅值如表3所示。从表3可以看出,未加装滤波器时,全网仅有节点1和节点15电压幅值在1.0及以上,大部分节点的电压幅值在0.9以下。进行无功规划优化计算后,得出电容器配置方案如表4所示。优化后各节点电压幅值如表5所示。

从表5可以看出,优化后的节点电压普遍提高,所有节点电压幅值都在0.9以上,且很多节点电压都超过了1.0。

(3)无功运行优化

无功运行优化主要用来验证电容器投切组数和变压器分接头优化方案的有效性,因此,假定在节点25处(母线额定电压10 kV)配置有电容器投切装置,一共5组,每一组电纳标幺值为0.04,优化前的节点电压和规划优化前的节点电压相同,在此不再列出。优化后三绕组可调变压器投切方案如表6所示,电容器投切方案如表7所示,无功优化后的节点电压见表8。

从表6~表8的优化结果可以看出,优化后的节点电压普遍提高,仅有节点19电压幅值低于0.9,由此可见无功优化效果明显。

4 结论

本文较系统、详细地论述了无功优化计算软件的现实需求,并对软件开发所必须的COM技术、数据库技术、矢量图形技术、Delphi控件编程技术进行了介绍。开发出1套能够适用于分布式电源接入的无功优化计算软件,最后通过算例分析验证了软件中无功规划优化和运行优化功能的可行性和有效性。本文的研究为电力系统计算软件开发探索出了另一条有效的途径。

摘要:传统电力系统计算软件如PSASP等大多具有网损计算功能,而没有专门的无功优化计算功能,针对这一现实需求,基于Matlab2009a和Delphi7.0等开发平台,运用面相对象的编程思想,开发了满足电力系统无功运行优化和无功规划优化需求的可视化计算软件。单线图绘制平台利用Delphi7.0中的矢量图形绘制控件TCAD开发,核心计算程序采用Matlab2009a编制M文件实现,然后通过COM技术实现核心计算程序在Delphi中以控件形式嵌入;该软件具有潮流计算,无功规划优化和无功运行优化等计算功能,最后通过实例验证该软件具有操作简单,优化效果较好,实现了无功优化可视化计算的开发目标。

关键词:COM技术,无功优化,遗传算法,可视化

参考文献

[1]陈健,刘明波,曾勇刚,等.面向对象的无功优化软件开发与应用[J].电力自动化设备,2003,23(3):78-81.

[2]文本颖,谈顺涛,袁荣湘,等.基于COM技术的SCADA系统数据库设计与实现[J]电网技术,2004,28(14):19-22.

[3]王建元,师旭,师耀林,等.VB与Matlab混合编程在电力系统短路计算中的应用[J].电网技术,2007,31(2):143-146.

[4]熊来红,刘会金.静止同步补偿器建模及改善配电网电能质量仿真分析[J].陕西电力,2010,38(6):45-49.

[5]李晶,王素华,谷彩连.基于遗传算法的含分布式发电的配电网无功优化控制研究[J].电力系统保护与控制, 2010,38(6):60-63.

[6]Delphi7程序设计与开发大全[M].北京:人民邮电出版社,2004.

[7]杨素琴,韩念杭.计及调节次数的变电站动态电压无功优化控制的研究[J].电力系统保护与控制,2010,38(24): 131-136

[8]ZHAO H W,XIE Y S.Improved Genetic Algorithm for Reactive Power Optimization of Distribution System[C].6th International Conference on Advance in Power System Control,Operation and Management,IEEE,2003,(1 ):157- 161.

[9]刘海燕,姜麟,胡珂.基于Delphi和Matlab的混合编程方法在交通流量估算中的应用[J].微计算机应用,2009,30 (6):62-66.

遗传算法原理和应用 篇6

物流配送是现代物流管理中的一个重要环节,特别是对于有大量服务对象的实体,例如拥有上千个客户的公司。物流配送业务中的优化决策问题的核心是如何对车辆进行调度。合理分配各车负责的售货点,选择配送路径,从而达到加快配送速度,提高配送质量,降低成本,提高经济效益的目的。

在此需要解决如下问题:

有m个送货车S1,S2,…,Sm,各自具有自已的装载量和行驶距离限制,可载着某种物资从各自当前的位置出发对n个售货点:T1,T2,…,Tn进行送货并返回原出发地,各售货点具有各自的需求量,要求每个售货点只能由一个送货车来送货,并且单位货物的卸货时间相同,即卸货时间与货物量成正比。现要找到一种最佳的送货策略,对这些送货车的送货地点和送货路线进行统筹分配和规划,使得所有货车都送完货返回出发地所用时间最短。

2 遗传算法与禁忌搜索

近年来发展起来的遗传算法(GA)引起了各学科人员的普遍兴趣,用来解决NP难度问题效果尤为显著。

“物竞天择,适者生存”,是进化论的基本思想。遗传算法就是模拟自然界想做的事,它以一种群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传操作;参数编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要素组成了遗传算法的核心内容。作为一种新的全局优化搜索算法,遗传算法以其简单通用、健壮性强、适于并行处理以及高效、实用等显著特点,在各个领域得到广泛应用,取得良好效果,并逐渐成为重要的智能算法之一。

但是,由于遗传算法只需调整种群的几个参数而不是单个的解,并且遗传算法存在早熟收敛和盲目搜索问题,因此在寻找最优调度的过程中,可通过把禁忌搜索算法独有的记忆思想引入到遗传算法的搜索过程中,构造新的重组算子,并把禁忌搜索算法作为遗传算法的变异算子来实现。

禁忌搜索的思想最早由Glover提出,它是对局部领域搜索的一种扩展,是一种全局逐步寻优算法,是对人类智力过程的一种模拟。禁忌搜索算法的特点是采用了禁忌技术,所谓禁忌就是禁止重复前面的工作。为了回避局部领域搜索陷入局部最优的不足,禁忌搜索算法用一个禁忌表记录下已经到达过的局部最优点。在下一次搜索中,利用禁忌表中的信息不再或有选择地搜索这些点,以此来跳出局部最优点。禁忌搜索机制是通过设置近期操作的存储结构(禁忌表),以当前解邻域中未在禁忌表中出现或满足藐视准则的最佳状态来替换当前状态,而并不在乎其性能是否优于当前解,按此原则产生一定的突跳性以避免局部极小,同时也避免迂回搜索的出现。

在此,提出GATS算法来求解具有时间和距离限制的多车物流配送问题,利用GA提供并行搜索主框架,结合遗传种群进化和TS较强的具有避免迂回搜索能力的邻域搜索,实现快速全局优化。既保持了GA具有多个解的优点,又提高了GA的爬山能力。

3 算法设计

3.1 基因编码

每条基因用所有送货车和售货点的一个排列表示,代表各辆售货点的分配方案和游历顺序。各送货车号用A,B,…字母表示,各售货点序号用1,2,…整数表示。

根据各送货车和售货点的初始化顺序,分别给送货车排号A,B,…用三维数组存储其编号、装载量、最大行驶距离;给各售货点排号:1,2,…用二维数组存储各售货点序号和需求量。具体结构如表1所示。

3.2 初始化种群

若送货车数目为M,售货点数目为N,将所有售货点标识组成一组任意排列,生成N个售货点标识的一个序列,并将第一辆送货车标识A插入首位,在2到(N-1)自然数中随机产生(M-1)个数,按从小到大的顺序排序,按一定策略将送货车标识顺次插入序列的相应位置,组成一个排列,并保证排列中不能有两个连续送货车标识位,基因的第一个染色体为第一辆车的标识,即每条基因第一个染色体均为第一辆送货车标识A,同时确保各辆送货车不超过其最大装载量和最大距离限制。

3.3 计算基因适应值

计算各送货车的送货游历时间加上送货中途卸货时间(TTA,TTB,TTC,TTD),取最后完成送货任务的送货车的送货加卸货时间,即求取最大值:Max(TTA,TTB,TTC,TTD)。用一个较大的固定值WMAX来减去该最大值,作为该基因的适应值f。

表示为:f(基因适应值)=WMAX-Max(TTA,TTB, TTC, TTD)

3.4 基因有效性检验

基因有效性检验是用于判定某基因是否满足问题的限制条件,各售货点需求是否均得到满足,各送货车是否超出行驶距离限制或时间限制,或送的总货物是否超出装载量。

3.5 基因的杂交和变异

循环进行杂交和变异操作求取最终解决方案步骤简述为将每代种群中淘汰操作后剩下的基因直接复制,进入下一代,设基规模为SUBPOP生成1到SUBPOP之间的随机数Y,Z则将种群中第Y,Z两个染色体作为交叉的父代,然后对该对双亲进行交叉操作,产生两个子代。进行有效性判断,有效则用禁忌搜索来进行变异,产生新的局部较优的有效的基因,如此循环增加子代种群个数组成新一代既定规模的种群。如此循环,直至达到最大的遗传代数,终止循环,找到适应值最大的基因,进行最合理化整理最终得到的染色体序列即为问题的最优解。

3.5.1 杂交

种群由上一代遗传到下一代需要淘汰掉一些基因,同时产生一些新的基因补充进来以维持种群规模。在此介绍的方法是:将父代染色体按适应值大小排序,根据种群规模和淘汰率计算出需要淘汰的基因个数,将适应值小的基因淘汰掉,然后通过随机选择父代进行杂交产生有效的子代,然后进入下一步的变异操作。

3.5.2 变异

在通过杂交产生基因后,再通过禁搜索进行变异,搜索到邻域内的局部最优解加入子代种群中。在此介绍的禁搜索中,将禁忌长度设为t,使t*t=N。藐视准则设定为基于搜索方向的准则。若禁忌对象上次被禁时使得适配值有所改善,并且目前该禁忌对象对应的候选解的适应值优于当前解,则对该禁忌对象解禁。禁忌频率设定为记录由基因中某个染色体出发后回到该染色体的迭代次数。终止条件设定为最大迭代步数。

4 结语

本文介绍的多车物流配送问题的求解方法简要概述为:首先产生初始种群,按照适应值排序,根据淘汰率淘汰掉适应值小的基因,剩下的利用禁忌搜索算法经过变异操作进行优化后加入子代种群中,在当前规模的子代种群中随机选取一对父代进行遗传,再用禁忌搜索算法进行变异,然后将新个体加入子代。重复操作产生子代个体,直到满足种群规模。然后再对子代按适应值进行排序,根据淘汰率淘汰掉适应值小的基因,再进行杂交和变异产生子代,如此循环操作,直到遗传代数达到其代数限制后,终止循环,找出适应值最大的基因,进行最合理化整理即为目前最优送货方案。

参考文献

[1]王凌.智能优化算法及其应用.清华大学出版社.

[2]蔡临宁.物流系统规划----建模及实例分析.机械工业出版社.

遗传算法原理和应用 篇7

关键词:量子遗传算法;多目标分配;最优化

中图分类号:TP18 文献标识码:A 文章编号:1674-7712 (2012) 12-0176-01

一、引言

遗传算法不同于传统寻优算法的特点在于:遗传算法在寻优过程中,仅需要得到适应度函数的值作为寻优的依据;同时使用概率性的变换规则,而不是确定性的变换规则;遗传算法适应度函数的计算相对于寻优过程是独立的;算法面对的是参数的编码集合,而并非参数集合本身,通用性强。它尤其适用于处理传统优化算法难于解决的复杂和非线性问题。[1]

目前,GA已经在很多领域得到成功应用,但随着问题规模的不断扩大和搜索空间的更加复杂,GA在求解很多具体问题时往往并不能表现出其优越性。于是,近年来便出现了遗传算法与其它理论相结合的实践,其中遗传算法与量子理论的结合是一个崭新的、极富前景和创意的尝试。

量子遗传算法QGA是量子计算特性与遗传算法相结合的产物。基于量子比特的叠加性和相干性,在遗传算法中借鉴量子比特的概念,引入了量子比特染色体。由于量子比特染色体能够表征叠加态,比传统GA具有更好的种群多样性,同时QGA也会具有更好的收敛性,因此在求解优化问题时,QGA在收敛速度、寻优能力方面比GA都将有较大的提高。QGA的出现结合了量子计算和遗传算法各自的优势,具有很高的理论价值和发展潜力。

本论文提出用量子遗传算法处理和解决多目标分配问题,为多目标问题的解决提供一种新的思路。

二、量子遗传算法

在传统计算机中,信息存储是以二进制来表示,不是“0”就是“1”态,但是在量子计算机中,充当信息存储单元的物质是一个双态量子系统,称为量子比特(qubit),量子比特与比特不同之就在于它可以同时处在两个量子态的叠加态,量子进化算法建立在量子的态矢量表述基础上,将量子比几率幅表示应用于染色体的编码,使得一条染色体可以表示个态的叠加,并利用量子旋转门更新染色体,从而使个体进达到优化目标的目的。

一个 位的量子位染色体就是一个量子位串,其表示如下:

其中 。在多目标优化中,一个量子染色体代表一个决策向量,在量子态中一个 位的量子染色体可以表达 个态,采用这种编码方式使得一个染色体可以同时表达多个态的叠加,使得量子进化算法比传统遗传算法拥有更好的多样性特征。

为了实现个体的进化,经典进化算法中通过染色体的交叉、变异操作推进种群的演化,而对量子进化算法而言,量子染色体的调整主要是通过量子旋转门实现的,算法流程如下:

(1)进化代数初始化: ;

(2)初始化种群 ,生成并评价 ;

(3)保存 中的最优解 ;

(4) ;

(5)由 生成 ;

(6)个体交叉、变异等操作,生成新的 (此步可省评价);

(7)评价 ,得到当前代的最优解 ;

(8)比较 与 得到量子概率门 ,保存最优解于 ;

(9)停机条件 当满足停机条件时,输出当前最优个体,算法结束,否则继续;

(10)以 更新 ,转到4)。

三、基于量子遗传算法的多目标分配应用

如今为了满足市场的需要,很多工厂的生产种类多、生产量大,从而设置了不同的生产车间,根据产品的性质分配生产车间合理与否直接影响工厂的经济收益,这同样可采用遗传算法的目标分配方法进行分配。

模型构建:设工厂有i个生产车间。 为在第i个车间生产第j种产品的收益, 为第j种产品的需求量;如果第j种产品被选中,则 为在第i个车间生产该产品的总收益。由题意知为求解 最大问题。

仿真实例:设有10个生产车间,要生产15种产品,用Matlab程序编程,设定40个粒子,迭代200次,代沟0.9。运行结果如下:

此图表明经200次迭代后的目标分配方案为:第1种产品由第3个车间生产,以此类推,车间5生产第2种产品,车间8生产第3种产品,……。次方案对应的车间总收益值为2.7030e+003,成功进行了多目标分配问题的解决。

四、结论

基于量子遗传算法的多目标分配,为多目标分配突破传统寻优模式找到了一个可行的解决方法。根据这种方法实验,仿真结果可以看出,基本符合要求,并且能够在一定的时间内得到最优的分配方案,因此,本文在探索多目标分配问题上找到了一种新的解决思路。

参考文献:

[1]吉根林.遗传算法研究综述[J].计算机应用与软件,2004,21(2):69-73

[2]肖晓伟,肖迪.多目标优化问题的研究概述[J].计算机应用研究,2011,3,28(3):805-808

[3]原银忠,韩传久.用遗传算法实现防空导弹体系的目标分配[J].火力与指挥控制,2008,3,33(3):80-83

[4]郭张龙,李为民,王刚.基于遗传算法的目标分配问题的研究[J].现代防御技术,2002,6:0172-0180

[5]孙祥,徐流美.matlab7.0基础教程[M].北京:清华大学出版社,2005

上一篇:IP流量分流下一篇:肱骨髁间粉碎骨折