Game Description General Game Playing Lecture 3

Slides:



Advertisements
Similar presentations
Naïve Bayes. Bayesian Reasoning Bayesian reasoning provides a probabilistic approach to inference. It is based on the assumption that the quantities of.
Advertisements

Markov Decision Process
Answer Set Programming Overview Dr. Rogelio Dávila Pérez Profesor-Investigador División de Posgrado Universidad Autónoma de Guadalajara
Chapter 8-3 Markov Random Fields 1. Topics 1. Introduction 1. Undirected Graphical Models 2. Terminology 2. Conditional Independence 3. Factorization.
Logic in general Logics are formal languages for representing information such that conclusions can be drawn Syntax defines the sentences in the language.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
CSE 636 Data Integration Datalog Rules / Programs / Negation Slides by Jeffrey D. Ullman.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 6 The Relational Algebra and Relational Calculus.
Testing an individual module
1 Relational Algebra and Calculus Yanlei Diao UMass Amherst Feb 1, 2007 Slides Courtesy of R. Ramakrishnan and J. Gehrke.
Introduction General Game PlayingLecture 1 Michael Genesereth Spring 2006.
INTRODUCTION TO THE THEORY OF COMPUTATION INTRODUCTION MICHAEL SIPSER, SECOND EDITION 1.
CSE314 Database Systems The Relational Algebra and Relational Calculus Doç. Dr. Mehmet Göktürk src: Elmasri & Navanthe 6E Pearson Ed Slide Set.
Pattern-directed inference systems
1 Relational Algebra and Calculas Chapter 4, Part A.
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
Simultaneously Learning and Filtering Juan F. Mancilla-Caceres CS498EA - Fall 2011 Some slides from Connecting Learning and Logic, Eyal Amir 2006.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Mathematical Preliminaries
© Copyright 2008 STI INNSBRUCK Intelligent Systems Propositional Logic.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Logics for Data and Knowledge Representation ClassL (part 1): syntax and semantics.
Propositional Nets General Game PlayingLecture 6 Michael Genesereth Spring 2012.
Artificial Intelligence Knowledge Representation.
Logics for Data and Knowledge Representation ClassL (part 1): syntax and semantics.
Artificial Intelligence Logical Agents Chapter 7.
Distributed Systems Lecture 6 Global states and snapshots 1.
BOOLEAN INFORMATION RETRIEVAL 1Adrienn Skrop. Boolean Information Retrieval  The Boolean model of IR (BIR) is a classical IR model and, at the same time,
Logical Agents. Inference : Example 1 How many variables? 3 variables A,B,C How many models? 2 3 = 8 models.
Logical Agents. Outline Knowledge-based agents Logic in general - models and entailment Propositional (Boolean) logic Equivalence, validity, satisfiability.
1 Semester © Michael Thielscher, Michael Genesereth 2011 General Game Playing Intelligent Agents for eMarkets Prof Michael Thielscher Adjunct.
Adversarial Search and Game-Playing
CSE202 Database Management Systems
Propositional Calculus: Boolean Functions and Expressions
Knowledge Representation and Reasoning
The Propositional Calculus
Modeling Arithmetic, Computation, and Languages
ARTIFICIAL INTELLIGENCE
Lecture 2 The Relational Model
Intelligent Information System Lab
Expectimax Lirong Xia. Expectimax Lirong Xia Project 2 MAX player: Pacman Question 1-3: Multiple MIN players: ghosts Extend classical minimax search.
Semantics of Datalog With Negation
Relational Algebra 461 The slides for this text are organized into chapters. This lecture covers relational algebra, from Chapter 4. The relational calculus.
Intro to Theory of Computation
Subject today is General Game Playing, a new variation on an old topic in Artificial Intelligence. Playing games like chess couples intellectual activity.
Propositional Calculus: Boolean Algebra and Simplification
Pruning Techniques General Game Playing Lecture 8
Logics for Data and Knowledge Representation
Alternating tree Automata and Parity games
INTRODUCTION TO THE THEORY OF COMPUTATION
This Lecture Substitution model
Game Description General Game Playing Lecture 2
Event-Based Architecture Definition Language
Back to “Serious” Topics…
Introduction to Artificial Intelligence Lecture 9: Two-Player Games I
More Metagaming General Game Playing Lecture 7
Logical Entailment Computational Logic Lecture 3
Brief Introduction to Computational Logic
This Lecture Substitution model
Game Description General Game Playing Lecture 2
ece 720 intelligent web: ontology and beyond
Game Reformulation General Game Playing Lecture 7
CSE S. Tanimoto Lambda Calculus
Copyright © Cengage Learning. All rights reserved.
This Lecture Substitution model
Representations & Reasoning Systems (RRS) (2.2)
COMPILER CONSTRUCTION
Logical Agents Prof. Dr. Widodo Budiharto 2018
Minimax Trees: Utility Evaluation, Tree Evaluation, Pruning
Presentation transcript:

Game Description General Game Playing Lecture 3 Michael Genesereth / Nat Love Spring 2006

Finite Synchronous Games Finite environment Environment with finitely many states One initial state and one or more terminal states Finite Players Fixed finite number of players Each with finitely many “actions” Each with one or more goal states Synchronous Update All players move on all steps (some no ops) Environment changes only in response to moves

Example s2 s5 s8 s1 s3 s6 s9 s11 s4 s7 s10 aa ab aa bb ab aa aa ab bb

Example Revisited S ={s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11} I1={a, b} I2={a, b} u(s1,a,a,s2) u(s4,a,a,s7) u(s7,a,a,s10) u(s10,b,a,s9) u(s1,a,b,s3) u(s4,a,b,s3) u(s8,a,b,s5) u(s10,b,b,s11) u(s1,b,a,s4) u(s6,a,a,s5) u(s8,b,b,s11) u(s11,a,a,s11) u(s1,b,b,s1) u(s6,a,b,s9) u(s9,a,a,s8) u(s2,a,a,s5) u(s6,b,a,s7) u(s9,a,b,s11) u(s2,a,b,s3) u(s6,b,b,s3) i=s1 T ={s3, s8, s11} G1={s8, s11} G2={s3, s7} Why is the transition table formalized as a relation instead of a function?

Games as Mathematical Structures An n-player game is a structure with components: S - finite set of states I1, …, In - finite sets of actions, one for each player u  S  I1 ... In  S - update relation i  S - initial game state T  S - the terminal states G1, ..., Gn - where Gi  S - the goal relations

Direct Description Good News: Since all of the games that we are considering are finite, it is possible in principle to communicate game information in the form of sets of objects and tuples of objects. Problem: Size of description. Even though everything is finite, these sets can be large. Chess, for example, has approximately 1030 states.

Relational Nets

States versus Propositions In many cases, worlds are best thought of in terms of propositions, e.g. whether a particular light is on or off. Actions often affect a subset of propositions. States represent all possible ways the world can be. As such, the number of states is exponential in the number of such propositions, and the action tables are correspondingly large. Idea - represent propositions directly and describe actions in terms of their effects on indidvidual propositions rather than entire states.

Tic-Tac-Toe X O

Relational States cell(1,1,x) cell(1,2,b) cell(1,3,b) cell(2,1,b) cell(2,2,o) cell(2,3,b) cell(3,1,b) cell(3,2,b) cell(3,3,x) control(black)

Transitions cell(1,1,x) cell(1,1,x) cell(1,2,b) cell(1,2,b) cell(1,3,b) cell(1,3,o) cell(2,1,b) cell(2,1,b) cell(2,2,o) cell(2,2,o) cell(2,3,b) cell(2,3,b) cell(3,1,b) cell(3,1,b) cell(3,2,b) cell(3,2,b) cell(3,3,x) cell(3,3,x) control(black) control(white) noop mark(1,3)

Logical Encoding init(cell(1,1,b)) init(cell(1,2,b)) init(cell(1,3,b)) init(control(x)) legal(W,mark(X,Y)) :- true(cell(X,Y,b)) & true(control(W)) legal(white,noop) :- true(control(black)) legal(black,noop) :- true(control(white)) …

Syntax of Relational Logic

Syntax of Relational Logic Vocabulary: Object Variables: X, Y, Z Object Constants: a, b, c Function Constants: f, g, h Relation Constants: p, q, r Logical Operators: ~, &, |, :-, # Terms: Variables: X, Y, Z Functional Terms: f(a), g(a,b), h(a,b,c) Sentences: Simple Sentences: p(a,g(a,b),c) Logical Sentences: r(X,Y) :- p(X,Y) & ~q(Y)

Safety A rule is safe if and only if every variable in the head appears in some positive subgoal in the body. Safe Rule: Unsafe Rule: In GDL, we require all rules to be safe.

Dependency Graph The dependency graph for a set of rules is a directed graph in which (1) the nodes are the relations mentioned in the head and bodies of the rules and (2) there is an arc from a node p to a node q whenever p occurs with the body of a rule in which q is in the head. t s r p q A set of rules is recursive if it contains a cycle. Otherwise, it is non-recursive.

Recursion A set of rules is recursive if it contains a cycle. Otherwise, it is non-recursive. t s r p q

Stratified Negation The negation in a set of rules is said to be stratified if there is no recursive cycle in the dependency graph involving a negation. Stratified Negation: Negation that is not stratified: In GDL, we require that all negations be stratified.

Extensional and Intensional Relations Database applications start with a partial database, i.e. sentences for some relations (extensional relations) and not others (intensional relations). Rules are then written to define the intensional relations in terms of the extensional relations. rules Extensional Intensional Given an extensional database and a set of rules, we can obtain the database’s closure as follows.

Example Database applications start with a partial database, i.e. sentences for some relations (extensional relations) and not others (intensional relations). Rules are then written to define the intensional relations in terms of the extensional relations. Given an extensional database and a set of rules, we can obtain the database’s closure as follows.

Single Rule The value of a single non-recursive rule on a database D is the set of all rule heads obtained by consistently substituting ground terms from D for variables in such a way that the substituted subgoals are all in D. Sample Rule: Database: Extension:

Multiple Rules The value of a set of rules with a common relation on a database D is the union of the values on the individual rules. Sample Rules: Sample Database: Value:

Multiple Relations The value of a set of non-recursive rules with different head relations is obtained by evaluating rules in order in which their head relations appear in the corresponding dependency graph. Sample Rules: Value Computation:

Recursion To compute the value of a recursive rule, start with the empty relation. Compute the value using multiple rule computation. Iterate till no new tuples are added. Sample Rules: Value Computation:

Negation There are various ways to compute the value of negative rules. In classical negation, a negation is true only if the negated sentence is known to be false (i.e. there must be rules concluding negated sentences). This is the norm in computational logic systems. In GDL, we do not have such rules. In negation as failure, a negation is true if and only if the negated sentence is not known to be true. This is the norm in database systems.

Negation as Failure Example Definition: Value Computation:

Game Description Language

Game-Independent Vocabulary Object Constants: 0, 1, 2, 3, … - numbers Relation Constants: role(player) init(proposition) true(proposition) next(proposition) legal(player,action) does(player,action) goal(proposition) terminal

Tic-Tac-Toe Vocabulary Object constants: white, black - players x, o, b - marks Function Constants: mark(number,number) --> action cell(number,number,mark) --> proposition control(player) --> proposition RelationConstants: row(number,player) column(number,player) diagonal(player) line(player) open

Extensional and Intensional Relations Extensional Relations: does(player,action) true(proposition) Intensional Relations: role(player) init(proposition) legal(player,action) next(proposition) goal(proposition,score) terminal

Roles role(white) role(black)

Initial State init(cell(1,1,b)) init(cell(1,2,b)) init(cell(1,3,b)) init(control(x))

Legality legal(W,mark(X,Y)) :- true(cell(X,Y,b)) & true(control(W)) legal(white,noop) :- true(control(black)) legal(black,noop) :- true(control(white))

Physics next(cell(M,N,x)) :- does(white,mark(M,N)) next(cell(M,N,o)) :- does(black,mark(M,N)) next(cell(M,N,Z)) :- does(W,mark(M,N)) & true(cell(M,N,Z)) & Z#b next(cell(M,N,b)) :- does(W,mark(J,K)) & true(cell(M,N,b)) & (M#J | N#K) next(control(white)) :- true(control(black)) next(control(black)) :- true(control(white))

Supporting Concepts row(M,W) :- diagonal(W) :- true(cell(M,1,W)) & true(cell(1,1,W)) & true(cell(M,2,W)) & true(cell(2,2,W)) & true(cell(M,3,W)) true(cell(3,3,W)) column(N,W) :- diagonal(W) :- true(cell(1,N,W)) & true(cell(1,3,W)) & true(cell(2,N,W)) & true(cell(2,2,W)) & true(cell(3,N,W)) true(cell(3,1,W)) line(W) :- row(M,W) line(W) :- column(N,W) line(W) :- diagonal(W) open :- true(cell(M,N,b))

Goals and Termination goal(white,100) :- line(x) goal(white,50) :- ~line(x) & ~line(o) & ~open goal(white,0) :- line(o) goal(black,100) :- line(o) goal(white,0) :- line(x) terminal :- line(W) terminal :- ~open

More Tedious Details

No Built-in Assumptions What we see: next(cell(M,N,x)) :- does(white,mark(M,N)) & true(cell(M,N,b)) What the player sees: next(welcoul(M,N,himenoing)) :- does(himenoing,dukepse(M,N)) & true(welcoul(M,N,lorenchise))

Knowledge Interchange Format Knowledge Interchange Format is a standard for programmatic exchange of knowledge represented in relational logic. Syntax is prefix version of standard syntax. Some operators are renamed: not, and, or. Case-independent. Variables are prefixed with ?. r(X,Y) <= p(X,Y) & ~q(Y) (<= (r ?x ?y) (and (p ?x ?y) (not (q ?y)))) (<= (r ?x ?y) (p ?x ?y) (not (q ?y))) Semantics is the same.

Agent Communication Language Start Message (start id role (s1 … sn) startclock playclock) Play Message (play id (a1 ... ak)) Stop Message (stop id (a1 ... ak))

Propositional Nets

Buttons and Lights p q a b r c Propositions represent conditions that are true or false in each state of the world. Connectives express logical relationships among truth values - negation, conjunction, disjunction, and so forth. Transitions express truth in one state as a function of truth in the preceding state.

Relational States p p q r p q

State Machine p p q r p q

Logical Encoding init(q) legal(robot,a) legal(robot,b) legal(robot,c) next(p) :- does(robot,a) & -true(p) next(p) :- does(robot,b) & true(q) next(p) :- does(robot,c) & true(p) next(q) :- does(robot,a) & true(q) next(q) :- does(robot,b) & true(p) next(q) :- does(robot,c) & true(q) next(r) :- does(robot,a) & true(r) next(r) :- does(robot,b) & true(r) next(r) :- does(robot,c) & true(q) goal :- true(p) & -true(q) & true(r) term :- true(p) & -true(q) & true(r)

Buttons and Lights Formalization S ={s1, s2, s3, s4, s5, s6, s7, s8} I = {a, b, c} u(s1,a,s5) u(s000,b,s010) u(s000,c,s001) u(s2,a,s2) u(s000,b,s010) u(s000,c,s001) u(s3,a,s3) u(s000,b,s010) u(s000,c,s001) u(s4,a,s4) u(s000,b,s010) u(s000,c,s001) I = s1 T = {s8} G = {s8}

Buttons and Lights Formalization P ={p, q, r} I = {a, b, c} u(s1,a,s5) u(s000,b,s010) u(s000,c,s001) u(s2,a,s2) u(s000,b,s010) u(s000,c,s001) u(s3,a,s3) u(s000,b,s010) u(s000,c,s001) u(s4,a,s4) u(s000,b,s010) u(s000,c,s001) I = s1 T = {s8} G = {s8}

Transitions cell(1,1,x) cell(1,1,x) cell(1,2,b) cell(1,2,b) cell(1,3,b) cell(1,3,o) cell(2,1,b) cell(2,1,b) cell(2,2,o) cell(2,2,o) cell(2,3,b) cell(2,3,b) cell(3,1,b) cell(3,1,b) cell(3,2,b) cell(3,2,b) cell(3,3,x) cell(3,3,x) control(black) control(white) noop mark(1,3)

Buttons and Lights p q r s a b c d Propositions represent conditions that are true or false in each state of the world. Connectives express logical relationships among truth values - negation, conjunction, disjunction, and so forth. Transitions express truth in one state as a function of truth in the preceding state.

Buttons and Lights Formalization S ={s000, s001, s010, s011, s100, s101, s110, s111} I = {a, b, c} u(s000,a,s100) u(s000,b,s010) u(s000,c,s001) u(s001,a,s001) u(s000,b,s010) u(s000,c,s001) u(s010,a,s010) u(s000,b,s010) u(s000,c,s001) u(s011,a,s011) u(s000,b,s010) u(s000,c,s001) I = s0 T = {sF} G = {sF}

States versus Features In many cases, worlds are best thought of in terms of features, e.g. red or green, left or right, high or low. Actions often affect subset of features. States represent all possible ways the world can be. As such, the number of states is exponential in the number of “features” of the world, and the action tables are correspondingly large. Idea - represent features directly and describe how actions change individual features rather than entire states.

Propositional Net Components Propositions Connectives Transitions p q r Propositions represent conditions that are true or false in each state of the world. Connectives express logical relationships among truth values - negation, comjunction, disjunction, and so forth. Transitions express truth in one state as a function of truth in the preceding state.

Propositional Net Propositions represent conditions that are true or false in each state of the world. Connectives express logical relationships among truth values - negation, conjunction, disjunction, and so forth. Transitions express truth in one state as a function of truth in the preceding state.

Markings Propositions represent conditions that are true or false in each state of the world. Connectives express logical relationships among truth values - negation, conjunction, disjunction, and so forth. Transitions express truth in one state as a function of truth in the preceding state.

Inputs Propositions represent conditions that are true or false in each state of the world. Connectives express logical relationships among truth values - negation, conjunction, disjunction, and so forth. Transitions express truth in one state as a function of truth in the preceding state.

Enablement ? Propositions represent conditions that are true or false in each state of the world. Connectives express logical relationships among truth values - negation, conjunction, disjunction, and so forth. Transitions express truth in one state as a function of truth in the preceding state.

Update Propositions represent conditions that are true or false in each state of the world. Connectives express logical relationships among truth values - negation, conjunction, disjunction, and so forth. Transitions express truth in one state as a function of truth in the preceding state.

Buttons and Lights Pressing button a toggles p. Pressing button b interchanges p and q. p q a b Propositions represent conditions that are true or false in each state of the world. Connectives express logical relationships among truth values - negation, comjunction, disjunction, and so forth. Transitions express truth in one state as a function of truth in the preceding state.

Propositional Net for Buttons and Lights q p a Propositions represent conditions that are true or false in each state of the world. Connectives express logical relationships among truth values - negation, conjunction, disjunction, and so forth. Transitions express truth in one state as a function of truth in the preceding state.

Propositional Nets and State Machines Propositional Nets as State Machines State Machines as Propositional Nets One proposition per state Only one proposition is true at each point in time s110 Decompose states into boolean propositions, with the idea that different states correspond to different subsets of propositions. In this case, the system is in state s1 if and only if p, q, and r are true. Propositions represent conditions that are true or false in each state of the world. Connectives express logical relationships among truth values - negation, conjunction, disjunction, and so forth. Transitions express truth in one state as a function of truth in the preceding state. Propositions with no input connectives or transitions are called extrinsic propositions / input variables; all others are referred to as intrinsic propositions / state variables.

Comparison Propositional Nets vs State Machines Expressively equivalent and interconvertible State Machines can be exponentially larger e.g. state machine for Tic-Tac-Toe has 5478 states propositional net has 45 propositions Propositional Nets vs Petri Nets Propositional Nets are computable (equivalent to Petri nets with finitely many tokens) Propositional Nets are composable without revealing inner details of components The idea of propositional net is basically a combination of logi nets and petri nets. Closely related to old notion of causal nets and similar to dynamic bayes nets with categorical probabilities.

Object Nets p q r 2,1 1.3 Decompose states into relations with the idea that each state corresponds to a particular combination of extensions for the relations. We capture behavior by connecting relations with relational operators, with or without one time step of delay.

Relational Nets

Propositional Net Fragment or1 o12 x13 x11 xr1 x12 o23 o21 or2 o22 x23 x21 xr2 x22 Parameterized Procedural Nets. View nodes. Get difficult to draw, and we need a linearization for transmission anyway. o33 o31 or3 o32 x33 x31 xr3 x32

Relational Nets Decompose states into “relations”. Use relational operators to capture behavior. s1 q s p r e c d b a h f g p q r 2,1 1.3 Decompose states into relations with the idea that each state corresponds to a particular combination of extensions for the relations. We capture behavior by connecting relations with relational operators, with or without one time step of delay.

Comparison Relational Nets vs Propositional Nets Expressively equivalent and interconvertible Number of Tuples = Number of Propositions Fewer Relations than propositions Fewer connectives Relational Nets vaguely related to RMDPs The idea of propositional net is basically a combination of logi nets and petri nets. Closely related to old notion of causal nets and similar to dynamic bayes nets with categorical probabilities.

Logical Encoding

Relational Net p q r 2,1 1.3 Decompose states into relations with the idea that each state corresponds to a particular combination of extensions for the relations. We capture behavior by connecting relations with relational operators, with or without one time step of delay.

Possible Relational Net Encoding Relational Net Fragment Encoding r(X,Z) :- p(X,Y) & q(Y,Z) p q r 2,1 1.3 e c d b a h f g Decompose states into relations with the idea that each state corresponds to a particular combination of extensions for the relations. We capture behavior by connecting relations with relational operators, with or without one time step of delay.

Actual Relational Net Encoding Relational Net Fragment Encoding without delay Encoding with delay true(r(X,Z)) :- next(r(X,Z)) :- true(p(X,Y)) & true(p(X,Y)) & true(q(Y,Z)) true(q(Y,Z)) p q r 2,1 1.3 Decompose states into relations with the idea that each state corresponds to a particular combination of extensions for the relations. We capture behavior by connecting relations with relational operators, with or without one time step of delay.

Tic-Tac-Toe X O

Partial Propositional Net for Tic-Tac-Toe mark(1,1) cell(1,1,x) cell(1,1,b) mark(1,2) cell(1,2,x) cell(1,2,b) Parameterized Procedural Nets. View nodes. Get difficult to draw, and we need a linearization for transmission anyway. mark(1,3) cell(1,3,x) cell(1,3,b)

Logical Description Direct encoding in relational logic: next(cell(1,1,x)) <= does(mark(1,1)) & true(cell(1,1,b)) Use of variables to compact description: next(cell(M,N,x)) <= does(mark(M,N)) & true(cell(M,N,b)) Game-specific “views” / “macros”: row(M,W) <= true(cell(M,1,W)) & true(cell(M,2,W)) & true(cell(M,3,W))

Syntax of Relational Logic Object Variables: X, Y, Z Object Constants: a, b, c Function Constants: f, g, h Relation Constants: p, q, r Logical Operators: ~, &, |, :-, distinct Terms: X, Y, Z, a, b, c, f(a), g(a,b), h(a,b,c) Relational Sentences: p(a,b) Logical Sentences: r(X,Y) <= p(X,Y) & ~q(Y) An expression is ground iff it contains no variables. The Herbrand base is the set of all ground relational sentences.

Legality legal(W,mark(X,Y))  true(cell(X,Y,b))  true(control(W)) legal(white,noop)  true(control(o)) legal(black,noop)  true(control(x))

Update next(cell(M,N,x))  does(white,mark(M,N))  true(cell(M,N,b)) next(cell(M,N,o))  does(black,mark(M,N))  next(cell(M,N,W))  true(cell(M,N,W))  distinct(W,b) next(cell(M,N,b))  does(W,mark(J,K))  true(cell(M,N,b))  (distinct(M,J) | distinct(N,K))

Update (continued) next(control(x))  true(control(o)) next(control(o))  true(control(x))

Goals goal(white,100)  line(x) goal(white,0)  line(o) goal(black,100)  line(o) goal(white,0)  line(x) line(W)  row(M,W) line(W)  column(N,W) line(W)  diagonal(W) A propositional state machine is similar to an ordinary state machine except that we conceptualize states as sets of propositions rather than simple atomic entities, the idea being that each state corresponds to the set of propsitions true in that state.Formally, a propositional state machine is a structure <P,I,O,do,see,s1>, where P is a set of propositions, I is a set of input objects, O is a set of output objects, do is an update function that maps an input and a subset of P to a new subset of P, see is an output function that maps each subset of P into an output, and s1 is a subset of P.Here is Buttons and Lights in this formulation. We start with a structure <{p,q,r},{},{},do,see,{}>. S = {{},{p},...} do(a,{})={p} do(a,{r})={p,r} do(a,{q})={p,q} do(a,{q,r})={p,q,r} do(a,{p})={} do(a,{p,r})={r} do(a,{p,q})={q} do(a,{p,q,r})={q,r} etc. see({})=nil see({p})=nil see({q})=nil see({r})=nil see({p,q})=nil see({p,r})=nil see({q,r})=nil see({p,q,r})=nil s1 = {} goal({p,q,r})

Supporting Concepts row(M,W)  true(cell(M,1,W))  true(cell(M,2,W))  column(N,W)  true(cell(1,N,W))  true(cell(2,N,W))  true(cell(3,N,W)) diagonal(W)  true(cell(1,1,W))  true(cell(2,2,W))  true(cell(3,3,W)) true(cell(1,3,W))  true(cell(3,1,W)) A propositional state machine is similar to an ordinary state machine except that we conceptualize states as sets of propositions rather than simple atomic entities, the idea being that each state corresponds to the set of propsitions true in that state.Formally, a propositional state machine is a structure <P,I,O,do,see,s1>, where P is a set of propositions, I is a set of input objects, O is a set of output objects, do is an update function that maps an input and a subset of P to a new subset of P, see is an output function that maps each subset of P into an output, and s1 is a subset of P.Here is Buttons and Lights in this formulation. We start with a structure <{p,q,r},{},{},do,see,{}>. S = {{},{p},...} do(a,{})={p} do(a,{r})={p,r} do(a,{q})={p,q} do(a,{q,r})={p,q,r} do(a,{p})={} do(a,{p,r})={r} do(a,{p,q})={q} do(a,{p,q,r})={q,r} etc. see({})=nil see({p})=nil see({q})=nil see({r})=nil see({p,q})=nil see({p,r})=nil see({q,r})=nil see({p,q,r})=nil s1 = {} goal({p,q,r})

Termination terminal  line(W) terminal  ~open open  true(cell(M,N,b))

Completeness Of necessity, game descriptions are logically incomplete in that they do not uniquely specify the moves of the players. Every game description contains complete definitions for legality, termination, goalhood, and update in terms of the primitive moves and the does relation. The upshot is that in every state every player can determine legality, termination, goalhood and, given a joint move, can update the state.

Playability A game is playable if and only if every player has at least one legal move in every non-terminal state. Note that in chess, if a player cannot move, it is a stalemate. Fortunately, this is a terminal state. In GGP, we guarantee that every game is playable.

Winnability A game is strongly winnable if and only if, for some player, there is a sequence of individual moves of that player that leads to a terminating goal state for that player. A game is weakly winnable if and only if, for every player, there is a sequence of joint moves of the players that leads to a terminating goal state for that player. In GGP, every game is weakly winnable, and all single player games are strongly winnable.

Comparison to Extensive Normal Form In Extensive Normal Form, a game is modeled as a tree with actions of one player at each node. In State Machine Form, a game is modeled as a graph and players’ moves are all synchronous. In GGP, a game must be described formally. While ENF and SMF are expressively equivalent for finite games, SMF descriptions are simpler. Some players may create game trees from game descriptions; however, searching game graphs can be more efficient.

Programme for Today State Machines Propositional Nets Relational Nets Tabular Encoding Logical Encoding Close with remarks about the relationship of GGP and the long-range goals of Artificial Intelligence.

Game Model An n-player game is a structure with components: S - finite set of states I1, …, In - finite sets of actions, one for each player l1, ..., ln - where li  Ii  S - the legality relations u  S  I1 ... In  S - update relation i  S - initial game state T  S - the terminal states G1, ..., Gn - where Gi  S - the goal relations

Propositional Nets and State Machines Define states in terms of propositions. Use propositional connectives to capture behavior. s110 p q s r q p r Decompose states into boolean propositions, with the idea that different states correspond to different subsets of propositions. In this case, the system is in state s1 if and only if p, q, and r are true. Propositions represent conditions that are true or false in each state of the world. Connectives express logical relationships among truth values - negation, conjunction, disjunction, and so forth. Transitions express truth in one state as a function of truth in the preceding state. Propositions with no input connectives or transitions are called extrinsic propositions / input variables; all others are referred to as intrinsic propositions / state variables.

Markings A marking for a propositional net is a function from the propositions to boolean values. m: P  {true,false}

Acceptability A marking is acceptable iff it obeys the logical properties of all connectives. Negation with input x and output y: m(y)=true  m(x)=false Conjunction with inputs x and y and output z: m(z)=true  m(x)=true  m(y)=true Disjunction with inputs x and y and output z: m(z)=true  m(x)=true  m(y)=true

Update A transition is enabled by a marking m iff all of its inputs are marked true. The update for a marking m is the partial marking m* that assigns true to the outputs of all transitions enabled by m and false to the outputs of all other transitions. A successor m’ of a marking m is any complete, acceptable marking consistent with m*.

Example p r q Transition is not enabled. Two possible successors - one with true and one with p false. That is all.

Logical Encoding cell(1,1,x) cell(1,1,x) cell(1,2,b) cell(1,2,b) cell(1,3,b) cell(1,3,o) cell(2,1,b) cell(2,1,b) cell(2,2,o) cell(2,2,o) cell(2,3,b) cell(2,3,b) cell(3,1,b) cell(3,1,b) cell(3,2,b) cell(3,2,b) cell(3,3,x) cell(3,3,x) control(black) control(white) noop mark(1,3)

Arguing for Evaluation Function Assume evaluation function f partitions states into n categories S1, …, Sn. Consider probabilities p1, …, pn of winning in each category. (More generally, consider expected utilities u1, …, un.) Use these probabilities (utilities) as evaluation function values for the corresponding categories. Choosing a move that leads to a category with maximal value maximizes chances of winning.

Evaluation Functions An ideal evaluation function is one that reflects the expected utility of each state. (In the case of win-lose games, it is the probability of winning.) For each terminal state, it is the payoff in that state. For each nonterminal state, it is the maximum of the expected utilities of the legal actions in that state. (The expected utility of an action in a state is the sum of the expected values of the states resulting from that action weighted by probabilities of the opponents’ actions.)

Evaluation Functions Choosing moves that maximize expected value NB: Different priors possible. Random is common.