Finish Adversarial Games, Constraint Satisfaction




CS156

Chris Pollett

Sep 24, 2014

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(s)) 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(s, 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(s, a))) 
    return v

Remarks on Minimax Algorithm

Alpha-beta Pruning

Imperfect Real-Time Decisions

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