精华内容
下载资源
问答
  • 最优化方法课件-解可新,大家一起学习,一起进步 第1章 最优化问题概述 1.1 最优化问题的数学模型与基本概念 1.2 最优化问题的一般算法 1.3 二维最优化问题的几何解释 1.4 一维搜索 习题第2章 线性规划 2.1 凸集与凸...
  • 建立一个非线性规划的最优化模型,这个模型的目标是使GM(1,1)模型的还原值序列与原始值序列间的平均相对误差最小,使用数学软件LINGO 11.0,可以直接求解得到这个模型的全局最优,从而建立一个对应的最优化GM...
  • 针对高精度解调传感布里渊散射谱的布里渊频偏量的需求,提出了一种利用粒子群优化(PSO)和拉凡格氏(L-M)混合优化算法对传感散射谱进行特征提取的方法。利用PSO算法粗调得到一组全局,再以全局作为L-M算法...
  • modelsim 10.7 文件及方法。软件查看另一个分享。 Mentor公司的ModelSim是业界优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术...
  • 构造去权平方抱怨度优化模型,证明其 与加权不分成本值一致,优化实现了加权不分成本值。其次定义大联盟边际标准对策的加 权对称性,用公理化的方法研究了加权不分成本值是合作对策中唯一同时满足有效性...
  • 但是,关于计划优化的工作很少,特别是在缺乏启发式知识指导最优的情况下解决问题的方法解决方案搜索,而存在许多非最佳解决方案,或者之间存在重大交互作用非独立的抽象中间目标。 本文提出了一个杂乱的遗传在上述...
  • 为了解决大视场立体视觉传感器标定难题,提出一种基于灵活靶标...最后通过非线性优化方法得到转化矩阵的,完成立体视觉传感器现场标定。经实验证明,该方法的标定精度优于小靶标,得到与大靶标接近的标定精度。
  • 这种新方法将一个多维空间的非线性问题降维映射到二维平面,籍目标函数等值分布曲线的分析,决策出优点或最优区域,通过逆映射运算将其还原到多维空间用原始变量表示.从本文的例证可见,这种方法直观、简便、...
  • RAD Studio XE2 Update 4 hotfix 1 全自动安装器,直接...使用方法见压缩包中使用说明。 本安装器仅供爱好者学习使用,不得商用。 RAD Studio XE2 with Update 4 Hotfix 1 v16.0.4504.48759 官方 ISO 文件下载地址: ...
  • 光纤—无线融合(fiber-wireless,FiWi)宽带接...采用整数线性规划方法获得了小规模网络规划问题的,同时提出了适用于大规模网络规划问题的启发式算法。仿真结果证实了所提方法在降低网络部署成本方面的有效性。
  • 先前的工作表明,使用广义分数规划的公式可以可靠地计算全局,其中,算法独立解决一系列凸问题,以逼近最优L∞范数误差。 我们发现凸问题的序列是高度相关的,并且我们提出了一种从任何给定点派生类似牛顿...
  • 多省区电网的生产模拟在理论上将多个省区合并为一个地区统一进行优化,且存在,但不符合我国以省为实体的电网调度运行模式,导致火电机组开机不均衡、联络线功率波动大等问题。为此,提出一种适用于我国调度...
  • 针对上述问题,提出利用遗传算法求解多峰函数的优化方法,方法利用遗传算法的鲁棒性,对多峰函数进行优化,并用Matlab进行仿真,实验结果表明,遗传算法可以快速稳定地搜索到多峰函数的。 更多还原
  • 粒子群优化算法源码下载

    热门讨论 2012-12-30 13:16:22
    求解最优化问题一直是遗传算法的经典应用领域,但是对于不同的最优化问题,遗传算法往往要重新设计“交叉”、“变异”算子,甚至要开发的进化操作;另外遗传算法不容易理解、操作复杂、大多数情况下效率比较低。...
  • 对励磁系统模型进行了研究,提出了一种的励磁系统参数优化方法。为了使励磁系统满足性能指标的要求,实现最佳控制,采用了各种不同的控制目标准则。基于不同控制目标准则得出励磁系统参数优化模型,参数优化的目标函数...
  • 为了使产品开发人员和企业...豆浆机实例表明,该方法适用于复合意象的产品形态优化设计,成功得到分布均匀的Pareto,产品开发者根据具体情况在多个目标之间交互选择优化方案,具有很好的指导作用和实际应用价值。
  • Adam、RMSProp这些算法虽然收敛速度很快,当往往会掉入局部的“陷阱”;原始的SGD方法虽然能收敛到更好的结果,但是训练速度太慢。最近,一位来自UIUC的中国博士生Liyuan Liu提出了一个优化器RAdam。它兼...

    5d6acee0bea9f9e10307e6981641db23.png
    栗子 鱼羊 晓查 发自 凹非寺
    量子位 报道 | 公众号 QbitAI

    找到一种快速稳定的优化算法,是所有AI研究人员的目标。

    但是鱼和熊掌不可兼得。Adam、RMSProp这些算法虽然收敛速度很快,当往往会掉入局部最优解的“陷阱”;原始的SGD方法虽然能收敛到更好的结果,但是训练速度太慢。

    最近,一位来自UIUC的中国博士生Liyuan Liu提出了一个新的优化器RAdam

    它兼有Adam和SGD两者的优点,既能保证收敛速度快,也不容易掉入局部最优解,而且收敛结果对学习率的初始值非常不敏感。在较大学习率的情况下,RAdam效果甚至还优于SGD。

    5d97aaa8d1ff910174211675aa798c49.png

    RAdam意思是“整流版的Adam”(Rectified Adam),它能根据方差分散度,动态地打开或者关闭自适应学习率,并且提供了一种不需要可调参数学习率预热的方法。

    一位Medium网友Less Wright在测试完RAdam算法后,给予了很高的评价:

    RAdam可以说是最先进的AI优化器,可以永远取代原来的Adam算法了。

    目前论文作者已将RAdam开源,FastAI现在已经集成了RAdam,只需几行代码即可直接调用。

    补众家之短

    想造出更强的优化器,就要知道前辈们的问题出在哪:

    像Adam这样的优化器,的确可以快速收敛,也因此得到了广泛的应用。

    但有个重大的缺点是不够鲁棒,常常会收敛到不太好的局部最优解 (Local Optima) ,这就要靠预热 (Warmup)来解决——

    最初几次迭代,都用很小的学习率,以此来缓解收敛问题。

    为了证明预热存在的道理,团队在IWSLT’14德英数据集上,测试了原始Adam带预热的Adam

    结果发现,一把预热拿掉,Transformer语言模型的训练复杂度 (Perplexity) ,就从10增到了500。

    另外,BERT预训练也是差不多的情况。

    为什么预热、不预热差距这样大?团队又设计了两个变种来分析:

    缺乏样本,是问题根源

    一个变种是Adam-2k

    在前2000次迭代里,只有自适应学习率是一直更新的,而动量 (Momentum) 和参数都是固定的。除此之外,都沿袭了原始Adam算法。

    实验表明,在给它2000个额外的样本来估计自适应学习率之后,收敛问题就消失了:

    ab5dae8253b478d671b0d7f3de301844.png

    b9d806d91408c50a40b78e1791ca7d43.png

    另外,足够多的样本可以避免梯度分布变扭曲 (Distorted) :

    1daffe41651a88cdce31972c068ab871.png

    ea8a8652f2b894cc3ab177b9bffa10b0.png

    这些发现证明了一点:早期缺乏足够数据样本,就是收敛问题的根源

    下面就要证明,可以通过降低自适应学习率的方差来弥补这个缺陷。

    降低方差,可解决问题

    一个直接的办法就是:

    851093bccb5a14e9f34d93ee7a2a2cfd.png

    把ψ-cap里面的ϵ增加。假设ψ-cap(. ) 是均匀分布,方差就是1/12ϵ^2。

    这样就有了另一个变种Adam-eps。开始把ϵ设成一个可以忽略的1×10^-8,慢慢增加,到不可忽略的1×10^-4。

    从实验结果看,它已经没有Adam原本的收敛问题了:

    f3097cc90578ed144f1eb026aa46a64d.png

    adf907e1ea64987735d8fb93371aedc6.png

    这就证明了,真的可以通过控制方差来解决问题。另外,它和Adam-2k差不多,也可以避免梯度分布扭曲。

    然而,这个模型表现比Adam-2k带预热的Adam差很多。

    推测是因为ϵ太大,会给自适应学习率带来重大的偏差 (Bias) ,也会减慢优化的过程。

    所以,就需要一个更加严格的方法,来控制自适应学习率。

    论文中提出,要通过估算自由度ρ来实现量化分析。

    RAdam定义

    RAdam算法的输入有:步长αt;衰减率{β1, β2},用于计算移动平均值和它的二阶矩。

    输出为θt。

    首先,将移动量的一阶矩和二阶矩初始化为m0,v0,计算出简单移动平均值(SMA)的最大长度ρ∞←2/(1-β2)-1。

    然后按照以下的迭代公式计算出:第t步时的梯度gt,移动量的二阶矩vt,移动量的一阶矩mt,移动偏差的修正和SMA的最大值ρt。

    220b1bf569617026838e2e9c9f902d33.png

    如果ρ∞大于4,那么,计算移动量二阶矩的修正值和方差修正范围:

    ee8f05888b53f3bbf3142e96a1c08892.png

    如果ρ∞小于等于4,则使用非自适应动量更新参数:

    f479c1d19b9f2f74679932d575c45aec.png

    以上步骤都完成后,得出T步骤后的参数θT。

    测试结果

    RAdam在图像分类任务CIFAR-10和ImageNet上测试的结果如下:

    7c2fbb342f72f239420e873597135f3b.png

    尽管在前几个周期内整流项使得RAdam比Adam方法慢,但是在后期的收敛速度是比Adam要更快的。

    尽管RAdam在测试精度方面未能超越SGD,但它可以带来更好的训练性能。

    此外,RAdam算法对初始学习率是具有鲁棒性的,可以适应更宽范围内的变化。在从0.003到0.1一个很宽的范围内,RAdam表现出了一致的性能,训练曲线末端高度重合。

    5d97aaa8d1ff910174211675aa798c49.png

    亲测过的网友Less Wright说,RAdam和他今年测试的许多其它论文都不一样。

    其他方法常常是在特定数据集上有良好的效果,但是放在新的数据集上往往表现不佳。

    而RAdam在图像分类、语言建模,以及机器翻译等等许多任务上,都证明有效。

    (也侧面说明,机器学习的各类任务里,广泛存在着方差的问题。)

    Less Wright在ImageNette上进行了测试,取得了相当不错的效果(注:ImageNette是从ImageNet上抽取的包含10类图像的子集)。在5个epoch后,RAdam已经将准确率快速收敛到86%。

    如果你以为RAdam只能处理较小数据集上的训练,或者只有在CNN上有较好的表现就大错特错了。即使大道有几十亿个单词的数据集的LSTM模型,RAdam依然有比Adam更好的表现。

    3aafdbe9767b655cfdc34ef32380b2d5.png

    总之,RAdam有望提供更好的收敛性、训练稳定性,以及几乎对所有AI应用都用更好的通用性。

    关于作者

    论文的作者Liyuan Liu是一位90后,本科毕业于中国科学技术大学,曾在微软亚洲研究院实习。而这项工作,也得益于与微软的合作。

    a8555ae2b6455bc050706360360e912b.png

    早在本科期间,Liyuan Liu就师从国家杰出青年基金获得者,中科大陈恩红教授,以第一作者的身份在ICDM发表过文章。

    145cef1a6b7a6dd8e485ccb0d24d18ef.png

    2016年,Liyuan Liu小哥本科毕业,加入了美国伊利诺伊大学香槟分校数据挖掘小组(DMG),成为美国计算机协会和IEEE院士韩家炜教授课题组的一名CS博士,从事NLP研究。

    读博以来,Liyuan Liu开始在各大顶会上崭露头角。在2018年NLP领域国际顶会EMNLP当中,他的一作论文《Efficient Contextualized Representation: Language Model Pruning for Sequence Labeling》就被收录为口头报告。

    085517b414e183c35bda837de75dc780.png

    又是一位闪闪发光的少年英才啊。

    论文地址:

    On the Variance of the Adaptive Learning Rate and Beyondarxiv.org

    源代码:

    LiyuanLucasLiu/RAdamgithub.com
    2297d9e69efce5f159338940a8f93254.png

    — 完 —

    量子位 · QbitAI

    վ'ᴗ' ի 追踪AI技术和产品新动态

    戳右上角「+关注」获取最新资讯↗↗

    如果喜欢,请分享or点赞吧~比心❤

    展开全文
  • 果蝇优化算法(FOA)

    万次阅读 多人点赞 2017-02-08 15:25:59
    果蝇优化算法(FOA)是一种基于果蝇觅食行为推演出寻求全局优化新方法。果蝇本身在感官知觉上优于其他物种,尤其是嗅觉和视觉上。果蝇的嗅觉器官能很好的搜集漂浮在空气中的各种气味,甚至能够嗅到40公里以外的...

    1.关于FOA的基本概念

    果蝇优化算法(FOA)是一种基于果蝇觅食行为推演出寻求全局优化的新方法。果蝇本身在感官知觉上优于其他物种,尤其是嗅觉和视觉上。果蝇的嗅觉器官能很好的搜集漂浮在空气中的各种气味,甚至能够嗅到40公里以外的食物源。然后,飞到食物位置附近后亦可使用敏锐的视觉发现食物和同伴聚集的位置,并且向该方向飞去。

    果蝇算法可应用于求解最优解。

    果蝇群体迭代搜寻食物的步骤如下:

    (1)随机初始化果蝇群体位置。

              Init X_axis

              Init Y_axis

    (2)赋予果蝇个体利用嗅觉搜寻食物的随机距离与方向。

              Xi = X_axis + Random Value

              Yi = Y_axis + Random Value

    (3)由于无法得知食物的位置,因此先估计与原点的距离(Dist),再计算味道浓度判定值(S),此值为距离的倒数。

              Disti = sqrt(Xi^2 + Yi^2)

              Si = 1 / Disti

    (4)味道浓度判定值(S)代入味道浓度判定函数(或称为Fitness function)以求出该果蝇个体位置的味道浓度(Smelli)。

              Smelli = Function(Si)

    (5)找出该果蝇群体中味道浓度最高的果蝇(求极大值)。

              [bestSmell bestIndex] = max(Smell)

    (6)保留最佳味道浓度值与x、y的坐标,此时果蝇群体利用视觉往该位置飞去。

              Smellbest = bestSmell

              X_axis = X(bestIndex)

              Y_axis = Y(bestIndex)

    (7)进入迭代寻优,重复执行步骤2-5,并判断味道浓度是否优于前一迭代味道浓度,若是则实行步骤6。

     

    2.举例:解析果蝇优化算法求解极小值

    以FOA算法求解函数y=-5 + x*x的极小值,极小值为-5。

    MATLAB代码如下:

     

    味道浓度判定函数

    function [ y ] = Fitness( x )
    
        %味道浓度判定函数
        y = x^2 - 5;
    
    end

     

    FOA算法

    %maxgen为迭代次数,sizepop为种群规模
    function [ yy, Xbest, Ybest  ] = FOA( maxgen, sizepop )
    
        %*** 随机初始果蝇群里位置
        X_axis = 10 * rand();
        Y_axis = 10 * rand();
    
        %*** 果蝇寻优开始,利用嗅觉寻找食物
        for i=1 : sizepop
    
            %*** 赋予果蝇个体利用嗅觉搜寻食物之随机方向与距离
            X(i) = X_axis + 2 * rand() - 1;
            Y(i) = Y_axis + 2 * rand() - 1;
    
            %*** 由于无法得知食物位置,因此先估计与原点的距离(Dist),再计算味道浓度判定值(S),此值为距离的倒数
            D(i) = (X(i)^2 + Y(i)^2)^0.5;
            S(i) = 1 / D(i);
    
            %*** 味道浓度判定值(S)代入味道浓度判定函数(或称为Fitness function),以求出该果蝇个体位置的味道浓度(Smell(i))
            Smell(i) = Fitness(S(i));
    
        end
    
        %*** 找出此果蝇群里中味道浓度最低的果蝇(求极小值)
        [bestSmell bestindex] = min(Smell);
    
        %*** 保留最佳味道浓度值与x,y的坐标,此时果蝇群里利用视觉往该位置飞去
        X_axis = X(bestindex);
        Y_axis = Y(bestindex);
        Smellbest = bestSmell;
    
        %*** 果蝇迭代寻优开始
        for g=1 : maxgen
    
            %*** 赋予果蝇个体利用嗅觉搜寻食物的随机方向和距离
            for i=1 : sizepop
                X(i) = X_axis + 2 * rand() - 1;
                Y(i) = Y_axis + 2 * rand() - 1;
    
                %*** 由于无法得知食物位置,因此先估计与原点的距离(Dist),再计算味道浓度判定值(S),此值为距离的倒数
                D(i) = (X(i)^2 + Y(i)^2)^0.5;
                S(i) = 1 / D(i);
    
                %*** 味道浓度判定值(S)代入味道浓度判定函数,以求出该果蝇个体位置的味道浓度(Smell(i))
                Smell(i) = Fitness(S(i));
    
            end;
    
            %*** 找出此果蝇群里中味道浓度最低的果蝇(求极小值)
            [bestSmell bestindex] = min(Smell);
    
            %*** 判断味道浓度是否优于前一次迭代味道浓度,若是则保留最佳味道浓度值与x,y的坐标,此时果蝇群体利用视觉往该位置飞去
            if bestSmell < Smellbest
                X_axis = X(bestindex);
                Y_axis = Y(bestindex);
                Smellbest = bestSmell;
            end;
    
            %*** 每次最优Semll值记录到yy数组中,并记录最优迭代坐标
            yy(g) = Smellbest;
            Xbest(g) = X_axis;
            Ybest(g) = Y_axis;
    
        end;
    
    end
    
    

     

    主函数

    %*** 清空运行环境
    clc;
    clear;
    
    %*** 设置参数
    maxgen = 200; %迭代次数
    sizepop = 50; %种群规模
    
    [ yy, Xbest, Ybest  ] = FOA( maxgen, sizepop );
    
    %*** 绘制迭代味道浓度与果蝇飞行路径趋势图
    figure(1);
    plot(yy);
    title('Optimization process', 'fontsize', 12);
    xlabel('Iteration Number', 'fontsize', 12);
    ylabel('Smell', 'fontsize', 12);
    figure(2);
    plot(Xbest, Ybest, 'b.');
    title('Fruit fly flying route', 'fontsize', 14);
    xlabel('X-axis', 'fontsize', 12);
    ylabel('Y-axis', 'fontsize', 12);


    迭代求解极小值函数曲线如下:




    果蝇搜寻轨迹如下:


     

    展开全文
  • 优化方法,从“粒子进化”和“多种群”两个方面对标准粒子群算法 进行改进。多个粒子群彼此独立地搜索空间,保持了粒子种群的多样 性,从而增强了全局搜索能力而适当的“粒子进化”可以使陷入局部 最优的粒子...
  • 提出一种求解一类非线性两层... 所提出的方法借助于分解2协调原理并按迭代方式最终求得问题的. 对于含整数的规划问题, 通过连续 化处理后也按该方法方便地求解. 算例表明所提出的算法是简便而有效的.</p>
  • 《俄罗斯数学教材选译:数值方法(第5版)》视角新颖,内容翔实,阐述系统,主要内容包括:计算误差,插值与数值微分,数值积分,函数逼近,多维问题,数值代数方法,非线性方程组和最优化问题的,常微分方程、偏...
  • 果蝇优化算法(FOA)是一种基于果蝇觅食行为推演出寻求全局优化新方法。果蝇本身在感官知觉上优于其他物种,尤其是嗅觉和视觉上。果蝇的嗅觉器官能很好的搜集漂浮在空气中的各种气味,甚至能够嗅到40公里以外的...

    一、简介

    果蝇优化算法(FOA)是一种基于果蝇觅食行为推演出寻求全局优化的新方法。果蝇本身在感官知觉上优于其他物种,尤其是嗅觉和视觉上。果蝇的嗅觉器官能很好的搜集漂浮在空气中的各种气味,甚至能够嗅到40公里以外的食物源。然后,飞到食物位置附近后亦可使用敏锐的视觉发现食物和同伴聚集的位置,并且向该方向飞去。
    果蝇算法可应用于求解最优解。
    在这里插入图片描述
    果蝇群体迭代搜寻食物的步骤如下:
    (1)随机初始化果蝇群体位置。
    Init X_axis
    Init Y_axis

    (2)赋予果蝇个体利用嗅觉搜寻食物的随机距离与方向。
    Xi = X_axis + Random Value
    Yi = Y_axis + Random Value

    (3)由于无法得知食物的位置,因此先估计与原点的距离(Dist),再计算味道浓度判定值(S),此值为距离的倒数。
    Disti = sqrt(Xi^2 + Yi^2)
    Si = 1 / Disti

    (4)味道浓度判定值(S)代入味道浓度判定函数(或称为Fitness function)以求出该果蝇个体位置的味道浓度(Smelli)。
    Smelli = Function(Si)

    (5)找出该果蝇群体中味道浓度最高的果蝇(求极大值)。
    [bestSmell bestIndex] = max(Smell)

    (6)保留最佳味道浓度值与x、y的坐标,此时果蝇群体利用视觉往该位置飞去。
    Smellbest = bestSmell
    X_axis = X(bestIndex)
    Y_axis = Y(bestIndex)

    (7)进入迭代寻优,重复执行步骤2-5,并判断味道浓度是否优于前一迭代味道浓度,若是则实行步骤6。

    二、源代码

    %% 清空环境
    clc;
    clear all;
    close all;
    tic
    %% 障碍物数据
    position = load('barrier1.txt');
    % plot([0,100],[0,100],'.');
    axis([0 100 0 100]);
    hold on
    B = load('barrier1.txt');
    xlabel('km','fontsize',12)
    ylabel('km','fontsize',12)
    title('二维规划空间','fontsize',12)
    %圆形障碍物数据
    % r=10; theta=0:pi/100:2*pi;
    % x=r*cos(theta)+65; y=r*sin(theta)+50;
    % sizep = size(position);
    % sizet = size(theta);
    % for kk=1:sizet(2)
    %     position(sizep(1)+kk,1)=x(kk);
    %     position(sizep(1)+kk,2)=y(kk);
    %     B(sizep(1)+kk,1)=x(kk);
    %     B(sizep(1)+kk,2)=y(kk);
    % end
    
    
    %% 描述起点和终点
    Start = [0,0];
    Target = [100,100];
    plot([Start(1),Target(1)],[Start(2),Target(2)],'.');
    
    % 图形标注
    text(Start(1)+3,Start(2)+4,'S');
    text(Target(1)-3,Target(2)-4,'T');
     
    %% 描绘障碍物图形
    fill(position([2,7,8,3],1),position([2,7,8,3],2),[0,0,0]);
    fill(position([4,9,10,5],1),position([4,9,10,5],2),[0,0,0]);
    fill(position([11,15,16,13],1),position([11,15,16,13],2),[0,0,0]);
    fill(position([17,20,21,18],1),position([17,20,21,18],2),[0,0,0]);
    
    %% 描绘线及中点
    % 下载链路端点数据
    L = load('lines1.txt');
    
    v = zeros(size(L)); %存储中点的坐标
    for i=1:13   %%19表示连线数目即中点数目
        plot([position(L(i,1),1),position(L(i,2),1)],[position(L(i,1),2)...
            ,position(L(i,2),2)],'color','black','LineStyle','--');
        v(i,:) = (position(L(i,1),:)+position(L(i,2),:))/2;
        plot(v(i,1),v(i,2),'*');
        text(v(i,1)+2,v(i,2),strcat('v',num2str(i)));
    end
    
    %% 描绘可行路径
    sign = load('matrix1.txt');%邻接矩阵
    [n,m]=size(sign);
    
    for i=1:n
        
        if i == 1
            for k=1:m-1
                if sign(i,k) == 1
                    plot([Start(1),v(k-1,1)],[Start(2),v(k-1,2)],'color',...
                        'black','Linewidth',1,'LineStyle','-');
                end
            end
            continue;
        end
        
        for j=2:i
            if i == m
                if sign(i,j) == 1
                    plot([Target(1),v(j-1,1)],[Target(2),v(j-1,2)],'color',...
                        'black','Linewidth',1,'LineStyle','-');
                end
            else
                if sign(i,j) == 1
                    plot([v(i-1,1),v(j-1,1)],[v(i-1,2),v(j-1,2)],...
                        'color','black','Linewidth',1,'LineStyle','-');
                end
            end
        end
    end                                                                  %到此能画出MAKLINK链路图
    v1=zeros(15,2);  %13个中点加上起始点和终止点                         %v1存放包括S和T的总共22个结点,作为DijkstraPlan的参数
    v1(1,:)=[0,0];
    v1(15,:)=[100,100];
    for i=2:14
        v1(i,:)=v(i-1,:);
    end
    path = DijkstraPlan(v1,sign);
    j = path(15);
    plot([Target(1),v(j-1,1)],[Target(2),v(j-1,2)],'color','black','LineWidth',3,'LineStyle',':');
    i = path(15);
    j = path(i);
    count = 0;
    while true
        plot([v(i-1,1),v(j-1,1)],[v(i-1,2),v(j-1,2)],'color','black','LineWidth',3,'LineStyle',':');
        count = count + 1;
        i = j;
        j = path(i);
        if i == 1 || j==1
            break;
        end
    end
    plot([Start(1),v(i-1,1)],[Start(2),v(i-1,2)],'color','black','LineWidth',3,'LineStyle',':');
    count = count+3;
    pathtemp(count) = 15;
    j = 15;
    for i=2:count
        pathtemp(count-i+1) = path(j);
        j = path(j);
    end
    path = pathtemp;                     %到此能在规划空间中用黄线描绘出次优最短路径
    pathCount = length(path)-2;          %经过线段数量,相当于维数D
    
    %% 经过的链接线
    lines = zeros(pathCount,4);
    for i = 1:pathCount                  %lines用于存放各个结点所在链接线的起点和终点
        lines(i,1:2) = B(L(path(i+1)-1,1),:);
        lines(i,3:4) = B(L(path(i+1)-1,2),:);
    end
    
    % 初始最短路径
    dijpathlen = 0;
    vv = zeros(15,2);
    vv(1,:) = Start;
    vv(15,:) = Target;
    vv(2:14,:) = v;
    for i=1:pathCount+1
    dijpathlen = dijpathlen + sqrt((vv(path(i),1)-vv(path(i+1),1))^2+(vv(path(i),2)-vv(path(i+1),2))^2);
    end
    LL = dijpathlen;                   %得出的LL为次优最短路径的长度
    
    %% 果蝇优化算法参数初始化
    popsize=200;
    maxgen=200;
    gen=0;
    D=zeros(popsize,pathCount);
    S=zeros(popsize,pathCount);
    bestgensmell=zeros(1,maxgen);
    
    %% 果蝇位置初始化及食物浓度计算
    %*** 随机初始果蝇群体位置。
    X_axis=1+1*rands(1,pathCount);
    Y_axis=1+1*rands(1,pathCount);
    
    % *** 果蝇寻优开始,利用嗅觉寻找食物。
    for p=1:popsize
        X(p,:)=X_axis+2*rand()-1;
        Y(p,:)=Y_axis+2*rand()-1;
    
        for i=1:pathCount
        %*** 求出与原点之距离
    %     D(p,i)=(X(p,i)^2+Y(p,i)^2)^0.5;
    %     %*** 味道浓度为距离之倒数,先求出味道浓度判定值。
    %     S(p,i)=1/D(p,i);
        S(p,i)=(X(p,i)+Y(p,i))*1.0/2;
        %%%%%%
        if(S(p,i)>1)%%范围限定在01之间
                S(p,i)=1;
        end
            if(S(p,i)<0)
                S(p,i)=0;
            end
    
        end
        
    end
    
    
        %*** 利用味道浓度判定函数求出味道浓度
    for p=1:popsize
        w=S(p,:);
        Smell(p)=distance(w,pathCount,lines,Start,Target);
    end
    
    %% 初始化公告板
    [bestsmell, bestindex]=min(Smell);
    %*** 利用视觉寻找伙伴聚集味道浓度最高之处,做法是保留最佳值初始位置及初始味道浓度。
    X_axis=X(bestindex,:);
    Y_axis=Y(bestindex,:);
    bestS=S(bestindex,:);
    SmellBest=bestsmell;
    
    %% 果蝇搜索过程
    %*** 果蝇迭代寻优
    for gen=1:maxgen
        %*** 利用嗅觉寻找食物
        for p=1:popsize
        %*** 初始果蝇个体飞行距离
        X(p,:)=X_axis+2*rand()-1;
        Y(p,:)=Y_axis+2*rand()-1;
    
        for i=1:pathCount
        %*** 求出与原点之距离
    %     D(p,i)=(X(p,i)^2+Y(p,i)^2)^0.5;
    %     %*** 味道浓度为距离之倒数,先求出味道浓度判定值。
    %     S(p,i)=1/D(p,i);
        S(p,i)=(X(p,i)+Y(p,i))*1.0/2;
        %%%%%%
        if(S(p,i)>1)%%范围限定在01之间
                S(p,i)=1;
        end
            if(S(p,i)<0)
                S(p,i)=0;
            end
        end
        
        end
    

    三、源代码

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    四、备注

    完整代码或者代写添加QQ 912100926

    展开全文
  • armulator.exe是快的ARM指令集模拟器(性能是qemu的两倍),支持ARM7,ARM9,ARM11,Cortex/Thumb,直接运行ELF和WINCE程序。(ELF程序用armcc或者arm gcc编译,WINCE程序用pb等编译) 。 如果只想关注应用程序开发,...
  • 利用一种的极限学习机(Extreme Learning Machine,ELM)分类优化方法(Extreme Learning Machine for Classification,ELMC)对蛋白质折叠进行识别,仅需调节很少的参数值就达到很好的测试精度。与支持向量机...
  • 结合卫星姿态控制系统重构性统计数据不足的特点以及资源最优化的要求,将重构性指标分配分为初次分配和再分配,由于卫星姿态控制系统因素指标的不确定性以及人的认识的模糊性,提出基于模糊综合评价法的重构性...
  • 多层回归网络便分解成一组自适应单元(A daline) , 而每个单元通过二次优化方法进行训练。采用 在有限步内找出全局的共轭梯度法(CG)进行寻优。由于学习过程采用超线性搜索, 大大减少 了循环步...
  • 汽车导航--安装方法

    2013-12-30 15:56:55
    截止2012年8月最好用、最新完美的版本,经测试搜星速度快、定位精度精、稳定性强,占用内存小,64兆内存完美运行其他特性如下:  1、精打细选,主程序采用飞歌标准版,2921J0A地图(2012年8月最新图资),实测...
    2012年8月12凯立德夏季高清优化版C1567-M7A06-2921J0A(完美破解,已上路实测,永久下载地址)


    截止2012年8月最好用、最新最完美的版本,经测试搜星速度快、定位精度精、稳定性强,占用内存小,64兆内存可完美运行其他特性如下: 
    1、精打细选,主程序采用飞歌标准版,2921J0A地图(2012年8月最新图资),实测64M内存可流畅运行  
    2、800*480分辨率,默认端口1、波特率4800,压缩包内附傻瓜式修改端口教程。 
    3、地图颜色更改,开机界面有免接收选项,带最小化按钮、收音机、手势,查找界面在原版基础上增加联想文件
    4、基础包、实景和路口放大文件、电子眼数据等等一切全部集合,全集成懒人包,新手无需再为繁杂的目录而烦恼
    5、主程序已进行优化并自带最新修改工具和全端口文件
    6、高清完美版本,搜星快,运行稳定,3.2G的高容量,你还在等待吗


    安装方法: 
        下载后,将解压出的NaviOne文件夹拷至导航卡根目录下,压缩包内附有端口修改方法,全图片,一看就会。
    如果不知道机器端口请下载检测工具:http://www.ctdisk.com/file/1005357(附教程)


    如有GPS方面的疑问,欢迎来我的百度空间
    http://hi.baidu.com/liuyanghei123/home
    汤汤汤

    2012.8.12



    展开全文
  • 设计了节点度不为0的WS型小世界网络作为粒子的邻居结构,自适应调整种群密度,提高种群多样性,引入了边界修正策略防止粒子陷入边界局部,构成了修正AHP中判断矩阵一致性的粒子群优化算法。拓展了粒子群优化...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 253
精华内容 101
关键字:

最优化方法解可新