网站首页  词典首页

请输入您要查询的论文:

 

标题 大黄蜂算法
范文

    俞健明

    摘要:本文介绍了一种新颖的关于TSP问题的算法,它通过计算每条边属于最短哈密顿回路的概率来找到最佳路径,是目前关于TSP问题的最新解决方案

    关键词:NP 问题;旅行商问题 ;数理统计;大黄蜂

    中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)30-0258-02

    TSP问题(Travelling Salesman Problem)又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访N个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。

    2010年英国科学家的一项研究发现,大黄蜂显示出能轻易破解“旅行商问题”的能力。进行研究的奈杰尔·雷恩博士说,蜜蜂每天都要在蜂巢和花朵间飞来飞去,为了采蜜而在不同的花朵间飞行是一件很耗精力的事情,因此蜜蜂每天都在解决“旅行商”问题。

    本文介绍了一种新的旅行商问题的算法,实验表明,该算法能较好的解释大黄蜂是如何解决旅行商问题,本文同时还探讨了该算法在解决旅行商问题中的一些问题和思路。

    因为大黄蜂在觅食的过程中采用了和本算法类似的策略,所以把这算法称为大黄蜂算法。

    1 问题的提出

    我们知道,在一个有n个结点的图中,较短的边不一定会属于该图的最短哈密顿回路,有些较长的边反而属于最短哈密顿回路。

    那么,我们自然会问:每个边属于最短哈密顿回路的可能性是多少呢?

    我们能否量化它吗?

    对一个n个结点的图中,当我们找出该图的最短哈密顿回路时,我们知道这n个边的概率是1,其他边的概率是0.

    但这对问题的解决没有任何帮助,当n变大时,问题仍然很困难。

    我们的基本思路是:对一个大的图按照一定的方法划分成很多个子图,对每个子图我们进行计算,然后汇总并计算出每条边在该划分下属于最短哈密顿回路的概率。

    2 算法介紹

    为了方便理解同时不失一般性,我们假定讨论的图只存在一个最短哈密顿回路。

    同时,本算法同样适用一般的拓扑图。

    2.1 K_划分(K>=4)

    对一个有n个结点的图,我们可以对它划分为由K个点的所组成的子图。这样,该图共有[nk]个这样的子图。

    例如 对图1(n=5)。可以生成C(5,4)个 4_划分图(见图2)

    2.2 K_路径(K>=4)

    是指在一个K_划分图中,过每个顶点一次的一条路径。例如图3是图1的一个4_划分图,BECD就是一条从B到D,经过E、C的4_路径。

    2.3 K_有效路径(K>=4)

    K_有效路径是指一条可能属于最短哈密顿回路中的一个连续段的K_路径。

    一般来说,从A到B的K_路径里最短的一条是K_有效路径。

    在不同的假设下,会有不同的K_有效路径。

    对每一个K_划分图,我们可以找出它的所有K_有效路径。例如,对(图1)的一个4_划分图(图3)。

    它的有效路径有:

    B到C:只有一条唯一路径 BEDC 所以BEDC是一条4_有效路径。

    B到D :这里存在两条4_路径 BCED和BECD,因为L(BCED)=17,L(BECD)=16,所以BECD是4_有效路径。

    B到E:只有一条有效路径 BCDE。

    C到D:只有一条有效路径 CBED。

    C到E:无有效路径

    D到E:只有一条有效路径 DCBE。

    2.4 K_统计

    对图中每条边添加成功和失败两个属性。假设a1a2…an 是一条K_有效路径。对aiai+1( i=1,2…n-1)边在成功属性上加1,其他边在失败属性上加1,边a1an不做处理。

    我们有S(X)代表边X成功的次数,用F(X)代表边X失败的次数。

    K_统计是指对每一个K_划分图,计算出每条边的成功和失败的次数。然后对每条边统计出它的成功和失败的总次数。

    以(图3)为例,总共有5条4_有效路径: BEDC、BECD、BCDE、CBED和DCBE。

    对每条可能路径作以下分析:以 BEDC为例,总共有 BE、DE、CD、CE参与竞争(B和C是端点,所以BC不参与竞争),结果BE、DE和CD胜出。胜出的成功上加1,没选上的失败上加1。

    2.5 K_链接度(K>=4)

    对每条边X我们定义以下公式, LK(X)=[S(X)SX+FX] (K>=4) ,(称LK(X)为边X的K_链接度。

    对于图1,根据汇总表(图4),我们可以计算出每条边的链接度L4(X)。

    LK(X)代表了X边在k_划分下的属于最短哈密顿回路的概率。

    对于LK(X)有一个重要的定理。

    定理:在一个有n个结点的图中(假设存在最短哈密顿回路),如果LK(X)=1,则边X一定属于该图的最短哈密顿回路(证明较简单,在这里就不作具体详述了)。

    根据汇总表,我们可以简单的算出最短哈密顿回路是ABCDA。

    2.6 条件K_链接度(K>=4)

    当我们假定某条边或几条边属于最短哈密顿回路时,其他边的K_链接度就会发生变化,我们把在某种条件下的K_链接度称为条件链接度,用 CLK(X)来表示变X的条件K_链接度。

    CLK(X)有类似于LK(X)的定理。

    2.7解集M

    是指包含能构成一条最短哈密顿回路的边的集合。当把一条边要加入到解集M的时候,要检查它和解集M里的边是否会发生冲突。只有相容的边才能加入解集M。

    对有n个结点的图来说,解集M最多只能包含N条边。

    3 算法描述

    一个广义的TSP问题是一个有n个结点的拓扑图,为了算法描述方便,我们假设该图只存在一条最短哈密顿回路。

    算法描述如下:

    确定K值(K>=4);

    K_统计;

    计算图中每条边的K_链接度;

    REPEAT

    {

    找到一条具有最大(条件)K_链接度的边X && X与解集M相容;

    将X加入解集M;

    K_统计;

    计算每条边的条件K_链接度。

    }

    UNTIL 解集M包含了N条边。

    该算法可以实现用一个较小的K来解决一个较大n的TSP 问题,它的复杂度是: O(nK+3)。

    4 对大黄蜂算法的一些思考和今后的方向

    对于大黄蜂算法,我们还有很多工作要做,重点有以下几个方面:

    1)k和之间的关系,一个很大的n,如何选取一个合适的k来进行计算。我们还需要更多的实验来确定。

    2)对CLK(X)的一些思考,我们现在是认为CLK(X) 最大,该边属于最短哈密顿回路的可能性就最大。我们是否能对k进行插值,CLK(X) 的单调上升的边也许是属于最短哈密顿回路的可能性最大。不过现在还是一个猜想,需要更多实验和严格的数学证明

    3)对大n的算法验证。

    参考文献:

    [1]Travel Optimization by Foraging Bumblebees through Readjustments of Traplines after Discovey of New Feeding Locations The American Naturalist December 2010,176(6).

    [2] How to Solve It:Modern Heuristics Zhigniew Michalewicz David B.Fogel

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/11 7:18:00