Chris Dietsch and Bruce Malley
December 10, 2010
Our goal was to provide a way to have an AI based approach to building a fantasy basketball roster of varying number of players and against various numbers of opponents. The algorithm used is a minimax search where min agents are the other teams being selected by the computer against your (automatically or manually) chosen team. The selection is based on position (basketball positions are shooting guards, point guards, power forwards, shooting forwards and centers) and rating. The ratings were collected online and then parsed into CSV (comma separated value) form. From there they were separated into files by position and ordered by overall rank. These CSV files were then put into JSON for use in the front end and, more importantly, in the minimax algorithm.
- Minimax is used to compete against other 'teams' in your fantasy league so as to attempt to help you choose the best team amidst smart opponents. We assume intelligent 'agents' (other people that would be in your league picking against you) and that is the basis for the use of minimax here. We want to anticipate what a chooser would pick if his choices available at any given round and so we can try to avoid certain cases we do not want and would not anticipate on our own, especially in larger leagues.
Technology Used Block Diagram
Evaluation of Results
Our project set out to give users a way to have some intelligence and planning behind a fantasy basketball draft. The resulting end product does that, and more. The project does some expectations of opponents picks of players beyond the trivial first few choices in a draft. It helps to explore the space of all possible choices and helps you anticipate an opponent picking a player that you would never have assumed he would have picked in that scenario. Our project is easily extensible as well, lending itself to more serious use in the future if wanted. Things like player salaries and more stats were on the cutting board for the deadline, but could easily be added into the backend and used to enhance the experience.
Our project's goal was to provide an interface for a user to get expected, reasonable picks of fantasy players based on either user input or auto picks. The algorithm depends on the number of lines on a basketball team chosen, and also the number of opponents in the league. These variables are most important to a user who is trying to plan their picks ahead of time and anticipating what an opponent will pick in given circumstances.