change ActionSpace interface temporarily to quickly fit antWorld test and improve gui of walking ant

This commit is contained in:
2019-12-09 13:41:00 +01:00
parent 2fb218a129
commit 8a533dda94
11 changed files with 94 additions and 29 deletions
+2 -2
View File
@@ -1,9 +1,9 @@
package core;
import java.util.Set;
import java.util.List;
public interface ActionSpace<A extends Enum> {
Set<Action> getAllActions();
int getNumberOfAction();
void addAction(DiscreteAction<A> a);
void addActions(A[] as);
}
+12 -7
View File
@@ -1,13 +1,13 @@
package core;
import java.util.HashSet;
import java.util.Set;
import java.util.ArrayList;
import java.util.List;
public class DiscreteActionSpace<A extends Enum> implements ActionSpace<A>{
private Set<Action> actions;
private List<DiscreteAction<A>> actions;
public DiscreteActionSpace(){
actions = new HashSet<>();
actions = new ArrayList<>();
}
@Override
@@ -15,14 +15,19 @@ public class DiscreteActionSpace<A extends Enum> implements ActionSpace<A>{
actions.add(action);
}
@Override
public void addActions(A[] as) {
for(A a : as){
actions.add(new DiscreteAction<>(a));
}
}
@Override
public int getNumberOfAction(){
return actions.size();
}
@Override
public Set<Action> getAllActions(){
public List<DiscreteAction<A>> getAllDiscreteActions(){
return actions;
}
}
+3 -3
View File
@@ -58,9 +58,9 @@ public class StateActionHashTable<A extends Enum> implements StateActionTable {
private Map<Action, Double> createDefaultActionValues(){
final Map<Action, Double> defaultActionValues = new HashMap<>();
for(Action action: actionSpace.getAllActions()){
defaultActionValues.put(action, DEFAULT_VALUE);
}
// for(Action action: actionSpace.getAllActions()){
// defaultActionValues.put(action, DEFAULT_VALUE);
//}
return defaultActionValues;
}
}