精华内容
参与话题
问答
  • 智能算法分类

    2020-08-04 22:21:21
    人工智能分类 人工智能算法 常见人工智能算法 人工智能实现方法

    人工智能分类
    在这里插入图片描述
    人工智能实现方法
    在这里插入图片描述

    常见人工智能算法
    在这里插入图片描述
    常见人工智能算法
    在这里插入图片描述

    展开全文
  • 经典智能算法之粒子群算法详解

    万次阅读 多人点赞 2019-04-07 21:08:53
    经典智能算法之粒子群算法 要理解粒子群算法怎么可能没有算法背景,请看 算法历史 粒子群优化(Particle Swarm Optimization, PSO)算法是Kennedy和Eberhart受人工生命研究结果的启发、通过模拟鸟群觅食过程中的迁徙...

    经典智能算法之粒子群算法

    要理解粒子群算法怎么可能没有算法背景,请看

    算法历史

    粒子群优化(Particle Swarm Optimization, PSO)算法是Kennedy和Eberhart受人工生命研究结果的启发、通过模拟鸟群觅食过程中的迁徙和群聚行为而提出的一种基于群体智能的全局随机搜索算法

    自然界中各种生物体均具有一定的群体行为,而人工生命的主要研究领域之一是探索自然界生物的群体行为,从而在计算机上构建其群体模型。生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模型,对其进行仿真,结果非常接近的模拟出鸟群飞行的现象。1995年,美国社会心理学家James Kennedy和电气工程师Russell Eberhart共同提出了粒子群算法,其基本思想是受对鸟类群体行为进行建模与仿真的研究结果的启发。他们的模型和仿真算法主要对Frank Heppner的模型进行了修正,以使粒子飞向解空间并在最好解处降落。

    基本思想

    POS 初始化为一群随机粒子(随机解)。然后通过迭代找到最优解在每一次迭代中,粒子通过跟踪两个"极值"来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值。另一个极值是整个种群目前找到的最优解,这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。

    来吧,各位我们直奔核心

    迭代公式

    vid=wvid+c1r1(pidxid)+c2r2(pgdxid) v_{id} = w*v_{id} + c_1r_1(p_{id}-x_{id})+c_2r_2(p_{gd}-x_{id})
    xid=xid+vid x_{id} = x_{id} + v_{id}

    (1)大体了解一下

    式子1中右边由三部分组成

    1. 第一部分代表了粒子保持先前速度的趋势,相当于物理学的惯性或者动量

    2. 第二部分代表了粒子对自身经验的记忆,相当于生物学意义上的认知

    3. 第三部分代表了粒子之间协同的社会影响,相当于群体学上的社会

    剩下的部分应该很好理解,你是不是感觉上面迭代式写的有点像程序中的赋值语句(哈哈,不错就是赋值),如果感觉不好理解的话,我们可以把上式左边的下边换为t+1,右边换为t,(表示随着时间更新)就好理解了,这里仅示范下面那个迭代式,即:

    xt+1=xt+vt x_{t+1}=x_t+v_t

    (2)认识各个参数

    ——w惯性权重

    ——c1,c2学习因子

    ——r2,r2 [0,1]的随机数

    (上述参数是怎么设置,又该怎么算,我一窍不通哈,可以忽略不看)

    ——Pid,Pgd 两极值就是前面说的两个极值,千万别弄错了

    这里需要解释一下下

    1. 这两个极值是什么

    一个称为个体极值,是单个粒子截止现在时刻搜索到的最优位置

    一个称为全局极值,是整个粒子群截止现在时刻搜索到的最优位置

    这么看来,这两个值不一定相同呀!

    2. 这个极值怎么表示

    如果位置只是轴线上的一个点,即一维的。哈哈,很简单用一个数就可以了

    如果位置是平面上的一个点,即二维的。这个也很简单用有序数对(x,y)表示

    如果位置是空间上的一个点,即三维的。这个我也知道是用(x, y, z)表示

    ……

    这样好麻烦,我们想到了用D维向量表示即

    其中i代表第i个粒子。

    Xi=(xi1,xi2,...,xiD) X_i=(x_{i1},x_{i2},...,x_{iD})

    很好,这样我们也会表示极值了

    3. 这个极值怎么求的

    求这个极值可是极其关键的部分,也正是它起推动作用的。既然是极值,我们肯定要用一个参数或标准来衡量谁优,不同的领域衡量的方式不同,但最后都要归到数学模型,具体来说就是一个函数表达式。(吹了这么多牛逼就是一个函数呀)对,在程序里就是个函数。不过,它在这里有一个高大上的专业名称叫适应度。

    就是因为数学模型,这个算法就可以应用到许多领域,各位老铁应该在检索论文的时候看到很多应用了吧。嗯嗯,只要你会点数学建模,来个实际应用,你就可以发表论文了,哈哈,就这么简单。但是本人觉得各行各业的应用固然重要,但是更重要的是基础科学的研究,这才是核心呀!(题外话)

    (3)通俗理解算法

    哈哈先看图,这图有点太花哨(不是原创,个人编辑图片能力不是很强)
    在这里插入图片描述

    粒子群算法就是根据鸟群来的,那我们就谈谈鸟群吧。正如上图所示:

    鸟儿变化后的速度跟三个方面有关,首先就是与前一刻的速度有关,变化需要基准和代价的,不能随意变向和变大小(鸟儿不可能把自己速度一下提升为无穷大吧)肯定要考虑之前速度。当然,鸟儿肯定很想吃东西,它的印象中好像上次在某个方向上发现很好吃的虫子,这次那个方向会不会也有好吃的,哈哈,是要考虑一下。最后,它的队友们曾经在另一个方向上找到最好吃的东西,还很多,这次会不会还向上次一样运气那么好。当然它一部分队友说的也可以(局部最优)。它考虑一番后,作出了如图决定。

    书上那个图也很经典,可以拿来对应对应,是不是更好理解它了:
    在这里插入图片描述

    所以这是粒子群算法的原理,哈哈,应该理解了吧!

    程序设计

    讲了那么多原理,该怎么写程序呢,接下来我们就来考虑一下细节。

    初始化

    首先我们要有一个随机粒子群,每个粒子群应该具有位置和速度两个属性,在MATLAB里实现就是想下面这样:

    for i=1:N
        for j=1:D
            x(i,j) = randn;   %随机初始化位置
            v(i,j) = randn;   %随机初始化速度
        end
    end
    
    

    接下来就是寻找两极值了。

    找极值

    找极值之前应该先有一个衡量,对,就是上面说的适应度,现在我们抽象一下,称它为fitness吧,它的具体的实现交给具体的任务吧。

    全局极值

    全局最优此刻通过适应度函数就可以找到了,MATLAB代码即:

    for i=1:N
        p(i) = fitness(x(i,:)); %x(i,:)即代表单个的粒子哦
        y(i,:) = x(i,:);
    end
     
    pg=x(N,:);               %全局最优
    for i = i:(N-1)
        if fitness(x(i,:)) < fitness(pg)
            pg = x(i,:);
        end
    end
    
    

    个体极值

    个体更新后可以通过之前做比较来寻找,前提必须是有更新,所以比全局极值少一次哦(少第一次,第一次就是最有不用比较哦),只需要把上一刻极值和更新后的适应度比较就可以喽,哈哈,简单的一个判断就行了。不要忘了全局极值也要更新哦,所有个体极值的极值就是全局极值,哈哈哈,一样一个if就可以实现(产生的每个个体极值跟全局极值比较就好了)。所以MATLAB程序就是:

    for t = 1:M
        for i = 1:N
            v(i,:) = w*v(i,:) + c1*rand*(y(i,:)-x(i,:)) + c2*rand*(pg - x(i,:));
            x(i,:) = x(i,:) + v(i,:);
            if fitness(x(i,:)) < p(i)
                pi = fitness(x(i,:));
                y(i,:) = x(i,:);
            end
            if p(i) < fitness(pg)
                pg = y(i,:);
            end
        end
        Pbest(t) = fitness(pg);
    end
    
    

    哈哈哈,大功告成,不不不,还要把结果输出。

    最后,把代码整理一下,确定参数,还有一些细节,如最大迭代次数,搜索范围,种群粒子个数,解空间维数等等,大家估计发现就是书上的代码,哈哈这就被你们发现。赶快,在理一下思路,看下面流程图:
    在这里插入图片描述
    哈哈,小编不才,亲自敲了一遍,大家如果有需要可以自行下载。不过,我还是希望大家亲自敲一遍。

    不过小编在这里想推荐一个大佬写的博客代码历程,看了你们会理解更深刻哦!
    CSDN博客

    展开全文
  • 智能算法是什么

    万次阅读 2019-06-29 22:29:44
    智能算法(百度百科) “智能算法”是指在工程实践中,经常会接触到一些比较“新颖”的算法或理论,比如模拟退火,遗传算法,禁忌搜索,神经网络,天牛须搜索算法等。这些算法或理论都有一些共同的特性(比如模拟...

    智能算法(百度百科)

    “智能算法”是指在工程实践中,经常会接触到一些比较“新颖”的算法或理论,比如模拟退火遗传算法禁忌搜索神经网络天牛须搜索算法等。这些算法或理论都有一些共同的特性(比如模拟自然过程。它们在解决一些复杂的工程问题时大有用武之地。

     

    这些算法都有什么含义?

    首先给出个局部搜索,模拟退火,遗传算法,禁忌搜索的形象比喻:

    为了找出地球上最高的山,一群有志气的兔子们开始想办法。

    1.兔子朝着比现在高的地方跳去。他们找到了不远处的最高山峰。但是这座山不一定是珠穆朗玛峰。这就是局部搜索,它不能保证局部最优值就是全局最优值。

    2.兔子喝醉了。他随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,他渐渐清醒了并朝最高方向跳去。这就是模拟退火。

    3.兔子们吃了失忆药片,并被发射到太空,然后随机落到了地球上的某些地方。他们不知道自己的使命是什么。但是,如果你过几年就杀死一部分海拔低的兔子,多产的兔子们自己就会找到珠穆朗玛峰。这就是遗传算法

    4.兔子们知道一个兔的力量是渺小的。他们互相转告着,哪里的山已经找过,并且找过的每一座山他们都留下一只兔子做记号。他们制定了下一步去哪里寻找的策略。这就是禁忌搜索

     

    智能优化算法要解决的一般是最优化问题

    最优化问题可以分为

    (1)求解一个函数中,使得函数值最小的自变量取值的函数优化问题和

    (2)在一个解空间里面,寻找最优解,使目标函数值最小的组合优化问题。典型的组合优化问题有:旅行商问题(Traveling Salesman Problem,TSP),加工调度问题(Scheduling Problem),0-1背包问题(Knapsack Problem),以及装箱问题(Bin Packing Problem)等。

    展开全文
  • 智能算法综述

    万次阅读 多人点赞 2017-04-14 20:26:41
    1、什么是智能算法  智能计算也有人称之为“软计算”,是们受自然(生物界)规律的启迪,根据其原理,模仿求解问题的算法。从自然界得到启迪,模仿其结构进行发明创造,这就是仿生学。这是我们向自然界学习的一个...

    1、什么是智能算法

      智能计算也有人称之为“软计算”,是们受自然(生物界)规律的启迪,根据其原理,模仿求解问题的算法。从自然界得到启迪,模仿其结构进行发明创造,这就是仿生学。这是我们向自然界学习的一个方面。另一方面,我们还可以利用仿生原理进行设计(包括设计算法),这就是智能计算的思想。这方面的内容很多,如人工神经网络技术、遗传算法、模拟退火算法、模拟退火技术和群集智能技术等。 

    2、人工神经网络算法

    “人工神经网络”(ARTIFICIAL NEURAL NETWORK,简称ANN)是在对人脑组织结构和运行机制的认识理解基础之上模拟其结构和智能行为的一种工程系统。早在本世纪40年代初期,心理学家McCulloch、数学家Pitts就提出了人工神经网络的第一个数学模型,从此开创了神经科学理论的研究时代。其后,FRosenblatt、Widrow和J. J .Hopfield等学者又先后提出了感知模型,使得人工神经网络技术得以蓬勃发展。

      神经系统的基本构造是神经元(神经细胞),它是处理人体内各部分之间相互信息传递的基本单元。据神经生物学家研究的结果表明,人的一个大脑一般有1010~1011个神经元。每个神经元都由一个细胞体,一个连接其他神经元的轴突和一些向外伸出的其它较短分支——树突组成。轴突的功能是将本神经元的输出信号(兴奋)传递给别的神经元。其末端的许多神经末梢使得兴奋可以同时传送给多个神经元。树突的功能是接受来自其它神经元的兴奋。神经元细胞体将接受到的所有信号进行简单处理(如:加权求和,即对所有的输入信号都加以考虑且对每个信号的重视程度——体现在权值上——有所不同)后由轴突输出。神经元的树突与另外的神经元的神经末梢相连的部分称为突触。

      2.1、人工神经网络的特点

      人工神经网络是由大量的神经元广泛互连而成的系统,它的这一结构特点决定着人工神经网络具有高速信息处理的能力。人脑的每个神经元大约有103~104个树突及相应的突触,一个人的大脑总计约形成1014~1015个突触。用神经网络的术语来说,即是人脑具有1014~1015个互相连接的存储潜力。虽然每个神经元的运算功能十分简单,且信号传输速率也较低(大约100次/秒),但由于各神经元之间的极度并行互连功能,最终使得一个普通人的大脑在约1秒内就能完成现行计算机至少需要数10亿次处理步骤才能完成的任务。

      人工神经网络的知识存储容量很大。在神经网络中,知识与信息的存储表现为神经元之间分布式的物理联系。它分散地表示和存储于整个网络内的各神经元及其连线上。每个神经元及其连线只表示一部分信息,而不是一个完整具体概念。只有通过各神经元的分布式综合效果才能表达出特定的概念和知识。

      由于人工神经网络中神经元个数众多以及整个网络存储信息容量的巨大,使得它具有很强的不确定性信息处理能力。即使输入信息不完全、不准确或模糊不清,神经网络仍然能够联想思维存在于记忆中的事物的完整图象。只要输入的模式接近于训练样本,系统就能给出正确的推理结论。

      正是因为人工神经网络的结构特点和其信息存储的分布式特点,使得它相对于其它的判断识别系统,如:专家系统等,具有另一个显著的优点:健壮性。生物神经网络不会因为个别神经元的损失而失去对原有模式的记忆。最有力的证明是,当一个人的大脑因意外事故受轻微损伤之后,并不会失去原有事物的全部记忆。人工神经网络也有类似的情况。因某些原因,无论是网络的硬件实现还是软件实现中的某个或某些神经元失效,整个网络仍然能继续工作。

      人工神经网络是一种非线性的处理单元。只有当神经元对所有的输入信号的综合处理结果超过某一门限值后才输出一个信号。因此神经网络是一种具有高度非线性的超大规模连续时间动力学系统。它突破了传统的以线性处理为基础的数字电子计算机的局限,标志着人们智能信息处理能力和模拟人脑智能行为能力的一大飞跃。

      2.2、几种典型神经网络简介

        2.2.1、多层感知网络(误差逆传播神经网络)

      在1986年以Rumelhart和McCelland为首的科学家出版的《ParallelDistributed Processing》一书中,完整地提出了误差逆传播学习算法,并被广泛接受。多层感知网络是一种具有三层或三层以上的阶层型神经网络。典型的多层感知网络是三层、前馈的阶层网络,即:输入层I、隐含层(也称中间层)J和输出层K。相邻层之间的各神经元实现全连接,即下一层的每一个神经元与上一层的每个神经元都实现全连接,而且每层各神经元之间无连接。

      但BP网并不是十分的完善,它存在以下一些主要缺陷:学习收敛速度太慢、网络的学习记忆具有不稳定性,即:当给一个训练好的网提供新的学习记忆模式时,将使已有的连接权值被打乱,导致已记忆的学习模式的信息的消失。

        2.2.2、竞争型(KOHONEN)神经网络

      它是基于人的视网膜及大脑皮层对剌激的反应而引出的。神经生物学的研究结果表明:生物视网膜中,有许多特定的细胞,对特定的图形(输入模式)比较敏感,并使得大脑皮层中的特定细胞产生大的兴奋,而其相邻的神经细胞的兴奋程度被抑制。对于某一个输入模式,通过竞争在输出层中只激活一个相应的输出神经元。许多输入模式,在输出层中将激活许多个神经元,从而形成一个反映输入数据的“特征图形”。竞争型神经网络是一种以无教师方式进行网络训练的网络。它通过自身训练,自动对输入模式进行分类。竞争型神经网络及其学习规则与其它类型的神经网络和学习规则相比,有其自己的鲜明特点。在网络结构上,它既不象阶层型神经网络那样各层神经元之间只有单向连接,也不象全连接型网络那样在网络结构上没有明显的层次界限。它一般是由输入层(模拟视网膜神经元)和竞争层(模拟大脑皮层神经元,也叫输出层)构成的两层网络。两层之间的各神经元实现双向全连接,而且网络中没有隐含层。有时竞争层各神经元之间还存在横向连接。竞争型神经网络的基本思想是网络竞争层各神经元竞争对输入模式的响应机会,最后仅有一个神经元成为竞争的胜者,并且只将与获胜神经元有关的各连接权值进行修正,使之朝着更有利于它竞争的方向调整。神经网络工作时,对于某一输入模式,网络中与该模式最相近的学习输入模式相对应的竞争层神经元将有最大的输出值,即以竞争层获胜神经元来表示分类结果。这是通过竞争得以实现的,实际上也就是网络回忆联想的过程。

      除了竞争的方法外,还有通过抑制手段获取胜利的方法,即网络竞争层各神经元抑制所有其它神经元对输入模式的响应机会,从而使自己“脱颖而出”,成为获胜神经元。除此之外还有一种称为侧抑制的方法,即每个神经元只抑制与自己邻近的神经元,而对远离自己的神经元不抑制。这种方法常常用于图象边缘处理,解决图象边缘的缺陷问题。

      竞争型神经网络的缺点和不足:因为它仅以输出层中的单个神经元代表某一类模式。所以一旦输出层中的某个输出神经元损坏,则导致该神经元所代表的该模式信息全部丢失。

        2.2.3、Hopfield神经网络

      1986年美国物理学家J.J.Hopfield陆续发表几篇论文,提出了Hopfield神经网络。他利用非线性动力学系统理论中的能量函数方法研究反馈人工神经网络的稳定性,并利用此方法建立求解优化计算问题的系统方程式。基本的Hopfield神经网络是一个由非线性元件构成的全连接型单层反馈系统

      网络中的每一个神经元都将自己的输出通过连接权传送给所有其它神经元,同时又都接收所有其它神经元传递过来的信息。即:网络中的神经元t时刻的输出状态实际上间接地与自己的t-1时刻的输出状态有关。所以Hopfield神经网络是一个反馈型的网络。其状态变化可以用差分方程来表征。反馈型网络的一个重要特点就是它具有稳定状态。当网络达到稳定状态的时候,也就是它的能量函数达到最小的时候。这里的能量函数不是物理意义上的能量函数,而是在表达形式上与物理意义上的能量概念一致,表征网络状态的变化趋势,并可以依据Hopfield工作运行规则不断进行状态变化,最终能够达到的某个极小值的目标函数。网络收敛就是指能量函数达到极小值。如果把一个最优化问题的目标函数转换成网络的能量函数,把问题的变量对应于网络的状态,那么Hopfield神经网络就能够用于解决优化组合问题。

      对于同样结构的网络,当网络参数(指连接权值和阀值)有所变化时,网络能量函数的极小点(称为网络的稳定平衡点)的个数和极小值的大小也将变化。因此,可以把所需记忆的模式设计成某个确定网络状态的一个稳定平衡点。若网络有M个平衡点,则可以记忆M个记忆模式。

      当网络从与记忆模式较靠近的某个初始状态(相当于发生了某些变形或含有某些噪声的记忆模式,也即:只提供了某个模式的部分信息)出发后,网络按Hopfield工作运行规则进行状态更新,最后网络的状态将稳定在能量函数的极小点。这样就完成了由部分信息的联想过程。

      Hopfield神经网络的能量函数是朝着梯度减小的方向变化,但它仍然存在一个问题,那就是一旦能量函数陷入到局部极小值,它将不能自动跳出局部极小点,到达全局最小点,因而无法求得网络最优解。

    3、遗传算法

      遗传算法(Genetic Algorithms)是基于生物进化理论的原理发展起来的一种广为应用的、高效的随机搜索与优化的方法。其主要特点是群体搜索策略和群体中个体之间的信息交换,搜索不依赖于梯度信息。它是在70年代初期由美国密执根(Michigan)大学的霍兰(Holland)教授发展起来的。1975年霍兰教授发表了第一本比较系统论述遗传算法的专著《自然系统与人工系统中的适应性》(《Adaptationin Natural and Artificial Systems》)。遗传算法最初被研究的出发点不是为专门解决最优化问题而设计的,它与进化策略、进化规划共同构成了进化算法的主要框架,都是为当时人工智能的发展服务的。迄今为止,遗传算法是进化算法中最广为人知的算法。

      近几年来,遗传算法主要在复杂优化问题求解和工业工程领域应用方面,取得了一些令人信服的结果,所以引起了很多人的关注。在发展过程中,进化策略、进化规划和遗传算法之间差异越来越小。遗传算法成功的应用包括:作业调度与排序、可靠性设计、车辆路径选择与调度、成组技术、设备布置与分配、交通问题等等。

      3.1、特点

    遗传算法是解决搜索问题的一种通用算法,对于各种通用问题都可以使用。搜索算法的共同特征为: ① 首先组成一组候选解; ② 依据某些适应性条件测算这些候选解的适应度; ③ 根据适应度保留某些候选解,放弃其他候选解; ④ 对保留的候选解进行某些操作,生成新的候选解。在遗传算法中,上述几个特征以一种特殊的方式组合在一起:基于染色体群的并行搜索,带有猜测性质的选择操作、交换操作和突变操作。这种特殊的组合方式将遗传算法与其它搜索算法区别开来。

    遗传算法还具有以下几方面的特点:

    (1)遗传算法从问题解的串集开始嫂索,而不是从单个解开始。这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。

    (2)许多传统搜索算法都是单点搜索算法,容易陷入局部的最优解。遗传算法同时处理群体中的多个个体,即对搜索空间中的多个解进行评估,减少了陷入局部最优解的风险,同时算法本身易于实现并行化。

    (3)遗传算法基本上不用搜索空间的知识或其它辅助信息,而仅用适应度函数值来评估个体,在此基础上进行遗传操作。适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。这一特点使得遗传算法的应用范围大大扩展。

    (4)遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导他的搜索方向。

    (5)具有自组织、自适应和自学习性。遗传算法利用进化过程获得的信息自行组织搜索时,适应度大的个体具有较高的生存概率,并获得更适应环境的基因结构。

      3.2 、运用领域

      前面描述是简单的遗传算法模型,可以在这一基本型上加以改进,使其在科学和工程领域得到广泛应用。下面列举了一些遗传算法的应用领域: 

    优化:遗传算法可用于各种优化问题。既包括数量优化问题,也包括组合优化问题。 

    ② 程序设计:遗传算法可以用于某些特殊任务的计算机程序设计。 

    机器学习:遗传算法可用于许多机器学习的应用,包括分类问题和预测问题等。

    ④ 经济学:应用遗传算法对经济创新的过程建立模型,可以研究投标的策略,还可以建立市场竞争的模型。 

    ⑤ 免疫系统:应用遗传算法可以对自然界中免疫系统的多个方面建立模型,研究个体的生命过程中的突变现象以及发掘进化过程中的基因资源。 

    ⑥ 进化现象和学习现象:遗传算法可以用来研究个体是如何学习生存技巧的,一个物种的进化对其他物种会产生何种影响等等。

    ⑦ 社会经济问题:遗传算法可以用来研究社会系统中的各种演化现象,例如在一个多主体系统中,协作与交流是如何演化出来的。

    4、模拟退火算法

      模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温度升高变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。根据Metropolis准则,粒子在温度T时趋于平衡的概率为e-ΔE/(kT),其中E为温度T时的内能,ΔE为其改变量,k为Boltzmann常数。用固体退火模拟组合优化问题,将内能E模拟为目标函数值f ,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始,对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。退火过程由冷却进度表(CoolingSchedule)控制,包括控制参数的初值t及其衰减因子Δt、每个t值时的迭代次数L和停止条件S。

    5、群体(群集)智能(Swarm Intelligence)

      受社会性昆虫行为的启发,计算机工作者通过对社会性昆虫的模拟产生了一系列对于传统问题的新的解决方法,这些研究就是群集智能的研究。群集智能(Swarm Intelligence)中的群体(Swarm)指的是“一组相互之间可以进行直接通信或者间接通信(通过改变局部环境)的主体,这组主体能够合作进行分布问题求解”。而所谓群集智能指的是“无智能的主体通过合作表现出智能行为的特性”。群集智能在没有集中控制并且不提供全局模型的前提下,为寻找复杂的分布式问题的解决方案提供了基础。

      群集智能的特点和优点:群体中相互合作的个体是分布式的(Distributed),这样更能够适应当前网络环境下的工作状态; 没有中心的控制与数据,这样的系统更具有鲁棒性(Robust),不会由于某一个或者某几个个体的故障而影响整个问题的求解。可以不通过个体之间直接通信而是通过非直接通信(Stimergy)进行合作,这样的系统具有更好的可扩充性(Scalability)。由于系统中个体的增加而增加的系统的通信开销在这里十分小。系统中每个个体的能力十分简单,这样每个个体的执行时间比较短,并且实现也比较简单,具有简单性(Simplicity)。因为具有这些优点,虽说群集智能的研究还处于初级阶段,并且存在许多困难,但是可以预言群集智能的研究代表了以后计算机研究发展的一个重要方向。

      在计算智能(ComputationalIntelligence)领域有两种基于群智能的算法,蚁群算法(Ant Colony Optimization)和粒子群算法(ParticleSwarm Optimization),前者是对蚂蚁群落食物采集过程的模拟,已经成功运用在很多离散优化问题上。

    5.1、蚁群优化算法 

      受蚂蚁觅食时的通信机制的启发,90年代Dorigo提出了蚁群优化算法(Ant ColonyOptimization,ACO)来解决计算机算法学中经典的“货郎担问题”。如果有n个城市,需要对所有n个城市进行访问且只访问一次的最短距离。

      在解决货郎担问题时,蚁群优化算法设计虚拟的“蚂蚁”将摸索不同路线,并留下会随时间逐渐消失的虚拟“信息素”。虚拟的“信息素”也会挥发,每只蚂蚁每次随机选择要走的路径,它们倾向于选择路径比较短的、信息素比较浓的路径。根据“信息素较浓的路线更近"的原则,即可选择出最佳路线。由于这个算法利用了正反馈机制,使得较短的路径能够有较大的机会得到选择,并且由于采用了概率算法,所以它能够不局限于局部最优解。

      蚁群优化算法对于解决货郎担问题并不是目前最好的方法,但首先,它提出了一种解决货郎担问题的新思路;其次由于这种算法特有的解决方法,它已经被成功用于解决其他组合优化问题,例如图的着色(GraphColoring)以及最短超串(Shortest Common Supersequence)等问题。 

    5.2、粒子群优化算法

      粒子群优化算法(PSO)是一种进化计算技术(EvolutionaryComputation),有Eberhart博士和Kennedy博士发明。源于对鸟群捕食的行为研究。

    PSO同遗传算法类似,是一种基于叠代的优化工具。系统初始化为一组随机解,通过叠代搜寻最优值。但是并没有遗传算法用的交叉(crossover)以及变异(mutation)。而是粒子在解空间追随最优的粒子进行搜索。

    同遗传算法比较,PSO的优势在于简单容易实现并且没有许多参数需要调整。目前已广泛应用于函数优化,神经网络训练,模糊系统控制以及其他遗传算法的应用领域

      粒子群优化算法(PSO) 也是起源对简单社会系统的模拟,最初设想是模拟鸟群觅食的过程,但后来发现PSO是一种很好的优化工具。

      5.2.1、算法介绍

      PSO模拟鸟群的捕食行为。一群鸟在随机搜索食物,在这个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。 

      PSO从这种模型中得到启示并用于解决优化问题。PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值(fitnessvalue),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。

      PSO初始化为一群随机粒子(随机解),然后通过叠代找到最优解,在每一次叠代中,粒子通过跟踪两个“极值”来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest,另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分最优粒子的邻居,那么在所有邻居中的极值就是局部极值。

      5.2.2、PSO算法过程

        ① 种群随机初始化。 

        ② 对种群内的每一个个体计算适应值(fitness value)。适应值与最优解的距离直接有关。

        ③ 种群根据适应值进行复制 。 

        ④ 如果终止条件满足的话,就停止,否则转步骤 ② 。

       从以上步骤,我们可以看到PSO和遗传算法有很多共同之处。两者都随机初始化种群,而且都使用适应值来评价系统,而且都根据适应值来进行一定的随机搜索。两个系统都不是保证一定找到最优解。但是,PSO没有遗传操作如交叉(crossover)和变异(mutation),而是根据自己的速度来决定搜索。粒子还有一个重要的特点,就是有记忆。

      与遗传算法比较,PSO的信息共享机制是很不同的。在遗传算法中,染色体(chromosomes)互相共享信息,所以整个种群的移动是比较均匀的向最优区域移动。在PSO中, 只有gBest (orlBest) 给出信息给其他的粒子, 这是单向的信息流动。整个搜索更新过程是跟随当前最优解的过程。与遗传算法比较, 在大多数的情况下,所有的粒子可能更快的收敛于最优解。

      现在已经有一些利用PSO代替反向传播算法来训练神经网络的论文。研究表明PSO 是一种很有潜力的神经网络算法,同时PSO速度比较快而且可以得到比较好的结果。

    6、展望

      目前的智能计算研究水平暂时还很难使“智能机器”真正具备人类的常识,但智能计算将在21世纪蓬勃发展。不仅仅只是功能模仿要持有信息机理一致的观点。即人工脑与生物脑将不只是功能模仿,而是具有相同的特性。这两者的结合将开辟一个全新的领域,开辟很多新的研究方向。智能计算将探索智能的新概念,新理论,新方法和新技术,而这一切将在以后的发展中取得重大成就。



    转自:http://xiao1jun.bokee.com/12058988.html

    展开全文
  • 人工智能算法(一)进化算法

    万次阅读 多人点赞 2019-01-22 01:55:56
    我希望用这类文章,来尽可能通俗的解释一些听上去很“高大上”的人工智能算法,不仅可以帮助自己真正的理解,还能带来更多的思考。目前想写专家系统,神经网络,还有本篇进化算法。 不说大话,进入正题: 相信大...
  • 智能算法简析-蚁群算法

    千次阅读 2018-10-10 23:49:48
    智能算法中的蚁群算法的总结。
  • 人工智能算法分类

    2020-03-07 20:29:06
    人工智能算法大体上来说可以分类两类:基于统计的机器学习算法(Machine Learning)和深度学习算法(Deep Learning) 总的来说,在sklearn中机器学习算法大概的分类如下: 纯算法类 (1).回归算法 (2).分类算法 (3).聚类...
  • 智能算法之粒子群算法及改进

    热门讨论 2020-06-25 23:39:01
    智能算法之粒子群算法及改进提前说说一、引言二、算法策略三、算法特点四、基础粒子群算法五、改进方向六、实例结语参考文献附录 提前说说 本文是基于包子阳、余继周,杨彬三位老师编著的《智能优化算法及其MATALB...
  • 智能算法-简单介绍

    千次阅读 2020-07-06 13:13:15
    title: 智能算法 author: 戴挽舟(BbiHH) tags: AI大数据 categories: 智能算法 date: 2019-10-16 19:58:00 ↓↓千万别点↓↓ 一、简介 什么是群体智能优化算法 群体智能优化算法属于一种生物启发式方法。 群体...
  • 智能算法之免疫算法求解TSP问题

    千次阅读 2020-05-10 21:02:22
    对于一些其他智能算法例如遗传算法解决一些现实问题都有实现!! 欢迎小伙伴的star哦~~ ???? 文章目录1、什么是免疫算法1.1 生物免疫系统1.2 免疫算法的基本原理1.3 免疫算法的基本步骤和流程2、免疫遗传算法3、...
  • 常用人工智能算法MATLAB代码 源自《智能优化算法及其MATLBA实例》 算法内容: 遗传算法 差分进化算法 免疫算法 蚁群算法 粒子群算法 模拟退火算法 禁忌搜索算法 神经网络算法 链接: ...
  • 群体智能算法 与大多数基于梯度的优化算法不同,群体智能算法依靠的是概率搜索算法。 与梯度算法及传统演化算法相比优点: 没有集中控制约束,不会因为个体的故障影响整个问题的求解。 以非直接信息交流的...
  • 智能算法---蚁群算法介绍

    万次阅读 多人点赞 2016-09-08 08:34:24
    蚁群算法是一种群智能算法,也是启发式算法。基本原理来源于自然界蚂蚁觅食的最短路径原理。
  • 布谷鸟智能算法matlab

    热门讨论 2013-02-23 22:23:24
    布谷鸟智能算法matlab文件,算法原作者编写的较简化的版本,算法较完整但是收敛条件写的过于简单(object function<用户设置则停止)
  • 智能算法---遗传算法介绍

    千次阅读 2016-09-07 16:13:47
    智能算法是启发式的求最优化的算法。它是一门边缘交叉学科,是生物、数学等多学科的完美融合。现在的智能算法很多,不同的智能算法之间也相互借鉴,不断融合。这里先介绍遗传算法。在1975年,Michigan大学的教授J....
  • 智能算法 - GA

    千次阅读 2018-03-18 12:02:07
    智能算法——GA(遗传算法) 这是GA算法,在原有的基础上加上了一些改进:高斯变异,简单的竞标赛选择,多点交配和最简单的自适应模型。 高斯变异: 变异不再是随机地生成一个范围内的数,而是通过高斯分布(正态...
  • 象棋人工智能算法的C++实现(一)

    万次阅读 多人点赞 2018-10-16 23:33:41
    前言:自AlphaGo战胜世界著名九段围棋手李世石之后,我就对棋类人工智能产生了极大的...首先说明一下本系列博客描述的人工智能算法不是基于机器学习、深度学习这么高深的知识,而是一种穷举找最优走法的算法。之所以...
  • MATLAB智能算法30个案例分析.史峰等

    万次阅读 2019-03-10 11:36:02
    《MATLAB智能算法30个案例分析》是2011年由北京航空航天大学出版社出版的图书,作者是郁磊、史峰、王辉、胡斐… 《MATLAB智能算法30个案例分析》是作者多年从事算法研究的经验总结。讲解了遗传算法、免疫算法、退火...
  • 毕业之后就想将读书时候用过的智能算法写成软件。历经了两年时间,软件也初步的实现了基本的功能。但是软件还有着太多太多的不足之处,用起来也不是特别方便。以后的时间就慢慢完善吧。 下面为软件的测试截图: 测试...
  • 经典智能算法文章集: 粒子群优化算法PSO: 一、粒子群优化算法(PSO)概要: 粒子群优化算法(Particle Swarm Optimization),是一种经典的智能算法,也是较为基础的算法。粒子群的含义为多个随机量组成的...
  • 人工智能算法平台 Brain++ 第六届世界互联网大会“世界互联网领先科技成果发布活动”2019年10月20日下午17:00在乌镇互联网国际会展中心乌镇厅举行。图为人工智能算法平台 Brain++发布。 旷视推出的人工智能算法平台...
  • DL之FAN:基于人工智能算法偶像渐变卡通形象 目录 输出结果 算法设计 输出结果 算法设计 更新……
  • 智能算法

    千次阅读 2011-06-04 11:18:00
    智能算法是如何优化安排Agent行为,以使得群体的总体趋向于优化值的原理。http://en.wikipedia.org/wiki/Swarm_intelligence#cite_note-8
  • 文 | 大友 来源 | 智能相对论(aixdlun) 近日,人民网连发《不能让算法决定内容》、《别被算法困在“信息茧房”》、《警惕算法走向创新的反面》三篇评论...人民网如此频繁的关注智能算法推荐,那么智能算
  • 人工蜂群算法是模仿蜜蜂行为所提出的一种优化方法,是集群体智能思想的一个具体应用。 主要特点是不需要了解问题的特殊信息而只需要对问题进行优劣比较,通过每个人工蜂个体的局部寻优行为,最终在群体中使全局最优...
  • 从内容智能到增长营销,全景揭秘阿里文娱智能算法,就在这一本! 文娱大脑究竟能有多“智能”?答案是全生命周期的人工智能技术!从内容智能到增长营销,全景揭秘阿里文娱智能算法,就在这一本! 点击这里免费...
  • BP神经网络的Matlab实现——人工智能算法

    万次阅读 多人点赞 2018-01-27 23:07:23
    这几天在各大媒体上接触到了人工智能机器学习,觉得很有意思,于是开始入门最简单的机器算法——神经网络训练算法(Neural Network Training);以前一直觉得机器学习很高深,到处是超高等数学、线性代数、数理统计。...
  • 贪吃蛇的创新玩法与智能算法

空空如也

1 2 3 4 5 ... 20
收藏数 31,451
精华内容 12,580
关键字:

智能算法