项目代码地址
引入概念,说明问题,讲解论文,提出方案
对综述的引用说明,在老师给的综述中,文献调研时间是2019,从技术的发展历程角度考虑,本文只作部分引用,更多地倚靠2020左右地文章,因为2020是深度强化学习的爆发点。
神经网络
马尔可夫算法
动态规划
强化学习
模拟退火
蒙特卡罗树搜索与神经网络
深度强化学习(DQN)
以下参数问题对应的解决方案我直接在开头摆出,让各位有一个认知,从逻辑顺序上讲,不应该这么放置,但是从了解问题的过程来说,应该先将需要解决的问题做一个详细的说明.
有文献将电梯的节能指标作为单独评价指标是出于电梯的启动与停止会造成大量的能量消耗,从而引出了电梯决策中的停层决策,考虑到本次应用电梯的特性(效率优先)以及花的时间越少,浪费的电能也越少这一思路,在下面的指标中我将停靠与待服务合并设定为无方向,在决策函数中将决策简化为上与下,剩下交给计算机去判断。
向上需求(对行动函数进行设置,或者增大变换电梯运送时间的惩罚值)
向下需求(对行动函数进行设置,或者增大变换电梯运送时间的惩罚值)
禁停楼层(次要参数,暂不考虑。可以通过设置黑点解决)
电梯状态
(上,下,静止,静止就是无方向)也有文献以上行,下行,停靠,待服务为状态,考虑到目前的计算方式是先停止电梯的服务(后面会提),我们将停靠与待服务合并设定为无方向
当前楼层
门开比例(计算机的自主决策问题,略)
箱内按键楼层(预约制电梯,不管)
最高楼层(环境设置问题)
调度楼层(计算机的自主决策问题,略)
是否超载(预约制电梯,在设计多少人按,多少人坐的时候就要考虑,严格来说,是另一个模块的算法)
当前速度(电梯型号一致,我们的重点是用哪部电梯而不是用什么样的电梯速度)
调度方向(在调度的前一刻的环境我们是默认静止的)
电梯门正在打开(设为不可用电梯)
最大速度(电梯型号一致,我们的重点是用哪部电梯而不是用什么样的电梯速度)
承载重量(预约制电梯,在设计多少人按,多少人坐的时候就要考虑,严格来说,是另一个模块的算法作为补充方案的一种,在后面会有所提及)
电梯门正在关闭(设为不可用电梯)
运行方向(环境问题)
最大载重预约制电梯(在设计多少人按,多少人坐的时候就要考虑,严格来说,是另一个模块的算法,后面的子方案会予以考虑,这就引申出了另一个问题,究竟是算法论文还是系统架构论文,还是都予以延伸)
算法是人写的,推导的思路由人决定,但算法反应的结果不一定是符合人逻辑推演的结果,即,在限定条件下的最优方案有不符合人的逻辑的可能,对于人的逻辑有多大的容忍则是算法的适应性问题
有文献把电梯到目标点的距离值作为一种计算时间长短的媒介,这里我打算单纯地从计算几种方案的最短时间考虑,并在行动函数中设定只能单一方向解决,还有一个思路就是通过设立惩罚点,一定的惩罚系数内允许电梯的上与下(比如只间隔一个楼层时) 这就是目标的设定问题,究竟是总体效率最优还是说为了满足人的需求,做一定的妥协,进一步可以思考,电梯的权限,比如,判断为VIP的电梯不接受这样的干涉,判断为总经理的电梯允许一层楼的干涉。 同时也可通过对场景的限定使得算法有一个较好的实验优势
以下的参数有我们的目标决定,总体等待时间最短,还是有条件的等待时间最短,还是遵循人类的思维,对单一方向是否坚持
电梯调度算法包含三个决策算法——停层决策算法、方向决策算法和运行决策算法。单梯智能体在不同的决策时刻调用不同的决策算法来确定本梯是否把前方最近楼层的呼梯信号拉给自己响应。这三个决策算法的调用时刻和决策目标如表
在新方案中,我们将决策简化为上与下,剩下交给计算机去判断
考虑到我们是高楼层电梯,我们以时间和效率为第一
这里有两个指标
一个是平均花费时间
一个是总花费时间
这两个指标是两种目标函数的设计方式对于这方面的判断我认为可以都做实验,出不同的论文。
从落地的角度来说,时间评判的指标会因电梯搭载的人物的不同而有所不同
新方案是将电梯调度问题视为单智能体竞争问题,从这个角度来说,这里的介绍仅供大家对于一般思路的参考
○1定义:在建筑设计中,通常将多台电梯以并列或者对列形式配置在一起,构成电梯群,并对其实施群控制,集中为大楼提供服务;也就是将安装在建筑物内的3台或3台以上的一组电梯作为一个有机整体,使用一个自动控制系统调度每一台电梯运行,这就是电梯群控系统(Elevator Group Control System,简称EGCS)。
○2特点:EGCS是一个实时性非常强的系统,需要不断收集电梯群状态信息(当前位置,运行方向,轿厢负荷等)和层站召唤信息,依据一定派梯策略,选择最合适电梯,去应答层站召唤。
○3目的:提高垂直交通系统运行效率,提供较短候梯时间和运行时间为乘客提供服务,提高对乘客服务质量,减少能耗。
○4研究背景:传统群控算法只有一个目标,即最小候梯时间。现代高层建筑一些特定交通模式下,不可能要求每部电梯服务每个楼层,因为这样会使每一部轿厢在其运行过程中停站数量大大增加,使电梯运行周期变长,系统总体性能随之变差。因此电梯群控技术研究具有重要现实意义。
○5电梯服务过程描述:在随机时间和楼层,乘客随机到达电梯前厅,发出上行或下行层站呼叫,直到乘客进入轿厢按下轿厢呼叫按钮之前,其目的层是不确定的,而调度程序必须以一种基于全局系统优化方式,通过选择轿厢运动方向,对所有指派给它当前方向上的层站呼叫提供服务。
○6电梯群调度问题实质:一个在变化环境下的在线调度、资源配置及随机最优控制的组合优化问题,对该问题复杂性研究表明, 电梯群调度问题属于 NP-hard 问题。电梯指派发生时,重要性能指标是乘客平均候梯时间、系统服务时间和系统响应时间。电梯调度目标是对群控系统时间序列性能指标优化。
电梯群控系统特性主要表现为不确定性、信息不完备性、扰动性、多目标性几个方面。群控系统归根结底属于若干电梯之间任务分配及调度问题,复杂程度由系统所运行环境与自身特性所决定。
○1电梯运行过程中包含着许多不确定性,体现在以下几个方面:呼梯信号产生时间和发生层数不确定、各层站候梯人数不确定、乘客目的楼层不确定。
电梯交通系统中乘客需求产生具有随机性,这种随机性主要体现在乘客到达层站时间随机、乘客所在起始层随机、乘客目的层随机等,但同时这些随机性也具有一定约束,例如在上行高峰模式下,乘客起始楼层大多数稳定在大厅层站位置;在上班时间范围,选择某一层作为目的层的人数基本稳定。因此电梯交通系统随机性表现为具有一定规律随机性(可以通过随机图形化解决)。
这些不确定因素对群控系统调度派梯、预测时间等造成直接影响,群控算法目标就是使控制系统在不确定性因素存在情况下,给出最优控制效果。
○2群控系统不完备性表现在:不能够准确获取当前轿厢中乘客数量;乘客在进入轿厢之前没有输入目标层信息,做出派梯策略所依赖乘客数据信息不完备。
○3群控系统中扰动可以出现在任意时间,例如:乘客输入错误呼梯请求,需取消错误输入并进行新呼梯请求;乘客在出入轿厢时保持较长时间开门状态,使得该时段内派梯策略不能达到预计服务效果等。
○4群控系统含有若干控制目标,各控制目标之间联系相互交错,所以设计群控系统时需对
控制目标进行综合考虑,控制目标表现形式多样化,主要包含以下几个方面:
平均候梯时间短。候梯时间是指产生乘梯需求开始,至群控系统指派的轿厢到达该乘客所在位置,响应其服务请求时所耗费时间。相关资料证明,乘客在等候电梯到达时心理焦虑指数与等候时间长短成正比,当等候时间超过一分钟,其心理焦虑度会快速增加。候梯时间平均值是衡量整个电梯群控制性能优劣重要指标,体现群控系统作为整体,对召唤请求服务水平。
平均乘梯时间短。乘梯时间是指乘客从起始位置进入轿厢开始,至到达终点位置所消耗时间。乘梯时间长短同样会影响乘客舒适度,乘坐过程中轿厢频繁开关门,可能导致乘坐至顶层乘客较为焦虑,因此乘梯时间也应维持在合理范围之内。
维持较高乘客输送能力。输送乘客是电梯群控本职任务,需要对各种不同客流交通情况做出细致分析,在任何情况下均能做出合适派梯策略,使乘客运输能力始终保持在较高水平。例如在上行高峰时段电梯上行至最高层之后,无论是否有呼叫请求,均自动返回底部楼层等候,使得下一批乘客到达时不必经历过长等候时间。(次要目标,高级电梯自然是以结果最快为准,插队算法另计)
保持适中轿厢拥挤度。轿厢内过度拥挤同样影响乘客乘梯满意度,而且会加重轿厢负荷,带来更大机械磨损。(次要目标。高级电梯)
系统能耗较低。电梯能耗与所采用硬件、机械结构、控制算法等因素有关,如最开始组电动机-发电机能耗很大,且控制方式简陋,效率较低;而现在多采用无齿轮电机,利用 VVVF 变频驱动方式,使得电梯能耗大大降低。控制算法对系统能耗影响也不容小觑,电梯停靠次数控制、速度切换控制等均与系统能耗有直接关联,合理设计群控系统与调度方式是降低电梯能源消耗重要手段。(次要目标。高级电梯)
交通模式的设计的目的有两个方面,
第一个方面是为了在乘客多数是为了上还是下方面设计(这一问题需要在子方案种探讨,主要是奖励函数与决策函数的设计问题,同时也牵扯到两个目标,是总体最优,还是有条件的局部最优,这个也与电梯本身的大切口与小切口有关,大切口自然就是普通电梯,小切口则是我们设计的电梯)
第二个方面是通过客流量仿真让电梯停在合适的位置,从而达成节能的目的
而我的推论则是,无论是哪种,都是效率优先,肯定是时间指数越短越好,因为花的时间越少,浪费的电能也越少,那么,我们在评价指标处就要有所取舍,比如(仅仅是比如):平均候梯时间、长候梯率、能耗统计值的时候,我们就不会把能耗统计值作为指标的一种。根据总体最优,还是有条件的局部最优的不同,它对应的评价计算指标也应该有所不同
进一步,考虑到蒙特卡洛搜索树的特性,我将交通模式的定义与奖励函数,行动函数合并(具体方法后续提及),下面的交通模式与特性是传统视角的考虑,这里稍作介绍,供大家了解.
电梯群控系统考虑问题
电梯动态特性:额定速度、加速度、运动时间、加载/卸载乘客数量;
评价准则:平均候梯时间、长候梯率、能耗统计值;
评价方法:主要有仿真方法、模糊专家系统方法和神经网络方法;
层站呼叫指派方法(HCAM):当一个新的层站呼叫发生时,HCAM 需完成3个步骤: 输入当前交通条件、性能预测及确定服务轿厢;
交通量自适应性:用已知的当前交通数据预测层站呼叫的发生情况,估计可能指派而后作出决策;
再指派能力:根据最新系统条件重新作出指派。
○2电梯交通模式(初步看来可以无视,后续电梯的放置可以考虑)
上行高峰交通模式:所有乘客均由建筑物底层(基站)大厅进入轿厢,当电梯把乘客送至各自目的层后,直接返回基站,重复执行运送基站乘客的工作;
午餐交通模式:所有乘客到底层用餐之后返回各自的楼层;
下行高峰交通模式:所有乘客都运行至基站;
层间交通:这种模式主要特点为上行和下行乘客所占比例大致相当,且乘客数量具有随机性,各层之间交通需求基本平衡,此模式情况下不能对乘客服务需求层做出准确预测。
空闲交通:楼层客流稀少,不足以使用全部电梯,而让其余电梯正常服务。
其中上行高峰与下行高峰不是简单顺序倒置,下行高峰有多个到达( 起始) 楼层,而只有一个目的层;上行高峰仅有一个到达楼层而有多个目的楼层,这种区分意义在于准确估计乘客平均候梯时间。交通模式识别是电梯群控系统一项重要内容,是调度策略优化必要前提。
○3其他定义
上行交通模式:当主要交通流是上行方向,即大部分乘客呼梯楼层在建筑物基层,目的楼层为以上各层的情况,被定义为上行交通模式。
下行交通模式:当主要交通流是下行方向,即大部分乘客是从各个楼层乘梯下行到基层离开建筑物,这种情况被称为下行交通模式。
层间交通模式:当上行和下行乘客数量大致相同,这种情况定义为层间交通模式。
层间交通模式分为以下几种情况:
□1当主要交通流朝着除基层之外某一层而来或从该层去往其他楼层,称为两路交通模式;
□2当主要交通流是朝着某两层而来或由某两层去往其他各楼层,称为四路交通模式;
□3当上行和下行乘客数量大致相同|起始楼层和目标楼层比较分散,称为随机层间交通模式。
□4空闲交通模式:当大楼交通流稀少,这种情况被称为随机交通模式。
国外主要采用智能控制技术对电梯群控系统进行研究,主要有以下几种方法。
○1基于专家系统电梯群控
上世纪60年代以来,随着各种控制方法的提出和研究,越来越多优秀控制方法被用于生产实践中来,电梯群控专家系统就是那时开始兴起的一种人工智能应用领域中的新兴算法。电梯群控专家系统组成主要包括数据库,推理机,知识库,解释部分以及知识获取部分。专家系统工作的一些情况,检测得到的一些数据都被存放在数据库中;专家思维和知识形成控制规则存放在数据库中;电梯专家系统知识和经验通过知识获取部分获得。
但专家系统还有一些不足有待解决,电梯系统是个复杂非线性系统,但专家系统知识和经验存在着局限性,控制规则也存在一些缺陷,对于楼层不高建筑或内部结构较简单楼层是没影响的,但如果控制对象是一个高层或者比较复杂的综合大楼,专家设想不可能与实际建筑物吻合,这时单纯采用专家控制方法就不能很好应用在建筑物中,控制效果需进一步完善。
专家系统因为是人的思维本身就存在着相当的缺陷,这一缺陷在自然语言处理领域已经被证实,所以,在实验设计的时候,应将其列为次要的比较对象
○2基于模糊控制电梯群控
模糊控制近年来在自动控制领域也取得很大进展与突破,并且已经有一套成熟理论知识,在实际应用中,效果也非常明显,特别是模糊控制综合专家系统特点,从中提取经验,对于一些非线性,大复杂性控制对象能表现出很好控制效果。
电梯系统本身是一个非线性,大复杂性系统,电梯运行过程中有着很多不确定因素,因此电梯系统运行状态很难准确预测,此时引入模糊控制就可以很好解决这些难题。模糊数学隶属函数可将复杂模糊问题转化为简单清晰形式求解,这样就可以保证对每个派梯方案都有一个综合而又全面评价。上世纪80年代,富士通公式曾研发出FLES-8800系统就带有模糊控制器技术,并将模糊控制理论和专家系统理论相结合,对该电梯系统运行情况和状态利用多种评价指标来完成各种任务多级决策。运用这种控制方法,可以使乘客平均候梯时间减少20%左右,超过一分钟长时间候梯率(LWP)也减少60%左右,轿厢预报准确率提高70%左右。
但在实际工程中,模糊控制也有不足之处,要想使预先输入控制规则达到预想效果,专家想象建筑物结构必须要跟实际建筑物差别不大,这点很难达到;还有采用模糊控制方法需要大量仿真实验才能调整,确定隶属度函数,这样会使运算量加大,耗费大量时间精力。
○3基于遗传算法电梯群控
上世纪90年代初曾研制出一种基于遗传算法FI-3400系列电梯群控算法,遗传算法是一种自适应概率性搜索和优化算法,它来源于抽象生物进化过程,该算法可以智能根据交通流变化而变化,在线实时调整控制参数,并且可以在多个呼梯信号情况下搜索到最优派梯方案,这样可以达到多目标最优调度,即保证系统稳定性和及时性,又达到最大节能效果。遗传算法在解空间上采用多点方式并行搜索,这样可以获得全局最优解,还避免陷入局部极小解点。
但遗传算法也有不足之处,其搜索速度比其他控制方法速度偏低,因为遗传算法本身具有随机性和概率性,还有就是要获得最优搜索结果,搜索时间肯定会进一步增长。
○4基于模糊神经网络电梯群控
模糊神经网络是模糊控制和神往网络结合,实际上就是利用神经网络来控制模糊系统,然后通过一系列训练来获得其中参数,这样就不用依赖专家事先确定。电梯群控系统由于受到外界干扰等不确定因素影响,要想直接对系统建模是不可能的,但是神经网络学习器可以存储并放下各层站所有交通工具,并优化控制变量,然后在模糊控制器自适应性上得到提高,这样可以很好解决待机时长等缺点,并且相比一般控制方法至少可以节能20%以上,可见模糊神经网络控制方法也有很好发展前途。
模糊神经网络不足之处主要是收敛性要依赖于初始条件,还有就是神经网络学习基本上是从专家知识作为出发点,一旦专家知识缺点没有得到应有完善,BP算法也不能得到良好运行。
国内外研究现状(2019以后的研究在本文最后补充)
我国从1986年开始对电梯群控系统进行研究,相对国外讲,起步较晚且技术较落后,在90年代以后对电梯群控系统动态特性进行研究,发表相关论文大多属于概括性原理内容。
近年来,国内对电梯群控系统控制技术研究取得很大发展。国内各大公司都竞相从国外引进先进技术和产品,并致力研究自己产品。具有代表有:上海电梯有限公司在94年研发出电梯群控系统能够有效减少候梯时间,并具有设置服务楼层功能;1996年迅达电梯公司研发出电梯群控系统具有可以改变电梯运行参数特点。
虽然我国对电梯群控系统研究同国外存在着一些差距,但随着我国电梯群控系统研究范围不断扩大,研究层次不断加深,通过我国各大高校以及研究机构研究学者们不断深入研究,一定会获得较大理论成果。
○1专家控制
○2遗传算法控制
○3模糊逻辑控制
○4人工神经网络控制
○5模糊神经网络控制
1.6.1 专家控制系统简介
专家系统是专家知识和经验积累,利用已知知识和经验进行推理分析和判断决策。它由专家经验知识库,推理分析部分,解释部分,知识获取部分组成。通过系统产生若干控制规则,存入知识库中。专家系统用于解决那些不能完全用数学来进行精确描述,表达和计算而要模仿人经验进行处理的问题。系统首先根据已知数据信息,利用知识库专家经验知识,按一定推理规则来实现电梯调度。但对于越来越庞大的电梯群来说,专家系统也有缺点:专家系统更适用于一些电梯数量少,楼层较低建筑物;专家经验要与建筑物电梯群实际情况相对接近,才能获得较好控制效果。
专家控制系统(Expert Control System,ECS)又名基于知识的系统(Knowledge-based System)。专家控制系统作为一个人工智能和控制理论交叉学科,即是人工智能领域专家系统(ES)一个典型应用,也是智能控制理论一个分支。专家控制既可包括高层控制(决策与规划),又可涉及低层控制(动作与实现)。专家控制系统基本结构见图1-1 专家控制系统基本结构。
图1-1 专家控制系统基本结构
与专家系统相似,整个控制问题领域知识库和一个体现知识决策的推理机构成专家控制系统主体。
关键因素:知识库内部组织结构可采用人工智能中知识表示的合适方法。一部分知识可称为数据,例如先验知识、动态信息、由事实及证据推得中间状态和性能目标等。数据常常用一种框架结构组织在一起,形成数据库。另一部分知识可称为规则,即定性推理知识,每条规则都代表着与受控系统有关经验知识,它们往往以产生式规则(if……then……)表示,所有规则组成规则库。在专家控制系统中,定量知识,即各种有关解析算法,一般都独立编码,按常规程序设计方法组织。
推理机基本功能在于按某种控制策略,针对当前问题信息,识别和选取知识库中对解决当前问题有用知识进行推理,直至最终得出问题推理结果。
1.6.2 遗传算法简介
基于遗传算法灵感来源于生物学进化理论,通过模拟生物进化,仿真其基因选择和遗传规则,据此研究而来适用于对概率性事件描述和优化算法。遗传算法属于并行多点式结构,这种结构能得到最优全局解,可避免产生局部极小值,因此遗传算法受限较少,只需要调整目标函数,不需要依赖专家经验就能处理基于多个目标楼层的优化群控算法。
遗传算法( Genetic Algorithm,GA)主要包含四个步骤:选择,交叉,变异,终止条件。
○1选择
从群体中选择优胜个体,淘汰劣质个体的操作叫选择。选择算子有时又称为再生算子(reproduction operator)。选择的目的是把优化个体(或解)直接遗传到下一代,或通过配对交叉产生新个体,再遗传到下一代。选择操作是建立在群体中个体适应度评估基础上,目前常用选择算子有以下几种:适应度比例法、随机遍历抽样法、局部选择法。其中轮盘赌选择法 (roulette wheel selection)是最简单也是最常用选择方法,在该方法中,各个体选择概率和其适应度值成比例。设群体大小为N,其中个体i适应度为fi,则i被选择概率为P_i,计算公式为: P_i=f_i/∑_(j=1)^N▒〖f_j 〗
显然,概率反映了个体i适应度在整个群体个体适应度总和中所占比例。个体适应度越大,其被选择概率就越高,反之亦然。计算出群体中各个个体选择概率后,为了选择交配个体,需要进行多轮选择。每一轮产生一个[0,1]之间均匀随机数,将该随机数作为选择指针,来确定被选个体。个体被选后,可随机地组成交配对,以供后面交叉操作。
○2交叉
在自然界生物进化过程中起核心作用的是生物遗传基因重组(加上变异)。同样,遗传算法中起核心作用的是遗传操作交叉算子。所谓交叉,是指把两个父代个体部分结构加以替换重组,而生成新个体的操作。通过交叉,遗传算法搜索能力得以飞跃提高。
交叉算子根据交叉率,将种群中两个体随机交换某些基因,产生新基因组合,期望将有益基因组合在一起。
○3变异
变异算子基本内容是:对群体中个体串某些基因座上基因值作变动,依据个体编码表示方法不同,可以有以下算法:
□1实值变异
□2二进制变异
一般来说,变异算子操作基本步骤如下:
◇1对群体中所有个体,以事先设定变异概率判断是否进行变异;
◇2对进行变异个体,随机选择变异位进行变异。
遗传算法引入变异目的有两个:
○1局部随机搜索能力。当遗传算法通过交叉算子已接近最优解邻域时,利用变异算子这种局部随机搜索能力,可以加速向最优解收敛。显然此种情况下,变异概率应取较小值,否则接近最优解积木块会因变异而遭到破坏。
○2可维持群体多样性,以防止出现未成熟收敛现象,此时收敛概率应取较大值。
遗传算法中,交叉算子因其全局搜索能力,而作为主要算子;变异算子因其局部搜索能力,而作为辅助算子。遗传算法通过交叉和变异这对相互配合又相互竞争操作,使其具备兼顾全局和局部的均衡搜索能力。所谓相互配合,是指当群体在进化中陷于搜索空间中某个超平面,而仅靠交叉不能摆脱时,通过变异操作,有助于这种摆脱。所谓相互竞争,是指当通过交叉已形成所期望积木块时,变异操作有可能破坏这些积木块。如何有效配合使用交叉和变异操作,是目前遗传算法一个重要研究内容。
基本变异算子是指,对群体中个体码串随机挑选一个或多个基因座,并对这些基因座基因值做变动(以变异概率P做变动),(0,1)二值码串中基本变异操作如下:基因位下方标有*号基因发生变异;变异率选取一般受种群大小、染色体长度等因素影响,通常选取很小的值,一般取0.001-0.1。
○4终止
当最优个体适应度达到给定阈值,或者最优个体适应度和群体适应度不再上升,或者迭代次数达到预设代数,算法终止,预设代数一般设置为100-500代。
具体情况见图1-2 遗传算法基本流程图。
图1-2 遗传算法基本流程图
1.6.3 模糊控制简介
模糊控制是一种将模糊理论应用到控制系统中的智能算法,美国L.A.ZADEH教授最先创立模糊逻辑理论。由于电梯系统中具有不确定性和实时变化特征,所以很难精确预测电梯群交通状态。模糊控制与传统方法相比,优点是不仅能够处理硬件系统传递过来的精确信息,还能够处理一些模糊信号和随机不确定信号。模糊逻辑控制缺点显露在自我学习能力差,无法及时跟踪交通模式复杂变化。模糊控制算法具体情况参见图1-3 模糊控制算法示意图。
图1-3 模糊控制算法示意图
模糊控制器中,输入模糊化,模糊推理,去模糊化是实施模糊控制三个主要环节;有时根据这三个环节作用,分别称为:模糊器,模糊推理机,解模糊器。
1.6.4 人工神经网络简介
人工神经网络(Artificial Neural Network,简称ANN)依据和模仿人大脑工作方式建模,网络结构由人工神经元(即信息处理单元),根据有规律网络结构彼此连接组成。人工神经网络是一种能够进行复杂计算的人工智能数学模型。人工神经网络这种智能算法,除了具有并行计算能力,同时还能进行自组织学习,容错能力强也是其优点之一。人工神经网络需要事先进行多次反复训练学习,系统特性决定其无法有效对专家经验和已知知识库进行描述表达和利用。因此在网络学习训练时,通常先将初始权值赋值为零或随机数,然后在不断学习和训练过程中进行自我调整。虽然能够进行误差反馈训练,但如此一来增加了网络训练时间,并且有可能陷入局部极值,导致训练无法达到预期效果,因此人工神经网络并不适合表达基于规则知识。
人工神经网络模型主要考虑网络连接拓扑结构、神经元特征、学习规则等。目前,已有近40种神经网络模型,其中有反传网络、感知器、自组织映射、Hopfield网络、波耳兹曼机、适应谐振理论等。大致结构见图1-4 基本神经网路示意图。
图1-4 基本神经网路示意图
1.6.5 模糊神经网络技术简介
模糊神经网络是吸取了模糊逻辑和人工神经网络优点,并将两者结合的智能信息处理和控制技术。模糊神经网络首先把已知专家经验和知识进行数学表达,然后用模糊逻辑方法确定模糊规则,再通过神经元计算把模糊规则和推理进行变换,通过神经元之间映射关系,从样本库数据中提取出经验规则,最后将其进行智能化处理和输出。模糊神经网络将模糊逻辑方法和人工神经网络方法优点提取并结合起来,模糊信息由人工神经网络技术来处理计算,充分利用其自组织学习能力。模糊逻辑可以发挥其模糊规则和推理优势,有效发挥专家经验和利用已知数据库,取长补短,这就是模糊神经网络。模糊神经网络与传统神经网络主要区别在于:人工神经网络结构和各神经元是纯粹数学计算关系,而模糊神经网络拓扑结构和神经元权值都具有一定逻辑信息。在构建模糊神经网络模型时,可以根据专家经验和已知知识,并结合问题复杂度和精度,来设定合适网络结构。大体模型参照图1-5 模糊神经网络结构图。
图1-5 模糊神经网络结构图
○1第一层为输入层,缓存输入信号;
○2第二层为模糊化层,对输入信号进行模糊化;
○3第三层为模糊规则层;
○4第四层为模糊决策层,主要针对满足一定条件的量进行分类,并将模糊量去模糊化;
○5第五层为输出层,输出运算结果。
事实上由于需要不同,要求建立模糊神经网络模型也不同,有的主要要求精度高,而有的主要要求模型尽可能简单。典型模糊神经网络有BP模糊神经网络、自适应神经模糊推理系统 (ANFIS)、B样条模糊神经网络、RBF模糊神经网络、模糊小脑模型神经网络 (FCMAC)、随机模糊神经网络(SFNN)、小波模糊神经网络。模糊神经网络有如下三种形式:
○1逻辑模糊神经网络
○2算术模糊神经网络
○3混合模糊神经网络
模糊神经网络就是具有模糊权系数或者输入信号是模糊量的神经网络。上面三种形式模糊神经网络所执行运算方法不同。
模糊神经网络无论作为逼近器还是模式存储器,都需要学习和优化权系数,学习算法是模糊神经网络优化权系数关键。对于逻辑模糊神经网络,可采用基于误差学习算法,即监视学习算法;对于算术模糊神经网络,则有模糊BP算法,遗传算法等;对于混合模糊神经网络,目前尚未有合理算法;不过混合模糊神经网络一般用于计算而不用于学习,不一定需要学习。
模糊逻辑(Fuzzy Logic)是用隶属度代替布尔真值逻辑,区别于经典二值逻辑。所有命题并不采用绝对二值表达,而是采用隶属度来更灵活表达,这种表达方式用来描述实际生活中模糊概念更加具有普适性。
模糊理论初意是用隶属度表示方法,来替代消除二值之间非此即彼对立,这样才能有效表述不精确概念,使其切合人类思维习惯。模糊理论快速发展,使得模糊推理与模糊决策开始应用到计算机。在二值逻辑运算中,一个命题用“1”代表真,“0”代表假,不是真就是假。隶属度则是对命题模糊概念表示,例如用隶属度值表示命题真的程度,取值区间为[0,1];隶属度值越大表示真的接近程度越高,值越小表示真的接近程度越低,使表述更加准确。
○1经典集合理论:
域内任何一个元素与集合A映射关系可用如下函数表示:f(x)={█(1,&x∈A@0,&x∉A)┤。
○2模糊集合理论:
给定一个域U,U到[0,1]闭区间内任一映射u_A :U→[0,1] 都确定U中一个模糊集合A,其中u_A称为模糊集合A隶属函数,表示该元素属于该模糊集合程度。如果模糊集合A中元素为x,那么u_A(x)取值范围为闭区间[0,1];若u_A(x)值越接近1,表示x属于A程度越高;相反u_A(x)越接近0,表示x属于A程度越低。可见模糊集合完全由隶属函数所描述。
隶属函数:定量描述模糊概念,正确选择隶属函数是利用模糊理论解决实际问题前提。由于个体对同一模糊概念理解不同,所以确定隶属函数过程有一定主观性。对群控系统智能调度设计,会大量使用模糊逻辑隶属函数概念。隶属度函数确定没有明确方法,常见方法有:
○1模糊统计法:对域U上元素x是否属于可变动清晰集合A*进行明确判断,不同测试人员清晰集合会有不一样界限,但它们肯定都对应模糊集A。模糊统计法计算步骤是在每次统计时,元素x不变,A*值可变,经过n次测试,隶属函数计算公式如下:u_A(x)=lim┬(n→∞)〖(x∈A)/n〗。
○2专家经验法:以专家实际经验为基础,给出隶属函数确定方法。一般情况,首先根据问题性质,经过分析推理,初步选用某些典型函数作为隶属函数,然后通过不断学习完善;实际运行效果是不断调整和检验隶属函数依据,当域离散,结合个人经验,直接或通过某种方式给出元素隶属度值。
○1例证法:由Zadeh教授提出,基本方法就是从已知模糊子集A*的有限个u_A(x)的值,推算出整个域U上A*的隶属度函数。
○2二元对比排序法:通过事物之间比较,来确定特征序列顺序,从而确定事物特征隶属函数一般形状。
粒子群-遗传混合算法
将粒子群优化算法和遗传算法相结合,发挥两者优点,构建一种效率更高的粒子群-遗传(PSO-GA)混合算法。
2.1 粒子群优化算法
上世纪九十年代初期,通过对自然界生物群研究,科学家们陆续提出模拟生物群行为的智能优化算法,并对智能优化算法实行广泛研究与应用。粒子群优化算法(PSO)就是其中一种具有很强代表性的智能优化算法,它可以用来解决很大范围内的一类优化问题。
2.1.1 粒子群优化算法原理
一般情况下生物个体自身行为并不智能,但应对复杂问题,整个群体行为却表现非凡处理能力。Rednolds对鸟群复杂行为进行仿真时,用三条准则来对个体简单行为进行描述:
○1向目标靠近;
○2远离最近同伴;
○3向群体中心不断靠近。
针对鸟群时而发生分散重组,时而高度同步这些现象,Hepper认为这正是鸟群中鸟之间彼此所保持的最佳距离。另外,Boyd和Recharson探索人类决策过程中,提出个体认知和社会认知概念,这些思想都可看作形成粒子群优化算法的思想基础。
在这些思想基础上,粒子群优化算法(Particcle Swarm Optimization, PSO)是一种进化计算技术(Evolutionary Computation),是在人工生命结果影响下,于1995年由Eberhart博士和Kennedy博士提出,源于对鸟群捕食行为研究。
粒子群优化算法作为一种新兴计算方法主要受到鸟类捕食的启发。在对问题进行求解过程中,将每个优化解都可以看成是一只鸟,并且称为“粒子”,并可以把他们当成具备速度和位置两方面特性的粒子,粒子所处位置可以看作是这个的可行解,目标函数在解决问题过程中主要起到衡量作用,并起到判断一个粒子好坏的标准,目标函数的确定是利用粒子位置坐标得到的。每个粒子通过位置和速度两方面来跟踪个体极值与全局极值,从而可以不断更新自己在解空间的位置,找到问题最优解。
2.1.2 基本粒子群优化算法数学描述
粒子群优化算法中每个粒子位置都是优化问题一个潜在解,粒子性能好坏程度由适应度函数值决定,在每次迭代中,粒子在空间中通过不断移动来搜索全局最优解。粒子速度和位置由以下更新公式确定。
v_id (t+1)=w×v_id (t)+c_1×rand()×[p_id (t)-x_id (t)]+c_2×rand()×[p_gd (t)-x_gd (t)]
x_id (t+1)=x_id (t)+v_id (t+1) 1≤i≤n,1≤d≤D
其中,上面式子是速度更新公式,下面式子是位置更新公式。i表示粒子群中第i个粒子,d代表空间维度,v_i代表第i个粒子速度,x_i代表第i个粒子位置, V_i={V_i1,V_i2,…,V_iN}, X_i={X_i1,X_i2,…,X_iN}, t代表迭代次数。w是惯性权重,w值越大,粒子全局搜索能力就越强;相反,w值越小,粒子局部搜索能力越强。c_1,c_2是常数,被称为学习因子。P_id代表第i个粒子能搜索到的最优位置,P_gd代表所有粒子能搜索到的全局最优位置。函数rand()是一个(0,1)区间内的随机数。粒子搜索过程见图2-1 粒子搜索过程示意图。
在图中,P代表粒子当前位置,P_id代表粒子自身最优位置,P_gd代表粒子群最优全局位置,v是粒子当前速度,v_update是粒子更新后的速度,P_update是粒子更新后的位置。粒子通过P_id, P_gd两个最优位置,结合自身当前速度v,将自身的飞行速度调整成v_update,并由当前位置P飞到位置P_update,完成一次搜索,经过多次搜索后最终到达最优位置。
粒子群优化算法流程
粒子群优化算法是一个迭代过程,算法流程具体如下:
Step1:对粒子群中每个粒子速度和位置需要进行初始化设置。
Step2:对每个例子适应度函数值进行计算并评价结果。
Step3:根据例子适应度,按照下面两个式子分别更新各个粒子速度与位置。
v_id (t+1)=w×v_id (t)+c_1×rand()×[p_id (t)-x_id (t)]+c_2×rand()×[p_gd (t)-x_gd (t)]
x_id (t+1)=x_id (t)+v_id (t+1) 1≤i≤n,1≤d≤D
Step4:更新个体极值。根据速度-位置公式(上式),把每个粒子位置与其记忆中它最好位置进行比较,若当前粒子位置好,则把记忆中位置转换成当前粒子位置,若没有则持续更新。
Step5:更新全局极值。将所有粒子记忆中最好位置与整个种群最好位置进行比较,若粒子记忆中最好位置好,则把整个种群最好位置置换成记忆中最好位置,若没有则继续更新。
Step6:如果具备达到最大迭代次数,可以停止,如果没有达到则返回Step2。
具体过程见图2-2 粒子群优化算法流程图
粒子群优化算法参数分析
粒子群优化算法主要参数有惯性权值,加速系数,种群规模和迭代次数。
○1惯性权值
惯性权值w对粒子群优化算法能否收敛起重要作用,它可以保证粒子在运动过程中保持惯性状态,并使粒子可以最大范围对空间进行搜索并且对一些新的未知区域进行搜索。如果w取值比较大优势在于可以更有利进行全局搜索,同时收敛速度也比较快;劣势在于不能很有效进行局部搜索,很难保证得到解精度比较高,但劣势就是收敛速度缓慢还会导致因为陷入局部极值,不能得到全局最优解情况发生。所以选择合适w值才能保证在搜索精度,速度,全局搜索和局部搜索相互统一首要前提。
○2加权系数
加权系数c_1,c_2对粒子群优化算法收敛方面有着很大影响,如果可以恰当选择加权系数,这样不但能保证算法收敛速度,还可以摆脱局部极值。当c_1=c_2=0,粒子就会因为惯性原因保持现有速度,一直向前直到到达边界为止;这时粒子飞行主要依靠惯性原因。所以不能很好在飞行过程中吸取经验或者比较有启发信息,所以这样的算法在启发性方面有所欠缺,同时搜索范围也很有限。也就导致在这种情况下很难找到最优解,与之相对,体现出的优化性能方面也不是很好。
□1当c_1=0时说明粒子并不具备认知能力,在飞行过程中不能很好吸取经验和比较有效的信息,因此仅仅包含社会部分原因,所以c_2也可以叫做社会参数;尽管在速度方面和基本粒子群优化算法相比能体现出一定优势,但因为在自身飞行信息方面相比还是暴露不少缺点:更容易陷入局部最优,在优化性能方面也有一定差距。
□2当c_2=0时说明粒子之间不具备社会信息共享能力,当同伴飞行时也不能在同伴飞行过程中获得有效信息,因为仅仅认知部分的原因,所以c_1也叫作认知参数;这时每个粒子之间都不具备互相共享信息,所以在运行过程中群体运行和单个粒子运行几乎没有任何区别,在这种情况下也很难得到全局最优解。
□3通常来说,如果具备当c_1=c_2=0.2这种条件,会取得不错效果,不少人也认为c_1取值方面应该相对大一些,而在c_2取值方面则恰恰相反,最好可以相对小些,如果可以满足c_1+c_2<4的条件那么结果会更好。
○3群体规模
粒子群优化算法优化性和群体规模也有非常紧密联系。通常来说,群体规模大小搜索到最优解可能性之间存在着正比关系,如果群体规模较大,那么更容易找到最优解,相对在优化性能方面也能有比较好的体现。但会对消耗的计算量产生一定影响,在计算性能方面也会相对降低;如果群体规模比较小,则很难寻找到最优解,同时也没有过多消耗计算量。所以这就需要我们在解决问题过程中,选择合适群体规模,以防带来不必要麻烦,通常来说,将群体规模控制在10-200比较可行。
○4迭代次数
当惯性权值与迭代次数不发生关系时,如果迭代次数进行比较多,那么就很有可能找到全局最优解,迭代次数进行相对少一些,在可能性方面也会相对下降一些。在粒子群算法进行优化过程中,如果出现陷入局部极值,并且不采取相应措施,进行再多迭代计算也不会有十分显著效果,消耗计算量也相对比较大,没有什么实际意义。若在优化过程中还有其他条件来结束搜索,可以增加迭代次数,使搜索最优解更可靠。当惯性权值与迭代次数存在紧密联系,即随着迭代逐渐进行,惯性权值也会慢慢衰减,并不代表进行迭代的次数越多越好,反而还会起到反作用导致算法在很长时间内都会以较大惯性权值来搜索,如果这时候不限制粒子速度,粒子就会以很快速度飞到很远处导致最后错过全局最优解。所以,当惯性权值和迭代次数存在紧密联系时,要根据实际情况选择合理迭代次数。
2.1.5 粒子群算法特点
与其他优化算法相比
○1粒子群优化算法具有以下优点:
□1可以同时多点搜索最优解,各粒子间是并列关系,不存在先后顺序限制。与从一点开始搜索的优化算法相比,可以利用更多信息提高搜索效率。
□2粒子能记住搜索历史中找到的最优解,能保证之前搜索的信息不会随着迭代过程进行而丢失。
□3优化结果和初始解无关,初始解往往是随机生成。
□4对种群规模大小并不敏感,即使种群规模变小,算法性能也不会受到太大影响。
□5数学模型中需调节参数较少,简单易懂,易于实现。
○2粒子群优化算法有以下不足:
□1应用方面,粒子群算法主要应用在连续问题上,在求离散化问题上仍需改进。
□2复杂度方面,粒子群算法原理比较简单且参数少,粒子只通过内部速度进行更新,一次比较容易实现。
□3收敛性方面,粒子群算法收敛速度较快,方向感较强,但易在迭代过程中陷入局部最优,因此收敛性不能保证。
2.2 遗传算法
遗传算法模拟达尔文生物进化原理,通过优胜劣汰准则形成一种优化智能算法,经过几十年不断发展,其丰硕理论研究成果和应用成果,使得遗传算法成为智能优化算法中,应用最为成功也最为广泛的算法。
2.2.1 遗传算法基本原理
遗传算法是建立在遗传学基础上的一种数学算法。在自然界中,生物体如果想繁殖后代必须要使自身去适应环境,在逐渐适应环境过程中,物种通过遗传使其基本特征遗传给后代,但是后代所具有特征又与父代不完全一样,若子代能够适应环境存活下来,则子代作为父代继续进行遗传,这就是优胜劣汰原则。遗传算法由一定数量的个体组成的初始化族群开始,其中包含N个父代个体,计算每个父代个体适应值,为了产生出能够适应周围环境的新一代个体,按照适应度值来选择优良个体,根据交叉概率对染色体进行交叉操作,产生出新一代染色体,然后根据变异概率对某些基因进行变异操作,产生出更优个体。所有子代个体再作为新的父代个体并重新计算适应度值,如此往复循环,直到满足优化准则而结束。
遗传算法基本概念和术语如下:
○1染色体:遗传物质主要载体,由多个遗传因子基因组成。
○2遗传因子:决定生物体性状下一代性能和组成的基本单位,又称基因。
○3个体:指染色体带有特征的实体。
○4种群:染色体带有特征的个体的集合称为种群。。该集合内个体数称为群体大小,有时个体集合也称为个体群。
○5进化:生物在发展下一代的生殖延续过程中,通过自身改变得到适应周围环境能力,经过变化使得自身体质不断改良,这种逐渐变化的生命形式成为进化。
○6适应度:用来衡量某一物种在自然界中的生存适应程度定义为适应度。
○7选择:按照一定概率在种群中选取若干有用个体的操作统称为选择。
○8复制:旧的细胞信息通过DNA在遗传过程中传递到新的细胞中叫做复制。
○9交叉:在交叉操作中,两个染色体在相同的某个位置被断开,然后前后进行交叉,达到重组。
○10变异:某些细胞在进行遗传过程中发生小概率事件差错,在这种差错作用下细胞会变成一种新型细胞,产生出新染色体,新细胞从而获得新性状。
2.2.2 遗传算法数学描述
遗传算法具有大规模搜索能力,遗传算法模拟生物进化理论的“万物竞争”原则进行随机思想交换,并按照生物进化优胜劣汰方式进行最优解求解。它尤其适用于处理传统搜索方法难以解决的复杂和非线性问题。这种算法能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程,从而得到最优解。遗传算法有六大要素,分别是编码适应度函数构造,选择,交叉,变异以及算法终止准则。下面对遗传算法六大要素介绍:
○1遗传编码
遗传算法对问题进行最优解求解通常对个体进行编码操作,编码操作之后会尽快找到适应度最合适个体,最终达到最优解求解。为了表述一个问题可行解,通常应用遗传算法,将问题解的可行性解,从解空间转换到遗传算法所能处理的搜索空间的转换方式,就称为编码。通常情况下编码方法采用两张方法:二进制编码方法,浮点数编码方法。
以染色体X=(x_1,x_2,…,x_3)为例对这两个编码的方式进行说明。其中,染色体X中每一位x_i=(1≤i≤n)为一个基因,x_i的取值称为位值,n表示X长度。
○2二进制编码
用二进制编码对染色体X编码时,x_i的取值只可以取0或1,比如染色体X=(000110)。很多组合优化问题中,其综合评价函数和约束函数都是离散函数,采用二进制编码方式往往具有直接语义,它可以将问题特点与基因对应起来,直观清晰且容易实现。但在处理连续性函数优化问题时,会存在映射误差,如果编码长度过短,会发生满足不了精度要求的状况,影响遗传算法性能。
○3浮点数编码
在某一区域范围内,通过一个浮点数,代表种群中每个个体基因值的方法,称为浮点数编码方法。决策变量中所使用的真实值,通常被浮点数编码使用,在这种编码方式中,x_i取值是一个浮点数,例如,X=(5.80,6.90,3.50,3.80,5.00)。由于在浮点数编码方法中,根据决策变量实际值进行编码,因此又把浮点数编码称为真值编码。浮点数编码具有以下特点:
□1适用于在大范围内进行遗传搜索;
□2在遗传算法中可以代表区间内大多数;
□3编码精度高;
□4使遗传算法变得更加容易计算,增加算法使用效率;
□5能使遗传算法吸取其他优秀算法优点,便于结合其他算法组成混合算法;
□6能够使复杂约束条件变得更加简单,容易处理。
适应度函数
群体中个体生存机会被选择的唯一指标是它们的适应值,所以适应度函数的形式直接决定群体进化行为,为了执行适者生存原则,必须对个体位串适应性进行评价。因此,适应度函数就构成个体生存环境。根据个体适应值,就可决定它在此环境下的生存能力。一般来说,好的染色体位串结构有着比较高的适应度函数值,即可获得较高评价,有着较强生存能力。
为了直接将适应度函数与个体优劣度联系起来,建立适应度函数应该遵循以下三个准则:
□1适应值规定为负;
□2设计必须能够与个体优劣程度一致;
□3计算量应该小。
采用以下两种变换方法可将目标函数f(x)变换成适应度函数F(x):
□1对于最大化问题,建立如下适应度函数:
F(x)={█(f(x)+c_min f(x)+c_min>0 @0 f(x)+c_min≤0 )┤ ,其中,c_min为一相对较小的数。
□2对于最小化问题,建立如下适应度函数:
F(x)={█(c_max-f(x) f(x)< c_max @0 f(x)≥ c_max )┤ ,其中,c_max为一相对较大的数。
选择操作
选择操作以一定数值选择概率选择种群中适应度值高个体,保留下来生成交配池,而将适应度值低个体淘汰,体现个体适者生存原则。目前,在遗传算法中基本选择方法是轮盘赌选择,这种方法与游戏中轮盘赌类似,基本思想是:每个个体被选择概率与个体适应度值高低成正比。例如:一个种群中个体总数为M,假设个体i适应度值为F_i,那么个体i被选择概率为P_i, P_(i )计算公式如下:P_i=F_i/(∑_(i=1)^M▒F_i )。选择策略具体实现方法是:生成一个随机数r(r∈[0,1]),若P_1+P_2+⋯+P_(i-1)
交叉操作是把两个从交配池中选择出的父个体以一定交叉概率P_c对其结构部分加以替换重组,产生新的两个子个体的过程。交叉目的是使子个体即继承父代特点,又具备父代没有的一些新特点。交叉概率值越大,说明可进行交叉的染色体越多,产生出新染色体也越多。但是过大的P_c值会导致搜索一些不必要解空间,增大计算量,使寻优时间变长,交叉概率P_c取值一般在0.4-0.99之间。
通常使用的交叉算子包括一点交叉,两点交叉,多点交叉,一致交叉等形式,其中最常用的是一点交叉。一点交叉通常的操作方法是:在交配池中选择出来的两个染色体上选择一个断点位置,断点位置随机选择,然后互换断点位置右边部分,产生两个新染色体。交叉操作一般步骤可概括为:
从交配池中先随机选择出一对染色体;
根据染色体长度,随机选择[1, L -1]中一个或多个整数k作为交叉位置;
根据交叉率P_c(0≤P_c≤1)实施交叉操作,在交叉位置处交换两个染色体部分内容,形成两个新染色体。
根据对两个染色体x_At,x_Bt进行交叉操作,则交叉后生成的新个体如下式:
{█(x_A(t+1)=αx_Bt+(1-α)x_At@x_B(t+1)=αx_At+(1-α)x_Bt )┤
其中,α是一个参数,若α是常数则为均匀算数交叉;若α随种群代数改变而改变,则称为非均匀算数交叉。
○3变异
以小概率事件P_m在种群中随机改变某些个体基因值操作过程称为变异操作,P_m即所说的变异概率。通过变异操作,可以保持群体多样性,而且能够防止过早收敛。在变异操作中,P_m若大于0.5,会导致遗传算法随机搜索,导致搜索效率变差。采用自适应变异可以使P_m自适应变化成需要的变异率,P_m可通过下式来改变:P_m={█((k_3 (f_max-f))/(f_max-f_avg ) f≥f_avg@k_4 f
○4算法终止准则
遗传算法经过反复进化操作,直到输出最优解满足终止准则才停止进化操作。采用最多的终止准则是规定最大进化代的数目,此外还可以采用群体收敛准则。本设计使用最大进化代的数目作为终止准则,当新一代种群产生时,检验进化代数,看其是否满足给定终止准则,如不满足,就继续生成新一代;如满足终止准则,就把最好个体所代表的分配方案输出给各电梯,从而完成一次优化过程。
2.2.3 遗传算法基本流程
根据上述描述,可以得出具体流程为:
Step1:随机初始化群体;
Step2:对染色体适应度函数值进行计算与评价,按适应值大小保留最优染色体;
Step3:对染色体进行选择操作,操作过程中采用轮盘赌选择的方法;
Step4:根据交叉概率P_c,从染色体中选取染色体进行部分交叉,产生新染色体;
Step5:根据变异概率P_m,对染色体基因进行变异操作,保持群体多样性;
Step6:计算新群体中各染色体适应度函数值,更新最优染色体;
Step7:判断是否达到最大迭代次数,若达到则算法结束,若未达到则返回Step3
具体流程参照图2-3 遗传算法基本流程图。
遗传算法特点
遗传算法与其他优化算法相比
○1具有以下几个优点:
□1直接以目标函数值作为搜索信息。根据目标函数值产生适应度函数,并根据适应度函数确定搜索方向和范围,避免梯度或导数等复杂运算,因此适用于大规模非线性运算。
□2对决策变量进行编码,对一些只具有代码概念的优化问题,其编码方式显示出独特优越性。
□3从多个搜索点开始进行搜索。通过对初始群体进行选择,交叉,变异等运算,反复迭代产生出新一代群体,通过并行性计算提高搜索效率。
□4选择,交叉,变异等遗传算子运算都是以一定概率进行,这使得其搜索的过程中灵活性大大增加。
○2遗传算法同样也存在以下不足:
□1最优解的效果和算法初始群体的分布密切相关,它以多个个体作为初始状态,根据个体搜索进行群体进化,最终状态是个体所组成,算法维持群体多样性和局部搜索能力较弱。
□2标准遗传算法不一定收敛,主要原因是遗传算法交叉和变异两个算子是按照一定概率发生的,因此算法在搜索过程中获得较好个体不易于维持,优秀个体获得后随时可能消失,而且易出现早熟现象,不能保证全局收敛。
□3遗传算法收敛速度较慢,单独使用时不易在短时间内达到最优结果。
2.3 PSO-GA混合算法
粒子群算法(PSO)和遗传算法(GA)都属于进化算法,但是在进化算法中,单一进化算法能力仅靠算法自身操作经常达不到理想优化效果。因此不少研究人员提出将两种算法或者多种算法混合在一个算法中,互相取长补短来实现算法优化。为提高算法局部搜索能力以及避免早熟现象,考虑一种粒子群算法和遗传算法混合的优化算法(PSO - GA)。
粒子群优化算法与遗传算法结合主要是由它们自身特点决定。
遗传算法是根据生物中竞争和优胜劣汰准则,借助选择,交叉,变异等操作,使问题一步步趋于最优解。遗传算法优点是可以搜索到多个局部最优解,同时也具有较好全局优化能力,能够有效利用上一代历史信息来推测下一代有期望能提高的寻优点集。而粒子群优化算法基本思想源于自然界中的鸟群,鱼群等生物群觅食行为研究。该算法融入了个人认知和社会认知观点,通过个人学习优秀者行为,体现算法社会性和智能性,是一种新的全局智能优化算法。
与GA对比,PSO因为没有选择,交叉,变异等操作而更简洁,算法智能性和速度性也更强。但是粒子位置更新主要通过对比自身位置与周围位置,自身位置与粒子群当前最优位置来进行进化,模式单一,使算法在计算后期收敛速度下降,易陷入局部极值;与PSO对比,GA存在交叉,变异等多种进化模式,使解多样性得以提高,但在GA求解过程中,算法求解到一定范围时经常出现大量冗余迭代,计算时间长,求解效率降低。因此,很自然联想到,将PSO和GA算法两者相结合,提高算法效率。
该混合算法基本思想是:首先将种群所有个体进行PSO较小代数进化后,只选取一定个数最优粒子,进行GA遗传操作,其次将经过遗传操作后的粒子与之前最优粒子合并后再送到PSO进行所有个体速度,位置更新,重复迭代后,最终达到最优解。
假设粒子群中粒子个数为P,首先由PSO进化一定代数后,将最优M个粒子保留,去掉P-M个粒子。然后将这M个粒子位置作为基础,通过选择复制来得到P-M个个体,并进行交叉变异等GA运算。最后将PSO保留下来的M个粒子的位置与GA进化得到的P-M个粒子合并,形成新的粒子群,进行下一代进化运算。
具体步骤如下:
Step1:初始化相关参数;
Step2:在可行域范围中生成初始P个粒子,并计算其目标函数值;
Step3:令g=1;
Step4:如果g≤g_max,进入Step5,否则转入Step14;
Step5:令k=1;
Step6:如果k
v_id (t+1)=w×v_id (t)+c_1×rand()×[p_id (t)-x_id (t)]+c_2×rand()×[p_gd (t)-x_gd (t)]
x_id (t+1)=x_id (t)+v_id (t+1) 1≤i≤n,1≤d≤D
Step8:k = k +1,转Step6;
Step9:将P个粒子按目标函数值大小排序,选取其最小的M个粒子;
Step10:由保留的M个粒子的位置值,根据式子{█(x_A(t+1)=αx_Bt+(1-α)x_At@x_B(t+1)=αx_At+(1-α)x_Bt )┤,
选择复制生成P-M个GA个体;
Step11:将P_c,P_m概率按照式子P_m={█((k_3 (f_max-f))/(f_max-f_avg ) f≥f_avg@k_4 f
Step13:g= g+1,并转Step4;
Step14:输出最优目标函数值与最优值(位置)。
详细流程见图2-4 PSO - GA算法流程图。
多目标优化模型
多目标优化问题中各个指标间存在着冲突,优化时应该在各个目标之中权衡处理,一般来说,求解每个多目标优化问题要明确下面5个基本要素:
决策变量x=(x_1,x_2,…,x_n);
目标函数 f(x)=[f_1 (x),f_2 (x),…,f_m (x)],m≥2;
可行解集 D∈Rn,D={x∈Rn│g_k (x)≤0,i=1,2,…,p;h_l (x)=0,r=1,2,…,q};
偏好关系。在像集f(D)={f(x)|x∈D}上有某个二元关系⟨反映决策者偏好;
解的定义。如何在已知偏好关系⟨下定义f在D上的最优解。
一个多目标优化问题可描述为:minZ=f(x)=[f_1 (x),f_2 (x),…,f_m (x)],
满足条件{█(g_k (x)≥0,k=1,2,…,p;@h_l (x)=0,l=1,2,…,q;@x_min≤x≤x_max .)┤
式中,x=[x_1,x_2,…,x_n]为n维决策变量,每个决策变量x_i在其最大值x_max和最小值x_min范围内变化;f_j (x)(j =1,2,…, m)为m个目标函数,满足p个不等式约束和q个等式约束。
2.4.2 多目标优化问题解
多目标优化问题解是这样一个决策变量,它可以使目标函数中各个分量取得最小值,一个多目标优化问题通常由n个决策变量,m个约束条件和k个目标函数组成,目标函数性质可能是线性的或是非线性的。多目标优化问题评价函数可以将决策向量映射到目标向量上去。
可行解集(Feasible Solutions Set)
可行解集中所有值经优化函数映射形成目标空间中一个子空间,该子空间决策向量均属可行集。对于多目标优化问题来说各指标是相互冲突的,一个解不可能对所有指标同时达到最优,这就需要在各个指标间进行均衡处理。单目标优化问题的可行解集完全根据单个目标函数f(x)来确定优劣,即对某两个解a,b∈X_f(可行域),总有f(a)≤f(b)或者f(a)≥f(b)成立,优化目的在于找到f(x)(x∈X_f)取极小值的解。但对于多目标优化问题来说情况则不同,因为一般的X_f不是全序的(Total Order),即为偏序(Partial Order)。
解的优劣性(Dominance/Inferiority)
设u,v∈Y_f,称目标向量解u=(u_1,u_2,…,u_k)优于v=(v_1,v_2,…,v_k),如果∀i∈{1,2,…,k},u_i≤v_i,∧∋i∈{1,2,…,k},u_i
如图2-5 多目标空间解关系示意图所示,其中1,2,3,4代表四个可行解,点4表示的解优于点1,2,3所表示的解,点2,3所表示的解均优于点1表示的解;点2,3所表示的解彼此不分优劣。
Pareto最优解(非劣最优解,Pareto Optimal)。
决策变量x∈X_f成为X_f上的Pareto最优解,当且仅当不存在x∈X_f,使得v=f(x^’ )=(f_1 (x^’ ),f_2 (x^’ ),…,f_k (x^’ ))优于u=f(x)=(f_1 (x),f_2 (x),…,f_k (x))。
由以上定义可知,Pareto最优解的判断与所在集合范围有关,一般情况下,指的是整个决策空间的Pareto最优解。
Pareto最优解集
对于给定多目标优化问题,Pareto最优解集ρ^定义为:
ρ^={x∈X_f |¬∋x’∈X_f,f(x’ )⟨f(x)}
2.4.3 电梯群控系统多目标优化数学模型
电梯群控系统变量
电梯群控系统变量主要由三部分组成,包括:建筑物参数,电梯状态和呼梯信号。
○1建筑物参数:
M:电梯台数;
h:大楼楼层高度;
n:大楼楼层数;
○2电梯参数:
F_0:电梯当前所在楼层;
D_0:电梯当前运行方向;
K_1:电梯运行一层所需时间;
K_2:停靠一层的时间;
m:电梯需响应的停靠服务;
F_max:电梯同向到达的最远楼层;
F_min:电梯反向到达的最远楼层;
○3呼梯信号:
F_c:呼梯信号起始楼层;
D_c:呼梯信号乘梯方向;
约束条件
在电梯群控系统中,应该满足系统的几个最优性能指标约束,一般存在以下几个约束条件:
○1避免乘客长时间候梯:WT∈[0,A_1], A_1为乘客候梯时间上限,通常情况下取60s;
○2避免乘客长时间候梯:DT∈(0,A_2], A_2为乘客乘梯时间上限,通常情况下取90s;
○3避免电梯超载:Q(k)∈[0,A_3], A_3为电梯最大额定容量。
电梯群控系统多目标优化数学模型
在建立电梯群控系统综合评价函数时,根据上述因素,综合了候梯时间AWT,乘梯时间ART,系统能耗RNC三个性能指标,可以推出,第i部电梯响应第j个层站呼梯信号综合评价函数可由下面公式表示:F(i,j)=ω_1 f_w (i,j)+ω_2 f_r (i,j)+ω_3 f_e (i,j),1≤i≤M。其中,
f_w (i,j):电梯i响应第j个呼梯信号时候梯时间的短评价函数;
f_r (i,j):电梯i响应第j个呼梯信号时乘梯时间的短评价函数;
f_e (i,j):电梯i响应第j个呼梯信号时电梯能耗的评价函数;
M:群控系统所包含的电梯台数;ω_1,ω_2,ω_3:权重系数,且ω_1+ω_2+ω_3=1;
第k个个体适应度函数可以表示为:F_k=∑_(j=1)^L▒〖F(i,j)〗,k=1,2,…,N。
其中,i表示第k个个体的电梯号,j表示呼梯信号,L表示呼梯信号个数,F(i,j)为第j个呼梯信号被指派给电梯i的评价函数值。F_k表示在种群中第k个个体所代表的分配方案性能优劣,F_k越大,分配方案越好。以下是计算f_w (i,j),f_r (i,j),f_e (i,j)的方法:
○1候梯时间短评价函数f_w (i,j):f_w (i,j)={█(1,WT(i,j)<7@e(-0.002{WT(i,j)-7}2 ),WT(i,j)≥7)┤,WT为候梯时间。
当新的呼梯信号发生时,根据呼梯发生的楼层F_C以及方向D_c与电梯当前所在层F_0和方向D_0,可计算出电梯到达新呼梯信号所需要的时间,即候梯时间。
当D_c与D_0相同,且F_C在F_0前方时,电梯可以同向到达乘客呼梯信号:
WT=|F_C-F_0|×K_1+m×K_2
当D_c与D_0相同,且F_C在F_0后方时,电梯先反向运行后再同向到达乘客呼梯信号:
WT=(|F_max-F_0 |+|F_max-F_min |+|F_c-F_min |)×K_1+m×K_2
当D_c与D_0相反,电梯反向运行后到达乘客呼梯信号:
WT=(|F_max-F_0 |+|F_max-F_c |)×K_1+m×K_2
当D_c与D_0相同,且F_C=F_0, WT =0。
○2乘梯时间的短评价函数f_r (i,j):f_r (i,j)=e(-0.00077RT2 ) (i,j)
RT(i,j)为电梯i响应第j个呼梯信号时乘客乘梯时间。由于产生新呼梯信号时只知道乘客乘梯方向,而不知道目的层,假设乘客目的层是最远楼层,那么乘梯时间计算式为:
RT=|F_max-F_0 |×K_1+m×K_2.
○3能量消耗的评价函数f_e (i,j)
电梯在运行过程中,起停过程中会产生比较大的能耗,因此减少电梯的起停次数和电梯运行中加减速距离成为减小系统能耗的关键。为简便起见,可以将轿厢i在到达第j个呼梯信号所在的楼层前需要停靠的次数n(t)来表示此台电梯的能耗。那么,电梯i能源消耗的评价函数可表示为:f_e (i,j)=e(-0.013n2 (t))。
权重系数的选择对电梯群控系统运行效率的改善有很大影响,因此在对权重系统的选择上要对当前电梯所处模式进行详细分析。在不同交通模式下对权重系统的选择也要有不同的侧重。例如客流高峰时电梯群控系统群控策略主要以减少候梯,乘梯时间为主,因此可以增大f_w和f_r的权重系数w_1和w_2;在电梯空闲模式时,主要以减少能量消耗为主,可增大f_e的权重系数w。下表表示的是不同模式下所对应的权重系数。权重系数w_i初始值见表2.1 不同模式下对应权重系数。(权重初始值只用于借鉴,后期经过训练逐步调整)
表2.1 不同模式下对应权重系数
交通模式 w_1 w_2 w_3
上行交通模式 0.60 0.20 0.20
层间交通模式 0.50 0.20 0.30
下行高峰模式 0.55 0.20 0.25
综上,综合评价函数是三个评价指标加权平均值,因此,假如我们对某一个评价指标赋一个比较大的权重系数,那么电梯的指派就会受到该评价指标值变化的较大影响,主要按这个指标对电梯进行调度分配。
2.5 PSO-GA混合模型步骤
利用粒子群算法的局部搜索能力和遗传算法的选择,交叉,变异协同寻优,从而构建相应模型。首先进行粒子群算法操作,计算电梯群控系统综合评价函数适应度值,选取适应度值最大的一些粒子进行下一步遗传操作的选择,交叉,变异,判断是否达到迭代次数,如果达到最大迭代次数,则输出最优解。选取最优个体具体实现步骤如下:
Step1:初始化相关参数。
粒子群个数P;经过粒子群运算进化后保留的粒子个数M;PSO学习因子c_1,c_2;GA交叉与变异概率P_C,P_m;粒子最大速度V_max,以及PSO进化代数k_max与混合算法总的进化代数g_max,产生乘客流。
Step2:编码。
以电梯作为编码对象,通过实数编码方式进行编码。具体形式如下:假设电梯台数为4部,“1”代表第一台电梯响应某楼层的上行呼梯信号,“2”代表第一台电梯响应某楼层的下行呼梯信号,“3”代表第二台电梯响应某楼层上行呼梯信号,“4”代表第二台电梯响应某楼层下行呼梯信号,以此类推,可以得出对应编码的码数共有8个,即:“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”。
Step3:生成P个初始粒子群。
假设某幢建筑共有16层,则粒子维数为16。粒子中每个元素均为0-8中的整数,生成粒子形式如下:
楼层数 1楼 2楼 3楼 4楼 … 13楼 14楼 15楼 16楼
编码 3 6 0 4 … 2 5 8 1
每个实数即为响应该楼层乘客呼梯的电梯号,例如第1楼层下面的“3”即表示由第二台电梯响应1楼的上行呼梯,第3楼层下面的“0”表示该楼层没有呼梯信号。
Step4:适应度值计算。
根据乘客呼梯信号和电梯当前状态,根据前三个式子分别计算每个粒子的f_w (i,j),f_r (i,j),f_e (i,j),第四个式子即个体适应度函数计算出粒子适应值;
F(i,j)=ω_1 f_w (i,j)+ω_2 f_r (i,j)+ω_3 f_e (i,j),1≤i≤M
WT=(|F_max-F_0 |+|F_max-F_min |+|F_c-F_min |)×K_1+m×K_2
f_r (i,j)=e(-0.00077RT2 ) (i,j)
RT=|F_max-F_0 |×K_1+m×K_2
Step5:令g=1;
Step6:如果g≤g_max,进入Step7,否则转Step16;
Step7:令k=1;
Step8:如果k≤k_max,进入Step9,否则转Step13;
Step9:对粒子群中粒子进行位置和速度更新,并更新个体和全局极值。
Step10:k= k+1;转Step8;
Step11:将P个粒子按目标函数值大小排序,选择其最小的M个粒子;
Step12:由保留的M个粒子的位置值,选择复制生成P-M个GA个体;
Step13:以P_c,P_m的概率分别进行交叉和变异;
Step14:将通过GA生成的P-M个个体与M个粒子合并,组成新的P个粒子;
Step15:g= g+1,并转Step6;
Step16:输出最优目标函数值与最优解(位置)。
详细流程见图2-6 PSO - GA混合模型流程图。
模糊控制与神经网络结合
模糊逻辑系统是以模糊集合论为基础,源于人类思维模糊性特点。对于用一般常规方法难以解决的问题,用模糊逻辑来推理和处理能够很好对复杂事务进行模糊度量和识别。模糊系统重要特点是具有较强逻辑功能,在模糊控制系统中,虽然模糊推理是一种善于表达知识的推理方法,但模糊系统从本质上并没有获取知识能力,模糊规则确定也通常需要依赖和借助专家知识和经验等指导,因此比较难以确定。而人工神经网络能够通过学习和训练获取用数据表达的知识,除了可以记忆已知信息外,人工神经网络还具有较强概括能力以及联想记忆能力。人工神经网络理论应用已渗透到各个领域,并且在智能控制,计算机视觉,模式识别,自适应滤波,非线性优化,信号处理,知识处理等方面取得令人鼓舞进展,但是人工神经网络研究理论体系还不完善,存在一些缺点,例如权值随机选取,无法利用系统信息,和专家经验等语言信息,学习时间长,网络参数缺乏明确物理意义等。
随着对模糊系统和神经网络这两个领域研究深入,它们之间相互独立关系逐渐改变。学者们将模糊系统和神经网络融合正是为了获取两者优点,使得两者能够优劣互补,这种融合导致模糊神经网络出现。模糊神经网络是按照模糊逻辑系统运算步骤分层构造,再利用神经网络学习算法模糊系统,它不仅改变模糊逻辑系统基本功能,如模糊化,模糊推理,解模糊化等。模糊神经网络吸取模糊系统和神经网络优点,并部分避免两者缺点。
3.2 网络训练
将模糊神经网络正式应用于交通模式识别前,需要进行训练。网络进行训练主要是为了让网络模型对训练样本以外数据具有正确映射能力,训练过程实际上是网络对训练样本内在规律学习过程。为了使网络中各个权值更为合理,需对网络加以训练和验证,使其具有权系数,进而得出合理评价函数值。
训练网络主要步骤:对于给定输入向量p,计算网络实际输出a,并与相应期望输出t进行比较,得到学习误差e,根据学习规则进行权值和偏置量调整,重新计算网络在新权值作用的输出与重复权值的调整过程,直到网络输出与期望值相等,或者训练次数达到预先设置最大值。
协同问题,本质是合作关系与多参数问题
专家的经验
公式的改进
算法的迁移
##一般方案要解决的问题
电梯的分布
客流量问题
上面所提电梯问题与算法问题
公式修改问题,参数引入问题,难度大且低效
简要介绍本次的产品要达成的目标
VIP预约制电梯(预约,整层为目标)
交通模式,客流量仿真,的目的
以单智能体为基准,从所有方案中,抽出最适合的方案
简单到复杂,次要问题
竞争机制,非合作机制(本方案的基本思想),从思维上解决了遗传算法想解决的问题
深度强化学习
行动参数更新
def choose_action(self,observation):
observation = observation[np.newaxis,:]
if np.random.uniform() < self.epsilon:
actions_value = self.sess.run(self.q_eval,feed_dict = {self.s:observation})
action = np.argmax(actions_value)#选择最高价值的行动
else:
action = np.random.randint(0,self.n_actions)
return action
经验池
def store_transition(self,s,a,r,s_):
if not hasattr(self,'memory_counter'):
self.memory_counter = 0#计数器
transition = np.hstack(s,[a,r],s_)
index = self.memory_counter%self.memory_size#样本数量超过经验池大小时开始覆盖
self.memory[index,:] = transition
self.memory_counter += 1
学习函数
#学习函数
def leran(self):
q_traget = q_eval.copy()
batch_index = np.arange(self.batch_size,dtype = np.int32)
eval_act_index = batch_memory[:,self.n_fextures].astype(int)
reward = batch_memory[;self.n_fextures +1]
q_traget[batch_index,eval_act_index] = reward + self.gamma * np.max(q_next,axis = 1)
-,self.cost = self.sess.run([self._train_op,self.loss],feed_dict = {self.s:batch_memory[:,:self.n_fextures],self.q_traget:q_traget})
self.cost_his.append(self.cost)
图形化的解决方案
技术分析文档介绍
防错机制(比如整栋楼所有层都有人按下,几部电梯的计算结果耗费时间一样时,电梯的次序,这种情况一般理解为软件开发中的测试人员找极端情况的bug)
奖励函数的设计
算力问题
方案:分布式边缘计算
子问题的完善与构建
禁停楼层
电梯超载时,抛弃的人员(先来先服务,预约顺序)
紧急情况下的最大承载量的计入
VIP的插入
极端情况(比如时间花费一致)
对电梯不可用状态的排除的顺序
80层楼
8部电梯
每部电梯可以搭载10人(大部分住宅楼宇的电梯,承重是800千克到1000千克。有的不写直接数据的、基本上会写8人到10人之类)
专家系统(略,上世纪,问答系统,微软,语言专家问题)
模糊控制
遗传算法
旧的调度算法
普通强化学习算法
DQN算法
A3C
代码演示
代码结构
单电梯假设
单电梯问题的推广
参考实验指标
对于Q值的改写/建模:加入计算时间部分
平均候梯时间(第一指标)→侯梯时间求和然后除以等待人数,乘客到达目的楼层之前都处于等待状态
乘梯时间(第二目标)
总侯梯时间(第三指标)→直接求和
电梯的开关次数(第四目标,涉及效率和节能问题)
电梯能耗(第五指标)
该函数的设计主要在于优化的目标,是固定锁死电梯的方向,还是有限度的容忍,将决定了函数的设置
如果目标是有限度的最优化,则可以引入负奖励值,对参数稍加调整就能搞定
论文框架展示
由竞争向合作演化
多智能体的协调问题
文献大多为民用版本,情况复杂,这是我们的优势
VIP切口非常小,几乎无人涉及,优势点
引入客流量的分布布置电梯(可用可不用,可以作为算法的检验工具,不过本方案的检验工具是随机数据,用了之后则是对其节能的优化,不用无伤大雅)
一切排产问题
DQN的复现
多智能体的通信问题
多智能体价值分解网络