我曾經寫過俄羅斯方塊AI,該俄羅斯方塊AI相當出色。我使用的算法(described in this paper)是一個兩步過程。確定在進化算法中權衡哪些輸入
第一步,程序員決定跟蹤對問題「感興趣」的輸入。在俄羅斯方塊中,我們可能有興趣跟蹤連續有多少間隙,因爲最小化間隙可以幫助更輕鬆地放置未來的棋子。另一個可能是柱子的平均高度,因爲如果你即將輸球,冒險是一個不好的主意。
第二步是確定與每個輸入相關的權重。這是我使用遺傳算法的部分。只要權重根據結果隨時間調整,任何學習算法都會在這裏執行。這個想法是讓計算機決定輸入與解決方案的關係。
使用這些輸入及其權重,我們可以確定採取任何行動的價值。例如,如果將直線形狀一直放在右列中,將消除4個不同行的間隙,那麼如果重量較高,此操作可能會得到非常高的分數。同樣,將它平放在頂部可能實際上會導致間隙,所以動作得分較低。
我一直想知道是否有辦法將學習算法應用到第一步,在那裏我們找到「有趣」的潛在投入。編寫一個計算機似乎是可能的,計算機首先學習什麼輸入可能是有用的,然後應用學習來權衡這些輸入。之前有沒有做過這樣的事情?它是否已被用於任何AI應用程序?
+1我想在這個領域開始。我有幾個寵物演示程序,但沒有大的。有興趣看看你回答什麼樣的答案。 – 2009-10-28 18:15:09