一种基于蚁群算法的fpga程序脆弱支路求取方法

文档序号:8445466阅读:214来源:国知局
一种基于蚁群算法的fpga程序脆弱支路求取方法
【技术领域】
[0001] 本发明属于电子电路技术领域,具体涉及一种基于蚁群算法的FPGA程序脆弱支 路求取方法。
【背景技术】
[0002] 蚁群算法(antcolonyoptimization,ACO),又称蚂蚁算法,是一种用来在图中寻 找优化路径的机率型算法。它由MarcoDorigo于1992年在他的博士论文中提出,其灵感 来源于蚂蚁在寻找食物过程中发现路径的行为。蚁群算法是一种模拟进化算法,初步的研 宄表明该算法具有许多优良的性质。蚁群算法具有一种新的模拟进化优化方法的有效性和 应用价值。
[0003] 蚁群算法的特点:
[0004] 1)蚁群算法是一种自组织的算法。在系统论中,自组织和它组织是组织的两个基 本分类,其区别在于组织力或组织指令是来自于系统的内部还是来自于系统的外部,来自 于系统内部的是自组织,来自于系统外部的是他组织。如果系统在获得空间的、时间的或 者功能结构的过程中,没有外界的特定干预,我们便说系统是自组织的。在抽象意义上讲, 自组织就是在没有外界作用下使得系统熵减小的过程(即是系统从无序到有序的变化过 程)。蚁群算法充分体现了这个过程,以蚂蚁群体优化为例子说明。当算法开始的初期,单 个的人工蚂蚁无序的寻找解,算法经过一段时间的演化,人工蚂蚁间通过信息激素的作用, 自发的越来越趋向于寻找到接近最优解的一些解,这就是一个无序到有序的过程。
[0005] 2)蚁群算法是一种本质上并行的算法。每只蚂蚁搜索的过程彼此独立,仅通过信 息激素进行通信。所以蚁群算法则可以看作是一个分布式的多agent系统,它在问题空间 的多点同时开始进行独立的解搜索,不仅增加了算法的可靠性,也使得算法具有较强的全 局搜索能力。
[0006] 3)蚁群算法是一种正反馈的算法。从真实蚂蚁的觅食过程中我们不难看出,蚂蚁 能够最终找到最短路径,直接依赖于最短路径上信息激素的堆积,而信息激素的堆积却是 一个正反馈的过程。对蚁群算法来说,初始时刻在环境中存在完全相同的信息激素,给予系 统一个微小扰动,使得各个边上的轨迹浓度不相同,蚂蚁构造的解就存在了优劣,算法采用 的反馈方式是在较优的解经过的路径留下更多的信息激素,而更多的信息激素又吸引了更 多的蚂蚁,这个正反馈的过程使得初始的不同得到不断的扩大,同时又引导整个系统向最 优解的方向进化。因此,正反馈是蚂蚁算法的重要特征,它使得算法演化过程得以进行。
[0007] 4)蚁群算法具有较强的鲁棒性。相对于其它算法,蚁群算法对初始路线要求不高, 即蚁群算法的求解结果不依赖于初始路线的选择,而且在搜索过程中不需要进行人工的调 整。其次,蚁群算法的参数数目少,设置简单,易于蚁群算法应用到其它组合优化问题的求 解。
[0008] 蚁群算法的应用进展以蚁群算法为代表的蚁群智能已成为当今分布式人工智能 研宄的一个热点,许多源于蜂群和蚁群模型设计的算法己越来越多地被应用于企业的运 转模式的研宄。美国五角大楼正在资助关于群智能系统的研宄工作-群体战略(Swarm Strategy),它的一个实战用途是通过运用成群的空中无人驾驶飞行器和地面车辆来转移 敌人的注意力,让自己的军队在敌人后方不被察觉地安全进行。英国电信公司和美国世界 通信公司以电子蚂蚁为基础,对新的电信网络管理方法进行了试验。群智能还被应用于工 厂生产计划的制定和运输部门的后勤管理。美国太平洋西南航空公司采用了一种直接源于 蚂蚁行为研宄成果的运输管理软件,结果每年至少节约了 1000万美元的费用开支。英国联 合利华公司己率先利用群智能技术改善其一家牙膏厂的运转情况。美国通用汽车公司、法 国液气公司、荷兰公路交通部和美国一些移民事务机构也都采用这种技术来改善其运转的 机能。鉴于群智能广阔的应用前景,美国和欧盟均于近几年开始出资资助基于群智能模拟 的相关研宄项目,并在一些院校开设群体智能的相关课程。国内,国家自然科学基金"十五" 期间学科交叉类优先资助领域中的认知科学及其信息处理的研宄内容中也明确列出了群 智能领域的进化、自适应与现场认知主题。
[0009] 蚁群优化算法最初用于解决TSP问题,经过多年的发展,已经陆续渗透到其他领 域中,比如图着色问题、大规模集成电路设计、通讯网络中的路由问题以及负载平衡问题、 车辆调度问题等。蚁群算法在若干领域己获得成功的应用,其中最成功的是在组合优化问 题中的应用。
[0010] 在网络路由处理中,网络的流量分布不断变化,网络链路或结点也会随机地失效 或重新加入。蚁群的自身催化与正向反馈机制正好符合了这类问题的求解特点,因而,蚁群 算法在网络领域得到一定应用。蚁群觅食行为所呈现出的并行与分布特性使得算法特别适 合于并行化处理。因而,实现算法的并行化执行对于大量复杂的实际应用问题的求解来说 是极具潜力的。
[0011] FPGA(Field-ProgrammableGateArray),S卩现场可编程门阵列,它是在PAL、 GAUCPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域 中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电 路数有限的缺点。
[0012] FPGA芯片在工作中,每个模块都会以一定的概率出错,一个模块出错也会影响到 与之相连接的模块。如果能够对FPGA芯片每个模块的出错概率进行求解,就能很好的对 FPGA程序的可靠性进行评估。

【发明内容】

[0013] 本发明的目的是克服现有技术中对FPGA程序可靠性进行评估困难的问题。
[0014] 为此,本发明提供了一种基于蚁群算法的FPGA程序脆弱支路求取方法,包括如下 步骤:
[0015] 步骤一、寻找FPGA程序的拓补连接关系;
[0016] 步骤二、建立模型;
[0017] 步骤三、利用蚁群算法进行最短路径的判定;
[0018] 步骤四、输出结果。
[0019] 上述一种基于蚁群算法的FPGA程序脆弱支路求取方法,所述的步骤一、寻找FPGA 程序的拓补连接关系,包括如下步骤:
[0020] (1)读取FPGA程序;
[0021] (2)根据程序中文件的名称确定程序中的模块,逐步查找程序中的模块并且记录 模块个数为K;
[0022] (3)定位到模块开头;
[0023] (4)利用port关键字确定每个模块的端口,并且记录端口名称和端口数量;
[0024] (5)利用component关键字确定元件,并且记录元件的名称,元件的端口名称和数 量;
[0025] (6)利用portmap关键字确定元件的连接关系;
[0026] (7)重复(4)~(6),直到找完每一个模块;
[0027] (8)保存找到的所有信息。
[0028] 上述一种基于蚁群算法的FPGA程序脆弱支路求取方法,所述的步骤二、建立模 型,包括如下步骤:
[0029] a、计算模块的端口总数:
【主权项】
1. 一种基于蚁群算法的FPGA程序脆弱支路求取方法,其特征在于包括如下步骤: 步骤一、寻找FPGA程序的拓补连接关系; 步骤二、建立模型; 步骤三、利用蚁群算法进行最短路径的判定; 步骤四、输出结果。
2. 根据权利要求1所述的一种基于蚁群算法的FPGA程序脆弱支路求取方法,其特征在 于,所述步骤一、寻找FPGA程序的拓补连接关系,具体包括如下步骤: ⑴读取FPGA程序; (2) 根据程序中文件的名称确定程序中的模块,逐步查找程序中的模块并且记录模块 个数为K ; (3) 定位到模块开头; (4) 利用port关键字确定每个模块的端口,并且记录端口名称和端口数量; (5) 利用component关键字确定元件,并且记录元件的名称,元件的端口名称和数量; (6) 利用port map关键字确定元件的连接关系; (7) 重复⑷~(6),直到找完每一个模块; (8) 保存找到的所有信息。
3. 根据权利要求1所述的一种基于蚁群算法的FPGA程序脆弱支路求取方法,其特征在 于,所述步骤二、建立模型,包括如下步骤: a、 计算模块的端口总位数:
(1) 其中,第i个模块连接m个端口,^为第j个端口位数; 模块的总端口位数为: T = It1, t2... tj (2) b、 模块的自身出错概率设为: E - Ie1, θ2. . . θ^} (3) 第i个模块向第j个模块的输入端口总位数aijQ,j = 1,2. . . k,i辛j)为:
(4) 其中,第i个模块向第j个模块的输入端口总数为P ; Ci为第i个模块的输出端口总位数:C = {c i,c2. . . ck}: 贝1J,第j个模块的总出错权值为:
(5) 模块的总出错权值为: P = (P1, P2... PkI (6) c、 第i个模块向第j个模块的输出端口总位数bij(i,j = 1,2. . . k,i辛j)为:
(7) 其中,第i个模块向第j个模块的输入端口总数为q ; 贝],第i个模块到第j个模块的距离dijQ,j = 1,2. . . k,i辛j)为:
(8) 贝ij,距离矩阵为:
d、 模块标号作为节点,Clij作为节点之间的距离,模型建立完毕。
4.根据权利要求1所述的一种基于蚁群算法的FPGA程序脆弱支路求取方法,其特征在 于,所述步骤三、利用蚁群算法进行最短路径的判定,包括如下步骤: I、 设置蚁群算法的参数,包括如下参数: 启发因子,信息素的重要程度ALPHA = 1 ; 期望因子,节点间距离的重要程度BETA = 2 ; 信息素残留参数ROU = 0. 5 ; 蚂蚁数量 N_ANT_C0UNT = 100 ; 迭代次数 N_IT_C0UNT = 1000 ; 节点数量N_G_C0UNT =节点向量J ; 总的信息素DBQ = 100 ; 两两节点间距离g_Distance =距离矩阵D ; II、 利用蚁群算法进行最短路径判定; III、 输出最短路径。
【专利摘要】本发明属于电子电路技术领域,具体涉及一种基于蚁群算法的FPGA程序脆弱支路求取方法,包括如下步骤:步骤一、寻找FPGA程序的拓补连接关系;步骤二、建立模型;步骤三、利用蚁群算法进行最短路径的判定;因此,该基于蚁群算法的FPGA程序脆弱支路求取方法,能够根据FPGA各模块之间信号的流拓扑关系,利用蚁群行为特性进行建模以后,求出具有最高出错率的之路,从而能为FPGA程序的可靠性评估提供依据。
【IPC分类】G06F11-22, G06N3-00
【公开号】CN104765667
【申请号】CN201510184752
【发明人】闫允一, 李海旭, 郭宝龙
【申请人】西安电子科技大学
【公开日】2015年7月8日
【申请日】2015年4月17日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1