philihp/openskill.js

Draw probability function

Closed this issue · 6 comments

Hey,
I recently released a Lua port of the OpenSkill package: https://github.com/Vaschex/openskill.lua

I wanted to ask if you know how to implement a draw probability function for n-teams, n-players. This would be very helpful to determine good team compositions.
I know that TrueSkill has such a quality function, but they are using matrices and I don't know how to port that: https://github.com/scttcper/ts-trueskill/blob/master/src/trueskill.ts

This is great! Well done! 👍 I will add you to the list of ports.

While I can certainly see the value, I'm reluctant to study that function because I want to keep this library free of anything patented by Microsoft. Perhaps @scttcper can tell us where it comes from?

I'm not a lawyer, but isn't math unpatentable? The name is trademarked, but I think you should be able to use the published math. Microsoft actually encourages you to use it to some extent, why else would they explain almost everything about it?

And I think that implementing this function is not possible (or hardly) without matrices since this is the only time where TrueSkill uses them.

By the way, you always use thurstonMosteller, but shouldn't it be thurstoneMosteller?

I just got it from the python implementation of trueskill. Its probably written up in here https://www.microsoft.com/en-us/research/wp-content/uploads/2007/01/NIPS2006_0688.pdf

If its not that one there's more publications https://www.microsoft.com/en-us/research/project/trueskill-ranking-system/

Cool, thanks! Thinking about this more, I'm down to include a quality function which people can aim to maximize. Not necessarily a draw prediction, but probably directly correlated to it.

Math can certainly be patentable, however in this case it seems the TrueSkill patent is only concerned with the method of generating ratings, mostly through the use of the message passing graph business, but makes no claims as to how the ratings would be used.

A predictWin was added. Per #216 (comment), making a predictDraw shouldn't be too far off; thanks @daegontaven!

done