CN101122973A - 一种基于现场可编程门阵列的蚁群算法仿生硬件 - Google Patents
一种基于现场可编程门阵列的蚁群算法仿生硬件 Download PDFInfo
- Publication number
- CN101122973A CN101122973A CNA2007101217720A CN200710121772A CN101122973A CN 101122973 A CN101122973 A CN 101122973A CN A2007101217720 A CNA2007101217720 A CN A2007101217720A CN 200710121772 A CN200710121772 A CN 200710121772A CN 101122973 A CN101122973 A CN 101122973A
- Authority
- CN
- China
- Prior art keywords
- module
- solution
- generator
- ant
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于现场可编程门阵列的蚁群算法仿生硬件。蚁群算法寻优过程中所体现出的并行性、协同性、自组织性、动态性、强鲁棒性等特点与蚁群算法仿生硬件的许多要求是相符的。该蚁群算法仿生硬件结构主要包括蚁群模块、发生器模块、评价模块、控制模块、输入模块和输出模块六个基本模块。其中发生器模块包含m个相同的解发生器,每一个解发生器模拟一只蚂蚁利用蚁群算法机制构造解的行为;评价模块用来评价由解发生器所产生解的质量;控制模块用来辅助评价算法迭代中所产生的最好解和新的精灵解,并与评价模块进行信息交互。该蚁群算法仿生硬件具有自组织、自适应、自修复、执行速度快等优点,并具有较强的容错性。
Description
(一)技术领域
本专利涉及一种基于现场可编程门阵列(Field programmable gatearray,FPGA)的蚁群算法仿生硬件(Bio-inspired hardware,BHW),属于电子技术领域。
(二)背景技术
仿生硬件是一种能根据外部环境的变化而自主地、动态地改变自身的结构和行为以适应其生存环境的硬件电路,它可以像生物一样具有硬件自适应、自组织和自修复特性。仿生硬件是通过进化机制来实现电子电路系统的实时自身重构;广义上,仿生硬件包括各种形式的硬件,从传感器到能够适应变化的环境,且在运行期间增强其性能的整个电子系统、微机电系统。除了自组织生成具有新功能的电路外,仿生硬件还可用于保持现有功能、获得生物性容错以及实现硬件的实时“康复”。
早在20世纪60年代,计算机之父Neumann J Von就提出了研制具有自繁殖与自修复能力通用机器的伟大构想。1992年,日本学者Garis H de和瑞士联邦工学院的科学家们同时提出了将FPGA的结构可重配置特性与进化算法相结合的方案,标志着仿生硬件这一新兴研究领域的正式诞生。随后仿生硬件的研究得到了迅猛发展,很多国内外学者投身其中,并于1995年10月在瑞士洛桑召开了仿生硬件国际专题会议(TowardsEvolvable Hardware),1996年10月在日本召开了首届进化系统国际大会(ICES96),以后该会议每隔两年举行一次。同时,鉴于这一新兴研究领域可望在空间探索和国防应用中产生巨大影响,美国航空航天局(NationalAeronautics and Space Administration,NASA)和国防部(Department ofdefense,DoD)对仿生硬件也表现出极大的兴趣,并于1999年召开了首届NASA/DoD仿生硬件专题讨论会,之后每年都要举行一次类似的讨论会,以促进仿生硬件的理论研究和应用开发,其研究目标是研制用于航天飞机、宇宙飞船、空间探测器、人造卫星、战略飞机、核潜艇的自适应与自修复电子系统和测控系统。
仿生硬件模拟自然进化过程,将仿生优化算法的思想用于硬件物理结构的设计,特别是电子系统的设计。仿生优化算法的发展和快速可重配置硬件的出现极大地推动和促进了仿生硬件的发展。所以有学者对仿生硬件提出了这样一个公式性的描述
仿生硬件=仿生算法+可编程逻辑器件(1)
仿生硬件的硬件基础是可编程逻辑器件(Programmable logic device,PLD)。由于仿生进化过程具有随机性且要进行很多次,因此要求相应的硬件能够被多次反复配置,所以更严格地说,可重配置硬件(Reconfigurablehardware)是仿生硬件的硬件基础,而可无穷次重复配置的静态随机存储器(Static random access memory,SRAM)型FPGA是比较理想的实现设备。
传统的基于FPGA的硬件设计是一种自顶向下的设计流程,这其中还要在各个不同层次进行仿真模拟,以保证设计的正确性。将PLD能够形成的所有功能电路的集合作为一个空间,利用仿生优化算法在这个空间内对问题进行求解,以找到满足预定功能的硬件结构,此即仿生硬件的基本原理。
对仿生硬件设计个体的评价往往是比较费时的,随着输入变量的增加,评价的输入所有的可能组合数是成指数增长的,另一方面由于不当的输入可能会造成硬件的物理损坏,所以这就要求硬件本身具有较强的容错性和鲁棒性,同时也要求从算法上保证生成的个体都是合理的。因此,可以将仿生硬件的实现条件归结为:
(1)硬件支持运行时间的动态重配置,包括结构、连线等;
(2)硬件结构要公开,能够知道硬件内部结构的配置方法和配置位串的信息;
(3)硬件要有一定的容错性和鲁棒性;
(4)要有快速的硬件设计流程,包括工艺映射、布局、布线及下载等。
Isaacs J C等将遗传算法和蚁群算法结合,提出了一种嵌入式硬件随机数据发生器设计的新思路,但是他们只是做了离线仿真,并没有在硬件上给予实现。Scheuermann B等提出了一种基于群体-蚁群优化算法的仿生硬件实现方案,并详细给出了蚁群算法的FPGA硬件总体结构;Xiong Z H等提出了遗传算法与蚁群算法动态融合的软硬件划分算法。上述系列仿生硬件均存在实时性不高、鲁棒性不强、应用范围不广等缺点。
本发明在基于现场可编程门阵列的蚁群算法仿生硬件实现过程中采用了蚁群智能的如下特点:
(1)在蚂蚁不断散布生物信息激素的加强作用下,新的信息会很快被加入到环境中。而由于生物信息激素的蒸发更新,旧的信息会不断被丢失,体现出一种动态特性;
(2)由于许多蚂蚁在环境中感受散布的生物信息激素同时自身也散发生物信息激素,这使得不同的蚂蚁会有不同的选择策略,具有分布性;
(3)最优路线是通过众多蚂蚁的合作被搜索得到的,并成为大多数蚂蚁所选择的路线,这一过程具有协同性;
(4)蚂蚁个体之间、群体之间以及与环境之间的相互作用、相互影响、相互协作,可以完成的复杂的任务,这种适应性表现为蚁群算法的鲁棒性;
(5)自组织使得蚂蚁群体的行为趋向结构化,其原因在于包含了一个正反馈的过程。这个过程利用了全局信息作为反馈,正反馈使系统演化过程中较优解的自增强作用,使得问题的解向着全局最优化的方向不断变化,最终能有效地获得相对较优解。
蚁群算法寻优过程中所体现出的并行性、协同性、自组织性、动态性、强鲁棒性等特点与蚁群算法仿生硬件的许多要求是相符的。用现场可编程门阵列设计实现的蚁群算法仿生硬件,具有自组织、自适应、自修复、执行速度快等优点,可广泛应用于电路设计、自适应控制、机器人技术、模式识别、容错系统、航空航天等领域。
(三)发明内容
蚁群算法是一种最新发展的仿生智能优化算法,该算法模拟了自然界蚂蚁的群体觅食行为。自然界中,蚂蚁通过相互协调完成相对其本身来说比较艰巨的任务,科学家发现蚂蚁总能在较短的时间寻找到其巢穴与食物源之间最短的路径。蚁群算法最早用来成功地解决了著名的TSP。目前人们对蚁群算法的研究已经由当初单一的旅行商问题领域渗透到了多个应用领域,由解决一维静态优化问题发展到解决多维动态组合优化问题,由离散域范围内的研究逐渐拓展到了连续域范围内的研究,而且在蚁群算法的硬件实现上也取得了很多突破性进展,从而使这种新兴的仿生优化算法展现出勃勃生机和广阔的发展前景。
蚁群算法的主要特点是:正反馈、并行性及分布式计算。正反馈过程使得该方法能较快地发现问题的较好解;分布式易于并行实现,与启发式算法相结合,使得该方法易于发现更好的解。
经过生物学家研究,发现蚂蚁之间是通过一种称为信息激素的化学物质来互相通信,并互相影响,真实的蚂蚁外出觅食的时候会不断地在经过的路径上分泌信息素,记录自己经过的路线,路径上的信息素浓度将影响后续蚂蚁的行进路线。对于较短的路径,在单位时间内经过的蚂蚁数量较多,路径上的信息素浓度较高,吸引着较多的蚂蚁沿该路径搜索;对于距离较长的路径,由于单位时间内经过的蚂蚁数量较少,路径上的信息素浓度较低;而且信息素会随着时间而挥发,从而较长的路径的信息素浓度弱化就会比较明显,而对于较短路径则由于经过的蚂蚁数量较多,信息素浓度的衰减作用就显得次要,主要体现为信息素浓度被经过的蚂蚁增强,从而形成了一种正反馈。这种正反馈机制为蚁群寻找最优路径提供了可行性。蚂蚁走过的路径越短,信息激素浓度越高,而信息激素浓度越高,吸引的蚂蚁越多,最后所有的蚂蚁都集中到信息激素浓度最高的一条路径上,这条路径就是从巢穴到食物源的最短路径。图1为真实蚂蚁的觅食过程。
蚁群算法实际上是一类智能多主体系统,其自组织机制使得蚁群算法不需要对所求问题的每一方面都有详尽的认识。自组织本质上是蚁群算法机制在没有外界作用下使系统熵增加的动态过程,体现了从无序到有序的动态演化,其逻辑结构如图2所示。
蚁群算法的数学模型为:设bi(t)表示t时刻位于元素i的蚂蚁数目,τij(t)为t时刻路径(i,j)上的信息量,n表示TSP规模,m为蚁群中蚂蚁的总数目,则 Γ={τij(t)|ci,cj_C}是t时刻集合C中元素(城市)两两连接lij上残留信息量的集合。在初始时刻各条路径上信息量相等,并设τij(0)=const,基本蚁群算法的寻优是通过有向图g=(C,L,Γ)实现的。
蚂蚁k(k=1,2,…,m)在运动过程中,根据各条路径上的信息量决定其转移方向。这里用禁忌表tabuk(k=1,2,…,m)来记录蚂蚁k当前所走过的城市,集合随着tabuk进化过程作动态调整。在搜索过程中,蚂蚁根据各条路径上的信息量及路径的启发信息来计算状态转移概率。pij k(t)表示在t时刻蚂蚁k由元素(城市)i转移到元素(城市)j的状态转移概率
式中,allowedk={C-tabuk}表示蚂蚁k下一步允许选择的城市。α为信息启发式因子,表示轨迹的相对重要性,反映了蚂蚁在运动过程中所积累的信息在蚂蚁运动时所起的作用,其值越大,则该蚂蚁越倾向于选择其它蚂蚁经过的路径,蚂蚁之间协作性越强;β为期望启发式因子,表示能见度的相对重要性,反映了蚂蚁在运动过程中启发信息在蚂蚁选择路径中的受重视程度,其值越大,则该状态转移概率越接近于贪心规则。ηij(t)为启发函数,其表达式如下
式中,dij表示相邻两个城市之间的距离。对蚂蚁k而言,dij越小,则ηij(t)越大,pij k(t)也就越大。显然,该启发函数表示蚂蚁从元素(城市)i转移到元素(城市)j的期望程度。
为了避免残留信息素过多引起残留信息淹没启发信息,在每只蚂蚁走完一步或者完成对所有n个城市的遍历(也即一个循环结束)后,要对残留信息进行更新处理。这种更新策略模仿了人类大脑记忆的特点,在新信息不断存入大脑的同时,存贮在大脑中的旧信息随着时间的推移逐渐淡化,甚至忘记。由此,t+n时刻在路径(i,j)上的信息量可按如下规则进行调整
τij(t+n)=(1-ρ)·τij(t)+Δτij(t)(3)
式中,ρ表示信息素挥发系数,则1-ρ表示信息素残留因子,为了防止信息的无限积累,ρ的取值范围为:ρ_[0,1);Δτij(t)表示本次循环中路径(i,j)上的信息素增量,初始时刻Δτij(0)=0,Δτij k(t)表示第k只蚂蚁在本次循环中留在路径(i,j)上的信息量。
根据信息素更新策略的不同,目前有三种不同的基本蚁群算法模型,分别称之为Ant-Cycle模型、Ant-Quantity模型及Ant-Density模型,其差别在于Δτij k(t)求法的不同。由于Ant-Quantity模型及Ant-Density模型均是对信息素的局部更新,而Ant-Cycle模型是整体更信息素,在求解TSP问题时效果良好,所以用Ant-Cycle模型作为基本蚁群算法的信息素更新方式。在Ant-Cycle模型中
式中,Q表示信息素强度,它在一定程度上影响算法的收敛速度;Lk表示第k只蚂蚁在本次循环中所走路径的总长度。
通过对交替逻辑与路由结构之间的选择,可将FPGA视为软件与硬件系统之间联系的桥梁。利用目前流行的专业软件可快速地完成许多传统电路的设计,从而避免了传统电路设计中一些不必要的开支,并能快速纠正设计中所出现的一些错误。将电路配置到FPGA芯片上并切换到运行模式,而该模式的内在并行性可保证其高效的快速性能。FPGA技术加速了系统的开发研制进程,这项技术不仅适合于快速成型,而且还可替代中小规模生产中的逻辑门阵列。图3描述了一个简化的FPGA结构。
由图3可见,FPGA包括三个核心配置单元,即:
(1)配置逻辑模块(Configurable logic block,CLB):由可完成逻辑运算、寄存等功能的基本器件组成;
(2)输入/输出模块(Input/output block,IOB):形成路由网络和封装引脚的中介;
(3)路由网络:包括多个横向通道、纵向通道和容许逻辑模块介入的可配置换向器,从而构成一个复杂的计算结构。
本发明涉及一种基于现场可编程门阵列的蚁群算法仿生硬件,该硬件具体实现结构如下:
该仿生硬件采用了从顶向下层次化的设计方法,其总体结构如图4所示。由图4可见,该蚁群算法仿生硬件结构主要包括蚁群模块、发生器模块、评价模块、控制模块、输入模块和输出模块六大基本模块。其核心模块是蚁群模块、发生器模块、评价模块。基于FPGA的蚁群算法仿生硬件详细设计结构如图5所示。
由图5可见,蚁群模块包括群矩阵Q=[qij]n×k,该矩阵由j=0列的精灵解和j∈{1,2,…,k-1}列中的FIFO-序列构成。蚁群模块负责将群矩阵中第i行的qih(h∈{0,1,…,k-1})传送到发生器模块,当迭代结束时,蚁群模块可从评价模块中接收最优解,然后将其加入到序列中。发生器模块可使m个解发生器同时工作,其中一个解发生器对应一只蚂蚁,所有的解均由解发生器传送到评价模块中的m个并行评价框内。m个解的评价结果将集中于比较框中,由此来确定当前迭代中的最好解。如果所得最好解优于当前最好解,则将当前最好解置换。
发生器模块包含m个相同的解发生器,每一个解发生器模拟一只蚂蚁利用蚁群算法机制构造解的行为。解发生器如图6所示。由图6可见,解发生器包含三个基本单元,即S-阵列、匹配缓冲区和选择器。S-阵列用来存储和保持si∈S中的选择集{S,…,n-1},其中i∈{0,…,c},且c=|S|-1。同时,S-阵列可被其包含的内容所访问。当它从蚁群模块接收到传送项qih时,可将qih与S中的剩余项进行比较。若存在某项sl∈S,且si=qih,则S-阵列返回地址al,其中al是S-阵列中sl的地址,且将al保存于匹配缓冲区内。选择器用来建立状态转移概率分布并随机选择sl*∈S,随后将其送至评价模块。
解发生器的处理流程如图7所示。由图7可见,处理流程开始后,解发生器使可选集S=(0,...,n-1),且初始化S-计数器c=n-1。该S-计数器是由控制模块中的外围逻辑实现,对于所有的解发生器而言,当前的S-计数器值都是可用的;匹配计数器M用来表示存于匹配缓冲区中匹配地址的数目。该循环初始化完成之后,群体i行中的所有项qih(h∈{0,1,…,k-1})都传送到S-阵列,当S-阵列中某项sl被匹配后,即sl=qih,则将与其相对应的匹配地址保存于匹配缓冲区内。当该循环周期的最后一次迭代结束后,匹配缓冲区将包含群体和可选集i行中的所有项。蚂蚁(解发生器)可作出解向量中第i个位置的决策,它随机选择地址al*,并将其传送到S-阵列中,随后将被选项占sl*存于地址al*中,且将sl*传送到对应的评价模块中,然后将sl*从选择集S中移走,该过程不断对解向量中剩余的n-C个位置作出决策。
S-阵列的操作包含三个基本阶段,即传送阶段、选择阶段和压缩阶段。在传送阶段,群矩阵i行中的k个项被传送到S-单元,S-单元中的比较器把传送项与其已存有的s项进行比较。若相等,则当各自的S-单元活跃时(AF=1),S-单元将去除地址a。
当选择器随机选择被选项sl*后,S-阵列即进入了选择阶段。将被选地址al*传送到S-单元,每一个S-单元用其比较器将传送来的地址与其a地址进行比较。
S-单元l*将其所存的sl*项作为查询结果传送到评价模块。每一个S-单元i也会利用其自身的比较器检查是否为被选S-单元的前继,即 所有的前继S-单元设置其匹配标志(Match flag,MF)为MF=1,而其它的则设置MF=0。
在S-阵列的压缩阶段,每一个S-单元将其活跃标志(AF)及其存储项送至后续S-单元。如果选择阶段的匹配标志MF=1,则S-单元锁存来自前继S-单元的相应数据,且逻辑数0被设置到第一个S-单元的AF标志中。最终结果是被选项sl*被覆盖,被选单元(即aj<l*)的左边所有项均向右移动一个单元。一次迭代完成之后,通过将S-单元地址值调入到s-寄存器的方式将S-阵列中数据寄存器的原始值再次初始化。
选择器结构如图8所示。选择器用来接收来自匹配缓冲区内匹配项M的数目。一旦随机数r产生之后,可将其与c相比较,以决定S-阵列或匹配缓冲区内缓冲地址中的某项是否被选中。
评价模块用来评价由解发生器所产生解的质量,该模块的核心即为比较模块。每一个需要用蚁群算法解决的优化问题均需特定的评价模块,该评价模块包含着特定问题的评价参数,并可计算来自解发生器的目标函数值。
比较模块用来评价算法迭代中所产生的最好解和新的精灵解(如果已经发现),并将其存于群体中。这里所设计的比较模块如图9所示。图9中,比较树可减少比较模块的逻辑延时,用来构造最好解的解发生器标志(best-index),并将其传送到蚁群模块。一个附加比较器将目前迭代中最好解与已发现最好解进行比较,如果当前最好解优于已发现的最好解,则设置精灵标志“is-elite”。
本发明一种用现场可编程门阵列设计实现的蚁群算法仿生硬件,其优点及所达成的功效是:基于现场可编程门阵列实现的蚁群算法仿生硬件具有自组织、自适应、自修复、执行速度快,并具有较强的容错性。
本发明所开发的蚁群算法仿生硬件可广泛应用于电路设计、自适应控制、机器人技术、模式识别、容错系统、航空航天等领域。
(四)附图说明
图1现实中蚁群寻找食物的过程
图2基本蚁群算法的逻辑结构
图3FPGA的简化结构
图4基于FPGA的蚁群算法仿生硬件模块化体系结构
图5包含核心模块的蚁群算法仿生硬件结构
图6蚁群算法仿生硬件解发生器
图7蚁群算法仿生硬件解发生器的处理流程
图8蚁群算法仿生硬件选择器
图9蚁群算法仿生硬件比较模块
图中标号及符号说明如下:
CLB——配置逻辑模块
IOB——输入/输出模块
qij——群矩阵Q元素
S——S-阵列
ADD——加法运算
SUB——减法运算
enable——使能
best-index——解发生器标志
is-elite——精灵标志
(五)具体实施方式
本发明一种基于现场可编程门阵列的蚁群算法仿生硬件,该硬件具体实现结构如下:
该仿生硬件采用了从顶向下层次化的设计方法,其总体结构如图4所示。由图4可见,该蚁群算法仿生硬件结构主要包括蚁群模块、发生器模块、评价模块、控制模块、输入模块和输出模块六大基本模块。其核心模块是蚁群模块、发生器模块、评价模块。基于FPGA的蚁群算法仿生硬件详细设计结构如图5所示。
由图5可见,蚁群模块包括群矩阵Q=[qij]n×k,该矩阵由j=0列的精灵解和j∈{1,2,…,k-1}列中的FIFO-序列构成。蚁群模块负责将群矩阵中第i行的qih(h∈{0,1,…,k-1})传送到发生器模块,当迭代结束时,蚁群模块可从评价模块中接收最优解,然后将其加入到序列中。发生器模块可使m个解发生器同时工作,其中一个解发生器对应一只蚂蚁,所有的解均由解发生器传送到评价模块中的m个并行评价框内。m个解的评价结果将集中于比较框中,由此来确定当前迭代中的最好解。如果所得最好解优于当前最好解,则将当前最好解置换。
发生器模块包含m个相同的解发生器,每一个解发生器模拟一只蚂蚁利用蚁群算法机制构造解的行为。解发生器如图6所示。由图6可见,解发生器包含三个基本单元,即S-阵列、匹配缓冲区和选择器。S-阵列用来存储和保持sl∈S中的选择集{S,…,n-1},其中i∈{0,…,c},且c=|S|-1。同时,S-阵列可被其包含的内容所访问。当它从蚁群模块接收到传送项qih时,可将qih与S中的剩余项进行比较。若存在某项sl∈S,且si=qih,则S-阵列返回地址al,其中al是S-阵列中sl的地址,且将al保存于匹配缓冲区内。选择器用来建立状态转移概率分布并随机选择sl*∈S,随后将其送至评价模块。
解发生器的处理流程如图7所示。由图7可见,处理流程开始后,解发生器使可选集S=(0,...,n-1),且初始化S-计数器c=n-1。该S-计数器是由控制模块中的外围逻辑实现,对于所有的解发生器而言,当前的S-计数器值都是可用的;匹配计数器M用来表示存于匹配缓冲区中匹配地址的数目。该循环初始化完成之后,群体i行中的所有项qih(h∈{0,1,…,k-1})都传送到S-阵列,当S-阵列中某项sl被匹配后,即sl=qih,则将与其相对应的匹配地址保存于匹配缓冲区内。当该循环周期的最后一次迭代结束后,匹配缓冲区将包含群体和可选集i行中的所有项。蚂蚁(解发生器)可作出解向量中第i个位置的决策,它随机选择地址al*,并将其传送到S-阵列中,随后将被选项sl*存于地址al*中,且将sl*传送到对应的评价模块中,然后将sl*从选择集S中移走,该过程不断对解向量中剩余的n-c个位置作出决策。
S-阵列的操作包含三个基本阶段,即传送阶段、选择阶段和压缩阶段。在传送阶段,群矩阵i行中的k个项被传送到S-单元,S-单元中的比较器把传送项与其已存有的s项进行比较。若相等,则当各自的S-单元活跃时(AF=1),S-单元将去除地址a。
当选择器随机选择被选项sl*后,S-阵列即进入了选择阶段。将被选地址al*传送到S-单元,每一个S-单元用其比较器将传送来的地址与其a地址进行比较。
S-单元l*将其所存的sl*项作为查询结果传送到评价模块。每一个S-单元j也会利用其自身的比较器检查是否为被选S-单元的前继,即aj≤al*。所有的前继S-单元设置其匹配标志(Match flag,MF)为MF=1,而其它的则设置MF=0。
在S-阵列的压缩阶段,每一个S-单元将其活跃标志(AF)及其存储项送至后续S-单元。如果选择阶段的匹配标志MF=1,则S-单元锁存来自前继S-单元的相应数据,且逻辑数0被设置到第一个S-单元的AF标志中。最终结果是被选项sl*被覆盖,被选单元(即aj<l*)的左边所有项均向右移动一个单元。一次迭代完成之后,通过将S-单元地址值调入到s-寄存器的方式将S-阵列中数据寄存器的原始值再次初始化。
选择器结构如图8所示。选择器用来接收来自匹配缓冲区内匹配项M的数目。一旦随机数r产生之后,可将其与c相比较,以决定S-阵列或匹配缓冲区内缓冲地址中的某项是否被选中。
评价模块用来评价由解发生器所产生解的质量,该模块的核心即为比较模块。每一个需要用蚁群算法解决的优化问题均需特定的评价模块,该评价模块包含着特定问题的评价参数,并可计算来自解发生器的目标函数值。
比较模块用来评价算法迭代中所产生的最好解和新的精灵解(如果已经发现),并将其存于群体中。这里所设计的比较模块如图9所示。图9中,比较树可减少比较模块的逻辑延时,用来构造最好解的解发生器标志(best-index),并将其传送到蚁群模块。一个附加比较器将目前迭代中最好解与已发现最好解进行比较,如果当前最好解优于已发现的最好解,则设置精灵标志“is-elite”。
Claims (1)
1.一种基于现场可编程门阵列的蚁群算法仿生硬件,其特征在于:
它采用了从顶向下层次化的设计方法,该蚁群算法仿生硬件结构主要包括蚁群模块、发生器模块、评价模块、控制模块、输入模块和输出模块六大基本模块;其核心模块是蚁群模块、发生器模块、评价模块;该蚁群模块包括群矩阵Q=[qij]n×k,该矩阵由j=0列的精灵解和j∈{1,2,…,k-1}列中的FIFO-序列构成;蚁群模块负责将群矩阵中第i行的qih(h∈{0,1,…,k-1})传送到发生器模块,当迭代结束时,该蚁群模块可从评价模块中接收最优解,然后将其加入到序列中;发生器模块可使m个解发生器同时工作,其中一个解发生器对应一只蚂蚁,所有的解均由解发生器传送到评价模块中的m个并行评价框内;m个解的评价结果将集中于比较框中,由此来确定当前迭代中的最好解;如果所得最好解优于当前最好解,则将当前最好解置换;
该发生器模块包含m个相同的解发生器,每一个解发生器模拟一只蚂蚁利用蚁群算法机制构造解的行为;该解发生器包含三个基本单元,即S-阵列、匹配缓冲区和选择器;S-阵列用来存储和保持si∈S中的选择集{S,…,n-1},其中i∈{0,…,c},且c=|S|-1;同时,S-阵列可被其包含的内容所访问;当它从蚁群模块接收到传送项qih时,可将qih与S中的剩余项进行比较;若存在某项sl∈S,且Si=qih,则S-阵列返回地址al,其中al是S-阵列中sl的地址,且将al保存于匹配缓冲区内;选择器用来建立状态转移概率分布并随机选择sl*∈S,随后将其送至评价模块;
该解发生器的处理流程处理流程开始后,解发生器使可选集S=(0,...,n-1),且初始化S-计数器c=n-1;该S-计数器是由控制模块中的外围逻辑实现,对于所有的解发生器而言,当前的S-计数器值都是可用的;匹配计数器M用来表示存于匹配缓冲区中匹配地址的数目;该循环初始化完成之后,群体i行中的所有项qih(h∈{0,1,…,k-1})都传送到S-阵列,当S-阵列中某项sl被匹配后,即sl=qih,则将与其相对应的匹配地址保存于匹配缓冲区内;当该循环周期的最后一次迭代结束后,匹配缓冲区将包含群体和可选集i行中的所有项;蚂蚁即解发生器可作出解向量中第i个位置的决策,它随机选择地址al*,并将其传送到S-阵列中,随后将被选项sl*存于地址al*中,且将sl*传送到对应的评价模块中,然后将sl*从选择集S中移走,该过程不断对解向量中剩余的n-c个位置作出决策;
S-阵列的操作包含三个基本阶段,即传送阶段、选择阶段和压缩阶段;在传送阶段,群矩阵i行中的k个项被传送到S-单元,S-单元中的比较器把传送项与其已存有的s项进行比较;若相等,则当各自的S-单元活跃时(AF=1),S-单元将去除地址a;
当选择器随机选择被选项sl*后,S-阵列即进入了选择阶段;将被选地址al*传送到S-单元,每一个S-单元用其比较器将传送来的地址与其a地址进行比较;
S-单元l*将其所存的sl*项作为查询结果传送到评价模块;每一个S-单元j也会利用其自身的比较器检查是否为被选S-单元的前继,即aj≤al*;所有的前继S-单元设置其匹配标志(Match flag,MF)为MF=1,而其它的则设置MF=0;
在S-阵列的压缩阶段,每一个S-单元将其活跃标志AF及其存储项送至后续S-单元;如果选择阶段的匹配标志MF=1,则S-单元锁存来自前继S-单元的相应数据,且逻辑数0被设置到第一个S-单元的AF标志中;最终结果是被选项sl*被覆盖,被选单元即aj<l*的左边所有项均向右移动一个单元;一次迭代完成之后,通过将S-单元地址值调入到s-寄存器的方式将S-阵列中数据寄存器的原始值再次初始化;
该选择器用来接收来自匹配缓冲区内匹配项M的数目;一旦随机数r产生之后,可将其与c相比较,以决定S-阵列或匹配缓冲区内缓冲地址中的某项是否被选中;
评价模块用来评价由解发生器所产生解的质量,该模块的核心即为比较模块;每一个需要用蚁群算法解决的优化问题均需特定的评价模块,该评价模块包含着特定问题的评价参数,并可计算来自解发生器的目标函数值;
比较模块用来评价算法迭代中所产生的最好解和新的精灵解,并将其存于群体中;这里所设计的比较模块中,比较树可减少比较模块的逻辑延时,用来构造最好解的解发生器标志即best-index,并将其传送到蚁群模块;一个附加比较器将目前迭代中最好解与已发现最好解进行比较,如果当前最好解优于已发现的最好解,则设置精灵标志“is-elite”。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101217720A CN101122973A (zh) | 2007-09-13 | 2007-09-13 | 一种基于现场可编程门阵列的蚁群算法仿生硬件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101217720A CN101122973A (zh) | 2007-09-13 | 2007-09-13 | 一种基于现场可编程门阵列的蚁群算法仿生硬件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101122973A true CN101122973A (zh) | 2008-02-13 |
Family
ID=39085301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101217720A Pending CN101122973A (zh) | 2007-09-13 | 2007-09-13 | 一种基于现场可编程门阵列的蚁群算法仿生硬件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101122973A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464965B (zh) * | 2009-01-16 | 2011-08-17 | 北京航空航天大学 | 一种基于tbb的多核并行蚁群设计方法 |
CN106314828A (zh) * | 2016-08-26 | 2017-01-11 | 北京遥测技术研究所 | 一种动态可重构的地面测控系统 |
CN111868754A (zh) * | 2018-03-23 | 2020-10-30 | 索尼公司 | 信息处理装置和信息处理方法 |
-
2007
- 2007-09-13 CN CNA2007101217720A patent/CN101122973A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464965B (zh) * | 2009-01-16 | 2011-08-17 | 北京航空航天大学 | 一种基于tbb的多核并行蚁群设计方法 |
CN106314828A (zh) * | 2016-08-26 | 2017-01-11 | 北京遥测技术研究所 | 一种动态可重构的地面测控系统 |
CN111868754A (zh) * | 2018-03-23 | 2020-10-30 | 索尼公司 | 信息处理装置和信息处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9697462B1 (en) | Synaptic time multiplexing | |
CN105637541B (zh) | 用于神经模拟器的共享存储器架构 | |
CN106201651A (zh) | 神经形态芯片的模拟器 | |
Maddison | Calculating the probability distributions of ancestral states reconstructed by parsimony on phylogenetic trees | |
CN109241291A (zh) | 基于深度强化学习的知识图谱最优路径查询系统及其方法 | |
CN106650922A (zh) | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 | |
Aarts et al. | Boltzmann machines and their applications | |
Fard et al. | An Area-Optimized Chip of Ant Colony Algorithm Design in Hardware Platform Using the Address-Based Method. | |
CN105260746A (zh) | 一种可扩展的多层集成多标记学习系统 | |
Ghaffaripour et al. | A multi-objective genetic algorithm for community detection in weighted networks | |
CN101122973A (zh) | 一种基于现场可编程门阵列的蚁群算法仿生硬件 | |
Tohidi et al. | Short overview of advanced metaheuristic methods | |
Yang | An improved artificial fish swarm algorithm and its application in multiple sequence alignment | |
CN109978143B (zh) | 一种基于simd架构的堆栈式自编码器及编码方法 | |
Radiuk | Application of a genetic algorithm to search for the optimal convolutional neural network architecture with weight distribution | |
Zhu et al. | Optimization of convolutional neural network hardware structure based on FPGA | |
Fard et al. | Optimization of the running speed of ant colony algorithm with address-based hardware method | |
Svenson | Extremal optimization for sensor report pre-processing | |
Kang et al. | A 24.3 μJ/Image SNN Accelerator for DVS-Gesture With WS-LOS Dataflow and Sparse Methods | |
Perkowski et al. | Evolvable hardware or learning hardware? induction of state machines from temporal logic constraints | |
Tian et al. | Evolutionary recurrent neural architecture search | |
Zou et al. | Clustering approach based on von neumann topology artificial bee colony algorithm | |
CN110059806A (zh) | 一种基于幂律函数的多阶段加权网络社团结构检测方法 | |
Zhao et al. | Adaptive genetic algorithm based approach for evolutionary design and multi-objective optimization of logic circuits | |
Ediger et al. | Evolving 6-state automata for optimal behaviors of creatures compared to exhaustive search |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080213 |