会议报告
实验部分:
1.使用pagerank算法定位出嫌疑度最大的api序列
2.根据嫌疑度api重组出52种可能的微服务部署解
3.开关仿真运行可能的微服务部署解,并进行response time 监控
4.使用演化算法找到最优的微服务部署解
优化部分:
使用演化算法:
1.染色体表现形式
每一种gateway代表一种部署方案,每种染色体编码对应一种gateway,进行了去重,但是为了满足演化算法框架输入要求,保留了部分重复解。
{'0000': 'gateway1',
'0001': 'gateway2',
'0002': 'gateway2',
'0003': 'gateway2',
'0004': 'gateway2',
'0010': 'gateway3',
'0011': 'gateway4',
'0012': 'gateway5',
'0013': 'gateway5',
'0014': 'gateway5',
'0020': 'gateway3',
'0021': 'gateway5',
'0022': 'gateway4',
'0023': 'gateway5',
'0024': 'gateway5',
'0030': 'gateway3',
'0031': 'gateway5',
'0032': 'gateway5',
'0033': 'gateway4',
'0034': 'gateway5',
'0100': 'gateway6',
'0101': 'gateway7',
'0102': 'gateway8',
'0103': 'gateway8',
'0104': 'gateway8',
'0110': 'gateway9',
'0111': 'gateway10',
'0112': 'gateway11',
'0113': 'gateway11',
'0114': 'gateway11',
'0120': 'gateway12',
'0121': 'gateway13',
'0122': 'gateway14',
'0123': 'gateway15',
'0124': 'gateway15',
'0130': 'gateway12',
'0131': 'gateway13',
'0132': 'gateway15',
'0133': 'gateway14',
'0134': 'gateway15',
'0200': 'gateway6',
'0201': 'gateway8',
'0202': 'gateway7',
'0203': 'gateway8',
'0204': 'gateway8',
'0210': 'gateway12',
'0211': 'gateway14',
'0212': 'gateway13',
'0213': 'gateway15',
'0214': 'gateway15',
'0220': 'gateway9',
'0221': 'gateway11',
'0222': 'gateway10',
'0223': 'gateway11',
'0224': 'gateway11',
'0230': 'gateway12',
'0231': 'gateway15',
'0232': 'gateway13',
'0233': 'gateway14',
'0234': 'gateway15',
'1000': 'gateway16',
'1001': 'gateway17',
'1002': 'gateway18',
'1003': 'gateway18',
'1004': 'gateway18',
'1010': 'gateway19',
'1011': 'gateway20',
'1012': 'gateway21',
'1013': 'gateway21',
'1014': 'gateway21',
'1020': 'gateway22',
'1021': 'gateway23',
'1022': 'gateway24',
'1023': 'gateway25',
'1024': 'gateway25',
'1030': 'gateway22',
'1031': 'gateway23',
'1032': 'gateway25',
'1033': 'gateway24',
'1034': 'gateway25',
'1100': 'gateway26',
'1101': 'gateway27',
'1102': 'gateway28',
'1103': 'gateway28',
'1104': 'gateway28',
'1110': 'gateway29',
'1111': 'gateway30',
'1112': 'gateway31',
'1113': 'gateway31',
'1114': 'gateway31',
'1120': 'gateway32',
'1121': 'gateway33',
'1122': 'gateway34',
'1123': 'gateway35',
'1124': 'gateway35',
'1130': 'gateway32',
'1131': 'gateway33',
'1132': 'gateway35',
'1133': 'gateway34',
'1134': 'gateway35',
'1200': 'gateway36',
'1201': 'gateway37',
'1202': 'gateway38',
'1203': 'gateway39',
'1204': 'gateway39',
'1210': 'gateway40',
'1211': 'gateway41',
'1212': 'gateway42',
'1213': 'gateway43',
'1214': 'gateway43',
'1220': 'gateway44',
'1221': 'gateway45',
'1222': 'gateway46',
'1223': 'gateway47',
'1224': 'gateway47',
'1230': 'gateway48',
'1231': 'gateway49',
'1232': 'gateway50',
'1233': 'gateway51',
'1234': 'gateway52'}
2.选择(selecting)部分策略
随机选择策略
随机抽样选择实现了零偏差同时保证最小个体扩展。种群的个体被映射到区间的连续片段,每个个体所在片段的长度与其适应度成比例(这里跟轮盘赌是相同的)。用一组等距离的指针随机地指向上述区间,每个指针所指的个体即为要选择的个体。指针间的距离是1/Nsel (Nsel 为要选择的个体数),第一个指针的位置由[0; 1/Nsel) 范围内的随机数给出。
轮盘赌选择和随机抽样选择都属于轮盘赌模型(或称基于适应度比例的选择模型),但后者通常能够得到更想要得到的结果,种群多样性也得以保证。
3.重组(recombination)部分策略
双点交叉策略
两个父代个体交换染色体片段产生新个体的过程,因此也称为交叉操作。 交叉操作中,个体的染色体编码可以是实值、也可以是二进制,比如:[0 1 0 1 1 1 0 1] 和[1.1 2.0 3.4 2.7 1.6] 这些类型的染色体都可以进行交叉操作,一般更多地用在二进制或格雷码编码的个体中。 交叉有分单点、双点和多点交叉。
4.优化目标
不同部署方案的response time
优化结果:
最优的目标函数值为:24816.0
有效进化代数:20
最优的一代是第 6 代
时间已过 0.026682376861572266 秒
提升效果:
初始结果(未优化) | 平均结果(所有可能解均值) | 最优结果 | |
---|---|---|---|
Response Time(μs) | 5375439 | 5765536 | 24816 |
提升比率 | -7.25% | 99.5% |
优化效果(运行50次取平均值)
每次总代数 | 平均每次达到最优代数 | 平均最优结果 |
---|---|---|
25 | 6.42 | 24816 |