一种基于多目标优化的游戏英雄出装推荐方法及系统转让专利

申请号 : CN201910888844.7

文献号 : CN110559664B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邹娟刘靖裴廷睿郑金华蒋威威杨霄张海杨圣祥

申请人 : 湘潭大学

摘要 :

本发明公开一种基于多目标优化的游戏英雄出装推荐方法及系统,涉及手机游戏及优化算法技术领域,包括根据获取的游戏英雄属性表和装备属性表生成包括M个个体的迭代种群,该个体表征游戏英雄出装推荐方案;根据已构建的多目标适应度函数计算迭代种群中每个个体的适应度值,该多目标适应度函数用于计算游戏英雄的攻击值与防御值的和;判断当前迭代次数是否小于预设迭代总数,若否则将适应度值最大的个体确定为游戏英雄的出装推荐方案,若是则对迭代种群中的个体进行交叉变异选择操作以更新迭代种群,并返回计算个体适应度值的步骤,直到迭代结束。应用本发明,能够为用户提供最优游戏英雄出装推荐方案,使游戏英雄的攻击能力和防御能力最大化。

权利要求 :

1.一种基于多目标优化的游戏英雄出装推荐方法,其特征在于,所述游戏英雄出装推荐方法包括:获取游戏英雄属性表和装备属性表;所述游戏英雄属性表和所述装备属性表均为表格形式;所述游戏英雄属性表的第一列为游戏英雄类别,所述游戏英雄属性表的第二列为游戏英雄的物理攻击值,所述游戏英雄属性表的第三列为游戏英雄的法术攻击值,所述游戏英雄属性表的第四列为游戏英雄的物理防御值,所述游戏英雄属性表的第五列为游戏英雄的法术防御值;所述装备属性表的第一列为装备编号,所述装备属性表的第二列为装备名称,所述装备属性表的第三列为装备的物理攻击值,所述装备属性表的第四列为装备的法术攻击值,所述装备属性表的第五列为装备的物理防御值,所述装备属性表的第六列为装备的法术防御值;

根据所述游戏英雄属性表和所述装备属性表生成迭代种群;所述迭代种群包括M个表征游戏英雄出装推荐方案的个体,且所有所述个体代表的游戏英雄均为同一类别;每个所述个体均包括6套互不相同的装备,且每个所述个体的结构形式均为6行5列的数组形式;其中,所述个体的一行表示一个装备的编号和属性,所述个体的每行均包括5个元素,分别为装备编号、装备的物理攻击值、装备的法术攻击值、装备的物理防御值以及装备的法术防御值;

根据已构建的多目标适应度函数,计算所述迭代种群中每个个体的适应度值,并记录当前迭代次数;所述多目标适应度函数用于计算游戏英雄的攻击值与防御值的和;

判断所述当前迭代次数是否小于预设迭代总数,得到第一判断结果;

若所述第一判断结果表示所述当前迭代次数不小于所述预设迭代总数,则将适应度值最大的个体确定为游戏英雄的出装推荐方案;

若所述第一判断结果表示所述当前迭代次数小于所述预设迭代总数,则将所述当前迭代次数加1,然后对所述当前迭代次数对应的迭代种群中的个体进行交叉变异操作生成新个体,并根据所述多目标适应度函数计算每个所述新个体的适应度值;所述新个体的总数为M个;

将所有所述新个体加入所述当前迭代次数对应的迭代种群中以更新迭代种群,并根据更新后的迭代种群中每个个体的适应度值对更新后的迭代种群中的个体进行排序,选择前M个个体作为下一代的迭代种群,然后返回根据已构建的多目标适应度函数,计算所述迭代种群中每个个体的适应度值,并记录当前迭代次数的步骤。

2.根据权利要求1所述的一种基于多目标优化的游戏英雄出装推荐方法,其特征在于,所述游戏英雄出装推荐方法还包括:保留不小于所述预设迭代总数的所述当前迭代次数所对应的迭代种群;

计算保留下来的迭代种群中的每个个体的第一目标值和第二目标值;所述第一目标值为游戏英雄的攻击值,所述第二目标值为游戏英雄的防御值;

计算保留下来的迭代种群中的每个个体的第三目标值;所述第三目标值为所述第一目标值与所述第二目标值的比值;

以每个个体的第三目标值为排序标准,降序排列保留下来的迭代种群中的个体。

3.根据权利要求2所述的一种基于多目标优化的游戏英雄出装推荐方法,其特征在于,所述第一目标值的计算公式为 所述第二目标值的计算公式为 Xm表示第m个个体, i表示第m个个

体的行数;w1、w2、w3、w4分别表示第m个个体代表的游戏英雄的物理攻击值、法术攻击值、物理防御值以及法术防御值。

4.根据权利要求3所述的一种基于多目标优化的游戏英雄出装推荐方法,其特征在于,所述多目标适应度函数为F(Xm)=f1(Xm)+f2(Xm)。

5.根据权利要求1所述的一种基于多目标优化的游戏英雄出装推荐方法,其特征在于,所述根据所述游戏英雄属性表和所述装备属性表生成迭代种群,具体包括:根据所述游戏英雄属性表和所述装备属性表,采用编码方式,生成一个个体并随机初始化,得到包括M个个体的迭代种群。

6.根据权利要求1所述的一种基于多目标优化的游戏英雄出装推荐方法,其特征在于,所述将所有所述新个体加入所述当前迭代次数对应的迭代种群中以更新迭代种群,并根据更新后的迭代种群中每个个体的适应度值对更新后的迭代种群中的个体进行排序,选择前M个个体作为下一代的迭代种群,具体包括:将所有所述新个体加入所述当前迭代次数对应的迭代种群中,得到更新后的迭代种群;更新后的迭代种群的个体数为2M个;

根据更新后的迭代种群中每个个体的适应度值,采用Pareto支配算法,对更新后的迭代种群中的个体进行支配选择;

对经过支配选择的个体进行排序,选择前M个个体作为下一代的迭代种群。

7.一种基于多目标优化的游戏英雄出装推荐系统,其特征在于,所述游戏英雄出装推荐系统包括:信息获取模块,用于获取游戏英雄属性表和装备属性表;所述游戏英雄属性表和所述装备属性表均为表格形式;所述游戏英雄属性表的第一列为游戏英雄类别,所述游戏英雄属性表的第二列为游戏英雄的物理攻击值,所述游戏英雄属性表的第三列为游戏英雄的法术攻击值,所述游戏英雄属性表的第四列为游戏英雄的物理防御值,所述游戏英雄属性表的第五列为游戏英雄的法术防御值;所述装备属性表的第一列为装备编号,所述装备属性表的第二列为装备名称,所述装备属性表的第三列为装备的物理攻击值,所述装备属性表的第四列为装备的法术攻击值,所述装备属性表的第五列为装备的物理防御值,所述装备属性表的第六列为装备的法术防御值;

迭代种群生成模块,用于根据所述游戏英雄属性表和所述装备属性表生成迭代种群;

所述迭代种群包括M个表征游戏英雄出装推荐方案的个体,且所有所述个体代表的游戏英雄均为同一类别;每个所述个体均包括6套互不相同的装备,且每个所述个体的结构形式均为6行5列的数组形式;其中,所述个体的一行表示一个装备的编号和属性,所述个体的每行均包括5个元素,分别为装备编号、装备的物理攻击值、装备的法术攻击值、装备的物理防御值以及装备的法术防御值;

适应度值计算模块,用于根据已构建的多目标适应度函数,计算所述迭代种群中每个个体的适应度值,并记录当前迭代次数;所述多目标适应度函数用于计算游戏英雄的攻击值与防御值的和;

判断模块,用于判断所述当前迭代次数是否小于预设迭代总数,得到第一判断结果;

游戏英雄出装推荐方案确定模块,用于当所述第一判断结果表示所述当前迭代次数不小于所述预设迭代总数时,将适应度值最大的个体确定为游戏英雄的出装推荐方案;

交叉变异操作模块,用于当所述第一判断结果表示所述当前迭代次数小于所述预设迭代总数时,将所述当前迭代次数加1,然后对所述当前迭代次数对应的迭代种群中的个体进行交叉变异操作生成新个体,并根据所述多目标适应度函数计算每个所述新个体的适应度值;所述新个体的总数为M个;

迭代种群更新模块,用于将所有所述新个体加入所述当前迭代次数对应的迭代种群中以更新迭代种群,并根据更新后的迭代种群中每个个体的适应度值对更新后的迭代种群中的个体进行排序,选择前M个个体作为下一代的迭代种群,然后返回所述适应度值计算模块。

8.根据权利要求7所述的一种基于多目标优化的游戏英雄出装推荐系统,其特征在于,所述游戏英雄出装推荐系统还包括:保留模块,用于保留不小于所述预设迭代总数的所述当前迭代次数所对应的迭代种群;

第一目标值和第二目标值计算模块,用于计算保留下来的迭代种群中的每个个体的第一目标值和第二目标值;所述第一目标值为游戏英雄的攻击值,所述第二目标值为游戏英雄的防御值;

第三目标值计算模块,用于计算保留下来的迭代种群中的每个个体的第三目标值;所述第三目标值为所述第一目标值与所述第二目标值的比值;

降序排列模块,用于以每个个体的第三目标值为排序标准,降序排列保留下来的迭代种群中的个体。

9.根据权利要求7所述的一种基于多目标优化的游戏英雄出装推荐系统,其特征在于,所述迭代种群生成模块,具体包括:迭代种群生成单元,用于根据所述游戏英雄属性表和所述装备属性表,采用编码方式,生成一个个体并随机初始化,得到包括M个个体的迭代种群。

10.根据权利要求7所述的一种基于多目标优化的游戏英雄出装推荐系统,其特征在于,所述迭代种群更新模块,具体包括:更新单元,用于将所有所述新个体加入所述当前迭代次数对应的迭代种群中,得到更新后的迭代种群;更新后的迭代种群的个体数为2M个;

支配选择单元,用于根据更新后的迭代种群中每个个体的适应度值,采用Pareto支配算法,对更新后的迭代种群中的个体进行支配选择;

个体选择单元,用于对经过支配选择的个体进行排序,选择前M个个体作为下一代的迭代种群,并跳转至所述适应度值计算模块。

说明书 :

一种基于多目标优化的游戏英雄出装推荐方法及系统

技术领域

[0001] 本发明涉及手机游戏及优化算法技术领域,特别是涉及一种基于多目标优化的游戏英雄出装推荐方法及系统。

背景技术

[0002] dota手游一直受广大游戏玩家喜爱。例如腾讯旗下天美工作室推出的类dota手游‑《王者荣耀》,此游戏玩法以竞技对战为主。在该游戏中一共有53种三级装备(顶级装备),各个装备的属性不同,各个不同的属性的游戏英雄在游戏中的出装也不同。游戏内,每个游戏英雄可以购买6种装备,所有装备搭配共有22,957,480种。目前游戏内系统给每位游戏英雄都提供了3中出装推荐,但是针对不同的游戏阵容,这三种出装推荐并不能满足玩家的需求。

发明内容

[0003] 本发明的目的是提供一种基于多目标优化的游戏英雄出装推荐方法及系统,使得游戏英雄的攻击能力和防御能力最大化。
[0004] 为实现上述目的,本发明提供了如下方案:
[0005] 一种基于多目标优化的游戏英雄出装推荐方法,包括:
[0006] 获取游戏英雄属性表和装备属性表;所述游戏英雄属性表和所述装备属性表均为表格形式;所述游戏英雄属性表的第一列为游戏英雄类别,所述游戏英雄属性表的第二列为游戏英雄的物理攻击值,所述游戏英雄属性表的第三列为游戏英雄的法术攻击值,所述游戏英雄属性表的第四列为游戏英雄的物理防御值,所述游戏英雄属性表的第五列为游戏英雄的法术防御值;所述装备属性表的第一列为装备编号,所述装备属性表的第二列为装备名称,所述装备属性表的第三列为装备的物理攻击值,所述装备属性表的第四列为装备的法术攻击值,所述装备属性表的第五列为装备的物理防御值,所述装备属性表的第六列为装备的法术防御值;
[0007] 根据所述游戏英雄属性表和所述装备属性表生成迭代种群;所述迭代种群包括M个表征游戏英雄出装推荐方案的个体,且所有所述个体代表的游戏英雄均为同一类别;每个所述个体均包括6套互不相同的装备,且每个所述个体的结构形式均为6行5列的数组形式;其中,所述个体的一行表示一个装备的编号和属性,所述个体的每行均包括5个元素,分别为装备编号、装备的物理攻击值、装备的法术攻击值、装备的物理防御值以及装备的法术防御值;
[0008] 根据已构建的多目标适应度函数,计算所述迭代种群中每个个体的适应度值,并记录当前迭代次数;所述多目标适应度函数用于计算游戏英雄的攻击值与防御值的和;
[0009] 判断所述当前迭代次数是否小于预设迭代总数,得到第一判断结果;
[0010] 若所述第一判断结果表示所述当前迭代次数不小于所述预设迭代总数,则将适应度值最大的个体确定为游戏英雄的出装推荐方案;
[0011] 若所述第一判断结果表示所述当前迭代次数小于所述预设迭代总数,则将所述当前迭代次数加1,然后对所述当前迭代次数对应的迭代种群中的个体进行交叉变异操作生成新个体,并根据所述多目标适应度函数计算每个所述新个体的适应度值;所述新个体的总数为M个;
[0012] 将所有所述新个体加入所述当前迭代次数对应的迭代种群中以更新迭代种群,并根据更新后的迭代种群中每个个体的适应度值对更新后的迭代种群中的个体进行排序,选择前M个个体作为下一代的迭代种群,然后返回根据已构建的多目标适应度函数,计算所述迭代种群中每个个体的适应度值,并记录当前迭代次数的步骤。
[0013] 可选的,所述游戏英雄出装推荐方法还包括:
[0014] 保留不小于所述预设迭代总数的所述当前迭代次数所对应的迭代种群;
[0015] 计算保留下来的迭代种群中的每个个体的第一目标值和第二目标值;所述第一目标值为游戏英雄的攻击值,所述第二目标值为游戏英雄的防御值;
[0016] 计算保留下来的迭代种群中的每个个体的第三目标值;所述第三目标值为所述第一目标值与所述第二目标值的比值;
[0017] 以每个个体的第三目标值为排序标准,降序排列保留下来的迭代种群中的个体。
[0018] 可选的,所述第一目标值的计算公式为 所述第二目标值的计算公式为 Xm表示第m个个体,
i表示第m个个体的行数;w1、w2、w3、w4分别表示第m个个体代表的游戏英雄的物理攻击值、法术攻击值、物理防御值以及法术防御值。
[0019] 可选的,所述多目标适应度函数为F(Xm)=f1(Xm)+f2(Xm)。
[0020] 可选的,所述根据所述游戏英雄属性表和所述装备属性表生成迭代种群,具体包括:
[0021] 根据所述游戏英雄属性表和所述装备属性表,采用编码方式,生成一个个体并随机初始化,得到包括M个个体的迭代种群。
[0022] 可选的,所述将所有所述新个体加入所述当前迭代次数对应的迭代种群中以更新迭代种群,并根据更新后的迭代种群中每个个体的适应度值对更新后的迭代种群中的个体进行排序,选择前M个个体作为下一代的迭代种群,具体包括:
[0023] 将所有所述新个体加入所述当前迭代次数对应的迭代种群中,得到更新后的迭代种群;更新后的迭代种群的个体数为2M个;
[0024] 根据更新后的迭代种群中每个个体的适应度值,采用Pareto支配算法,对更新后的迭代种群中的个体进行支配选择;
[0025] 对经过支配选择的个体进行排序,选择前M个个体作为下一代的迭代种群。
[0026] 一种基于多目标优化的游戏英雄出装推荐系统,包括:
[0027] 信息获取模块,用于获取游戏英雄属性表和装备属性表;所述游戏英雄属性表和所述装备属性表均为表格形式;所述游戏英雄属性表的第一列为游戏英雄类别,所述游戏英雄属性表的第二列为游戏英雄的物理攻击值,所述游戏英雄属性表的第三列为游戏英雄的法术攻击值,所述游戏英雄属性表的第四列为游戏英雄的物理防御值,所述游戏英雄属性表的第五列为游戏英雄的法术防御值;所述装备属性表的第一列为装备编号,所述装备属性表的第二列为装备名称,所述装备属性表的第三列为装备的物理攻击值,所述装备属性表的第四列为装备的法术攻击值,所述装备属性表的第五列为装备的物理防御值,所述装备属性表的第六列为装备的法术防御值;
[0028] 迭代种群生成模块,用于根据所述游戏英雄属性表和所述装备属性表生成迭代种群;所述迭代种群包括M个表征游戏英雄出装推荐方案的个体,且所有所述个体代表的游戏英雄均为同一类别;每个所述个体均包括6套互不相同的装备,且每个所述个体的结构形式均为6行5列的数组形式;其中,所述个体的一行表示一个装备的编号和属性,所述个体的每行均包括5个元素,分别为装备编号、装备的物理攻击值、装备的法术攻击值、装备的物理防御值以及装备的法术防御值;
[0029] 适应度值计算模块,用于根据已构建的多目标适应度函数,计算所述迭代种群中每个个体的适应度值,并记录当前迭代次数;所述多目标适应度函数用于计算游戏英雄的攻击值与防御值的和;
[0030] 判断模块,用于判断所述当前迭代次数是否小于预设迭代总数,得到第一判断结果;
[0031] 游戏英雄出装推荐方案确定模块,用于当所述第一判断结果表示所述当前迭代次数不小于所述预设迭代总数时,将适应度值最大的个体确定为游戏英雄的出装推荐方案;
[0032] 交叉变异操作模块,用于当所述第一判断结果表示所述当前迭代次数小于所述预设迭代总数时,将所述当前迭代次数加1,然后对所述当前迭代次数对应的迭代种群中的个体进行交叉变异操作生成新个体,并根据所述多目标适应度函数计算每个所述新个体的适应度值;所述新个体的总数为M个;
[0033] 迭代种群更新模块,用于将所有所述新个体加入所述当前迭代次数对应的迭代种群中以更新迭代种群,并根据更新后的迭代种群中每个个体的适应度值对更新后的迭代种群中的个体进行排序,选择前M个个体作为下一代的迭代种群,然后返回所述适应度值计算模块。
[0034] 可选的,所述游戏英雄出装推荐系统还包括:
[0035] 保留模块,用于保留不小于所述预设迭代总数的所述当前迭代次数所对应的迭代种群;
[0036] 第一目标值和第二目标值计算模块,用于计算保留下来的迭代种群中的每个个体的第一目标值和第二目标值;所述第一目标值为游戏英雄的攻击值,所述第二目标值为游戏英雄的防御值;
[0037] 第三目标值计算模块,用于计算保留下来的迭代种群中的每个个体的第三目标值;所述第三目标值为所述第一目标值与所述第二目标值的比值;
[0038] 降序排列模块,用于以每个个体的第三目标值为排序标准,降序排列保留下来的迭代种群中的个体。
[0039] 可选的,所述迭代种群生成模块,具体包括:
[0040] 迭代种群生成单元,用于根据所述游戏英雄属性表和所述装备属性表,采用编码方式,生成一个个体并随机初始化,得到包括M个个体的迭代种群。
[0041] 可选的,所述迭代种群更新模块,具体包括:
[0042] 更新单元,用于将所有所述新个体加入所述当前迭代次数对应的迭代种群中,得到更新后的迭代种群;更新后的迭代种群的个体数为2M个;
[0043] 支配选择单元,用于根据更新后的迭代种群中每个个体的适应度值,采用Pareto支配算法,对更新后的迭代种群中的个体进行支配选择;
[0044] 个体选择单元,用于对经过支配选择的个体进行排序,选择前M个个体作为下一代的迭代种群,并跳转至所述适应度值计算模块。
[0045] 根据本发明提供的具体实施例,本发明公开了以下技术效果:
[0046] 本发明提供了一种基于多目标优化的游戏英雄出装推荐方法及系统,采用多目标优化算法,建立以游戏英雄的攻击能力和防御能力最大化的目标,并结合遗传算法进行迭代优化,得到最优游戏英雄出装推荐方案,满足用户需求,使得游戏英雄的攻击能力和防御能力的最大化。

附图说明

[0047] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0048] 图1为本发明实施例基于多目标优化的游戏英雄出装推荐方法的流程示意图;
[0049] 图2为本发明实施例基于多目标优化的游戏英雄出装推荐系统的结构示意图;
[0050] 图3为本发明实施例基于多目标优化的《王者荣耀》游戏英雄出装推荐方法的流程示意图;
[0051] 图4为本发明实施例个体结构示意图;
[0052] 图5为本发明实施例遗传算法交叉操作示意图;
[0053] 图6为本发明实施例遗传算法变异操作示意图。

具体实施方式

[0054] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0055] 本发明的目的是提供一种基于多目标优化的游戏英雄出装推荐方法及系统,使得游戏英雄的攻击能力和防御能力最大化。
[0056] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0057] 实施例一
[0058] 如图1所示,本实施例提供的基于多目标优化的游戏英雄出装推荐方法,包括以下步骤。
[0059] 步骤101:获取游戏英雄属性表和装备属性表;所述游戏英雄属性表和所述装备属性表均为表格形式;所述游戏英雄属性表的第一列为游戏英雄类别,所述游戏英雄属性表的第二列为游戏英雄的物理攻击值,所述游戏英雄属性表的第三列为游戏英雄的法术攻击值,所述游戏英雄属性表的第四列为游戏英雄的物理防御值,所述游戏英雄属性表的第五列为游戏英雄的法术防御值;所述装备属性表的第一列为装备编号,所述装备属性表的第二列为装备名称,所述装备属性表的第三列为装备的物理攻击值,所述装备属性表的第四列为装备的法术攻击值,所述装备属性表的第五列为装备的物理防御值,所述装备属性表的第六列为装备的法术防御值。
[0060] 步骤101的具体过程为:目前游戏内共有93个游戏英雄,53种三级装备(顶级装备),为了充分发挥各装备的最大性能,本实施例只保留了游戏英雄和装备的4个属性,分别是物理攻击、法术攻击、物理防御和法术防御。装备的其余属性都转化成物理攻击、法术攻击、物理防御和法术防御,转换后的装备属性如表1,游戏英雄属性如表2。
[0061] 表1转换后的装备属性
[0062]
[0063]
[0064]
[0065] 表2游戏英雄属性
[0066]
[0067]
[0068] 步骤102:根据所述游戏英雄属性表和所述装备属性表生成迭代种群;所述迭代种群包括M个表征游戏英雄出装推荐方案的个体,且所有所述个体代表的游戏英雄均为同一类别;每个所述个体均包括6套互不相同的装备,且每个所述个体的结构形式均为6行5列的数组形式;其中,所述个体的一行表示一个装备的编号和属性,所述个体的每行均包括5个元素,分别为装备编号、装备的物理攻击值,装备的法术攻击值、装备的物理防御值以及装备的法术防御值。
[0069] 步骤102具体包括:
[0070] 根据所述游戏英雄属性表和所述装备属性表,采用编码方式,生成一个个体,然后随机初始化,得到包括M个个体的迭代种群。
[0071] 游戏内每个游戏英雄可以购买6个装备,由于装备的主动或被动技能都是唯一的,同一个装备出现多次是浪费的。故本实施例中采用长度为6的符号编码,表1中已经为53个装备编号,一个有效的编码为编号从1‑53中的非重复数字组合,例如2‑17‑18‑44‑36‑45(出装推荐方案为抵抗之靴、暗影战斧、破军、冰痕之握、反伤刺甲、贤者的庇护)为一个有效编码,2‑2‑2‑2‑2‑2(出装推荐方案为抵抗之靴、抵抗之靴、抵抗之靴、抵抗之靴、抵抗之靴、抵抗之靴)为一个无效编码。一个个体的结构形式采用6*5的二维数组形式,为Xm表示第m个个体;其中,Xm的第一列表示装备编号,其余列依次表
示表1中的物理攻击、法术攻击、物理防御、法术防御值,即Xm的每一行均为装备的详情。
[0072] 然后使用上述的个体编码方式,随机初始化生成种群大小为M的迭代种群。
[0073] 步骤103:根据已构建的多目标适应度函数,计算所述迭代种群中每个个体的适应度值,并记录当前迭代次数;所述多目标适应度函数用于计算游戏英雄的攻击值与防御值的和。
[0074] 游戏内游戏英雄可以根据己方和友方阵容选择不同的装备,从两方面考虑,一是游戏英雄的攻击值,二是游戏英雄的防御值。本发明通过多目标优化算法,最大化游戏英雄的攻击值和防御值。
[0075] 步骤104:判断所述当前迭代次数是否小于预设迭代总数,得到第一判断结果;若所述第一判断结果表示所述当前迭代次数不小于所述预设迭代总数,则执行步骤105;若所述第一判断结果表示所述当前迭代次数小于所述预设迭代总数,则执行步骤106。
[0076] 步骤105:将适应度值最大的个体确定为游戏英雄的出装推荐方案。
[0077] 步骤106:将所述当前迭代次数加1,然后对所述当前迭代次数对应的迭代种群中的个体进行交叉变异操作生成新个体,并根据所述多目标适应度函数计算每个所述新个体的适应度值;所述新个体的总数为M个。
[0078] 步骤107:将所有所述新个体加入所述当前迭代次数对应的迭代种群中以更新迭代种群,并根据更新后的迭代种群中每个个体的适应度值对更新后的迭代种群中的个体进行排序,选择前M个个体作为下一代的迭代种群,然后返回步骤103。
[0079] 步骤107具体包括:
[0080] 将所有所述新个体加入所述当前迭代次数对应的迭代种群中,得到更新后的迭代种群;更新后的迭代种群的个体数为2M个。
[0081] 根据更新后的迭代种群中每个个体的适应度值,采用Pareto支配算法,对更新后的迭代种群中的个体进行支配选择。
[0082] 对经过支配选择的个体进行排序,选择前M个个体作为下一代的迭代种群,然后返回步骤103。
[0083] 为了更明确由本实施例推荐的出装特点,本实施例在结合游戏英雄属性和装备属性的特点基础上,对进化结束后大小为M个个体的迭代种群进行再处理,以便为玩家提供更多游戏英雄的出装推荐方案。
[0084] 所述游戏英雄出装推荐方法还包括:
[0085] 保留不小于所述预设迭代总数的所述当前迭代次数所对应的迭代种群。
[0086] 计算保留下来的迭代种群中的每个个体的第一目标值和第二目标值;所述第一目标值为游戏英雄的攻击值,所述第二目标值为游戏英雄的防御值。所述第一目标值的计算公式为 所述第二目标值的计算公式为Xm表示第m个个体, i表示第m个个体的行数;w1、w2、w3、w4分别表示第
m个个体代表的游戏英雄的物理攻击值、法术攻击值、物理防御值以及法术防御值。
[0087] 计算保留下来的迭代种群中的每个个体的第三目标值;所述第三目标值为所述第一目标值与所述第二目标值的比值。其中,比值越大表示攻击属性越高,比值越小表示防御属性越好。
[0088] 以每个个体的第三目标值为排序标准,降序排列保留下来的迭代种群中的个体,玩家可以根据降序排列的个体自由选择游戏英雄的出装装备。
[0089] 步骤103的多目标适应度函数为F(Xm)=f1(Xm)+f2(Xm)。
[0090] 实施例二
[0091] 如图2所示,本实施例提供了一种基于多目标优化的游戏英雄出装推荐系统,包括:
[0092] 信息获取模块201,用于获取游戏英雄属性表和装备属性表;所述游戏英雄属性表和所述装备属性表均为表格形式;所述游戏英雄属性表的第一列为游戏英雄类别,所述游戏英雄属性表的第二列为游戏英雄的物理攻击值,所述游戏英雄属性表的第三列为游戏英雄的法术攻击值,所述游戏英雄属性表的第四列为游戏英雄的物理防御值,所述游戏英雄属性表的第五列为游戏英雄的法术防御值;所述装备属性表的第一列为装备编号,所述装备属性表的第二列为装备名称,所述装备属性表的第三列为装备的物理攻击值,所述装备属性表的第四列为装备的法术攻击值,所述装备属性表的第五列为装备的物理防御值,所述装备属性表的第六列为装备的法术防御值。
[0093] 迭代种群生成模块202,用于根据所述游戏英雄属性表和所述装备属性表生成迭代种群;所述迭代种群包括M个表征游戏英雄出装推荐方案的个体,且所有所述个体代表的游戏英雄均为同一类别;每个所述个体均包括6套互不相同的装备,且每个所述个体的结构形式均为6行5列的数组形式;其中,所述个体的一行表示一个装备的编号和属性,所述个体的每行均包括5个元素,分别为装备编号、装备的物理攻击值,装备的法术攻击值、装备的物理防御值以及装备的法术防御值。
[0094] 适应度值计算模块203,用于根据已构建的多目标适应度函数,计算所述迭代种群中每个个体的适应度值,并记录当前迭代次数;所述多目标适应度函数用于计算游戏英雄的攻击值与防御值的和。
[0095] 判断模块204,用于判断所述当前迭代次数是否小于预设迭代总数,得到第一判断结果。
[0096] 游戏英雄出装推荐方案确定模块205,用于当所述第一判断结果表示所述当前迭代次数不小于所述预设迭代总数时,将适应度值最大的个体确定为游戏英雄的出装推荐方案。
[0097] 交叉变异操作模块206,用于当所述第一判断结果表示所述当前迭代次数小于所述预设迭代总数时,将所述当前迭代次数加1,然后对所述当前迭代次数对应的迭代种群中的个体进行交叉变异操作生成新个体,并根据所述多目标适应度函数计算每个所述新个体的适应度值;所述新个体的总数为M个。
[0098] 迭代种群更新模块207,用于将所有所述新个体加入所述当前迭代次数对应的迭代种群中以更新迭代种群,并根据更新后的迭代种群中每个个体的适应度值对更新后的迭代种群中的个体进行排序,选择前M个个体作为下一代的迭代种群,然后返回所述适应度值计算模块203。
[0099] 为了更明确由本实施例推荐的出装特点,本实施例在结合游戏英雄属性和装备属性的特点基础上,对进化结束后大小为M个个体的迭代种群进行再处理,以便为玩家提供更多的出装选择方案,故本实施例提供的所述游戏英雄出装推荐系统还包括:
[0100] 保留模块,用于保留不小于所述预设迭代总数的所述当前迭代次数所对应的迭代种群。
[0101] 第一目标值和第二目标值计算模块,用于计算保留下来的迭代种群中的每个个体的第一目标值和第二目标值;所述第一目标值为游戏英雄的攻击值,所述第二目标值为游戏英雄的防御值。
[0102] 第三目标值计算模块,用于计算保留下来的迭代种群中的每个个体的第三目标值;所述第三目标值为所述第一目标值与所述第二目标值的比值。比值越大表示攻击属性越高,比值越小表示防御属性越好。
[0103] 降序排列模块,用于以每个个体的第三目标值为排序标准,降序排列保留下来的迭代种群中的个体。
[0104] 其中,所述第一目标值的计算公式为 所述第二目标值的计算公式为 Xm表示第m个个体, i
表示第m个个体的行数;w1、w2、w3、w4分别表示第m个个体代表的游戏英雄的物理攻击值、法术攻击值、物理防御值以及法术防御值。
[0105] 所述适应度值计算模块203中的多目标适应度函数为F(Xm)=f1(Xm)+f2(Xm)。
[0106] 所述迭代种群生成模块202,具体包括:
[0107] 迭代种群生成单元,用于根据所述游戏英雄属性表和所述装备属性表,采用编码方式,生成一个个体并随机初始化,得到包括M个个体的迭代种群。
[0108] 所述迭代种群更新模块207,具体包括:
[0109] 更新单元,用于将所有所述新个体加入所述当前迭代次数对应的迭代种群中,得到更新后的迭代种群;更新后的迭代种群的个体数为2M个。
[0110] 支配选择单元,用于根据更新后的迭代种群中每个个体的适应度值,采用Pareto支配算法,对更新后的迭代种群中的个体进行支配选择。
[0111] 个体选择单元,用于对经过支配选择的个体进行排序,选择前M个个体作为下一代的迭代种群,并跳转至所述适应度值计算模块203。
[0112] 实施例三
[0113] 如图3所示,本实施例提供的一种基于多目标优化的《王者荣耀》游戏英雄出装推荐方法,包括以下步骤:
[0114] 步骤1,转换英雄和装备属性;其转换过程与实施例一中的步骤101相同,在此不再重复叙述。
[0115] 步骤2,随机初始化种群;根据《王者荣耀》游戏内每个游戏英雄只能购买6件装备以及各装备的主动或被动技能的唯一性,一个个体的有效编码应为长度为6的非重复的符号编码,考虑到装备属性,本实施例采用实施例一步骤102中的编码形式,随机生成100个长度为6的且范围在1‑53之间的符号编码,得到初始种群。例如,初始种群中,个体1为1‑45‑34‑25‑50‑3,个体2为3‑43‑51‑40‑4‑37,个体99为49‑34‑45‑6‑39‑5,个体100为23‑43‑50‑
3‑53‑5,则对应的解结构如图4所示。
[0116] 步骤3,交叉、变异产生子代;采用遗传算法对初始种群中的个体进行交叉变异操作生成M个新个体。
[0117] 在初始种群中,个体1,个体2,个体99,和个体100分别代表的出装推荐方案为(1)影忍之足‑贤者的庇护‑贤者之书‑虚无法杖‑贪婪之噬‑冷静之靴、(2)冷静之靴‑极寒风暴‑救赎之翼‑秘法之靴‑血魔之怒、(99)近卫荣耀‑贤者之书‑贤者的庇护‑疾步之靴‑霸者重装‑急速战靴和(100)炽热支配者‑极寒风暴‑贪婪之噬‑冷静之靴‑奔狼纹章‑急速战靴。设定当前选定的游戏英雄为法师类英雄,则游戏英雄的属性为W=(0.1,0.8,0.05,0.05)。将个体带入已构建的多目标适应度函数中计算出各个个体的适应度值(目标值)。个体1,个体2,个体99和个体100计算得适应度值分别为(1.019,0.207)、(0.463,0.262)、(0.57,0.26)和(0.324,0.25)。接下来,随机选取初始种群中的两个将个体进行交叉和变异,直到产生
100个新个体,计算新个体的适应度值。
[0118] 交叉操作是两个个体在某一个或几个位置发生数据交错或交换位置的操作,变异操作为随机选取个体的某一行数据用表1中的某个数据替换。
[0119] 假设选取个体1和个体99作为父代个体,采用单点交叉方法,则交叉结果如图5。
[0120] 本实施例中,自然情况下个体有一定概率发生变异,规则为随机选取某一位置用表1中原个体中未出现的数据进行替换;若交叉产生的子代中出现了重复的装备编号,则该个体一定变异,其操作过程如图6所示。
[0121] 在交叉和变异中,交叉位置和变异位置都是随机产生的,交叉概率为100%,变异概率为5%。
[0122] 步骤4,合并种群,计算个体的适应度值;将新个体加入初始种群中,得到合并种群,该合并种群的个体数为200。
[0123] 步骤5,Pareto算法排序,排序前100的个体作为下一代的初始种群;在交叉变异操作后,两个优秀的个体有极大的概率产生两个优秀的新个体。变异操作目的是使个体跳出局部最优。新个体也许会比父代个体差,将新个体带入到已构建的多目标适应度函数中计算其适应度值后加入到初始种群中,利用Pareto支配选择排序后,非优秀个体将舍弃,仅保留前100个优秀个体作为下一代的初始种群,重复迭代输出最后一代的初始种群。
[0124] 步骤6,判断是否满足终止条件;终止条件为当前迭代次数是否为预设迭代总数。若是执行步骤7,若否则返回步骤3。
[0125] 步骤7,计算比值并排序;在最后的输出初始种群中,计算每个个体的第一目标值f1和第二目标值f2,然后对每个个体计算出第一目标值f1和第二目标值f2的比值,比值越大表示该出装推荐方案攻击能力较高,比值越小表示该出装推荐方案防御能力越强。
[0126] 步骤8,结束。表3是本实施例优化的法师类英雄出装推荐方案的部分数据。
[0127] 表3:法师类英雄出装推荐
[0128]
[0129] 本发明在结合游戏英雄属性和装备属性的特点基础上,能为玩家推荐更多的出装选择方案。
[0130] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0131] 本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。