GithubHelp home page GithubHelp logo

elo-zs's Introduction

elo-zs

This project includes an Elo rating engine and a race result simulator, which support analysis tools for analysis of races and racer performances in the ZakStunts Stunts competition. While there is a fair amount of ZakStunts-specific code in the package, the cores of the Elo engine and simulator are largely competition-agnostic, and could conceivably be factored out into separate libraries.

The code here is still very much a work in progress. For the moment, the most effective way to use it is interactively by loading the Zak module in GHCi. For ling simulation runs, though, compiling with optimisations is highly recommended; the Main module illustrates how to put the simulator to work. cabal build, cabal repl and cabal run should work with no complications for Cabal 3+. A Cabal freeze file (assuming GHC 8.8.3 for now) is provided to cover for the package organisation details that still have to be ironed out.

Possible entry points for browsing the code:

  • Engine: The Elo engine.

  • Analysis.Simulation: The simulation engine.

  • Analysis.PerfModel.Orbital: A simple gamma distribution-based performance model the simulation engine depends upon.

  • Analysis: The key parts of the result analysis pipelines. (In contrast, the Zak module is mostly about presentation and providing a REPL-friendly interface.)

A number of decisions in the implementation of the Elo engine were informed by Glickman, Mark E., A Comprehensive Guide to Chess Ratings (1995), a very readable introduction to the problem space. It should be noted that using Elo ratings to rank racers is a very simple approach with clear limitations, chiefly the absence of explicit modeling of rating uncertainties and the fact that the Elo system is designed for one-versus-one matches rather than free-for-all races (for prior art on such matters, see for instance Glickman's other works on the topic, including the Glicko system, as well as Microsoft's TrueSkill). In this code base, such limitations are, to an extent, addressed by various local measures, some of them principled, and some of a more ad hoc nature.

The docs/stuntshu-announcement.txt file reproduces the forum post through which this project was first presented to the Stunts community. It documents the business domain design decisions from a sporting perspective.

Thanks to the worldwide Stunts community, whose élan runs through this codebase.

elo-zs's People

Contributors

duplode avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.