我必須創建一個AI,它必須與其他AI進行競爭。擊敗一個極小極度對手
兩個AI都將在相同的硬件上運行,具有相同數量的處理時間和內存。我知道對手AI將使用alpha beta修剪的minimax算法。
現在我的問題是 - 有什麼辦法打這樣的對手?如果我自己使用minimax - 那麼AI就完全預測對方的動作,並根據遊戲的固有屬性(首先移動勝利等)來解決遊戲。
明顯的解決方案是以某種方式進一步提前考慮可能的更好的評估方法 - 因爲處理器時間是相同的,我無法評估更大的深度(假設相反的AI代碼被同等優化)。我可以使用預先計算的樹來獲得額外的優勢,但是如果沒有超級計算機,我當然無法「解決」任何不平凡的遊戲。
在故意挑選一個非最佳節點(如alpha beta將會修剪的節點)時是否有一些價值?這可能會對對手造成CPU時間損失,因爲他們必須返回並重新評估該樹。它會對我造成懲罰,以及我不得不評估最小最大樹+ alpha測試版,以查看哪些節點alpha beta會修剪而不會獲得任何直接益處。
針對這種對手進行優化的其他策略是什麼?
我們在談論什麼遊戲? –
奧賽羅具體而言,但我也對這種問題的更一般方法感興趣。 – nelak