|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.jscience.computing.ai.reinforcement.qlearning.QLearner
public abstract class QLearner
Q-learning algorithm implementation. You should override this class for your requirements.
| Field Summary | |
|---|---|
static int |
EpsinonGreedy
"Epsinon Greedy" selection method for selecting actions |
| Constructor Summary | |
|---|---|
QLearner()
|
|
| Method Summary | |
|---|---|
java.util.Collection |
getBestActions()
Returns all of the best actions for each states tried so far |
double |
getBestValue(java.lang.Object state)
Returns best reinforcement value for given state |
double |
getDiscountFactor()
Returns discount factor |
double |
getLearningRate()
Returns learning rate |
int |
getNumberOfStates()
Returns the number of different states in the q-table |
int |
getQTableSize()
Returns the number of entries in q-table |
java.util.Enumeration |
getStates()
Returns different states in the q-table. |
void |
initialize()
Initializes the learner with default parameters. |
void |
initialize(double learningRate,
double discountFactor,
int selectionPolicy)
Initializes the learner with given parameters. |
java.lang.Object |
selectAction(java.lang.Object state)
Selects an action based on given state |
protected abstract java.lang.Object |
selectRandomAction(java.lang.Object state)
Selects an action randomly. |
void |
setDefaultValue(int defaultValue)
Changes default valee for q-table entries. |
void |
setDiscountFactor(double dicountFactor)
Changes the discount factor |
void |
setLearningRate(double learningRate)
Changes the learning rate |
void |
setSelectionPolicy(int selectionPolicy)
Changes the selection method |
void |
updateQTable(java.lang.Object state,
java.lang.Object action,
java.lang.Object newState,
double reward)
Updates q-table with given state, action, new state and reward information |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int EpsinonGreedy
| Constructor Detail |
|---|
public QLearner()
| Method Detail |
|---|
public void initialize()
public void initialize(double learningRate,
double discountFactor,
int selectionPolicy)
learningRate - learning ratediscountFactor - discount factorselectionPolicy - selection methodpublic void setLearningRate(double learningRate)
learningRate - new learning ratepublic void setDiscountFactor(double dicountFactor)
dicountFactor - new discount factorpublic void setSelectionPolicy(int selectionPolicy)
selectionPolicy - new selection methodpublic void setDefaultValue(int defaultValue)
defaultValue - new default valuepublic double getLearningRate()
public double getDiscountFactor()
public int getQTableSize()
public int getNumberOfStates()
public java.util.Enumeration getStates()
public java.util.Collection getBestActions()
public double getBestValue(java.lang.Object state)
throws QTableEntryNotFoundException
state - state to look for best reinforcement value
QTableEntryNotFoundException - if the state is not found in q-table
public void updateQTable(java.lang.Object state,
java.lang.Object action,
java.lang.Object newState,
double reward)
state - state before the action is doneaction - action performed for given rewardnewState - new state observed after the action donereward - reinforcement taken after the action is donepublic java.lang.Object selectAction(java.lang.Object state)
state - state to select action for
protected abstract java.lang.Object selectRandomAction(java.lang.Object state)
state - state to select an action randomly
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||