/* Learning Net - shlomy boshy 031868912
 * Reinforcement Learning network simulation  
 */
package learnnet;

public interface lookupTable {
	/* interface for the Q(neighbor,destination) table */
  
  public Node getMinNodeForDest(Node dest) throws java.util.NoSuchElementException;
  
	public double getValue(Node N,Node dest) throws java.util.NoSuchElementException;
	   /* returns Q(N,dest) */
	   /* should be implemented synchronized */
  public void setValue(Node N,Node dest,double value) throws java.util.NoSuchElementException;
  /* should be implemented synchronized */

  public void addNeighbor(Node N,double transferTime);
/* should be implemented synchronized */

  public java.util.Enumeration getKeys(Node dest) throws java.util.NoSuchElementException;
/* should be implemented synchronized */

  public double getTransferTimeTo(Node N) throws java.util.NoSuchElementException;
/* should be implemented synchronized */

  public Node getUnknownNeighbor(Node dest);
  /* null if all are known */

  public Node getRandomNeighbor();
	
  public int getNumNeighbors();

  public int getNumKeys(Node dest);

  public void printQValues();

  public java.util.Enumeration getNeighbors();

  public void printNeighbors();


}