Home
        Akimot User Manual
         Contents
1.  on the program behavior     makemove   move   Makes a move  Stops any current search in progress   makemoverec  Makes a move that was found as a bestmove in the last search     go  infinite  Performs search according to its time management and responds  with the best move found  Further option infinite specifies to search until the  stop command is received     gonothread  Analogical to go command  An engine is supposed to search in the  current thread  usually current thread is used for performing the AEI communi   cation  while search runs separately   This is useful in batch AEI scripts where  commands are given sequentially in advance     boarddump  Prints the current board    treedump  Prints the search tree from the last search   eval  Evaluates current position    goalcheck  Performs goalcheck on current position     trapcheck  Performs a check whether some pieces can be trapped in current posi   tion     stop Stops the current search  The engine responds with the bestmove found     quit Exits the session     Engine to Controller Messages    id   type     value   Sends identification during the opening phase of the session   Sends information on following identifiers name  author  version    aeiok Ends opening phase and starts the main phase of the session     readyok Answer to isready message after all previous messages from the controller  have been processed     bestmove   move   Best move found in search    info   type     value   Information about the current sea
2. AKIMOT USER MANUAL      Tom  s Kozelek    2009    0 1 About    Akimot is an engine for the game of Arimaa  The very core function of the program  is to take a valid Arimaa position and produce a suggested move  The program is  command line oriented  highly configurable and supporting communication in both  traditional getMove interface and relatively new Arimaa Engine Interface   There are  several support applications delivered together with the program  The whole project is  distributed under the GNU GPL license     0 2 Background    The program is written in C   programming language  The target platform are the  Linux systems  Building the program at Windows machines hasn t been tested  For  development we used the Vim integrated development environment together with Scons  software build system  As a source version control tool we used the Git software  As a  unit testing module we used the cpptest library  We used gdb for debugging and gprof  for profiling  Moreover we programmed several external testing tools  For instance to  verify that our search extension for finding goal works properly we harvested all the  positions where rabbit can score a goal from all the games ever played online  And  through AEI we tested the ability of our program to find the goal moves in these  positions   gt  50000      0 3 Installation    Project is distributed as a snapshot of the development version  This snapshot is  included on the attached CD  The rough organization of the project i
3. RR    tags   elephant  blockade   criteria   condition   piece_position    after piece position   re8 re  cd7 me6   re8 re7 md7 ce6   0 8    re8 re7 md7 de6   0 85   re8 cd7 me7 re6   0 7  When started  python ats py   ATS reads from its configuration file  default is    ats cfg  information on  time per test  tests to use  how often repeat every test  engine    10       Figure 2  ATS example position     to connect  where to log  The engine is connected through AEI and selected tests are  sequentially presented to it  This is accompanied with logging information  In the end   statistics on performance are given to the user  For more examples please see tests in  akimot  other ats tests directory    Example configuration file      global    engine   akimot akimot  c akimot akimot cfg  tests   15   time_per_test   5   cycles   1    0 8 Gameroom    There is an online gameroom  created by Omar Syed  accessible to both human players  and bots at http   arimaa com arimaa gameroom   Akimot engine uses AEI to con   nect to the gameroom  A bot   s account must be created online in the gameroom first   Such a bot is then identified by its name and password for connection to the gameroom   There is a script called gameroom py in other  aei directory for connecting the bot to  the gameroom  Attributes of a session  bot   s name  password for connection  engine to  use  number of games to play  time settings  etc   are specified in the configuration file  called gameroom cfg in the same 
4. We used AEI  as a primary communication protocol with Akimot and as the only mean of connecting  the engine to the gameroom  Moreover we use AEI as a module in related Python  applications we wrote during the development process  namely   Arimaa Test Suite   Arimaa Development GUI  Rabbit Goal Tester    We have implemented most of the commands defined by AEI and even added some  more  we call these an extended AEI set   for these to be recognized  engine must be  started with  e option   The full specification of AEI protocol is given in aei protocol  tzt  in other  aei directory  The following list is based on this specification and represents a  list of commands supported in Akimot  Commands from extended AEI set are marked  with       2Universal Chess Interface    Controller to Engine Messages    aei First message sent to begin the opening phase  Waits for id messages and an  aeiok message back from the engine to end the opening phase     isready Pings engine  Engine responds with readyok   newgame Signals the start of a new game     setposition   position   Sets the current position from the string in compact  position format  see 80 5 1      setpositionfile    filename   Gives the path to a file with a position in standard  position format     setoption name   id    value  lt x gt   Set further options  Supported options are   tcmove   The per move time for the game   Other options  see full specification  are parsed and recognized  however they  currently have no effect
5. directory     11    0 9 Match environment    Besides connecting the engine to the online gameroom it is naturally possible to let  it play against other engines offline  There are several freely downloadable engines at  Arimaa homepage for this purpose   for instance bot_sample by Don Dailey or bot  fairy  by Mika Ole Hansson  There is an AEI extension for offline match as well  however the  mentioned engines don t support the AEI  For this reasons we sticked with using the  match environment based on getMove interface also created by Omar Syed  The match  environment is positioned in other match directory  Every bot is supposed to have  its own directory  e g  other match bot akimot   The alias names for bots  with  possibly various command line arguments  are listed in configuration file bots  The  script conducting the game is called match  A game between two bots is performed by  issuing match bot 1 alias bot 2 alias where aliases must be defined in bots file   For our purposes we have created a tour py script to perform a tournament between  two engines consisting of specified number of games  The tour py script iteratively  performs the match between specified bots by calling the match script itself  It makes  the process of organizing the results more convenient  Configuration files for bots  if  available   setup notice and record of every match played in the tournament are stored  in the tournament s directory  Moreover result of the tournament is written to file  li
6. ile  for instance     e details of the algorithm  time settings  exploration coefficient in UCT  mature  level  length of the playouts  etc      e various  on off  extensions  transposition tables  knowledge bias in playouts   search extensions  etc      e parallelism degree  number of threads to use     e weights of the evaluation method  e g  what are particular pieces worth  how are  traps evaluated  what is camel hostage penalty etc      e weights of the step evaluation    Little effort was invested to make the program s input processing    dummy proof        0 5 Session    Program supports two distinct ways of interaction     getMove mode  So far  this communication protocol has been recognized as an official protocol  for computer challenge Arimaa championships  Program takes three files with  game position  game_record and game state and outputs a move to be made  For  a long time this was an only way how to connect a bot to the online gameroom   In Akimot this mode must be explicitly toggled with  g option  moreover not all  three files must be present  actually information from game state file are not used  by Akimot at all   Example sessions   load from the position  tomik linda   src akimot    akimot  g data captures 02 ari  Ed2n Ed3n Ed4n Edbn  load from the record  tomik linda   src akimot    akimot  g data captures 02 are  Ed2n Ed3n Ed4n Ed5n  load from the record  preferred over the position   tomik linda   src akimot      akimot  g data captures 02 ari data ca
7. ined places  e g  match  dir  ats dir  etc      The built program should get automatically installed to the proper destinations in  subsequent directories  e g  match bot_akimot  ats bot akimot  etc    You can  force the installation as well   for instance to force installation of optimized source to  match bot_akimot just issue scons opt 1 match     0 4 Options and Configuration    Command line options are used to customize the general behavior  mode the program is  in  communication protocol to use  etc    The syntax for running the program is  akimot   options   position file  game record file    The files listed after options are  part of prescribed communication via the getMove interface  The options are following      h prints small help    b runs benchmarks    e uses extended AEI command set    a file uses given file to init the AEI session     g runs in getMove mode  position file and or game record file must be  supplied then      c file uses given file as a configuration file    Configuration file is used to modify the properties of the search engine  The default  configuration file named default cfg is present in the project s root  This configu   ration file is used by the program if not specified otherwise in command line options   Moreover  it contains the    best    configuration used for scalability tests and games in  the gameroom  Every item in the file is documented and should be easy to understand   Various issues might be influenced in the configuration f
8. ptures 02 are  Ed2n Ed3n Ed4n Ed5n    AEI mode  Akimot implements the textual AEI protocol as described below  This is a pre   ferred way of communication with the program  We also used this model for a  connection to the gameroom  Example session       tomik linda   src akimot     akimot  e    start the initial opening phase  a handshake     aei    id name akimot    id author Tomas Kozelek    id version 0 1    gt aeiok    handskake was performed successfully now ping the engine   lt isready    gt readyok    start the new game    lt newgame    set the time for move per sec to 5   lt setoption name tcmove value 5   lt setpositionfile data captures 02 ari     symbol   and  gt are used only here to emphasize the direction of communication    marks a com   ment      go    gt log Debug  Search finished  Suggested move  Ed2n Ed3n Ed4n Ed5n   gt info stat UCT     gt info stat 355069 playouts    gt info stat 4 90003 seconds    gt info stat 72462 playouts per second    gt info stat 449253 nodes in the tree    gt info stat 23326 nodes expanded    gt info stat 77962 nodes pruned    gt info stat 6 76431 average descends in playout   gt info stat best move  Ed2n Ed3n Ed4n Edbn   gt info stat best move visits  113535    gt info stat   win condidence  0 436083    gt info time 4 90004    gt info winratio 0 436083    gt bestmove Ed2n Ed3n Ed4n Edbn    gt log Info  over    lt auit    gt log Info  bye    Akimot allows to init the AET session with user defined commands  Commands  are written to 
9. rch  Akimot issues info  messages of following types  all bound to previous search      time How long it took to perform the search   winratio Expected winratio of the suggested bestmove     stat Various statistics from the previous search  These include information  on number of playouts  playouts per second  number of nodes in the tree  all   expanded  pruned   average descend depth  etc     goalcheck Information on performed goalcheck     trapcheck Information on performed trapcheck     log  lt string gt  Logging information  Log messages start with Error  Warning  or  Debug  to indicate special handling by the controller     0 7 Arimaa Test Suite    Arimaa Test Suite is a small Python application for testing the strength of an Ari   maa engine on predefined Arimaa positions representing particular tactical or strategic  maneuvers  This tool can be viewed as a sort of unit test for algorithmic side of the  program  The main motivation for creating this framework was a need for quick testing  whether algorithmic changes hurt or improve the performance of the program  Even  though its accuracy is questionable it proved to be a useful tool to quickly identify  clearly bad extensions    The framework has a given format for defining tests  Every test carries   single Ari   maa position  a comment on position  multiple tags and test how well are the criteria  fulfilled  Currently implemented criteria are  score goal  prevent opponent   s goal and  piece position criteria which i
10. s basically an AND OR description of position changes  with weights  This description  after_piece_position field  is a collection of blocks sep   arated by         character  Every block consists of atoms separated by whitespace and  optional weight indication in the end of the block definition separated by         charac   ter  Atoms express certain assumptions about position of pieces after the move  If the  assumption is correct after the particular move we say that atom is satisfied  Atom can  be of one of the following types     e An indication of position   e g  Eb3  this atom is satisfied if after the move there  will be gold elephant at b3    e a negation of position indication   e g   ce2  this atom is satisfied if after the  move there is not a silver cat at e2     e An indication of trapping   e g  Hf6x  this atom is satisfied if during the move  the gold horse is trapped at   6     A block is satisfied if all of its atoms are satisfied  If a block is satisfied it is evaluated  with its weight  or 1 0 if there is no explicit weight given  otherwise it is evaluated  with 0  Weights are meant to provide broader evaluation for possible moves than just  passes fail  The result of the test is the maximum from evaluations of its blocks   Example ATS test file  corresponding to position depicted in Figure 2       settings     comment    Elephant blockade at f7     position    12b    Sh rae E   B  7 h cmrEhr    6   dX  Xd   5       r   4     3   HCe  Xb   ZL DM  1  RRRRRR
11. s following     akimot    source files     h    cpp   a   shortcut for akimot  e  a init   AUTHORS   authors information   COPYING   license information   default cfg   an example akimot s configuration file   doc   Doxygen generated reference documentation   Dozy   configuration file for documentation generator   init   file with initial commands for the AEI session with the program  INSTALL   installation and compilation instructions   other   Support software    aei   Arimaa Engine Interface source codes   match   Match environment with example bots   ats   Arimaa Test Suite code and tests   tagui   Development GUI   rabbits   Large scale goal check unit   aga   Tools for downloading and filtering the games from online archive    paths py   small support file with paths definition  s   shortcut for scons opt 1  S Construct   configuration file for the build process    TODO   programming issues TODO list    There are no precompiled binaries therefore the program itself must be built from the  source codes  Recommended way for building the binary is to use a Scons tool  There  is a prepared SConstruct configuration file for this job  Following commands might be  used      scons development build   scons opt 1 optimized build  recommended for standard use   scons prof 1 build including profiling information   scons dbg 1 build for debugging purpose    scons  c clean the build  removes object files and binary     2    scons cfg 1 copies configuration file default cfg to predef
12. script starts the next instance  In the end final  log entry to the list txt is made by a single instance in finish  only mode  The psshlib py    12    script is included in the package  Users interested in this feature should study this  script and define their login credentials  if any  in there     0 10 Simple Arimaa Development GUI    During the process of development we strongly missed a simple to use Arimaa game  viewer  While it is possible to view the game records online through a Java applet  this was quite slow and sometimes unreliable  For this reason we have developed a  very simple GUI for Arimaa developers  The GUI is written in Python using Qt4  It   s  capable of     e Loading a game record and replaying the game with possibility to jump back and  forth in the record     e Loading a position from the standard position format  see 80 5 1      e Dumping a position to the standard position format                 18b rc7w cc5w he6n de5s  19w rg4e Dg3n Rg2n Dg4n  19b cb5e rc8s cd4n db4n  20w cd5s Md6s Md5n cc5e  20b he7w cd5e db5n hd7e  21w rh4w Hh5s Hh4n Hh5s    21b ef4n rf7e rf8s ef5s    22b ra7s rc7s rc6s rc5s    23w Md4n cd3n DhSw Md5w  23b rc4w rb7e db6s rb4w  24w db5n Mc5w db6e Mb5n    24b ce5w cd5e dc6e rc7e             Figure 3  The development GUI     The picture of the GUI is given in the Figure 3     13    
13. side to move  w b  followed by a string embraced in              and consisting of the piece letter or a space for each of the 64 squares  This  format is used only in AEI mode  in combination with setposition command    Information on move number is not included     bir rrr rc chh r d r d re DEM D H Cm C HRRRRRRRR     game record format  This is an official system of recording the single game of Arimaa  Game recorded  in this format might be passed to Akimot in getMove mode as a game record file     iw Rai Rb1 Rci Rdi Rel Rf1 Rgi Rhi Ha2 Db2 Cc2 Md2 Ee2 Cf2 Dg2 Hh2  1b ra8 rb8 rc8 rd8 re8 rf8 rg8 rh8 ha  db7 cc7 ed  me  cf7 dg  hh   2w Ee2n Ee3n Ee4n Eebn   2b ed7s ed6s edbs rd8s   3w Ee6w me7s Db2n Dg2n   3b rc8e re8s dg7s ed4e   4w me6s Ed6e Ee6w res   4b db7s ee4e rb8s rd7e   bw re6e Ed6e mebw Ee6s   5b rd8s rd7s re7s rf6s   6w md5s Eebw md4s Edbs   6b db6e dc6s re6s dcbs   7w Ed4e dc4e Ee4s dd4e   7b ha7s de4w reds dd4w   8w Md2e md3s Ee3w Me2n   8b    0 6 Arimaa Engine Interface    Arimaa Engine Interface is an interface allowing engine to connect to gameroom or other  applications  AET is written in Python and was contributed to the Arimaa community  by Brian Haskin  AEI defines a textual protocol based on UCI  for communication with  the Arimaa engine  AEI is meant to replace older bot interface for connecting to the  online gameroom  While AEI is not yet a widely adopted communication protocol in  the Arimaa programming community  it gains popularity pretty quickly  
14. st txt on the same level as tournament s directory   The syntax is following  python tour py bot 1 alias bot 2 alias  options   Where options are       game dir dirname Tournament s directory  default matches some number      games num number Number of games in the tournament  default 100      comment comment Comment on a tournament       silent Ignore the bots log output  otherwise written to appropriate log file in  the final directory        mode Running mode   default is standalone  other options are master  slave   finish only  This option served a very specific purpose during the development  and is not recommended to use  For more details see below     For effectively running the large number of games we have devised the tour py script  with ability to run simultaneously on  potentially  multiple machines  aka cluster   This  was quite specific demand in the development process and is meant for interested and  experienced users  won t work out of the box   The principle is following  The code and  configuration files that the games should be run with  must be present on the cluster  machines  Moreover it is advisable if the cluster machines have a shared filesystem  i e   AFS   On the controlling machine the tour py script is invoked in master mode  The  script connects to predefined computers  via ssh using the psshlib py script based on  the pezpect library  and starts its instances in slave mode  these run only a single game  and finish  After which the controlling 
15. the init file and given to the program on the command line  Only  the beginning of the session  e g  aeiinit  newgame command  etc   or the whole  session as well might be issued  In the case of whole session being performed from  the init file some commands from AEI extended set must be used i e  gonothread  instead of go otherwise following commands are sent to the engine too early    Example init file called init with comments  akimot  e  a init runs the engine  with this init file in extended AEI mode      aei   newgame   setoption name tcmove value 6   setpositionfile data captures 06 ari   gonothread    view the board and the resulting tree   boarddump   treedump    make the move proposed by the previous  recent  search  makemoverec    start new search now from the other player s view   gonothread   quit    0 5 1 Position formats    Current position might be communicated to program in several ways  All formats are  accompanied with representation of example position  see Figure 1  in given format        Figure 1  Example position     standard position format  This format is used for game  position file in getMove mode as well as in combi   nation with setpositionfile command in AEI mode  Token 8b means this is  position in the 8th move with black silver  to play     8b   4                     8 r  rrr    T     t   c hl  6 h xr xd    5        4   d re  l   3  DxEMxD I   2  H Cm  C H  1  RRRRRRRR   4                       compact position format  Position is given by the 
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Huawei Ascend Y210 Manual  - Rollx Vans    Mode d`emploi simplifié d`un pointage avec le    Lenovo ThinkVision LT2223z    紙が使える タッチ型レコーダ 世界初登場  RFT1000 User Manual Rev.C    Copyright © All rights reserved. 
   Failed to retrieve file