After delaying the comparative algorithm aspects of the application for some time, it was great being able to finally make some implementable progress on it this week. It began with the primitive idea of using the normal distribution to estimate relative difference in scoring between two players based on the percentage of judges in favour of a player over the other. This did pose a minor problem in the event that all judges vote in favour of or against a particular player which will result in an undefined score difference. To compensate for this edge case, a formula which resembled a reciprocal function with some modifications was used. Now with a list of estimated score differences between each player, the algorithm assigns a cost for each ranking of players which is proportional to the deviation from the estimated score difference and tries to find an ordering that minimises the cost. This however was not satisfactory when multiple orderings share the same minimal cost as the algorithm just picks any one of them. After a few other attempts, I ended by settling with a simple method of generating implicit comparisons from real comparisons and calculating a win/loss ratio as a parameter for ranking for now. This was quite decent as it was able to rank similarly with absolute ranking, albeit with some fluctuations in the supposed differences in scoring so there is definitely room for improvement.
At the end of the week while trying to extend the duration of a Witty session to prevent accidental logouts due to inactivity, Dr. Shawn and I stumbled upon how Witty maintains the activity of its sessions. From our observations, a page created by Witty will automatically ping the Witty server with a GET request every N/2 seconds, where N is the amount of time set for a session timeout to occur. This allows the session to not timeout without activity as the timeout timer is reset with each request sent to the server.
Witty Tip of the Day: To change the timeout duration of a Witty session, add the following under the <server> and <application-settings> tags in your Witty configuration file with the default value of 600 (in seconds) changed to your desired duration:-