Considere uma árvore minimax para um problema de pesquisa adversário. Por exemplo, nesta figura (poda alfa-beta):
Ao marcar a árvore com baixo para cima, primeiro atravessamos o nó 3 e atribuímos B. \ max = 3 . Depois, atravessamos 12 e 8 nesta ordem, para garantir que B.max = 3 .
Mas por que ? Qual é a utilidade desse valor?
Respostas:
Esta figura (que é de fato correta) é usada na explicação do algoritmo de poda alfa-beta em uma árvore minimax. A poda alfa-beta é um método usado para podar partes da árvore minimax em um problema de pesquisa adversário. No contexto de um jogo da velha, as árvores minimax destinam-se a permitir que o computador procure no espaço de todos os tabuleiros de jogos possíveis (configurações de x e o) assumindo que os movimentos do jogador são ideais. Isso permite que o computador proponha uma mudança que forneça o melhor resultado (é por isso que o jogo de conectar-quatro no seu computador é incrivelmente difícil de vencer!). Para uma descrição mais completa, sugiro "AI a Modern Approach", de Stuart e Norvig (pág. 162-170 ish, na 2ª ed.).
Agora que esclarecemos alguma confusão sobre o algoritmo. A poda alfa-beta tenta evitar a expansão de subárvores com base em como o algoritmo minimax funciona. Sabemos que o nó máximo no nível superior terá o maior valor de todos os seus filhos. Portanto, o nó encontra o valor e, até o momento, esse é o valor máximo que ele deseja passar para o pai, para que ele coloque esse valor no slot MAX. Então ele encontra . Lembre-se de que é um nó MIN, portanto, ele deseja minimizar o valor que passa para seu pai, mantendo assim o valor no slot MAX. Novamente para . Quando pesquisou todos os seus filhos, ele conhece o limite inferior máximo (B 3 12 B 3 8 B α ) e a solução de limite superior mínimo ( ) de sua subárvore e mantém esses valores em MIN ( ) e MAX ( ) (como [3, 3]).β α β
Nota: min e max rotulados na figura NÃO são os valores mínimo e máximo da subárvore! Eles são (rotulados de maneira bastante confusa) os limites alfa-beta das soluções da subárvore (lembre-se de que este é um problema de pesquisa contraditório).
Em seguida, mover para o nó . Aqui nos deparamos com um na primeira posição. O nó , que deseja selecionar o valor mais baixo de sua subárvore, SABE agora que seu pai não selecionará seu valor, pois o nó encontrou um valor maior. Portanto, podemos podar o resto da sub-árvore e continue para .C 2 C B D
Finalmente, para responder à pergunta específica: Por que .min = 3? Um valor para (o limite inferior máximo de soluções neste nó) e (o limite superior mínimo de soluções neste nó) é mantido em cada nó para executar a remoção. Esses valores vinculam os possíveis casos em que o valor de um nó (ou sua subárvore) pode fazer parte da solução.B α β
Neste exemplo, ele não parece ter um papel, no entanto, tente olhar para exemplos mais complicados (ou seja, árvores com uma altura> 3) como esta e veja se você consegue entender isso.
Não posso fazer justiça à poda minimax ou alfa-beta aqui (principalmente porque não as uso há anos); portanto, se você realmente quiser entender isso, consulte um livro sobre IA como o de Stuart e Norvig (o surpreendentemente, a página da Wikipedia também não tem visualização).
fonte