Q1:
根据目标函数建立通信网络(城市对直连)-网络生成问题
目标函数:城市A人口*城市B人口*城市对连边容量
约束:
-
城市对直连
-
连边最大距离约束
-
所有城市连入网络
-
连边数量约束
A:遗传算法求解:
-
初始化:随机生成K条连边的染色体(后面会变异,出现异常值)
-
适应度计算:对每条染色体判断进行连边数量惩罚、城市未连接惩罚、距离惩罚,计算适应度
-
参数调整:是否精英操作、种群大小、迭代次数、交叉概率、变异概率
PS:
-
初始化K条连边:染色体长度的数值随机排序,取前K个连边
-
连边数量惩罚:染色体相加是否为K
-
城市未连接惩罚:将染色体变为连边,判断AB连边出现的次数,AB至少有一个出现两次及以上
-
距离惩罚:对所有连边判断
Q2:在之前建立的网络上,根据目标函数新增一定数量连边(城市对直连)-网络优化问题
目标函数:城市A人口*城市B人口*城市对连边容量
约束:
-
城市对直连
-
连边最大距离约束
-
所有城市连入网络
-
连边数量约束
A:遗传算法求解:
-
初始化:在已有连边基础上生成N条连边
-
适应度计算:对每条染色体判断进行连边数量惩罚(已有连边是否存在,新增连边是否N条)
PS:
-
连边数量惩罚:判断总数K+N,判断K条是否存在,判断是否N条
Q3:
根据目标函数建立通信网络(可有中间节点)-网络生成问题
目标函数:城市A人口*城市B人口*城市对连边容量
A:遗传算法求解:
-
适应度计算:对每条染色体判断进行连边数量惩罚、城市未连接惩罚、距离惩罚,生成容量资源矩阵,对每条连边,随机条路径,随机路径,随机权重,消耗容量资源,计算适应度
PS:
-
随机条路径:随机数值
-
随机路径:对多有节点随机排序(去掉OD),取前M个节点
-
随机权重:随机数值(不能超过1)
Q4:
目标函数加入负载均衡和经济指标
A:NSGA-Ⅱ求解:
-
负载均衡:流量最小的连边最大
-
经济指标:城市A的GDP*城市B的GDP
PS:
-
适应度1:人口、容量
-
适应度2:经济指标
-
适应度3:流量最小的连边最大
代码链接: https://github.com/hanyunxuan/2018-Graduate-Mathematical-Modeling-Competition-B