US20090093287A1  Determining Relative Player Skills and Draw Margins  Google Patents
Determining Relative Player Skills and Draw Margins Download PDFInfo
 Publication number
 US20090093287A1 US20090093287A1 US11/869,165 US86916507A US2009093287A1 US 20090093287 A1 US20090093287 A1 US 20090093287A1 US 86916507 A US86916507 A US 86916507A US 2009093287 A1 US2009093287 A1 US 2009093287A1
 Authority
 US
 United States
 Prior art keywords
 player
 statistics
 skill
 draw
 game
 Prior art date
 Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
 Abandoned
Links
 238000000034 methods Methods 0.000 claims abstract description 72
 238000010586 diagrams Methods 0.000 description 12
 238000004364 calculation methods Methods 0.000 description 9
 230000000694 effects Effects 0.000 description 6
 238000007781 preprocessing Methods 0.000 description 6
 230000000875 corresponding Effects 0.000 description 2
 230000001186 cumulative Effects 0.000 description 2
 238000005315 distribution function Methods 0.000 description 2
 238000001914 filtration Methods 0.000 description 2
 238000009499 grossing Methods 0.000 description 2
 280000085524 Both, Inc. companies 0.000 description 1
 280000380949 Cambridge companies 0.000 description 1
 280000378736 Cambridge University Press companies 0.000 description 1
 241001674048 Phthiraptera Species 0.000 description 1
 125000002015 acyclic group Chemical group 0.000 description 1
 230000004075 alteration Effects 0.000 description 1
 238000010009 beating Methods 0.000 description 1
 239000000470 constituents Substances 0.000 description 1
 230000002596 correlated Effects 0.000 description 1
 230000003247 decreasing Effects 0.000 description 1
 235000019800 disodium phosphate Nutrition 0.000 description 1
 239000010410 layers Substances 0.000 description 1
 230000004048 modification Effects 0.000 description 1
 238000006011 modification reactions Methods 0.000 description 1
 230000003287 optical Effects 0.000 description 1
 230000001902 propagating Effects 0.000 description 1
 XUIMIQQOPSSXEZUHFFFAOYSAN silicon Chemical compound data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nMzAwcHgnIGhlaWdodD0nMzAwcHgnIHZpZXdCb3g9JzAgMCAzMDAgMzAwJz4KPCEtLSBFTkQgT0YgSEVBREVSIC0tPgo8cmVjdCBzdHlsZT0nb3BhY2l0eToxLjA7ZmlsbDojRkZGRkZGO3N0cm9rZTpub25lJyB3aWR0aD0nMzAwJyBoZWlnaHQ9JzMwMCcgeD0nMCcgeT0nMCc+IDwvcmVjdD4KPHRleHQgZG9taW5hbnQtYmFzZWxpbmU9ImNlbnRyYWwiIHRleHQtYW5jaG9yPSJzdGFydCIgeD0nMTMyLjY1NScgeT0nMTU2JyBzdHlsZT0nZm9udC1zaXplOjQwcHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7ZmlsbDojM0I0MTQzJyA+PHRzcGFuPlNpPC90c3Bhbj48L3RleHQ+CjxwYXRoIGQ9J00gMzIuNzI3MywxMTMuNjM2IEwgMzIuNjk3LDExMi45MzMgTCAzMi42MDYzLDExMi4yMzUgTCAzMi40NTYsMTExLjU0NyBMIDMyLjI0NzEsMTEwLjg3NSBMIDMxLjk4MTIsMTEwLjIyMyBMIDMxLjY2MDMsMTA5LjU5NiBMIDMxLjI4NjYsMTA5IEwgMzAuODYzMSwxMDguNDM3IEwgMzAuMzkyOCwxMDcuOTE0IEwgMjkuODc5MiwxMDcuNDMyIEwgMjkuMzI2MSwxMDYuOTk2IEwgMjguNzM3NiwxMDYuNjEgTCAyOC4xMTgxLDEwNi4yNzYgTCAyNy40NzIxLDEwNS45OTYgTCAyNi44MDQ0LDEwNS43NzMgTCAyNi4xMjAxLDEwNS42MDcgTCAyNS40MjQsMTA1LjUwMiBMIDI0LjcyMTUsMTA1LjQ1NiBMIDI0LjAxNzcsMTA1LjQ3MiBMIDIzLjMxNzcsMTA1LjU0NyBMIDIyLjYyNjksMTA1LjY4MyBMIDIxLjk1MDMsMTA1Ljg3NyBMIDIxLjI5MjgsMTA2LjEyOSBMIDIwLjY1OTUsMTA2LjQzNiBMIDIwLjA1NDksMTA2Ljc5NyBMIDE5LjQ4MzYsMTA3LjIwOCBMIDE4Ljk0OTgsMTA3LjY2NyBMIDE4LjQ1NzMsMTA4LjE3IEwgMTguMDEsMTA4LjcxNCBMIDE3LjYxMSwxMDkuMjk0IEwgMTcuMjYzNCwxMDkuOTA2IEwgMTYuOTY5NywxMTAuNTQ2IEwgMTYuNzMyMSwxMTEuMjA5IEwgMTYuNTUyMywxMTEuODg5IEwgMTYuNDMxNywxMTIuNTgzIEwgMTYuMzcxMiwxMTMuMjg0IEwgMTYuMzcxMiwxMTMuOTg4IEwgMTYuNDMxNywxMTQuNjkgTCAxNi41NTIzLDExNS4zODMgTCAxNi43MzIxLDExNi4wNjQgTCAxNi45Njk3LDExNi43MjcgTCAxNy4yNjM0LDExNy4zNjcgTCAxNy42MTEsMTE3Ljk3OSBMIDE4LjAxLDExOC41NTkgTCAxOC40NTczLDExOS4xMDIgTCAxOC45NDk4LDExOS42MDUgTCAxOS40ODM2LDEyMC4wNjQgTCAyMC4wNTQ5LDEyMC40NzYgTCAyMC42NTk1LDEyMC44MzYgTCAyMS4yOTI4LDEyMS4xNDQgTCAyMS45NTAzLDEyMS4zOTYgTCAyMi42MjY5LDEyMS41OSBMIDIzLjMxNzcsMTIxLjcyNiBMIDI0LjAxNzcsMTIxLjgwMSBMIDI0LjcyMTUsMTIxLjgxNiBMIDI1LjQyNCwxMjEuNzcxIEwgMjYuMTIwMSwxMjEuNjY1IEwgMjYuODA0NCwxMjEuNSBMIDI3LjQ3MjEsMTIxLjI3NyBMIDI4LjExODEsMTIwLjk5NyBMIDI4LjczNzYsMTIwLjY2MyBMIDI5LjMyNjEsMTIwLjI3NiBMIDI5Ljg3OTIsMTE5Ljg0MSBMIDMwLjM5MjgsMTE5LjM1OSBMIDMwLjg2MzEsMTE4LjgzNSBMIDMxLjI4NjYsMTE4LjI3MyBMIDMxLjY2MDMsMTE3LjY3NiBMIDMxLjk4MTIsMTE3LjA1IEwgMzIuMjQ3MSwxMTYuMzk4IEwgMzIuNDU2LDExNS43MjYgTCAzMi42MDYzLDExNS4wMzggTCAzMi42OTcsMTE0LjM0IEwgMzIuNzI3MywxMTMuNjM2IEwgMjQuNTQ1NSwxMTMuNjM2IFonIHN0eWxlPSdmaWxsOiMwMDAwMDA7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbC1vcGFjaXR5PTE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEwcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTsnIC8+CjxwYXRoIGQ9J00gMjgzLjYzNiwxMTMuNjM2IEwgMjgzLjYwNiwxMTIuOTMzIEwgMjgzLjUxNSwxMTIuMjM1IEwgMjgzLjM2NSwxMTEuNTQ3IEwgMjgzLjE1NiwxMTAuODc1IEwgMjgyLjg5LDExMC4yMjMgTCAyODIuNTY5LDEwOS41OTYgTCAyODIuMTk2LDEwOSBMIDI4MS43NzIsMTA4LjQzNyBMIDI4MS4zMDIsMTA3LjkxNCBMIDI4MC43ODgsMTA3LjQzMiBMIDI4MC4yMzUsMTA2Ljk5NiBMIDI3OS42NDcsMTA2LjYxIEwgMjc5LjAyNywxMDYuMjc2IEwgMjc4LjM4MSwxMDUuOTk2IEwgMjc3LjcxNCwxMDUuNzczIEwgMjc3LjAyOSwxMDUuNjA3IEwgMjc2LjMzMywxMDUuNTAyIEwgMjc1LjYzMSwxMDUuNDU2IEwgMjc0LjkyNywxMDUuNDcyIEwgMjc0LjIyNywxMDUuNTQ3IEwgMjczLjUzNiwxMDUuNjgzIEwgMjcyLjg1OSwxMDUuODc3IEwgMjcyLjIwMiwxMDYuMTI5IEwgMjcxLjU2OSwxMDYuNDM2IEwgMjcwLjk2NCwxMDYuNzk3IEwgMjcwLjM5MywxMDcuMjA4IEwgMjY5Ljg1OSwxMDcuNjY3IEwgMjY5LjM2NiwxMDguMTcgTCAyNjguOTE5LDEwOC43MTQgTCAyNjguNTIsMTA5LjI5NCBMIDI2OC4xNzMsMTA5LjkwNiBMIDI2Ny44NzksMTEwLjU0NiBMIDI2Ny42NDEsMTExLjIwOSBMIDI2Ny40NjEsMTExLjg4OSBMIDI2Ny4zNDEsMTEyLjU4MyBMIDI2Ny4yOCwxMTMuMjg0IEwgMjY3LjI4LDExMy45ODggTCAyNjcuMzQxLDExNC42OSBMIDI2Ny40NjEsMTE1LjM4MyBMIDI2Ny42NDEsMTE2LjA2NCBMIDI2Ny44NzksMTE2LjcyNyBMIDI2OC4xNzMsMTE3LjM2NyBMIDI2OC41MiwxMTcuOTc5IEwgMjY4LjkxOSwxMTguNTU5IEwgMjY5LjM2NiwxMTkuMTAyIEwgMjY5Ljg1OSwxMTkuNjA1IEwgMjcwLjM5MywxMjAuMDY0IEwgMjcwLjk2NCwxMjAuNDc2IEwgMjcxLjU2OSwxMjAuODM2IEwgMjcyLjIwMiwxMjEuMTQ0IEwgMjcyLjg1OSwxMjEuMzk2IEwgMjczLjUzNiwxMjEuNTkgTCAyNzQuMjI3LDEyMS43MjYgTCAyNzQuOTI3LDEyMS44MDEgTCAyNzUuNjMxLDEyMS44MTYgTCAyNzYuMzMzLDEyMS43NzEgTCAyNzcuMDI5LDEyMS42NjUgTCAyNzcuNzE0LDEyMS41IEwgMjc4LjM4MSwxMjEuMjc3IEwgMjc5LjAyNywxMjAuOTk3IEwgMjc5LjY0NywxMjAuNjYzIEwgMjgwLjIzNSwxMjAuMjc2IEwgMjgwLjc4OCwxMTkuODQxIEwgMjgxLjMwMiwxMTkuMzU5IEwgMjgxLjc3MiwxMTguODM1IEwgMjgyLjE5NiwxMTguMjczIEwgMjgyLjU2OSwxMTcuNjc2IEwgMjgyLjg5LDExNy4wNSBMIDI4My4xNTYsMTE2LjM5OCBMIDI4My4zNjUsMTE1LjcyNiBMIDI4My41MTUsMTE1LjAzOCBMIDI4My42MDYsMTE0LjM0IEwgMjgzLjYzNiwxMTMuNjM2IEwgMjc1LjQ1NSwxMTMuNjM2IFonIHN0eWxlPSdmaWxsOiMwMDAwMDA7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbC1vcGFjaXR5PTE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEwcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTsnIC8+Cjwvc3ZnPgo= data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nODVweCcgaGVpZ2h0PSc4NXB4JyB2aWV3Qm94PScwIDAgODUgODUnPgo8IS0tIEVORCBPRiBIRUFERVIgLS0+CjxyZWN0IHN0eWxlPSdvcGFjaXR5OjEuMDtmaWxsOiNGRkZGRkY7c3Ryb2tlOm5vbmUnIHdpZHRoPSc4NScgaGVpZ2h0PSc4NScgeD0nMCcgeT0nMCc+IDwvcmVjdD4KPHRleHQgZG9taW5hbnQtYmFzZWxpbmU9ImNlbnRyYWwiIHRleHQtYW5jaG9yPSJzdGFydCIgeD0nMjUuMjQ2OCcgeT0nNDcuNzk1NScgc3R5bGU9J2ZvbnQtc2l6ZTozOHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZpbGw6IzNCNDE0MycgPjx0c3Bhbj5TaTwvdHNwYW4+PC90ZXh0Pgo8cGF0aCBkPSdNIDguNzcyNzMsMTguMDQ1NSBMIDguNzY0MTUsMTcuODQ2MiBMIDguNzM4NDYsMTcuNjQ4NCBMIDguNjk1ODcsMTcuNDUzNSBMIDguNjM2NjksMTcuMjYzIEwgOC41NjEzNSwxNy4wNzgzIEwgOC40NzA0MSwxNi45MDA4IEwgOC4zNjQ1NSwxNi43MzE3IEwgOC4yNDQ1NCwxNi41NzI0IEwgOC4xMTEyOSwxNi40MjQgTCA3Ljk2NTc3LDE2LjI4NzYgTCA3LjgwOTA1LDE2LjE2NDIgTCA3LjY0MjMyLDE2LjA1NDcgTCA3LjQ2Njc4LDE1Ljk1OTkgTCA3LjI4Mzc2LDE1Ljg4MDcgTCA3LjA5NDU5LDE1LjgxNzQgTCA2LjkwMDY4LDE1Ljc3MDYgTCA2LjcwMzQ3LDE1Ljc0MDcgTCA2LjUwNDQyLDE1LjcyNzggTCA2LjMwNSwxNS43MzIxIEwgNi4xMDY2OSwxNS43NTM1IEwgNS45MTA5NSwxNS43OTE5IEwgNS43MTkyNCwxNS44NDcgTCA1LjUzMjk3LDE1LjkxODMgTCA1LjM1MzUyLDE2LjAwNTQgTCA1LjE4MjIzLDE2LjEwNzYgTCA1LjAyMDM1LDE2LjIyNDIgTCA0Ljg2OTEsMTYuMzU0MiBMIDQuNzI5NTgsMTYuNDk2OCBMIDQuNjAyODMsMTYuNjUwOCBMIDQuNDg5NzksMTYuODE1MSBMIDQuMzkxMywxNi45ODg2IEwgNC4zMDgwOCwxNy4xNjk5IEwgNC4yNDA3NiwxNy4zNTc2IEwgNC4xODk4MiwxNy41NTA1IEwgNC4xNTU2NiwxNy43NDcgTCA0LjEzODUxLDE3Ljk0NTcgTCA0LjEzODUxLDE4LjE0NTIgTCA0LjE1NTY2LDE4LjM0MzkgTCA0LjE4OTgyLDE4LjU0MDQgTCA0LjI0MDc2LDE4LjczMzMgTCA0LjMwODA4LDE4LjkyMTEgTCA0LjM5MTMsMTkuMTAyMyBMIDQuNDg5NzksMTkuMjc1OCBMIDQuNjAyODMsMTkuNDQwMSBMIDQuNzI5NTgsMTkuNTk0MSBMIDQuODY5MSwxOS43MzY3IEwgNS4wMjAzNSwxOS44NjY3IEwgNS4xODIyMywxOS45ODMzIEwgNS4zNTM1MiwyMC4wODU1IEwgNS41MzI5NywyMC4xNzI2IEwgNS43MTkyNCwyMC4yNDM5IEwgNS45MTA5NSwyMC4yOTkgTCA2LjEwNjY5LDIwLjMzNzQgTCA2LjMwNSwyMC4zNTg4IEwgNi41MDQ0MiwyMC4zNjMxIEwgNi43MDM0NywyMC4zNTAyIEwgNi45MDA2OCwyMC4zMjAzIEwgNy4wOTQ1OSwyMC4yNzM1IEwgNy4yODM3NiwyMC4yMTAzIEwgNy40NjY3OCwyMC4xMzEgTCA3LjY0MjMyLDIwLjAzNjIgTCA3LjgwOTA1LDE5LjkyNjcgTCA3Ljk2NTc3LDE5LjgwMzMgTCA4LjExMTI5LDE5LjY2NjkgTCA4LjI0NDU0LDE5LjUxODUgTCA4LjM2NDU1LDE5LjM1OTIgTCA4LjQ3MDQxLDE5LjE5MDEgTCA4LjU2MTM1LDE5LjAxMjYgTCA4LjYzNjY5LDE4LjgyNzkgTCA4LjY5NTg3LDE4LjYzNzQgTCA4LjczODQ2LDE4LjQ0MjUgTCA4Ljc2NDE1LDE4LjI0NDcgTCA4Ljc3MjczLDE4LjA0NTUgTCA2LjQ1NDU1LDE4LjA0NTUgWicgc3R5bGU9J2ZpbGw6IzAwMDAwMDtmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsLW9wYWNpdHk9MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjE7JyAvPgo8cGF0aCBkPSdNIDc5Ljg2MzYsMTguMDQ1NSBMIDc5Ljg1NTEsMTcuODQ2MiBMIDc5LjgyOTQsMTcuNjQ4NCBMIDc5Ljc4NjgsMTcuNDUzNSBMIDc5LjcyNzYsMTcuMjYzIEwgNzkuNjUyMywxNy4wNzgzIEwgNzkuNTYxMywxNi45MDA4IEwgNzkuNDU1NSwxNi43MzE3IEwgNzkuMzM1NSwxNi41NzI0IEwgNzkuMjAyMiwxNi40MjQgTCA3OS4wNTY3LDE2LjI4NzYgTCA3OC45LDE2LjE2NDIgTCA3OC43MzMyLDE2LjA1NDcgTCA3OC41NTc3LDE1Ljk1OTkgTCA3OC4zNzQ3LDE1Ljg4MDcgTCA3OC4xODU1LDE1LjgxNzQgTCA3Ny45OTE2LDE1Ljc3MDYgTCA3Ny43OTQ0LDE1Ljc0MDcgTCA3Ny41OTUzLDE1LjcyNzggTCA3Ny4zOTU5LDE1LjczMjEgTCA3Ny4xOTc2LDE1Ljc1MzUgTCA3Ny4wMDE5LDE1Ljc5MTkgTCA3Ni44MTAxLDE1Ljg0NyBMIDc2LjYyMzksMTUuOTE4MyBMIDc2LjQ0NDQsMTYuMDA1NCBMIDc2LjI3MzEsMTYuMTA3NiBMIDc2LjExMTMsMTYuMjI0MiBMIDc1Ljk2LDE2LjM1NDIgTCA3NS44MjA1LDE2LjQ5NjggTCA3NS42OTM3LDE2LjY1MDggTCA3NS41ODA3LDE2LjgxNTEgTCA3NS40ODIyLDE2Ljk4ODYgTCA3NS4zOTksMTcuMTY5OSBMIDc1LjMzMTcsMTcuMzU3NiBMIDc1LjI4MDcsMTcuNTUwNSBMIDc1LjI0NjYsMTcuNzQ3IEwgNzUuMjI5NCwxNy45NDU3IEwgNzUuMjI5NCwxOC4xNDUyIEwgNzUuMjQ2NiwxOC4zNDM5IEwgNzUuMjgwNywxOC41NDA0IEwgNzUuMzMxNywxOC43MzMzIEwgNzUuMzk5LDE4LjkyMTEgTCA3NS40ODIyLDE5LjEwMjMgTCA3NS41ODA3LDE5LjI3NTggTCA3NS42OTM3LDE5LjQ0MDEgTCA3NS44MjA1LDE5LjU5NDEgTCA3NS45NiwxOS43MzY3IEwgNzYuMTExMywxOS44NjY3IEwgNzYuMjczMSwxOS45ODMzIEwgNzYuNDQ0NCwyMC4wODU1IEwgNzYuNjIzOSwyMC4xNzI2IEwgNzYuODEwMSwyMC4yNDM5IEwgNzcuMDAxOSwyMC4yOTkgTCA3Ny4xOTc2LDIwLjMzNzQgTCA3Ny4zOTU5LDIwLjM1ODggTCA3Ny41OTUzLDIwLjM2MzEgTCA3Ny43OTQ0LDIwLjM1MDIgTCA3Ny45OTE2LDIwLjMyMDMgTCA3OC4xODU1LDIwLjI3MzUgTCA3OC4zNzQ3LDIwLjIxMDMgTCA3OC41NTc3LDIwLjEzMSBMIDc4LjczMzIsMjAuMDM2MiBMIDc4LjksMTkuOTI2NyBMIDc5LjA1NjcsMTkuODAzMyBMIDc5LjIwMjIsMTkuNjY2OSBMIDc5LjMzNTUsMTkuNTE4NSBMIDc5LjQ1NTUsMTkuMzU5MiBMIDc5LjU2MTMsMTkuMTkwMSBMIDc5LjY1MjMsMTkuMDEyNiBMIDc5LjcyNzYsMTguODI3OSBMIDc5Ljc4NjgsMTguNjM3NCBMIDc5LjgyOTQsMTguNDQyNSBMIDc5Ljg1NTEsMTguMjQ0NyBMIDc5Ljg2MzYsMTguMDQ1NSBMIDc3LjU0NTUsMTguMDQ1NSBaJyBzdHlsZT0nZmlsbDojMDAwMDAwO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGwtb3BhY2l0eT0xO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTsnIC8+Cjwvc3ZnPgo= [Si] XUIMIQQOPSSXEZUHFFFAOYSAN 0.000 description 1
 229910052710 silicon Inorganic materials 0.000 description 1
 239000010703 silicon Substances 0.000 description 1
 239000007787 solids Substances 0.000 description 1
Classifications

 G—PHYSICS
 G06—COMPUTING; CALCULATING; COUNTING
 G06N—COMPUTER SYSTEMS BASED ON SPECIFIC COMPUTATIONAL MODELS
 G06N7/00—Computer systems based on specific mathematical models
 G06N7/005—Probabilistic networks
Abstract
A process for determining relative player skills and draw margins is described. Information about an outcome of a game between at least a first player opposing a second player is received. Also, for each player, skill statistics are received associated with a distribution representing belief about skill of that player. Draw margin statistics are received associated with a distribution representing belief about ability of that player to force a draw. An update process is performed to update the statistics on the basis of the received information about the game outcome. In an embodiment a Bayesian inference process is used during the update process which may take past and future player achievement into account.
Description
 There is a desire to provide a way to determine relative skills of players of games such as computer games, chess, tennis, and any other type of game. This needs to be achieved in a manner whereby the indication of relative skill is as accurate as possible and also is understood and accepted by end users (i.e. game players). In addition, the relative skills need to be determined quickly even in the case of games involving many players and also in the case of many teams of players, each team having many members. This is particularly problematic because in these situations, computation complexity typically increases significantly. That is, there is a need to determine skills of players after very few game outcomes and/or with computational efficiency. Players can be human players or computer programs.
 Bayesian statistical techniques have been used to determine indications of player relative skill. However, it is desired to improve the accuracy of these previous approaches whilst at the same time addressing the issues of computational complexity.
 The embodiments of the invention described below are not limited to implementations which solve any or all of the disadvantages mentioned above.
 The following presents a simplified summary of the disclosure in order to provide a basic understanding to the reader. This summary is not an extensive overview of the disclosure and it does not identify key/critical elements of the invention or delineate the scope of the invention. Its sole purpose is to present some concepts disclosed herein in a simplified form as a prelude to the more detailed description that is presented later.
 A process for determining relative player skills and draw margins is described. Information about an outcome of a game between at least a first player opposing a second player is received. Also, for each player, skill statistics are received associated with a distribution representing belief about skill of that player. Draw margin statistics are received associated with a distribution representing belief about ability of that player to force a draw. An update process is performed to update the statistics on the basis of the received information about the game outcome. In an embodiment a Bayesian inference process is used during the update process which may take past and future player achievements into account.
 Many of the attendant features will be more readily appreciated as the same becomes better understood by reference to the following detailed description considered in connection with the accompanying drawings.
 The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:

FIG. 1 is a block diagram of an example method of ranking skills of players; 
FIG. 2 is a block diagram of an example method of ranking skills of players using a factor graph; 
FIG. 3 is a schematic diagram of an example factor graph; 
FIG. 4 is a schematic diagram of another example factor graph; 
FIGS. 5 to 13 are example factor graphs; 
FIG. 14 is a block diagram of an example method of updating a time series of skill belief statistics; 
FIG. 15 is a schematic diagram of a system for determining skill belief statistics of players; 
FIG. 16 is a block diagram of an example method of updating a time series of skill belief statistics using message passing; 
FIG. 17 is an example factor graph; 
FIG. 18 is a block diagram of an example method of updating player skill belief statistics and/or player draw margin belief statistics; 
FIG. 19 is an example factor graph; 
FIG. 20 is another example factor graph; 
FIG. 21 illustrates an exemplary computingbased device in which embodiments of a system for estimating player skill statistics and/or player draw margins may be implemented.  Like reference numerals are used to designate like parts in the accompanying drawings.
 The detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present example may be constructed or utilized. The description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.
 As mentioned above, Bayesian statistical techniques have previously been used to determine indications of player relative skill. For example, as described in U.S. Pat. No. 7,050,868 entitled Bayesian Scoring and European patent application number EP06270014 which are both incorporated herein by reference in their entirety.
 An example method for determining indications of player relative skill as described in U.S. Pat. No. 7,050,868 and EP06270014 is now summarized to aid in understanding embodiments of the present invention. At a high level, this method involves Bayesian inference techniques. Belief about a skill of each player of a game is modeled using a probability distribution of any suitable type which is described by statistics. For example, a Gaussian distribution is used which is uniquely described by its mean and standard deviation. The mean is used to model the average player skill belief and the standard deviation models the uncertainty associated with assessment of the player's skill.
 As shown in
FIG. 1 , for each player, statistics are accessed describing a probability distribution describing belief about skill of that player (block 100). For example, these statistics may be set at default values for new players or may be accessed from a database of values previously found for observed players. Game outcome information is accessed (block 101). For example, this may comprise information about winners and losers of the game, whether a draw occurred, any place ranking information and any information about whether teams of players were involved. The game may be a two player match or may involve multiple teams of players, each team having one or more players.  The system assumes that the accessed statistics may have changed slightly between the current and the last game played by each player. This is achieved by slightly increasing the skill uncertainty statistic by an amount which is a configurable parameter of the system. An update process is applied to update the statistics in the light of the game outcome information (block 102). This update process is described in more detail below. The accessed statistics are then replaced by the updated statistics (block 103) and the resulting ranked skills of the players may then be stored (block 104). That is, the updated skill belief statistics are stored and the previous values of those statistics may be discarded.
 The game outcome information may comprise player performances and a configurable parameter, called a draw margin, is used to assess whether the player performances are close enough together for the game outcome to be considered a draw.
 More detail about the update process is now given for the case of a twoplayer match.
 The update process comprises determining the probability of the observed game outcome for given skills of the participating players and weighting it by the probability of the corresponding skill beliefs. This is done by averaging over all possible performances (weighted by their probability density values) and deriving the game outcome from the performances: The player with the highest performance is the winner; the player with the second highest performance is the first runner up, and so on. If two players' performances are very close together, then the system considers the outcome between these two players a draw. The larger the margin which defines a draw in a given league, the more likely a draw is to occur, according to the ranking system. The size of this margin is a configurable parameter of the ranking system and is adjusted based on the game mode. For example, a street race in a car racing game involving two players may almost never end in a draw if crossing the finishing line is measured with high accuracy (thus the parameter is set to almost zero). In contrast, a game between two opponents for points over a fixed period of time (like football) can easily end in a draw.
 By virtue of the above weighting technique (which is based on Bayes' Law), the system arrives at a new skill belief for every player participating in the game. These skill beliefs are not Gaussian anymore. Hence, the ranking system determines the best Gaussian approximation. As a result, given players' μ values increase for each opponent they outperformed, and decreases for each opponent they lost against.
 The simplest case for the ranking system update is a twoperson match. Suppose we have players A(lice) and B(ob), with μ and σ values (μ_{A},σ_{A}) and (μ_{B},σ_{B}), respectively. Once the game has finished, the update algorithm determines the winner (Alice or Bob) and loser (Bob or Alice) and applies the following update equations:

μ_{winner}←μ_{winner}+σ^{2} _{winner} /c*v((μ_{winner}−μ_{loser})/c,ε/c) 
μ_{loser}←μ_{loser}−σ^{2} _{loser} /c*v((μ_{winner}−μ_{loser})/c,ε/c) 
σ^{2} _{winner}←σ^{2} _{winner}*[1−σ^{2} _{winner} /c ^{2} *w((μ_{winner}−μ_{loser})/c,ε/c)] 
σ^{2} _{loser}←σ^{2} _{loser}*[1−σ^{2} _{loser} /c ^{2} *w(μ_{winner}−μ_{loser})/c,ε/c)] 
c ^{2}=2β^{2}+σ^{2} _{winner}+σ^{2} _{loser }  In these equations, one unknown is β^{2 }which is the variance of the performance around the skill of each player and this is typically configured as 0.5. Moreover, ε is the aforementioned draw margin which is a configurable parameter. The functions v(.,.) and w(.,.) are given by

$v\ue8a0\left(t,\alpha \right)=\frac{N\ue8a0\left(t\alpha \right)}{\Phi \ue8a0\left(t\alpha \right)}$ $w\ue8a0\left(t,\alpha \right)=v\ue8a0\left(t,\alpha \right)\xb7\left(v\ue8a0\left(t,\alpha \right)\left(t\alpha \right)\right)$  if the game ends in win and loss or

$v\ue8a0\left(t,\alpha \right)=\frac{N\ue8a0\left(\alpha t\right)N\ue8a0\left(\alpha t\right)}{\Phi \ue8a0\left(\alpha t\right)\Phi \ue8a0\left(\alpha t\right)}$  if the game ends in a draw. Where the symbols N and Φ represent the density of the Gaussian distribution function and the cumulative distribution function of the Gaussian, respectively. The symbols t and α are simply arguments to the functions. Any suitable numerical or analytic methods can be used to evaluate these functions such as those described in Press et al., Numerical Recipes in C: the Art of Scientific Computing (2d. ed.), Cambridge, Cambridge University Press, ISBN0521431085.
 There are a few observations about these update equations:

 In the mean skill update equation the winner gets a multiple of v((μ_{winner}−μ_{loser})/c,ε/c) added to the mean skill and the loser gets a multiple of v((μ_{winner}−μ_{loser})/c,ε/c) subtracted from the mean skill. The weighting factors are roughly proportional to the uncertainty of the winner/loser vs. the total sum of uncertainties (2β^{2 }is the uncertainty due to the performance variation around the skill and σ^{2} _{winner}+σ^{2} _{loser }is the uncertainty about their true skills). Note that the ranking system's update equation for the mean skill is thus not guaranteed to be zero sum.
 The uncertainty of both players (regardless of win/loss/draw) is going to decrease by the factor 1−σ^{2} _{winner}/c^{2}*w((μ_{winner}−μ_{loser})/c,ε/c). Again, the player with the larger uncertainty gets the bigger decrease.
 The change in the mean skill, v((μ_{winner}−μ_{loser})/c,εc), and the decrease factor in the uncertainty, 1−σ^{2} _{winner}/c^{2}*w((μ_{winner}−μ_{loser})/c,ε/c), are close to zero if the game outcome was not surprising.
 Win/Loss If the winner had the much greater mean skill relative to the total uncertainty (thus (μ_{winner}−μ_{loser})>ε) then a win cannot buy the winner extra mean skill points or remove any uncertainty. The opposite is true if the game outcome was surprising: If the winner had the smaller mean skill (μ_{winner}−μ_{loser})<ε), mean points proportional to μ_{loser}−μ_{winner }get added/subtracted to/from the winner/loser.
 Draw If both players had similar mean skills upfront (thus μ_{winner}−μ_{loser}<ε) then both players are already close enough together and no mean skill point update needs to be made; hence the uncertainty is not reduced. However, if one player was thought to be much stronger by the ranking system before the game (let's say, μ_{winner}−μ_{loser}>ε) then his mean skill will be decreased and the other player's mean skill will be increased which, in effect, brings their two mean skill closer together.
 In the case of a team match the team's skill is assumed to be a function of the skills of the players. In a preferred embodiment, this function is the sum. The algorithm determines the sum of the skills of the two teams and uses the above two equations where (μ_{winner},σ^{2} _{winner}) and (μ_{loser},σ^{2} _{loser}) are the mean skills and skill variances of the winning and losing team, respectively.
 The update equations for more than two teams require numerical integration. In this case the ranking system iterates two team update equations between all teams on neighbouring ranks, that is, the 1st versus the 2nd team, the 2nd team versus the 3rd team and so on. The computational complexity increases cubically for more than two teams as a result of the numerical integration required for the V and W functions. This is addressed by using factor graphs with message passing techniques to reduce the computation required in multiteam situations as now described with reference to
FIG. 2 .  With reference to
FIG. 2 for each player, statistics are accessed (see block 200 ofFIG. 2 ) describing a probability distribution that itself describes our belief about skill of that player. In a preferred embodiment we use onedimensional Gaussian distributions to represent skill belief. By using Gaussian distributions we achieve the advantage that such distributions can be uniquely described by two statistics, the means and standard deviation, as explained above. In addition, the sum of two Gaussian random variables is itself a Gaussian random variable which enables us to simplify our computations. However, it is not essential to use Gaussian distributions to represent skill belief.  If a player has played before and we have stored skill information for that player that information is accessed. In the case of a new player we use a default belief distribution with associated default statistics, for example an initial μ of 3 and σ of 1. Any suitable default belief distribution is used.
 Information about the game outcome is obtained (see block 205 of
FIG. 2 ) and this is used to form a factor graph (see block 201) together with the statistics. The factor graph comprises nodes associated with particular players, those nodes being ordered on the basis of any teams and outcomes of the game. Some nodes of the factor graph are instantiated with the accessed statistic information (see block 202). Message passing is then performed over the factor graph to update the statistics using Bayesian Inference (see block 203). The resulting updated statistics describe our belief of the relative skill of the players (see block 204) and the process can be repeated for further games.  More detail about the process of forming the factor graph is now given with reference to
FIG. 3 . The factor graph comprises nodes 300 connected by links 301. The nodes are either variable nodes (circles) or factor nodes (rectangles). Variable nodes represent storage locations and factor nodes represent computational units. The factor nodes read and write information to their neighbouring variable nodes according to calculation rules described later.  Each player is represented by a variable node for their skill connected to a set of nodes which relate to their skill and their performance in the particular game. In
FIG. 3 , these nodes are drawn in a single column for each player, with players on the same team having nodes in adjacent columns. In the example illustrated inFIG. 3 four teams are represented, the winning team having a single player and being represented by the column on the left side of the page, 302. The team in second place 303 comprises three players, the third place team 304 comprises two players and the last place team 305 comprises four players.  As illustrated in
FIG. 3 , the factor graph is preferably acyclic. Preferably it comprises two types of nodes, variable nodes and factor nodes, and is bipartite.  The factor nodes at the top of the diagram (row 306) are functions which access a database or other store to obtain belief distributions for each player (or use a default belief distribution in the case of a new player). These computational units feed the parameters describing the player skill belief distributions into the corresponding variable nodes. For example, in the case of Gaussian distributions there would be two parameters (two floatingpoint numbers) stored in each variable node. The next row of variable nodes, that is, the circular nodes 307 connected in series to the top leaf nodes, represent the player skills. These nodes each store the statistics describing the belief distribution for the associated player. The next row of factor nodes are computation units 308 which compute player performance on the basis of, in this example, player skill plus noise. That is, the skill belief distributions of units 307 are modified by increasing their variance parameters and the results are stored in the row of variable nodes 309 representing player performance. This is a deterministic computation, though it can be thought of as adding noise to the underlying random variables.
 In order to obtain a representation of team performance as opposed to individual player performance the columns are combined as indicated in
FIG. 3 . In the case of the second place team for example, this has three players. The performance of this team is taken to be the sum of the performance of the three players and this is indicated by the rectangular node in row 310. Any other suitable combination rule for finding the team performance from the constituent member performances could be used. The result of that computation is stored in circular node in row 311. Thus in row 311 there is one node per team rather than one node per player. In the case that Gaussian distributions are used the results of the summing process are also Gaussian distributions.  In a preferred embodiment as illustrated in
FIG. 3 noise is added to the performance of each individual player and the player performances are then combined to form team performances. However, this is not essential. It is also possible to combine the player skills first to get a team skill, and then add noise to the team skill to obtain the team performance. The noise can be added to the individual player performances and/or to the combined team performances.  Team performance differences are represented by nodes in row 312 and each is calculated as a difference between certain nodes in the team performance layer 311 as indicated. When the game outcome provides a total ordering of the teams, then differences are calculated between consecutive teams in the ordering. In the case of a draw between teams, the teams which drew are placed in an arbitrary order amongst themselves and differences are calculated between consecutive teams in the ordering. For example, in
FIG. 3 if the game outcome here were such that the middle two teams 303, 304 drew then the nodes representing those two teams could be interchanged to produce an equally valid factor graph. Circular nodes in row 313 represent the results of the team performance difference calculation. In the case that Gaussian distributions are used the results of the difference process are also Gaussian distributions.  The bottom nodes in the graph are factor nodes which represent a calculation process encouraging the team performance difference to be greater than the draw margin ε (if no draw) or less than the draw margin in absolute value (in case of a draw).
 The process of message passing comprises carrying out a calculation associated with a computation node (square node in
FIG. 3 ) using distribution parameters from neighbouring variable nodes and passing the results to one of the neighbouring variable nodes (circular nodes inFIG. 3 ). The direction of passing the results (also referred to as a processing schedule) is explained in more detail now.  The processing schedule is preferably divided into three phases: preprocessing, chain processing, and postprocessing. An example preprocessing schedule is illustrated in
FIG. 4 . Starting at the top factor nodes (row 306), skill distributions are obtained from the database, or are set to default values, and computation proceeds downward along each column until the team performance row is reached (row 311). The post processing schedule is the reverse of the preprocessing schedule but stopping at the player skills in row 307.  After one step of preprocessing, a chain processing schedule is iterated until the belief distributions stop changing, i.e., a suitable convergence criterion has been satisfied. An example chain schedule is indicated in
FIG. 4 using dotted arrows. It passes performance belief distributions back and forth between the teams until all of the performance differences satisfy the conditions imposed by the bottom factor nodes. The postprocessing phase passes the performance distributions upward to obtain the new player skills. Each arrow in the processing schedules represents a nontrivial calculation and details of those calculations are given below. In the example given inFIG. 3 all the factor nodes (square calculation nodes) are exact factor nodes because they can be computed exactly except for the final indicator function nodes (referred to as order factor nodes). The order factor nodes implement an order constraint and for these nodes the associated update equations are not exact as the true factortovariable messages are no longer Gaussian.  The general update equations for use in carrying out the computations along the arrows in the message passing process are now given. These general update equations are tailored for use with Gaussian distributions as shown.
 Factor Node Update with Gaussian Messages
 Consider the factor graph of
FIG. 5 .  Suppose we would like to update the message m_{f→x }and the marginal probability density p_{x}. Then, the general update equations are as follows:

$\begin{array}{ccc}{m}_{x}\to f\ue8a0\left(x\right)& \alpha & \frac{{p}_{x}\ue8a0\left(x\right)}{{m}_{f\to x}\ue8a0\left(x\right)},\\ {m}_{f\to x}^{\mathrm{true}}\ue8a0\left(x\right)& \alpha & \int \int f\ue8a0\left(x,y,z\right)\xb7\frac{{p}_{y}\ue8a0\left(y\right)}{{m}_{f\to y}\ue8a0\left(x\right)}\xb7\frac{{p}_{z}\ue8a0\left(z\right)}{{m}_{f\to z}\ue8a0\left(x\right)}\ue89e\uf74cy\ue89e\uf74cz,\\ {p}_{x}\ue8a0\left(x\right)& =& \mathrm{MM}\ue8a0\left[{m}_{f\to x}^{\mathrm{true}}\ue8a0\left(x\right)\ue89e{m}_{x\to f}\ue8a0\left(x\right)\right],\\ {m}_{f\to x}& \alpha & \frac{{p}_{x}\ue8a0\left(x\right)}{{m}_{x\to f}\ue8a0\left(x\right)},\end{array}$  where MM[·] returns the distribution in the Gaussian family with the same moments as the argument and all quantities on the right are normalized to be distributions. In the following we use the exponential representation of the Gaussian, that is,

G(x;τ,π)α exp(πx^{2}−2τx)  This density has the following relation to the standard density

$G\ue8a0\left(x;\tau ,\pi \right)\ue89e\alpha \ue89e\phantom{\rule{0.6em}{0.6ex}}\ue89eN\ue8a0\left(x;\frac{\tau}{\pi},\frac{1}{\pi}\right),\mathrm{or}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89eN\ue89e\phantom{\rule{0.6em}{0.6ex}}\ue89e\left(x;\mu ,{\sigma}^{2}\right)\ue89e\alpha \ue89e\phantom{\rule{0.6em}{0.6ex}}\ue89eG\ue8a0\left(x;\frac{\mu}{{\sigma}^{2}},\frac{1}{{\sigma}^{2}}\right)$  In the case of the exact factor nodes the update equations are given in the following table.

Factor Update equation Please refer to FIG. 6 ${\pi}_{x}^{\mathrm{new}}\leftarrow {\pi}_{x}+\frac{1}{{v}^{2}}$ ${\pi}_{x}^{\mathrm{new}}\leftarrow {\tau}_{x}+\frac{m}{{v}^{2}}$ This is exact and should only be executed once. Please refer to FIG. 7 ${\pi}_{f\to x}^{\mathrm{new}}\leftarrow a\ue8a0\left({\pi}_{y}{\pi}_{f\to y}\right)$ ${\tau}_{f\to x}^{\mathrm{new}}\leftarrow a\ue8a0\left({\tau}_{y}{\tau}_{f\to y}\right)$ ${\pi}_{x}^{\mathrm{new}}\leftarrow {\pi}_{x}+{\pi}_{f\to x}^{\mathrm{new}}{\pi}_{f\to x}$ ${\tau}_{x}^{\mathrm{new}}\leftarrow {\tau}_{x}+{\tau}_{f\to x}^{\mathrm{new}}{\tau}_{f\to x}$ $a\ue89e\text{:}=\frac{1}{1+{c}^{2}\ue8a0\left({\pi}_{y}+{\pi}_{f\to y}\right)}$ Please refer to FIG. 8 Please refer to FIG. 8 Please refer to FIG. 9 ${\pi}_{f\to x}^{\mathrm{new}}\leftarrow {\left(\sum _{j=1}^{n}\ue89e\frac{{a}_{j}^{2}}{{\pi}_{{y}_{j}}{\pi}_{f\to {y}_{j}}}\right)}^{1}$ ${\tau}_{f\to x}^{\mathrm{new}}\leftarrow {\pi}_{f\to x}^{\mathrm{new}}\xb7\left(\sum _{j=1}^{n}\ue89e{a}_{j}\xb7\frac{{\tau}_{{y}_{i}}{\tau}_{f\to {y}_{i}}}{{\pi}_{{y}_{j}}{\pi}_{f\to {y}_{i}}}\right)$ ${\pi}_{x}^{\mathrm{new}}\leftarrow {\pi}_{x}+{\pi}_{f\to x}^{\mathrm{new}}{\pi}_{f\to x}$ ${\tau}_{x}^{\mathrm{new}}\leftarrow {\tau}_{x}+{\tau}_{f\to x}^{\mathrm{new}}{\tau}_{f\to x}$ Please refer to FIG. 10 Please refer to FIG. 11  In the case of the order factor nodes, the update equations are given in the following table.

Factor Update equation Please refer to FIG. 12 ${\pi}_{x}^{\mathrm{new}}\leftarrow \frac{C}{1w\ue8a0\left(\frac{d}{\sqrt{c}},\varepsilon \ue89e\sqrt{C}\right)}$ ${\tau}_{x}^{\mathrm{new}}\leftarrow \frac{d+\sqrt{C}\xb7v\ue8a0\left(\frac{d}{\sqrt{c}},\varepsilon \ue89e\sqrt{C}\right)}{1w\ue8a0\left(\frac{d}{\sqrt{c}},\varepsilon \ue89e\sqrt{C}\right)}$ ${\pi}_{f\to x}^{\mathrm{new}}\leftarrow {\pi}_{f\to x}+{\pi}_{x}^{\mathrm{new}}{\pi}_{x}$ ${\tau}_{f\to x}^{\mathrm{new}}\leftarrow {\tau}_{f\to x}+{\tau}_{x}^{\mathrm{new}}{\tau}_{x}$ $C={\pi}_{x}{\pi}_{f\to x},d={\tau}_{x}{\tau}_{f\to x}$ Please refer to FIG. 13 ${\pi}_{x}^{\mathrm{new}}\leftarrow \frac{C}{1{w}_{0}\ue8a0\left(\frac{d}{\sqrt{c}},\varepsilon \ue89e\sqrt{C}\right)}$ ${\tau}_{x}^{\mathrm{new}}\leftarrow \frac{d+\sqrt{C}\xb7{v}_{0}\ue8a0\left(\frac{d}{\sqrt{c}},\varepsilon \ue89e\sqrt{C}\right)}{1{w}_{0}\ue8a0\left(\frac{d}{\sqrt{c}},\varepsilon \ue89e\sqrt{C}\right)}$ ${\pi}_{f\to x}^{\mathrm{new}}\leftarrow {\pi}_{f\to x}+{\pi}_{x}^{\mathrm{new}}{\pi}_{x}$ ${\tau}_{f\to x}^{\mathrm{new}}\leftarrow {\tau}_{f\to x}+{\tau}_{x}^{\mathrm{new}}{\tau}_{x}$ $C={\pi}_{x}{\pi}_{{m}_{x}},d={\tau}_{x}{\tau}_{{m}_{x}}$  In the update equations set out in the tables above a represents weightings which in a preferred example are set to 1. Also, in the update equations v and w correspond to the functions v(.,.) and w(.,.) given by

$v\ue8a0\left(t,\alpha \right)=\frac{N\ue8a0\left(t\alpha \right)}{\Phi \ue8a0\left(t\alpha \right)}$ $w\ue8a0\left(t,\alpha \right)=v\ue8a0\left(t,\alpha \right)\xb7\left(v\ue8a0\left(t,\alpha \right)\left(t\alpha \right)\right)$  if the game ends in win and loss or

$v\ue8a0\left(t,\alpha \right)=\frac{N\ue8a0\left(\alpha t\right)N\ue8a0\left(\alpha t\right)}{\Phi \ue8a0\left(\alpha t\right)\Phi \ue8a0\left(\alpha t\right)}$ $w\ue8a0\left(t,\alpha \right)={v}^{2}\ue8a0\left(t,\alpha \right)+\frac{\left(at\right)\ue89eN\ue8a0\left(\alpha t\right)\left(\alpha t\right)\ue89eN\ue8a0\left(\alpha t\right)}{\Phi \ue8a0\left(\alpha t\right)\Phi \ue8a0\left(\alpha t\right)}$  if the game ends in a draw. They may be determined from the numerical approximation of a Gaussian and Gaussian cumulative distribution without using message passing.
 In the example shown in
FIG. 4 the message passing during the chain schedule involves order factor node updates from the nodes in row 314 to the nodes in row 313 using the update equation of the first row of the order factor node update equation table. In the case of a draw the modulus of the team performance difference is constrained to be less than or equal to a latent draw value ε and the update equation of the second row of the order factor node update equation table is used.  In the case of exact factor nodes, for message passing from a computation node (square node) to a single variable node (circular node) the update equations of the first row of the exact factor node update equation table is used. In the case of message passing from a computation node to two variable nodes the update equations of the second or third row of the table are used as appropriate. In the case of message passing from a computation node to three variable nodes the update equations of the fourth and fifth rows of that table are used as appropriate.
 Taking into Account Past and Future Player Achievements
 Most previous skill estimation systems operate in a filtering mode whereby they take into account only past game outcomes to estimate skill. This means that if player A beats an unknown player B and later it turns out that player B was in fact strong (e.g. by player B later repeatedly beating knowntobestrong player C) these filteringbased methods are not able to retroactively correct A's skill estimate upwards.
 In many situations, information about both past and future player achievements is available. Embodiments of the present invention which use such information to improve accuracy of player skill estimates are now described. These embodiments may be thought of as comprising a smoothing of a time series of player skills which takes into account past as well as future player achievements.

FIG. 14 is a block diagram of an example method of determining relative skills of players using both past and future game outcome information. For each player, a time series of skill belief statistics is accessed (block 1400). For example, belief about a player's skill is modeled using a probability distribution such as a Gaussian as described above. A mean and a standard deviation value may be used to describe this probability distribution so that values of these statistics are accessed to describe a given player's skill during a specified time period. Any suitable time period may be used, such as a week, day, hour, year or other time period. If the time period is a year for example, the time series comprises, for each player, an ordered sequence of pairs of mean and standard deviation values, each pair of values representing skill belief for that player for the given year.  For each time period of the time series, information is accessed about outcomes of games played in that time period (block 1401). For example, for year 1, outcomes of all games in which player A took part are accessed.
 Within each time period a first update process is applied. This updates the skill belief statistics on the basis of the game outcome information (block 1402). For example, for year 1, the game outcomes for player A are used to update skill belief statistics for player A for that year. This is repeated for all players and for all years (or other time periods).
 The process also comprises applying a second update process to update the skill belief statistics both forwards and backwards in the time series (block 1403). The first and second update processes may be integrated rather than carried out in series. The block diagram of
FIG. 14 is in no way intended to indicate that the first and second update processes must be carried out in series.  The resulting skill belief statistics are then stored (block 1404) and may be used as input to a matchmaking system, a system for displaying player rankings to end users or any other system which uses skill belief statistics.
 It is also possible for the time series to comprise other statistics instead of or in addition to the mean and standard deviation values representing skill belief. Any suitable time series may be used having an ordered sequence of sets of statistic values taken at regular time intervals.

FIG. 15 is a schematic diagram of an apparatus 1500 for providing skill belief statistics of players. The apparatus has a first input 1504 which is an interface to a database 1503 or other memory storing time series of skill belief statistics for players. There is a second input 1505 for receiving game outcome information 1506. The apparatus comprises at least a processor 1502 arranged to carry out update processes as described herein and optionally a factor graph means 1501 for representing a factor graph and using this to aid in the update processes. An output 1508 provides the skill belief statistics of players 1507 as determined by the system.  In some embodiments the update processes of
FIG. 14 are carried out using message passing techniques in a factor graph representation of the time series of skill belief statistics. This reduces computational complexity and speeds up processing times. However, it is not essential to use message passing techniques for the update processes. Instead, any suitable numerical or analytic methods can be used to evaluate the update processes as described in Press et al., Numerical Recipes in C (already referred to above). This is practical where computational requirements can be met, for example, where the numbers of players and games involved is relatively low. However, in cases where hundreds of thousands of players are active over several years it is typically most practical to use the message passing techniques as described herein.  An example method of using a factor graph with message passing techniques to carry out the update processes, both within a time series interval or unit and forwards and backwards through the time series, is now described with reference to
FIG. 16 .  Exemplary Method using Message Passing
 For each player, a time series of skill belief statistics is accessed (block 1600) as mentioned above with reference to
FIG. 14 . Game outcome information is also accessed (block 1605) in the same way as described with reference toFIG. 14 . A factor graph is created (block 1601) comprising nodes associated with particular players that are ordered on the basis of the time series. These nodes are instantiated with the time series statistics (block 1602). The factor graph also has nodes associated with the particular players and which are ordered on the basis of any teams and outcomes of games. Message passing is then performed over the factor graph to update the statistics using Bayesian inference (block 1603). This message passing is carried out both between nodes that represent game outcomes within time series units and also forwards and backwards along the nodes representing the time series itself. The updated statistics are stored (block 1604).  More detail about the process of forming the factor graph is now given with reference to
FIG. 17 . The factor graph comprises nodes 1700 connected by edges 1701. The nodes are either variable nodes (circles) or factor nodes (rectangles). Variable nodes represent storage locations and factor nodes represent computational units. The factor nodes read and write information to their neighboring variable nodes according to calculation rules described later.  The example factor graph of
FIG. 17 is for a situation involving three players with time series of skill belief statistics over a period of four years. This is an example only and in practice many more players may be represented with many more game outcomes and for time series having large sequences of values.  For each player, a time series of skill belief statistics is represented by a row of variable nodes. For example, player 1 has a time series shown in row 1702, player 2 has a time series shown in row 1703 and player 3 has a time series shown in row 1704. In this example, a time series unit or interval is a year so that player skill statistics for year 1 are represented in the column labeled “year 1” and so on for years 2, 3 and 4.
 For player 1, the time series of skill statistics from year 1 to year 4 is shown in row 1702. It comprises skill belief statistics stored in variable nodes S_{1} ^{1}, S_{1} ^{2}, S_{1} ^{3}, S_{1} ^{4}. Those variable nodes are linked together with a factor node 1711 between each variable node. The factor nodes 1711 act to add noise to the skill belief statistics reflecting the belief that skill in year t+1 is the same as skill in year t but corrupted by noise. The skill belief statistics for this player, for year 1, are initialized either to default values or using values read from a database as indicated by factor node 1712. For player 2, the time series of skill statistics is only available for years 1 through 3 as shown. For player 3, the time series of skill statistics is available only for years 2 through 4 as shown.
 Within each time series unit (in this case, each year), observed game outcomes between players are represented in the factor graph. For example, in year 1 a two player match between player 1 and player 2 has been observed where player 1 was the winner. This is represented in the factor graph using the nodes indicated by dotted line 1713. Player 1's skill belief statistics for year 1 have noise added at factor node in row 1705 and the resulting performance statistics are stored at variable node P_{1} ^{1 }in row 1706. This is also done for player 2 to give variable node P_{1} ^{2 }at row 1706. The difference between these performance values is calculated at the factor node in row 1707 and the difference value stored at variable node d in row 1708. The bottom nodes (row 1709) in the factor graph are factor nodes which represent a calculation process encouraging the performance difference to be greater than 0 or less than 0 depending on which player was observed to be the winner.
 In the example of
FIG. 17 only one game is represented during year 1. However, many more games may be represented in practice and these may be between teams of players rather than only twoplayer matches.  It is also possible to represent games between teams of players. For example, in year 3 a game between a team comprising players 2 and 3 against player 1 is shown. In this case, the team performance is calculated as the sum of the player performances for the team and stored at variable node 1710.
 The process of message passing comprises carrying out a calculation associated with a computation node (square node in
FIG. 17 ) using distribution parameters from neighboring variable nodes and passing the results to one of the neighboring variable nodes (circular nodes inFIG. 17 ). The direction of passing the results (also referred to as a processing schedule) is explained in more detail now.  For each player, the processing schedule begins starting at the factor nodes 1712 from which skill distributions are obtained either from a database or are set to default values. This is represented in
FIG. 17 by the solid arrows from the factor nodes such as 1712 to the first variable nodes in the time series for each player. The computation then proceeds downwards along each column stemming from the year one variable nodes until the performance row 1706 or the team performance row (in the case of teams of players) is reached. This part of the processing schedule is referred to as preprocessing.  A chain processing schedule is then iterated until the belief distributions stop changing, i.e. a suitable convergence criterion has been satisfied. An example chain schedule is indicated in
FIG. 17 using dotted arrows. It passes performance belief distributions back and forth between the difference variable nodes (row 1708) or the teams (in the case that teams of players are used) until all of the performance differences satisfy the conditions imposed by the bottom factor nodes. A postprocessing phase then passes the performance distributions upward to obtain new player skills S_{1} ^{1 }and S_{1} ^{2}.  In some embodiments, the upward messages used in the postprocessing phase are stored. Repeated updates are then made on the same game outcomes for the particular year. However, the saved upward messages are used to calculate new downward messages in order to effectively divide out the earlier upward message to avoid double counting. The process is iterated up and down the columns stemming from the particular year variable nodes until the skill statistic values remain substantially the same.
 The new player skills are stored whilst retaining a record of their previous values.
 Processing then proceeds one more stage along the time series for each of players 1 and 2 by adding noise to reach variable nodes S_{1} ^{2 }and S_{2} ^{2}. The messages used to add the noise are also stored. Variable node S_{2} ^{3 }is also initialized as described above by reading statistics from a database or setting default values.
 Computation follows down the columns stemming from the year 2 variable nodes and continues with preprocessing, chain processing and post processing as described above. Iteration up and down the columns may be carried out as described above until the player skill statistics for that year reach convergence. This gives new player skills S_{1} ^{2}, S_{2} ^{2 }and S_{3} ^{2}.
 Again processing proceeds one more step along the time series for each of the players and then again within the columns stemming from the year 3 variable nodes. This process repeats until the end of each time series is reached.
 Processing now makes its way backwards along each time series, again with processing within the columns stemming from each year at each time step in the series. However, it is necessary to avoid duplicating the effect of the previous steps in the processing chain. In order to do this, when the updates are made in the backwards direction along each time series, the effect of the previous forwards updates are removed. This is achieved using the records that were stored of the messages used and the variable values.
 For example, in the backwards pass along each time series, the stored messages previously used in the forwards pass are used to calculate new messages for use in the backwards pass.
 The procedure is iterated forward and backward along the time series of skill statistics for each player until the skill statistics do not change significantly. The backward passes make it possible to propagate information from the future into the past.
 More detail about the processing stages is now given with reference to an example involving two player games. However, the methods described can equally be used for games with any number of teams having one or multiple players per team. A series of game outcomes between two players i and j in year t is denoted by y_{ij} ^{t}(k)ε{+1,−1,0} where kε{1, . . . ,K_{ij} ^{t}} denotes the number of game outcomes available for that pair of players in that year. y=+1 if player i wins, y=−1 if player j wins and y=0 in case of a draw.
 The update process for game outcomes within a time series step (in this case a year) involves going through the game outcomes y_{ij } ^{t }within a year t several times until convergence. The update for a game outcome y_{ij} ^{t}(k) is performed as described above with reference to
FIGS. 3 and 4 but saving the upward messages m_{f(p} _{ ij } _{ t } _{(k),s} _{ i } _{ t } _{)→s} _{ i } _{ t }(s_{i} ^{t})which describe the effect of the updated performance p_{ij} ^{t}(k) on the underlying skill s_{i} ^{t}. When game outcome y_{ij} ^{t}(k) comes up for update again, the new downward message m_{f(p} _{ ij } _{ t } _{(k),s} _{ i } _{ t } _{)→p} _{ ij } _{ t } _{(k)}(p_{ij} ^{t}(k)) is calculated by 
${m}_{f\ue8a0\left({p}_{\mathrm{ij}}^{t}\ue8a0\left(k\right),{s}_{i}^{t}\right)\to {p}_{\mathrm{ij}}^{t}\ue8a0\left(k\right)}\ue8a0\left({p}_{\mathrm{ij}}^{t}\ue8a0\left(k\right)\right)={\int}_{\infty}^{\infty}\ue89ef\ue8a0\left({p}_{\mathrm{ij}}^{t}\ue8a0\left(k\right),{s}_{i}^{t}\right)\ue89e\frac{p\ue8a0\left({s}_{i}^{t}\right)}{{m}_{f\ue8a0\left({p}_{\mathrm{ij}}^{t}\ue8a0\left(k\right),{s}_{i}^{t}\right)\to {s}_{i}^{t}}\ue8a0\left({s}_{i}^{t}\right)}\ue89e\phantom{\rule{0.2em}{0.2ex}}\ue89e\uf74c{s}_{i}^{t},$  thus effectively dividing out the earlier upward message to avoid double counting. The integral above may be evaluated since the messages as well as the marginals p(s_{i} ^{t})have been assumed Gaussian. The new downward message serves as the effective prior belief on the performance p_{i} ^{t}(k). At convergence, the dependency of the inferred skills on the order of game outcome vanishes.
 The method also involves repeatedly smoothing forward and backward in time. During the first forward pass along the time series of each player the forward messages m_{f(s} _{ i } _{ t−i } _{,s} _{ i } _{ t } _{)→s} _{ i } _{ t }(s_{i} ^{t}) are stored. They represent the influence of skill estimate s_{i} ^{t−1 }time t−1 on skill estimate s_{i} ^{t }at time t. In the backward pass, these messages are then used to calculate the new backward messages m_{f(s} _{ i } _{ t−1 } _{,s} _{ i } _{ t } _{)→s} _{ i } _{ t−1 }(s_{i} ^{t−1}), which effectively serve as the new prior for time step t−1,

${m}_{f\ue8a0\left({s}_{i}^{t1},{s}_{i}^{t}\right)\to {s}_{i}^{t1}}\ue8a0\left({s}_{i}^{t1}\right)={\int}_{\infty}^{\infty}\ue89ef\ue8a0\left({s}_{i}^{t1},{s}_{i}^{t}\right)\ue89e\frac{p\ue8a0\left({s}_{i}^{t}\right)}{{m}_{f\ue8a0\left({s}_{i}^{t1},{s}_{i}^{t}\right)\to {s}_{i}^{t}}\ue8a0\left({s}_{i}^{t}\right)}\ue89e\phantom{\rule{0.2em}{0.2ex}}\ue89e\uf74c{s}_{i}^{t},$  This procedure is repeated forward and backward along the time series of skills until convergence. The backward passes make it possible to propagate information from the future into the past.
 By making repeated updates on game outcomes within each time series step then the dependency of the inferred skills on the order of game outcomes is removed. This improves the accuracy of the skill estimates.
 Also, by propagating information both forward and backwards along the time series accuracy of skill estimates is further improved. Previous systems have not been able to propagate information backwards in time.
 The general update equations for use in carrying out the computations in the message passing process are as described above with reference to
FIGS. 3 and 4 but with the new downward or backward messages being calculated as described above.  In some embodiments average skill belief statistics per time series interval, over all players are determined. These average values may then be used to initialize skill belief statistics for previously unobserved players; that is, in place of the default statistic values mentioned above.
 Previous player skill estimation systems have assumed a fixed draw probability per game mode or type and have required an operator or developer to preconfigure this parameter, also referred to as a draw margin. However, it is recognized herein that the probability of draw may be positively correlated with playing skill and that it may vary considerably across individual players.
 A player skill estimation process is now described which determines a draw margin parameter value for each individual player in addition to player skill estimates.
 As shown in
FIG. 18 skill belief statistics are accessed for each player (block 1800) and this is carried out in a similar manner as described above with reference toFIG. 1 . The skill belief statistics comprise for example, a mean and a standard deviation for each player describing a Gaussian probability distribution representing belief about skill of that player. For each player, draw margin belief statistics are also accessed (block 1801). A probability distribution is used to represent belief about the draw margin for each player. This can be thought of as a distribution representing belief about a player's ability to force a draw. Again this probability distribution may be a Gaussian although this is not essential; any suitable probability distribution may be used. Statistics describing the draw margin belief distribution may be a mean and a standard deviation in the case of a Gaussian distribution although any suitable statistics may be used. Thus for each player, four statistics are available in some embodiments. These four statistics comprise a mean skill belief, a mean skill belief variance, a mean draw margin belief and a mean draw margin belief variance.  Game outcome information is accessed (block 1802) and used to update the statistics using a Bayesian inference process (block 1803). The updated statistics are stored (blocks 1804 and 1805) and may be used in any suitable application such as a matchmaking process, a player ranking process or any other suitable application.
 The Bayesian inference process is carried out using similar methods to those described above and may either involve using factor graphs and message passing or may use any suitable numerical or analytic methods.
 For example, suppose each player i at every timestep t is characterized by an unknown skill s_{i} ^{t}ε and a playerspecific draw margin ε_{i} ^{t}>0. Performances p_{ij} ^{k}(k) and p_{ji} ^{k}(k) are drawn according to p(p_{ij} ^{t}(k)s_{i} ^{t})=N(p_{ij} ^{t}(k);s_{i} ^{t},β^{2}). In this model a game outcome y_{ij} ^{t}(k)between players i and j at time t is generated as follows:

${y}_{\mathrm{ij}}^{t}\ue8a0\left(k\right)=\{\begin{array}{ccc}+1& \mathrm{if}& {p}_{\mathrm{ij}}^{t}\ue8a0\left(k\right)>{p}_{\mathrm{ji}}^{t}\ue8a0\left(k\right)+{\varepsilon}_{j}^{t}\\ 1& \mathrm{if}& {p}_{\mathrm{ji}}^{t}\ue8a0\left(k\right)>{p}_{\mathrm{ij}}^{t}\ue8a0\left(k\right)+{\varepsilon}_{i}^{t}\\ 0& \mathrm{if}& {\varepsilon}_{i}\le {p}_{\mathrm{ij}}\ue8a0\left(k\right){p}_{\mathrm{ji}}^{t}\ue8a0\left(k\right)\le {\varepsilon}_{j}\end{array}$  Where y=+1 if player i wins, y=−1 if player j wins and y=0 in the case of a draw. A factorizing Gaussian distribution is assumed for the playerspecific draw margins p(ε_{i} ^{0})=N(ε_{i} ^{0};v_{0},ζ_{0} ^{2})and a Gaussian drift of draw margins between time steps given by p(ε_{i} ^{t}ε_{i} ^{t−1})=N(ε^{t};ε^{t−1};ζ^{2}). A factorizing Gaussian prior p(s_{i} ^{0})=N(s_{i} ^{0};μ_{0},σ_{0} ^{2}) is assumed over skills and a Gaussian drift of skills between time steps given by p(s_{i} ^{t}s_{i} ^{t−1})=N(s^{t};s^{t−1}; τ^{2}).
 In an example, the update process is carried out using factor graphs and message passing.
FIG. 19 shows an example factor graph for use in the case of a win or a loss in a twoplayer game andFIG. 20 shows an example factor graph for use in the case of a draw in a twoplayer game. The factor graphs may be extended for games involving teams of multiple players.  The factor graph of
FIG. 19 comprises a variable node for the skill statistics s^{t} _{W }of the winning player at time t, a variable node for the skill statistics s^{t} _{L }of the losing player at time t, and a variable node for the draw margin statistics ^{t} _{L }of the losing player at time t. The draw margin statistics of the losing player at time t are forced to be positive by a factor node 1900.  Factor nodes 1901 are used to add noise to the skill statistics of the winner and loser to obtain performance statistics p_{W }and p_{L }as indicated. The difference between the performance of the winner and loser is forced to be greater than the draw margin of the loser plus a winning threshold u_{L }of the loser. Message passing occurs in a similar manner to that described above with reference to
FIGS. 3 and 4 . 
FIG. 20 shows an example factor graph for use in the case of a draw in a twoplayer game between player i and player j. The factor graph comprises a variable node for the skill statistics s^{t} _{i }of player i at time t, a variable node for the skill statistics s^{t} _{j }of player j at time t, a variable node for the draw margin statistics ^{t} _{i }of player i at time t and a variable node for the draw margin statistics ^{t} _{j }of player j at time t. The draw margin statistics of the players at time t are forced to be positive by a factor nodes 2000.  Factor nodes 2001 are used to add noise to the skill statistics of the players to obtain performance statistics p_{i }and p_{j }as indicated. The factor graph then encodes a situation where player i beats player j only if i's performance is bigger than j's performance by more than j's own ability at forcing a draw. Also, player j beats player i only if j's performance is bigger than i's performance by more than i's ability to force a draw. Message passing occurs in a similar manner to that described above with reference to
FIGS. 3 and 4 .  In some embodiments average draw margin belief statistics per time series interval, over all players are determined. These average values may then be used to initialize draw margin belief statistics for previously unobserved players; that is, in place of the default statistic values mentioned above.
 It is also possible to combine the processes described above whereby individual player draw margin statistics are determined with the processes described above whereby the update process enables both past and future player achievements to be taken into account. For example, inference may be carried out both within a given year t (or other time series interval) as well as across years (or other time series interval) in a forwards and backwards manner.

FIG. 21 illustrates various components of an exemplary computingbased device 2100 which may be implemented as any form of a computing and/or electronic device, and in which embodiments of a system for estimating skills and/or draw margins of players may be implemented.  The computingbased device 2100 comprises one or more inputs 21 02 which are of any suitable type for receiving media content, Internet Protocol (IP) input, information about outcomes of games between players, skill statistics and draw margin statistics. The device also comprises communication interface 2109 for interfacing with a game matchmaking system, game leader board system or other system requiring player skill estimates and/or player draw margin estimates.
 Computingbased device 2100 also comprises one or more processors 2101 which may be microprocessors, controllers or any other suitable type of processors for processing computing executable instructions to control the operation of the device in order to estimate skill statistics of players and/or draw margin statistics of players. Platform software comprising an operating system 2106 or any other suitable platform software may be provided at the computingbased device to enable application software 2107 to be executed on the device.
 The computer executable instructions may be provided using any computerreadable media, such as memory 2105. The memory is of any suitable type such as random access memory (RAM), a disk storage device of any type such as a magnetic or optical storage device, a hard disk drive, or a CD, DVD or other disc drive. Flash memory, EPROM or EEPROM may also be used. A data store 2108 may also be provided for storing skill statistics and/or draw margin statistics.
 An output 2103 is also provided such as an audio and/or video output to a display system integral with or in communication with the computingbased device. The output 2103 may also provide skill statistics and/or draw margin statistics in any suitable form such as by writing to a file, disk or other removable storage medium. A display interface 2104 may be provided to enable a graphical user interface, or other display interface although this is not essential.
 The term ‘computer’ is used herein to refer to any device with processing capability such that it can execute instructions. Those skilled in the art will realize that such processing capabilities are incorporated into many different devices and therefore the term ‘computer’ includes PCs, servers, mobile telephones, personal digital assistants and many other devices.
 The methods described herein may be performed by software in machine readable form on a storage medium. The software can be suitable for execution on a parallel processor or a serial processor such that the method steps may be carried out in any suitable order, or simultaneously.
 This acknowledges that software can be a valuable, separately tradable commodity. It is intended to encompass software, which runs on or controls “dumb” or standard hardware, to carry out the desired functions. It is also intended to encompass software which “describes” or defines the configuration of hardware, such as HDL (hardware description language) software, as is used for designing silicon chips, or for configuring universal programmable chips, to carry out desired functions.
 Those skilled in the art will realize that storage devices utilized to store program instructions can be distributed across a network. For example, a remote computer may store an example of the process described as software. A local or terminal computer may access the remote computer and download a part or all of the software to run the program. Alternatively, the local computer may download pieces of the software as needed, or execute some software instructions at the local terminal and some at the remote computer (or computer network). Those skilled in the art will also realize that by utilizing conventional techniques known to those skilled in the art that all, or a portion of the software instructions may be carried out by a dedicated circuit, such as a DSP, programmable logic array, or the like.
 Any range or device value given herein may be extended or altered without losing the effect sought, as will be apparent to the skilled person.
 It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. It will further be understood that reference to ‘an’ item refers to one or more of those items.
 The steps of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. Additionally, individual blocks may be deleted from any of the methods without departing from the spirit and scope of the subject matter described herein. Aspects of any of the examples described above may be combined with aspects of any of the other examples described to form further examples without losing the effect sought.
 It will be understood that the above description of a preferred embodiment is given by way of example only and that various modifications may be made by those skilled in the art. The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments of the invention. Although various embodiments of the invention have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this invention.
Claims (20)
1. A method comprising:
receiving information about an outcome of a game between at least a first player opposing a second player;
receiving, for each player, skill statistics associated with a distribution representing belief about skill of that player;
receiving, for each player, draw margin statistics associated with a distribution representing belief about ability of that player to force a draw;
updating the statistics on the basis of the received information about the game outcome.
2. A method as claimed in claim 1 wherein the updating process comprises using a Bayesian inference process.
3. A method as claimed in claim 1 wherein the step of receiving information about the game outcome comprises receiving an outcome of a game between at least a first team opposing a second team, the first team comprising a plurality of players and the second team comprising at least one other player.
4. A method as claimed in claim 1 wherein the updating process comprises forming a factor graph using the received information about the game outcome and carrying out a message passing process in the factor graph.
5. A method as claimed in claim 1 wherein the skill statistics comprise an individual mean and an individual variance for each player.
6. A method as claimed in claim 1 wherein the draw margin statistics comprise an individual mean and an individual variance for each player.
7. A method as claimed in claim 1 which further comprises receiving information about a player proposing a game and selecting at least one other player for the proposed game on the basis of draw margin statistics determined for that at least one other player.
8. A method as claimed in claim 1 wherein the step of receiving information about a game outcome comprises receiving information about a plurality of game outcomes; and wherein the process of receiving skill statistics and draw margin statistics comprises receiving a time series of skill statistics and a time series of draw margin statistics for each player.
9. A method as claimed in claim 8 which further comprises updating both time series of statistics both forwards and backwards in those time series on the basis of the game outcome information.
10. A method as claimed in claim 8 which further comprises determining average skill statistic values over all players for each time series interval.
11. A method as claimed in claim 8 which further comprises determining average draw margin statistic values over all players for each time series interval.
12. One or more computer readable media containing computer executable instructions that, when implemented, perform a method comprising:
receiving information about an outcome of a game between at least a first player opposing a second player;
receiving, for each player, skill statistics associated with a distribution representing belief about skill of that player;
receiving, for each player, draw margin statistics associated with a distribution representing belief about ability of that player to force a draw;
updating the draw margin statistics on the basis of the received information about the game outcome.
13. One or more computer readable media as claimed in claim 12 wherein the updating process comprises using a Bayesian inference process.
14. One or more computer readable media as claimed in claim 12 wherein the updating process comprises forming a factor graph using the received information about the game outcome and carrying out a message passing process in the factor graph.
15. One or more computer readable media as claimed in claim 12 wherein the skill statistics comprise an individual mean and an individual variance for each player.
16. One or more computer readable media as claimed in claim 12 wherein the draw margin statistics comprise an individual mean and an individual variance for each player
17. One or more computer readable media as claimed in claim 12 wherein the step of receiving information about a game outcome comprises receiving information about a plurality of game outcomes; and wherein the process of receiving skill statistics and draw margin statistics comprises receiving a time series of skill statistics and a time series of draw margin statistics for each player.
18. One or more computer readable media as claimed in claim 17 wherein the updating process further comprises updating both time series of statistics both forwards and backwards in those time series on the basis of the game outcome information.
19. One or more computer readable media containing computer executable instructions that, when implemented, perform a method comprising:
receiving information about an outcome of a game between at least a first player opposing a second player;
receiving, for each player, skill statistics associated with a distribution representing belief about skill of that player;
receiving, for each player, draw margin statistics associated with a distribution representing belief about ability of that player to force a draw;
updating the statistics on the basis of the received information about the game outcome; and
wherein the step of receiving information about a game outcome comprises receiving information about a plurality of game outcomes; and wherein the process of receiving skill statistics and draw margin statistics comprises receiving a time series of skill statistics and a time series of draw margin statistics for each player.
20. One or more computer readable media as claimed in claim 19 wherein the updating process further comprises updating both time series of statistics both forwards and backwards in those time series on the basis of the game outcome information.
Priority Applications (1)
Application Number  Priority Date  Filing Date  Title 

US11/869,165 US20090093287A1 (en)  20071009  20071009  Determining Relative Player Skills and Draw Margins 
Applications Claiming Priority (1)
Application Number  Priority Date  Filing Date  Title 

US11/869,165 US20090093287A1 (en)  20071009  20071009  Determining Relative Player Skills and Draw Margins 
Publications (1)
Publication Number  Publication Date 

US20090093287A1 true US20090093287A1 (en)  20090409 
Family
ID=40523722
Family Applications (1)
Application Number  Title  Priority Date  Filing Date 

US11/869,165 Abandoned US20090093287A1 (en)  20071009  20071009  Determining Relative Player Skills and Draw Margins 
Country Status (1)
Country  Link 

US (1)  US20090093287A1 (en) 
Cited By (5)
Publication number  Priority date  Publication date  Assignee  Title 

US8447420B2 (en) *  20110819  20130521  Competitive Sports Analysis, Llc  Methods for predicting performance of sports players based on players' offsetting and complementary skills 
US8788074B1 (en)  20121023  20140722  Google Inc.  Estimating player skill in games 
US8909581B2 (en)  20111028  20141209  Blackberry Limited  Factorgraph based matching systems and methods 
WO2015029512A1 (en) *  20130902  20150305  株式会社ソニー・コンピュータエンタテインメント  Information processing device 
WO2019148587A1 (en) *  20180201  20190808  深圳市鹰硕技术有限公司  Competition object matching method in learning competition and apparatus 
Citations (34)
Publication number  Priority date  Publication date  Assignee  Title 

US5221082A (en) *  19920205  19930622  Ingolf Corporation  Enhanced golf simulation system 
US5830064A (en) *  19960621  19981103  Pear, Inc.  Apparatus and method for distinguishing events which collectively exceed chance expectations and thereby controlling an output 
US5853324A (en) *  19950907  19981229  Namco Ltd.  Shooting game machine and method of computing the same 
US5916024A (en) *  19860310  19990629  Response Reward Systems, L.C.  System and method of playing games and rewarding successful players 
US6074312A (en) *  19970728  20000613  Dynamic Solutions International  Golf handicap system and methods 
US6267687B1 (en) *  19990719  20010731  Emil Alex  Golf calculator 
US20020068592A1 (en) *  20001122  20020606  Doug Hutcheson  Method and system for providing communications services 
US20020116325A1 (en) *  20001103  20020822  Wise Eric S.  System and method for estimating conduit liquidity requirements in asset backed commercial paper 
US20020115488A1 (en) *  20010222  20020822  Nicholas Berry  System and method for conducting an online competition 
US6443838B1 (en) *  20000906  20020903  Scott Jaimet  Method for defining outcomes of ensembles of games using a single number and without reference to individual game wins 
US6468155B1 (en) *  20010508  20021022  Skillgames, Inc.  Systems and methods to facilitate games of skill for prizes played via a communication network 
US6523828B2 (en) *  20001013  20030225  Serge Lorenzin  Game of chance and skill, method of play, game components, and game board 
US20030073472A1 (en) *  20011017  20030417  Varley John A.  Method and system for providing an environment for the delivery of interactive gaming services 
US20030158827A1 (en) *  20010626  20030821  Intuition Intelligence, Inc.  Processing device with intuitive learning capability 
US20040059655A1 (en) *  20000915  20040325  Benedict Seifert  Optimization method and system 
US20040083078A1 (en) *  20010406  20040429  Feldman Barry E.  Method and system for using cooperative game theory to resolve statistical and other joint effects 
US6801810B1 (en) *  19990514  20041005  Abb Research Ltd.  Method and device for state estimation 
US20040225387A1 (en) *  20030508  20041111  Jay Smith  System and method for scoring, ranking, and awarding cash prizes to interactive game players 
US6824462B2 (en) *  20010109  20041130  Topcoder, Inc.  Method and system for evaluating skills of contestants in online coding competitions 
US6840861B2 (en) *  20001120  20050111  Kent Wilcoxson Jordan  Method and apparatus for interactive real time distributed gaming 
US20050087926A1 (en) *  20030926  20050428  Aruze Corporation  Gaming machine 
US20050192097A1 (en) *  20040301  20050901  Farnham Shelly D.  Method for online game matchmaking using play style information 
US20050233791A1 (en) *  20040416  20051020  Kane Steven N  System and method for conducting a game 
US6996444B2 (en) *  20010413  20060207  Games, Inc.  Rating method, program product and apparatus 
US7050868B1 (en) *  20050124  20060523  Microsoft Corporation  Bayesian scoring 
US20060184260A1 (en) *  20050124  20060817  Microsoft Corporation  Player ranking with partial information 
US20070026934A1 (en) *  20050124  20070201  Microsoft Corporation  Seeding in a bayesian skill scoring framework 
US20070112706A1 (en) *  20050124  20070517  Microsoft Corporation  Handicapping in a Bayesian skill scoring framework 
US20070129133A1 (en) *  20000831  20070607  Igt  Gaming device having skill/perceived skill game 
US20070166680A1 (en) *  20060103  20070719  Spotrent Co., Ltd.  Sports skill evaluation system 
US20070191110A1 (en) *  20060210  20070816  Erick Van Allen Crouse  Data acquisition software implementation and scientific analysis methods for sports statistics and phenomena 
US20090227313A1 (en) *  20060210  20090910  Microsoft Corporation  Determining Relative Skills of Players 
US7793205B2 (en) *  20020319  20100907  Sharp Laboratories Of America, Inc.  Synchronization of video and data 
US7846024B2 (en) *  20050124  20101207  Micorsoft Corporation  Team matching 

2007
 20071009 US US11/869,165 patent/US20090093287A1/en not_active Abandoned
Patent Citations (37)
Publication number  Priority date  Publication date  Assignee  Title 

US5916024A (en) *  19860310  19990629  Response Reward Systems, L.C.  System and method of playing games and rewarding successful players 
US5221082A (en) *  19920205  19930622  Ingolf Corporation  Enhanced golf simulation system 
US5853324A (en) *  19950907  19981229  Namco Ltd.  Shooting game machine and method of computing the same 
US5830064A (en) *  19960621  19981103  Pear, Inc.  Apparatus and method for distinguishing events which collectively exceed chance expectations and thereby controlling an output 
US6074312A (en) *  19970728  20000613  Dynamic Solutions International  Golf handicap system and methods 
US6801810B1 (en) *  19990514  20041005  Abb Research Ltd.  Method and device for state estimation 
US6267687B1 (en) *  19990719  20010731  Emil Alex  Golf calculator 
US20070129133A1 (en) *  20000831  20070607  Igt  Gaming device having skill/perceived skill game 
US6443838B1 (en) *  20000906  20020903  Scott Jaimet  Method for defining outcomes of ensembles of games using a single number and without reference to individual game wins 
US20040059655A1 (en) *  20000915  20040325  Benedict Seifert  Optimization method and system 
US6523828B2 (en) *  20001013  20030225  Serge Lorenzin  Game of chance and skill, method of play, game components, and game board 
US20020116325A1 (en) *  20001103  20020822  Wise Eric S.  System and method for estimating conduit liquidity requirements in asset backed commercial paper 
US6840861B2 (en) *  20001120  20050111  Kent Wilcoxson Jordan  Method and apparatus for interactive real time distributed gaming 
US20020068592A1 (en) *  20001122  20020606  Doug Hutcheson  Method and system for providing communications services 
US6824462B2 (en) *  20010109  20041130  Topcoder, Inc.  Method and system for evaluating skills of contestants in online coding competitions 
US20020115488A1 (en) *  20010222  20020822  Nicholas Berry  System and method for conducting an online competition 
US20040083078A1 (en) *  20010406  20040429  Feldman Barry E.  Method and system for using cooperative game theory to resolve statistical and other joint effects 
US6996444B2 (en) *  20010413  20060207  Games, Inc.  Rating method, program product and apparatus 
US6468155B1 (en) *  20010508  20021022  Skillgames, Inc.  Systems and methods to facilitate games of skill for prizes played via a communication network 
US20030158827A1 (en) *  20010626  20030821  Intuition Intelligence, Inc.  Processing device with intuitive learning capability 
US20030073472A1 (en) *  20011017  20030417  Varley John A.  Method and system for providing an environment for the delivery of interactive gaming services 
US7793205B2 (en) *  20020319  20100907  Sharp Laboratories Of America, Inc.  Synchronization of video and data 
US20040225387A1 (en) *  20030508  20041111  Jay Smith  System and method for scoring, ranking, and awarding cash prizes to interactive game players 
US20050087926A1 (en) *  20030926  20050428  Aruze Corporation  Gaming machine 
US20050192097A1 (en) *  20040301  20050901  Farnham Shelly D.  Method for online game matchmaking using play style information 
US20050233791A1 (en) *  20040416  20051020  Kane Steven N  System and method for conducting a game 
US20060184260A1 (en) *  20050124  20060817  Microsoft Corporation  Player ranking with partial information 
US20070026934A1 (en) *  20050124  20070201  Microsoft Corporation  Seeding in a bayesian skill scoring framework 
US20070112706A1 (en) *  20050124  20070517  Microsoft Corporation  Handicapping in a Bayesian skill scoring framework 
US20060178765A1 (en) *  20050124  20060810  Microsoft Corporation  Bayesian scoring 
US7840288B2 (en) *  20050124  20101123  Microsoft Corporation  Player ranking with partial information 
US7050868B1 (en) *  20050124  20060523  Microsoft Corporation  Bayesian scoring 
US7376474B2 (en) *  20050124  20080520  Microsoft Corporation  Bayesian scoring 
US7846024B2 (en) *  20050124  20101207  Micorsoft Corporation  Team matching 
US20070166680A1 (en) *  20060103  20070719  Spotrent Co., Ltd.  Sports skill evaluation system 
US20090227313A1 (en) *  20060210  20090910  Microsoft Corporation  Determining Relative Skills of Players 
US20070191110A1 (en) *  20060210  20070816  Erick Van Allen Crouse  Data acquisition software implementation and scientific analysis methods for sports statistics and phenomena 
Cited By (7)
Publication number  Priority date  Publication date  Assignee  Title 

US8447420B2 (en) *  20110819  20130521  Competitive Sports Analysis, Llc  Methods for predicting performance of sports players based on players' offsetting and complementary skills 
US8909581B2 (en)  20111028  20141209  Blackberry Limited  Factorgraph based matching systems and methods 
US8788074B1 (en)  20121023  20140722  Google Inc.  Estimating player skill in games 
WO2015029512A1 (en) *  20130902  20150305  株式会社ソニー・コンピュータエンタテインメント  Information processing device 
JPWO2015029512A1 (en) *  20130902  20170302  株式会社ソニー・インタラクティブエンタテインメント  Information processing device 
EP3043311A4 (en) *  20130902  20170419  Sony Interactive Entertainment Inc.  Information processing device 
WO2019148587A1 (en) *  20180201  20190808  深圳市鹰硕技术有限公司  Competition object matching method in learning competition and apparatus 
Similar Documents
Publication  Publication Date  Title 

US10369475B2 (en)  Customizing offers for sales of combinations of virtual items  
US10709985B2 (en)  Automatic game comparison and recommendation  
US9792762B2 (en)  Gaming system and method with accumulating equity  
Silver et al.  Mastering the game of Go with deep neural networks and tree search  
US9256887B2 (en)  Providing offers for sales of combinations of virtual items at discounted prices  
Epstein  The theory of gambling and statistical logic  
US20150302446A1 (en)  Implementing contests in social networks  
US9318004B2 (en)  Game based on speed of play  
Afonso et al.  Determinants of block cohesiveness and attack efficacy in highlevel women's volleyball  
US9666025B2 (en)  Method and apparatus for directing a game in accordance with speed of play  
Schweinzer et al.  The optimal prize structure of symmetric Tullock contests  
US9017169B2 (en)  Franchise mechanic for interactive social games  
US8192260B2 (en)  Method and system for a fantasy sports draft game  
Boyko et al.  Referee bias contributes to home advantage in English Premiership football  
Gilpin et al.  Better automated abstraction techniques for imperfect information games, with application to Texas Hold'em poker  
US10445984B2 (en)  Guilddependent variation of player capabilities in a computerimplemented game  
US8323110B2 (en)  Game system, game management program, and game management method for game system  
US6763338B2 (en)  Machine decisions based on preferential voting techniques  
US6695700B2 (en)  Method and apparatus for directing a game in accordance with speed of play  
Konrad et al.  Multibattle contests  
US9715789B1 (en)  Method and system of incorporating team challenges into a social game  
Juliani et al.  Obstacle tower: A generalization challenge in vision, control, and planning  
Lee et al.  The computational intelligence of MoGo revealed in Taiwan's computer Go tournaments  
Schaeffer  A gamut of games  
US9457278B2 (en)  System for user interaction around a common computer game objective 
Legal Events
Date  Code  Title  Description 

AS  Assignment 
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HERBRICH, RALF;GRAEPEL, THORE;MINKA, THOMAS;AND OTHERS;REEL/FRAME:019939/0108;SIGNING DATES FROM 20071002 TO 20071005 

AS  Assignment 
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034542/0001 Effective date: 20141014 

STCB  Information on status: application discontinuation 
Free format text: ABANDONED  AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION 