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