cz.cuni.amis.pogamut.ut2004.agent.module.utils
Class TabooSet<T>

java.lang.Object
  extended by cz.cuni.amis.pogamut.ut2004.agent.module.utils.TabooSet<T>

public class TabooSet<T>
extends java.lang.Object

This class is a simple implementation of TabooSet (similar to TabooList). It allows you to insert items that are taboo either for infinite time (via add(Object)) or for a specified amount of UT2004 time (via add(Object, double)).

Items inside taboo set are either removed automatically due to a timeout (a specified amount of time has passed) or manually via remove(Object).


Nested Class Summary
static interface TabooSet.IRelaxedTaboo<T>
           
 
Constructor Summary
TabooSet(UT2004Bot bot)
          Constructor of the TabuSet.
 
Method Summary
 void add(T item)
          Adds a tabu item that is valid for an infinite amount of time.
 void add(T item, double timeout)
          Adds a tabu item that is valid for a period of 'timeout' time (in seconds).
 void clear()
          Clears the taboo set.
 java.util.Set<T> filter(java.util.Collection<T> collection)
          Filters collection according to the current state of the tabu set.
 java.util.Set<T> filter(java.util.Collection<T> collection, TabooSet.IRelaxedTaboo estimator)
          Filters collection according to the current state of the tabu set.
 double getTabooTime(T item)
          If not tabooized forever, it returns remaining time for the item to remain taboo.
 double getTime()
          Returns current UT2004 time that is used by the TabooSet.
 boolean isTaboo(T item)
          Determines whether an 'item' is inside tabu set or not based on the current UT2004 time.
 boolean isTaboo(T item, TabooSet.IRelaxedTaboo estimator)
          Determines whether an 'item' is considered to be taboo using relaxed 'estimator'.
 void remove(T item)
          Removes a tabu item from the set.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TabooSet

public TabooSet(UT2004Bot bot)
Constructor of the TabuSet.

Parameters:
bot -
Method Detail

getTabooTime

public double getTabooTime(T item)
If not tabooized forever, it returns remaining time for the item to remain taboo.

If tabooized forever, returns Double.POSITIVE_INFINITY.

If item is not tabooized, returns 0.

Parameters:
item -
Returns:

add

public void add(T item)
Adds a tabu item that is valid for an infinite amount of time.

Parameters:
item -

add

public void add(T item,
                double timeout)
Adds a tabu item that is valid for a period of 'timeout' time (in seconds).

Parameters:
item -
timeout - in seconds

remove

public void remove(T item)
Removes a tabu item from the set.

Parameters:
item -

isTaboo

public boolean isTaboo(T item)
Determines whether an 'item' is inside tabu set or not based on the current UT2004 time.

Parameters:
item -
Returns:

isTaboo

public boolean isTaboo(T item,
                       TabooSet.IRelaxedTaboo estimator)
Determines whether an 'item' is considered to be taboo using relaxed 'estimator'.

Parameters:
item -
estimator -
Returns:

filter

public java.util.Set<T> filter(java.util.Collection<T> collection)
Filters collection according to the current state of the tabu set. It returns a new hash set containing items from 'collection' that are not inside tabu set.

Parameters:
collection -
Returns:

filter

public java.util.Set<T> filter(java.util.Collection<T> collection,
                               TabooSet.IRelaxedTaboo estimator)
Filters collection according to the current state of the tabu set. It returns a new hash set containing items from 'collection' that are not inside tabu set.

Parameters:
collection -
Returns:

clear

public void clear()
Clears the taboo set.


getTime

public double getTime()
Returns current UT2004 time that is used by the TabooSet.