protected FormationSearchNode<SymmetricGame, Set<Action>> createNode(Set<Action> strategySpace) { SymmetricGame game = new ActionReducedSymmetricGame(getBase(), strategySpace); int total = calculateGameSize(strategySpace.size(), game.players().size()); double epsilon = rationalizableFinder.rationalizableEpsilon(game, getBase()); epsilon = Math.round(epsilon / tolerance) * tolerance; FormationSearchNode<SymmetricGame, Set<Action>> node = new FormationSearchNode<SymmetricGame, Set<Action>>(game, strategySpace, epsilon, total); return node; }
public SymmetricBreadthFirstFormationSearch( SymmetricGame base, SymmetricRationalizableFinder rationalizableFinder, int maxQueueSize, double tolerance) { super(base, maxQueueSize); this.rationalizableFinder = rationalizableFinder; this.tolerance = tolerance; actions = base.getActions().toArray(new Action[0]); }