John Fan wrote:
> I think they are slightly different unless I misunderstood yours. I
> was thinking fixing the game time limit as now, 30 minutes per side.
> But has a more flexible schedule. Just schedule the games for
> available engines as the server normally would do as long as enough
> engines available and a certain time passed. The server does not have
> to distinguish fast engines and slow engines. And engines does not
> have to register itself as slow engines or fast engines. Should be
> easier for the server to handle.
This approach was abandoned long ago.   The older CGOS server did it
exactly this way - it would schedule games every 30 seconds or so if
players were available.     

It's actually an interesting problem,  because as I discovered it's hard
to get fair scheduling when this is done.     Consider the most common case:

   1.  Everyone is playing at the moment.
   2.  A match completes.
   3.  Guess who is available?  The same 2 players that just finished.

There is a solution to this (never schedule the same pair twice in a
row),  but the rules to keep weird stuff from happening get more and
more complicated.    It's difficult for instance to prevent fast players
from playing each other most of the time.     What I wanted on CGOS (in
rough order of priority) is this:

   1.  Each player gets a good variety of opponents.
   2.  Players should tend to play equal opponents (but not solely)
   3.  Players should stay as busy as possible.

All 3 goals conflict with each other - which is why I went to scheduling
in discreet rounds.    This is one of those problems that seem trivial
at first, but when you get into it you see that it's way more difficult
than you imagined.    No matter what problem you see,  there is always a
simple solution which ends up having side-effects and so on.   There
doesn't exist a superficial solution.   I think it's all about which
trade-offs you want to make.

Because if you prioritize one of the 3 goals, you can get different
trade-offs.    If you prioritize goal 3, for instance, which is what you
are suggesting,   you sacrifice goal 1 and 2 significantly.      On the
old server I had rules to try to "salvage" this situation but as you
might guess,  you can't have your cake and eat it too!    The rules
tended to hurt the very problem I wanted to solve and so would require
programs to wait more in order to find viable opponents.  

In the end, I decided it was better to schedule in discreet rounds.   It
avoids all of those cyclic conditions that we had before where certain
players would rarely meet because of timing issues.    Because of the
imposed delays to try to make the server more balanced it turns out that
scheduling in discreet rounds is not that bad a solution - it does not
decrease the frequency of play as much as I had imagined.  

You see this same problem on real servers too.  You want to play a
particular opponent, but he is in a game.  You can wait for him, but
then you are not playing.   You can play a game meanwhile,  but when you
are finished he is playing someone else.   The cycle can keep you locked
out for a very long time.    On CGOS this kind of cycling sometimes made
it difficult for strong players to play each other - they were too busy
playing weaker opponents.


- Don





>
> On Jan 8, 2008 5:18 PM, Don Dailey <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
>
>
>
>     John Fan wrote:
>     > I do not have a 19x19 bot right now. But I found that fast engines
>     > have to wait for slow engines is kind of boring. For example, if a
>     > majority of engines finish the game within 5 minutes and only
>     one or
>     > two engines will finish the games in 30 minutes. Then all the fast
>     > engines have to wait the slow engines finish the game. Maybe we
>     should
>     > consider scheduling games for the available engines at every 10
>     > minutes while still leave the time limits for each game at 30
>     minutes?
>     I think you missed my posts - that's exactly what is planned.
>     Essentially,  there are 2 schedules running concurrently - a slow one
>     and a fast one.    The fast round is like a heartbeat - it is
>     scheduled
>     one after another.     If your bot is not playing in a slow game
>     it can
>     play in the next available fast game.     It will not have to  worry
>     about missing the next slow round either -  the server will always
>     wait
>     for the current fast round to complete before scheduling a slow round.
>
>     In this way, your bot can play in ALL slow round matches and yet
>     still
>     stay busy playing rated games when it's slow games finish early.
>
>     More than likely,  I would have 2 independent rating system - one for
>     fast play and one for slow play.   There would be an anchor player
>     who
>     plays the same regardless and would play in both "sections."    
>     So you
>     can expect your fast play rating to be less than your slow play rating
>     if your program is scalable.
>
>     Each program will choose which types of games it's interested in
>     playing
>     - slow, fast or both.     So if you are not interested in slow
>     games you
>     can choose to only play at the fast time control.    Some bots may
>     choose to not play in the fast games.
>
>     - Don
>
>
>
>     >
>     > On Jan 8, 2008 4:06 PM, David Fotland <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>
>     > <mailto: [EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>>> wrote:
>     >
>     >     Then 15 minutes should be good.  We want the anchor to play
>     at the
>     >     same
>     >     strength as before.
>     >
>     >     David
>     >
>     >     > -----Original Message-----
>     >     > From: [EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>
>     >     <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>> [mailto:computer-go-
>     <mailto:computer-go->
>     >     <mailto:computer-go- <mailto:computer-go->>
>     >     > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>     <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>] On
>     >     Behalf Of Alain Baeckeroot
>     >     > Sent: Tuesday, January 08, 2008 12:40 PM
>     >     > To: computer-go
>     >     > Subject: Re: [computer-go] How to get more participation in
>     >     19x19 CGOS?
>     >     >
>     >     > Le mardi 8 janvier 2008, Don Dailey a écrit:
>     >     > ...
>     >     > > On 19x19 it might be 30 minutes per side like we have
>     now,  with 5
>     >     > > minute games for the fast time control.    We would probably
>     >     have to
>     >     > > work it out so that program like gnugo would be able to
>     handle
>     >     the
>     >     > fast
>     >     > > time control at their standard settings.
>     >     > >
>     >     >
>     >     > At level 10, gnugo might need more than 10 min for some
>     games (with
>     >     > lots
>     >     > of possible ataris or kos).
>     >     > At level 0 (with tons of really ugly moves, and "only" 2
>     stones
>     >     weaker
>     >     > on kgs)
>     >     >  5 min should be ok.
>     >     >
>     >     > I think adding handicap to 19x19 is really a needed feature.
>     >     > Alain
>     >     >
>     >     > _______________________________________________
>     >     > computer-go mailing list
>     >     > computer-go@computer-go.org
>     <mailto:computer-go@computer-go.org>
>     <mailto:computer-go@computer-go.org
>     <mailto:computer-go@computer-go.org>>
>     >     > http://www.computer-go.org/mailman/listinfo/computer-go/
>     >     <http://www.computer-go.org/mailman/listinfo/computer-go/>
>     >
>     >     _______________________________________________
>     >     computer-go mailing list
>     >     computer-go@computer-go.org
>     <mailto:computer-go@computer-go.org> <mailto:
>     computer-go@computer-go.org <mailto:computer-go@computer-go.org>>
>     >     http://www.computer-go.org/mailman/listinfo/computer-go/
>     <http://www.computer-go.org/mailman/listinfo/computer-go/>
>     >
>     >
>     >
>     ------------------------------------------------------------------------
>     >
>     > _______________________________________________
>     > computer-go mailing list
>     > computer-go@computer-go.org <mailto:computer-go@computer-go.org>
>     > http://www.computer-go.org/mailman/listinfo/computer-go/
>     _______________________________________________
>     computer-go mailing list
>     computer-go@computer-go.org <mailto:computer-go@computer-go.org>
>     http://www.computer-go.org/mailman/listinfo/computer-go/
>     <http://www.computer-go.org/mailman/listinfo/computer-go/>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to