專利名稱::確定玩家的相對(duì)技能的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般涉及確定諸如計(jì)算機(jī)游戲或任何其它類型的游戲等游戲的玩家的相對(duì)技能。本發(fā)明尤其但不限于涉及使用貝葉斯統(tǒng)計(jì)技術(shù)來基于涉及玩家的多個(gè)游戲的結(jié)果來對(duì)這些玩家排名。扭旦冃眾需要提供一種確定諸如計(jì)算機(jī)游戲、國(guó)際象棋、網(wǎng)球以及任何其它類型的游戲等游戲的玩家的相對(duì)技能的方法。這需要以對(duì)相對(duì)技能的指示盡可能準(zhǔn)確并且還被最終用戶(即游戲玩家)理解和接受的方式來實(shí)現(xiàn)。另外,需要即使在涉及許多玩家的游戲情形下并且在許多玩家隊(duì)伍(其中每一隊(duì)伍具有許多成員)的情形下也能快速確定相對(duì)技能。因?yàn)樵谶@些情形下,計(jì)算復(fù)雜度通常增長(zhǎng)顯著,所以就特別成問題。玩家可以是人類玩家或者計(jì)算機(jī)程序。在2005年1月24日提交的題為"BayesianScoring(貝葉斯評(píng)分)"的早先的美國(guó)專利申請(qǐng)中,描述了一種用于基于游戲結(jié)果來對(duì)玩家技能進(jìn)行排名或確定玩家技能的指示的系統(tǒng)。技能等級(jí)可用于跟蹤玩家的進(jìn)步和/或在游戲環(huán)境中的地位,和/或可用于在將來的游戲中將玩家相互匹配。描述了一種使用貝葉斯統(tǒng)計(jì)技術(shù)來確定玩家相對(duì)技能的指示的系統(tǒng)。本發(fā)明建立于早先的工作之上且擴(kuò)展了早先的工作,并且特別地提供一種能夠減少計(jì)算時(shí)間的新計(jì)算方法。已經(jīng)提出了使用統(tǒng)計(jì)方法的早先的用于游戲的排名系統(tǒng)。由ArpadElo設(shè)計(jì)的ELO排名系統(tǒng)僅適用于兩個(gè)玩家的游戲。然而,需要提供一種用于每次比賽多于兩個(gè)玩家的游戲模式的系統(tǒng)。本發(fā)明尋求提供一種用于確定游戲玩家的相對(duì)技能的指示的改進(jìn)的方法和設(shè)備,它克服或者至少緩解了上述一個(gè)或多個(gè)問題。概述下面提供本發(fā)明的簡(jiǎn)化概述以便向讀者提供基本理解。本概述不是本發(fā)明的詳盡概觀,并且不標(biāo)識(shí)本發(fā)明的關(guān)鍵/重要元素,也不描繪本發(fā)明的范圍。其唯一目的是以簡(jiǎn)化形式提供本文公開的一些概念,作為后面提供的更詳細(xì)描述的序言。本示例提供一種基于涉及游戲的至少第一玩家和第二玩家的一個(gè)或多個(gè)此類游戲的結(jié)果來確定這些玩家的相對(duì)技能的指示的方法。該方法包括下列步驟。對(duì)于每一玩家,訪問描述與有關(guān)該玩家技能的置信度相關(guān)聯(lián)的概率分布的統(tǒng)計(jì)量;。接收有關(guān)游戲之一的結(jié)果的信息;。形成包含節(jié)點(diǎn)的因子圖(factorgraph),所述圖是使用接收到的有關(guān)結(jié)果的信息形成的,并且用統(tǒng)計(jì)量來實(shí)例化至少一些節(jié)點(diǎn);以及。通過在因子圖上使用消息傳遞技術(shù)來更新與每一玩家相關(guān)聯(lián)的統(tǒng)計(jì)量。提供一種相應(yīng)的設(shè)備。該設(shè)備用于基于涉及游戲的至少第一玩家和第二玩家的一個(gè)或多個(gè)此類游戲的結(jié)果來確定這些玩家的相對(duì)技能的指示,所述設(shè)備包括-。被安排成對(duì)每一玩家訪問描述與有關(guān)該玩家技能的置信度相關(guān)聯(lián)的概率分布的統(tǒng)計(jì)量的輸入;。被安排成接收有關(guān)游戲之一的結(jié)果的信息的輸入;。用于形成包含節(jié)點(diǎn)的因子圖的裝置,所述圖是使用接收到的有關(guān)結(jié)果的信息來形成的,并且用統(tǒng)計(jì)量來實(shí)例化至少一些節(jié)點(diǎn);以及。被安排成通過在因子圖上使用消息傳遞技術(shù)來更新與每一玩家相關(guān)聯(lián)的統(tǒng)計(jì)量的一個(gè)或多個(gè)處理器。較佳地,該統(tǒng)計(jì)量至少包括描述每一概率分布的平均值和方差。較佳地,該概率分布是高斯型的。較佳地,該因子圖是非循環(huán)的。較佳地,該因子圖是由兩種類型節(jié)點(diǎn)組成的并且是二分(bi-partite)的。有利的是,在因子圖上應(yīng)用的消息傳遞技術(shù)被安排成實(shí)質(zhì)上執(zhí)行貝葉斯推理過程。在一較佳示例中,該因子圖包含多個(gè)節(jié)點(diǎn)組,每一組與一特定玩家相關(guān)聯(lián)并且包含串聯(lián)鏈接的節(jié)點(diǎn)。在另一個(gè)示例中,該因子圖包含多個(gè)第二節(jié)點(diǎn)組,每一第二組與一玩家隊(duì)伍相關(guān)聯(lián)。在一示例中,該方法用于確定游戲的三個(gè)或更多玩家的相對(duì)技能的指示。在一些示例中,有關(guān)游戲結(jié)果的信息對(duì)于每一玩家還包括該玩家參加游戲的時(shí)間長(zhǎng)度,并且其中,該統(tǒng)計(jì)量基于該信息來更新。在一些示例中,有關(guān)游戲結(jié)果的信息包括玩家的部分排名,所述部分排名包括至少一個(gè)玩家有排名,但不包括多個(gè)其它玩家的排名信息,并且其中,形成所述因子圖使得在與該有排名的玩家相關(guān)聯(lián)的節(jié)點(diǎn)和與每一沒有排名的玩家相關(guān)聯(lián)的節(jié)點(diǎn)之間創(chuàng)建鏈接。這些示例還包括一種計(jì)算機(jī)程序,它包含當(dāng)在計(jì)算機(jī)上運(yùn)行所述程序時(shí)適用于執(zhí)行上述方法中的任一種的所有步驟的計(jì)算機(jī)程序代碼裝置。該計(jì)算機(jī)程序可包含在計(jì)算機(jī)可讀介質(zhì)中。該方法可由存儲(chǔ)介質(zhì)上的機(jī)器可讀形式的軟件來執(zhí)行。該軟件適于在并行處理器或串行處理器上執(zhí)行,使得這些方法步驟可以按任何合適的順序執(zhí)行或者同時(shí)執(zhí)行。這就承認(rèn)軟件可以是有價(jià)值的、能獨(dú)立交易的商品。這旨在包含在"啞"或標(biāo)準(zhǔn)硬件上運(yùn)行或者控制"啞"或標(biāo)準(zhǔn)硬件以執(zhí)行所需功能的軟件(并且因此,軟件本質(zhì)上定義寄存器的功能,并且因此可以被稱為寄存器,甚至是在將它組合到其標(biāo)準(zhǔn)硬件之前)。出于類似的原因,還旨在包含"描述"或定義硬件配置的軟件,諸如HDL(硬件描述語(yǔ)言)軟件,如用于設(shè)計(jì)硅芯片或者用于配置通用可編程芯片以執(zhí)行所需功能。隨著通過參考下面結(jié)合附圖考慮的詳細(xì)描述而對(duì)許多附帶特征有較好的理解,將更容易地了解這些特征。參考附圖閱讀下面的詳細(xì)描述將更好地理解本說明書,附圖中圖1是用于表示技能置信度的示例高斯分布;圖2是在游戲以輸贏結(jié)束時(shí)對(duì)于平局裕量e的各種值的函數(shù)V的曲線;圖3是在游戲以輸贏結(jié)束時(shí)對(duì)于平局裕量e的各種值的函數(shù)W的曲線;圖4是在游戲以平局結(jié)束時(shí)對(duì)于平局裕量e的各種值的函數(shù)V的曲線;圖5是在游戲以平局結(jié)束時(shí)對(duì)于平局裕量e的各種值的函數(shù)W的曲線;圖6是確定游戲玩家的相對(duì)技能的指示的方法的流程圖;圖7是用于具有四支隊(duì)伍的游戲的因子圖的示例;圖8示出在應(yīng)用與因子圖中的一順序節(jié)點(diǎn)相關(guān)聯(lián)的過程之前和之后的高斯置信度分布;圖9示出圖7的因子圖,其中帶有指示調(diào)度的箭頭;圖10至18是示例因子圖19示出為部分排名修改的圖7的因子圖20是用于確定游戲玩家的相對(duì)技能的指示的設(shè)備的示意圖。相同的參考標(biāo)號(hào)用于指定附圖中相同的部分。詳細(xì)描述在下面結(jié)合附圖提供的詳細(xì)描述旨在作為對(duì)本示例的描述,并且不旨在表示可構(gòu)造或使用的本示例的唯一形式。該描述闡述了該示例的功能以及用于構(gòu)造和操作該示例的步驟序列。然而,可通過不同的示例完成相同或等價(jià)的功能和序列。早先的貝葉斯評(píng)分系統(tǒng)是在XboxLive(商標(biāo))中實(shí)現(xiàn)的,并且當(dāng)前在商品名TrueSkill(商標(biāo))下進(jìn)行銷售。本發(fā)明擴(kuò)展了早先的工作并構(gòu)建于該工作至上,并且使用一種新的計(jì)算方法來使處理時(shí)間能夠被顯著減少?,F(xiàn)在給出當(dāng)前可用的TrueSkill系統(tǒng)的概述以幫助理解本發(fā)明。大多數(shù)游戲在其根處具有用于判斷是否已經(jīng)滿足游戲目標(biāo)的度量。在比賽涉及兩個(gè)或更多玩家("多玩家比賽")的比賽的情形中,這通常包括對(duì)比賽參加者的技能進(jìn)行排名的方法。這鼓勵(lì)玩家之間的競(jìng)爭(zhēng),既要"贏"各個(gè)比賽,也要讓它們的整體技能等級(jí)在較大范圍的社區(qū)內(nèi)被承認(rèn)和認(rèn)可。玩家可能希望相對(duì)于他們認(rèn)識(shí)的人或者相對(duì)于他們還未一起玩過的潛在對(duì)手評(píng)估他們的技能,使得他們可以安排有趣的比賽。如果參加比賽的玩家贏的機(jī)會(huì)非常不平衡,則將該比賽稱為"無(wú)趣"一極少有人會(huì)喜歡玩他們不會(huì)贏或不會(huì)輸?shù)谋荣?。相反,具有相?duì)平均的任何參加者贏的機(jī)會(huì)的比賽被認(rèn)為是"有趣"的比賽。TrueSkill排名系統(tǒng)是使用稱為貝葉斯推理的技術(shù)來對(duì)玩家排名的基于技能的排名系統(tǒng)。該系統(tǒng)不是采取每一玩家的單一固定的技能,而是使用正態(tài)分布曲線置信度分布(也稱為高斯分布)來表征其置信度,該分布是用其平均值n和標(biāo)準(zhǔn)差CT來唯一描述的。示例性置信度分布在圖1中示出。注意,在技能置信度分布曲線下某個(gè)范圍內(nèi)的區(qū)域?qū)?yīng)于玩家的技能將落在該范圍內(nèi)的置信度。例如,圖1的陰影區(qū)域表示玩家的技能在等級(jí)15與20之內(nèi)的置信度。隨著系統(tǒng)或者玩家技能的更多信息,o具有變得更小的趨勢(shì),從而更緊密地將該玩家的技能括在一起。另一種考慮n和c值的方法是將它們視為與對(duì)玩家技能的評(píng)估相關(guān)聯(lián)的"平均玩家技能置信度"和"不確定性"。由于TrueSkill排名系統(tǒng)使用高斯置信度分布來表征玩家的技能,因此所有平均值技能(即fi)始終(更精確地,以99.99%的概率)落在初始ct的±4倍之內(nèi)。TrueSkill排名系統(tǒng)可以使用初始不確定性來進(jìn)行所有計(jì)算,因?yàn)殡S后p和o可以通過簡(jiǎn)單地將它們倍乘來縮放至任何其它范圍。例如,假定所有計(jì)算是以H為3和c為1的初始值來做的。如果希望將玩家的技能表達(dá)為50個(gè)"等級(jí)"之一,則將ji和c乘以50/6=8.3,因?yàn)閹缀跛械膎值恰巧都是在初始0的±3倍以內(nèi)。直覺是兩個(gè)玩家的H值之間的差值越大一假定其cr值相似一則具有較高ji值的玩家在游戲中表現(xiàn)較好的機(jī)會(huì)越大。該原理在TrueSkill排名系統(tǒng)中適用。但是,這不意味著具有較大fi值的玩家始終預(yù)期為贏,而是他們贏的機(jī)會(huì)比具有較小f值的玩家更大。TrueSkill排名系統(tǒng)假設(shè)單次比賽中的表現(xiàn)在玩家技能的附近變化,并且假設(shè)游戲結(jié)果(參加游戲的所有玩家的相對(duì)排名)由他們的表現(xiàn)來確定。因而,TrueSkill排名系統(tǒng)中玩家的技能可以視為該玩家在大量游戲中的平均表現(xiàn)。在技能附近的表現(xiàn)變化在原則上是TrueSkill排名系統(tǒng)中的可配置參數(shù)。TrueSkill排名系統(tǒng)將其對(duì)n和o的更新僅基于游戲結(jié)果(所有隊(duì)伍的相對(duì)排名);僅假設(shè)該結(jié)果是由于在玩家技能附近變化的某種未觀測(cè)到的表現(xiàn)所致。如果一個(gè)人正在玩基于分?jǐn)?shù)的游戲并且贏家以十倍的分?jǐn)?shù)擊敗所有其它玩家,則玩家的勝利所獲得的評(píng)分與只贏一分時(shí)沒有區(qū)別。每一比賽為系統(tǒng)提供有關(guān)玩家的技能置信度的更多信息,這通常驅(qū)使cr下降。在開始針對(duì)新游戲結(jié)果確定所有參加玩家的新技能置信度之前,TrueSkill排名系統(tǒng)假設(shè)每一玩家的技能可能已經(jīng)在每一玩家當(dāng)前和上一次玩的游戲之間的發(fā)生了輕微的改變。作出這種假設(shè)的數(shù)學(xué)推論是,技能不確定性《將輕微增加,其量原則上是TrueSkill排名系統(tǒng)的可配置參數(shù)。該參數(shù)既允許TrueSkiU系統(tǒng)跟蹤游戲者隨著時(shí)間過去技能的進(jìn)步,又保證技能不確定性從不減少至零("保持勢(shì)頭")。為了針對(duì)新游戲結(jié)果確定所有參加玩家的新技能置信度,TrueSkill排名系統(tǒng)需要確定觀測(cè)到的游戲結(jié)果對(duì)于參加玩家的給定技能的概率,并且按照對(duì)應(yīng)的技能置信度的概率對(duì)其加權(quán)。這是通過對(duì)所有可能的表現(xiàn)(用其概率加權(quán)的)求平均并且從這些表現(xiàn)中導(dǎo)出游戲結(jié)果來完成的具有最佳表現(xiàn)的玩家是贏者;具有次佳表現(xiàn)的玩家是第二名,以此類推。如果兩個(gè)玩家的表現(xiàn)相互非常接近,則TrueSkill排名系統(tǒng)認(rèn)為這兩個(gè)玩家之間的結(jié)果是平局。按照TrueSkill排名系統(tǒng),定義給定聯(lián)賽內(nèi)的平局的裕量(margin)越大,則越可能發(fā)生平局。該裕量的大小是TrueSkill排名系統(tǒng)的可配置參數(shù),并且基于游戲模式來調(diào)整。例如,在ProjectGothamRacing3(商標(biāo))中的街道賽跑永遠(yuǎn)不能以平局結(jié)束(因而該參數(shù)設(shè)置為零),而PerfectDarkZero(商標(biāo))中的抓旗(Capture-the-Flag)游戲很容易以平局結(jié)束。依靠上述加權(quán)技術(shù)(基于貝葉斯法則),對(duì)于參加游戲的每一玩家,系統(tǒng)獲得一個(gè)新的技能置信度。這些技能置信度不再是高斯型的。因此,TrueSkiU排名系統(tǒng)確定最佳高斯逼近。因此,給定玩家的ji值對(duì)于它們戰(zhàn)勝的每一對(duì)手增加,而對(duì)于它們輸給的每一對(duì)手減少。用于TrueSkill排名系統(tǒng)更新的最簡(jiǎn)單情形是兩個(gè)人的比賽。假設(shè)有兩個(gè)玩家A(lice)和B(ob),其分別具有p和o值(HA,cTA)和(HB,。B)。一旦游戲結(jié)束,該更新算法確定贏者(Alice或Bob)和輸者(Bob或Alice)并且應(yīng)用下面的更新等式<formula>formulaseeoriginaldocumentpage10</formula>H輸者—fi輸者-cy輸者/c*v((fi贏者-p輸者)/c,s/c)02贏者—<72贏者*[1-<12者/<:2*M<(Jl贏者-fl輸者)/c,s/c)]02輸者—<72輸者*[1-02輸者/^2*贏者-H輸者)/c,s/c)]C=2P2+<72贏者+CT輸者在這些等式中,唯一不知道的是p2,它是在每一玩家技能附近的表現(xiàn)變化。此外,s是上述平局裕量,它取決于游戲模式。函數(shù)H.,.)和w(.,.)由下面的等式給出如果游戲以輸贏結(jié)束,v(,,")=~^-^《,a)=v0,a).(vO,a)-0_a))或者,如果游戲以平局結(jié)束①(a-0-①(-a-0=v2(/,")十"^-^--^-^。其中符號(hào)N和0分別表示高斯分布函數(shù)的密度和高斯型的累積分布函數(shù)。符號(hào)f和a僅僅是這些函數(shù)的自變量。任何適合的數(shù)值或分析方法可用于對(duì)這些函數(shù)求值,諸如在Press等人的NumericalRecipesinC:theArtofScientificComputing(C中的數(shù)值方法科學(xué)計(jì)算藝術(shù))(第二版),劍橋,劍橋大學(xué)出版社,ISBN-0-521-43108-5中描述的。對(duì)于s/c的不同值,使用數(shù)值積分獲得的這些函數(shù)的曲線在圖2至5中給出。有關(guān)這些更新等式的幾點(diǎn)觀察.-與ELO系統(tǒng)相似,在平均值技能更新等式中,贏者得到若干倍的v(Q^者卞輸者)/c,s/c)加到平均值技能上,而輸者得到若干倍的v((ji貼-ji絲)/c,s/c)從平均值技能中減去。加權(quán)因子粗略地與贏者/輸者的不確定性與不確定性總和之比成比例(2f是由于在技能附近的表現(xiàn)變化所致的不確定性,而0、一02輸*是有關(guān)他們的真實(shí)技能的不確定性)。注意,TrueSkill排名系統(tǒng)的用于平均值技能的更新等式因而不保證和為零。兩個(gè)玩家的不確定性(無(wú)論贏/輸/平局)將要減少因子1-02M/C2**)/c,e/C)。再一次,具有較大不確定性的玩家得到較大的減少。如果游戲結(jié)果不是意外,則平均值技能v(OiM-fiM)/c,s/c)的變化,以及不確定性中的減少因子1-<t、*/c2*VK01贏者卞賴)/c,s/c)接近于零。。贏/輸如果贏者具有相對(duì)于總不確定性大得多的平均值技能(因而(HM-H輸者)>s)則贏不能使贏者換取額外的平均值技能分?jǐn)?shù)或者移除任何不確定性。反之亦然,如果游戲結(jié)果出現(xiàn)意外若贏者具有較小的平均值技能((n絲-ji輸者)<e),則與ft輸者-M者成比例的平均值分?jǐn)?shù)加至贏者/從輸者減去。。平局如果兩個(gè)玩家在之前具有相似的平均值技能(因而^^1歸|<£),則兩個(gè)玩家已經(jīng)足夠相互接近并且不需要進(jìn)行平均值技能分?jǐn)?shù)更新;因此不減少不確定性。然而,如果TrueSkill排名系統(tǒng)在游戲之前認(rèn)為一個(gè)玩家強(qiáng)得多(假定ji歸-n輸者>s),則其平均值技能將減少并且另一玩家的平均值技能將增加,從而實(shí)際上使他們的兩個(gè)平均值技能相互接近。在團(tuán)隊(duì)比賽的情形中,隊(duì)伍的技能假設(shè)為玩家技能的函數(shù)。在一較佳實(shí)施例中,該函數(shù)是和。該算法確定兩個(gè)隊(duì)伍的技能和并且使用上面兩個(gè)等式,其中OmV^)和Of乂^)分別是贏與輸隊(duì)伍的平均值技能和技能方差。用于多于兩個(gè)隊(duì)伍的更新等式需要數(shù)值積分。在該情形中,TrueSkill排名系統(tǒng)在所有相鄰排名的隊(duì)伍之間重復(fù)兩個(gè)隊(duì)伍更新公式,即,第1隊(duì)對(duì)第2隊(duì),第2隊(duì)對(duì)第3隊(duì),以此類推。對(duì)于多于兩個(gè)隊(duì)伍,由于V和W函數(shù)所需的數(shù)值積分,計(jì)算復(fù)雜度以三次方增加。在本發(fā)明中,通過使用因子圖以消息傳遞技術(shù)減少多隊(duì)伍情形所需的計(jì)算來解決它。參考圖6,描述此處的用于確定游戲玩家的相對(duì)技能的指示的方法的一個(gè)示例。該方法涉及,對(duì)于每一玩家,訪問描述一概率分布的統(tǒng)計(jì)量(見圖6的框60),該概率分布本身描述此處的有關(guān)該玩家技能的置信度。在一較佳實(shí)施例中,使用一維高斯分布來表示技能置信度。例如,圖l示出如上說明的示例高斯分布。通過使用高斯分布,實(shí)現(xiàn)了這樣的優(yōu)點(diǎn)這些分布可唯一地由如上所述的兩個(gè)統(tǒng)計(jì)量,即平均值和標(biāo)準(zhǔn)差來描述。另外,兩個(gè)高斯隨機(jī)變量之和本身是一個(gè)高斯隨機(jī)變量,它能夠簡(jiǎn)化此處的計(jì)算。然而,使用高斯分布來表示技能置信度并不是必需的。如果玩家之前已經(jīng)玩過并且已經(jīng)存儲(chǔ)了該玩家的技能信息,則訪問該信息。在新玩家的情形中,使用具有相關(guān)聯(lián)的默認(rèn)統(tǒng)計(jì)量,例如n為3和n為l的初始值的默認(rèn)置信度分布??墒褂萌魏魏线m的默認(rèn)置信度分布。獲得有關(guān)游戲結(jié)果的信息(見圖6的框65)并且使用它連同統(tǒng)計(jì)量來形成因子圖(見框61)。因子圖包含與特定玩家相關(guān)聯(lián)的節(jié)點(diǎn),這些節(jié)點(diǎn)基于游戲的任何隊(duì)伍和結(jié)果來排序。因子圖的一些節(jié)點(diǎn)用所訪問的統(tǒng)計(jì)信息來實(shí)例化(見框62)。隨后在因子圖上執(zhí)行消息傳遞以使用貝葉斯推理來更新統(tǒng)計(jì)量(見框63)。所得到的經(jīng)更新的統(tǒng)計(jì)量描述了此處的玩家的相對(duì)技能的置信度(見框64)并且可以針對(duì)其它游戲重復(fù)該過程。有關(guān)形成因子圖的過程的更多細(xì)節(jié)現(xiàn)在參考圖7給出。因子圖包括由鏈接71連接的節(jié)點(diǎn)70。這些節(jié)點(diǎn)或者是變量節(jié)點(diǎn)(圓)或者是因子節(jié)點(diǎn)(矩形)。變量節(jié)點(diǎn)表示存儲(chǔ)位置,而因子節(jié)點(diǎn)表示計(jì)算單元。因子節(jié)點(diǎn)按照下面描述的計(jì)算規(guī)則將信息讀寫至其相鄰的變量節(jié)點(diǎn)。每一玩家由用于其技能的變量節(jié)點(diǎn)來表示,該變量節(jié)點(diǎn)連接到一組與該玩家在特定游戲中的技能及表現(xiàn)有關(guān)的節(jié)點(diǎn)。在圖7中,對(duì)于每一玩家在單列中繪制這些節(jié)點(diǎn),其中在同一隊(duì)伍中的玩家具有在毗鄰列中的節(jié)點(diǎn)。在圖7所示的示例中表示了四個(gè)隊(duì)伍,贏的隊(duì)伍72具有單個(gè)玩家并且由頁(yè)面左邊的列表示。第二名隊(duì)伍73包括三個(gè)玩家,第三名隊(duì)伍74包括兩個(gè)玩家而最后一名隊(duì)伍75包括四個(gè)玩家。如圖7所示,因子圖較佳地是非循環(huán)的。較佳地,它包含兩種類型的節(jié)點(diǎn),即變量節(jié)點(diǎn)和因子節(jié)點(diǎn),并且是二分的。在圖頂端的因子節(jié)點(diǎn)(行76)是訪問數(shù)據(jù)庫(kù)或其它存儲(chǔ)以獲得每一玩家的置信度分布(或者在新玩家的情況下則使用默認(rèn)的置信度分布)的功能。這些計(jì)算單元將描述玩家技能置信度分布的參數(shù)饋送至相應(yīng)的變量節(jié)點(diǎn)中。例如,在高斯分布的情形中,在每一變量節(jié)點(diǎn)中存儲(chǔ)兩個(gè)參數(shù)(兩個(gè)浮點(diǎn)數(shù))。下一行變量節(jié)點(diǎn),即串聯(lián)連接至頂端葉節(jié)點(diǎn)的圓節(jié)點(diǎn)77表示玩家技能。這些節(jié)點(diǎn)各自存儲(chǔ)描述相關(guān)聯(lián)玩家的置信度分布的統(tǒng)計(jì)量。下一行因子節(jié)點(diǎn)是計(jì)算單元78,它們?cè)谠撌纠谢谕婕壹寄芗釉肼晛碛?jì)算玩家表現(xiàn)。S卩,單元77的技能置信度分布是通過增加其方差參數(shù)來修改的,并且結(jié)果存儲(chǔ)在表示玩家表現(xiàn)的變量節(jié)點(diǎn)行79中。這是確定性計(jì)算,盡管可認(rèn)為是將噪聲加到基本的隨機(jī)變量上。為了獲得隊(duì)伍表現(xiàn)而非各個(gè)玩家表現(xiàn)的表示,如圖7所示地組合諸列。例如,在第二名隊(duì)伍的情形中,該隊(duì)伍有三個(gè)玩家。該隊(duì)伍的表現(xiàn)取為三個(gè)玩家的表現(xiàn)之和,并且由行80中的矩形節(jié)點(diǎn)來表示。該計(jì)算的結(jié)果存儲(chǔ)在行81中的圓節(jié)點(diǎn)中。因而在行81中,每個(gè)隊(duì)伍有一個(gè)節(jié)點(diǎn)而非每個(gè)玩家有一個(gè)節(jié)點(diǎn)。在使用高斯分布的情形中,求和過程的結(jié)果也是高斯分布。在如圖7所示的較佳實(shí)施例中,將噪聲加到每一個(gè)別玩家的表現(xiàn)上并且隨后組合玩家表現(xiàn)以形成隊(duì)伍表現(xiàn)。然而,這不是必需的。還有可能組合玩家技能以首先得到隊(duì)伍技能,然后將噪聲加到隊(duì)伍技能以獲得隊(duì)伍表現(xiàn)??蓪⒃肼曁砑拥絺€(gè)別玩家表現(xiàn)和/或組合的隊(duì)伍表現(xiàn)上。團(tuán)隊(duì)表現(xiàn)差值由行82中的節(jié)點(diǎn)來表示,并且每一個(gè)被計(jì)算為如所示的隊(duì)伍表現(xiàn)層81中的某些節(jié)點(diǎn)之間的差值。當(dāng)游戲結(jié)果提供隊(duì)伍的總排序時(shí),按該排序計(jì)算相鄰隊(duì)伍之間的差值。在隊(duì)伍之間平局的情形中,則以它們的任意順序放置平局的隊(duì)伍,并且按該順序計(jì)算相鄰隊(duì)伍之間的差值。例如,在圖7中,如果此處的游戲結(jié)果是使得中間的兩個(gè)隊(duì)伍73、74平局,則表示這兩個(gè)隊(duì)伍的節(jié)點(diǎn)可互換以產(chǎn)生等效的因子圖。行83中的圓節(jié)點(diǎn)表示隊(duì)伍表現(xiàn)差值計(jì)算的結(jié)果。在使用高斯分布的情形中,差值過程的結(jié)果也是高斯分布。在圖中的底部節(jié)點(diǎn)是表示一計(jì)算過程的因子節(jié)點(diǎn),該計(jì)算過程促使隊(duì)伍表現(xiàn)差值的絕對(duì)值大于平局裕量e(如果無(wú)平局)或者小于平局裕量(如果是平局)。這參考圖8更詳細(xì)地說明。圖8示出表示例如圖7中行83的節(jié)點(diǎn)處的隊(duì)伍表現(xiàn)差值的示例置信度分布的高斯分布(由實(shí)曲線91所示)。該高斯分布通過促使團(tuán)隊(duì)表現(xiàn)差值大于平局裕量的指示函數(shù)變換為由圖8中的虛線90指示的高斯分布。可以看到,高斯分布91具有一個(gè)延伸到負(fù)區(qū)域92的尾部并且該變換產(chǎn)生的高斯分布90在負(fù)區(qū)域中只有非常小的尾部。變換后的高斯分布比原來的高斯分布91狹窄,即具有較小的偏差并且它的平均值也較高。消息傳遞過程包括使用來自相鄰變量節(jié)點(diǎn)的分布參數(shù)執(zhí)行與計(jì)算節(jié)點(diǎn)(圖7中的方節(jié)點(diǎn))相關(guān)聯(lián)的計(jì)算并且將結(jié)果傳遞至相鄰變量節(jié)點(diǎn)(圖7中的圓節(jié)點(diǎn))之一。現(xiàn)在更詳細(xì)地說明傳遞結(jié)果的方向(也稱為處理調(diào)度)。處理調(diào)度較佳地分為三個(gè)階段預(yù)處理,鏈處理和后處理。一個(gè)示例預(yù)處理調(diào)度在圖9中示出。在頂端因子節(jié)點(diǎn)(行76)處開始,從數(shù)據(jù)庫(kù)獲得技能分布,或者將其設(shè)置為默認(rèn)值,并且計(jì)算沿每一列向下進(jìn)行直至到達(dá)隊(duì)伍表現(xiàn)行(行81)。后處理調(diào)度是預(yù)處理調(diào)度的反向,但在行77中的玩家技能處停止。在預(yù)處理的一個(gè)步驟之后,重復(fù)鏈處理調(diào)度直至置信度分布停止改變?yōu)橹?。在圖8中使用虛線箭頭示出示例鏈調(diào)度。它在隊(duì)伍之間來回傳遞置信度分布,直至所有表現(xiàn)差值滿足由底部因子節(jié)點(diǎn)施加的條件。后處理階段向上傳遞表現(xiàn)差值以獲得新的玩家技能。在處理調(diào)度中的每一箭頭表示非平凡計(jì)算并且下面給出它們的細(xì)節(jié)。在圖7給出的示例中,所有因子節(jié)點(diǎn)(方計(jì)算節(jié)點(diǎn))是精確因子節(jié)點(diǎn),因?yàn)槌俗罱K的指示函數(shù)節(jié)點(diǎn)(稱為順序因子節(jié)點(diǎn))之外,可以精確地計(jì)算它們。順序因子節(jié)點(diǎn)實(shí)現(xiàn)順序約束,并且對(duì)于這些節(jié)點(diǎn),相關(guān)聯(lián)的更新等式不是精確的,因?yàn)檎嬲囊蜃又磷兞康南⒉辉偈歉咚剐偷摹,F(xiàn)在提供用于沿消息傳遞過程中的箭頭執(zhí)行計(jì)算的一般的更新等式。調(diào)整這些一般的更新等式以用于如所示的高斯分布。鵬艦息遂療鮮做更箭考慮圖IO的因子圖。假設(shè)想要更新消息m,^和裕量Px。那么,一般的更新公式如下<formula>formulaseeoriginaldocumentpage15</formula>其中MM[]返回高斯族的分布,同時(shí)右邊的自變量和所有量被標(biāo)準(zhǔn)化為分布。在下面使用高斯分布的指數(shù)表示,艮P,G(x;7,;r)ccexp(;zx2-2zx)該密度具有下面與標(biāo)準(zhǔn)密度的關(guān)系<formula>formulaseeoriginaldocumentpage16</formula>,或<formula>formulaseeoriginaldocumentpage16</formula>在精確因子節(jié)點(diǎn)的情形中,在下表中給出更新等式,<table>tableseeoriginaldocumentpage16</column></row><table><formula>formulaseeoriginaldocumentpage17</formula>對(duì)應(yīng)于圖14對(duì)應(yīng)于圖15<formula>formulaseeoriginaldocumentpage17</formula>對(duì)應(yīng)于圖16在順序因子節(jié)點(diǎn)的情形中,在下表中給出更新等式。因子更新等式對(duì)應(yīng)于圖17<formula>formulaseeoriginaldocumentpage17</formula>在上面這些表格中闡述的更新等式中a表示在一個(gè)較佳示例中設(shè)置為1的加權(quán)。下面在子標(biāo)題"部分玩"中討論權(quán)重不是l的情形的示例。并且,在更新等式中,v和w對(duì)應(yīng)于由下式給出的函數(shù)H.,.)和w(.,.)如果游戲以輸贏結(jié)束,<formula>formulaseeoriginaldocumentpage18</formula>或者,如果游戲以平局結(jié)束v("")=~^-^-^-^它們是從不使用消息傳遞的TrueSkill的較早實(shí)現(xiàn)中的高斯型的數(shù)值逼近和高斯累積分布來確定的。在圖9所示的示例中,在鏈調(diào)度期間的消息傳遞涉及使用順序因子節(jié)點(diǎn)更新等式表的第一行的更新等式從行84中的節(jié)點(diǎn)至層83中的節(jié)點(diǎn)的順序因子節(jié)點(diǎn)更新。在平局的情形中,隊(duì)伍表現(xiàn)差值的模被約束為小于或等于潛在平局值e,并且使用順序因子節(jié)點(diǎn)更新等式表的第二行的更新等式。在精確因子節(jié)點(diǎn)的情形中,對(duì)于從計(jì)算節(jié)點(diǎn)(方節(jié)點(diǎn))至單個(gè)變量節(jié)點(diǎn)(圓節(jié)點(diǎn))的消息傳遞,使用精確因子節(jié)點(diǎn)更新等式表的第一行的更新等式。在從計(jì)算節(jié)點(diǎn)至兩個(gè)變量節(jié)點(diǎn)的消息傳遞的情形中,適當(dāng)?shù)厥褂迷摫淼牡诙虻谌械母碌仁?。在從?jì)算節(jié)點(diǎn)至三個(gè)變量節(jié)點(diǎn)的消息傳遞的情形中,適當(dāng)?shù)厥褂迷摫淼牡谒暮偷谖逍械母碌仁?。肅分玩在部分玩的情形中,一個(gè)或多個(gè)玩家參加游戲的時(shí)間少于該游戲的持續(xù)時(shí)間。為了在更新此處的有關(guān)玩家的技能等級(jí)的置信度時(shí)考慮該因素,使用了加權(quán),該加權(quán)是在上面指定的更新等式中的值a。使用有關(guān)每一玩家參加游戲的時(shí)間長(zhǎng)度,有可能為玩家設(shè)置合適的權(quán)重值。例如,在兩個(gè)隊(duì)伍的游戲中,其中每一隊(duì)伍各有兩個(gè)玩家,在第一隊(duì)伍中的第一玩家可能只參加了75%的總游戲時(shí)間。在該情形中,相對(duì)于其余三個(gè)玩家的1.0,相應(yīng)的a值是0.75。在游戲的結(jié)果僅產(chǎn)生一或小于所有玩家(或隊(duì)伍)的排名的情形中,則能夠通過修改因子圖的結(jié)構(gòu)來考慮這一情況。例如,在賽車游戲中,僅知道第一、第二和第三參加者的排名,而不對(duì)任何其它玩家排名?;蛘撸芍磊A者的身分但不提供其它玩家的排名。在該情形中,對(duì)于一個(gè)特定的示例,如圖19所示地修改因子圖的結(jié)構(gòu)。圖19示出知道贏者和第二名隊(duì)伍但不知道其余兩個(gè)隊(duì)伍190、191的排名的情況。該因子圖與圖7的相同,除了計(jì)算第二名隊(duì)伍與隊(duì)伍191之間而非隊(duì)伍190與191之間的隊(duì)伍表現(xiàn)差值之外。因而因子圖包含與已知排名的隊(duì)伍相關(guān)聯(lián)的節(jié)點(diǎn)和每一未知排名的隊(duì)伍之間的鏈接。在圖19的示例中,它們對(duì)應(yīng)于行81中鏈接至行82中的節(jié)點(diǎn)Al和A2的每一個(gè)的節(jié)點(diǎn)tp^任何合適的設(shè)備可用于實(shí)現(xiàn)本文描述的方法。例如,圖20是基于涉及游戲的至少第一玩家和第二玩家的一個(gè)或多個(gè)此類游戲的結(jié)果來確定這些玩家的相對(duì)技能的指示的裝置示意圖,所述裝置包括。被安排成對(duì)每一玩家訪問描述與有關(guān)該玩家的置信度相關(guān)聯(lián)的概率分布的統(tǒng)計(jì)量200的輸入206;。被安排成接收有關(guān)游戲之一的結(jié)果201的信息的輸入207;。用于形成包含節(jié)點(diǎn)的因子圖的裝置203,所述圖是使用所接收的有關(guān)結(jié)果的信息的來形成的,并且用該統(tǒng)計(jì)量實(shí)例化至少一些節(jié)點(diǎn);以及。被安排成通過在因子圖上使用消息傳遞技術(shù)來更新與每一玩家相關(guān)聯(lián)的統(tǒng)計(jì)量的一個(gè)或多個(gè)處理器204。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,用于存儲(chǔ)程序指令的存儲(chǔ)設(shè)備可分布在網(wǎng)絡(luò)上。例如,遠(yuǎn)程計(jì)算機(jī)可存儲(chǔ)被描述為軟件的進(jìn)程的示例。本地或終端計(jì)算機(jī)可訪問遠(yuǎn)程計(jì)算機(jī)并且下載部分或全部軟件以運(yùn)行程序?;蛘?,本地計(jì)算機(jī)可按需下載軟件片斷,或者在本地終端處執(zhí)行部分軟件指令而在遠(yuǎn)程計(jì)算機(jī)(或計(jì)算機(jī)網(wǎng)絡(luò))上執(zhí)行部分軟件指令。本領(lǐng)域的技術(shù)人員還將認(rèn)識(shí)到,通過使用本領(lǐng)域技術(shù)人員己知的常規(guī)技術(shù),可由諸如DSP、可編程邏輯陣列等專用電路來執(zhí)行全部或部分軟件指令。對(duì)適用于如本文描述的計(jì)算相對(duì)技能等級(jí)的消息傳遞技術(shù)的使用對(duì)于分布式處理特別適用。這是因?yàn)榕c因子圖中的任何特定因子節(jié)點(diǎn)相關(guān)聯(lián)的處理可以在給定處理器上執(zhí)行并且將結(jié)果傳遞至執(zhí)行與圖中其它節(jié)點(diǎn)相關(guān)聯(lián)的計(jì)算的另一獨(dú)立處理器。這些獨(dú)立的處理器可通過任何合適類型的通信網(wǎng)絡(luò)連接或者可相互集成。本文給出的任何范圍或設(shè)備值可在不失去所求效果的情形下被擴(kuò)展或改變,這對(duì)于本領(lǐng)域技術(shù)人員是顯而易見的。本文描述的方法的步驟可按任何合適順序執(zhí)行或者在適當(dāng)時(shí)同時(shí)執(zhí)行。將會(huì)理解,上述較佳實(shí)施例的描述僅作為示例給出并且本領(lǐng)域的技術(shù)人員可作出各種修改。權(quán)利要求1.一種基于涉及游戲的至少第一玩家和第二玩家的一個(gè)或多個(gè)此類游戲的結(jié)果來確定這些玩家的相對(duì)技能的指示的方法,所述方法包括下列步驟(i)對(duì)于每一玩家,訪問描述與有關(guān)該玩家的技能的置信度相關(guān)聯(lián)的概率分布的統(tǒng)計(jì)量;(ii)接收有關(guān)所述游戲之一的結(jié)果的信息;(iii)形成包含節(jié)點(diǎn)的因子圖,所述圖是使用所述接收到的有關(guān)結(jié)果的信息來形成的,并且用所述統(tǒng)計(jì)量來實(shí)例化至少一些所述節(jié)點(diǎn);以及(iv)通過在所述因子圖上使用消息傳遞技術(shù)來更新與每一玩家相關(guān)聯(lián)的所述統(tǒng)計(jì)量。2.如權(quán)利要求1所述的方法,其特征在于,所述統(tǒng)計(jì)量至少包括描述每一概率分布的平均值和方差。3.如權(quán)利要求1或權(quán)利要求2所述的方法,其特征在于,所述概率分布是高斯型的。4.如前述權(quán)利要求中的任一項(xiàng)所述的方法,其特征在于,所述因子圖是非循環(huán)的。5.如前述權(quán)利要求中的任一項(xiàng)所述的方法,其特征在于,在所述因子圖上應(yīng)用的所述消息傳遞技術(shù)被安排成執(zhí)行貝葉斯推理過程。6.如前述權(quán)利要求中的任一項(xiàng)所述的方法,其特征在于,所述因子圖包含多個(gè)節(jié)點(diǎn)組,每一節(jié)點(diǎn)組與一特定玩家相關(guān)聯(lián)并且包含串聯(lián)鏈接的節(jié)點(diǎn)。7.如前述權(quán)利要求中的任一項(xiàng)所述的方法,其特征在于,所述因子圖包含多個(gè)第二節(jié)點(diǎn)組,每一第二節(jié)點(diǎn)組與一玩家隊(duì)伍相關(guān)聯(lián)。8.如權(quán)利要求6或權(quán)利要求7所述的方法,其特征在于,所述節(jié)點(diǎn)組通過邊鏈接,使得所述鏈接的順序反映所述游戲的結(jié)果。9.如權(quán)利要求8所述的方法,其特征在于,所述節(jié)點(diǎn)組還基于所述玩家所在的隊(duì)伍在所述因子圖中被排序。10.如前述權(quán)利要求中的任一項(xiàng)所述的方法,其特征在于,所述方法從涉及三個(gè)或更多玩家的游戲確定玩家的相對(duì)技能的指示。11.如前述權(quán)利要求中的任一項(xiàng)所述的方法,其特征在于,對(duì)于每一玩家,所述有關(guān)游戲結(jié)果的信息還包括該玩家參加所述游戲的時(shí)間長(zhǎng)度的指示,并且其中,所述統(tǒng)計(jì)量基于該信息來更新。12.如前述權(quán)利要求中的任一項(xiàng)所述的方法,其特征在于,所述有關(guān)游戲結(jié)果的信息包括對(duì)玩家的部分排名,所述部分排名包括至少一個(gè)玩家相對(duì)于多個(gè)其它玩家的順序信息,但沒有所述多個(gè)其它玩家之間的順序信息,并且其中,形成所述因子圖以使得在與所述至少一個(gè)玩家相關(guān)聯(lián)的節(jié)點(diǎn)和與所述其它玩家中的每一個(gè)相關(guān)聯(lián)的節(jié)點(diǎn)之間創(chuàng)建鏈接。13.—種包括計(jì)算機(jī)程序代碼裝置的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序代碼裝置適用于當(dāng)所述程序在計(jì)算機(jī)上運(yùn)行時(shí)執(zhí)行如前述權(quán)利要求中的任一項(xiàng)所述的所有步驟。14.如權(quán)利要求13所述的計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被包含在計(jì)算機(jī)可讀介質(zhì)中。15.—種基于涉及游戲的至少第一玩家和第二玩家的一個(gè)或多個(gè)此類游戲的結(jié)果(201)來確定這些玩家的相對(duì)技能(205)的指示的裝置(202),所述裝置包括(i)被安排成對(duì)每一玩家訪問描述與有關(guān)該玩家的技能的置信度相關(guān)聯(lián)的概率分布的統(tǒng)計(jì)量(200)的輸入(206);(ii)被安排成接收有關(guān)所述游戲之一的結(jié)果(201)的信息的輸入(207);(iii)用于形成包含節(jié)點(diǎn)的因子圖的裝置(203),所述圖是使用所述接收到的有關(guān)結(jié)果的信息的來形成的,所述裝置還用于用所述統(tǒng)計(jì)量來實(shí)例化至少一些所述節(jié)點(diǎn);以及(iv)被安排成通過在所述因子圖上使用消息傳遞技術(shù)來更新與每一玩家相關(guān)聯(lián)的所述統(tǒng)計(jì)量的一個(gè)或多個(gè)處理器(204)。16.如權(quán)利要求15所述的裝置,其特征在于,所述因子圖是非循環(huán)的。17.如權(quán)利要求15和16中的任一項(xiàng)所述的裝置,其特征在于,在所述因子圖上應(yīng)用的所述消息傳遞技術(shù)被安排成執(zhí)行貝葉斯推理過程。18.如權(quán)利要求15至17中的任一項(xiàng)所述的裝置,其特征在于,所述因子圖包括多個(gè)節(jié)點(diǎn)組,每一節(jié)點(diǎn)組與一特定玩家相關(guān)聯(lián)并且包含串聯(lián)鏈接的節(jié)點(diǎn)。19.如權(quán)利要求15至18中的任一項(xiàng)所述的裝置,其特征在于,所述因子圖包含多個(gè)節(jié)點(diǎn)組,每一節(jié)點(diǎn)組與一玩家隊(duì)伍相關(guān)聯(lián)。20.如權(quán)利要求18或19所述的裝置,其特征在于,所述節(jié)點(diǎn)組用邊鏈接,使得所得到的順序反映所述游戲的結(jié)果。全文摘要希望提供一種確定諸如計(jì)算機(jī)游戲、國(guó)際象棋、網(wǎng)球和任何其它合適類型游戲等游戲的玩家的相對(duì)技能的方法。早先的貝葉斯評(píng)分系統(tǒng)是在XboxLive(商標(biāo))中實(shí)現(xiàn)的,并且當(dāng)前在商品名稱TrueSkill(商標(biāo))下進(jìn)行銷售。本文建立于早先的工作之上并且使用新的計(jì)算方法來使處理時(shí)間能夠顯著減少。消息傳遞技術(shù)適用于使得能夠快速獲得對(duì)被更新的技能置信度的計(jì)算,即使是在多個(gè)具有多玩家的隊(duì)伍的情形中。文檔編號(hào)G06Q10/00GK101379523SQ200780005036公開日2009年3月4日申請(qǐng)日期2007年1月16日優(yōu)先權(quán)日2006年2月10日發(fā)明者R·赫伯齊,T·K·葛雷帕爾,T·明卡申請(qǐng)人:微軟公司