[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [computer-go] Computer Go Server



The server software always knows who is connected.  The selection
algorithm can try to balance several things,  but there is a very
simple selection algorithm:  make random selections.

If you want to get slightly more sophisticated, the server when
confronted with 2 or more open players can use some variation of this
simple algorithm:

   1. make up n sets of candidate pairings.  
   2. select the best single match among these n sets of candidate pairings.

The best "match" might be:

   1. favor pairings of players closer in rating.
   2. favor pairings of players who have played each other the least number
      of times.

Or some variation of this.

My suggestion is to keep it real simple for now.   I think random pairings
would actually work quite well.

- Don





   X-Original-To: computer-go@xxxxxxxxxxxxxxxxx
   Date: Wed, 16 Feb 2005 08:57:15 -0800 (PST)
   From: Ben Shoemaker <planetb@xxxxxxxxxxxxxxxxx>
   Reply-To: computer-go <computer-go@xxxxxxxxxxxxxxxxx>
   Sender: computer-go-bounces@xxxxxxxxxxxxxxxxx
   X-Spam-Score: -4.9
   X-Spam-Flag: NO
   X-Scanned-By: MIMEDefang 2.42

   > > > You would like the server to start the match and invite both players.

   > > Would there be a mechanism for programs stating their game preferences
   > > (board size, time settings) ?

   > > Then the server would know which groups of programs should be paired
   > > together.

   > The way for a program (or human player) to "state" their game
   > preferences is by means of their "match" request. If the request does
   > not fit your needs, you can refuse it by "decline". A game is only begun
   > if the two players agree, which sounds perfectly sane to me.
   > [ Note: please refer to NNGS/IGS or some other server's manuals. This is
   > very basic stuff. Or download the source and play with it ]
   > 
   > WRT to the various time-settings and their corresponding ladders: No.
   > As previously stated, there are only *two* ladders: one for 19*19 and
   > one for 9*9.
   > So, having multiple ladders for various time-settings would require
   > installing multiple instances of the software.
   > [which only costs a few Megabytes of diskspace plus a portnumber (and a
   > few filedescriptors). And a lot of administration.]
   > 
   > HTH,
   > AvK

   I understand that the match command supports size/time settings and is how
   one "user" initiates a game request to another user.  What we are trying to
   figure out are methods for the server to initiate games between random
   pairs of participating programs.

   I only suggested creating more "ladders" as a means of grouping programs
   for automatic play.  Once joining a "ladder", the program would just wait
   for the server to initiate games.

   Currently I don't see how the server would know which programs are availble
   for a match, and under what settings.

   Running multiple versions of the server to increase the number of ladders
   available seems like a much worse "solution" than modifying the code, IMO.

   Another way to approach this problem would be to leave the server as is,
   and build "opponent search and match request" functionality into something
   like gnugoclient (for gtp engines) which would manage finding opponents and
   issuing match requests with reasonable size/time settings.  This would
   leave it up to each program to randomize it's opponent selection.  It may
   also generate lots of match request overhead on the server for all the
   mismatch game requests, but that may not be too much of a problem.

   Ben Shoemaker.



   __________________________________ 
   Do you Yahoo!? 
   Yahoo! Mail - Find what you need with new enhanced search.
   http://info.mail.yahoo.com/mail_250
   _______________________________________________
   computer-go mailing list
   computer-go@xxxxxxxxxxxxxxxxx
   http://www.computer-go.org/mailman/listinfo/computer-go/

_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/