{"action":"created","issue":{"url":"https://api.github.com/repos/craigneasbey/GoogleScripts/issues/2","repository_url":"https://api.github.com/repos/craigneasbey/GoogleScripts","labels_url":"https://api.github.com/repos/craigneasbey/GoogleScripts/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/craigneasbey/GoogleScripts/issues/2/comments","events_url":"https://api.github.com/repos/craigneasbey/GoogleScripts/issues/2/events","html_url":"https://github.com/craigneasbey/GoogleScripts/issues/2","id":149938715,"number":2,"title":"Add Best Allocation to Roster","user":{"login":"craigneasbey","id":13008733,"avatar_url":"https://avatars.githubusercontent.com/u/13008733?v=3","gravatar_id":"","url":"https://api.github.com/users/craigneasbey","html_url":"https://github.com/craigneasbey","followers_url":"https://api.github.com/users/craigneasbey/followers","following_url":"https://api.github.com/users/craigneasbey/following{/other_user}","gists_url":"https://api.github.com/users/craigneasbey/gists{/gist_id}","starred_url":"https://api.github.com/users/craigneasbey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/craigneasbey/subscriptions","organizations_url":"https://api.github.com/users/craigneasbey/orgs","repos_url":"https://api.github.com/users/craigneasbey/repos","events_url":"https://api.github.com/users/craigneasbey/events{/privacy}","received_events_url":"https://api.github.com/users/craigneasbey/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/craigneasbey/GoogleScripts/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"craigneasbey","id":13008733,"avatar_url":"https://avatars.githubusercontent.com/u/13008733?v=3","gravatar_id":"","url":"https://api.github.com/users/craigneasbey","html_url":"https://github.com/craigneasbey","followers_url":"https://api.github.com/users/craigneasbey/followers","following_url":"https://api.github.com/users/craigneasbey/following{/other_user}","gists_url":"https://api.github.com/users/craigneasbey/gists{/gist_id}","starred_url":"https://api.github.com/users/craigneasbey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/craigneasbey/subscriptions","organizations_url":"https://api.github.com/users/craigneasbey/orgs","repos_url":"https://api.github.com/users/craigneasbey/repos","events_url":"https://api.github.com/users/craigneasbey/events{/privacy}","received_events_url":"https://api.github.com/users/craigneasbey/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/craigneasbey/GoogleScripts/milestones/1","html_url":"https://github.com/craigneasbey/GoogleScripts/milestones/Roster","labels_url":"https://api.github.com/repos/craigneasbey/GoogleScripts/milestones/1/labels","id":1721924,"number":1,"title":"Roster","description":null,"creator":{"login":"craigneasbey","id":13008733,"avatar_url":"https://avatars.githubusercontent.com/u/13008733?v=3","gravatar_id":"","url":"https://api.github.com/users/craigneasbey","html_url":"https://github.com/craigneasbey","followers_url":"https://api.github.com/users/craigneasbey/followers","following_url":"https://api.github.com/users/craigneasbey/following{/other_user}","gists_url":"https://api.github.com/users/craigneasbey/gists{/gist_id}","starred_url":"https://api.github.com/users/craigneasbey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/craigneasbey/subscriptions","organizations_url":"https://api.github.com/users/craigneasbey/orgs","repos_url":"https://api.github.com/users/craigneasbey/repos","events_url":"https://api.github.com/users/craigneasbey/events{/privacy}","received_events_url":"https://api.github.com/users/craigneasbey/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":1,"state":"open","created_at":"2016-04-21T02:14:50Z","updated_at":"2016-04-27T04:18:13Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2016-04-21T02:14:06Z","updated_at":"2016-04-27T04:22:23Z","closed_at":null,"body":"The allocation algorithm selects the members to roster based on past history, the number of weeks a member can be rostered on for and the number of weeks a member can be rested for.  If the number of required rostered positions is not filled, it will progressively move from through the members available in a circular fashion until the positions are filled.  The member to start this search with changes for each week to add an amount of fairness.\r\n\r\nOften, after taking into account members that are not available, the allocation does not produce a fair outcome.  It would be better to search for the best allocation by varying weeks on, weeks resting and start member.  In order to find the best allocation a scoring system is required, allowing the best score to be selected."},"comment":{"url":"https://api.github.com/repos/craigneasbey/GoogleScripts/issues/comments/214966311","html_url":"https://github.com/craigneasbey/GoogleScripts/issues/2#issuecomment-214966311","issue_url":"https://api.github.com/repos/craigneasbey/GoogleScripts/issues/2","id":214966311,"user":{"login":"craigneasbey","id":13008733,"avatar_url":"https://avatars.githubusercontent.com/u/13008733?v=3","gravatar_id":"","url":"https://api.github.com/users/craigneasbey","html_url":"https://github.com/craigneasbey","followers_url":"https://api.github.com/users/craigneasbey/followers","following_url":"https://api.github.com/users/craigneasbey/following{/other_user}","gists_url":"https://api.github.com/users/craigneasbey/gists{/gist_id}","starred_url":"https://api.github.com/users/craigneasbey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/craigneasbey/subscriptions","organizations_url":"https://api.github.com/users/craigneasbey/orgs","repos_url":"https://api.github.com/users/craigneasbey/repos","events_url":"https://api.github.com/users/craigneasbey/events{/privacy}","received_events_url":"https://api.github.com/users/craigneasbey/received_events","type":"User","site_admin":false},"created_at":"2016-04-27T04:22:23Z","updated_at":"2016-04-27T04:22:23Z","body":"Best allocation is accurate but too slow, about 5 seconds.  Added profiler to investigate slowness.  Found the algorithm is already performing well.  May need to look for performance improvements throughout the algorithm but this could risk accuracy.  Alternatively, could reduce the amount of outer loops that occur through intelligent optimisation."}}