基于雪堆博弈进化的复杂网络节点覆盖方法

文档序号:9331158阅读:902来源:国知局
基于雪堆博弈进化的复杂网络节点覆盖方法
【技术领域】
[0001] 本发明属于网络技术领域,特别涉及一种复杂网络的节点覆盖方法,可用于分布 规划和网络优化,例如城市道路网络中监控设备最优安装位置的选择,投放广告时根据人 际关系网络选取重点投放对象。
【背景技术】
[0002] 复杂网络是现实世界中复杂系统抽象出来的一种表现形式,现实世界中存在很多 这种复杂网络,例如社会网络中的朋友关系网络、电力网、万维网、生物网络中的神经网络 以及新陈代谢网络等等。把现实世界系统中的独立个体抽象成网络中的节点,系统中个体 之间按照某种规则而自然形成或人为构造的一种关系抽象成节点间的边,这样就抽象出了 复杂网络。
[0003] 复杂网络的节点覆盖是指,一个节点的集合使得网络中的每一条边都至少有一端 接触集合中的节点。最小节点覆盖是指,用最少的节点来覆盖所有的边,也就是说,对于一 个给定的复杂网络,最小节点覆盖就是找到尽可能少的个体,同时又保证这些个体涉及到 网络中存在的所有关系。例如网络G的节点覆盖是一个节点集合V,使得G中的每一条边 都至少有一端接触V中的节点。则称集合V覆盖了G的边。G的最小覆盖是以最小的节点 集合V来覆盖网络中的所有边。以复杂网络中的二维规则网络为例说明该概念,如图1所 示,用灰色表示覆盖节点,白色表示未覆盖节点,则图la即为该网络的最小节点覆盖,而图 lb不是最小节点覆盖。
[0004] 网络的最小节点覆盖问题是最著名的组合优化问题之一,在现实中有着广泛的应 用,比如分布规划问题,网络优化等方面,同时也是解决一些其他重要问题的关键点,如测 算网络的鲁棒性等。
[0005] 最小节点覆盖问题是一个NP难问题,即几乎不可能找到一个在多项式时间内解 决该问题的有效算法,一个给定网络的精确解,即最小节点覆盖可以通过穷举搜索所有可 能的组合情况来得到,不过大多时候这是几乎无法付诸实践的。而很多启发式优化算法的 提出,可帮助得到一个比较接近最小覆盖结果的近似解。
[0006] Vercov方法是相对简单而著名的基准算法,该算法的思想是从边集合中随机选取 一条边,将所选边的两端点加入覆盖节点集,并从边集中删除与这两点相邻的所有边,再重 复"随机选边-删除邻边"过程直至边集为空,得到的节点集作为节点覆盖结果。该算法思 路简单,不要求有全局信息,处理网络的速度也非常快,但得到的结果非常粗糙,常常只能 保证得到一个基本覆盖解,离最小覆盖差得很远。
[0007] HGA算法是遗传算法GA在节点覆盖问题上结合局部优化技术LOT的针对性改进。 HGA算法以种群中的一个染色体表示网络的一个节点覆盖结果,通过启发式节点交叉操作 HVX产生新个体,并依一定概率发生突变;产生一定数量个体后对个体--进行局部优化, 即若一个节点所属的每一条边的另一个端点均为覆盖状态,则该节点由覆盖状态变为非覆 盖状态;再根据适应度函数选择较优的个体更新种群;进行若干次种群进化,最终种群中 的最优个体作为最终解。该算法能得到一个基本的覆盖结果,但不能保证得到十分好的结 果,特别是当网络平均度较大时,结果明显更差。
[0008] 还有一些经典算法也用来处理最小节点覆盖问题,如模拟退火,人工神经网络,蚁 群等算法,这些算法都只能保证得到基本的覆盖结果。另外,Warning算法虽也能求得较好 的覆盖解,但需要全局信息,并且只能处理平均度不超过自然对数e的网络,使用范围比较 有限,很多网络尤其是现实网络无法处理。
[0009] 上述算法均属于集中优化方法,根据全局信息控制进化过程,网络中的每一个节 点被视为一个无生命个体,无法自主行动。与之相对,还有一种分布式优化方法,只利用局 部信息,具有自组织性,视每个节点为一个智能个体,节点可以自主决定行为。
[0010] 分布式优化方法的典型代表如,基于记忆的最优反应算法MBR,该算法以网络中的 节点为博弈参与者构建雪堆博弈模型,利用博弈得到覆盖结果。
[0011] 雪堆博弈模型中,参与博弈的双方可选择策略包括合作策略C和背叛策略D两种, 根据不同的策略选择情况,博弈者获得不同的收益,一般地,雪堆博弈模型中参与者在不同 策略选择下的收益情况为:
[0012]
[0013] 其中,r为博弈模型中的耗损收益比,0〈r〈 1。
[0014] 若将复杂网络中的节点作为博弈的参与者,用合作策略C代表覆盖,用背叛策略D 代表未覆盖,节点的策略即节点的状态,则一个节点的当前最优策略这样选择:节点与它的 邻点进行雪堆博弈,如果该节点有m个背叛性邻点和n个合作性邻点,该节点作为合作者获 得累计收益U(C) =n+m(l-r),而作为背叛者则可以获得收益U(D) =n(l+r)。若U(D) > U(C),对于节点当前而言,D是最优策略,反之亦然。
[0015] MBR算法的基本过程为:将节点作为博弈参与者,开始时随机初始化各节点状态; 每个节点有一个记忆,记忆的大小由整数ML设置,ML即为记忆长度,记忆用以存放ML个该 节点的最优策略,算法开始时随机初始化该记忆;在每一代博弈中,每个节点同它的邻点进 行雪堆博弈,得到累积收益U(D)和U(C),再比较两者的大小,累计收益值较大的策略即为 节点的最优策略,将得到的最优策略存入节点的记忆,同时舍弃记忆中最早的一个策略;而 后,每个节点从自己的记忆中随机选择一个策略作为自己的当前策略,进行下一代博弈。重 复博弈更新过程,算法最终会收敛于一个稳定状态,即所有节点的记忆不再改变,此时所有 节点的当前策略集合就是一个网络节点覆盖结果。
[0016] MBR算法处理节点覆盖问题表现出良好性能,但也存在严重问题。由于其获得最 优结果的能力严重依赖于记忆的长度,随着处理的网络规模的增大,需要增加记忆长度,但 记忆长度的增加会使得程序耗时远大于线性地增加。迭代更新过程中节点策略选择是随机 的,具有盲目性,很多存入记忆的策略是无益的,而通过算法更新过程自身来舍弃这些不好 的策略付出的代价又极大,因为一个策略从进入记忆到被舍弃至少需要经过ML次更新。这 样,既限制了节点记忆能力的发挥,又带来大量的不必要更新过程。对于网络节点覆盖问 题,在保证网络被覆盖的前提下,选取的覆盖节点数越少越好。由于网络的连通特性,局部 结果的偏差会引起连锁反应,导致整体解陷入局部最优,而MBR算法的更新过程又无力避 免这种不良情况,所以最终往往无法得到最小覆盖结果。

【发明内容】

[0017]本发明的目的在于克服上述已有技术的不足,提出一种基于雪堆博弈进化的复杂 网络的最小节点覆盖方法,以有效实现对各种网络的最小节点覆盖,即用尽可能少的个体 保证这些个体涉及到网络中存在的所有关系。
[0018] 本发明所采用的技术方案是:用复杂网络中的节点作为博弈参与者构建雪堆博弈 模型,以复杂网络的一个节点覆盖结果作为一个个体,多个个体组成一个种群;从种群中选 出两个个体作为父代,经过两点交叉和突变操作产生子代个体;对这些子代个体经过无记 忆的雪堆博弈过程,达到稳定状态后选择较优的个体作为新一代种群中的个体;在新种群 基础上再进化更新,若干代后,将最终种群中的最优个体作为网络节点覆盖结果。详细步骤 包括:
[0019] (1)根据复杂网络的规模N设定进化种群规模S和代数G,用S个个体构成一个父 代种群,个体代表复杂网络的一个覆盖结果,即复杂网络中所有N个节点状态的集合;初始 化每个个体中每个节点的状态为覆盖状态C或未覆盖状态D;
[0020] (2)从父代种群中随机选择两个个体作为父代个体作两点交叉,以将两个父代个 体扩展为四个个体,再对该四个个体进行突变操作,得到四个变异后的准子代个体;
[0021] (3)对四个准子代个体分别进行无记忆雪堆博弈,再计算这四个准子代个体各自 的评价函数f(X)值,选择其中评价函数f(X)值较小的两个个体,作为子代种群中的新个 体,并从父代种群中删除(2)中的两个父代个体;
[0022] (4)重复步骤(2) _(3)直到产生S个新个体,用这些新个体构成子代种群,再将该 子代种群作为新的父代种群,完成一次种群更新;
[0023] (5)在新的父代种群的基础上,重复步骤(2)_⑷直到完成G次种群更新;
[0024] (6)将最后一次更新的父代种群中的评价函数f(X)值最小的个体作为复杂网络 的最小节点覆盖结果。
[0025]与现有技术相比,用本发明处理各种复杂网络的最小节点覆盖问题均能获得更优 的结果,特别在处理"小世界,高聚类"特性的复杂网络时,得到的结果远优于相同条件下的 其他方法,基本不会陷入局部最优。而相比于MBR算法,本发明在博弈更新时不需要记忆, 并运用进化思想,对不同连接结构的网络都有很强的适应能力,种群中个体众多,大大减小 了陷入局部最优解的风险。
【附图说明】
[0026] 图1是现有复杂网络的最小节点覆盖不例图;
[0027]图2是本发明的实现流程图;
[0028]图3是本发明实施例中PS网络的最小节点覆盖示意图。
【具体实施方式】
[0029] 本发明使用的复杂网络是PS网络,它通常是用来评估最小节点覆盖问题的算法 性能的。一个标准的PS网络,总节点数为3k+4,包括两行k+2个节点和第三行k个节点。 第一行的每个节点连接到同一列上的第二行的各节点。第二和第三行各节点相互连接。因 此,有两种类型覆盖状态:第二行被覆盖,为最小节点覆盖;或者第一和第三行被覆盖,非 最小节点覆盖。本例中处理1000个节点的PS网络,即k= 332。
[0030] 参照图2,本发明的实现步骤如下:
[0031] 步骤1,参数设置及初始化
[0032] 根据待处理的复杂网络规模设定进化种群规模S= 100和代数G= 1000,令耗费 收益比r= 0. 001,用这100个个体构成一个父代种群;随机初始化每个个体中每个节点的 状态为覆盖状态C或未覆盖状态D。
[0033] 步骤2,产生准子代个体
[0034] 从父代种群中随机选择两个个体作为父代个体进行两点交叉,即将两个父代个体 扩展为四个个体,再对该四个个体分别以1/1000的突变率进行突变操
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1