Darwinbots Forum

Code center => Bugs and fixes => Topic started by: Jez on November 30, 2006, 10:09:13 AM

Title: League Problems
Post by: Jez on November 30, 2006, 10:09:13 AM
Deleted bots from text file and put irish guys bot in first place, the idea being to run all the other bots, in alphabetical order, against it to create new league positions.

Problem being that each time I try to run a new sim with a new bot to enter into the league I get the message "Challenger and defender are same bot do you want to continue?" and when I go back to new sim the bot I tried to add has been replaced by two copies of Irish guys bot.
Title: League Problems
Post by: EricL on November 30, 2006, 10:24:00 AM
Part of my problem is that I have never run leagues and there is no documentation as to how to do so so I'm kind of learning how they work  - ui.e. what is suppose to happen - by reverse engineering the code.

Could I ask you to post your leagues file?  I don't think I need the bots.  Thanks.
Title: League Problems
Post by: Jez on November 30, 2006, 01:54:02 PM
The text file? that has one bot in it atm so I don't think that'd do, I'll post the old Fl text file that I had instead. You need the darwinbotsII/leagues folder and in that should be the 'F1leaguetable.text' file and an 'F1league' folder with all bots you want to run in the league.

If you don't have the code for a particular bot for the F1 league just remove its name from the .text file.

It's not the most bug free system ever invented for DB, things like a bak? file in the leagues folder have to be manually deleted if they appear or the leagues won't work for instance.

If you feel it would be easier rewriting the code for leagues instead of reverse engineering it then don't let me stop you

I also don't know what I've done to get Irish guys bot to keep reappearing in every rerun I've tried so far, doesn't matter which league I try!

F1leaguetable.text file;


#F1
1 - Blue on Blue
3 - UNA 3.0
4 - The One
5 - DIN
6 - Destinatus Preliator
7 - Dominator Invincibalis
8 - Carnatus Orbis
9 - Kyushu
10- Darth Shimazu
11- Spanish Conquistador
12- Animal Supremus
13- Callidus
14- DIN 2
15- Duplo Simpleboticus
16- HDV4
17- James 4
18- Devincio Eversor
19- D Scarab 3
20- Devincio Dominator
21- Queen Julianna
22- Scratch DJ
23- Vector 1.0
24- Umbra Draconis
25- Anon Terrifica
26- Hunter 2.13
27- Shimazu
28- EMPTY
29- EMPTY
30- EMPTY
Title: League Problems
Post by: Numsgil on November 30, 2006, 03:39:26 PM
Leagues were really the first major improvement I made in Darwinbots.  About 90% of the functionality is really easy.  The last 10% was made from special cases that quickly got out of control.
Title: League Problems
Post by: Jez on November 30, 2006, 03:49:21 PM
Oh don't get me wrong, it's a great idea and I was really chuffed you implemented it. It's just one of those things, when it goes well it's brilliant and when, like today, the only bot you can get to enter any league is irish guys then it can be a tinsy winsy little bit annoying

It's still miles ahead of the old days when bots had to be competed against each other one at a time to get the league results!!
Title: League Problems
Post by: shvarz on November 30, 2006, 03:57:24 PM
I never ran leagues, as I am more interested in evo-sims, but looking at them right now I am a bit confused as to how one would run them.  It is not clear from UI.

Maybe this sounds stupid and the functionality may already be there, but here are my expectations (as a newbie in this thing) on how leagues should be presented:
To begin with I'd like two options:
1. to enter a bot into an existing league
2. to create my own league

To enter a bot into an existing league I would like to just load up a single file that would setup all the conditions for the league (including the veggie genome).  There also should be some kind of table that would show all the bots in the league (or at least top 10) in the order of their current standing.  The file should probably have the genomes of all these bots as well, because I don't want to go hunting for each genome on the forums and then place it into the appropriate folder.  It would be nice if the program could D/L the most recent league file from the web-site.  Then I would want to load my own bot and just click "Test this bot against this league" button.  The whole thing should be on a single menu and may even be guided in a series of dialog boxes.

To create a new league the experience should be very similar, except that it would ask to add the bots I want to test.  And again this should be on a separate page with all the bots getting listed as I am adding them.  Maybe even have a separate dialog boxes to ask to set up conditions for the league (with an option to "use current").
Title: League Problems
Post by: Jez on November 30, 2006, 05:26:10 PM
It doesn't sound stupid Shvarz, the functionality is there but it's a little obtuse when it comes to usability.

To set the league up, copying that list I posted earlier would set the F1 league table, then entering a new bot into the league is actually quite easy. Needing all the bots that you want to use listed into a seperate darwinbotsII/leagues/F1league folder does slow things down a bit sometimes though. (doesn't need new bots you want to enter just all the old bots in the existing league table AFAIK)

It's much easier to use the existing common league boxes rather than setting up a whole new league.

An improved user interface could make things a lot easier.
Title: League Problems
Post by: EricL on November 30, 2006, 05:53:50 PM
Jez, I've found and fixed your 'challenger and defender are the same' bug.

With few exceptions, my goal for 2.43 is to have leagues working as they were originally designed.  We can make improvements and design changes subsequently.

The exceptions include pulling bot DNA files from the robots directory if not found in the appropriate league folder and some various other fit and finish work.
Title: League Problems
Post by: Jez on November 30, 2006, 06:25:12 PM
Sweet! And so quick!! You deserve your group rating with added chocolate chip cookies!!!

I have no problem with leagues working 'as they were originally designed' everything else is a pipe dream and probably not as important as some of the other changes you have been working on.

It must be difficult sometimes, being bombarded with the numerous requests for improvements and bug fixes, I am always grateful for people, more skilled than I, taking the time to implement them.
Title: League Problems
Post by: Griz on December 12, 2006, 06:45:08 PM
moved from Ravine thread

Jez:
Quote
I haven't tested to see if it will still write league table from scratch, I think you may have to have one bot in table to start but not tested yet. When I've finished updating league and bestiary I should have time to write better guide.

Mention that max rounds for league in suggestions part of forum, it's not a bad idea, I've just got a match up to 488 rounds with almost no difference between bots. Would make it easier for people who want to do shorter league runs. The other way to do it is keep hitting the win button. sleep.gif
I've got leagues working now ...
well ... sort of.

in challenge mode ...
once the matches are finished ...
ie, my challeng bot having defeated the 3 current
league members, it didn't end but started again ...
my challenge bot once again being the challenger ...
even tho ranked #1.
and I'm not sure why when I go to edit species ...
I find my challenger and Blank there.

also ...
doesn't seem the F! conditions resets all parameters ...
I haven't had time to experiment with loading in
different parameters or sims first and seeing for sure
but things like veggie population seems to persist ...
wasn't veg pop supposed to be limited to 40?
well ... I'll have to experiment as I find time.
in the mean time ...
I plan to ensure all the parameters are set to what
they should be for F1 ...
and then save those settings ...
loading them in before running leagues.
that should work, eh?

would rreally like to specify the max number of cycles
that a round should be allowed to go before ending ...
should the bots prove to be too close for one or the
other to completely 'take out' the other ...
or should there remain one persistant bot ...
even when the other may have a population 200 times
greater.
after all, if we are looking to create a multi-organism evosim ...
shouldn't we be looking for bots that have an ability to co-exist
with other bots ...
even to have a simbiotic relationship with others ...
rather than having to eliminate every one to be considered
a viable species?

anyway ...
if it's that close, why not pick the one with the highest
population and move on.
same goes for number of rounds ...
whatever the user specifies should be it ...
rather than auto-extending the match because a
statistically correct decision can't be made.
again , if it's that close, pick one. move on.
and yes, if I am present, I can always use the Instawin ...
but it would be nice to be able to set this thing up ...
and then let it run on it's own without having to constantly
monitor what's happening [or not-happening] ...
and have to then interfere.

will continue to play around ...
and try to make note of any bugs or whatever
I run across.

thanks to eric and to jez as well for giving some
attention to the leagues ...
makes an interesting testing ground ...
and if one uses parameters of their own ...
rather than the F1 settings ...
using gravity or whatever  ...
can test many different skills/abilities of bots.

ta ta
Title: League Problems
Post by: Jez on December 12, 2006, 07:28:45 PM
Quote from: Griz
moved from Ravine thread
I've got leagues working now ...
well ... sort of.

Cool, we're getting somewhere then!

Quote
in challenge mode ...
once the matches are finished ...
ie, my challeng bot having defeated the 3 current
league members, it didn't end but started again ...
my challenge bot once again being the challenger ...
even tho ranked #1.
and I'm not sure why when I go to edit species ...
I find my challenger and Blank there.

There was a bit of a problem with that before, are you using the latest buddy drop 2.42.n? Shouldn't be an issue now but if it still is I'll see if I can repeat problem.

Quote
also ...
doesn't seem the F! conditions resets all parameters ...
I haven't had time to experiment with loading in
different parameters or sims first and seeing for sure
but things like veggie population seems to persist ...
wasn't veg pop supposed to be limited to 40?
well ... I'll have to experiment as I find time.
in the mean time ...
I plan to ensure all the parameters are set to what
they should be for F1 ...
and then save those settings ...
loading them in before running leagues.
that should work, eh?

Eric's done lots of work in the last few buddy drops to get all the F1 settings fixed. Veg population should start at 10 but there has never been a max veg limit AFAIK in leagues if the bots are really bad at eating veg! If you find any settings that aren't defaulted when you tick F1 box then please say. It would be best if all the settings are defaulted when F1 is ticked so people aren't playing the leagues under different settings without realising it.

Quote
would rreally like to specify the max number of cycles
that a round should be allowed to go before ending ...
should the bots prove to be too close for one or the
other to completely 'take out' the other ...
or should there remain one persistant bot ...
even when the other may have a population 200 times
greater.
after all, if we are looking to create a multi-organism evosim ...
shouldn't we be looking for bots that have an ability to co-exist
with other bots ...
even to have a simbiotic relationship with others ...
rather than having to eliminate every one to be considered
a viable species?

Put your ideas in the suggestion part of the forum, I'm sure Eric will consider it. It would certainly be easier for people who want to run quick leagues and aren't interested in waiting all day for the results. The F1, F2 etc leagues were created as combat leagues rather than symbot leagues, the issue of having two competitive bots surviving together for a long period of time, especially with mutations on, is something I know Num's would be interested in but deserves a league of it's own, if anyone ever manages to do it! Same with symbiosis really, especially with mutations on.

Quote
anyway ...
if it's that close, why not pick the one with the highest
population and move on.
same goes for number of rounds ...
whatever the user specifies should be it ...
rather than auto-extending the match because a
statistically correct decision can't be made.
again , if it's that close, pick one. move on.
and yes, if I am present, I can always use the Instawin ...
but it would be nice to be able to set this thing up ...
and then let it run on it's own without having to constantly
monitor what's happening [or not-happening] ...
and have to then interfere.

Option to specify max amount of rounds/cycles is not a bad idea, the idea of using statistical analysis of the results was to provide accurate information. It used to be the best of five rounds and using two very similar bots you would keep getting different results.  

Quote
will continue to play around ...
and try to make note of any bugs or whatever
I run across.

Cool, some of them are old bugs caused by user error that aren't going to get fixed right now, although Eric has already softened many of them, it's good to have another pair of eyes looking out for them though.

Quote
thanks to eric and to jez as well for giving some
attention to the leagues ...
makes an interesting testing ground ...
and if one uses parameters of their own ...
rather than the F1 settings ...
using gravity or whatever  ...
can test many different skills/abilities of bots.

Thanks, I've always loved direct and competitive comparisons of bots, not what Carlo designed DB for I know but nevermind!
Title: League Problems
Post by: EricL on December 12, 2006, 07:40:30 PM
The code will prompt the user if they want it to create a new league file if none exists.

Max veggies is set to 25 in F1 mode.  This means however that it is possible for up to 49 veggies to exist in a sim, depending upon the reproduction code of the veggy used (they all reproduce during the cycle when the population falls to 24).

In any non-F1 sim, if you want to insure the population of veggies never exceeds the limit, use a veggy without a reproduction gene or disable reproduction or disable DNA execution for the veggy used.  Perhaps I should allow this in F1 mode as well?

Loading a sim with certain settings and then running leagues using F1 settings will only work for those settings which are not overridden in F1 mode.  The latest F1 override code is below.  The user-defined sim settings will of course be used in leagues which do not use F1 contest conditions.

I will add max cycles / Max rounds to my list of future work items.  These will be post 2.43 however.

If TmpOpts.F1 = True Then
   
    'Zero out all Costs
    For t = 1 To 70
      TmpOpts.Costs(t) = 0
    Next t
   
    'Now set the ones that matter
    TmpOpts.Costs(SHOTCOST) = 2
    TmpOpts.Costs(COSTSTORE) = 0.04
    TmpOpts.Costs(CONDCOST) = 0.004
    TmpOpts.Costs(MOVECOST) = 0.05
    TmpOpts.Costs(TIECOST) = 2
    TmpOpts.Costs(SHOTCOST) = 2
    TmpOpts.Costs(VENOMCOST) = 1
    TmpOpts.Costs(POISONCOST) = 1
    TmpOpts.Costs(SLIMECOST) = 1
    TmpOpts.Costs(SHELLCOST) = 1
    TmpOpts.Costs(COSTMULTIPLIER) = 1
    TmpOpts.DynamicCosts = False
   
    TmpOpts.CorpseEnabled = False    ' No Corpses
    TmpOpts.DayNight = False         ' Sun never sets
    TmpOpts.FieldWidth = 9237
    TmpOpts.FieldHeight = 6928
    TmpOpts.FieldSize = 1
    TmpOpts.MaxEnergy = 40           ' Veggy nrg per cycle
    TmpOpts.MaxPopulation = 25       ' Veggy max population
    TmpOpts.MinVegs = 10
    TmpOpts.Pondmode = False
    TmpOpts.PhysBrown = 0         ' Animal Motion
    TmpOpts.Toroidal = True
   
    TmpOpts.BadWastelevel = 10000          ' Pretty high Waste Threshold
   
    For t = 0 To TmpOpts.SpeciesNum - 1
      TmpOpts.Specie(t).Fixed = False                 'Nobody is fixed
      TmpOpts.Specie(t).Mutables.Mutations = False    'Nobody can mutate
      TmpOpts.Specie(t).CantSee = False
      TmpOpts.Specie(t).DisableDNA = False
      TmpOpts.Specie(t).CantReproduce = False
      TmpOpts.Specie(t).DisableMovementSysvars = False
    Next t
   
    TmpOpts.Specie(0).Veg = True         'Force the first entry to be a veggy
    TmpOpts.Specie(0).qty = 10           ' Do this so that eye fudge works
   
    TmpOpts.FixedBotRadii = False
    TmpOpts.NoShotDecay = False
    TmpOpts.DisableTies = False
    TmpOpts.RepopAmount = 10
    TmpOpts.RepopCooldown = 1
    TmpOpts.MaxVelocity = 180
    TmpOpts.VegFeedingMethod = 0         ' Straight nrg /cycle feeding method
    TmpOpts.VegFeedingToBody = 0.5       ' 50/50 nrg/body veggy feeding ratio
    TmpOpts.SunUp = False                ' Turn off bringing the sun up due to a threshold
    TmpOpts.SunDown = False              ' Turn off setting the sun due to a threshold
    TmpOpts.CoefficientElasticity = 0    ' Collisions are soft.
    TmpOpts.Ygravity = 0
       
    ' Surface Friction - Metal Option
    TmpOpts.Zgravity = 2
    TmpOpts.CoefficientStatic = 0.6
    TmpOpts.CoefficientKinetic = 0.4
   
    'No Fluid Resistance
    TmpOpts.Viscosity = 0#
    TmpOpts.Density = 0#
   
    'Shot Energy Physics
    TmpOpts.EnergyProp = 1        ' 100% normal shot nrg
    TmpOpts.EnergyExType = True   ' Use Proportional shot nrg exchange method
   
    DispSettings
  End If
Title: League Problems
Post by: Jez on December 12, 2006, 07:56:32 PM
Quote from: EricL
Max veggies is set to 25 in F1 mode.
I didn't know that, I guess I should have noticed though.    
I have no idea why it was done like that.

Quote
In any non-F1 sim, if you want to insure the population of veggies never exceeds the limit, use a veggy without a reproduction gene or disable reproduction or disable DNA execution for the veggy used.  Perhaps I should allow this in F1 mode as well?

The idea of setting the F1 settings as defaults was to make sure everybody always ran the official competitive leagues the same way without needing to know anything about the settings. If you can think of a way to do this then why not. Perhaps a 'change F1 settings' button or something. I thought we could change league settings by unticking the use F1 conditions but perhaps this isn't always clear enough.
Title: League Problems
Post by: EricL on December 12, 2006, 08:20:17 PM
I guess what I was really asking is "Do you (as the main guy taking the lead on leauges at the moment) want me to allow people to be able to disable reproduction or disable DNA execution for the veggy in a league using F1 conditions or do you think this is too large a variable to let people muck with and therefor I should force it one way or the other in F1 mode?"  Right now, the user cannot elect to disable these things.  They are forced enabled.

I might suggest we force it the other way.  That is, that no matter what veggy is used, it's DNA is disabled and it can't reproduce.  This would maximise consistency in that no matter what bot they choose for a veg, it's functionality (or lack there of) would be the same every time I.e. nothing.
Title: League Problems
Post by: Numsgil on December 13, 2006, 12:32:38 AM
Alga minimalis is the standard veg for use in leagues, so I would just load its DNA into the program and have the program automatically use it, regardless of what the user tries to do in a league match.
Title: League Problems
Post by: Jez on December 13, 2006, 06:52:00 AM
Quote from: EricL
"Do you want me to allow people to be able to disable reproduction or disable DNA execution for the veggy in a league using F1 conditions"

The bots already have problems, the league sims seem to be much larger than they used to be, I guess caused by the variable size of the bots. Many of the matches I have run have ended in starvation stalemates where neither entry is able to find food and the match ends when one species starves to death. That was part of the reason Anon T and Animal M got through such a large amount of matches without a clear winner emerging.
Partly because of this and partly because the veg can now overlap to some degree so the proportion of the screen covered by veg has been reduced I would not disable reproduction for the veg unless the number of veg on screen was changed.

Also, unless these bots are no longer present in the leagues, some bots have been designed in the past to communicate with the veg or change its DNA using virus's or shots. I also don't know if disabling the bots DNA would change the way veg is recognised in any way.

Quote
or do you think this is too large a variable to let people muck with and therefor I should force it one way or the other in F1 mode?"
It is certainly to large a variable for many of the current bots in the league to deal with. It would be nice, certainly speeds up the sims which makes things easier for me.  

Quote
I might suggest we force it the other way.
So might I, I'll run some tests using different amounts of disabled veg. If nobody points out bots that would suffer by not being able to communicate with veg or veg ID problems and I conveniently miss them then by changing the number of veg on screen we may overcome most problems disabling veg DNA and reproduction would cause.

EDIT

Well apart from the fact that the prog likes to auto tick 'use F1 conditions' if I try to run leagues under my own conditions, perhaps a 'use own conditons box' is needed; how about doubling the amount of veg on screen while halving the amount of nrg they get per cycle and disabling veg DNA and repro? You're going to be better at number crunching it than me but something to imitate the amount of nrg that is flowing in to an F1 league via veg atm but with more more veg on screen to help stop the starvation wars.
Title: League Problems
Post by: Griz on December 13, 2006, 12:36:36 PM
Quote from: Numsgil
Alga minimalis is the standard veg for use in leagues, so I would just load its DNA into the program and have the program automatically use it, regardless of what the user tries to do in a league match.

oh please don't do that!
I, as user, would like to have options ...
to not be left out of the loop.
keep it as 'open' as possible, please.
Title: League Problems
Post by: EricL on December 13, 2006, 01:00:18 PM
Sorry, you don't get choices when it comes to the built in leagues.  That's the whole point.  You want to use some other veggy, run a custom league.

If people are cool with Num's suggestion, I can do that for the standard leagues.  It still doesn't address the veggy repopulation thing - the actual veggy max population will still vary up to 49 even though it is set at 25 - but if people are used to that, no worries.  What might be even better would be to force the veggy DNA to be blank but enabled.  This would ensure that veggy repopulation (as opposed to veggy reproduction) is the only means of new veggy creation thereby ensuring that the max veggy population never exceeds the set limit but allowing combat bots to use viruses on veggies or whatever.
Title: League Problems
Post by: Griz on December 13, 2006, 01:02:17 PM
Quote from: Jez
I didn't know that, I guess I should have noticed though.    
I have no idea why it was done like that.

The idea of setting the F1 settings as defaults was to make sure everybody
always ran the official competitive leagues the same way without needing to
know anything about the settings.
If you can think of a way to do this then why not.
Perhaps a 'change F1 settings' button or something. I thought we could
change league settings by unticking the use F1 conditions but perhaps
this isn't always clear enough.

yes. unticking F1 does allow that, as far as I can tell.

here's the original F1 Rules
http://www.darwinbots.com/Forum/index.php?showtopic=279 (http://www.darwinbots.com/Forum/index.php?showtopic=279)

    * Field size 9237 X 6928.  
    * Veggie feeding rate = 40 (default set by F1 mode)
    * Maximum veggies = 25 (default set by F1 mode)
    * Respawn veggies = 10 (default set by F1 mode)
    * Kill distant Vaggies = OFF
    * Corpses = OFF
    * Pond mode = OFF
    * Day Night cycles = OFF
    * Bouyancy = OFF
    * Friction = 3
    * Gravity = zero
    * Brownian Motion = zero
    * Mutations = ALL Disabled
    * Internet sharing = OFF

this was all for 2.36 ...
so not sure if friction and other parameters
still result in similar motion.
I also question if there are also new parameters
that have been introduced in 2.4.X that may not
be addressed by ticking F1.
for example ... selecting under Veggie Energy:
veggie per cycle or kilobody point ...
or percentage of VegBody/NRG distribution ...
ect.


as Jez suggests ...
we should all be on the same page when running
an 'Official' F1 league, or F2, MB or whatever.

yet ... it would be good, imo ...
to still allow the User as much flexibility as possible
so one can still experiment setting up one's own
league challenges.

Jez ...
do you have the most current F1 league bot list ...
the F1league.txt and league table somewhere?
are all those bot's DNA files available somewhere
as well?
how about a saved F1 league.set?
in which the parameters are indeed all F1?

tanks
Title: League Problems
Post by: Jez on December 13, 2006, 02:47:40 PM
Quote from: Griz
Jez ...
do you have the most current F1 league bot list ...
the F1league.txt and league table somewhere?
are all those bot's DNA files available somewhere
as well?
how about a saved F1 league.set?
in which the parameters are indeed all F1?

tanks
Griz,
All the bots shown in the league tables as they are at the minute are available in the bestiary now unless it say's otherwise on the league tables, plus they are all now linked.
I haven't sorted download files for the bots in the bestiary yet but you can copy any you are missing for the moment and I will start on that soon.
The league lists can be copied straight into league.txt now, but only if the bots you have on file are using the same names, I've just changed all the names so that's a bit unlikely atm.   Plus you'd need to delete all the missing bots from the league.txt file, don't think it matters if you don't re-number them, should be done automatically.

If there is someway for me to put a league bots file for people to download to get all the league bots with 'new' names it shouldn't take me long to upload, I've just got to make sure all the dates are correct first.

If I can upload a bots file then I'll also do that for the bestiary when I've finished updating the names and adding the other hundred or so missing bots that I know about and haven't added yet.

The league's are only as current as their last update, I can't run the whole lot all at once due to stack overflow problem but will get it done and updated fairly soon... (am redoing from scratch but if it keeps causing a problem I might just add latest entries to get them updated for now)
Title: League Problems
Post by: Jez on December 13, 2006, 02:58:50 PM
Quote from: Griz
would rreally like to specify the max number of cycles
that a round should be allowed to go before ending ...

Perhaps a max round thing whereby if there isn't a statistical winner by point x the challenger is given second place to the defender, would let me avoid, hopefully, stack overflow problem but don't know if that is easy fix.
Title: League Problems
Post by: Jez on December 13, 2006, 05:22:32 PM
And perhaps amalgamating all the league folders into one folder rather than seperate folders for each league, not sure if people would see this as a problem but it would save me doing seperate downloadable bot files for each league.

Eric, believe me fella, not trying to keep you from floating your boat and fishing for more of those fishy things I saw a picture of you capturing nor keeping you from your book, this is an idea for the future if not an easy fix!
Title: League Problems
Post by: Griz on December 13, 2006, 08:21:04 PM
Quote from: EricL
Sorry, you don't get choices when it comes to the built in leagues.  That's the whole point.  You want to use some other veggy, run a custom league.

relax man!
just trying to air concerns and toss out suggestions
to at least be taken into consideration before changes
that might inadvertantly cramp someone else's ideas/style
are carved into stone, eh?
there might be things you haven't thought of yet or
taken into consideration that might be impacted.
you're the programmer ...
I'm just a user ...
and as such I'd like to retain as many options as
possible because I can't go in and tweak them.
not yet anyway.
 
otay then ...
as long as we're talking only built-in leagues ...
and we could still use most of the F1 settings in our custom
leagues without it forcing one particular veggie on us.
as it stands now, one can click on the F1 settings to reset
the parameters and then unclick and modify the one's we
wish to alter.
[actually, not sure one has to even unclick it to do that]
so as long as I'm still able alter things ... no problem.

perhaps that's what you mean ...
and we are actually taking about the same thing.
hard to tell sometimes.
Title: League Problems
Post by: Griz on December 13, 2006, 08:44:08 PM
Quote from: Jez
The league's are only as current as their last update, I can't run the whole lot all at once due to stack overflow problem but will get it done and updated fairly soon... (am redoing from scratch but if it keeps causing a problem I might just add latest entries to get them updated for now)

that's cool, man ...
no rush ...
I've got lots of other stuff to do before I have
time to sit down and get serious about leagues.

Quote
Perhaps a max round thing whereby if there isn't a statistical winner by point x the challenger is given second place to the defender, would let me avoid, hopefully, stack overflow problem but don't know if that is easy fix.

yeah ... that's what I was thinking as well ...
the champ retains his title unless clearly defeated.
but it should be a user option and user set ...
so we don't step on the toes of the purists who want to calculate
their stats to the nth degree.
even more useful ...
a user defined max #of cycles per round for the same reason ...
some of these contests go on forever ...
ending only when one bot starves to death more slowly than the other.
so ... at the set $ of cycles ... the bot with the highest pop gets the round.
also ...
in a custom league not using wrap-around ...
or pond mode ...
I've had a bot end up 'outside' the borders ...
where it seems to not be affected by anything ...
and therefore never dies.
that was the biggest problem I came up against before in
non-league sims ... where I couldn't get a restart as
the 'last bot' was 'outside the jurisdiction'.
it's been a long time since I've run DB ...
so perhaps bots can no longer move beyond the borders ...
seems like eric did some changes that included that.

anyway ...
I'm for giving the end user as many options as possible ...
if you haven't fingered that out by now.

I'm not sure how many people actually use DB ...
seems almost more of a programmer's thing ...
appealing to those who have the skill to go in and
make it do what they want.
I can understand that draw ...
just don't have the expertise to do much yet.
that is one reason I keep coming back around
to see how things are progressing ...
inspires me to keep plugging away.
Title: League Problems
Post by: Jez on December 14, 2006, 06:15:28 AM
F1 league now has a downloadable folder with all current F1 bots and F1leaguetable.txt.  
Title: League Problems
Post by: Jez on December 14, 2006, 09:07:03 AM
F2 league now has a downloadable folder with all current F2 bots and F2leaguetable.txt.  

One dot two dashes and a space were missing from the F1 download. Until I have run a full test on the F1 and F2 downloads please don't expect them to be perfect.
Title: League Problems
Post by: Light on December 14, 2006, 06:16:15 PM
Just tried running an f1 match with the latest version between excalibur and una, after the first round in which excalibur wins, it doesn't restart for round 2 and keeps adding round wins to the victor as there are no opponent bots left.
Title: League Problems
Post by: Jez on December 15, 2006, 12:17:01 AM
UNA 3.0? Are you sure it's not just exploding so quick you don't get to see it? I don't know how fast your computer runs but UNA 3.0 isn't a bot that is capable of surviving on its own for more than a few seconds on my pc!

If that's not the problem then I'll find a copy of excalibur and try it myself.
Title: League Problems
Post by: Jez on December 15, 2006, 01:38:57 AM
Did just manage to reproduce this, noticed the game freeze when two species died out at same time again.
Made a bot:

cond
start
*.maxvel .up store
stop

and gave it two different names for f1 condition match which proved that the game could still freeze when both died at same time, added Alga-minimalis to f1 condition match, same thing happened, removed one of the test bots and the instant the test bot died the wins for Alga-minimalis quickly went to 5 without it seeming to run anymore sims.

The test bot should have lasted long enough for me to see any new sims so you do seem to have spotted a problem, not noticed this before in matches, think it has something to do with one of the bots not being able to survive on its own.

EDIT

The F1 and F2 downloads should now not cause problems when you run the leagues
Title: League Problems
Post by: Griz on December 15, 2006, 01:41:51 PM
Quote from: Jez
F1 league now has a downloadable folder with all current F1 bots and F1leaguetable.txt.  

excellent!
hmmmmm ... ???  
and just where might they be?
I've looked everywhere I can think of ...
and a Search didn't turn up anything either.
Title: League Problems
Post by: Light on December 15, 2006, 01:47:09 PM
look in leagues sub forum, under F1 & F2, they are at the bottom of the league rankings
Title: League Problems
Post by: Jez on December 15, 2006, 07:05:12 PM
And if you have any problems with the league.txt or a copy/paste of the league rankings not matching the bots in the league folder please tell me which one it didn't recognise.  
Title: League Problems
Post by: Griz on December 15, 2006, 08:04:40 PM
Quote from: Jez
And if you have any problems with the league.txt or a copy/paste of the league rankings not matching the bots in the league folder please tell me which one it didn't recognise.  

~~~
ok. got 'em.
will see if I can run a few tests this weak end ...
maybe if I can limit the #of rounds, I can see if
everything loads and happens as it should.

one question tho ...
why are these F2 bots in the F1 League Table?

4 - Destinatus Preliator (F2)(PY)-16.09.04
13- Duplo Simpleboticus (F2)(Jez&PY)-01.03.04
24- Vector 1.0 (1G)(F2)(Abyaly)-04.05.06
26- Umbra Draconis (F2)(Shen)-04.08.04
28- Hunter 2.13 (F2)(PY)-pre 30.07.04
30- I. Venia (F2)(Jeremiah)-11.08.03
Title: League Problems
Post by: Light on December 15, 2006, 09:19:42 PM
Because any bot can enter the F1 league just like

1 - UNA 3.0 (1G)(Elite)-29.04.06
2 - The One (1G)(Shen)-23.04.05
9 - Spanish_Conquistador (6GVir)(Numsgil)-12.05.05

are all in the SB league
Title: League Problems
Post by: Griz on December 15, 2006, 11:04:30 PM
Quote from: Light
Because any bot can enter the F1 league just like

1 - UNA 3.0 (1G)(Elite)-29.04.06
2 - The One (1G)(Shen)-23.04.05
9 - Spanish_Conquistador (6GVir)(Numsgil)-12.05.05

are all in the SB league

I thought there were rules/restrictions in F!?
and that's why there are also F2 and SB leagues?
why are the bots designated F1 and F2 and SB?
why have different leagues then?
Title: League Problems
Post by: Griz on December 15, 2006, 11:06:55 PM
had an error

Version 2.42.9o ...
F1 league using Jez's F1 bots and Leaguetable.

all seemed to be going well ...
working out the order from #1 on down.
got to #11 Callidus, who defeated UNA 3.0 in the #10 slot ...
and as the next match began ...
Callidus now at #10 challenging #9 ...
I got this error:
'Error. Control array element '10' doesn't exist.

error sim zip attached.
Title: League Problems
Post by: Numsgil on December 15, 2006, 11:34:08 PM
F1 is a free for all league, while F2, SB, and MB are specific leagues that are supposed to be softer or easier to enter.
Title: League Problems
Post by: Griz on December 15, 2006, 11:36:21 PM
I see the new 'Round thing' Eric put in.
ok. this may indeed prove be useful ...
but it's not what I  had in mind in bringing
up the issue of being able to determine the
number of rounds in a match. [see below.]
even with this ... I have some questions about
how we might wish to choose the 'winner'.
it shouldn't necessarily be the defender ...
but the bot who has won the most rounds
by that target max round.
if you've played with leagues a bit ...
and run some bots which are not too dissimilar ...
you know that a bot can end up winning 7 out of
10 rounds and still not be considered the winner
because of the program's insistence on it somehow
not being  a statistically valid decision.
now merely awarding such a contest to the
defender, when the challenger has won 7 of
10 rounds doesn't seem like a good idea to me.
a 'tie' should go to the defender ...
but some of these matches go on and on when
there really is a clear winner because of this
statistical thing that's in there.  
this is overkill gentlemen.
imo. ime.
this isn't rocket science ...
we're  simply trying to rank a few bots, eh?
let's not make it more difficult/complex than
it needs to be.
just declare the bot with the most rounds won
to be the winner and move on.
if it's too close to tell ... then guess what? ...
it doesn't really matter, eh?
pick one and move on.

now ...
onto the questions I have been trying to raise ...
the need/desire for options I have been trying to
bring up ... the input I want to have as User.
which is:
being able to input how many rounds I, as User,
want the match to go before declaring a winner.  
as it stands, the min is 5, regardless of what one
enters.  [the original '# of rounds' box.
the 'need' to have it statistically viable overrides
any number the User enters ...
needlessly extending the match. imo. ime.
that's not what I need, or want, to have.
if I, as User, for whatever reason ...
want it to end at 3 rounds,  or whatever number,
then it should end at that number of rounds ...
the winner being the bot with the most rounds won
up to that point.
and yes ... I know enough to pick an odd number.

same with the # of cycles for a round to go before
declaring a winner.  when the # of cycles are exceeded ...
the bot with the highest population wins the round.

all I'm asking for is for the User to have these options.
and I do have my reasons for doing so ...
having to do with developing bots whose aim is
not simply to annihilate every other living thing ...
winner take all ...
but to be able to co-exist with other bots ...
to work towards developing  a multibot evolving
ecosystem ...
'cause in the real world, evolution isn't about the
individual, but a 'system' of interconnected and
interdependent entities.
but that is another discussion, eh?
so I DO have my reasons for wanting to keep
the program as versatile as possible ...
and being able to do more with leagues than
simulate WWF.
 
now if this can be implemented as an 'option' ...
one that can be enabled/disabled ...
then nothing would keep anyone from not using it ...
or inputting a number for cycles or rounds that is
high enough to never be reached ...
so it still runs/does the same as before.
just give the end User as many options as possible ...
please.

ok ...
that's my two cents.
more like a buck ninety eight I suppose.
thank you for your indulgence.
Title: League Problems
Post by: Griz on December 15, 2006, 11:44:38 PM
Quote from: Numsgil
F1 is a free for all league, while F2, SB, and MB are specific leagues that are supposed to be softer or easier to enter.

ah.
ok.

Wondering if we shouldn't have a F1 TripleAAA league ...
to keep the number of bots at a reasonable number
of 20 or so per league ... or even with 30 ...
we could then keep some of those older pretty
good bots alive in the next level down.
one's new bot would have to work its way up ...
starting in AA, moving up to AAA ...
and then if good enough ...
into the Majors, the Big Leagues ... the F!.
Title: League Problems
Post by: Numsgil on December 15, 2006, 11:52:14 PM
That's how I'd personally prefer it myself.  But Jez has taken control of the leagues and I'll defer to however he wants the leagues set up.  The logistics aren't all that different.
Title: League Problems
Post by: Jez on December 16, 2006, 07:15:51 AM
I am listening to all of this but a little potted history of the leagues for Griz first;

Originally it was one league, then it was split into F1 and F2 because of (at the time, tie bots being fixed by PY so they worked and ) the clear superiority of tie bots. Because tie bots were so much better than other bots any other bot was allowed to challenge them.

Then the SB league was added because once upon a time they weren't as well written as they often are today but also there were lots of SB's coming out because it was a relatively new way of writing bots and so a bit of interest in doing so.

Then MB league was added, they were never really competitive enought to compete in any of the other leagues so it was used as a showcase for some of the best MB designs.

Right from the start it was decided (by me and PY I admit) that the leagues were going to be challenge leagues and any bot that couldn't beat the bot above it wouldn't get to move up a position.

Up until now, even if a bot didn't work anymore it could still remain in the position it had gained in a previous version of the leagues. Meaning non functioning bots fill some of the spaces in the leagues.
I'm intending to rerun the leagues when I have finished doing the MB and SB league downloadable files, breaking this long held tradition, so that some of the deadwood is removed from the leagues, unless there are objections.

Certainly I'm no longer going to drastically alter the leagues by making them into just one league or anything anymore and any major changes will only be made after the existing leagues are sorted out to my satisfaction.

****

Having a triple A league and so on down would, even if it is only 20 bots per league, in essence be the same as having one league the length of all those leagues added together. I would be more interested in having some extra seperate leagues, a Tie league and a Virus league were bots are more seperated in to specialist categories with the F1 still being the free for all pinnacle that all bots can enter. Perhaps even an F2minor league if you feel that league is getting to full/competitive.
Leagues aren't only there for the competition they are, after all, also there to display some of the best bots in each branch of bot design.

I am always interested to hear other peoples opinions on the leagues because it helps me shape my ideas, I have been trying to defer to the majority of opinion but there hasn't been much of it!  

More to follow...
Title: League Problems
Post by: Jez on December 16, 2006, 07:54:25 AM
Why use statistical analysis to decide match winners?
Why not use a set amount of rounds per match or max amount of cycles or allow a bot that ties with the bot above it to move up and challenge the next bot?

It used to be the best of five matches once upon a time. PY would run the match once and the results determined whether the bot won or lost. This can make it all a bit of a lottery though, two fairly equal bots (defender A and challenger  could win or lose their place in the league from a few minutes of intense combat. It might be that bot B could win 3 of every 5 matches in the long run but that also means bot A has a chance of winning the first 4 rounds in a match.
What the statistical analysis is there for is removing this element of chance. If you had entered bot B and the last 5 (max 5 round) matches you had run had all shown your bot winning 3-2 or 4-1 wouldn't you be a bit upset if that once only 'official' league match showed bot A beating bot B 3-2 and therefore retaining its position in the league? (Specially when you know that your bot, bot B would have gone on after beating bot A to take no1 position in the league...)
(It has happened to me before, that's why you can blame me for that feature being there.   )

Having a max amount of cycles is slightly different; there are some bots, particuarly the "grow big reproduce slow" bots, that need a long period to actually beat a "quick repro win by numbers" bot. Atrium Venator is a good example of this, albeit it doesn't reproduce, but if it did then it would probably need a long time to win a match. Instead of having a max amount of cycles I have asked for an upkeep cost per turn and a max waste to be added to the league settings. This will hopefully do the same sort of thing but in a less obvious and less arbitary way.

The reason bots that draw with another bot don't get to advance in the league is that they are challenge leagues, a new bot has the advantage, it can study its opponent and exploit any weakness, plus you can always ask on the forum for tips on how to beat it.
Anyway, when the 'official' league match is run it will go on ad infinitum until somebody wins.

Overall I think what would suit you is a way to run the leagues a bit quicker, a 'non official' league testing method that means you don't have to leave your pc running for hours to get a result.
The 'official' league, when it is run, is designed to be as accurate as it can be in obtainig a result that is fair to all types of bots.

And more...
Title: League Problems
Post by: Jez on December 16, 2006, 08:12:05 AM
I think the crash may have been caused by Spanish Conquistador having a _ between the names in the list you copied. I have changed that now but would suggest you download the league.txt in future rather than copy/paste list. I can check league.txt but because of all the links in the list you copied (I can't just paste league.txt into it) there may be one or two minor errors when you just copy it.

You can test this by just trying to enter Spanish Conquistador from your F1 league folder into the F1 league, if it instantly tells you you have a problem than that is what it was caused by.

Sorry about that.  
Title: League Problems
Post by: Griz on December 16, 2006, 01:59:00 PM
Quote from: Jez
Having a triple A league and so on down would, even if it is only 20 bots per league, in essence be the same as having one league the length of all those leagues added together.

well ... yes, once the league has been 'set up' ...
a challenger would then have to work its way up ...
a simple bubble sort, eh?

the problem with having a large league ...
comes to light when one then, for whatever reason ...
needs to rerun the league, or, as you are doing ...
weed out the dead wood.
then it becomes a marathon thing which can take
days to complete ... esp if some of those bots are
close and the program keeps extending the rounds.

so yes ...
I see what you are saying ...
just looking for a way to more quickly setup and
establish the initial pecking order, if you will.

btw ... as listed in F1 ...
some of those in the top positions most certainly
are displaced by some lower in the ranks ...
Animal Supremous, or whatever it's named ...
worked it's way all the way to the top ...
and of course UMA 3.0 doesn't stay at #2 long.
so in order for me to run leagues ...
I'm finding I can't just do it as a challenge ...
but have to rerun it all ...
and so far I haven't been able to ...
having a crash at #10.

in the meantime, I may just split them up into
F1, F1A, F1B ... 10 per league ...
to establish some realistic pecking order ...
and then combine them farther down the road.
Title: League Problems
Post by: Griz on December 16, 2006, 02:29:33 PM
Quote from: Jez

Overall I think what would suit you is a way to run the leagues a bit quicker, a 'non official' league testing method that means you don't have to leave your pc running for hours to get a result.
The 'official' league, when it is run, is designed to be as accurate as it can be in obtainig a result that is fair to all types of bots.

And more...

of course ...
I'm not suggesting anything be abandoned
for the Official Leagues!!!!!!!!!
all I want is, as the User ...
to have these options when I want to run
something other than the official league.
that is all I'm asking.

please, please, please ...
allow the User as many options as possible ...
so some of us can explore some ideas other
than developing a bot that isn't considered a
winner unless it wipes out all other bots as
quickly as possible.
I have not been ...
am not now ...
and will never be ...
interested in that approach to an evosim ...
and in fact, think continuing to move in that
direction is a big mistake.
imo, ime ...
DB shouldn't be about individual bots ...
but about developing a system made up of
an environment  populated with bots which
are geared to [and which evolve towards] ...
being able to survive and coexist with other bots ...
to evolve complex relationships with one another
and their environment ...
allowing them to form that web of life that
gets it's strength from diversity and the
interdependence/interconnectedness of the
beings which inhabit it.
you know ... kinda like it is in the real world.
that's what I'm interested in exploring and
emulating.

and so ...
I would like, and deeply appreciate ...
as a User ... having as many options as possible
to run unofficial leagues and DB, towards that end.
I don't think that is asking too much ...
and I wouldn't think implimenting these options
in leagues, which still allows folks to run things 'Officially' ...
as being that difficult.

if I had access to the VB code with the latest changes ...
I might even be able to discover how to alter it to meet
my needs, if no one else is interested in having these
options.

maybe with the official 2.43 ...
I will have that option.
Title: League Problems
Post by: Jez on December 16, 2006, 09:00:13 PM
Quote from: Griz
btw ... as listed in F1 ...
some of those in the top positions most certainly
are displaced by some lower in the ranks ...
Animal Supremous, or whatever it's named ...
worked it's way all the way to the top ...
and of course UMA 3.0 doesn't stay at #2 long.
so in order for me to run leagues ...
I'm finding I can't just do it as a challenge ...
but have to rerun it all ...
and so far I haven't been able to ...
having a crash at #10.

in the meantime, I may just split them up into
F1, F1A, F1B ... 10 per league ...
to establish some realistic pecking order ...
and then combine them farther down the road.

Try deleting the _ in the .txt name of number 10, should work then, I will get rid of the deadwood soon, sorry it's taking so long, didn't realise how much work I had voluntered for! After MB and SB leagues have their own downloads I will do.

Try putting a post in the suggestions part of forum, Eric is more likely to see then, a concise list of ideas would make his job a little easier, I fear, we are, distracting him from his book! Any help we can give, including, as you suggested, being patient and waiting for DB 2.43, would do him a little bit of the honour he deserves, for helping the DB program oh so much.

Unfortunately I can't program, if I could, then I would. I hope you have access to the source code sometime soon; I think with so many recent fixes that it is, a work in progress.

DB was never, never meant to be, a program for bots to battle to the death. More a sort of evolution, that I met and took a tangent too, of bots that just survived to be the best.

(No sarcasm intended; I really should go to bed now!   )
Title: League Problems
Post by: Jez on December 17, 2006, 08:54:32 AM
SB & MB league downloads now available, the next updates will be the leagues being rerun to get rid of 'deadwood'. Following that new entries will be added.
Title: League Problems
Post by: Griz on December 17, 2006, 01:17:38 PM
Quote from: Jez
Try deleting the _ in the .txt name of number 10, should work then,

????  I don't see any '_' in the .txt or the robot names.
so ... don't know where you found that.


I do have a question about how the 'challenge'
thing works.
looks like it's a 'bubble sort' thing ...
as long as the new challenger wins ...
he moves up in the rankings ...
the challenge match ending when he loses ...
the bot above him not continuing the challenge
as the bot above him has already defeated him.
I think this is how it goes, but haven't run enough
of them to know for sure.

now here's a problem with that, imo.
not quite  the ole 'prisoner's dilemma' ...
but something sorta, kinda, similar.
consider:
A can defeat B, B can defeat C, C can defeat A.
now say the ranking is A, B with C the challenger.
C never gets a chance to challenge A ...
whom he could defeat ...
because it can't get by B.
see what I mean?
a new challenger who may be able to kick butt
on the leaders, may get stopped early on by a
bot that can take him, and perhaps only him ...
but not the bots above.
same can occur during the league setup run ...
where not everyone gets to fight everyone else.

so thinking of alternate ways to initially set up a league ...
or ensure bots get to challenge as many other bots as
possible.  just an idea I'm tossing out, ok?
 
I don't know how many 'matches' must be run to re-run
a league of 30 bots to establish the initial 'pecking order' ...
as I say ... I crashed after the prog ran thru the first 10 ...
but even then, Animal Supremus was making a bid and
moving up thru the rankings.
so not sure just who all ends up fighting who.
#1 and #2 square off, if #1 wins then #2 and #3?
if #3 wins then he takes on #1 I think ...
I'm not sure just how it goes ...
but seems it will vary depending on just who beats who.
so running thru all 30 ... quite a number of matches.

so just throwing this out here:
ideally one would have say 32 bots ...
pair them up randomly into 16 pairs/matches ...
the 8 winners being paired up ...
the 4 winners from that paired up ...
the 2 finalists going head to head for the championship.
total number of matches = 16+8+4+2+1 = 31.
this is low enough so that the league standings could
be rerun more often ...
and the initial pairing up being random ...
always the chance that a bot or new challenger could
end up one of the top dogs ...
the ranking not written in stone ...
but subject to change over time.
the bots and their stats, ie W-L could be printed
and documented, kept on file ...
and could be viewed just like one can go back
and see baseball standings from the past ...
up to the present.
just something to think about, eh?

another idea was to keep the present way leagues work ...
but experiment with dividing the participants into groups of 4 ...
8 leagues for 32 bots ...
running each league with only 4 bots would take a
maximum of 6 matches ...
and perhaps less depending on whether or not
some bot gets crushed or not.
then taking the 2 top ranked bots from each ...
in this case, 16 bots, and running them in four
more 4 bot leagues ...
and the four top placers from them ...
in a final 4 bot league.
so that's 15 playoffs, ...
8 initial, 4 quarter finals, 2 playoffs, 1 final ...
90 matches total [maximum ... if it takes 6]
to set up the league, the initial pecking order.
I don't know how that stacks up against  the # of
matches required to sort them all out as leagues
run now.
an advantage here ...
would be that all bots get at least a shot at getting
a shot to go up against the top dogs.

just food for thought ...
trying to think outside the box that already exists.
that's what I like doing.

well, I'll play with some of these ideas ...
and let Jez rerun the leagues as they now stand ...
as I don't have the computer power or time to
do an extended thing like that.
Title: League Problems
Post by: Jez on December 17, 2006, 01:44:18 PM
Quote from: Griz
????  I don't see any '_' in the .txt or the robot names.
so ... don't know where you found that.
Oh, ok, that was what made the prog crash for me when I reran what you had done is all.

You have the right idea about how the leagues work atm, if bot C can't beat bot B it doesn't get to fight bot A.

It could be considered a problem, after all DB has long tried to play paper/scissors/stone with the bots tactics.

I think, if every bot was in the right place, only 5 rounds per match, that's 29 matches so 195 rounds minimum to rerun a whole 30 bot league, (or 200 min if entering a new bot that gets to top). Hopefully if I leave the pc on tonight and it doesn't run into any bugs then it might be nearly finished tomorrow.  
I fear instead though, two bots will get tied or I'll get two species that don't work properly and just sit there not dying. I'll see tomorrow.

Part of the reason for leagues being challenges is that the newer bot is considered to have the advantage, you can't just walk around an old bot you can't beat and win by beating the bot above it. But you may have noticed some other league options that haven't been implemented yet in the 'restart and league' tab. We will hopefully get them one day.
Title: League Problems
Post by: Numsgil on December 17, 2006, 05:44:58 PM
The code is set up to potentially allow other sorts of leagues, such as a free for all where all the bots get dumped in a single simulation and are graded based on how long they last.

But the leagues as an "official" institution are very concretely set up.  Newer bots that reach the top need to be able to defeat all other bots.  This is more interesting than it sounds, because when you're designing a bot you need to figure out several strategies to get past various problem bots.
Title: League Problems
Post by: Jez on December 17, 2006, 05:52:05 PM
Post moved Here (http://www.darwinbots.com/Forum/index.php?act=ST&f=46&t=1805&st=0)
Title: League Problems
Post by: Griz on December 18, 2006, 10:11:48 AM
ah ...
I see now what you are talking about with the '_' thang, Jez ...
all my old Robot files use the underline rather than spaces ...
while you seem to have eliminated that in the bot's names
for those in the Leagues.

so ... is that the plan then ...
to no longer use '_' in bot names, but spaces?
as long as we are consistant, eh?

are there no problems that crop up having spaces in the names ...
say like a long name file such as
Darth Shimazu (F1)(Henk)-pre 30.07.04.txt  
being listed as Darth Sh~.04.txt or some such thing?

just wondering how this all came about.
Title: League Problems
Post by: Jez on December 18, 2006, 10:54:25 AM
That is indeed my plan Griz,

Call me a bot registrar or just anal.

It is a sort of template I developed for the bots; I have done something like this before, when I rescued all the posted bots from the first three? forums. Unfortunately, because I took a year+ break things didn't stay the same.

The idea was to give as much info in the bots name as was needed, more now than was then, sort of like the latin names for plants etc. A universally agreed classification.

Originally it was just the date that the bot was posted that was added to the name. But with me back now and having been given mod privelege's I hope to include author and class as well to all bots in the bestiary.

I know you have noticed the extra information this gives because you were questioning the classification for bots in the F1 league, something that wasn't immediately obvious originally. I hope you find the new naming system at least cursory helpful.

Part of the new naming system has meant the underlines _ have become spaces. This caused some (temporary) problems in the F1 and F2 leagues but hopefully I was a little more exact with the other leagues!

The downloads I provided for the leagues should work ok, if not then when I can re-run the leagues without bugs then the new downloads should work perfectly.

Eventually there will be downloads for each section of the bestiary as well so yoiu can easily obtain all the renamed bots.
Title: League Problems
Post by: Griz on December 18, 2006, 01:08:31 PM
Quote
I know you have noticed the extra information this gives because you were questioning the classification for bots in the F1 league, something that wasn't immediately obvious originally. I hope you find the new naming system at least cursory helpful.
yes ... all for as much info as possible.
of course there was nothing to keep folks from
making this info part of the bot text right up top ...
commenting out the data ...
which some people did, along with a short description
of some special features the bot might possess.
this is still a good idea, imo.

Quote
Part of the new naming system has meant the underlines _ have become spaces. This caused some (temporary) problems in the F1 and F2 leagues but hopefully I was a little more exact with the other leagues!

The downloads I provided for the leagues should work ok, if not then when I can re-run the leagues without bugs then the new downloads should work perfectly.
so far, so good ... or at least I haven't noticed any problems with the names.

Quote
Eventually there will be downloads for each section of the bestiary as well so yoiu can easily obtain all the renamed bots.
cool. all of this will simplify things for the new user.
many of the long time users take much for granted
as they were 'in on it' ... aware of the changes as
they were developed and implemented.
but this 'tribal knowledge' ...
is unknown to new folks just coming in ...
so I think we do need to make an effort to keep the
learning curve 'less steep' wherever we can ...
so peeps don't become discouraged just trying to
get started.
keeping DB adaptable/vialble makes it a complicated program.

so ... much thanks for doing so with leagues.

and to eric and all who spend so much time trying
to make this thing work.
it's got to be a work of love, eh?
Title: League Problems
Post by: Griz on December 29, 2006, 11:09:05 AM
Version 2.42.9r ...
compiled version.
F1 Leagues

attempted to rerun the league ...
things went along well for quite awhile until it came to
the contest between Virulus Discretus and Virulus Spinnens ...
which apparently both died out in the same cycle ...
DB ending up in some loop it couldn't get out of ...
leaving me no choice but to Ctrl/Alt/Delete and stop the task.
so, no error message or anything.

also noted that in earier matches, clicking the InstaWin ...
even when taking great care to click as fast as possible ...
the Wins would often be upgraded by 2, not just 1.

fyi ...
the standings up to that point were as follows:

1 - Callidus (F1Vir)(Shen)-05.04.05
2 - The One (1G)(Shen)-23.04.05
3 - DIN (F1)(Endy(Mod))-21.02.05
4 - Dominator Invincibalis(DOM INV) (F1)(PY)-pre 18.06.04
5 - Destinatus Preliator (F2)(PY)-16.09.04
6 - Darth Shimazu (F1)(Henk)-pre 30.07.04
7 - Spanish Conquistador (6GVir)(Numsgil)-12.05.05
8 - Animal Supremus (F1Vir)(Elite(Mod))-22.01.06
9 - DIN2 (F1)(Endy(Mod))-02.04.05
10- James 4 (F1)(Jez)-27.07.04
11- Duplo Simpleboticus (F2)(Jez&PY)-01.03.04
12 - Carnatus Orbis (F1)(PY)-20.09.04
13- HDV4 (F1)(PY)-pre 30.07.04
14 - Kyushu (F1)(Henk)-08.05.06
15 - UNA 3.0 (1G)(Elite)-29.04.06
16- Virulus Discretus (F1)(Flowin)-02.03.04
17- Virulus Spinnens (F1)(Flowin)-01.03.04

I've saved these, seeing as DB doesn't seem to save/update
the leaguefile unless the entire league gets run ...
so I have to start over every time.
I don't know that anyone's made it thru the whole thing yet
to get a final ranking.

so for now I'm making three leagues ...
the top 10 here in F1A ...
#11-#20 and #21-#30 in two more ...
in an effort to at least get thru them and see if everything is
saved correctly when a league completes.
then I'll have to run some challenges ...
#21 challenging the 20-11 league ...
then #11 challenging the top 10 ...
to see if any of them are able to work their way up.

that's the plan for now.
Title: League Problems
Post by: Jez on December 29, 2006, 05:07:50 PM
Quote from: Griz
Version 2.42.9r ...
compiled version.
F1 Leagues

attempted to rerun the league ...
things went along well for quite awhile until it came to
the contest between Virulus Discretus and Virulus Spinnens ...
which apparently both died out in the same cycle ...
DB ending up in some loop it couldn't get out of ...
leaving me no choice but to Ctrl/Alt/Delete and stop the task.
so, no error message or anything.

Interesting, I thought that bug had been caught now and hammered out of existance.

Quote
also noted that in earier matches, clicking the InstaWin ...
even when taking great care to click as fast as possible ...
the Wins would often be upgraded by 2, not just 1.

Also noticed that, I'm gonna have to make these bugs into seperate posts tomorrow, not fair to make Eric read through all the posts to find multiple bugs from one thread.
Quote
fyi ...
the standings up to that point were as follows:

1 - Callidus (F1Vir)(Shen)-05.04.05
2 - The One (1G)(Shen)-23.04.05
3 - DIN (F1)(Endy(Mod))-21.02.05
4 - Dominator Invincibalis(DOM INV) (F1)(PY)-pre 18.06.04
5 - Destinatus Preliator (F2)(PY)-16.09.04
6 - Darth Shimazu (F1)(Henk)-pre 30.07.04
7 - Spanish Conquistador (6GVir)(Numsgil)-12.05.05
8 - Animal Supremus (F1Vir)(Elite(Mod))-22.01.06
9 - DIN2 (F1)(Endy(Mod))-02.04.05
10- James 4 (F1)(Jez)-27.07.04
11- Duplo Simpleboticus (F2)(Jez&PY)-01.03.04
12 - Carnatus Orbis (F1)(PY)-20.09.04
13- HDV4 (F1)(PY)-pre 30.07.04
14 - Kyushu (F1)(Henk)-08.05.06
15 - UNA 3.0 (1G)(Elite)-29.04.06
16- Virulus Discretus (F1)(Flowin)-02.03.04
17- Virulus Spinnens (F1)(Flowin)-01.03.04

Different from what I remember last time I tried a rerun, thought Spanish C came top and Animal S came about third. Only got to 14th match (best yet of three (no win button) reruns) before that nasty overflow bug killed the sim.

Quote
I've saved these, seeing as DB doesn't seem to save/update
the leaguefile unless the entire league gets run ...
so I have to start over every time.
I don't know that anyone's made it thru the whole thing yet
to get a final ranking.

so for now I'm making three leagues ...
the top 10 here in F1A ...
#11-#20 and #21-#30 in two more ...
in an effort to at least get thru them and see if everything is
saved correctly when a league completes.
then I'll have to run some challenges ...
#21 challenging the 20-11 league ...
then #11 challenging the top 10 ...
to see if any of them are able to work their way up.

that's the plan for now.

I did wonder how easy it would be change program to save sim after each re-entry had been run, allowing for interrupted reruns of the league, a while ago. Good idea to slim the league length down in the meantime, maybe starting the league with just one bot and re-entering each bot by turn would be better. Might identify if it is a bot causing the trouble.
Every time, using VB debugger, I have used the win button to speed things up I have hit the same bug, wonder why it doesn't seem to show up when not using the debugger.  
Title: League Problems
Post by: Griz on December 30, 2006, 05:21:10 PM
Quote from: Jez
I did wonder how easy it would be change program to save sim after each re-entry had been run, allowing for interrupted reruns of the league, a while ago. Good idea to slim the league length down in the meantime, maybe starting the league with just one bot and re-entering each bot by turn would be better. Might identify if it is a bot causing the trouble.
yeah ... thought about that too ...
using the 'challenger' mode but then that likely uses different code.
I wonder how my results could be so different ... your Spanish C and Animal S
ending up ranked so much higher?
what that tells me is ... this thing isn't as consistent as we would like to think it is.
I mean, as long as it takes to run a whole league ...
who would ever do it again to see if the results were the same?

in fact ... I will do the short list of the top 10 at least twice ...
just to see if the results are consistent.
if not ... well ... then I guess we will be rethinking a few things.

btw ... do you have a list of what you think the ranking is from 1-30?
I must say I wondered why UNA 3.0 was listed first ...
unless as a 'rabbit' to force new matches all the way down the list.

Quote
Every time, using VB debugger, I have used the win button to speed things up I have hit the same bug, wonder why it doesn't seem to show up when not using the debugger.  
Hmmmmm ....
I have been running compiled ... hoping to get an error.sim file that I can
then load in and run in the VB version ... but had the prog 'hang' on me instead.
also ... I was very careful to strike that button as quickly as I could to NOT get the bug ...
so perhaps I'll redo it and see if I can get it to happen compiled ...
or with the VB to see if I can see where the error comes in.

see ... here is the problem with this forum, imo ...
if you already reported that ... I haven't a clue as where to find it.

well ... will experiment.

where do you want the league bug reports then ... if not here in league problems?
can we do a League Bugs thread under Bugs?

ta ta
Title: League Problems
Post by: Jez on December 31, 2006, 06:42:58 AM
Quote from: Griz
I wonder how my results could be so different ... your Spanish C and Animal S
ending up ranked so much higher?
what that tells me is ... this thing isn't as consistent as we would like to think it is...
who would ever do it again to see if the results were the same?
Well there is always the chance that you used the win button and changed a match result, other than that, seeing as I've had what looked like identical results (didn't record so not 100% sure) four times now (never complete lists though) I would guess that it is differences in the way the leagues are set up on each of our pc's.
Quote
btw ... do you have a list of what you think the ranking is from 1-30?
I must say I wondered why UNA 3.0 was listed first ...
unless as a 'rabbit' to force new matches all the way down the list.
I have a record of the last list I obtained before the sim crashed. It looks like it will only be accurate for the first 6 or 7 bots and even then... you'll see why when it's posted.   Una gained its top position in league in a previous version of DB, it either used a dead exploit or suffered from a subsequent DB change.
Quote
also ... I was very careful to strike that button as quickly as I could to NOT get the bug ...
so perhaps I'll redo it and see if I can get it to happen compiled ...
I've used the win button on just one match before and then had that error pop up a couple of matches later.

Quote
see ... here is the problem with this forum, imo ...
if you already reported that ... I haven't a clue as where to find it.
I lost internet connection yesterday so not had a chance to do a little clean up of the thread, it's been my messy reporting of bugs, why Eric asks us to make a new thread for each bug. Seeing as it was me that posted it originally I would, no doubt, have made it just as hard to find on the wiki.   Think of it as a filing/poster problem not a forum problem...

Quote
where do you want the league bug reports then ... if not here in league problems?
All bug reports to go in their own threads in the bug part of forum. I set this thread up to filter out user problems with the leagues etc.
Title: League Problems
Post by: Griz on December 31, 2006, 01:18:20 PM
Quote
Quote
I wonder how my results could be so different ... your Spanish C and Animal S
ending up ranked so much higher?
what that tells me is ... this thing isn't as consistent as we would like to think it is...
who would ever do it again to see if the results were the same?

Well there is always the chance that you used the win button and changed a match result, other than that, seeing as I've had what looked like identical results (didn't record so not 100% sure) four times now (never complete lists though) I would guess that it is differences in the way the leagues are set up on each of our pc's.
???
how can they be set up different?  
I didn't use the win button to change any results ...
unless the outcome was an obvious rout ...
I let those close contenders do their thing for however long it took.

Darth Shimazu defeated Spanish C, and Spanish C defeated Animal S.
how can that be different on my PC than on yours?
certainly something as simple as using a different 'seed' shouldn't
affect the results ...
after all we have that 'statistically accurate' function working in there, eh?
now ...
if by different league setup you mean F1 might not override all parameters ...
I can see that.  and if that is the case, then how are anyone's results ever
going to be the same as somebody else's?

would be interesting to see if other people get different results ...
'cause if so, how are we going to be able to call 'Offical League Standings'
official?

I'll run these top 10 again a few times and see where Animal and Spanish C end up.
maybe others can do the same?
shouldn't take too long with just 10 bots.

1 - Callidus (F1Vir)(Shen)-05.04.05
2 - The One (1G)(Shen)-23.04.05
3 - DIN (F1)(Endy(Mod))-21.02.05
4 - Dominator Invincibalis(DOM INV) (F1)(PY)-pre 18.06.04
5 - Destinatus Preliator (F2)(PY)-16.09.04
6 - Darth Shimazu (F1)(Henk)-pre 30.07.04
7 - Spanish Conquistador (6GVir)(Numsgil)-12.05.05
8 - Animal Supremus (F1Vir)(Elite(Mod))-22.01.06
9 - DIN2 (F1)(Endy(Mod))-02.04.05
10- James 4 (F1)(Jez)-27.07.04
Title: League Problems
Post by: Jez on December 31, 2006, 04:02:26 PM
Quote from: Griz
how can they be set up different?  
I didn't use the win button to change any results ...
unless the outcome was an obvious rout ...
I let those close contenders do their thing for however long it took.
I have seen rounds go down to just one bot left v lots of others, on both sides, several times in just one round before, I don't know how  you define 'an obvious rout'. To me it is when one bot doesn't work.  

Quote
Darth Shimazu defeated Spanish C, and Spanish C defeated Animal S.
how can that be different on my PC than on yours?
certainly something as simple as using a different 'seed' shouldn't
affect the results ...
after all we have that 'statistically accurate' function working in there, eh?
now ...
if by different league setup you mean F1 might not override all parameters ...
I can see that.  and if that is the case, then how are anyone's results ever
going to be the same as somebody else's?
I am worried that we have missed a default setting. If we can work out what it is it can be defaulted. (you and me getting different results to each other but same results on our own reruns suggests this may be the problem)
Quote
I'll run these top 10 again a few times and see where Animal and Spanish C end up.
maybe others can do the same?
shouldn't take too long with just 10 bots.

I would suggest 4 or 5 bots without the win button and IME that can still take over 24hrs. (Hopefully not with the bots we choose though!)

Calllidus v The One v Spanish C v Animal S v DIN?

I'll set it up as soon as I see a reply from you on this, if you want to do the full ten I will as well but can't promise it will get to end, plus it will take me a couple of days probably to get each final result.
Title: League Problems
Post by: Griz on December 31, 2006, 05:56:04 PM
Quote
I have seen rounds go down to just one bot left v lots of others, on both sides, several times in just one round before, I don't know how you define 'an obvious rout'. To me it is when one bot doesn't work. biggrin.gif
no ... I'm talking about 200 to 3 or 4, 3 rounds in a row ...
so I had no problem giving them the next two rounds.
I did say 'obvious' didn't I?
anyway ... I didn't do that with Spainish C. Animal S or Darth Shimazu  ...
they worked it out on their own.

Quote
I would suggest 4 or 5 bots without the win button and IME that can still take over 24hrs. (Hopefully not with the bots we choose though!)
Calllidus v The One v Spanish C v Animal S v DIN?
well ... would like to have Darth Shimazu in there ... seeing as he prevailed over both Spanish and Animal.
so I'd do six ... the above including Darth.
now the question is ... how to initially rank them so that they all get a shot?
as I said, sometimes A can beat B, B prevail over C and C kick A's butt ...
esp when they are evenly matched, such as these top six may be.
so if Callidus never gets to go up against Spanish C ... ??? who can say?

what I'd really like to do is use F1 conditions ...
but run contests between each pair of the 6 ...
just to see who comes up with the best W-L record
having taken everybody on ...
seeing they don't all get to do that in leagues.
maybe something I'll do later ...
if we come up with standing discrepancies.
 
anyway ... what else can we do but experiment?
 
I still don't like leaving out Dominator Invincibalis and Destinatus Preliator ...
as they finished ahead of Darth, Spanish C and Animal S for me but ...
hey ... got to start somewhere.

make the starting list like you want it to be ...
the 5 or 6 ...
and let me know what it is ...
so we can all start the same place.

you know ... if we do end up with different results ...
then setting up and then saving a sim file to share
so we know all the variables/parameters are the same ...
might not be a bad idea.
we might need to have an Official League start.sim.
 
otay den ...
Title: League Problems
Post by: Jez on December 31, 2006, 07:10:29 PM
I'm talking about bots coming back from the position of 100+ to 1, chance is a fickle mistress. 12 hr rounds with both bots reaching this position are not unknown.  

The reason I hadn't included some of PY's bots; Dominator and Destinatus are they are a couple of bots that I have noticed having such extended rounds. Darth is also one I think I remember for this which is why I didn't include.

A round robin then? Happy to do that as we can compare the results in stages, I suggest:The first one of us to complete the first round (Callidus v the rest) posts results in a new post called Round Robin in a bit of the forum that they see fit. (inc rules and reason just to define post if that is alright with you) (Using DB .9r)

The official league.sim you suggest should be set by default by using the F1 conditions. If we find it is not then that can be changed. This is why I asked for all the league conditions to be set automatically. I have no doubt Eric would be happy to add any conditions that are missing.

Seeing as the fireworks have just gone off signaling midnight. Happy New Year!!  

Edit

I will start this now, np if you wish to change as I can restart. RR's may cause time problems running overnight but I think this is a good approach.

Edit

Callidus won 5/0 v allcomers, I'll try it under VB conditions (tomorrow) to make sure before making RR post. Thanks for questioning this Griz, the only other reason I can think of is earlier versions of DB or that I was hallucinating...
(never trust the hippy/punk/person outside your social construct!)
Title: League Problems
Post by: Griz on January 01, 2007, 02:00:34 AM
Quote
I'm talking about bots coming back from the position of 100+ to 1, chance is a fickle mistress. 12 hr rounds with both bots reaching this position are not unknown. dry.gif
I understand that ...
what I am saying is ... when it's that damn close ...
it's a waste of time to go on and on and on and then declare that one
of them is superior to the other.
flip a coin.
there are too many other variables in DB that affect the outcome
when bots are that close.
going to all the trouble of using this 'statistically correct' method
in these cases is overkill.
this ain't rocket science ...
we're just playing some bots against one another ...
with variable errors far in excess of what these statistical calculations
are trying to see.
it's like having a bathroom scale read your weight to 8 decimal places!
who cares if I weigh 223.57834598?
hey! I lost 0.00000253 lbs this week!!!!

in the below ...
I did indeed 'interfere' in two cases ...
as it's pretty much a toss up ...
and if it goes to 40 rounds ... I'm going to declare a winner ...
because it really doesn't matter.

ok ... did some playing around with leagues ...
this before I came here and read your post ...
but I did in fact use those 6 bots.
check it out.

ver 2.42.9r compiled
F1 League conditions

6 bots ...
initial ranking:

btw ...
this intial positioning can make a big difference as well
for the ranking ... as some bots won't ever take on others.
more on that below ... with the round robin I already did.

ok ... started like so:
1 - Callidus  
2 - The One  
3 - DIN  
4 - Darth Shimazu  
5 - Spanish Conquistador  
6 - Animal Supremus  

results:
1 - Callidus
2 - Spanish Conquistador
3 - Animal Supremus  
4 - The One  
5 - DIN
6 - Darth Shimazu  

two contests were fairly long ...
Darth vs Spanish C went 17 to 22 ...
39 rounds before I gave it to Spanish C

The One vs Spanish C went  19 to 19 ...
before I gave it to Spanish C ...
just so he would have a chance to go up against Callidus ...
Callidus already having defeated The One.
well ... Callidus kicked Spanish C's butt easily.

btw ... I later ran longer matches between these opponents ...
and determined that it's pretty much a 50/50 ...
and which bot wins is pretty random ...
just depends on who starts where and whatever seed is used.
I don't think running them thru the league one time can determine
which should be ranked above which ...
"on any given sunday", eh?

now ...
there were a number of bots that didn't get a chance to
go up against one another so I switched League off ...
and still using the F1 conditions, not altering anything ...
ran those contests using just two bots in the normal way ...
first ensuring the mutations were disabled.

results over all, from the league ...
and with the additional contests I staged ...
each bot going up against every other bot:

Callidus  ......................... 5 wins, 0 losses
Spanish Conquistador ...... 4 wins, 1 loss
The One ......................... 3 winds, 2 losses
Animal Supremus ............ 2 wins, 3 losses  
DIN ................................ 1 win, 4 losses
Darth Shimazu ...............  0 wins, 5 losses.

notice, The One and Animal Supremus swapped #3 and #4 spots ...
even tho Animal beat The One, one on one.
anyway ... this is easy to do if you just want to check out how two
bots go up against one another without having to run the whole
league [good luck with that anyway]

now I noticed in General Settings ...
the Veggie population controls are set to:
Max Pop - 25, Threshold - 10, Veggies/Pop Event - 10, Cooldown -1

now this population control thing has always bugged me ...
the veggie pop here able to up to 50 if conditions are right.
what I eventually came up with was the following settings ...
Max Pop - 25, Threshold - 24, Veggies/Pop Event - 1, Cooldown -1
which, perhaps after an intitial surge early on
seems to keep the population much closer to the target 25 ...
ie ... under the user's control.
I'm not certain ... but it may also affect how tightly the veggies
'group' together. you'll have to experiment and see for yourself ...
but if so, this also may effect some bots more than others ...
depending upon their 'search patterns'.

hey!
it's 2007 and I didn't even know it!
well ... not on the west coast yet ...
it's all make believe anyway you know ...
this arbitrary numbering thing and pretending
there are time zones and all.
I mean ...
one could say it's not really a new year until feb 18th ...
and then it's the year 4704.  lol
it's all relative, dudes!
have a happy one ...
wherever, whenever.
Title: League Problems
Post by: Griz on January 01, 2007, 02:16:37 AM
Quote
The official league.sim you suggest should be set by default by using the F1 conditions. If we find it is not then that can be changed. This is why I asked for all the league conditions to be set automatically. I have no doubt Eric would be happy to add any conditions that are missing.
yes ...
I'm not certain all parameters everywhere are set ...
certainly the league ones ...
but many new things have been added in lots of places ...
so who knows for sure?
it's going to take going thru all the pages, checking everything after loading some sim ...
then clicking on F1 conditions in League and going back to see if there are some which
are not addressed.
eric or someone probably has a list of all variables/parameters, right?

I mean ...
even such a thing as using a different seed could affect the outcome
of a match between two closely matched bots, eh?
maybe we need to use a specific seed when running an 'Official' League?

ok ...
talk to you all next year
Title: League Problems
Post by: Jez on January 01, 2007, 01:39:26 PM
Quote from: Griz
going to all the trouble of using this 'statistically correct' method
in these cases is overkill.
this ain't rocket science ...
I learnt about this statistical analysis in biology, it's a means to see whether the results mean somethng or you could just have got the same results by tossing a coin, it's also using the lower end, or less exact method of doing it.

Quote
btw ... I later ran longer matches between these opponents ...
and determined that it's pretty much a 50/50 ...
and which bot wins is pretty random ...
Which two bots? If you are talking Callidus and Spanish C then so far the score is 20/0 to Callidus in the matches I have run. If you are talking about these two and the difference is you used an F1 rerun instead of just F1 conditions (as I am using) or something that would be interesting.

As you have found a couple of bots changing position in a F1 rerun v F1 conditions only; this makes me more curious but as you used the win button I am not sure.

Veggie pop is an old thing, the only change I made to that was increasing the overall number of veg on screen slightly to make up for the bots size difference compared to the old sim.
I did suggest something similar to your idea to PY once, the discussion resulted in no change, I guess it's a sort of flux within the system.
Seeing as the league is essentially traditional, though I have made changes, you would need to come up with reasons why it is an advantage to have less change with the veg population.
I'll try to remember to try out your suggested settings at some point in the future to see what difference it makes though. If it results in the veg tending towards tighter grouping then that is not a good thing.

Quote
hey!
it's 2007 and I didn't even know it!
well ... not on the west coast yet ...
Already 7hrs behind my celebration.
I guess this arbitary definintion is useful for synchronicity. Would be very confusing if everyone set the clocks based on the time the sun rose outside their house! lol
Quote
Eric or someone probably has a list of all variables/parameters, right?
I've also seen them all listed in the source code. Was a whole part just dedicated to them.
Title: League Problems
Post by: Griz on January 01, 2007, 03:10:18 PM
Quote
Which two bots? If you are talking Callidus and Spanish C then so far the score is 20/0 to Callidus in the matches I have run. If you are talking about these two and the difference is you used an F1 rerun instead of just F1 conditions (as I am using) or something that would be interesting.
no ... Darth and Spanish C ... virtually tied after 39 matches ...
and then again, The One and Spanish C ... again, 19 to 19.
statistical analysis can also be used to determine that there is little, if any difference ...
and as far as I'm concerned, that's what it shows me with ties after 39 rounds.
at some point one must realize that and call it a 'push'. flip a coin.
again, there are other random factors in DB that have larger effects on the outcome
in these cases where bots are that evenly matched ...
such as a different seed resulting in different initial bot/veggie positions ...
resulting in very different outcomes when the 'skill' or 'abilities' of two bots is so close.
thus my bathroom scale analogy ...
one doesn't need to read to the 5th decimal point when there are forces
present which are 5 orders of magnitude higher.
I too am familiar with statistical analysis ... and it's proper 'application' in my field,
which is the calibration of nuclear instrumentation and control systems ...
including radioactivity detection and measuring ...
radioactive decay being pretty much all probability.
so we are required to run and document all kinds of chi-square
calculations and all that to meet required confidence levels.
and I maintain that here ...
after 39 matches ... if a winner can't be determined ...
then it doesn't really matter.
flip a coin and move on.

Quote
As you have found a couple of bots changing position in a F1 rerun v F1 conditions only; this makes me more curious but as you used the win button I am not sure.
no ... you misunderstand ...
the position change is due only to the fact that in league play
not all bots get to go up against all other bots.
so the league ranking ended up being slightly different ...
than the ranking resulting from a round-robin where every
bot did indeed mix it up with every other.
and all I did there was add to the league results ...
running additional matches between those bots who
hadn't had a chance to go up against one another
during the running of the league.
I brought this up to illustrate that difference ...
what can happen when A beats B, B beats C, C beats A ...
yet C never gets to meet A in a league situation.
I don't like that.
btw ... any two bots I have run in such a contest outside
of leagues so far ... has resulted in the same bot dominating
as did, in league play. most matches are not really
all that close, and the winner pretty clear.
I just wanted to geve all of them the same chance
against all other bots.

ran another 6 in F1 League mode ...
[this would be #7 - #12 overall]
results:
1 - DIN2  
2 - Dominator Invincibalis
3 - Destinatus Preliator  
4 - James 4  
5 - Carnatus Orbis  
6 - Duplo Simpleboticus  

didn't do a 'round robin' with these ...
not really much to contest/question in this ranking.

this doesn't take too long ...
so will probably do the rest in groups of 6 as well ...
then figure a way to allow the 'winner' of each of
these to challenge the bots in the league 'above' ...
and see what kind of final ranking that comes up with.

and I do also go back and rerun any matches
between two opponents if/when I have used the Win
thang to speed things up ...
and let them go many rounds ...
just to see if they are indeed evenly matched.
some pairs of bots are just going to be even ...
A winning on tuesdays, B on cloudy days.

btw ...
haven't encountered any bugs or crashes ...
and the Win button seemed to increment by one ...
at least when clicking on the defender.
seems I saw it go up by two when clicking on
the challenger ... but I can't recall for sure.
will try to set up to test that from VB so I can
take a look at the mouseclick loop.

but then ...
I have 14 inches of snow to shovel from the
driveway so I can get out ...
and it's a long one so .... ???

onward
Title: League Problems
Post by: Griz on January 01, 2007, 05:00:52 PM
League hangup

ver 2.42.9r compiled

running F1 league ...
doing these six for the #13 - #18 slots:

1 - Carnatus Orbis (F1)(PY)-20.09.04
2 - Kyushu (F1)(Henk)-08.05.06
3 - HDV4 (F1)(PY)-pre 30.07.04
4 - Virulus Discretus (F1)(Flowin)-02.03.04
5 - Virulus Spinnens (F1)(Flowin)-01.03.04
6 - Vex Pefidiosos (F1)(Jez)-30.12.04

got down to:
Virulus Discretus vs  Virulus Spinnens

they are evenly matched, neither able to stay alive long ...
and in round 25 they both died out the same time ...
[had these two do the same thing previously]
which then leaves DB stuck in a loop that I haven't
been able to find a way out of.
I did save the sim ...
but upon reloading, that league data doesn't seem
to survive.

I'm going to leave these two bots out of the leaguetable for now.
I expect they would end up at the bottom anyway ...
as they seem to barely be able to survive at all.

but ... that problem still exists if both happen to die out
in the same cycle or whatever.
maybe some sort 'escape' button to abort a given
match should we get 'hung up'.

I'll see if I can get them to do it running thru VB ...
maybe then I'll be able to pause and get into
debugging mode.
or not.
Title: League Problems
Post by: Jez on January 01, 2007, 05:54:49 PM
My results for the second round of the RR, (the One v all) so far stands at:

The One v:
Callidus (lost 0/5)
Spanish C 5 crashes (error76)/ 3 non existant bot results/ 2 freezes
Animal S
Din
Darth

This is under VB debugger using F1 conditions.

Will try again tomorrow.
Title: League Problems
Post by: EricL on January 01, 2007, 07:07:36 PM
I think I've found the crash.  Will post a buddy drop later tonight.
Title: League Problems
Post by: Light on January 02, 2007, 09:08:28 AM
Surely if it is a statistical draw after x rounds it should count as a loss to the challenger and if they are entered in their current order in the leagues you should get the same result? or am I missing something?
Title: League Problems
Post by: Griz on January 02, 2007, 10:43:09 AM
Quote from: Light
Surely if it is a statistical draw after x rounds it should count as a loss to the challenger and if they are entered in their current order in the leagues you should get the same result? or am I missing something?
yes.  

there is no 'statistical draw' as it stands now ...
if there is no 'statistical decision' ... it goes on and on and on and on ...
never ending.
that's one point ... how long do we let it do so before understanding
that a statistical draw means a draw?  so pick one already!
however ...
it should go to the bot which has won the most rounds up to then ...
because with 'statistical draw' set up as it is now ...
a challenger can have won many more rounds than the defender ...
and although it might be fine to give the match to the defender
IF it has already been established as being ranked higher ...
we are talking here about establishing the ranking in the first place ...
the 'intial' ranking ... establishing a league ranking ...
and in that case, when no 'order' has yet been imposed ...
there is no 'challenger/defender' per say ...
that has yet to be determined ...
so it should go to the bot having the most rounds won at that
time, in that particular case ... because that's all we have to
work with.
and I am telling you, as it is set up now ...
there are factors other than bot skill in play here ...
which have more of an effect in determining who 'ranks higher'.

let me give you an example of how the present 'initial ranking' ...
ie ... the establishing/rerunning of a league ...  
leaves something to be desired ...
that the results will vary greatly depending upon
the initial positions/ranking.
[if you don't believe it ... run the following league ...
then randomly alter the initial order and run it again.]

I just finished running a 'mini-league' of six bots ...
starting positions [everybody has to be somewhere]
1 - Carnatus Orbis  
2 - Kyushu
3 - HDV4  
4 - Vex Pefidiosos  
5 - Devincio Eversor  
6 - D Scarab 3  

the League results, final ranking:

1 - Carnatus Orbis  
2 - Vex Pefidiosos  
3 - HDV4  
4 - Devincio Eversor  
5 - Kyushu  
6 - D Scarab 3  

now ... as it turned out, D.Scarab only had one match ...
which it lost to Kyushu [for some strange reason] ...
so it never had a chance to go up against anyone else.
also ... Carnatus Orbis only had 3 matches ...
and none here ever went up against all other 5.
there were actually a total of only 9 matches played ...
out of the 15 possible combinations/iterations.
[1-2, 2-3, 1-3, 2-4, 3-4, 1-4, 2-5, 3-5, 2-6 using the initial order]

so in addition to keeping track of who beat who in
league play, I also ran those other contests ...
[1-5, 1-6, 3-6, 4-5, 4-6, 5-6] note 6's (D Scarab) 4 missed matches
with a surprising result ...
ole D Scarab 3 kicked butt not only on Devincia Eversor,
HDV4, and Vex but  Carnatus Orbis as well!!!
yet here he is ranked 6th, 5 behind the 'champ' ...
whom he is able to defeat.

in a one-on-one test of all 15 combinations of two bots ...
here is my final tally and what the ranking should be, imo:

1 - D Scarab 3 ........... W-4  L-1
2 - Carnatus Orbis ..... W-4  L-1  
3 - Vex Pefidiosos ...... W-3  L-2  
4 - HDV4 ................... W-2  L-3
5 - Devincio Eversor ... W-1  L-4  
6 - Kyushu ................. W-1  L-4  

D.Scarab over C.Orbis 'cause in their
match he prevailed.
quite a difference, eh?

so ... just trying to point out ...
to bring to attention ...
when establishing the initial league ranking ...
ie ... running a league the first time ...  
the results are going to be highly dependent upon
the starting positions of the bots ...
as this will determine who gets to go up against who ...
and I'm sorry, imo, ime ...
that does not result in a ranking that can be considered
to be 'statistically correct'.
it might look/sound good' ...
but me thinks we are fooling ourselves.

again, please note:
I am talking about the initial running of a league to
determine that initial ranking.
do we really want the chance placement/positioning of
bots to be what determines the ranking?
I think not.
we want the bots to be able to be what determines
who ends up where.
do we not?
Title: League Problems
Post by: Jez on January 02, 2007, 11:17:04 AM
Quote from: EricL
I think I've found the crash.  Will post a buddy drop later tonight.

Thanks Eric, I look forward to trying it, if you put the source code up as well I shall use it with the debugger.

Quote
how long do we let it do so before understanding
that a statistical draw means a draw? so pick one already!
Using the 'defender wins if contest exceeds' option is akin to picking one. Afterall, whatever the score at that point, even if it looks like one bot is winning hands down, the result is no more or less than a draw.
Also don't forget that when I run the league there will be no max limit of rounds. In all the reruns I have tried so far I have only see them break the 400 round barrier in two matches so far.

The reason the defender wins; consider the way the leagues have been run up till now, it has always been the newer bot as the challenger, the newer bot is considered to have the advantage afterall.

Considering the point that the initial order of the bots makes a difference to the final result, which I am not questioning, would you feel happier if the initial order of the bots was set by their age? Oldest first - newest last? Shouldn't be to hard to set up. I would be happier doing it like that than changing it so that it was most rounds won at a certain point and it would be easier to do than a Round Robin for the whole league.
Title: League Problems
Post by: Griz on January 02, 2007, 11:38:31 AM
Quote from: Jez
My results for the second round of the RR, (the One v all) so far stands at:

The One v:
Callidus (lost 0/5)
???
I assume you mean The One lost 5 times?
that's what I found.

Quote
Spanish C 5 crashes (error76)/ 3 non existant bot results/ 2 freezes
hmmmmm ....
is this the crash Eric said he thinks he has sus'd out?
I haven't seen that one in a long time ...
except when it's my own fault, failure to get the path right.

I had The One and Spanish C locked in battle ...
19 rounds to 19 rounds  ...
the 39th round going on and on and on ...
so called them a Draw
 
so I have
The One vs  
Won 7W-1L ..........  Din
Won 5W-0L ..........  Darth
Draw 19W-19L ...... Spanish C
Lost 0W-5L against Callidus
Lost 1W-7L ..........  Animal S

have additional results for all 6 ....
but have to compile them.
will put them up later today if I get a chance.
also the next 12 will follow before long.
Title: League Problems
Post by: Griz on January 02, 2007, 01:42:19 PM
F1 League Experimentation
the 'first' 6 bots

Callidus vs
Won .. 5-0 ... Animal S
Won .. 5-0 ... Spanish C
Won .. 5-0 ... The One
Won .. 5-0 ... DIN
Won .. 5-0 ... Darth  

Spanish C vs
Won .. 5-0 ....  Animal S
Won .. 5-0  .... DIN
Draw 19-19 ... The One
Draw 19-19 ... Darth
Lost ... 0-5 ..... Callidus

Animal S vs
Won .. 7-1 ... The One
Won .. 5-0 ... Din
Won .. 5-0 ... Darth
Lost ... 0-5 ... Callidus
Lost ... 0-5 ... Spanish C
 
The One vs  
Won .. 7-1 ..... Din
Won .. 5-0 ..... Darth
Draw 19-19 ... Spanish C
Lost ... 0-5 .... Callidus
Lost ... 1-7 .... Animal S

DIN vs
Won .. 5-0 ... Darth
Lost ... 0-5 ... Callidus
Lost ... 0-5 ... Animal S
Lost ... 0-5 ... Spanish C
Lost ... 1-7 ... The One

Darth vs
Draw 19-19 .. Spanish C
Lost ... 0-5 ... Callidus
Lost ... 0-5 ... Animal S
Lost ... 0-5 ... The One
Lost ... 0-5 ... Din

basing a 'draw' on 38 rounds ...
just because that's where these two
ended up ... with no end in sight ...
the point at which, imo:
'statistically no winner' = a draw.

and so my ranking based on W-L-D ...
W = 1, L = -1,  D = 0.5
Bot .............. W ... L ... D
1 - Callidus ....... 5 ... 0 ... 0 ....... 5 pts  
2 - Spanish C ... 2 ... 1 ... 2 ....... 2 pts
3 - Animal S ...... 3 ... 2 ... 0 ....... 1 pt  
4 - The One ...... 2 ... 2 ... 1 .......  0.5 pt
5 - DIN .............. 1 ... 4 ... 0 ....... -3 pt  
6 - Darth ........... 0 ... 4 ... 1 ....... -3.5 pt  

which in this case happened to end up
the same as what came out of Leagues:
 
1 - Callidus  
2 - Spanish Conquistador  
3 - Animal Supremus  
4 - The One  
5 - DIN  
6 - Darth Shimazu  

but this isn't always the case.
I found some ranking 'descrepencies' while
running the next two batches of 6 ...
which I'm still compiling.
the League 'ranking' imo, not taking into
account the influence that the initial starting
order imposes upon the resultant ranking.
[see details of that in the post I made earier
today ... #71 in this thread ....
just 2 or 3 up from here.]

I'm just sayin' ....
if we are going for statistiacal validity ...
let's not miss the forest for the trees, eh?
 
just raising some issues that stick out
from my perspective.
Title: League Problems
Post by: Griz on January 02, 2007, 02:39:17 PM
Quote from: Jez
The reason the defender wins; consider the way the leagues have been run up till now, it has always been the newer bot as the challenger, the newer bot is considered to have the advantage afterall.

Considering the point that the initial order of the bots makes a difference to the final result, which I am not questioning, would you feel happier if the initial order of the bots was set by their age? Oldest first - newest last? Shouldn't be to hard to set up. I would be happier doing it like that than changing it so that it was most rounds won at a certain point and it would be easier to do than a Round Robin for the whole league.

you are still missing the point, Jez ...
regardless of how you set them up ...
unless every bot gets a shot at every other bot ...
the 'ranking' isn't going to be accurate or fair to
all bots, and the ranking is NOT going to correct.
once again ...
I am talking about setting up the initial ranking in a league ...
when no order has previously been determined.
that's a little different than having some new
bot challenge an established league/ranking ...
but even then, there are some problems ...
as I found with with D Scarab 3.
Kyushu stopped him ...
but that was the only match Kyushu won ...
losing to everyone else above him ...
but still effectively barring D Scarab 3 from taking
them on and defeating every one of them!
for all I know, D Scarab may rise even further.
this is where the 'ranking' as is,  falls down.
sorry ... that's a fact jack ...
and I'm sorry if it makes it more difficult ...
but if we are so concerned with being statistically correct ...
then let's actually do it correctly.  
otherwise we are just pretending to have significant findings ...
remaining caught up in the details of justifying extending the
match to run endless numbers of rounds ...
when there are glaring errors in the set up that render all
of those precise calculations moot.
like ignoring there is an elephant in the room.

well ... imo ...
ideally ...
Leagues should be separated from the main DB ...
and then set up so each bot goes up against every
other to establish the initial 'pecking order'.
how a new bot would then challenge ...
is something I haven't thought much about yet ...
but I would still lean away from the present way ...
so one bot that might have his number ...
wouldn't prevent him from challenging others.

smaller leagues would be a big help, eh?
then giving the top ranked bot a shot at the
next level up.

btw ...
running 6 bots in leagues ...
5 would be the minimum # of matches ...
[each defeating the bot ranked directly below]
to rank them ...
and I think it could go as high as 15.
I'm finding it taking 9, 10, 11 so far.

now with 6 bots, the max # of matches needed
in order for each to go against each is 15.
so if we are already running around 10 matches
on average ... and running just 1/3 more would
eliminate all the inaccuracies ...
might it not be worth the time to do so?
if we really are interested in being accurate?

I don't know that this ratio holds for larger leagues ...
will have to think on it and experiment a bit.
not sure just how Eric has the sequence set up ...
seems like he mentioned tweaking it a bit
recently, but I haven't found just where yet.

just how difficult would it be to set it up so
each bot played each, Eric?
I would think it might be less complicated than
it currently is.

well ...
whatever.
Title: League Problems
Post by: Jez on January 02, 2007, 07:08:45 PM
Griz, I have already changed the league far more than I intended at the start. In the interests of continuity and out of respect for all the good work PY has done in the past, it will remain a challenge league while I am running it.
I have already trod on the toes of tradition by starting a rerun, the rules that the league was set up under were that it was a challenge match and bug exploiting bots, once they had gained their position, were there until a newer bot beat all the other bots underneath them.
The very first league was just a list on the forum and was run in just the same way. I can’t/won’t change that of my own accord.
Out of respect for all the hard work Eric puts in to chasing bugs down as quickly as possible and the fact that some of the older bots will survive in the league longer if these ‘cheat’ bots are removed (plus previous complaints about non-working bots being in the league at all) I thought a quick shake up of the current standings would be a acceptable though.

The current order of things in the leagues has been determined by over 4+ years of matches.
Re-entering the bots in the current shake up by order of age would mean D. Scarab (2004) would be entered before Kyushu (2006)

A Round Robin style league, when the ability is within the program would make for an interesting and alternative style of league, until then, without the win button, or even with the win button, it would be a manually intensive, long drawn out way to decide the results.
I know you have done a lot of work along these lines, if you want to work out what the results would be I would be happy to create a Round Robin league so you can post the results. It is no good just setting up the initial rankings this way if you don’t allow new entries the same chance after all.

I do understand the point you are making but in the context of challenge matches the results will be both accurate and fair.
Title: League Problems
Post by: Numsgil on January 02, 2007, 08:25:57 PM
About the statistical significance of the leagues, each match is a statistical test with n trials that attempts to test the null hypothesis that two bots are evenly matched.  The number of trials n increases until that null hypothesis is rejected.

A contendor is given the title of victor in a league match if it wins 1/2 n + sqrt(n) rounded up rounds.  It should be easy to see that eventually, this will reduce to: whichever bots wins the majority of rounds.  This happens when n approaches infinity (because the big O of 1/2n + sqrt(n) = big O of n).

Now, I don't know what sort of confidence interval this is using.  The thing with statistics, is that when you reject the null hypothesis you're never sure if you're not making an error.  Usually a confidence interval of 95% is used, which means that you'll be wrong when rejecting the null hypothesis 5% of the time.  Which means that when you run the leagues over, you might get a different result, because there's still that 5% error.  Or 1%, or .001 %, or whatever the confidence interval happens to be.  I'm going over my stats notes now to find out what confidence interval we're using.

The final league standings don't represent what bot is the "best".  It should be easy to see that the only possible ranking in a round robin tournament is by groups.  Ie: 0 losses, 1 losses, etc.  What a ladder represents, rather, is a somewhat arbitrary, but <I>fast</I> way of ranking contendors.  In general, the relative rankings represent relative strength.  But there are exceptions.  Run any real world ladder twice and you'll get 2 different results.

If we want to rank bots based on their absolute strength, we would need to have n^2 matches, where n is the number of bots.  We would need to use a chi squared test to rank them.

I'll present a well researched report on probability models to use in the leagues in a few hours.
Title: League Problems
Post by: EricL on January 03, 2007, 12:56:48 AM
Well said both of you.

Without getting too far off topic, I would ultimatly like to see a real-time 'league' of internet connected sims where agregated statistics of the overall populations of each species in the distributed, connected "eco-verse" were available in real-time.  Imagine 20 (or 200, or 2000) distributed, teleporter-connected sims, running on each of our machines.  They could come and go, but some subset would always be running (a screen saver would help increase this number).  Each would report local population statistics to a central repository that everyone could access via a web page.  To compete, you simply build (or evolve) your bot, testing it off line in your own sim, and when you are ready, you connect your sim to the eco-verse.  How well your bot does, how high it places, would be a function of the overall population it acheives relative to all the others.  Now, each sim need not be running the same conditions.  There would be niches.  Some bots would not survive long in some local sims, perhaps no single species could be desinged to fully dominate every corner of the eco-verse yet some would acheive higher populations than others.  Combat would be a viable strategy but so would running and hiding and multiplying quietly.

I'm all for the tradition of 1:1 all out combat, but the real test would be to survie and compete simultaniously against the vast variety of bots in vast variety of environmental conditions in the eco-verse.  Ohh, I get goose flesh just thinking about it!
Title: League Problems
Post by: Griz on January 03, 2007, 11:51:53 AM
Quote from: Numsgil
About the statistical significance of the leagues, each match is a statistical test with n trials that attempts to test the null hypothesis that two bots are evenly matched.  The number of trials n increases until that null hypothesis is rejected.

A contendor is given the title of victor in a league match if it wins 1/2 n + sqrt(n) rounded up rounds.  It should be easy to see that eventually, this will reduce to: whichever bots wins the majority of rounds.  This happens when n approaches infinity (because the big O of 1/2n + sqrt(n) = big O of n).

Now, I don't know what sort of confidence interval this is using.  The thing with statistics, is that when you reject the null hypothesis you're never sure if you're not making an error.  Usually a confidence interval of 95% is used, which means that you'll be wrong when rejecting the null hypothesis 5% of the time.  Which means that when you run the leagues over, you might get a different result, because there's still that 5% error.  Or 1%, or .001 %, or whatever the confidence interval happens to be.  I'm going over my stats notes now to find out what confidence interval we're using.

The final league standings don't represent what bot is the "best".  It should be easy to see that the only possible ranking in a round robin tournament is by groups.  Ie: 0 losses, 1 losses, etc.  What a ladder represents, rather, is a somewhat arbitrary, but <I>fast</I> way of ranking contendors.  In general, the relative rankings represent relative strength.  But there are exceptions.  Run any real world ladder twice and you'll get 2 different results.

If we want to rank bots based on their absolute strength, we would need to have n^2 matches, where n is the number of bots.  We would need to use a chi squared test to rank them.
not so ...
you only need n(n+1)/2 ...
which in the case of 30 bots, is 465.
btw, leagues of 10 is only 55, a reasonable number
to run without taking days to do so.

and the chi-sqr test wouldn't rank them? ...
it's purpose is to tell you if your results fall withing a
range that is acceptable, that you can be confidant in.
please tell me exactly what data you would be using to
run this chi-sqr test in this case?

and once again ...
people, please hear what I am saying ...
I don't care how precise you think you are being in
calculating how many rounds it take to find a statistically
valid winner of a given match ...
when the 'arbitrary' initial order that you start the bots with ...
upon attempting to establish league standings ...
will have a much greater affect on their ranking than does
all your playing with numbers ...
unless every bot is not allowed to go up against every other.
that is all I am saying.

now you can dance around that all day long ...
it won't change a thing.
don't get so caught up in the details that you miss
the bigger picture here.

and don't shoot the messenger ...
just 'cause you don't like the message.

do it however you want ....
but please ...
don't pretend it's statistically valid as it is now.
it isn't.
Title: League Problems
Post by: Griz on January 03, 2007, 12:13:09 PM
Quote from: Jez
it would be a manually intensive, long drawn out way to decide the results.

not really ...
regardless of the what method you use to
run a league, a 30 bot league is going to take you
one hell of a long time ... IF you ever even get thru
it without a crash somewhere along the way.
[let me know if/when you ever get it completed]  lol

and as I've pointed out ...
for each bot to meet every other ...
it's n(n+1)/2 ... not n^2
so ...
30 bots = 465 matches
20 bots = 210
10 bots = 55
8 bots = 36
and I still think we would be much better off making
4 leagues of 8 bots, 32 all told ...
then allowing the top one or two in each ...
to challenge the league ranked above them.
a new bot could start off challenging the lowest league ...
and be allowed to move to others if he is good enough
to 'make the cut'
compiling the rankings in this way ...
would not only be more accurate ...
but would actually make the project manageable.
 
Quote
I do understand the point you are making but in the context of challenge matches the results will be both accurate and fair.
well ... close perhaps, but I don't see how you can say accurate.
of course one could always take a given bot that has been 'stopped' ...
and put it up against a higher ranked bot outside of leagues just
to see if it was a fluke, and if so, present the results and request
a rematch or re-evaluation.

but ... whatever.

Act as you will.
Go on as you feel.
This is the incomparable way.

I've got all those pesky real world things
that better deserve my attention anyway.

good luck.
Title: League Problems
Post by: Numsgil on January 03, 2007, 01:05:21 PM
n(n+1) / 2 approaches n^2 as n gets very large (actually, it approaches 1/2 n^2, but big O ignores those coefficients), which is the point I was making.  You're going to be running alot of rounds, no matter how you slice it.  Suppose you run 1000 bots in a round robin tournament.  That's going to be something on the order of half a million matches.  That's a lot of matches.

It's okay that initial order matters in the ranking, because we have a prechosen method for the preranking: age.  Initial ranking is always going to matter, there's no getting around that in a ladder.  But using seniority for the initial ranking makes the most sense, for reasons Jez outlined above.  In your own personal ladder, feel free to chose whatever initial ordering you like.  Initial ordering does matter, but so long as your choice is arbitrary most of the league is going to be ordered correctly.

The idea isn't that the ladder is a perfect representation of the strength of the bots.  The ladder is simply a quick way to relatively sort them.  That's why they're used in sports, people aren't patient.

I'll post in suggestions forum with my stats findings.
Title: League Problems
Post by: Jez on January 03, 2007, 01:08:05 PM
I’m not sure exactly what good work Eric has done for this last buddy drop, I’ve been running it under VB in case of crashes but it seems to run faster than before.
The current standing, which I think has been affected by the latest changes, is as follows:I don’t remember what the formula was that is used to decide the winner now, annoying sometimes when I want to work out how many more rounds minimum it might take for a bot to win a match, it will be interesting to see Nums’ report on probability models to use in the league.
Eric, should you ever have time to implement a better way of running the league, you have some good ideas about how it could be done, then you have my support and I would be happy to help in any way I can.
A multi enviromental test via internet linked pc’s using screensavers etc really would be the bees’ knees of competition!

Griz, I am not questioning your mathematical abilities, you far exceed my abilities in that, or probably any other, field.
It is the premise that the start order is arbitary that I disagree with, this isn’t a reformation of the league from scratch, would need to run all existing bots if that were the case; it is a shake up of the existing placement of the bots in the league, something that is far from arbitary.
The comment I made about a RR being ‘a manually intensive, long drawn out way to decide the results’ is based on the fact that there is no way for the program to do it automatically at the moment and that AFAIK a RR where every bot fights every other bot is undoubtedly going to take longer than a challenge match where bots don’t always compete against all the other bots.

I had no intention of ‘shooting the messenger’ you are undoubtedly correct in what you say, I am arguing over the premise that the starting order is arbitary.
I don’t see why, if the starting order is considered valid and the method of competition (challenge) is valid then the results don’t hold some statistical relevance.

(contest results are now Spanish C 110 – Animal S 130)
Title: League Problems
Post by: Griz on January 03, 2007, 03:18:04 PM
Quote from: Jez
I’m not sure exactly what good work Eric has done for this last buddy drop, I’ve been running it under VB in case of crashes but it seems to run faster than before.
The current standing, which I think has been affected by the latest changes, is as follows:
    [1]Din
    [2]Destinatus P
    [3]The One
    [4]Dominator I
    [5]Darth S
    [6]Spanish C (103 wins)
    [7]Animal S (122 wins)
    [8]Carnatus Orbis
    [9]Kyushu
    [10]Una 3.0[/li]
[/quote]
well ... this will be drastically altered!
Quote
Griz, I am not questioning your mathematical abilities, you far exceed my abilities in that, or probably any other, field.
It is the premise that the start order is arbitary that I disagree with, this isn’t a reformation of the league from scratch, would need to run all existing bots if that were the case; it is a shake up of the existing placement of the bots in the league, something that is far from arbitary.
understood. if that were indeed the case.
I don't think in this case, it is.
an example:
the list you provide above going to be anywhere
near what the ranking will end up being.
Din is going to drop to around #5 ...
Dominator Invincibalis to around 8th ...
Carnatus Orbis out of the top 10 ...
Kyushu down to around 20 ... etc.
and this isn't taking into consideration
that there are other bots farther down
the line that will still come up and take
them down a bit further.
 
so while this may have been a valid ranking at one time ...
from the days of 2.37???? or did someone rerun leagues
since 2.4X? ...
I don't know that it still is.
well ...
having run a bunch of contests ... I know it isn't.

anyway ... bots behave much differently now, eh?
the physics of the program have been altered ...
and costs and lots of stuff ...
so you are going to run into the very problem I've been
attempting to draw attention to ...
I've already run into them ... and showed you one example
being that of D Scarab 3 being prevented from moving up.
[which would have happened to him in a challenge as well, btw]

in fact, even as we speak, I have him challenging the 6 bot
mini league ranked just ahead of him ... #7-#12
and so far he as taken out both  Carnatus Orbis & Duplo Simpleboticus  
and is working now on James 4 ...
8 rankings above were the league stuck him down at #18.
so he's still on his way up.
Quote
The comment I made about a RR being ‘a manually intensive, long drawn out way to decide the results’ is based on the fact that there is no way for the program to do it automatically at the moment and that AFAIK a RR where every bot fights every other bot is undoubtedly going to take longer than a challenge match where bots don’t always compete against all the other bots.
right. having to manually doing this is a big pain.
that's why I'm suggesting we consider making some changes.

as far as challenge matches go ...
that is a slightly different animal ... but I have similar problems with it.

as far as rerunning/establishing a league ... as it is now ...
it won't usually take as long ... but there is no guarantee of that.
it is possible they would have to do as many .... possible, if not probable.
however, just as probable as it only doing the minimum number.
I would expect they would 'average' about half ... probability being what it is.
so you do a trade off ...
trading speed for accuracy ...
it's a balancing act ...
which I don't have a problem with, you do what you have to ...
but lets not pretend it is then as correct as it could be ...
or can justify using all that time for statistical calculation
re  # of rounds required to win ...
because the error introduced in the initial placement ...
is far greater than that, and will nullify all those great
efforts at being precise.
hmmmmmm ....
looking for another analogy.
ok ... like spending hours/days carefully stacking up 100,000 dominoes to
make a really cool display when you finally stand back and tip that first one ...
all that time there being a great dane running around in the room.
~~~
Quote
I had no intention of ‘shooting the messenger’ you are undoubtedly correct in what you say, I am arguing over the premise that the starting order is arbitary.
I don’t see why, if the starting order is considered valid and the method of competition (challenge) is valid then the results don’t hold some statistical relevance.
right. and I am saying they, and your premise, are not valid.
so I guess we can agree we disagree.

Quote
(contest results are now Spanish C 110 – Animal S 130)

let me know what they are up to in another week.  lol
see ... here we are at the place I don't get ...
it is a statistical draw!!!!
why keep screwing around with it?
why not give it to Animal S ... he's got more rounds ...
and move on.
if you are concerned about the time to run leagues ...
I suggest you take a look at what is consuming much
of that time ... and determine if it is worth it or not.
I don't happen to think it is ... but ...
whatever.

hey ...
made a mistake before for # of matches required
for all bots to go up against each other  ...
had a + there instead of a -
it isn't n(n+1)/2  but n(n-1)/2
 
3 bots = 3 matches: ie  A-B, A-C, B-C
6 bots = 15
8 bots = 28
10 bots = 45
30 bots = 435  

I'm tellin' ya ... those 8 bot sub-leagues are looking
better to me all the time.
Title: League Problems
Post by: EricL on January 03, 2007, 03:28:22 PM
Quote from: Jez
I’m not sure exactly what good work Eric has done for this last buddy drop, I’ve been running it under VB in case of crashes but it seems to run faster than before.

I did make one change in 2.42.9s that probably helps perfromance of leagues in how unique IDs are assigned to bots.  If you look in the properties dialog of a bot, there are two numbers there.  One is the "Robot ID" which the unique number of the bot in the sim at the momnet.  It's basically the index the bot is using in the internal bot array.  That is, no other extant bot has that number currently, but numbers get re-used as bots die.  The second "Unique Robot ID" is unique for the life of the sim.  No other bot in that sim will ever have that number again.  These unique numbers are used for ancestor trees, teleporters and other places where having unique bot IDs is required.

The old code used a really computentional intensive way of assigning these unique IDs.  I changed it to simply use a monotomicaly increasing counter that gets saved in sim files.

Quote from: Jez
Eric, should you ever have time to implement a better way of running the league, you have some good ideas about how it could be done, then you have my support and I would be happy to help in any way I can.
A multi enviromental test via internet linked pc’s using screensavers etc really would be the bees’ knees of competition!

Thanks.  Anything like what I suggest would be in addition to the current league functionality.  Terrarium had this and it was super cool.
Title: League Problems
Post by: Griz on January 03, 2007, 04:19:50 PM
can't seem to reply/post to Num's stat thread ...
so will put it here.
Moved to League stats tests (http://www.darwinbots.com/Forum/index.php?showtopic=1849&pid=1369969&st=0&#entry1369969) ~~~Jez
~~~
Title: League Problems
Post by: Jez on January 03, 2007, 04:44:59 PM
Quote from: Griz
this may have been a valid ranking at one time ...
from the days of 2.37???? or did someone rerun leagues
since 2.4X? ...
To the best of my knowledge the (F1) league has never had a rerun, even when PY programmed the league function into DB the existing list on the forum was used as the starter list for the league. (which wasn't rerun, bots have just been added to it since.) There may have been a rerun done, for some if not all of the bots, when the statistical analysis of rounds was introduced. ( I pressed for and researched the formula because one of my bots didn't gain the league position I knew it should get.)
It might be better to consider it as wrong of me to rerun the league at all, especially without reentering all the existing bots in the bestiary in date order...

Quote
so you do a trade off ...
trading speed for accuracy ...
it's a balancing act ...
which I don't have a problem with, you do what you have to ...
but lets not pretend it is then as correct as it could be ...
or can justify using all that time for statistical calculation
re  # of rounds required to win ...
because the error introduced in the initial placement ...
is far greater than that, and will nullify all those great
efforts at being precise.
Indeed, you are calling into question, for me, if rerunning the league will result in more accuracy than we have already, perhaps better to leave it as it is and wait for a new method of running the leagues, allowing for re-entry of all the bots and better analysis of the results.
The league as it stands is, to use your analogy, 4+ years of stacking dominoes. Is it right to change that because some dominoes are looking old?

Quote
and I am saying they, and your premise, are not valid.
so I guess we can agree we disagree.
let me know what they are up to in another week.  lol
Funnier than you think but I'll tell you about that in a min...
Quote
see ... here we are at the place I don't get ...
it is a statistical draw!!!!
why keep screwing around with it?
why not give it to Animal S ... he's got more rounds ...
and move on.
if you are concerned about the time to run leagues ...
I suggest you take a look at what is consuming much
of that time ... and determine if it is worth it or not.
I don't happen to think it is ... but ...
It's the VB debugger that's taking the time, consider that's making it 10x slower than it would be otherwise, it's only taken ~20 hrs to get this far.
Quote
hey ...
made a mistake before for # of matches required
for all bots to go up against each other  ...
had a + there instead of a -
it isn't n(n+1)/2  but n(n-1)/2
 
3 bots = 3 matches: ie  A-B, A-C, B-C
Reminds me of the 'gypsie rose' problem (same thing really) they gave the maths class once at school, took me 90 seconds to figure it out and two weeks to fail to make the answer into a formula  

Anyway; at 258 rounds, 114 for Animal S - 143 for Spanish C the bots disappeared and I'm left with a bunch of veg firing viruses at each other!
Title: League Problems
Post by: Numsgil on January 03, 2007, 08:30:03 PM
Quote from: Griz
so you are going to run into the very problem I've been
attempting to draw attention to ...
I've already run into them ... and showed you one example
being that of D Scarab 3 being prevented from moving up.
[which would have happened to him in a challenge as well, btw]

This is the difference in our opinions.  You view this is a problem, I do not.  It is mostly impossible to rank bots in a linear fashion anymore, because the program is getting to a rock-paper-scissors strategy.  It's okay if stronger bots get stuck in the bottom of the ladder.  Thems the breaks.

Quote
...which I don't have a problem with, you do what you have to ...
but lets not pretend it is then as correct as it could be ...
or can justify using all that time for statistical calculation
re  # of rounds required to win ...
because the error introduced in the initial placement ...
is far greater than that, and will nullify all those great
efforts at being precise.

This is a bias, not an error.  Run the same initial ordering of bots 10 times.  If there's any deviation in the placings, that's error.  There should be very little error.  If you run 10 different initial orderings and get 10 different results, that's bias.

Bias is inherant in all ladders.  But that's okay, because we have a fair way of ordering the initial robots.  It's okay if a strong bot is stuck at position #25.  Bots at the top of the list should not only be strong, but capable of defefating some of the tricky bots (I believe there was some Umbra bot that stops alot of bots from proceeding in the leagues).

I would use either bots' ages or present ranking in the league to setup the initial ranking.  Ages would be best, since most older bots rank low in the league.

..........................

If you want a fair way of running the leagues, what about something like this:
take some bots, randomly order them into an initial order.  Run the league.  Reverse the new order of the bots (so 1st place becomes last place, etc.) and rerun the league.  Keep doing this until the rankings stop fluctuating every time you run the leagues.  I'm guessing they'll never stop totally fluctuating, but you'll definately have the case that bots at the top of the league are strong, which is what you want.

Quote
see ... here we are at the place I don't get ...
it is a statistical draw!!!!
why keep screwing around with it?
why not give it to Animal S ... he's got more rounds ...
and move on.
if you are concerned about the time to run leagues ...
I suggest you take a look at what is consuming much
of that time ... and determine if it is worth it or not.
I don't happen to think it is ... but ...
whatever.

There's no such thing as a statistical draw when you can run an arbitrary number of rounds.  Supposing for a moment that you managed to find 2 bots that are identically matched (exactly 50/50), there isn't a test for that.  So maybe we should add one.  But I warn the number of matches you need to run to determine a true statistical draw is probably in the thousands.

Try this simple experiment.  Hack into the league code, and set up a league match with a "fair" coin (assign a random winner based on a 50/50 probability).  Run the league.    It should be an enlightening experience either way.

I imagine a league winner will eventually be declared, which, come to think of it, isn't good.  We should add a catch for when the results are indicative of a true statistical draw.  But again, we're talking possibly thousands of rounds.

Just declaring a winner after 200 rounds based on who has the most isn't proper.  Imagine flipping a coin 200 times.  It's not going to end up 100/100.  Would you declare the coin unfair if it was 130/70?  That's where stats comes in.  Stats assures us that we have control over arbitrarily picking winners.
Title: League Problems
Post by: Light on January 03, 2007, 08:46:53 PM
Quote
Supposing for a moment that you managed to find 2 bots that are identically matched (exactly 50/50), there isn't a test for that.
Entering the same bot under 2 different names would give you an exact 50/50 scenario your after.
Title: League Problems
Post by: Griz on January 03, 2007, 10:14:55 PM
Quote from: Numsgil
n(n+1) / 2 approaches n^2 as n gets very large (actually, it approaches 1/2 n^2, but big O ignores those coefficients), which is the point I was making.  You're going to be running alot of rounds, no matter how you slice it.  Suppose you run 1000 bots in a round robin tournament.  That's going to be something on the order of half a million matches.  That's a lot of matches.
we aren't talking 1000 bots ... but 30 ... 435 matches.

Quote
It's okay that initial order matters in the ranking, because we have a prechosen method for the preranking: age.  Initial ranking is always going to matter, there's no getting around that in a ladder.  But using seniority for the initial ranking makes the most sense, for reasons Jez outlined above.  In your own personal ladder, feel free to chose whatever initial ordering you like.  Initial ordering does matter, but so long as your choice is arbitrary most of the league is going to be ordered correctly.
I'm sorry Nums ... is is not.  
you are missing what I am talking about ...
as you already think you know what I'm saying, and you don't ...
so there's no room left there for you to take a look at what
I'm pointing at.
you're not only not on the same page ...
but not even in the same book.
ok. I'm tired of beating my head against the wall.
forgettabout it then.
 

Quote
The idea isn't that the ladder is a perfect representation of the strength of the bots.  The ladder is simply a quick way to relatively sort them.  That's why they're used in sports, people aren't patient.

I'll post in suggestions forum with my stats findings.
Title: League Problems
Post by: Griz on January 03, 2007, 10:17:46 PM
Quote from: Numsgil
This is the difference in our opinions.  You view this is a problem, I do not.  It is mostly impossible to rank bots in a linear fashion anymore, because the program is getting to a rock-paper-scissors strategy.  It's okay if stronger bots get stuck in the bottom of the ladder.  Thems the breaks.
This is a bias, not an error.  Run the same initial ordering of bots 10 times.  If there's any deviation in the placings, that's error.  There should be very little error.  If you run 10 different initial orderings and get 10 different results, that's bias.

Bias is inherant in all ladders.  But that's okay, because we have a fair way of ordering the initial robots.  It's okay if a strong bot is stuck at position #25.  Bots at the top of the list should not only be strong, but capable of defefating some of the tricky bots (I believe there was some Umbra bot that stops alot of bots from proceeding in the leagues).

I would use either bots' ages or present ranking in the league to setup the initial ranking.  Ages would be best, since most older bots rank low in the league.

..........................

If you want a fair way of running the leagues, what about something like this:
take some bots, randomly order them into an initial order.  Run the league.  Reverse the new order of the bots (so 1st place becomes last place, etc.) and rerun the league.  Keep doing this until the rankings stop fluctuating every time you run the leagues.  I'm guessing they'll never stop totally fluctuating, but you'll definately have the case that bots at the top of the league are strong, which is what you want.
There's no such thing as a statistical draw when you can run an arbitrary number of rounds.  Supposing for a moment that you managed to find 2 bots that are identically matched (exactly 50/50), there isn't a test for that.  So maybe we should add one.  But I warn the number of matches you need to run to determine a true statistical draw is probably in the thousands.

Try this simple experiment.  Hack into the league code, and set up a league match with a "fair" coin (assign a random winner based on a 50/50 probability).  Run the league.    It should be an enlightening experience either way.

I imagine a league winner will eventually be declared, which, come to think of it, isn't good.  We should add a catch for when the results are indicative of a true statistical draw.  But again, we're talking possibly thousands of rounds.

Just declaring a winner after 200 rounds based on who has the most isn't proper.  Imagine flipping a coin 200 times.  It's not going to end up 100/100.  Would you declare the coin unfair if it was 130/70?  That's where stats comes in.  Stats assures us that we have control over arbitrarily picking winners.

bullshit.
you're talking theory ...
and I'm talking practical application.
but you already know it all  .......... as always so ...
fuck it.
Title: League Problems
Post by: Numsgil on January 03, 2007, 11:58:45 PM
You did this exact same last time when we were talking about something completely different, and I don't like it.

I do know what you're talking about.  I am capable of reading your posts and extracting information.  But since I'm not agreeing with you it must mean that I don't understand what you mean.  After all, I'm just a kid, and what can a kid possibly know about the world compared with your decades of experience, eh?

Quite frankly, this is childish behavior, and I won't stand for it.  I do know what you're trying to say.  It bothers you that I'm spending all this effort assuring that the league matches are fair when the greater unfairness is in how the matches are organized into a league.

You don't like the fact that the initial ordering plays so heavily in determining the final ordering.  What you'd like to see is several different groupings of about 30 bots each, with these groupings performing the round robin tournament, and rankings determined from that.

And last, you don't want to have to run 400 matches to arrive at a statistically valid result, because you feel that that is way over the top of what is necessary.

It is possible for someone to understand what you're saying, understand your position fully, and still disagree.  If it wasn't, there wouldn't be political parties, would there?  I understand what you'd like to do, and I'm willing to give you the tools to do it, but I just don't think I would want to replace the leagues with it.

After all, why are we even ranking bots in the league?  What's the point?  It's a mark for new bot designers to shoot for.  New bots that make the #1 position should have to defeat all previous bots in the league.  Anything else is superflous.  But we have the ranking anyway because people want more than just a single #1 bot.