Go to Post I blame FIRST for everything good that has happened to me. - Herodotus [more]
Home
Go Back   Chief Delphi > Competition > Rules/Strategy > Scouting
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #9   Spotlight this post!  
Unread 01-02-2008, 17:59
Nibbles Nibbles is offline
Interstellar Hitchhiker
AKA: Austin Wright
FRC #0498 (Cobra Commanders)
Team Role: Alumni
 
Join Date: Jan 2008
Rookie Year: 2003
Location: Arizona
Posts: 103
Nibbles is just really niceNibbles is just really niceNibbles is just really niceNibbles is just really niceNibbles is just really nice
Re: Web-based scouting program

Quote:
Originally Posted by SteveGPage View Post
Can you share the algorithm that you used to do the match predictions? Thanks!
Best regards,
Steve
For the strength of team T, find all the matches played by team T (set B), find all the teams they played against or with (set C), and all the matches they played (set D), then find the average of their score minus opponents score (set E). Subtract the team T's average match score minus opponents score.

I have refined it several times over the last year, but that is how it works more or less. It also assumes that each team has an equal chance of competing against each other, which was not the case, as rookie teams always played with better teams boosting their score, and in a few cases the same alliance played together, It still fared very good however.

Let me try explaining another way: It takes into account the scores of your opponents and allies.

This is the exact SQL query used to find the strength for each team:
Code:
SELECT
  ROUND(AVG(IF(b.teamnum=c.teamnum ,2,-1)*IF(d.alliance="red",e.redscore-e.bluescore,e.bluescore-e.redscore)*IF(b.alliance=c.alliance,1,-1))*100) AS score2
FROM team_match b JOIN team_match c JOIN team_match d JOIN matches e
ON (b.matchid=c.matchid)
  AND (d.teamnum=c.teamnum AND d.matchid!=b.matchid)
  AND (d.matchid=e.matchid)
GROUP BY q.teamnum
This is in pages/strength.act.strength_2.php .

This is how I get the team strengths. Match predicting is a new area for me, I implemented it just a few month ago.
For matches, I found that the sum of the teams strengths on the target alliance, minus the sum of the opponent's alliance, works well enough.
I can calculate the chance a team will win with a cumulative logistic distribution, who's parent function is f(x) = 1/(1+e^(-x)).

My most recent tests show it is only 80% to 85% accurate, based on how I add the strengths together (add the square roots, etc). I don't really care too much, it isn't the most important part of the program.
 


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Good program for Palm-based scouting software development? mbmccormick Scouting 4 20-01-2008 22:02
IR Receiver 101 web link & an IR based question. Elgin Clock Technical Discussion 5 19-12-2007 16:10
scouting program Marjory Frosty Scouting 12 21-02-2006 16:30
Scouting Program? Jeffel Programming 3 16-02-2005 08:41
Web-Based File Transfer? Gadget470 Website Design/Showcase 6 11-01-2004 16:41


All times are GMT -5. The time now is 02:47.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi