Skip to content

SunHanxi/ABC_java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

人工蜂群实验

规定格式

数据集位置

数据集位于./file文件夹内

数据集命名规范

n_PlansNum_lb_ub_TimeSpent_Concurrency1_---ConcurrencyN.txt

举例:

4_3_0_3_5.5_10_10_9_10.txt

有四个服务,3条路径,虚拟机列表中每个服务有4个虚拟机可选, 要求最高用时为5.5秒,并发量为[10,10,9,10]。

解的格式

假如是三条路径,每条路径是4个服务

这是一个长度为3*4的数组

需要一个概率数组probability

[概率1][概率2][概率3]

还需要一个并发量数组concurrency来存储每条路径的并发量

[并发量1][并发量2][并发量3]

[服务11][服务12][服务13][服务14][服务21][服务22][服务23][服务24][服务31][服务32][服务33][服务34]

假设有k条路径,每条路径是n个服务,那么数组长度就是k+k*n。

1为第一条路径第一个服务,n是第一条路径的第n个服务。

(1k)(1n)就是所有的k*n个服务的编号。

实验步骤

1 初始化单条解

  • 有number_of_plans条路径,n个服务
  • 初始化number_of_plans个概率,然后通过scaling_probability()函数进行放缩至1。
  • 使用一个长度为number_of_plans的数组concurrency[FoodNumber][number_of_plans]存储这条解的每条路径的并发量
  • 计算响应时间,以及并发量是不是符合要求,不符合要求的就要进行惩罚。

2 循环初始化所有解

  • 循环从1-FoodNumber,初始化所有的解。
  • 将第一条解当做最优解。

3 雇佣蜂阶段

  • 随机找一条解,将这条解与其它任一条解进行交换某个位置。
  • 如果交换后变好了,则保存更改,反之将计数器加一。
  • 若计数器到达了最大值,舍弃本条解,重新生成。

4 存储最优解

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages