CN111338765B - 基于猫群算法的虚拟机部署方法、装置、设备及存储介质 - Google Patents
基于猫群算法的虚拟机部署方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111338765B CN111338765B CN202010210316.9A CN202010210316A CN111338765B CN 111338765 B CN111338765 B CN 111338765B CN 202010210316 A CN202010210316 A CN 202010210316A CN 111338765 B CN111338765 B CN 111338765B
- Authority
- CN
- China
- Prior art keywords
- cat
- individual
- virtual machine
- group
- tracking
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于云计算技术领域,公开了一种基于猫群算法的虚拟机部署方法、装置、设备及存储介质。所述方法包括:获取待部署的虚拟机集合及物理主机集合,并建立猫群,生成遗传算子;对猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将猫群划分为搜寻猫群和追踪猫群;根据遗传算子对搜寻猫群中的各猫个体进行位置信息更新,按照预设追踪过程对追踪猫群中的各猫个体进行位置信息更新;对更新后的所有猫个体进行适应度计算,根据适应度计算结果确定适应度值最大的目标猫个体,并将目标猫个体的当前位置信息的解码作为虚拟机部署最优解;根据虚拟机部署最优解将虚拟机集合中的虚拟机部署到物理主机集合的物理主机中。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及一种基于猫群算法的虚拟机部署方法、装置、设备及存储介质。
背景技术
云计算数据中心内的高能耗问题越来越突出,其主机能耗和冷却***能耗已经组成数据中心运营成本的主要部分。物理主机利用效率低会增加数据中心的能耗成本。通过虚拟化技术,可以在一台物理主机上虚拟机若干台虚拟机,以虚拟机为单位执行用户应用。如何在主机上部署虚拟机成为最终影响主机能耗的关键因素。虚拟机部署问题即是将虚拟机集合部署至物理主机的过程。由于虚拟机在资源请求上的异构性和主机资源提供能力上的不同,不同的虚拟机部署策略将导致不同的主机能耗。而研究表明,闲置部分的物理主机仍然会消耗满载主机能耗的一半以上。为了降低总体的主机能耗,应该尽可能利用数量更少的主机进行虚拟机部署,从而关闭完全未利用的主机,节省闲置部分的能耗。
发明内容
本发明的主要目的在于提供一种基于猫群算法的虚拟机部署方法、装置、设备及存储介质,旨在解决虚拟机部署的技术问题。
为实现上述目的,本发明提供了一种基于猫群算法的虚拟机部署方法,所述方法包括:
获取待部署的虚拟机集合及物理主机集合,根据所述虚拟机集合及所述物理主机集合建立猫群,并生成遗传算子;
对所述猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将所述猫群划分为搜寻猫群和追踪猫群;
根据所述遗传算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群;
按照预设追踪过程对所述追踪猫群中的各猫个体进行位置信息更新,以获得更新后的追踪猫群;
对更新后的搜寻猫群及更新后的追踪猫群中的所有猫个体进行适应度计算,获得适应度计算结果;
根据所述适应度计算结果确定适应度值最大的目标猫个体,并将所述目标猫个体的当前位置信息的解码作为虚拟机部署最优解;
根据所述虚拟机部署最优解将所述虚拟机集合中的虚拟机部署到所述物理主机集合的物理主机中。
优选地,所述获取待部署的虚拟机集合及物理主机集合,根据所述虚拟机集合及所述物理主机集合建立猫群,并生成遗传算子的步骤,具体包括:
获取所述物理主机集合中的物理主机数及所述虚拟机集合的虚拟机数;
将所述虚拟机数作为猫个体对应的位置信息数,根据所述虚拟机数设置猫个体数;
将所述虚拟机集合中的虚拟机被部署到物理主机集合中的物理机中时的部署解作为猫个体对应的位置信息的解码,根据所述物理主机数随机设置猫个体对应的位置信息;
根据所述猫个体数、所述位置信息数及所述位置信息建立猫群,并根据所述猫群生成遗传算子。
优选地,所述对所述猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将所述猫群划分为搜寻猫群和追踪猫群的步骤,具体包括:
对所述猫群中的各猫个体进行适应度计算;
将适应度值最大的猫个体所对应的位置信息作为目标位置信息;
将剩余的猫个体作为待更新猫群,并将所述待更新猫群根据预设分组率划分为搜寻猫群和追踪猫群。
优选地,所述对所述猫群中的各猫个体进行适应度计算的步骤之前,还包括:
检测当前猫群的当前迭代次数;
根据所述当前迭代次数对预设分组率进行更新。
优选地,所述遗传算子包括遗传交叉算子及遗传变异算子;
所述根据所述遗传算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群的步骤,具体包括:
根据所述遗传交叉算子及所述遗传变异算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群。
优选地,所述按照预设追踪过程对所述追踪猫群中的各猫个体进行位置信息更新,以获得更新后的追踪猫群的步骤,具体包括:
根据所述当前迭代次数获取追踪模式下的猫个体速度,根据所述猫个体速度对所述追踪猫群中的各猫个体进行位置信息更新,以获得待检测猫群;
检测所述待检测猫群中的各猫个体的位置信息,在所述位置信息对应的值大于所述物理主机数时,根据所述猫个体速度的负值对所述猫个体重新进行位置信息更新,以获得更新后的追踪猫群。
优选地,所述根据所述适应度计算结果确定适应度值最大的目标猫个体,并将所述目标猫个体的当前位置信息的解码作为虚拟机部署最优解的步骤之后,所述方法还包括:
获取当前猫群的当前迭代次数,判断所述当前迭代次数是否小于预设迭代次数;
在所述当前迭代次数小于预设迭代次数时,返回所述对所述猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将猫群划分为搜寻猫群和追踪猫群的步骤;
在所述当前迭代次数等于预设迭代次数时,输出所述虚拟机部署最优解。
此外,为实现上述目的,本发明还提出一种基于猫群算法的虚拟机部署装置,其特征在于,所述装置包括:模型建立模块、位置更新模块、最优解获取模块及部署模块,其中:
所述模型建立模块,用于获取待部署的虚拟机集合及物理主机集合,根据所述虚拟机集合及所述物理主机集合建立猫群,并生成遗传算子;
所述位置更新模块,用于对所述猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将所述猫群划分为搜寻猫群和追踪猫群;还用于根据所述遗传算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群;还用于按照预设追踪过程对所述追踪猫群中的各猫个体进行位置信息更新,以获得更新后的追踪猫群;还用于对更新后的搜寻猫群及更新后的追踪猫群中的所有猫个体进行适应度计算,获得适应度计算结果;
所述最优解获取模块,用于根据所述适应度计算结果确定适应度值最大的目标猫个体,并将所述目标猫个体的当前位置信息的解码作为虚拟机部署最优解;
所述部署模块,用于根据所述虚拟机部署最优解将所述虚拟机集合中的虚拟机部署到所述物理主机集合的物理主机中。
此外,为实现上述目的,本发明还提出一种基于猫群算法的虚拟机部署设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于猫群算法的虚拟机部署程序,所述基于猫群算法的虚拟机部署程序配置为实现如上所述的基于猫群算法的虚拟机部署方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有基于猫群算法的虚拟机部署程序,所述基于猫群算法的虚拟机部署程序被处理器执行时实现如上所述的基于猫群算法的虚拟机部署方法的步骤。
本发明通过获取待部署的虚拟机集合及物理主机集合,根据所述虚拟机集合及所述物理主机集合建立猫群,并生成遗传算子;对所述猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将所述猫群划分为搜寻猫群和追踪猫群;根据所述遗传算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群;按照预设追踪过程对所述追踪猫群中的各猫个体进行位置信息更新,以获得更新后的追踪猫群;对更新后的搜寻猫群及更新后的追踪猫群中的所有猫个体进行适应度计算,获得适应度计算结果;根据所述适应度计算结果确定适应度值最大的目标猫个体,并将所述目标猫个体的当前位置信息的解码作为虚拟机部署最优解;根据所述虚拟机部署最优解将所述虚拟机集合中的虚拟机部署到所述物理主机集合的物理主机中,实现了多目标优化的虚拟机部署方案。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的基于猫群算法的虚拟机部署设备的结构示意图;
图2为本发明基于猫群算法的虚拟机部署方法第一实施例的流程示意图;
图3为本发明基于猫群算法的虚拟机部署方法一实施例猫个***置的编码及部署方案的解码示意图;
图4为本发明基于猫群算法的虚拟机部署方法一实施例的单个体交叉示意图;
图5为本发明基于猫群算法的虚拟机部署方法一实施例的双个体交叉示意图;
图6为本发明基于猫群算法的虚拟机部署方法一实施例的遗传变异示意图;
图7为本发明基于猫群算法的虚拟机部署方法第二实施例的流程示意图;
图8为本发明基于猫群算法的虚拟机部署装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的基于猫群算法的虚拟机部署设备结构示意图。
如图1所示,该基于猫群算法的虚拟机部署设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对基于猫群算法的虚拟机部署设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及基于猫群算法的虚拟机部署程序。
在图1所示的基于猫群算法的虚拟机部署设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明基于猫群算法的虚拟机部署设备中的处理器1001、存储器1005可以设置在基于猫群算法的虚拟机部署设备中,所述基于猫群算法的虚拟机部署设备通过处理器1001调用存储器1005中存储的基于猫群算法的虚拟机部署程序,并执行本发明实施例提供的基于猫群算法的虚拟机部署方法。
本发明实施例提供了一种基于猫群算法的虚拟机部署方法,参照图2,图2为本发明一种基于猫群算法的虚拟机部署方法第一实施例的流程示意图。
需要说明的是,云计算环境中,物理主机的能耗主要来源于CPU、内存RAM以及存储***等。通常,CPU的能耗占据物理主机能耗的绝大部分。单CPU的节能技术以动态电压/频率缩放(DVFS,Dynamic voltage and frequency scaling)最为常用。该技术主要考虑了CPU的两种状态:空闲状态和负荷状态。在空闲状态下(即无任何执行负载),CPU的内部组件可以转换为关闭模式,从而降低CPU的时钟频率,CPU可以最小的运行频率进行运转,以此节省能耗。负荷状态下,CPU的能耗取决于CPU上执行的负载量以及CPU的利用率。研究表明,物理主机的功耗与其CPU的利用率是成线性关系的。
主机功耗公式为:
其中,Pj,max表示主机hj的最大功耗,即主机满载时的功耗,Pj,idle表示主机hj的最小功耗,即主机空闲状况下的功耗,该功耗通常为满载功耗的70%,uj,CPU表示主机hj的CPU利用率。
本实施例中,假设云计算环境中现有待部署的虚拟机n台,表示为集合V={v1,v2,...,vn},可用物理主机有m台,表示为集合H={h1,h2,...,hm}。虚拟机部署问题即是将虚拟机集合映射至物理主机的过程。考虑部署过程中三种资源类型的请求,包括:CPU、内存RAM以及磁盘存储DISK。令ri,CPU、ri,RAM和ri,DISK分别表示虚拟机vi在CPU资源、内存RAM资源和存储DISK资源上的请求量,i=1,2,...,n,cj,CPU、cj,RAM和cj,DISK分别表示主机hj在CPU资源、内存RAM资源和存储DISK资源上的提供能力,j=1,2,...,m。令xi,j表示部署因子,表明虚拟机vi是否部署在主机hj上,为二进制变量,部署因子的表达式为:
令zj表示主机的利用因子,表示虚拟机部署过程中主机hj是否被利用,为二进制变量,利用因子的表达式为:
为了节省主机能耗,完全空闲状态的主机需要转换为休眠模式,以此节省空闲主机的能耗。因此,能耗最小化公式为:
相应的约束条件依次为:虚拟机对应约束条件,确保一台虚拟机仅能部署至一台物理主机上,对应公式如下:
部署因子约束条件,表明部署因子是仅能取值0或1的二进制数,对应公式如下:
利用因子约束条件,表明物理主机利用因子是仅能取值0或1的二进制数,对应公式如下:
内存量约束条件,表明虚拟机请求的内存量不能超过主机的内存能力,对应公式如下:
内存请求约束条件,确保虚拟机请求的内存资源不能超过物理主机的内存能力,对应公式如下:
存储请求约束条件,确保虚拟机请求的存储资源不能超过物理主机的存储能力,对应公式如下:
令Uj表示主机hj的资源利用率,资源利用率公式为:
Uj=α×uj,CPU+β×uj,RAM+γ×uj,DISK
其中,ɑ、β和γ分别表示计算资源利用率时CPU资源、内存资源和存储资源的权重值,取值区间均为(0,1),且ɑ+β+γ=1,uj,CPU、uj,RAM和uj,DISK分别表示主机hj的CPU资源利用率、内存资源利用率和存储资源利用率,对应的公式分别为:
则所有物理主机的平均资源利用率的公式为:
物理主机资源利用率最大化问题可表达为:
max Uavg
虚拟机部署的全局优化问题需要均衡考虑主机能耗的优化和资源利用率的优化,因此,需要将两个目标融合为一个目标函数,将新的目标函数公式为:
min a×P+b×(1-Uavg)
上述目标函数公式需要满足上述所有约束条件。a和b分别表示功耗因子和资源利用率因子,用于设置对于功耗优化和资源利用率优化的偏好,a和b取值为0至1之间,且a+b=1。
本实施例中,所述基于猫群算法的虚拟机部署方法包括以下步骤:
步骤S10,获取待部署的虚拟机集合及物理主机集合,根据所述虚拟机集合及所述物理主机集合建立猫群,并生成遗传算子。
具体包括:获取所述物理主机集合中的物理主机数及所述虚拟机集合的虚拟机数;将所述虚拟机数作为猫个体对应的位置信息数,根据所述虚拟机数设置猫个体数;将所述虚拟机集合中的虚拟机被部署到物理主机集合中的物理机中时的部署解作为猫个体对应的位置信息的解码,根据所述物理主机数随机设置猫个体对应的位置信息;根据所述猫个体数、所述位置信息数及所述位置信息建立猫群,并根据所述猫群生成遗传算子。
需要说明的是,传统的猫群算法中,猫个体的位置在搜索空间内是连续变化的,即是连续的编码形式。然而,虚拟机部署问题需要将虚拟机与物理主机之间一一对应起来,因此,必须将猫个***置设计为离散式的编码形式,使离散编码序列与猫个***置移动过程中的位置对应起来。
本实施例采用一种随机数的位置编码形式,然后对个体不同维度位置进行降序排列,根据降序排列结果解码出虚拟机的部署方案。令Xh表示种群中猫个体h的位置,表示为:
Xh=[xh,1,xh,2,...,xh,n]
其中,位置矢量中的每个元素xh,k表示猫个体h在第k个维度上的位置,k=1,2,,...,n,n表示位置空间维度,即对应虚拟机数量。
对猫个***置离散化编解码的具体步骤为:初始情况下,在个***置的每个维度上生成[0,1]间均匀分布的随机数,将生成的随机数序列作为初始的猫个***置;对个***置的离散数值编码进行降序排列;根据降序排列,解码出相应的部署主机,具体方式为:若n为待部署虚拟机数量,m为主机数量,通常,n远大于m,令z=int(n/m),int表示取整运算,以z表示主机部署分隔,即以z个虚拟机一组按序将该批虚拟机部署至相应序号的物理主机上。
参考图3,图3为本发明基于猫群算法的虚拟机部署方法一实施例猫个***置的编码及部署方案的解码示意图;若待虚拟机数量n=10,主机数量m=3,个***置x=(0.39,0.38,0.75,0.90,0.19,0.55,0.26,0.59,0.79,0.65),位置维度即为n=10。对位置作降序排列后得到相应序列,由于z=int(10/3)=3,所以排序1、2、3的主机为h1,排序4、5、6的主机为h2,依次类推。最后剩下的排序10对应的主机随机分配。综合以上,该猫个体对应的虚拟机部署方案为:虚拟机v1、v2、v7部署至主机h3,虚拟机v3、v4、v9部署至主机h1,虚拟机v5、v6、v8、v10部署至主机h2,其中,虚拟机v10随机选择部署至主机h2。
那么,整个种群的猫群位置即为一个二维矩阵,可定义为X:
其中,n表示位置维度,即对应虚拟机数量,N表示猫群规模,即猫群中个体的总数。
步骤S20,对所述猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将所述猫群划分为搜寻猫群和追踪猫群。
步骤S20具体包括,对所述猫群中的各猫个体进行适应度计算;将适应度值最大的猫个体所对应的位置信息作为目标位置信息;将剩余的猫个体作为待更新猫群,并将所述待更新猫群根据预设分组率划分为搜寻猫群和追踪猫群。
需要说明的是,适应度计算的过程为:根据虚拟机的目标函数公式,目标函数值越小,个体适应度越大。故可以设置评估猫个***置所代表的虚拟机部署方案的适应度函数的公式为:
若得到的部署解无法满足某一约束条件,可将其适应度设置为0。因此,评估猫个体所代表的虚拟机部署解的质量时,优化的适应度函数公式为:
其中,a和b分别表示功耗因子和资源利用率因子,用于设置对于功耗优化和资源利用率优化的偏好,a和b取值为0至1之间,且a+b=1。猫个体的适应度值越大,个体所代表的虚拟机部署方案越优秀。
需要说明的是,在获取适应度值后,可根据适应度值计算结果进行种群划分。猫群初始化后,需要按比例将猫群划分为搜寻模式和追踪模式,不同的猫子群模式会采用不同的方法进行位置更新。搜寻模式通过对个体自身进行搜索操作,生成一系列子代填满搜寻记忆池,并以记忆池中最优个体更新当前个体,对应于全局搜索任务。追踪模式则利用全局最优位置更新猫的当前位置。猫群算法将执行全局搜索的搜寻猫子群和执行局部搜索的追踪猫子群进行混合,形成整个猫种群,直到满足终止条件即停止位置更新,得到最优解。
传统猫群算法利用固定分组率对子群进行划分,即每次迭代中两种模式的猫群数量保持不变,并没有考虑到猫群的进化程度,即全局搜索比例和局部搜索比例应该随着猫群进化程度作出相应调整。若在迭代前期设置较大的搜寻模式猫群比例,可以相应提高猫群的全局搜索能力,进而加快进化收敛;若在迭代后期设置较大的追踪模式猫群比例,可以相应提高猫群的局部搜索能力,提高猫个体的搜索质量,保证收敛性质。
本实施例利用一种自适应的猫群模式分组率计算公式,在每一次迭代后均采用不同的猫群模式分组率。分组率计算公式如下:
其中,mr(t)表示迭代t时猫群模式分组率,mrmax表示最大分组率,mrmin表示最小分组率,mrmax和mrmin均取值为0至1之间,Tmax表示猫群搜索的最大迭代次数。根据以上分组率计算方法可知,迭代初期分组率mr较大,大部分猫群可以执行搜寻模式,进行全局搜索;随着迭代的进行,mr值逐渐减小,大部分猫群会进入追踪模式,提高局部搜索能力,在保证收敛速度的同时提高最优解的精确度,更加有效的搜索出猫的最优位置(最优位置即代表最优的虚拟机部署方案)。
步骤S30,根据所述遗传算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群。
需要说明的是,处于搜寻模式的猫群拥有三个基本要素:搜寻记忆池SMP、变化数CDC和变化域SRD。记忆池用于存放搜寻模式中猫搜寻到的全部位置,即猫群会将其位置副本复制到记忆池中;变化数CDC用于指出猫个***置发生变异的维数数量;变化域SRD用于指出发生变异维数上位置变化的范围。搜寻模式中的猫群会根据变化数和变化域对记忆池中的猫个***置进行扰动,并对扰动后的所有副本猫群位置进行适应度评价,然后与扰动前的猫个***置作出适应度比较,保留适应度更高的猫副本至搜寻模式猫群中。变化数CDC和变化域SRD决定了搜寻猫群的寻优性能。变化数CDC决定了猫个***置发生变异的维数,变化域SRD决定了猫个***置发生变异的幅度。较多的维数变化和较大的位置变化幅度会使解的变化范围更大,易于演变为随机式搜索过程,不利于迭代收敛。而较小的维数变化和较小的位置变化幅度会使解的变化范围较小,降低猫群搜索能力,迭代过程易于陷入局部最优,甚至有时无法得到有效的变异个体。
为解决猫种群搜索模式无法获取有效变异个体的问题,本实施例中引入遗传算子进行位置信息更新。
易于理解的是,所述遗传算子包括遗传交叉算子及遗传变异算子;所述根据所述遗传算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群的步骤,具体包括:根据所述遗传交叉算子及所述遗传变异算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群。
需要说明的是,单个体交叉操作随机选择个***置的两个维度进行交换,然后重新得到位置的降序序列,并重新解码为部署主机。这样,即可得到一个有效的新的猫子代个体。若新的子代个体的适应度大于父代个体适应度,则将子代个体保留至下一代种群中;若新的子代个体的适应度小于或等于父代个体适应度,则依然保留原父代个体在种群中。
参考图4,图4为本发明基于猫群算法的虚拟机部署方法一实施例的单个体交叉示意图;随机选择的是第4维位置和第8维位置,互换其位置取值后重新得到位置的降序序列,即可解码出新的部署主机。
易于理解的是,对于两个选定的父代个体,在相同位置选定交叉点,交叉点将个体划分为左右两个部分,互换两个父代个体的右半部分,得到两个新的子代个***置。然后,重新得到位置的降序序列,并重新解码为部署主机。这样,即可得到两个新的子代个体。比较两个父代个体和两个子代个体的适应度,保留两个适应度较大的个体至下一代猫群中。参考图5,图5为本发明基于猫群算法的虚拟机部署方法一实施例的双个体交叉示意图。随机交叉点选定为维度5和6之间,即划分为左右各5个位置维度,然后互换个体的右侧阴影部分,即可得到两个新的子代个体,然后重新得到降序序列,即可解码出新的部署主机。
应当理解的是,遗传变异操作过程为:对于选定的变异个体,随机选择两个待变异的个***置维度,改变其位置取值,然后重新得到位置的降序序列,并重新解码为部署主机。这样,即可得到一个新的子代个体。若新的子代个体的适应度大于父代个体适应度,则将子代个体保留至下一代种群中;若新的子代个体的适应度小于或等于父代个体适应度,则依然保留原父代个体在种群中。参考图6,图6为本发明基于猫群算法的虚拟机部署方法一实施例的遗传变异示意图;随机选择的变异点为维度4和维度8,重新得到位置的降序序列后,即可解码出新的部署主机。
步骤S40,按照预设追踪过程对所述追踪猫群中的各猫个体进行位置信息更新,以获得更新后的追踪猫群。
步骤S40具体包括:根据所述当前迭代次数获取追踪模式下的猫个体速度,根据所述猫个体速度对所述追踪猫群中的各猫个体进行位置信息更新,以获得待检测猫群;检测所述待检测猫群中的各猫个体的位置信息,在所述位置信息对应的值大于所述物理主机数时,根据所述猫个体速度的负值对所述猫个体重新进行位置信息更新,以获得更新后的追踪猫群。
处于追踪模式的猫群通过类似于粒子群算法的速度/位移模型进行位置更新。令Xh=[xh,1,xh,2,...,xh,n]表示猫个体h在n维空间内的位置,Velh=[velh,1,velh,2,...,velh,n]表示猫个体h在n维空间内的速度,维度n对应待部署的虚拟机数量。令当前追踪猫群的全局最优位置为Xg=[xg,1,xg,2,...,xg,n]。猫个体h追踪的速度更新公式为:
Velh,d(t+1)=w×Velh,d(t)+c×r×[Xg,d(t)-Xh,d(t)],d=1,2,...,n
其中,w表示惯性权重,c和r表示调节参数,c为常量,r为(0,1)间均匀分布的随机变量,Velh,d(t)表示迭代t时猫个体h在维度d上的速度,Xg,d(t)表示当前全局最优个体在维度d上的位置,Xh,d(t)表示猫个体h在维度d上的位置,Velh,d(t+1)则为猫个体h的速度更新。
传统的猫群算法中惯性权重为常量,不利于猫群搜索的收敛。通常,在适应度较优的猫个体附近拥有适应度全局最优个体的概率要大于远处区域,这符合局部性原理,因此,此时需要相应减小惯性权重值以增加猫的局部寻优能力;相应地,在适应度较差的猫个体附近拥有适应度全局最优个体的概率要小于远处区域,因此,此时应该尽快跳出该区域,增加惯性权重值使猫能够尽快进行全局勘探。综上,设置惯性权重的公式表达为:
其中,w(h)表示猫个体h的惯性权重,δ表示调节参数,为常量,fitness(h)表示猫个体h的适应度,fitnesstotal表示当前种群所有个体的适应度值之和,N’表示处于追踪模式下的猫种群规模。
更新猫个体速度时,需要判断更新后的速度是否在预先设置的区间[Velh,d,min,Velh,d,max]内。若更新速度大于最大值,则以最大速度更新;若更新速度小于最小值,则以最小速度更新。综上,猫的速度公式更新为:
猫个体h的位置更新公式为:
Xh,d(t+1)=Xh,d(t)+Velh,d(t+1)
其中,Xh,d(t)表示迭代t时猫个体h在维度d上的位置,Velh,d(t+1)表示迭代t+1时猫个体h在维度d上的速度,Xh,d(t+1)则为猫个体h的位置更新。
猫个体的追踪过程如下:首先,根据式猫的速度公式计算追踪模式下的猫个体速度,然后,根据式猫的位置更新公式计算猫个体新的位置,如果该猫个体的更新位置中某一维度上的位置超过搜索空间,则以该值为相应边界,并将对应速度乘以-1,从反方向继续搜索。
步骤S50,对更新后的搜寻猫群及更新后的追踪猫群中的所有猫个体进行适应度计算,获得适应度计算结果。
易于理解的是,适应度计算方式如上所述,此处不再一一赘述。
步骤S60,根据所述适应度计算结果确定适应度值最大的目标猫个体,并将所述目标猫个体的当前位置信息的解码作为虚拟机部署最优解。
步骤S70,根据所述虚拟机部署最优解将所述虚拟机集合中的虚拟机部署到所述物理主机集合的物理主机中。
易于理解的是,获取到虚拟机部署最优解后可根据最优解进行虚拟机部署,以实现物理主机资源与能耗的合理应用。
本发明实施例通过上述方法,在物理主机的资源利用率及能耗均有约束的条件下,对传统的猫群算法进行了改进,未防止搜寻猫群无法获得变异的情况发生,在搜寻猫群中引入遗传算法进行遗传变异,形成虚拟机部署多目标优化,提高了虚拟机部署的效率及效果。
参考图7,图7为本发明一种基于猫群算法的虚拟机部署方法第二实施例的流程示意图。基于上述第一实施例,本实施例基于猫群算法的虚拟机部署方法在所述步骤S60之后,具体包括:
步骤S601,获取当前猫群的当前迭代次数,判断所述当前迭代次数是否小于预设迭代次数;
步骤S602,在所述当前迭代次数小于预设迭代次数时,返回所述对所述猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将猫群划分为搜寻猫群和追踪猫群的步骤;
步骤S603,在所述当前迭代次数等于预设迭代次数时,输出所述虚拟机部署最优解。
易于理解的是,所述预设迭代次数为猫群的最大迭代次数Tmax,若当前迭代次数小于最大迭代次数Tmax,则重新进行更新;若达到最大迭代次数Tmax,则输出当前种群中的最优猫个体并解码为最终的虚拟机部署方案。
本发明实施例通过上述方法,迭代进行猫种群的位置更新,不断形成新的部署方案,以获得优化的部署方案,提升了虚拟机部署的精度及效果。
参照图8,图8为本发明基于猫群算法的虚拟机部署装置第一实施例的结构框图。本发明实施例基于上述方法实施例的云计算环境,此处不再一一赘述。所述猫群算法的虚拟机部署装置包括:所述模型建立模块10,用于获取待部署的虚拟机集合及物理主机集合,根据所述虚拟机集合及所述物理主机集合建立猫群,并生成遗传算子;
需要说明的是,传统的猫群算法中,猫个体的位置在搜索空间内是连续变化的,即是连续的编码形式。然而,虚拟机部署问题需要将虚拟机与物理主机之间一一对应起来,因此,必须将猫个***置设计为离散式的编码形式,使离散编码序列与猫个***置移动过程中的位置对应起来。
本实施例采用一种随机数的位置编码形式,然后对个体不同维度位置进行降序排列,根据降序排列结果解码出虚拟机的部署方案。令Xh表示种群中猫个体h的位置,表示为:
Xh=[xh,1,xh,2,...,xh,n]
其中,位置矢量中的每个元素xh,k表示猫个体h在第k个维度上的位置,k=1,2,,...,n,n表示位置空间维度,即对应虚拟机数量。
对猫个***置离散化编解码的具体步骤为:初始情况下,在个***置的每个维度上生成[0,1]间均匀分布的随机数,将生成的随机数序列作为初始的猫个***置;对个***置的离散数值编码进行降序排列;根据降序排列,解码出相应的部署主机,具体方式为:若n为待部署虚拟机数量,m为主机数量,通常,n远大于m,令z=int(n/m),int表示取整运算,以z表示主机部署分隔,即以z个虚拟机一组按序将该批虚拟机部署至相应序号的物理主机上。
参考图3,图3为本发明基于猫群算法的虚拟机部署方法一实施例猫个***置的编码及部署方案的解码示意图;若待虚拟机数量n=10,主机数量m=3,个***置x=(0.39,0.38,0.75,0.90,0.19,0.55,0.26,0.59,0.79,0.65),位置维度即为n=10。对位置作降序排列后得到相应序列,由于z=int(10/3)=3,所以排序1、2、3的主机为h1,排序4、5、6的主机为h2,依次类推。最后剩下的排序10对应的主机随机分配。综合以上,该猫个体对应的虚拟机部署方案为:虚拟机v1、v2、v7部署至主机h3,虚拟机v3、v4、v9部署至主机h1,虚拟机v5、v6、v8、v10部署至主机h2,其中,虚拟机v10随机选择部署至主机h2。
那么,整个种群的猫群位置即为一个二维矩阵,可定义为X:
其中,n表示位置维度,即对应虚拟机数量,N表示猫群规模,即猫群中个体的总数。
所述位置更新模块20,用于对所述猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将所述猫群划分为搜寻猫群和追踪猫群;还用于根据所述遗传算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群;还用于按照预设追踪过程对所述追踪猫群中的各猫个体进行位置信息更新,以获得更新后的追踪猫群;还用于对更新后的搜寻猫群及更新后的追踪猫群中的所有猫个体进行适应度计算,获得适应度计算结果。
需要说明的是,适应度计算的过程为:根据虚拟机的目标函数公式,目标函数值越小,个体适应度越大。故可以设置评估猫个***置所代表的虚拟机部署方案的适应度函数的公式为:
若得到的部署解无法满足某一约束条件,可将其适应度设置为0。因此,评估猫个体所代表的虚拟机部署解的质量时,优化的适应度函数公式为:
其中,a和b分别表示功耗因子和资源利用率因子,用于设置对于功耗优化和资源利用率优化的偏好,a和b取值为0至1之间,且a+b=1。猫个体的适应度值越大,个体所代表的虚拟机部署方案越优秀。
需要说明的是,在获取适应度值后,可根据适应度值计算结果进行种群划分。猫群初始化后,需要按比例将猫群划分为搜寻模式和追踪模式,不同的猫子群模式会采用不同的方法进行位置更新。搜寻模式通过对个体自身进行搜索操作,生成一系列子代填满搜寻记忆池,并以记忆池中最优个体更新当前个体,对应于全局搜索任务。追踪模式则利用全局最优位置更新猫的当前位置。猫群算法将执行全局搜索的搜寻猫子群和执行局部搜索的追踪猫子群进行混合,形成整个猫种群,直到满足终止条件即停止位置更新,得到最优解。
传统猫群算法利用固定分组率对子群进行划分,即每次迭代中两种模式的猫群数量保持不变,并没有考虑到猫群的进化程度,即全局搜索比例和局部搜索比例应该随着猫群进化程度作出相应调整。若在迭代前期设置较大的搜寻模式猫群比例,可以相应提高猫群的全局搜索能力,进而加快进化收敛;若在迭代后期设置较大的追踪模式猫群比例,可以相应提高猫群的局部搜索能力,提高猫个体的搜索质量,保证收敛性质。
本实施例利用一种自适应的猫群模式分组率计算公式,在每一次迭代后均采用不同的猫群模式分组率。分组率计算公式如下:
其中,mr(t)表示迭代t时猫群模式分组率,mrmax表示最大分组率,mrmin表示最小分组率,mrmax和mrmin均取值为0至1之间,Tmax表示猫群搜索的最大迭代次数。根据以上分组率计算方法可知,迭代初期分组率mr较大,大部分猫群可以执行搜寻模式,进行全局搜索;随着迭代的进行,mr值逐渐减小,大部分猫群会进入追踪模式,提高局部搜索能力,在保证收敛速度的同时提高最优解的精确度,更加有效的搜索出猫的最优位置(最优位置即代表最优的虚拟机部署方案)。
为解决猫种群搜索模式无法获取有效变异个体的问题,本实施例中引入遗传算子进行位置信息更新。
易于理解的是,所述遗传算子包括遗传交叉算子及遗传变异算子;所述根据所述遗传算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群的步骤,具体包括:根据所述遗传交叉算子及所述遗传变异算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群。
需要说明的是,单个体交叉操作随机选择个***置的两个维度进行交换,然后重新得到位置的降序序列,并重新解码为部署主机。这样,即可得到一个有效的新的猫子代个体。若新的子代个体的适应度大于父代个体适应度,则将子代个体保留至下一代种群中;若新的子代个体的适应度小于或等于父代个体适应度,则依然保留原父代个体在种群中。
参考图4,图4为本发明基于猫群算法的虚拟机部署方法一实施例的单个体交叉示意图;随机选择的是第4维位置和第8维位置,互换其位置取值后重新得到位置的降序序列,即可解码出新的部署主机。
易于理解的是,对于两个选定的父代个体,在相同位置选定交叉点,交叉点将个体划分为左右两个部分,互换两个父代个体的右半部分,得到两个新的子代个***置。然后,重新得到位置的降序序列,并重新解码为部署主机。这样,即可得到两个新的子代个体。比较两个父代个体和两个子代个体的适应度,保留两个适应度较大的个体至下一代猫群中。参考图5,图5为本发明基于猫群算法的虚拟机部署方法一实施例的双个体交叉示意图。随机交叉点选定为维度5和6之间,即划分为左右各5个位置维度,然后互换个体的右侧阴影部分,即可得到两个新的子代个体,然后重新得到降序序列,即可解码出新的部署主机。
应当理解的是,遗传变异操作过程为:对于选定的变异个体,随机选择两个待变异的个***置维度,改变其位置取值,然后重新得到位置的降序序列,并重新解码为部署主机。这样,即可得到一个新的子代个体。若新的子代个体的适应度大于父代个体适应度,则将子代个体保留至下一代种群中;若新的子代个体的适应度小于或等于父代个体适应度,则依然保留原父代个体在种群中。参考图6,图6为本发明基于猫群算法的虚拟机部署方法一实施例的遗传变异示意图;随机选择的变异点为维度4和维度8,重新得到位置的降序序列后,即可解码出新的部署主机。
根据所述当前迭代次数获取追踪模式下的猫个体速度,根据所述猫个体速度对所述追踪猫群中的各猫个体进行位置信息更新,以获得待检测猫群;检测所述待检测猫群中的各猫个体的位置信息,在所述位置信息对应的值大于所述物理主机数时,根据所述猫个体速度的负值对所述猫个体重新进行位置信息更新,以获得更新后的追踪猫群。
处于追踪模式的猫群通过类似于粒子群算法的速度/位移模型进行位置更新。令Xh=[xh,1,xh,2,...,xh,n]表示猫个体h在n维空间内的位置,Velh=[velh,1,velh,2,...,velh,n]表示猫个体h在n维空间内的速度,维度n对应待部署的虚拟机数量。令当前追踪猫群的全局最优位置为Xg=[xg,1,xg,2,...,xg,n]。猫个体h追踪的速度更新公式为:
Velh,d(t+1)=w×Velh,d(t)+c×r×[Xg,d(t)-Xh,d(t)],d=1,2,...,n
其中,w表示惯性权重,c和r表示调节参数,c为常量,r为(0,1)间均匀分布的随机变量,Velh,d(t)表示迭代t时猫个体h在维度d上的速度,Xg,d(t)表示当前全局最优个体在维度d上的位置,Xh,d(t)表示猫个体h在维度d上的位置,Velh,d(t+1)则为猫个体h的速度更新。
传统的猫群算法中惯性权重为常量,不利于猫群搜索的收敛。通常,在适应度较优的猫个体附近拥有适应度全局最优个体的概率要大于远处区域,这符合局部性原理,因此,此时需要相应减小惯性权重值以增加猫的局部寻优能力;相应地,在适应度较差的猫个体附近拥有适应度全局最优个体的概率要小于远处区域,因此,此时应该尽快跳出该区域,增加惯性权重值使猫能够尽快进行全局勘探。综上,设置惯性权重的公式表达为:
其中,w(h)表示猫个体h的惯性权重,δ表示调节参数,为常量,fitness(h)表示猫个体h的适应度,fitnesstotal表示当前种群所有个体的适应度值之和,N’表示处于追踪模式下的猫种群规模。
更新猫个体速度时,需要判断更新后的速度是否在预先设置的区间[Velh,d,min,Velh,d,max]内。若更新速度大于最大值,则以最大速度更新;若更新速度小于最小值,则以最小速度更新。综上,猫的速度公式更新为:
猫个体h的位置更新公式为:
Xh,d(t+1)=Xh,d(t)+Velh,d(t+1)
其中,Xh,d(t)表示迭代t时猫个体h在维度d上的位置,Velh,d(t+1)表示迭代t+1时猫个体h在维度d上的速度,Xh,d(t+1)则为猫个体h的位置更新。
猫个体的追踪过程如下:首先,根据式猫的速度公式计算追踪模式下的猫个体速度,然后,根据式猫的位置更新公式计算猫个体新的位置,如果该猫个体的更新位置中某一维度上的位置超过搜索空间,则以该值为相应边界,并将对应速度乘以-1,从反方向继续搜索。
所述最优解获取模块30,用于根据所述适应度计算结果确定适应度值最大的目标猫个体,并将所述目标猫个体的当前位置信息的解码作为虚拟机部署最优解;
所述部署模块40,用于根据所述虚拟机部署最优解将所述虚拟机集合中的虚拟机部署到所述物理主机集合的物理主机中。
易于理解的是,获取到虚拟机部署最优解后可根据最优解进行虚拟机部署,以实现物理主机资源与能耗的合理应用。
本发明实施例通过上述装置,在物理主机的资源利用率及能耗均有约束的条件下,对传统的猫群算法进行了改进,未防止搜寻猫群无法获得变异的情况发生,在搜寻猫群中引入遗传算法进行遗传变异,形成虚拟机部署多目标优化,提高了虚拟机部署的效率及效果。
此外,本发明实施例还提出一种基于猫群算法的虚拟机部署设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于猫群算法的虚拟机部署程序,所述基于猫群算法的虚拟机部署程序配置为实现如上所述的基于猫群算法的虚拟机部署方法的步骤。
由于本设备采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有基于猫群算法的虚拟机部署程序,所述基于猫群算法的虚拟机部署程序被处理器执行如上文所述的基于猫群算法的虚拟机部署方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的基于猫群算法的虚拟机部署方法,此处不再赘述。
此外,需要说明的是,在本实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种基于猫群算法的虚拟机部署方法,其特征在于,所述方法包括:
获取待部署的虚拟机集合及物理主机集合,根据所述虚拟机集合及所述物理主机集合建立猫群,并生成遗传算子;
对所述猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将所述猫群划分为搜寻猫群和追踪猫群;
根据所述遗传算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群;
按照预设追踪过程对所述追踪猫群中的各猫个体进行位置信息更新,以获得更新后的追踪猫群;
对更新后的搜寻猫群及更新后的追踪猫群中的所有猫个体进行适应度计算,获得适应度计算结果;
根据所述适应度计算结果确定适应度值最大的目标猫个体,并将所述目标猫个体的当前位置信息的解码作为虚拟机部署最优解;
根据所述虚拟机部署最优解将所述虚拟机集合中的虚拟机部署到所述物理主机集合的物理主机中;
其中,所述对所述猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将所述猫群划分为搜寻猫群和追踪猫群的步骤,包括:
对所述猫群中的各猫个体进行适应度计算;
将适应度值最大的猫个体所对应的位置信息作为目标位置信息;
根据预设最大分组率和预设最小分组率得到预设分组率;
将剩余的猫个体作为待更新猫群,并将所述待更新猫群根据所述预设分组率划分为搜寻猫群和追踪猫群;
其中,所述适应度计算公式为:
其中,a和b分别表示功耗因子和资源利用率因子,p表示主机能耗,表示平均资源利用率;
其中,所述按照预设追踪过程对所述追踪猫群中的各猫个体进行位置信息更新,以获得更新后的追踪猫群的步骤中,猫个体追踪的速度更新公式为:
其中,w表示惯性权重,c和r表示调节参数,c为常量,r为(0,1)间均匀分布的随机变量,Velh,d(t)表示迭代t时猫个体h在维度d上的速度,Xg,d(t)表示当前全局最优个体在维度d上的位置,Xh,d(t)表示猫个体h在维度d上的位置,Velh,d(t+1)则为猫个体的速度更新。
2.如权利要求1所述的基于猫群算法的虚拟机部署方法,其特征在于,所述获取待部署的虚拟机集合及物理主机集合,根据所述虚拟机集合及所述物理主机集合建立猫群,并生成遗传算子的步骤,具体包括:
获取所述物理主机集合中的物理主机数及所述虚拟机集合的虚拟机数;
将所述虚拟机数作为猫个体对应的位置信息数,根据所述虚拟机数设置猫个体数;
将所述虚拟机集合中的虚拟机被部署到物理主机集合中的物理机中时的部署解作为猫个体对应的位置信息的解码,根据所述物理主机数随机设置猫个体对应的位置信息;
根据所述猫个体数、所述位置信息数及所述位置信息建立猫群,并根据所述猫群生成遗传算子。
3.如权利要求1所述的基于猫群算法的虚拟机部署方法,其特征在于,所述对所述猫群中的各猫个体进行适应度计算的步骤之前,还包括:
检测当前猫群的当前迭代次数;
根据所述当前迭代次数对预设分组率进行更新。
4.如权利要求3所述的基于猫群算法的虚拟机部署方法,其特征在于,所述遗传算子包括遗传交叉算子及遗传变异算子;
所述根据所述遗传算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群的步骤,具体包括:
根据所述遗传交叉算子及所述遗传变异算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群。
5.如权利要求4所述的基于猫群算法的虚拟机部署方法,其特征在于,所述按照预设追踪过程对所述追踪猫群中的各猫个体进行位置信息更新,以获得更新后的追踪猫群的步骤,具体包括:
根据所述当前迭代次数获取追踪模式下的猫个体速度,根据所述猫个体速度对所述追踪猫群中的各猫个体进行位置信息更新,以获得待检测猫群;
检测所述待检测猫群中的各猫个体的位置信息,在所述位置信息对应的值大于所述物理主机数时,根据所述猫个体速度的负值对所述猫个体重新进行位置信息更新,以获得更新后的追踪猫群。
6.如权利要求5所述的基于猫群算法的虚拟机部署方法,其特征在于,所述根据所述适应度计算结果确定适应度值最大的目标猫个体,并将所述目标猫个体的当前位置信息的解码作为虚拟机部署最优解的步骤之后,所述方法还包括:
获取当前猫群的当前迭代次数,判断所述当前迭代次数是否小于预设迭代次数;
在所述当前迭代次数小于预设迭代次数时,返回所述对所述猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将猫群划分为搜寻猫群和追踪猫群的步骤;
在所述当前迭代次数等于预设迭代次数时,输出所述虚拟机部署最优解。
7.一种基于猫群算法的虚拟机部署装置,其特征在于,所述装置包括:模型建立模块、位置更新模块、最优解获取模块及部署模块,其中:
所述模型建立模块,用于获取待部署的虚拟机集合及物理主机集合,根据所述虚拟机集合及所述物理主机集合建立猫群,并生成遗传算子;
所述位置更新模块,用于对所述猫群中的各猫个体进行适应度计算,并根据计算结果及预设分组率将所述猫群划分为搜寻猫群和追踪猫群;还用于根据所述遗传算子对所述搜寻猫群中的各猫个体进行位置信息更新,以获得更新后的搜寻猫群;还用于按照预设追踪过程对所述追踪猫群中的各猫个体进行位置信息更新,以获得更新后的追踪猫群;还用于对更新后的搜寻猫群及更新后的追踪猫群中的所有猫个体进行适应度计算,获得适应度计算结果;
所述最优解获取模块,用于根据所述适应度计算结果确定适应度值最大的目标猫个体,并将所述目标猫个体的当前位置信息的解码作为虚拟机部署最优解;
所述部署模块,用于根据所述虚拟机部署最优解将所述虚拟机集合中的虚拟机部署到所述物理主机集合的物理主机中;
所述位置更新模块,还用于对所述猫群中的各猫个体进行适应度计算;将适应度值最大的猫个体所对应的位置信息作为目标位置信息;根据预设最大分组率和预设最小分组率得到预设分组率;将剩余的猫个体作为待更新猫群,并将所述待更新猫群根据所述预设分组率划分为搜寻猫群和追踪猫群;
其中,所述适应度计算公式为:
其中,a和b分别表示功耗因子和资源利用率因子,p表示主机能耗,表示平均资源利用率;
其中,所述位置更新模块使用的猫个体追踪的速度更新公式为:
其中,w表示惯性权重,c和r表示调节参数,c为常量,r为(0,1)间均匀分布的随机变量,Velh,d(t)表示迭代t时猫个体h在维度d上的速度,Xg,d(t)表示当前全局最优个体在维度d上的位置,Xh,d(t)表示猫个体h在维度d上的位置,Velh,d(t+1)则为猫个体的速度更新。
8.一种基于猫群算法的虚拟机部署设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于猫群算法的虚拟机部署程序,所述基于猫群算法的虚拟机部署程序配置为实现如权利要求1至6中任一项所述的基于猫群算法的虚拟机部署方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有基于猫群算法的虚拟机部署程序,所述基于猫群算法的虚拟机部署程序被处理器执行时实现如权利要求1至6任一项所述的基于猫群算法的虚拟机部署方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010210316.9A CN111338765B (zh) | 2020-03-23 | 2020-03-23 | 基于猫群算法的虚拟机部署方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010210316.9A CN111338765B (zh) | 2020-03-23 | 2020-03-23 | 基于猫群算法的虚拟机部署方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338765A CN111338765A (zh) | 2020-06-26 |
CN111338765B true CN111338765B (zh) | 2023-07-25 |
Family
ID=71184627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010210316.9A Active CN111338765B (zh) | 2020-03-23 | 2020-03-23 | 基于猫群算法的虚拟机部署方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338765B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722112B (zh) * | 2021-11-03 | 2022-01-11 | 武汉元鼎创天信息科技有限公司 | 一种服务资源负载均衡处理方法及*** |
CN115496277B (zh) * | 2022-09-20 | 2024-02-06 | 南通国轩新能源科技有限公司 | 一种基于改进猫群算法的移动补电装置调度方法及*** |
CN116127584B (zh) * | 2023-03-13 | 2024-05-14 | 西南交通大学 | 一种动态过道布置方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677957A (zh) * | 2013-12-13 | 2014-03-26 | 重庆邮电大学 | 云数据中心基于多资源的高能效虚拟机放置方法 |
CN105974794A (zh) * | 2016-06-08 | 2016-09-28 | 江南大学 | 基于改进的猫群算法的离散制造车间调度方法 |
CN107491341A (zh) * | 2017-08-31 | 2017-12-19 | 福州大学 | 一种基于粒子群优化的虚拟机分配方法 |
CN108469983A (zh) * | 2018-04-02 | 2018-08-31 | 西南交通大学 | 一种云环境下的基于粒子群算法的虚拟机部署方法 |
CN108897600A (zh) * | 2018-06-14 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种云计算环境下的虚拟机放置方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201324187A (zh) * | 2011-12-15 | 2013-06-16 | Hon Hai Prec Ind Co Ltd | 虛擬機部署系統及方法 |
US20170026305A1 (en) * | 2015-07-23 | 2017-01-26 | Schneider Electric It Corporation | System to place virtual machines onto servers based upon backup runtime constraints |
US10387181B2 (en) * | 2016-01-12 | 2019-08-20 | International Business Machines Corporation | Pre-deployment of particular virtual machines based on performance and due to service popularity and resource cost scores in a cloud environment |
CN108762927B (zh) * | 2018-05-29 | 2022-01-14 | 上海艾涛信息科技发展有限公司 | 移动云计算的多目标任务调度方法 |
-
2020
- 2020-03-23 CN CN202010210316.9A patent/CN111338765B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677957A (zh) * | 2013-12-13 | 2014-03-26 | 重庆邮电大学 | 云数据中心基于多资源的高能效虚拟机放置方法 |
CN105974794A (zh) * | 2016-06-08 | 2016-09-28 | 江南大学 | 基于改进的猫群算法的离散制造车间调度方法 |
CN107491341A (zh) * | 2017-08-31 | 2017-12-19 | 福州大学 | 一种基于粒子群优化的虚拟机分配方法 |
CN108469983A (zh) * | 2018-04-02 | 2018-08-31 | 西南交通大学 | 一种云环境下的基于粒子群算法的虚拟机部署方法 |
CN108897600A (zh) * | 2018-06-14 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种云计算环境下的虚拟机放置方法 |
Non-Patent Citations (5)
Title |
---|
基于多种群遗传算法的虚拟机优化部署研究;董浩;李烨;;控制工程;第27卷(第02期);第335-341页 * |
基于改进猫群算法的物联网感知层路由优化策略;陶亚男等;计算机工程;第45卷(第02期);第13-17页 * |
基于猫群优化算法的云计算虚拟机资源负载均衡调度;匡珍春;谢仕义;;吉林大学学报(理学版);第54卷(第05期);第1117-1122页 * |
混沌改进猫群算法及其在光伏MPPT中的应用;聂晓华;王薇;;中国电机工程学报;第36卷(第22期);第6103-6110页 * |
解决无优化问题的一种改进猫群算法;王加驰;李航;滕琳;;电子设计工程;第27卷(第11期);第23-27页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111338765A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338765B (zh) | 基于猫群算法的虚拟机部署方法、装置、设备及存储介质 | |
CN106250381B (zh) | 用于确定表格式存储的列布局的***和方法 | |
CN108469983A (zh) | 一种云环境下的基于粒子群算法的虚拟机部署方法 | |
CN111324422B (zh) | 多目标虚拟机部署方法、装置、设备及存储介质 | |
Meyerhenke et al. | A new diffusion-based multilevel algorithm for computing graph partitions of very high quality | |
CN111290831B (zh) | 一种云计算基于强化学习的虚拟机迁移方法 | |
CN109447264B (zh) | 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法 | |
Deng et al. | A data and task co-scheduling algorithm for scientific cloud workflows | |
Supreeth et al. | Hybrid genetic algorithm and modified-particle swarm optimization algorithm (GA-MPSO) for predicting scheduling virtual machines in educational cloud platforms | |
US20130125116A1 (en) | Method and Device for Adjusting Virtual Resource and Computer Readable Storage Medium | |
CN112165721B (zh) | 基于边缘计算的多服务任务的卸载和服务迁移方法 | |
Zhou et al. | Tools to support mesh adaptation on massively parallel computers | |
CN112463337A (zh) | 一种用于移动边缘计算环境下的工作流任务迁移方法 | |
EP3764250A2 (en) | Optimization apparatus, control method for optimization apparatus, and optimization program | |
Awad et al. | A swarm intelligence-based approach for dynamic data replication in a cloud environment | |
Schäfer et al. | Libgeodecomp: A grid-enabled library for geometric decomposition codes | |
CN117407921A (zh) | 基于必连和勿连约束的差分隐私直方图发布方法及*** | |
Wu et al. | Parallel adaptive mesh generation and decomposition | |
CN116050235A (zh) | 一种云边环境下工作流数据布局的方法及存储介质 | |
CN115593264A (zh) | 基于边缘计算的充电优化控制方法、装置和计算机设备 | |
Laili et al. | Parallel transfer evolution algorithm | |
CN110781003B (zh) | 一种粒子群融合变异控制的负载均衡方法 | |
Liang et al. | Multi-factorial optimization for large-scale virtual machine placement in cloud computing | |
CN114296814A (zh) | 一种边云计算任务卸载方法、***、终端以及存储介质 | |
CN111507885A (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 |