0

Alpha-Beta 잘라 내기에 적용되므로 알고리즘을 이해합니다. Java에서 ∞을 표현할 방법이 없기 때문에 Minimax 메서드에 대한 첫 번째 호출에서 어떤 값을 AlphaBeta으로 시작해야합니까? (일반적으로 나는 그들을 -∞+∞으로 만들 수 있다고 생각합니다.) 내가 생각할 수있는 유일한 것은 0 일 것이지만 원치 않는 결과를 낳을까요? 감사!Minimax 알고리즘에서 시작하는 알파/베타는 어떤 가치가 있습니까?

답변

4

사용중인 데이터 유형에 따라 다릅니다. -∞+∞은 가능한 가장 낮은 값과 가장 높은 값을 의미합니다.

int을 선택한 경우 각각의 값은 Integer.MIN_VALUEInteger.MAX_VALUE이 될 수 있습니다. 알고리즘은 잘 작동합니다.

또한 무한대는 Java로 표현 될 수 있습니다. 정말로 원하면 float을 사용할 수 있습니다. has both a positive and negative infinity value입니다. Float.POSITIVE_INFINITYFloat.NEGATIVE_INFINITY을 사용할 수 있습니다. 이 알고리즘에서는 정수를 사용합니다. 반올림과 정밀도와 관련하여 예기치 않은 모든 동작이 발생하지 않기 때문입니다.

+0

답변 주셔서 감사합니다, 그것에 대해 알고 ∞ 및 Java! 다른 사람이 먼저 대답했습니다 :) – Houdini

+0

@Houdini : 괜찮습니다. 나는이 대답을 upvoted했습니다. – durron597

+0

Ok cool ... 너무 감사합니다! – Houdini

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

최고로 무한대로 할 수 있습니다.