edu.wis.jtlv.old_lib.games
Class Memory

java.lang.Object
  extended by edu.wis.jtlv.old_lib.games.Memory

public class Memory
extends java.lang.Object

This class is intended to serve as the data structure for holding BDDs in the recursive game (Streett game). It also harvests this data structure for the strategy.

The idea of the data structure is as follows. Upon creation, the structure gets a set of fairness numbers. Per fairness number we have a vector of BDDs with each entry in this vector, there is also an associated recursive pointer to the same substructure.

At the moment only existential strategy is implemented. This matches a situation where the environment makes the first move and the system has to answer it. The idea of the strategy is as follows: 1. If the current state is a r state, then the permutation is increased to the next permutation and the successor is set to the minimal possible successor according to the next permutation. 2. If the current state is not an r state, then the permutation remains the same permutation in this level We either a. Reduce the ranking in this level, or b. Remain in the same rank in this level, make sure that we are not a g-state and call recursively for the strategy to handle the next levels. 3. At the bottom of the recursion, if we are not in all the g's of all the pairs, then the ranking can remain the same and we just choose some successor.

Version:
"1.3.2"
Author:
Nir Piterman

Nested Class Summary
static class Memory.Permutation
           
 
Constructor Summary
Memory()
           
Memory(java.util.Set<RkGame.ImplicationEntity> pairs)
           
 
Method Summary
 boolean blank()
           
 boolean find_intersect(BDD target, Memory.Permutation perm, Memory.Permutation loc)
           
 void insert(RkGame.ImplicationEntity pair, int pair_ind, int location, BDD new_bdd, Memory new_memory)
           
 int local_index(RkGame.ImplicationEntity pair)
           
 BDD next_contained(BDD target)
           
 BDD next_intersect(BDD current, BDD target, Memory.Permutation perm, Memory.Permutation loc)
           
 boolean recursive_find_intersect(BDD target, Memory.Permutation perm, Memory.Permutation loc, int ind)
           
 BDD recursive_next_intersect(BDD current, BDD target, Memory.Permutation perm, Memory.Permutation loc, int ind)
           
 int size()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Memory

public Memory()

Memory

public Memory(java.util.Set<RkGame.ImplicationEntity> pairs)
Method Detail

local_index

public int local_index(RkGame.ImplicationEntity pair)

insert

public void insert(RkGame.ImplicationEntity pair,
                   int pair_ind,
                   int location,
                   BDD new_bdd,
                   Memory new_memory)

blank

public boolean blank()

size

public int size()

find_intersect

public boolean find_intersect(BDD target,
                              Memory.Permutation perm,
                              Memory.Permutation loc)

recursive_find_intersect

public boolean recursive_find_intersect(BDD target,
                                        Memory.Permutation perm,
                                        Memory.Permutation loc,
                                        int ind)

next_intersect

public BDD next_intersect(BDD current,
                          BDD target,
                          Memory.Permutation perm,
                          Memory.Permutation loc)

recursive_next_intersect

public BDD recursive_next_intersect(BDD current,
                                    BDD target,
                                    Memory.Permutation perm,
                                    Memory.Permutation loc,
                                    int ind)

next_contained

public BDD next_contained(BDD target)