UCI选项

来自皮卡鱼 Wiki
New讨论 | 贡献2024年2月28日 (三) 00:54的版本
跳到导航 跳到搜索

目前部分界面支持UCI选项,例如

在鲨鱼界面中,点击引擎栏中的🔧扳手图标,即可进入引擎选项设置。
而手机玩家,在进入优步app后,点击最右上角,就能弹出菜单,然后点击“管理UCI引擎”→“引擎设置”,即可进入部分选项设置。

皮卡鱼的部分选项说明

Clear Hash

清除引擎目前的哈希记忆。不过最常见的是直接重新加载引擎达到这个效果。


MultiPV

多主变思考。引擎分析局面时默认是1个主变。当改变此选项,引擎分析时会增加当前局面的主变数量,各主变的深度一致,并同时显示(即同一层会显示多个变化),

调高数字将会降低棋力,仅供拆棋分析使用,实战和引擎测试请不要使用。并且只是增加当前的局面主变数量,在思考后续局面时照旧(显而易见否则指数爆炸)。

设置范围1~500,默认是1,即只有一个主变。

注:主变是主要变例(Principle Variation)的缩写。


Skill Level

限制引擎的棋力水平,设置非20时,有一定概率在出招时选择劣变,可用作人软对弈。注意仅仅是引擎出招选择劣变,引擎分析仍然正常。

设置范围0~20,默认为不限制棋力的20。

但如果开启UCI_LimitStrength,将会使Skill Level无效。


UCI_LimitStrength

默认关闭。开启后将会使Skill Level无效,让UCI_Elo生效。


UCI_Elo

更细致地限制引擎的棋力水平。只有开启UCI_LimitStrength才会生效,设置范围1280~3133,越低越弱。如果不满足Skill Level的21个级别划分,想要更加细致地划分引擎棋力水平,使用UCI_Elo即可。和Skill Level的限制棋力方式没有区别,只是更加细分。 其中Elo=1280等于Skill Level中的0,3133等于Skill Level中的19,2850=13,2568=10,2268=7,1777=4。

UCI_Elo的值已经和象棋引擎联赛天梯图校准。


Sixty Move Rule

60回合自然限招规则。默认开启。

开启时引擎将会考虑到60回合不吃子判和,把60回合不吃子视为0分,可以有效提高棋力。

如果你想分析局面同时不考虑60回合、或者不喜欢、或者平台和界面不兼容皮卡鱼60规则,则可以关闭。如果发现莫名其妙的送子问题,很可能就是此选项导致,说明和你下棋平台或界面的60规则不兼容,可以选择关闭。(其实送子并非问题,因为60回合不吃子时引擎已经视为0分,任何不会马上造成吃子的着法都是0分)

皮卡鱼的60回合自然限招规则,不会把每方超过10次将军的着法计入限招,并且对应的应将步也不会计入,但当局面产生吃子后,将军次数会重新计算。


Mate Threat Depth

判断中规里“杀”的回合数。该选项在Repetition Rule里设定为ChineseRule时才会生效,设置范围0~10,设置0则引擎不会判断“杀”。设置1~10,则引擎会在搜索中判断循环招法是不是1~10回合内的“杀”,而“杀”在中规里可能导致循环违规。设置得越高棋力下降越严重。适合纯人在中规环境下拆棋。



Repetition Rule


AsianRule是亚洲规则(作者团队所理解的一个亚规版本),违规严重级:长将>长捉同一子>其他,属于2fold(相同局面一旦重复出现直接进行判决,也就是一个局面出现第2次时判决) 大部分网络规则都是亚规。


SkyRule是某些网络规则。请注意,某些网络规则是亚规基础上稍作修改的,并不是中规。用于线上对弈后拆棋,请自行辨别网络规则是不是亚规。(该棋规代码作者为skystarspython)


ComputerRule是基于皮卡鱼作者《中国象棋程序竞赛规则》的规则,和AsianRule有些许出入,也和所有网络平台规则都有较大差异,但是是唯一一个全部符合所有亚规图例结果裁决的规则,更严格按照亚规文字定义,并且属于3fold(一个局面出现第3次时判决)。


ChineseRule是极简化的中国规则,本质上是亚规改版。注意目前几乎没有网络平台使用中规!且目前中规由于定义过度模糊且复杂,复杂棋例比较依赖裁判的主观想法,绝无任何可能程序化。违规严重级:长将>长捉、长杀、将杀循环、将捉循环、杀捉循环>其他。开启此选项后,Mate Threat Depth不为0时,引擎才会判断“杀”。



UCI_WDLCentipawn

胜率分数。根据胜率模型将原始分数转换的分数,关闭会显示原始分数,不影响棋力。

目前皮卡鱼的胜率分是100分代表50%的取胜概率,基本代表50%胜,50%和棋。

如果不习惯胜率分数可以关闭(实际上原始分很高,可能也不习惯)。


LU_Output

默认开启。开启会显示lowerbound和upperbound的信息,通俗说同一层可能会输出多次结果,比如某一层正在上层的时候会输出不完整的思考细节。若关闭,一层只会输出一次。

该选项只有输出区别,不影响棋力。


EvalFile

引擎要读取的NNUE权重文件名称与路径。引擎默认读取同一文件路径下名为pikafish.nnue的文件,可以将NNUE文件改名,并且通过此选项使其仍可以被读取。一般人不需要,手机优步可通过此选项达到配置多引擎的效果。

部分界面(特别是自制界面,如T界面)在加载引擎的时候不会将工作目录切换到引擎目录下,导致引擎无法读取NNUE文件。可以通过该选项设置NNUE的完整路径解决问题,或者直接把pikafish.nnue放在界面目录下(如果引擎没有提供设置选项功能可以尝试)


其余选项一般人基本用不到(例如Threads和Hash,界面会提供相应的设置),可以无视,如果想要知道,可以进入皮卡鱼官方GitHub中的Wiki查看。