Finish Adversarial Games, Constraint Satisfaction




CS156

Chris Pollett

Sep 25, 2017

Outline

Introduction

The Minimax Algorithm

The minimax algorithm below computes the minimax decision from the current state. So we could use it to actually make an agent that could play a game.

Here `argmax_(a in s) f(a)` returns the element `a` of set `S` that has the maximum value of `f(a)`.

function MINIMAX-DECISION(state) return an action //it is assume is MAX's turn
    return argmax_(a in ACTION(state)) MIN-VALUE(RESULT(state, a))

function MAX-VALUE(state) return a utility value
    if (TERMINAL_TEST(state) == true) then return UTILITY(state, MAX)
    v := -infty
    for each a in ACTION(state) do
      v := MAX(v, MIN-VALUE(RESULT(state, a))) 
    return v

function MIN-VALUE(state) return a utility value
    if (TERMINAL_TEST(state) == true) then return UTILITY(state,MAX)
    v := infty
    for each a in ACTION(state) do
      v := MIN(v, MAX-VALUE(RESULT(state, a))) 
    return v

Remarks on Minimax Algorithm

Quiz

Which of the following is true?

  1. The sum of Manhattan distances of misplaced pieces is the cost of a relaxed solution to the 8-puzzle problem.
  2. The Hill-climbing algorithm is always complete and optimal.
  3. Local Beam search is a kind of genetic algorithm.

Alpha-beta Pruning

Imperfect Real-Time Decisions

Stochastic Games

Game tree with change nodes

Partial Observable Games

What is a Constraint Satisfaction Problem?

CSP Definition

Definition Example

A CSP Solution

Example: Map Coloring

Map of Australia

Remarks

Example: Job-shop Scheduling

More Job-shop scheduling

Variations on the CSP Formalism