UCI選項
目前部分介面支援 UCI 選項,例如:在電腦鯊魚介面中(免費鯊魚至少 1.7.9 版本,商業鯊魚至少 2.3.1 版本),點選引擎欄中的🔧扳手圖示(執行緒和雜湊設定的旁邊)即可進入引擎選項設定。如下圖所示:

皮卡魚的部分選項說明
Sixty Move Rule
開關 · 預設:開
自然限招開關,預設為開。比如預設情況下引擎將會考慮到 60 回合(120 步)不吃子判和,把 60 回合不吃子視為 0 分。
如果你想分析局面時不考慮自然限招、或者不喜歡自然限招納入引擎計算、或者平臺和介面不相容皮卡魚 60 規則,則可以關閉此設定。如果發現莫名其妙的送子問題,很可能就是此選項導致,說明和你下棋平臺或介面的 60 規則不相容,可以關閉。(其實送子並非問題,因為 60 回合不吃子時引擎已經視為 0 分,任何不會馬上造成吃子的著法都是 0 分)
皮卡魚的自然限招規則,不會把每方超過 10 次將軍的著法計入限招,並且對應的應將步也不會計入,但當局面產生吃子後,將軍次數會重新計算。
Rule60MaxPly
預設:120 · 範圍:1 ~ 150
此選項僅在「Sixty Move Rule」設定為開時才會生效。自然限招的步數設定,設定範圍 1 到 150,預設為 120,且 120 為天天象棋的限招規則。注意 120 就是 60 回合。
比如設定 120 時引擎將會考慮到 60 回合(120 步)不吃子判和,把 60 回合不吃子視為 0 分。
注意
除特殊情況拆棋以外不建議調整該選項,因為引擎的搜尋參數耦合 120 步自然限招,如果小太多,很可能導致棋力還不如直接關閉自然限招。並且一旦引擎走到了認為的限招步數,後續著法將會隨機。只適合特殊情況拆棋使用,例如大優勝勢殘局局面想要找到可能的迅速簡化或吃子路線,並且使用完後要隨時記得要調回 120,否則可能導致未來拆棋或引擎聯賽測試出現荒謬的結果。
Clear Hash
清除引擎目前的雜湊記憶。不過最常見的是直接重新載入引擎達到這個效果。
MultiPV
預設:1 · 範圍:1 ~ 500
多主變思考。引擎分析局面時預設是 1 個主變。當改變此選項,引擎分析時會增加當前局面的主變數量,各主變的深度一致,並同時顯示(即同一層會顯示多個變化)。
或者說讓著法按「主變的待遇」去計算,原本預設只有一個著法享受主變待遇。
設定範圍 1~500,預設是 1,即只有一個主變。
注意
調高數字將會降低棋力,僅供拆棋分析使用,實戰和引擎測試請不要使用。並且只是增加當前的局面主變數量,在思考後續局面時照舊(顯而易見否則指數爆炸)。
注:主變是主要變例(Principle Variation)的縮寫。
Skill Level
預設:20(不限制棋力) · 範圍:0 ~ 20
限制引擎的棋力水平,設定非 20 時,有一定機率在出招時選擇劣變(同時會開啟 MultiPV=4),可用作人軟對弈。注意僅僅是引擎出招選擇劣變,引擎分析和 MultiPV=4 相同。
設定範圍 0~20,預設為不限制棋力的 20。
但如果開啟 UCI_LimitStrength,將會使 Skill Level 無效。
UCI_LimitStrength
預設:關閉
預設關閉。開啟後將會使 Skill Level 無效,讓 UCI_Elo 生效。
UCI_Elo
範圍:1280 ~ 3133
更細緻地限制引擎的棋力水平,和 Skill Level 放水原理相同。只有開啟 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 的值已經和象棋引擎聯賽天梯圖校準。
Mate Threat Depth
範圍:0 ~ 10
判斷中規裡「殺」的回合數。該選項只在 Repetition Rule 裡設定為 ChineseRule 時才會生效,設定範圍 0~10,設定 0 則引擎不會判斷俗稱的中國規則「殺」。設定 1~10,則引擎會在搜尋中判斷循環招法是不是 1~10 回合內的「殺」,而「殺」在中國規則裡可能導致循環違規。設定得越高棋力下降越嚴重。適合純人在中規環境下拆棋。
注:俗稱的「中國規則」的準確名稱是中國象棋協會發布的《象棋競賽規則》。
Repetition Rule
可選值:AsianRule、SkyRule、ComputerRule、ChineseRule、AllowChase、YitianRule、NoJudgement
AsianRule是亞洲規則(作者團隊所理解的一個亞規版本),違規嚴重級:長將>長捉同一子>其他,屬於 2fold(相同局面一旦重複出現直接進行判決,也就是一個局面出現第 2 次時判決)。大部分網路規則都是亞規。注:俗稱的「亞洲規則」的準確名稱是世界象棋聯合會釋出的《世界象棋規則》。
SkyRule是某些網路平臺規則。請注意,某些網路規則是亞規基礎上稍作修改的,並不是中規。用於線上對弈後拆棋,供純人更好地在平臺適應規則。請自行辨別網路規則是不是亞規。(該棋規程式碼作者為 skystarspython)ComputerRule是基於皮卡魚作者《中國象棋程式競賽規則》的規則,和AsianRule有些許出入,也和所有網路平臺規則都有較大差異,但是是唯一一個全部符合所有亞規圖例結果裁決的規則,更嚴格按照亞規文字定義,並且屬於 3fold(一個局面出現第 3 次時判決)。ChineseRule是極簡化的中國規則(中規),但本質上是亞規改版。注意目前沒有網路平臺使用中規,最多都是亞規稍加修改。目前中規由於定義過度模糊且複雜,複雜棋例比較依賴裁判的主觀想法,每個裁判的理解不同,等於本質上有無數中規,絕無任何可能程式化。皮卡魚簡化中規違規嚴重級:長將>長捉、長殺、將殺循環、將捉循環、殺捉循環>其他。開啟此選項後,
Mate Threat Depth不為 0 時,引擎才會判斷「殺」。AllowChase是僅禁止長將,允許其他一切循環著法。因為象棋的規則不統一,所以在一些優勢勝勢局可以在此規則下進行拆棋分析,以求找到不涉及循環棋規的路線,避開可能存在的循環棋規問題。YitianRule適合在弈天平臺使用。但是弈天平臺的自然限招判定需要自己手動點選。NoJudgement是允許一切循環,沒有任何違規判定。
注意
上述規則要隨時記得調整。例如使用其他規則拆棋後,如果之後要進行引擎聯賽測試要調回 AsianRule,否則可能出現荒謬的測試結果。
ScoreType
可選值:Elo、PawnValueNormalized、Raw
引擎顯示的分數種類,不影響棋力。
Elo:勝率分數。根據勝率模型,將原始分數轉換而成的分數。皮卡魚(自 2024 年開始)的 elo 分是和 ELO 分差掛鉤,200 分代表自對弈快棋有 76% 勝率(象棋圈常說的勝率,也就是勝局加上一半的和局,例如 4 勝 4 和 2 負就是 60% 勝率,3 勝 4 和 3 負就是 50% 勝率),elo 分差和勝率的關係如下圖所示。PawnValueNormalized:原始分數除以一個兵價值的常數。Raw:原始分數。


LU_Output
預設:開啟
預設開啟。開啟會顯示 lowerbound 和 upperbound 的資訊,通俗說同一層可能會輸出多次結果,比如某一層正在上層的時候會輸出不完整的思考細節。若關閉,一層只會輸出一次。
該選項只有輸出區別,不影響棋力。
DrawRule
預設:None
可選值:None、DrawAsBlackWin、DrawAsRedWin、DrawRepAsBlackWin、DrawRepAsRedWin
None是正常,預設None。DrawAsBlackWin是和棋黑勝,引擎會把和棋循環與自然限招和棋算作黑勝。DrawAsRedWin是和棋紅勝。DrawRepAsBlackWin是和棋循環黑勝,引擎只會把和棋的循環算作黑勝。拆棋分析的時候,不想短期內走出和棋循環可以利用這個。DrawRepAsRedWin是和棋循環紅勝。
皮卡魚引擎並不保證這些規則的棋力,尤其是分數評估很不可信,只有著法可能會有參考性。
上述規則如果調整過,要隨時記得調整。例如使用和棋黑勝拆棋後,如果之後要進行引擎聯賽測試要調回 None,否則會出現荒謬的測試結果。
EvalFile
引擎要讀取的 NNUE 權重檔名稱與路徑。引擎預設讀取同一檔案路徑下名為 pikafish.nnue 的檔案,可以將 NNUE 檔案改名,並且通過此選項使其仍可以被讀取。一般人不需要,手機優步可通過此選項達到配置多引擎的效果。
部分介面(特別是自製介面,如 T 介面)在載入引擎的時候不會將工作目錄切換到引擎目錄下,導致引擎無法讀取 NNUE 檔案。可以通過該選項設定 NNUE 的完整路徑解決問題,或者直接把 pikafish.nnue 放在介面目錄下(如果引擎沒有提供設定選項功能可以嘗試)。
NumaPolicy
預設:auto
預設 auto,一般不用管此選項。
但 2022 年和更早的 Windows 系統,多核心伺服器注意,auto 很可能會吃不滿執行緒,可改為 hardware 或者關閉超執行緒,前者多開引擎時會有分配問題,後者有機率正常。
其他選項
其餘選項一般人基本用不到(例如 Threads 和 Hash,介面會提供相應的設定),可以無視,如果想要知道,可以進入皮卡魚官方 GitHub 中的 Wiki 檢視。
