2012-11-15 25 views
0

我理解該算法,因爲它適用於Alpha-Beta修剪。我不明白的是,因爲我沒有辦法在Java中代表∞,所以在我第一次調用Minimax方法時,AlphaBeta應該以什麼值開始? (通常我會認爲你可以讓他們-∞+∞)。我能想到的唯一的東西是0,但會產生一些不想要的結果嗎?謝謝!在Minimax算法中,alpha/beta有什麼價值?

回答

4

這取決於您使用的數據類型。 -∞+∞只是表示可能的最低和最高值。

如果您選擇int,相應的值可以是Integer.MIN_VALUEInteger.MAX_VALUE。該算法將工作得很好。

另外,infinity可以用Java表示。如果你真的想,你可以使用float,其中has both a positive and negative infinity value。您可以使用Float.POSITIVE_INFINITYFloat.NEGATIVE_INFINITY。不過,對於這個算法,我會堅持整數。只是因爲他們擺脫了與舍入和精確度有關的所有可能的意外行爲。

+0

感謝您的回答,不知道關於∞和Java!其他人先回答:) – Houdini

+0

@Houdini:沒關係,我把upvoted這個答案 – durron597

+0

好涼快......也謝謝你! – Houdini

4
int alpha = Integer.MIN_VALUE 
int beta = Integer.MAX_VALUE 

最好你可以做的沒有無限。