AI Ladder, 0.5
Moderators: hoijui, Moderators
-
- Posts: 51
- Joined: 14 Aug 2008, 21:54
Re: AI Ladder, 0.5
It may be more of a case of mutation then GA in this case....
I have a variety of WAG (wild ass guess) parameters in my bot related to my TO&E (table of organization and equipment)...like how many of certain types of units I will ultimately need based upon map analysis. I'd like to run many battles with my bot tweaking these parameters, and narrow down the proper options for some of them.
I have a variety of WAG (wild ass guess) parameters in my bot related to my TO&E (table of organization and equipment)...like how many of certain types of units I will ultimately need based upon map analysis. I'd like to run many battles with my bot tweaking these parameters, and narrow down the proper options for some of them.
Re: AI Ladder, 0.5
we're working on crosscompiling it to windows from linux, as a windows limitation currently prevents compiling this on windows...
in the future, I'll support/allow using my server cluster for AI learning.
in the future, I'll support/allow using my server cluster for AI learning.
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Sure, go ahead! My own focus is specifically on ai bot-matches, but there's no reason why you can't integrate the functionalities you've mentioned into it.aegis wrote:last time I checked, our launching options could've been better... I think maybe these should be the main initial focus... possibly including a nice preset system, the ability to redo runs, an easy way to run replays for crash tests, sync testing across multiple bots...
One thought: it could be possible to have multiple views onto the central engine, essentially boiling down to different menu.py instantiations, and be able to easily switch between menu.py instantiations, eg from a View menu.
Edit: one could store the name of the current view in the cookies table, or maybe have a second cookie value dedicated to the current viewname, and then it would be very easy for menu.py to switch between instantiations.
Last edited by hughperkins on 21 Oct 2009, 18:29, edited 1 time in total.
Re: AI Ladder, 0.5
I was thinking an AI ladder could just be automatically propagated based on the database of completed matches... the main code of the site/botrunner could then focus completely on how to best create matches and run them
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Well, I feel that the AI Ladder website needs to be capable of scheduling matches itself.aegis wrote:I was thinking an AI ladder could just be automatically propagated based on the database of completed matches... the main code of the site/botrunner could then focus completely on how to best create matches and run them
In addition, I feel the AI Ladder website should ideally allow AI developers to upload new versions of their AI on an adhoc basis, and see how they stand compared to their old versions, and to other people's AIs
So, it's not quite as simple as a one-way propagation of results from the runner to the ailadder, but if you mean, have two websites, and one website can invoke functionalities from the other, well possibly.
In the case case that you want to factor the website into two, I guess that AI Ladder would need at least, off the top of my head, to be able to call the following methods:
- getavailablemaps()
- getavailablemods()
- getavailableais()
- installai(ainame,aiversion,downloadurl)
- requestmatch( modname,mapname,ai0name,ai0version,ai1name,ai1version, options)
- getmatchrequests()
- getmatchresults()
Re: AI Ladder, 0.5
couldn't this be handled by statistics on a single run of matches?hughperkins wrote:Well, I feel that the AI Ladder website needs to be capable of scheduling matches itself.
In addition, I feel the AI Ladder website should ideally allow AI developers to upload new versions of their AI on an adhoc basis, and see how they stand compared to their old versions, and to other people's AIs
for example, I say to test AAI 0.8, AAI 0.9, KAIK, and RAI on SmallDivide and Comet Catcher, and to run all of the matches three times.
it generates a list of matches, groups them, runs them, and displays the results with statistics together, solving "upload new versions of their AI on an adhoc basis, and see how they stand compared to their old versions, and to other people's AIs" if we have a facility for uploading AIs to botrunners.
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Running a single league by hand like that is I feel doable, but I feel it will become more problematic when there are lots of leagues and leaguegroups.
I'd like the AILadder website to work like this:
- AI registers new AI, with download url
- goes away for coffee, or work on new version of AI
- comes back a bit later, and sees how their AI fares against other AIs, on water maps, choked maps, metal maps, land maps, ...
Have you tried the new scheduler by the way? It's in the staging website since yesterday. You can see how it works on this page:
http://manageddreams.com/ailadderstagin ... ircount.py
I'd like the AILadder website to work like this:
- AI registers new AI, with download url
- goes away for coffee, or work on new version of AI
- comes back a bit later, and sees how their AI fares against other AIs, on water maps, choked maps, metal maps, land maps, ...
Have you tried the new scheduler by the way? It's in the staging website since yesterday. You can see how it works on this page:
http://manageddreams.com/ailadderstagin ... ircount.py
Last edited by hughperkins on 22 Oct 2009, 02:18, edited 1 time in total.
Re: AI Ladder, 0.5
you could set up scheduled runs, automatic runs on upload, etc...
make a preset of matches to run and apply it to anything.
make a preset of matches to run and apply it to anything.
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
I could do, but I'd prefer that AILadder does the work for me.aegis wrote:you could set up scheduled runs, automatic runs on upload, etc...
make a preset of matches to run and apply it to anything.
Basically, if you can make it so the runner website that you are thinking of allows for scripted configuration via an xmlrpclib webservice, then AILadder can do all these things itself, without needing me to do stuff for it.
It does seem to me to make a certain sense to factorize the website into two parts like you seem to be suggesting, with one being a service used by the other.
Re: AI Ladder, 0.5
but that's the point. the website still does the work for you, but "the work" is anything you want instead of a dedicated ai ladderhughperkins wrote:I could do, but I'd prefer that AILadder does the work for me.aegis wrote:you could set up scheduled runs, automatic runs on upload, etc...
make a preset of matches to run and apply it to anything.
Re: AI Ladder, 0.5
Here's a few aesthetics changes you can make that Ive meddled with using firebug to see what works.
- Remove all borders on tables, no exceptions
- Your new colour scheme is #fff ##F0F0F0 #F8F8F8 and #000. Use the two shades of gray where you currently have those 2 garish shades of light blue
Code: Select all
body * { font-family: helvetica,arial,verdana; }
- Wrap the entire html output in a div container, so:
Code: Select all
<body> <div id="ailadder"> <!-- stuff --!> </div> </body>
- Put a title with <h1> tags at the top, and use <h2> instead of <h3> for page headings, your confusing search engines and aprsers and your being unsemantic.
- Add an 'alt' class to alternating table rows
- Add 8px of padding to the td.tablehead class (important!!!)
- Remove the borders and background colours off the top menu
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Alright, we'll run with this and see where it goes, so, on an experimental basis, I've created:aegis wrote:but that's the point. the website still does the work for you, but "the work" is anything you want instead of a dedicated ai ladder
- a new git repository 'springgrid'
- a new ailadder branch 'gridclient'
You have hoijui both have commit access to the springgrid repository, http://github.com/hughperkins/springgrid
There is a springgrid staging website at:
http://manageddreams.com/springgridstaging
Edit: created website for ailadder gridclient branch at:
http://manageddreams.com/ailaddergrid/viewmaps.py
It's connected to the springgridstaging website. For example, if you purge or add maps to the springgridstaging website, you will see that the maps on ailaddergrid change too.
Re: AI Ladder, 0.5
I also second the abstraction, where botrunners are totally separate from all of these websites, we can connect a botrunner to multiple websites, and anyone (trusted) can implement a basic interface to use botrunners.
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Update to ailadder git 'gridclient':
- migration to springgrid finished:
-- submitrequest works
-- viewresults works
-- viewrequests works
-- showaimatchpaircount works
http://manageddreams.com/ailaddergrid/s ... ircount.py
It's very slow, but it works.
Edit. Actually, did some timings, using 'time':
time curl http://manageddreams.com/springgridstag ... equests.py > /dev/null:
real: 3.811s
real: 2.338s
real: 1.714s
time curl http://manageddreams.com/ailaddergrid/viewrequests.py > /dev/null
real: 2.832s
real: 2.538s
real: 2.502s
Not so different. Timings are from china, and both websites are on the same web host in America, so perhaps not so surprising, and fairly encouraging.
- migration to springgrid finished:
-- submitrequest works
-- viewresults works
-- viewrequests works
-- showaimatchpaircount works
http://manageddreams.com/ailaddergrid/s ... ircount.py
It's very slow, but it works.
Edit. Actually, did some timings, using 'time':
time curl http://manageddreams.com/springgridstag ... equests.py > /dev/null:
real: 3.811s
real: 2.338s
real: 1.714s
time curl http://manageddreams.com/ailaddergrid/viewrequests.py > /dev/null
real: 2.832s
real: 2.538s
real: 2.502s
Not so different. Timings are from china, and both websites are on the same web host in America, so perhaps not so surprising, and fairly encouraging.
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Interesting. How would that work? Each botrunner has a list of sites that it subscribes to, and when it finishes a request from one, it polls the next website in its list until one of them sends a request?aegis wrote:I also second the abstraction, where botrunners are totally separate from all of these websites, we can connect a botrunner to multiple websites, and anyone (trusted) can implement a basic interface to use botrunners.
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Ok, done in springgrid git master. You'll need to delete your config.py and config.pyc, and let it recreate it.aegis wrote:I also second the abstraction, where botrunners are totally separate from all of these websites, we can connect a botrunner to multiple websites, and anyone (trusted) can implement a basic interface to use botrunners.
- config.py now contains a list 'websiteurls'
-- by default, it contains the single website you specify when you first run botrunner.py
-- you can add as many urls to this list as you want
How it works at the moment:
- ping pings all configured urls
- for polling for requests:
-- each host in polled in turn
--- any request is processed
--- if any hosts returned a request, then each host is repolled straight away after the game finishes
--- otherwise, sleep a bit, then repoll all servers
One question in my mind: should the results of each game be uploaded only to the host that requested it (how it works currently), or to all hosts?
- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Diagram of architecture of result of draft fission of

Code: Select all
/----> AILadder 'gridclient'
AILadder /
\
\____> springgrid

- hughperkins
- AI Developer
- Posts: 836
- Joined: 17 Oct 2006, 04:14
Re: AI Ladder, 0.5
Added, and I also followed your instructions from before too, before adding in the style.txt.AF wrote:Replacement css stylesheet
http://manageddreams.com/ailaddergrid/viewmaps.py
Re: AI Ladder, 0.5
I'm just gonna leave this here.
warning: there's a chance it will overwrite some your spring settings, like viewradius and tree view distance
warning: there's a chance it will overwrite some your spring settings, like viewradius and tree view distance