public class QLearning
extends java.lang.Object
Constructor and Description |
---|
QLearning()
Default Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
clearQ()
Clear Q values.
|
java.lang.String |
getA()
Gets A value.
|
java.lang.String |
getAction(java.lang.String state)
Selects the best action for this state with probability "e",
and a random one with probability (1-e)
If a given state has no record of one or more actions, it will consider them as valued 0.
|
java.util.ArrayList<java.lang.String> |
getActionsList()
Gets the action list.
|
java.lang.String |
getAl()
Gets the AL value.
|
java.lang.String |
getAllActionsFromState(java.lang.String state)
Gets all actions from state.
|
java.util.HashMap |
getAllQ()
Gets all Q values.
|
double |
getAlpha()
Gets alpha value.
|
double |
getB()
Gets B value.
|
double |
getE()
Gets E value.
|
double |
getGamma()
Gets gamma value.
|
double |
getQ(java.lang.String state,
java.lang.String action)
Returns the utility value Q related to the given state/action pair
|
java.lang.String |
getS()
Gets S value.
|
java.lang.String |
getSl()
Gets SL value.
|
java.util.ArrayList<java.lang.String> |
getStatesList()
Gets states list.
|
double |
maxQsl(java.lang.String sl)
Returns the maximum Q value for sl.
|
double |
maxwellBoltzmann()
This method "maxwellBoltzmann()" returns a pseudo-random value from a Maxwell-Boltzmann distribution
with parameter sigma.
|
void |
printQ()
This print Q values.
|
void |
recoverQ()
Recover Q values from file in JSON structure.
|
void |
setA(java.lang.String a)
Sets A value.
|
void |
setActionsList(java.util.ArrayList<java.lang.String> actionsList)
This sets action list.
|
void |
setAl(java.lang.String al)
Sets AL value.
|
void |
setAlpha(double alpha)
Sets the learning rate parameter alpha.
|
void |
setB(double b)
Sets B value.
|
void |
setE(double e)
Sets the chances of getting the best possible action.
|
void |
setGamma(double gamma)
Sets the discount factor.
|
void |
setQ(double Qval,
java.lang.String state,
java.lang.String action)
This method set Q value with parameters Qval, state and action.
|
void |
setS(java.lang.String s)
Sets S value.
|
void |
setSl(java.lang.String sl)
Sets SL value.
|
void |
setStatesList(java.util.ArrayList<java.lang.String> statesList)
Sets action list.
|
void |
storeQ()
Store Q values to file using JSON structure.
|
void |
update(java.lang.String stateIWas,
java.lang.String actionIDid,
double rewardIGot)
This methods is responsible for update the state.
|
public void setQ(double Qval, java.lang.String state, java.lang.String action)
Qval
- state
- action
- public double getQ(java.lang.String state, java.lang.String action)
state
- action
- public double maxQsl(java.lang.String sl)
sl
- public void update(java.lang.String stateIWas, java.lang.String actionIDid, double rewardIGot)
stateIWas
- state I was previouslyactionIDid
- action I did while at the previous staterewardIGot
- reward I got after moving from previous state to the present onepublic void printQ()
public void storeQ()
public void recoverQ()
public void clearQ()
public double getAlpha()
public void setAlpha(double alpha)
alpha
- public double getGamma()
public void setGamma(double gamma)
gamma
- public java.lang.String getAction(java.lang.String state)
state
- public java.util.ArrayList<java.lang.String> getStatesList()
public void setStatesList(java.util.ArrayList<java.lang.String> statesList)
statesList
- the statesList to setpublic java.util.ArrayList<java.lang.String> getActionsList()
public void setActionsList(java.util.ArrayList<java.lang.String> actionsList)
actionsList
- the actionsList to setpublic double getE()
public void setE(double e)
e
- the e to setpublic java.lang.String getAllActionsFromState(java.lang.String state)
state
- public double maxwellBoltzmann()
public double getB()
public void setB(double b)
b
- the b to setpublic java.lang.String getS()
public void setS(java.lang.String s)
s
- the s to setpublic java.lang.String getA()
public void setA(java.lang.String a)
a
- the a to setpublic java.lang.String getSl()
public void setSl(java.lang.String sl)
sl
- the sl to setpublic java.lang.String getAl()
public void setAl(java.lang.String al)
al
- the al to setpublic java.util.HashMap getAllQ()