UCCI引擎联赛模拟器 版本:3.5
 
象棋百科全书网 (webmaster@xqbase.com) 200711
 
一、概述
 
  “UCCI引擎联赛模拟器”为UCCI引擎测试和竞赛供应了自动批量对局的平台,并支持网上直播。该顺序以WindowsUNIX支配系统为平台,可在下令行形式下完成下以几个功用:
  (1) 天生联赛的循环赛对阵表;
  (2) 关于每局竞赛,卖力启动引擎、掌握时刻、掌握走棋、天生棋谱、处置责罚效果等;
  (3) 盘算各队的输赢状况和品级分,天生联赛排名表;
  (4) 纪录联赛历程,当顺序意外中缀时,重新启动顺序可以让联赛紧接着上次纪录的历程连续停止;
  (5) 若是模拟器运转在多处置责罚器的盘算机上,可用多个处置责罚器同时举行多场竞赛;
  (6) 经由历程Web效劳器对联赛停止网上直播。
 
二、规范CPU时刻
 
  为让UCCI引擎习惯种种时限的赛制,并让竞赛具有客观平正性,竞赛的时限应依据处置责罚器的速率作响应的调整。譬喻,快棋赛的包干时刻是600(10分钟),一般会在3000MHz的处置责罚器上举行这样的竞赛,以测试象棋引擎的水平。若是象棋引擎运转在1000MHz的处置责罚器上,那末测试统一品级的快棋赛,就必需把时限调整为1800秒。
  这样,就有需要划定一个处置责罚器的规范速率(3000MHz),一段顺序的运算量就能够够用“规范CPU时刻”来权衡。若是象棋引擎运转在分歧速率的处置责罚器上(1000MHz),就必需依据该处置责罚器的速率,把时限由规范CPU时刻(600)调整为该处置责罚器的现实时刻(900)
  一样寻常来说,象棋引擎都只运用途理器的整数运算功用,因而推荐以“挑选素数”顺序作为规范测试顺序,来测定分歧处置责罚器的速率。UCCI引擎联赛模拟器附带的测试顺序(GENPRIME.EXE)以简朴筛法求得230之内的素数个数,顺序作者推荐把该顺序的运转时刻定为30秒的规范CPU时刻,这样约莫相即是3000MHzx86型处置责罚器的速率。
 
三、设置装备铺排文件
 
  UCCI引擎联赛模拟器的顺序称呼是 UCCILEAG.EXE ,执行前要求事前编纂设置装备铺排文件 UCCILEAG.INI ,说明联赛赛制信息、UCCI引擎的参赛信息和网上直播设置装备铺排,模拟器运转时则会显现联赛历程和效果。
 
  设置装备铺排文件由[League]节、[Teams]节和[Live]节组成,其中[League]节划定了联赛的赛事信息,各个属性的意义是:
  (1) Event:赛事称呼(能够用中文)
  (2) Site:竞赛所在(能够用中文)
  (3) Processors:运用的处置责罚器数,最多允许运用32个处置责罚器(默许运用1个处置责罚器)
  (4) Roundrobins:主客场(前先手)双循环次数,最多允许停止10次双循环(默许停止1次双循环)
  (5) InitialTime:加时制的初始时限,单元是分钟,最长时限可达500分钟;
  (6) IncrementalTime:加时制的每步增长时刻,单元是秒,设成零即为包干制,最长加时可达500秒;
  (7) StoppingTime:模拟器向引擎发送"stop"指令(显现超时状况)后守候引擎反应的时刻,超越该时刻则视为超时,单元是毫秒,最长可守候500毫秒;
  (8) StandardCpuTime:和一秒钟规范CPU时刻同等的现实时刻,单元是毫秒,默许值是1000,值越大说明机械速率越慢,最长可设成5000
  (9) Promotion是否是允许仕(士)相(象)升酿成兵(卒),这是一种中国象棋的革新玩法,其值是OnOff默许值Off(即默许使用通例走法)。
 
  [Teams]节划定了参赛队的信息,每一个参赛队占有一行,其花样是:
 
    Team=<缩写>,<引擎称呼>,<品级分>,<K>,<引擎文件>,<UCCI选项设置装备铺排文件(可选)>,<引擎引见URL(可选)>
 
  其中<UCCI选项设置装备铺排文件>是文本文件,在棋局最先前(联赛模拟器向UCCI引擎发送 ucci 指令后),要求分外提供引擎的一些初始化指令(譬喻 setoption loadbook)能够加到这个设置装备铺排文件中。统一个UCCI引擎能够象征几个分歧的参赛队,运用分歧的UCCI选项设置装备铺排文件,测试分歧选项对引擎战绩的滋扰。
 
  [Live]节划定了网上直播设置装备铺排,各个属性的意义是:
  (1) Host:直播主机,能够是IP所在、域名以及虚拟主机的域名;
  (2) Path:上传文件的顺序途径;
  (3) Password:上传文件的口令;
  (4) Extension:上传文件的后缀,一般是htmlhtmaspphp等被Web效劳器自动剖析为 text/html 类型的文件;
  (5) Counter:计数器的途径,若是指定计数器,则直播主页面会显现“您是第<计数器>位网友”的信息;
  (6) Header:直播页面页眉文件,直播时会将此文件(当地文件,包罗HTML内容)拔出到直播页面的页眉职位;
  (7) Footer:直播页面页脚文件,直播时会将此文件(当地文件,包罗HTML内容)拔出到直播页面的页脚职位;
  (8) PortHTTP端口,默许是80
  (9) Refresh:直播棋局页面的自动刷新时刻,单元是秒;
  (10) Interval:两次上传文件的距离时刻,单元是毫秒,设置这个属性能够免某些Web效劳器由于客户频仍提交而谢绝响应。
 
  若是停止联赛的主机没有设施直接接见Web效劳器,那末能够在[Proxy]节中设置装备铺排HTTP署理的参数,各个属性的意义是:
  (1) ProxyHostHTTP署理效劳器的所在;
  (2) ProxyPortHTTP署理效劳端口;
  (3) ProxyUserHTTP署理的认证用户名;
  (4) ProxyPasswordHTTP署理的认证口令。
  模拟器只经由历程POST要领接见HTTP署理(不运用CONNECT要领),以是署理效劳必需支持POST要领。
 
  要求注重的问题有:
  (1) 每条设置装备铺排信息必需依照<属性>=<>的花样录入,等号双方都不能有时刻格。推荐用户在模范设置装备铺排文件上作修正,以此制止引发标签的拼写毛病。
  (2) 若是支配系统言语设定准确,那末设置装备铺排文件中的赛事称呼、竞赛所在、引擎称呼等可显现的信息能够用中文。
  (3) 能够把参赛的引擎放在分歧的目录下,在<引擎文件><设置装备铺排文件>两项上加上完整的途径,Windows下的途径用“\”隔开,UNIX下的途径用“/”隔开。
 
四、直播效劳器
 
  UCCI引擎联赛模拟器的网上直播功用,适宜多种类型的Web效劳器,自力的Web效劳器、虚拟主机、Web虚拟目录都能够为UCCI引擎联赛供应直播效劳。
  Web效劳器必需支持POST下令上传文件,模拟器会经由历程HTTPPOST下令把联赛首页、棋局页面和棋谱文件立即上传到效劳器上,完成直播功用。模拟器为支持PHPWeb效劳器供应了吸收上传文件的剧本,即 upload.php ,联赛网上直播时要求在设置装备铺排文件中设定该剧本的途径([Live]节的Path)。若是Web效劳器只支持ASPJava/JSP等特定的剧本言语,则联赛主理者应当模仿 upload.php 编写剧本。
  上传文件一般设有口令珍爱,口令被写入上传剧本中,并在模拟器的设置装备铺排文件中设置一样的口令。口令必需妥帖保管,否则能够被其他人上传恶意剧本,从而损坏效劳器。由于网友不会直接接见到联赛运转的盘算机,也不会直接取失掉效劳器上的上传剧本,以是口令在直播历程当中是一定平安的。现在模拟器不支持SSL,若是要求增强口令珍爱,能够在直播盘算机上设置SSL客户端署理,在效劳器上启用HTTPS效劳。
  模拟器还为直播供应了页面配景、图标以及接见计数器等附件,推荐直播前连同上传剧本一同事前把这些附件上传到效劳器上。
 
五、棋谱文件、日志文件和历程文件
 
  对每一场竞赛(每一局棋),模拟器都邑发生一个棋谱文件,称呼是 XXX-YYYn.PGN XXX是主队(红方)的缩写,YYY是主队(黑方)的缩写,n象征第(n + 1)个双循环次数。
  日志文件是 XXX-YYYn.LOG ,纪录模拟器和两个引擎的通讯信息。
  历程文件是 XXX-YYYn.CHK ,纪录每一个引擎反应的着法和走完该着所剩的时刻。当模拟器意外住手偏重新启动后,就会由历程文件中的纪录失掉引擎的着法,从重天生输入申报和棋谱文件,从而节约了引擎一次又一次运算的时刻。
 
六、对引擎的推荐
 
  为提升测试和竞赛的效能,推荐引擎支持以下UCCI指令和反应信息:
 
  一、推荐引擎支持“双时限制”,在时刻战略上同时斟酌对方的用时状况。
  模拟器会以下面的形式通知引擎“走棋方的时限”和“对方的时限”:
    go time <走棋方的时刻> increment <加时> opptime <对方的时刻> oppincrement <加时>
  注重:
  (1) <对方的时刻>指的是对方上一步走完以后,盈余时刻加上“加时”以后的时刻;
  (2) 若是引擎不支持双时限制,模拟器也会依照下面的花样发送走棋指令,引擎只需不剖析 opptime oppincrement 即可。
 
  二、推荐引擎支持“提和”与“认输”功用,这有助于延长竞赛时刻。
  (1) 引擎提和与收受接管提和的指令是:bestmove <着法> [ponder <配景思索>] draw
  (2) 引擎认输的指令是:bestmove <着法> [ponder <配景思索>] resign
  注重:
  (1) 模拟器能够会向引擎发送 go draw time ... 的指令,说明对方已提和,纵使引擎不支持提和与收受接管提和,也不能由于有了 draw 重点字而剖析不出 go 指令;
  (2) 双方一连给出有 draw 的反应,模拟器就会住手竞赛,认定和棋。
 
  三、推荐引擎支持“毫秒制”,以提升时刻战略的准确度。
  (1) 模拟器支持“秒制”和“毫秒制”,若是引擎在启动时没有输入反应 option usemillisec ..., 则使用“秒制”。
  (2) 支持“毫秒制”的引擎必需在启动时输入反应 option usemillisec ...,模拟器在吸收到这条反应时,会向引擎发送指令 setoption usemillisec true,以后每条指令的时刻单元都是“毫秒”。
 
  四、推荐引擎支持禁手指令,以免因划定礼貌注释欠妥而被判负。
  当一次又一次局势即将到达3次时,模拟器将会向引擎发送 banmoves ... 指令,通知引擎走哪步棋是长打判负的。引擎反应着法时,不能走出 banmoves 指令中所划定的着法,否则就能够够在后续的着法中被判长打作负。
 
七、顺序下载
 
  UCCI引擎联赛模拟器一般会跟UCCI引擎ElephantEye一同公布,源顺序及其Windows版本下的编译顺序下载所在是:
    /download/eleeye.7z
  • 上一篇 计算机象棋联赛报名和UCCI引擎注销设施
  • 下一篇 UCCI引擎列表
  • 返 回 象棋百科全书——计算机象棋联赛
  • www.xqbase.com