CN108415774B - 一种基于改进烟花算法的软硬件划分方法 - Google Patents

一种基于改进烟花算法的软硬件划分方法 Download PDF

Info

Publication number
CN108415774B
CN108415774B CN201810165375.1A CN201810165375A CN108415774B CN 108415774 B CN108415774 B CN 108415774B CN 201810165375 A CN201810165375 A CN 201810165375A CN 108415774 B CN108415774 B CN 108415774B
Authority
CN
China
Prior art keywords
explosion
sparks
spark
firework
gaussian
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.)
Active
Application number
CN201810165375.1A
Other languages
English (en)
Other versions
CN108415774A (zh
Inventor
张涛
岳倩宇
赵鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN201810165375.1A priority Critical patent/CN108415774B/zh
Publication of CN108415774A publication Critical patent/CN108415774A/zh
Application granted granted Critical
Publication of CN108415774B publication Critical patent/CN108415774B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Ignition Installations For Internal Combustion Engines (AREA)

Abstract

一种基于改进烟花算法的软硬件划分方法:随机生成N个满足硬件面积约束条件的烟花;计算每个烟花爆炸生成爆炸火花的数目以及爆炸幅度;重复生成爆炸火花,直至生成所有的爆炸火花;重复生成高斯火花,直至生成所有的高斯火花;以原始烟花为聚类中心,计算每个爆炸火花和高斯火花到每个烟花的距离,并把爆炸火花和高斯火花分配到距离他们最近的烟花所在的聚类内;选择每个聚类中适应度最好的一个烟花或爆炸火花或高斯火花保留到下一代;重复上述过程直至到达设定的迭代次数。本发明使得改进算法相对于原始算法的求解质量和运行速度都得到了很好的提升。

Description

一种基于改进烟花算法的软硬件划分方法
技术领域
本发明涉及一种软硬件划分方法。特别是涉及一种用于复杂嵌入式系统设计中的基于改进烟花算法的软硬件划分方法。
背景技术
1、软硬件划分问题描述
通常情况下,一个复杂的嵌入式系统会划分为多个子任务来实现,而每个子任务的实现方式对系统的性能有较大的影响。软硬件划分技术就是用来决定系统的子任务是由软件实现还是由硬件实现。这是一种组合优化问题,划分的子任务越多,解决方案越复杂,并且是呈指数型增长。软硬件划分用数学表达式可以表示为G=<V,E>,其中V={v1,v2,…,vL}表示系统的子任务节点,每一个节点有不同的属性,例如vi=<w(i),ts(i),th(i),as(i),ah(i)>表示第i个子任务节点的属性。其中w(i)=0代表该节点由软件实现,w(i)=1表示该节点由硬件实现。ts(i)和th(i)分别代表该节点的软件执行时间和硬件执行时间。as(i)和ah(i)表示该节点所需的硬件面积。E代表节点之间的连接关系。如果两个节点之间有数据依赖关系并且分别由软件和硬件实现,那么需要计算节点之间的通信时间。将完成系统任务所需的执行时间作为优化目标,将硬件面积作为约束条件,其数学模型如下式所示。
min:
T=max{TE(i)|0<i<L}
subject to:
Figure BDA0001583477570000011
所有有依赖关系的子任务节点组成一条执行路径,其中TE(i)表示第i条路径的完成时间。只有当系统的最长路径完成时,才能说明该系统的所有子任务都完成。A_limit表示系统的硬件面积约束值。T和A分别表示系统的完成时间和所需的硬件面积。
软硬件划分方案通常是由L位二进制数表示,其中L代表系统划分的子任务节点的数目。例如{10110}表示第1,3,4个子任务节点用硬件实现,第2,5个子任务节点用软件实现。
2、烟花算法在软硬件划分上的应用
烟花算法是受烟花爆炸现象的启发提出的一种用于解决数学上组合优化问题的群体智能优化算法。本发明将烟花算法用于解决软硬件划分问题。烟花以及烟花爆炸出火花的位置代表一种软硬件划分方案。通常情况下,烟花的质量越好,烟花爆炸发射出火花的数目越多,并且火花会较集中于烟花附近。同样,烟花的质量越差,烟花爆炸所发射的火花数目越少,并且火花的位置会很分散。适应度较好的烟花如图1所示,爆炸生成的火花较密并且数目较多。适应度较差的烟花如图2所示,爆炸生成的火花较稀疏并且数目较少。
对应于软硬件划分问题,软硬件划分方案越好,将会在它周围投入越多的资源进行邻域搜索;软硬件划分方案越差,将会在距离它较远的位置生成新的软硬件划分方案,并且生成新方案的数目越少,其计算公式如下式所示。
Figure BDA0001583477570000021
Figure BDA0001583477570000022
Figure BDA0001583477570000023
式中
Figure BDA0001583477570000024
和Ai表示第i个烟花爆炸发射火花的数目和幅度,m和
Figure BDA0001583477570000027
是两个预先定义的常数,表示所有的烟花爆炸发射火花的总数目和总幅度。f(xi)代表第i个烟花的适应度值,ymin和ymax分别代表最好的烟花和最差的烟花的适应度值。ε是为了防止分母等于0而定义的一个极小值。a和b是为了防止生成的火花数目过大或过小而预先定义的阈值,其中a<b<1。
烟花算法求解软硬件划分问题,存在着求解质量差,运行时间长等问题。
发明内容
本发明所要解决的技术问题是,提供一种求解质量和运行速度都得到了很好提升的基于改进烟花算法的软硬件划分方法。
本发明所采用的技术方案是:一种基于改进烟花算法的软硬件划分方法,包括如下步骤:
1)随机生成N个满足硬件面积约束条件的烟花,每个烟花都是由0和1组成的二进制数,其中每一个数代表一个节点,二进制数的所有位数构成总节点数;
2)根据下式计算每个烟花爆炸生成爆炸火花的数目Z(i)以及爆炸幅度A(i):
Figure BDA0001583477570000025
Figure BDA0001583477570000026
其中,Amin、Amax、Zmin和Zmax是预先定义的常数,Amin和Amax分别表示最小爆炸幅度和最大爆炸幅度,Zmin和Zmax分别表示最小爆炸火花数目和最大爆炸火花数目;f(xi)表示第i个烟花的适应度值,ymin和ymax分别表示最好烟花和最差烟花的适应度值;
3)生成爆炸火花;
4)重复步骤3)直至生成所有的爆炸火花;
5)生成高斯火花;
6)重复步骤5)直至生成所有的高斯火花;
7)以原始烟花为聚类中心,计算每个爆炸火花和高斯火花到每个烟花的距离,并把爆炸火花和高斯火花分配到距离他们最近的烟花所在的聚类内;选择每个聚类中适应度最好的一个烟花或爆炸火花或高斯火花保留到下一代;
8)重复步骤2)~步骤7)直至到达设定的迭代次数。
步骤3)包括:对第i个烟花生成Z(i)个爆炸火花,首先获得爆炸火花的位置x=xi;xi是第i个烟花的位置;从总节点数中随机选择a个节点;如果节点被选中,当被选中的节点为0时改为1,当被选中的节点为1时改为0,生成一个爆炸火花;其中a个节点的计算公式:a=A(xi)·rand(0,1),A(xi)是第i个烟花的爆炸幅度,rand(0,1)是0到1之间的随机数。
步骤4)包括:获得高斯火花的位置x,x从N个烟花中随机选择;对每一个节点生成一个均值为0,方差为1的满足高斯分布的随机数randm(0,1),如果所述的随机数在设定范围内,则当所述节点为1时改为0,当所述节点为0时改为1,生成一个高斯火花。
本发明的一种基于改进烟花算法的软硬件划分方法,将烟花算法应用于软硬件划分,并对爆炸火花的数目以及爆炸幅度的计算方法进行改进以防止因无效评估而浪费计算资源。并且改进选择策略以提高算法的收敛速度。结果使得改进算法相对于原始算法的求解质量和运行速度都得到了很好的提升。
附图说明
图1是适应度较好的烟花示意图;
图2是适应度较差的烟花示意图。
具体实施方式
下面结合实施例和附图对本发明的一种基于改进烟花算法的软硬件划分方法做出详细说明。
本发明的一种基于改进烟花算法的软硬件划分方法,主要对原始烟花算法进行两点改进,从而应用于软硬件划分。
在计算烟花爆炸火花的数目和幅度时,对于最差的烟花,计算得到的火花数目趋向于0,所以设置阈值以防止火花的数目太少。但是阈值的选择一般都是根据经验,在实际应用中很难在短时间内设置一个合适的阈值,这影响了算法的快速使用。另一方面,对于最好的烟花来说,计算得到的烟花爆炸幅度趋向于0,也就是说将会生成很多与原始最好烟花一样的火花,并且这些火花都要做一次评估,这将会浪费很多的计算资源,降低算法的执行效率。针对以上两点,本发明提出一种新的计算烟花爆炸生成火花数目和烟花爆炸幅度的公式,如下式所示。
Figure BDA0001583477570000031
Figure BDA0001583477570000032
其中A(xi)和Z(xi)是第i个烟花的爆炸幅度和生成爆炸火花的数目,Amin、Amax、Zmin和Zmax是预先定义的常数,分别表示最小爆炸幅度,最大爆炸幅度,最小爆炸火花数目和最大爆炸火花数目。f(xi)表示第i个烟花的适应度值,ymin和ymax分别表示最好烟花和最差烟花的适应度值。
在选择阶段,除最好的烟花或火花一定会被保留到下一代外,其他的烟花或火花根据它们之间的相对距离进行选择。分布越稀疏的烟花或火花被保留到下一代的概率越大,这主要是为了保持种群的多样性。但是,理论上说,适应度越好的烟花或火花也应该有较大的概率被选择保留到下一代,这是为了提高算法的收敛速度。所以,本发明提出了一种既考虑种群的多样性,也考虑算法的收敛速度的一种选择策略。首先,以原始的烟花作为聚类中心,计算各个火花到烟花的距离,并把火花分配到距离其最近的烟花的一个聚类中。然后选择每个聚类中适应度最好的烟花或火花保留到下一代。
本发明的一种基于改进烟花算法的软硬件划分方法,具体包括如下步骤:
1)随机生成N个满足硬件面积约束条件的烟花,每个烟花都是由0和1组成的二进制数,其中每一个数代表一个节点,二进制数的所有位数构成总节点数;
2)根据下式计算每个烟花爆炸生成爆炸火花的数目Z(i)以及爆炸幅度A(i):
Figure BDA0001583477570000041
Figure BDA0001583477570000042
其中,Amin、Amax、Zmin和Zmax是预先定义的常数,Amin和Amax分别表示最小爆炸幅度和最大爆炸幅度,Zmin和Zmax分别表示最小爆炸火花数目和最大爆炸火花数目;f(xi)表示第i个烟花的适应度值,ymin和ymax分别表示最好烟花和最差烟花的适应度值;
3)生成爆炸火花;包括:
对第i个烟花生成Z(i)个爆炸火花,首先获得爆炸火花的位置x=xi;xi是第i个烟花的位置;从总节点数中随机选择a个节点;如果节点被选中,当被选中的节点为0时改为1,当被选中的节点为1时改为0,生成一个爆炸火花;其中a个节点的计算公式:a=A(xi)·rand(0,1),A(xi)是第i个烟花的爆炸幅度,rand(0,1)是0到1之间的随机数。
4)重复步骤3)直至生成所有的爆炸火花;
5)生成高斯火花;包括:
获得高斯火花的位置x,x从N个烟花中随机选择;对每一个节点生成一个均值为0,方差为1的满足高斯分布的随机数randm(0,1),如果所述的随机数在设定范围内,则当所述节点为1时改为0,当所述节点为0时改为1,生成一个高斯火花。
6)重复步骤5)直至生成所有的高斯火花;
7)以原始烟花为聚类中心,计算每个爆炸火花和高斯火花到每个烟花的距离,并把爆炸火花和高斯火花分配到距离他们最近的烟花所在的聚类内;选择每个聚类中适应度最好的一个烟花或爆炸火花或高斯火花保留到下一代;
8)重复步骤2)~步骤7)直至到达设定的迭代次数。
下面给出最佳实例:
以20个节点的软硬件划分问题为例,算法参数设置如下:最大迭代次数MaxIter=10000,烟花数目FireworkNum=5,初始最大爆炸火花数目Nmax=8,初始最小爆炸火花数目Nmin=2,初始最大爆炸幅度Amax=15,初始最小爆炸幅度Amin=2。高斯火花数目GaussNum=5。
1、随机生成5个满足硬件面积约束的解,对应5个初始化烟花,每个烟花由20位二进制数组成。初始化评估次数为0。
2、根据下式计算爆炸火花数目Z(i)以及爆炸幅度A(i)。
Figure BDA0001583477570000051
Figure BDA0001583477570000052
其中,Amin、Amax、Zmin和Zmax是预先定义的常数,分别表示最小爆炸幅度,最大爆炸幅度,最小爆炸火花数目和最大爆炸火花数目。f(xi)表示第i个烟花的适应度值,ymin和ymax分别表示最好烟花和最差烟花的适应度值。
3、生成爆炸火花,第i个烟花生成Z(i)个火花。首先获得火花的位置xi,xi是第i个烟花的位置。从20个节点中随机选择a个节点。被选中的节点为0时改为1,被选中的节点为1时改为0,生成一个爆炸火花。其中a个节点的计算方式为:a=A(xi)·rand(0,1),A(xi)是第i个烟花的爆炸幅度,rand(0,1)是一个0到1之间的随机数。
4、重复步骤3直至生成所有的火花。
5、生成5个高斯火花。首先获得高斯火花的位置x,x从5个烟花中随机选择。对x的每一个节点生成一个随机数randm(0,1),randm(0,1)是均值为0,方差为1的满足高斯分布的随机数。如果-0.5<randm()<0.5则对应节点为0时改为1,对应节点为1时改为0,生成一个高斯火花。
6、重复步骤5直至生成所有的高斯火花。
7、以原始烟花为聚类中心,计算每个爆炸火花和高斯火花到每个烟花的距离。将爆炸火花和高斯火花划分到距离他们最近的烟花所在的那个聚类。将每个聚类中适应度值最好的一个烟花或者爆炸火花或者高斯火花保留到下一代。
8、重复步骤2~7直至到达最大迭代次数MaxIter。
9、输出最优烟花,即最佳的软硬件划分方案。

Claims (3)

1.一种基于改进烟花算法的软硬件划分方法,其特征在于,包括如下步骤:
1)随机生成N个满足硬件面积约束条件的烟花,每个烟花都是由0和1组成的二进制数,其中,每一个数代表一个节点,二进制数的所有位数构成总节点数,0代表该节点由软件实现,1代表该节点由硬件实现;
2)根据下式计算每个烟花爆炸生成爆炸火花的数目Z(xi) 以及爆炸幅度A(xi) :
Figure FDA0002979295640000011
Figure FDA0002979295640000012
其中,Amin、Amax、Zmin和Zmax是预先定义的常数,Amin和Amax分别表示最小爆炸幅度和最大爆炸幅度,Zmin和Zmax分别表示最小爆炸火花数目和最大爆炸火花数目;f(xi)表示第i个烟花的适应度值,ymin和ymax分别表示最好烟花和最差烟花的适应度值;
3)生成爆炸火花;
4)重复步骤3)直至生成所有的爆炸火花;
5)生成高斯火花;
6)重复步骤5)直至生成所有的高斯火花;
7)以原始烟花为聚类中心,计算每个爆炸火花和高斯火花到每个烟花的距离,并把爆炸火花和高斯火花分配到距离他们最近的烟花所在的聚类内;选择每个聚类中适应度最好的一个烟花或爆炸火花或高斯火花保留到下一代;
8)重复步骤2)~步骤7)直至到达设定的迭代次数。
2.根据权利要求1所述的一种基于改进烟花算法的软硬件划分方法,其特征在于,步骤3)包括:对第i个烟花爆炸生成Z(xi)个爆炸火花,首先获得爆炸火花的位置x=xi;xi是第i个烟花的位置;从总节点数中随机选择a个节点;如果节点被选中,当被选中的节点为0时改为1,当被选中的节点为1时改为0,生成一个爆炸火花;其中a个节点的计算公式:a=A(xi)·rand(0,1),A(xi)是第i个烟花的爆炸幅度,rand(0,1)是0到1之间的随机数。
3.根据权利要求1所述的一种基于改进烟花算法的软硬件划分方法,其特征在于,步骤4)包括:获得高斯火花的位置x,x从N个烟花中随机选择;对每一个节点生成一个均值为0,方差为1的满足高斯分布的随机数randm(0,1),如果所述的随机数在设定范围内,则当所述节点为1时改为0,当所述节点为0时改为1,生成一个高斯火花。
CN201810165375.1A 2018-02-27 2018-02-27 一种基于改进烟花算法的软硬件划分方法 Active CN108415774B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810165375.1A CN108415774B (zh) 2018-02-27 2018-02-27 一种基于改进烟花算法的软硬件划分方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810165375.1A CN108415774B (zh) 2018-02-27 2018-02-27 一种基于改进烟花算法的软硬件划分方法

Publications (2)

Publication Number Publication Date
CN108415774A CN108415774A (zh) 2018-08-17
CN108415774B true CN108415774B (zh) 2021-06-08

Family

ID=63129209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810165375.1A Active CN108415774B (zh) 2018-02-27 2018-02-27 一种基于改进烟花算法的软硬件划分方法

Country Status (1)

Country Link
CN (1) CN108415774B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109993836B (zh) * 2019-03-18 2020-11-17 浙江大学 一种实现虚拟现实三维烟花形状可控的方法
CN110097267B (zh) * 2019-04-19 2023-04-18 天津大学 一种基于改进烟花算法的多目标多机器人任务分配方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776469A (zh) * 2017-03-17 2017-05-31 沈阳航空航天大学 一种基于模拟退火与高斯扰动的烟花算法
CN106960226B (zh) * 2017-04-11 2018-04-13 陕西师范大学 一种基于烟花算法的软子空间mr图像聚类方法
CN107395433B (zh) * 2017-08-18 2020-06-09 中南大学 一种基于烟花算法的无线传感器节点部署方法
CN107704319A (zh) * 2017-10-18 2018-02-16 哈尔滨工程大学 改进烟花算法的cmp任务调度方法

Also Published As

Publication number Publication date
CN108415774A (zh) 2018-08-17

Similar Documents

Publication Publication Date Title
CN108053119B (zh) 一种求解零等待流水车间调度问题的改进粒子群优化方法
CN104936186B (zh) 基于布谷鸟搜索算法的认知无线电网络频谱分配方法
CN108596469B (zh) 一种面向大规模车辆路径问题的快速自适应大规模邻域搜索方法
JP6724576B2 (ja) 多目標最適化方法及び装置
CN108415774B (zh) 一种基于改进烟花算法的软硬件划分方法
Enami et al. Energy based clustering self organizing map protocol for extending wireless sensor networks lifetime and coverage
CN110097267B (zh) 一种基于改进烟花算法的多目标多机器人任务分配方法
CN107704319A (zh) 改进烟花算法的cmp任务调度方法
CN114356545B (zh) 一种面向隐私保护与能耗优化的任务卸载方法
CN104573369A (zh) 一种基于混洗蛙跳的软硬件划分方法
Hao et al. Efficient and robust emergence of norms through heuristic collective learning
CN108399105B (zh) 一种基于改进头脑风暴算法的软硬件划分方法
CN110334812A (zh) 一种新型混沌自适应烟花优化方法
CN105677447A (zh) 分布式云中基于聚类的时延带宽极小化虚拟机部署方法
CN112654081A (zh) 用户分簇及资源分配优化方法、系统、介质、设备及应用
Wu et al. A modified MOEA/D algorithm for solving bi-objective multi-stage weapon-target assignment problem
CN108415773B (zh) 一种基于融合算法的高效软硬件划分方法
CN106953801B (zh) 基于层级结构学习自动机的随机最短路径实现方法
WO2003075221A1 (en) Mechanism for unsupervised clustering
CN118132268A (zh) 基于学习型指数分布优化算法的云资源自适应调度方法
Kulkarni et al. Neural network based energy conservation for wireless sensor network
CN112187765A (zh) 一种区块链中选择目标节点的方法及装置
CN114493106B (zh) 一种基于地理划分的空间众包任务分配方法
CN110191472B (zh) 一种基于改进多目标混沌pso优化的目标信道访问方法
CN111935824B (zh) 无线资源分配策略更新方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant