protected void expandNode( FormationSearchNode<SymmetricGame, Set<Action>> node, Queue<FormationSearchNode<SymmetricGame, Set<Action>>> queue, Map<Set<Action>, FormationSearchNode<SymmetricGame, Set<Action>>> nodes, int bound) { Set<Action> currentPlayerActions = node.getGame().getActions(); if (currentPlayerActions.size() != actions.length) { for (Action action : actions) { if (!currentPlayerActions.contains(action)) { Set<Action> key = new HashSet<Action>(currentPlayerActions); key.add(action); if (!nodes.containsKey(key)) { double tau = rationalizableFinder.rationalizableTau(action, node.getGame(), getBase()); if (tau > 0) { FormationSearchNode<SymmetricGame, Set<Action>> child = createNode(key, bound); if (child != null) { queue.offer(child); nodes.put(key, child); } } } } } } }