嗯,和局的情况我也明白该怎么办了。。。
假设说单挑有三种结果,甲方赢的概率是 p1, 平的概率是 p2, 输的概率是 p3, x 为甲方武力, y 为乙方武力。则必然有以下方程组:
a1 + <b, x-y> = log(p1/(1-p1))
a2 + <b, x-y> = log((p1+p2)/(1-p1-p2))
p1 + p2 + p3 = 1
然后我们对 p1, p2, p3 求解即可。
如果想做的更详细,p1 = 甲方擒杀乙方,p2 = 甲方全胜乙方,p3 = 甲方优势乙方,p4 = 平手,p5 = 甲方劣势乙方,p6 = 甲方败于乙方,p7 = 甲方被乙方擒杀。则,列以下方程组:
a_i + <b, x-y> = log((p1+...+p_i)/(1-p1- ... - p_i)), i = 1, 2, ... , n-1
p1 + ... + p_n = 1
然后对 p1 , ... , pn 求解即可。下面比较有趣的就是 a1 , ... , a_{n-1} 的意义了。简单的说,n-1 个数字是为了划分 n 个不同结果来设定的“边界线”。比如说,a1 就是斩杀和完胜的边界,a2 就是完胜和优势的边界,。。。,a6 就是击败与死亡的边界。这些数字的绝对值越大,就说明越极端的结果越难形成,数字越小就说明越容易形成。
在一维武力论中,我们可以让 a1, ... , a_{n-1} 为普世值,也就是说所有武将都共享同样数值的分界。那么独立于 a1, ..., a_{n-1} 之后,单挑的结果则完全凭 k(x-y) 的武力差来决定了。那么在二维论,甚至三维论,四维论中,我们除了武将的武力之外,还可以让 a1 , ... , a_{n-1} 这些参数随不同武将而变,来反映不同武将,在基础武力之上所附加的攻击力,防御力,毙敌力和存活力。
对了,最后说下为什么我那么热衷求出这些概率,主要的原因是知道单场概率之后,我们就可以算出那场单挑的熵 (=log(Pr(单挑结果 | 模型参数)))。全书所有单挑的熵加起来,就是统计学中极其重要的 likelihood function, L。函数 L 是一个关于模型参数的函数,我们可以通过微分求导,找出令 L 最大时的模型参数。这组参数就是统计学中的 maximum likelihood estimator,也是从科学的角度上来讲,最合理的武力值(因为本模型的参数就是武将武力)。
对于争议战例,在求 likelihood function 的时候,我们也可以用权数求和。这样做的另外一个好处,就是我们可以确切的知道,任何一个单一战例对武将的武力评估和总排名的重要性。比如说,关羽 vs 颜良之战,权数如果是 1 的话,估计关羽武力要高过吕布了。同理,如果关 vs 华,关 vs 颜,关 vs 文的权数都是 0 的话,估计关羽未必高过黄忠多少。
目前唯一没有考虑清楚的就是 1 vs N 怎么计算。例如,吕布 vs 关+张,怎么样合理地使得吕布的武力不会一下子到 200 去。
先想到这么多,以后慢慢再写。。。
[ 本帖最后由 颖颖 于 2009-12-9 23:27 编辑 ]
|