一种基于二叉空间分割树的资源调度优化方法
【专利摘要】本发明实施例提供了一种基于二叉空间分割树的资源调度优化方法,本方法采取基于二叉空间分割树驱动搜索,并在选择算子作用产生重复个体出现时,实现遗传算法的有方向性在搜索空间内进行局域搜索、邻域搜索和跨域搜索的自变异驱动,从而有效避免了重复个体的出现,维持了种群的多样性和改变了遗传算法随机搜索的特性。
【专利说明】—种基于二叉空间分割树的资源调度优化方法
【技术领域】
[0001]本发明涉及信息【技术领域】,具体涉及一种基于二叉空间分割树的资源调度优化方法。
【背景技术】
[0002]遗传算法是以达尔文进化论思想和孟德尔遗传理论为基础,模拟生物进化繁殖、变异、竞争、选择的基本特性,提出通过选择、重组和变异三种操作求解现实问题的自组织和自适应的人工智能算法。染色体作为遗传算法的主要载体,是由若干个具有一定特征的基因组合而成。遗传算法借助遗传算子对当代种群染色体进行交叉和变异操作,产生子代种群;交叉算子具有较强的搜索能力,且种群的多样性决定交叉算子的搜索能力;变异算子则通过变异操作可以产生当代种群中没有的染色体基因,以维持种群个体的多样性
[137],且实验发现,若取消变异作用,遗传算法无法趋于收敛。
[0003]本方案发明在对传统的遗传算法进行研究的过程中发现,,因为传统遗传算法变异操作只有一个固定的经验概率值,变异操作具有随机性,导致了参数空间的搜索无方向性,且带来大量的无效计算,造成了算法的收敛性较差;并且标准遗传算法在选择和交叉遗传算子的作用下,进化过程中不可避免产生大量的重复出现的个体,且变异操作具有随机性和盲目性的缺陷。因此,现有技术有待改进和提高。
【发明内容】
[0004]本发明实施例提供一种基于二叉空间分割树的资源调度优化方法,以期提供一种可以进行空间局域搜索、邻域搜索和跨域搜索递进性方向引导的自编译方法,从而有效避免重复个体的出现。
[0005]本发明实施例提供一种基于二叉空间分割树的资源调度优化方法,所述方法包括:
[0006]初始化种群:对种群S= {S (I),S (2),…,S (t)}中的t个种类资源进行对应编码,并生成前后随机排列的染色体个体,设D为第i个染色体个体S (i)的总维度,R是基因取值分辨率,则整个搜索空间的大小为RD ;
[0007]计算个体适应度:根据预设的适应度函数,计算种群中每个染色体个体的适应度值;
[0008]根据二叉空间分割树在所述搜索空间中插入染色体个体S (i):从二叉空间分割树的根节点出发,根据第一预设条件确定s (i)属于左节点空间还是右节点空间,并沿着所在子空间的节点方向继续向下搜索,搜索到叶子节点为止;
[0009]若所述S (i)与二叉空间分割树中先前节点都不重复,则直接插入二叉空间分割树,作为新的叶子节点;其中,若所述S (i)的父节点无左子节点,则所述S (i)作为左子节点直接继承其父节点搜索子空间,若所述S (i)的父节点已有左子节点S (i '),则根据第二预设条件进行左子节点和右子节点的位置调整;[0010]若所述S (i)插入二叉空间分割树且进行了子空间分割操作时,检查分割后的左子节点和右子节点搜索空间是否已处于不可分割的状态,若是,则设置所述s (i)位置为关闭状态;
[0011]若在插入新染色体个体S (j)时出现S (j)与S (i)重复,则在S (i)所映射的搜索子空间Subspace (S (i))范围内对S (j)进行变异操作,或者在Subspace (S (i))的邻域范围内对S (j)进行变异操作,或者不受Subspace (S (i))范围的限制对S (j)进行变异操作。
[0012]其中,所述若所述S (i)的父节点已有左子节点S (i '),则根据第二预设条件进行左子节点和右子节点的位置调整包括:
[0013]将S (i)和S (i’)进行维度比较,选择比较维度最大的基因位,所述比较维度为
[0014]^axi d(S(i), S(HIk),
[0015]其中,d(S(i),S(i' )|k)为S (i)和S (i’)在第k个基因位的维度距离,且d(S(i),S(i/ ) |k)=S(i)-S(i/ );
[0016]从所选择的基因位所映射的维度,对左子节点的搜索空间进行等距离的子空间分害I],并依据S (i)和S (i’)在基因位的基因值大小,按照左节点小于右节点的原则,进行左子节点和右子节点的位置调整。
[0017]所述对种群S= {S (I),S (2),…,S (t)}中的t个种类资源进行对应编码包括:对所述种群S= {S (I),S (2),…,S (t)}中的t个种类资源采取四位十六进制编码,或者六位十六进制编码,或者整数编码。
[0018]进一步的,在计算个体适应度之前包括:将编码的种群S={S (I), S (2),…,S(t)}中的t个种类资源进行解码。
[0019]其中,所述若在插入染色体个体S (j)时出现S (j)与S (i)重复,则在S (i)所映射的搜索子空间Subspace (S (i))范围内对S (j)进行变异操作包括:
[0020]确定Subspace (S (i))开关位置是否为开放状态,若是,则当S (i)的左子节点或右子节点为空,则选择Subspace (S (i))维度空间最大的基因位,S (j)在所述Subspace(S (i))维度空间范围内对选择的相应基因位进行基因变异。
[0021]所述若在插入染色体个体S (j)时出现S (j)与S (i)重复,则在Subspace (S(i))的邻域范围内对S (j)进行变异操作包括:
[0022]确定所述S (i)所映射的搜索子空间Subspace (S (i))开关位置是否为关闭状态,若是,则回退至所述S (i)的父节点,并判断所述S (i)的兄弟节点S (r)所映射的搜索子空间Subspace (S (r))开关位置是否为开放状态,若是,
[0023]则扫描新染色体S (j)的每个基因是否属于Subspace (S (r)),将不属于的基因在Subspace (S (r))所对应的维度空间内进行随机变异。
[0024]所述若在插入染色体个体S (j)时出现S (j)与S (i)重复,,则不受Subspace(S (i))范围的限制对S (j)进行变异操作包括:
[0025]确定所述S (i)的左子节 点空间和右子节点空间是否均为关闭状态,若是,
[0026]则新染色体S ( j)的基因在其初始维度空间范围内随机变异为S ( j’),从二叉空间分割树的根节点搜索S (j’)所属节点子空间。[0027]本发明实施例提供的基于二叉空间分割树的资源调度优化方法,采取基于二叉空间分割树驱动搜索,并在选择算子作用产生重复个体出现时,实现遗传算法的有方向性在搜索空间内进行局域搜索、邻域搜索和跨域搜索的自变异驱动,从而有效避免了重复个体的出现,维持了种群的多样性和改变了遗传算法随机搜索的特性。
【专利附图】
【附图说明】
[0028]图1是本发明实施例提供的一种基于二叉空间分割树的资源调度优化方法流程示意图。
【具体实施方式】
[0029]本发明实施例提供一种基于二叉空间分割树的资源调度优化方法,以期提供一种可以进行空间局域搜索、邻域搜索和跨域搜索递进性方向引导的自编译方法,有效避免重复个体的出现。
[0030]为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0031]本发明实施例提供一种基于二叉空间分割树的资源调度优化方法,包括:
[0032]初始化种群:对种群S= {S (I),S (2),…,S (t)}中的t个种类资源进行对应编码,并生成前后随机排列的染色体个体,设D为第i个染色体个体S (i)的总维度,R是基因取值分辨率,则整个搜索空间的大小为RD ;
[0033]计算个体适应度:根据预设的适应度函数,计算种群中每个染色体个体的适应度值;
[0034]根据二叉空间分割树在所述搜索空间中插入染色体个体S (i):从二叉空间分割树的根节点出发,根据第一预设条件确定S (i)属于左节点空间还是右节点空间,并沿着所在子空间的节点方向继续向下搜索,搜索到叶子节点为止;
[0035]若所述S (i)与二叉空间分割树中先前节点都不重复,则直接插入二叉空间分割树,作为新的叶子节点;其中,若所述S (i)的父节点无左子节点,则所述S (i)作为左子节点直接继承其父节点搜索子空间,若所述S (i)的父节点已有左子节点S (i '),则根据第二预设条件进行左子节点和右子节点的位置调整;
[0036]若所述S (i)插入二叉空间分割树且进行了子空间分割操作时,检查分割后的左子节点和右子节点搜索空间是否已处于不可分割的状态,若是,则设置所述S (i)位置为关闭状态;
[0037]若在插入新染色体个体S (j)时出现S (j)与S (i)重复,则在S (i)所映射的搜索子空间Subspace (S (i))范围内对S (j)进行变异操作,或者在Subspace (S (i))的邻域范围内对S (j)进行变异操作,或者不受Subspace (S (i))范围的限制对S (j)进行变异操作。
[0038]所述若所述S (i)的父节点已有左子节点S (i’),则根据第二预设条件进行左子节点和右子节点的位置调整包括:
[0039]将所述S (i)和所述S (i’)进行维度比较,选择比较维度最大的基因位,所述比较维度为
[0040]^iaxi d(S(i); S(V)Ik),
[0041]其中,所述d(s(i),s(i' )|k)为s (i)和s (i’)在第k个基因位的维度距离,且d(S(i),S(i/ ) |k)=S(i)-S(i/ );
[0042]从所选择的基因位所映射的维度,对左子节点的搜索空间进行等距离的子空间分害I],并依据所述S (i)和所述S (i ')在所述基因位的基因值大小,按照左节点小于右节点的原则,进行左子节点和右子节点的位置调整。
[0043]其中,所述对种群S= {S (I),S (2),…,S (t)}中的t个种类资源进行对应编码包括:对所述种群S= {S (I), S (2),…,S (t)}中的t个种类资源采取四位十六进制编码,或者六位十六进制编码,或者整数编码。
[0044]在此基础上,在计算个体适应度之前包括:将编码的种群S={S (I), S (2),…,S(t)}中的t个种类资源进行解码。
[0045]进一步的,所述若在插入染色体个体S (j)时出现S (j)与S (i)重复,则在S (i)所映射的搜索子空间Subspace (S (i))范围内对S (j)进行变异操作包括:
[0046]确定Subspace (S (i))开关位置是否为开放状态,若是,则当S (i)的左子节点或右子节点为空,则选择S ubspace (S (i))维度空间最大的基因位,S (j)在所述Subspace(S (i))维度空间范围内对选择的相应基因位进行基因变异。
[0047]同时,所述S (j)在所述Subspace (S (i))维度空间范围内对选择的相应基因位进行基因变异后,若变异后的S (j)依然与S (i)相同,,则停止对S (j)再进行变异操作。
[0048]所述若在插入染色体个体S (j)时出现S (j)与S (i)重复,贝U在Subspace (S
(i))的邻域范围内对S (j)进行变异操作包括:
[0049]确定所述S (i)所映射的搜索子空间Subspace (S (i))开关位置是否为关闭状态,若是,则回退至所述S (i)的父节点,并判断所述S (i)的兄弟节点S (r)所映射的搜索子空间Subspace (S (r))开关位置是否为开放状态,若是,
[0050]则扫描新染色体S (j)的每个基因是否属于Subspace (S (r)),将不属于的基因在Subspace (S (r))所对应的维度空间内进行随机变异。
[0051]所述若在插入染色体个体S (j)时出现S (j)与S (i)重复,,则不受Subspace(S (i))范围的限制对S (j)进行变异操作包括:
[0052]确定所述S (i)的左子节点空间和右子节点空间是否均为关闭状态,若是,
[0053]则新染色体S ( j)的基因在其初始维度空间范围内随机变异为S ( j’),从二叉空间分割树的根节点搜索S (j’)所属节点子空间。
[0054]由上可见,本发明实施例提供的基于二叉空间分割树的资源调度优化方法,采取基于二叉空间分割树驱动搜索,并在选择算子作用产生重复个体出现时,实现遗传算法的有方向性在搜索空间内进行局域搜索、邻域搜索和跨域搜索的自变异驱动,从而有效避免了重复个体的出现,维持了种群的多样性和改变了遗传算法随机搜索的特性。
[0055]本发明实施例还提供一种基于二叉空间分割树的资源调度优化方法,参见图1所示,包括:
[0056]S100、初始化种群:对种群S={S (I), S (2),…,S⑴}中的t个种类资源进行对应编码,并生成前后随机排列的染色体个体,设D为第i个染色体个体S (i)的总维度,R是基因取值分辨率,则整个搜索空间的大小为RD ;
[0057]其中,本发明实施例中所说的S (i)的总维度D是指染色体个体S (i)的基因数量,基因取值分辨率是指基因可能取值数。
[0058]S200、计算个体适应度:根据预设的适应度函数,计算种群中每个染色体个体的适
应度值;
[0059]S300、根据二叉空间分割树在所述搜索空间中插入染色体个体S (i)0
[0060]二叉空间分割树(Binary Space Partitioning,简称BSP)是一种空间分割技术,即任何平面都可以将空间分割为两个半空间,如果任何半空间中有一个平面,可进一步将此半空间分割为更小的两个子空间,通过这种递归方法将空间使用超平面划分为凸面体集合,采用多边形列表将子空间分割得越来越小,最终构造一个BSP 二叉空间分割树。BSP树是一种用来对N维空间中的元素进行快速有效的排序和查找的数据结构,BSP树表示整个空间,BSP树中任一节点表示一个子空间,每个节点对应一个超平面,将这个节点表示的空间分割成两个子空间。最初,整个区域被定义为BSP树的根,之后,继续划分区域,一旦把凹形区域划分为两个凸形区域(在最好情况下)或凹多边形,命名这些区域成为其父节点的子节点。
[0061]本文算法将整个参数空间定义为BSP树根空间,BSP树每个节点数据结构包含个体的染色体信息、所代表的搜索空间、节点开关以及指针群这四个信息,其中指针群用于关联父节点和左右两个子节点,节点开关表示该节点是否已经处于原子状态,其所有维度搜索空间是否可再分割。
[0062]步骤S300包括:
[0063]a、从BSP树的根节点出发,面对两个节点方向时,首先判断新染色体个体属于左节点空间,还是属于右节点空间,不断沿着所在子空间的节点方向继续向下搜索,直到叶子节点为止;
[0064]b、若该染色体个体与BSP树中先前节点都不重复,则说明该染色体个体是全新的,可以直接插进BSP树,作为新的叶子节点;
[0065]C、若父节点无左子节点,新染色体个体作为左叶子节点,则直接继承其父节点搜索子空间;
[0066]d、若父节点已经存在左子节点,则应将新染色体和已有的左子节点进行维度比较,选择比较维度最大的基因位,即
[0067]
【权利要求】
1.一种基于二叉空间分割树的资源调度优化方法,其特征在于,所述方法包括: 初始化种群:对种群S= {S (I), S (2),…,S (t)}中的t个种类资源进行对应编码,并生成前后随机排列的染色体个体,设D为第i个染色体个体S (i)的总维度,R是基因取值分辨率,则整个搜索空间的大小为RD ; 计算个体适应度:根据预设的适应度函数,计算种群中每个染色体个体的适应度值; 根据二叉空间分割树在所述搜索空间中插入染色体个体S (i):从二叉空间分割树的根节点出发,根据第一预设条件确定S (i)属于左节点空间还是右节点空间,并沿着所在子空间的节点方向继续向下搜索,搜索到叶子节点为止; 若所述S (i)与二叉空间分割树中先前节点都不重复,则直接插入二叉空间分割树,作为新的叶子节点;其中,若所述S (i)的父节点无左子节点,则所述S (i)作为左子节点直接继承其父节点搜索子空间,若所述S (i)的父节点已有左子节点S (i '),则根据第二预设条件进行左子节点和右子节点的位置调整; 若所述S (i)插入二叉空间分割树且进行了子空间分割操作时,检查分割后的左子节点和右子节点搜索空间是否已处于不可分割的状态,若是,则设置所述S (i)位置为关闭状态; 若在插入新染色体个体S (j)时出现S (j)与S (i)重复,则在S (i)所映射的搜索子空间Subspace (S (i))范围内对S (j )进行变异操作,或者在Subspace (S (i))的邻域范围内对S (j)进行变异操作,或者不受Subspace (S (i))范围的限制对S (j)进行变异操作。
2.根据权利要求1所述的方法,其特征在于,所述若所述S(i)的父节点已有左子节点S (i’),则根据第二预设条 件进行左子节点和右子节点的位置调整包括: 将S (i)和S (i’)进行维度比较,选择比较维度最大的基因位,比较维度为
max d(S(i), S(i')|k), kc[l,Dl' 其中,d(s(i),s(i' ) |k)为s (i)和s (i’)在第k个基因位的维度距离,且d(S(i),S(i/ ) |k)=S(i)-S(i/ ); 从所选择的基因位所映射的维度,对左子节点的搜索空间进行等距离的子空间分割,并依据S (i)和S (i’)在基因位的基因值大小,按照左节点小于右节点的原则,进行左子节点和右子节点的位置调整。
3.根据权利要求1所述的方法,其特征在于,所述对种群S={S (I),S (2),…,S (t)}中的t个种类资源进行对应编码包括:对所述种群S={S (I),S (2),…,S (t)}中的t个种类资源采取四位十六进制编码,或者六位十六进制编码,或者整数编码。
4.根据权利要求3所述的方法,其特征在于,在计算个体适应度之前包括:将编码的种群S={S (I),S (2),-,S (t)}中的t个种类资源进行解码。
5.根据权利要求1所述的方法,其特征在于,所述若在插入染色体个体S(j)时出现S(j)与S (i)重复,则在S (i)所映射的搜索子空间Subspace (S (i))范围内对S (j)进行变异操作包括: 确定Subspace (S (i))开关位置是否为开放状态,若是,则当S (i)的左子节点或右子节点为空,则选择Subspace (S (i))维度空间最大的基因位,S (j)在所述Subspace (S(i))维度空间范围内对选择的相应基因位进行基因变异。
6.根据权利要求5所述的方法,其特征在于,所述S(j)在所述Subspace (S (i))维度空间范围内对选择的相应基因位进行基因变异后,若变异后的S (j)依然与S (i)相同,则停止对S (j)再进行变异操作。
7.根据权利要求1所述的方法,其特征在于,所述若在插入染色体个体S(j)时出现S(j)与S (i)重复,则在Subspace (S (i))的邻域范围内对S (j)进行变异操作包括: 确定所述S (i)所映射的搜索子空间Subspace (S (i))开关位置是否为关闭状态,若是,则回退至所述S (i)的父节点,并判断所述S (i)的兄弟节点S (r)所映射的搜索子空间Subspace (S (r))开关位置是否为开放状态,若是,则扫描新染色体S (j)的每个基因是否属于Subspace (S (r)),将不属于的基因在Subspace (S (r))所对应的维度空间内进行随机变异。
8.根据权利要求1所述的方法,其特征在于,所述若在插入染色体个体S(j)时出现S(j)与S (i)重复,则不受Subspace (S (i))范围的限制对S (j)进行变异操作包括: 确定所述S (i)的左子节点空间和右子节点空间是否均为关闭状态,若是, 则新染色体S (j)的基因在其初始维度空间范围内随机变异为S (j '),从二叉空间分割树的根节点搜索s (j y)所属节 点子空间。
【文档编号】G06F17/30GK103886375SQ201410156332
【公开日】2014年6月25日 申请日期:2014年4月17日 优先权日:2014年4月17日
【发明者】张黎明 申请人:张黎明