⚡ Ação: Qual é o objetivo principal do algoritmo MiniMax?
👉 Determinar a melhor ação para o jogador atual, assumindo que todos os jogadores jogam de forma ótima, retornando também a utilidade esperada.
⚡ Ação: Porque é que em jogos de soma nula a utilidade pode ser representada por um único número?
👉 Porque o ganho de um jogador corresponde exatamente à perda do outro, permitindo representar o estado com um valor único positivo ou negativo.
⚡ Ação: O que faz o MiniMax quando recebe um estado final?
👉 Retorna imediatamente a utilidade desse estado e nenhuma ação, terminando a recursão.
⚡ Ação: Porque é que o MiniMax analisa todas as ações válidas?
👉 Para garantir que encontra a melhor jogada possível, considerando todas as alternativas do jogador e do adversário.
⚡ Ação: Como o MiniMax decide qual ação é a melhor?
👉 Compara as utilidades resultantes de cada ação e escolhe a que maximiza a utilidade do jogador atual.
⚡ Ação: Porque é que o MiniMax é considerado uma procura em profundidade?
👉 Porque explora cada ramo da árvore até ao fim antes de voltar atrás, tal como a procura em profundidade clássica.
⚡ Ação: Porque é que o MiniMax não pára quando encontra uma solução?
👉 Porque precisa avaliar todas as alternativas para garantir que a solução encontrada é realmente a melhor possível.
⚡ Ação: Porque é que o MiniMax pode usar uma utilidade por jogador?
👉 Em jogos com mais de dois jogadores, cada jogador tem objetivos próprios, exigindo uma utilidade separada para cada um.
⚡ Ação: No exemplo de 2 jogadores, porque é que o primeiro ramo retorna verde?
👉 Porque todos os estados finais desse ramo correspondem a vitória do jogador 2, logo essa é a utilidade propagada.
⚡ Ação: No exemplo de 2 jogadores, porque é que o jogador 1 escolhe o terceiro movimento no exemplo?
👉 Porque esse movimento conduz à utilidade mais favorável para si, comparando com as alternativas anteriores.
⚡ Ação: O que representam as cores laranja, verde e cinzento no exemplo de 2 jogadores?
👉 Laranja representa vitória do jogador 1, verde vitória do jogador 2 e cinzento um empate.
⚡ Ação: No exemplo de 3 jogadores, como decide o jogador 3?
👉 Escolhe sempre o estado que maximiza a sua própria utilidade, ignorando as utilidades dos outros jogadores.
⚡ Ação: Porque é que existem 6 resultados possíveis no exemplo de 3 jogadores?
👉 Porque cada jogador pode vencer, empatar ou perder, originando combinações distintas de resultados.
⚡ Ação: O MiniMax muda quando há 3 jogadores?
👉 A lógica é a mesma, mas cada jogador maximiza a sua própria utilidade, e a comparação é feita apenas sobre o valor desse jogador.
⚡ Ação: O que representam alfa e beta no MiniMax com cortes?
👉 Representam as melhores alternativas já conhecidas para cada jogador, usadas para decidir quando cortar ramos.
⚡ Ação: Quando ocorre um corte alfa/beta?
👉 Quando um jogador adversário já tem uma alternativa melhor ou igual ao valor atual, tornando inútil explorar mais ações.
⚡ Ação: Porque é que os cortes alfa/beta poupam tempo?
👉 Porque evitam explorar ramos que não podem alterar a decisão final, reduzindo o número de estados analisados.
⚡ Ação: Porque é que o alfa inicial pode ser a vitória do adversário?
👉 Porque representa a pior alternativa possível para o jogador MAX, servindo como limite inferior.
⚡ Ação: Porque é que o beta inicial pode ser a vitória do jogador MAX?
👉 Porque representa a pior alternativa possível para o jogador MIN, servindo como limite superior.
⚡ Ação: Quando é que alfa ou beta são atualizados?
👉 Quando o jogador atual encontra uma utilidade melhor do que a sua melhor alternativa conhecida.
⚡ Ação: Porque é que o segundo ramo do exemplo MiniMaxAB é cortado?
👉 Porque o jogador 2 já tem uma alternativa verde, melhor do que o cinzento encontrado, tornando inútil explorar mais.
⚡ Ação: No exmeplo MiniMaxAB, porque é que alguns estados do nível 3 são cortados imediatamente?
👉 Porque o valor encontrado é pior do que a melhor alternativa do adversário, ativando a condição de corte.
⚡ Ação: Porque é que ordenar sucessores melhora o desempenho do MiniMaxAB?
👉 Porque explorar primeiro os melhores movimentos aumenta a probabilidade de cortes mais cedo.
⚡ Ação: No MiniMaxAB ordenado, porque é que a ordem correta poupa mais estados?
👉 Porque os melhores valores surgem mais cedo, permitindo cortar ramos inteiros antes de os explorar.
⚡ Ação: Porque é necessário limitar a profundidade na procura adversa?
👉 Porque a árvore de jogo cresce exponencialmente e é impraticável explorá‑la totalmente.
⚡ Ação: O que significa relaxar o problema para criar uma heurística?
👉 Simplificar o problema, por exemplo assumindo que só um jogador joga, para estimar a distância até ao objetivo.
⚡ Ação: O que são características relevantes numa heurística?
👉 Elementos do estado que influenciam a utilidade, como material no xadrez ou ameaças no jogo do galo.
⚡ Ação: Porque é que ameaças a 1 jogada têm peso maior?
👉 Porque exigem resposta imediata e têm impacto direto no resultado, devendo influenciar mais a avaliação.
⚡ Ação: Porque é que a heurística pode oscilar no meio de uma troca?
👉 Porque o estado avaliado reflete apenas a jogada atual, sem considerar a resposta do adversário.
⚡ Ação: O que é a zona de estabilidade na procura limitada?
👉 Uma região onde a heurística deixa de variar significativamente, permitindo parar a expansão.
⚡ Ação: Porque restringir movimentos após o limite de profundidade?
👉 Para analisar apenas ações que alteram significativamente a heurística, evitando ruído.
⚡ Ação: Qual é a principal vantagem da procura iterativa?
👉 Permite usar o melhor resultado disponível dentro do tempo limite, aprofundando progressivamente.
⚡ Ação: Porque é que a procura iterativa melhora os cortes alfa/beta?
👉 Porque usa os valores da iteração anterior para ordenar sucessores, aumentando a eficiência dos cortes.
⚡ Ação: Como uma hashtable ajuda na procura iterativa?
👉 Evita recalcular estados já avaliados, reutilizando resultados entre iterações.
⚡ Ação: Porque é que o centro tem valor mais alto na heurística do jogo do galo?
👉 Porque uma marca no centro cria mais ameaças e aumenta as possibilidades de vitória.
⚡ Ação: Porque considerar ameaças a 2 jogadas?
👉 Porque indicam potencial estratégico futuro, mesmo que não sejam imediatas.
⚡ Ação: O MiniMaxAB altera o resultado final quando comparado com o MiniMax?
👉 Não, apenas reduz o número de estados analisados; o resultado é o mesmo do MiniMax completo.
⚡ Ação: Porque é que a ordem dos sucessores não altera o resultado?
👉 Porque o algoritmo continua a considerar todas as alternativas relevantes; apenas muda a eficiência.
⚡ Ação: O que acontece se a profundidade for demasiado pequena?
👉 A heurística pode avaliar estados demasiado superficiais, levando a decisões fracas.
⚡ Ação: Porque é que heurísticas são essenciais em jogos reais?
👉 Porque a árvore completa é demasiado grande para ser explorada, exigindo estimativas para orientar a procura.
📄 Ver slides (PDF)
Nova pergunta: 🎲