假设我有一个游戏,其中有角色,每个角色对另一个角色都有相对的力量/弱点。例如。 A对B较强(+2)但对C(-1)较弱而对D(0)较弱。想想任何视频游戏 - 守望等等,你都可以这么说。
给定大小为mxm的矩阵M,其中m是字符数,M_ {i,j}表示玩家i对玩家j的强度,M在对角线上将为0,下三角矩阵将为上对角线的逆转置(反之亦然,因为它是方形矩阵)。
问题是:给定这样的矩阵和对立球员O的向量(比如,[1,3,6,8,9,18],返回等长球员的向量V的最佳算法是什么,这样我们 - 最大化总和M_ {V_1,O_1},M_ {V_2,O_2} ... M_ {V_6,O_6}和 - 最小化总和M_ {O_1,V_1} + M_ {O_2,V_1},... + M_ {O_6,V_6}?
除了蛮力测试之外,对此有什么好的和有效的实用方法?遗传算法在这一点上听起来不错,但我认为肯定有更高效的东西。
Pseudocode的回答也很受欢迎。
请原谅这种不一致,我正在进行非常小的睡眠(反映在我对数学优化团队的明显兴趣上)。