Skip to content

Version 16.5.0

Choose a tag to compare

@tturocy tturocy released this 05 Jan 12:23
· 53 commits to master since this release

Fixed

  • Sequence-form based equilibrium-finding methods returned incorrect output on games with
    outcomes at non-terminal nodes. (#654)

Added

  • Implement IsAbsentMinded() on information sets (C++) and Infoset.is_absent_minded (Python)
    to detect if an information is absent-minded.
  • Tests for EFG Nash solvers -- enumpoly_solve, lp_solve, lcp_solve -- in behavior strategies
  • In pygambit, Node objects now have a read-only property own_prior_action and Infoset objects
    have a read-only property own_prior_actions to retrieve the last action or the set of last actions
    taken by the player before reaching the node or information set, respectively. (#582)
  • In pygambit, Node objects now have a read-only property is_strategy_reachable to determine
    if the node is reachable by at least one pure strategy profile. This proves useful for identifying
    unreachable parts of the game tree in games with absent-mindedness. (#629)

Changed

  • Labels for players, outcomes, strategies, and actions are expected to be non-empty and unique within
    the relevant scope (games for players and outcomes, players for strategies, and information sets for
    actions). pygambit now issues a FutureWarning if a label is changed that does not conform to these
    expectations. There is now an optional flag normalize_labels to read_* which will automatically
    fill in non-confirming sets of labels. In version 16.6 these will be enforced; invalid label sets will
    generate an error and files will be normalized automatically on read. (#614)
  • Terminology for agent-form calculations on extensive games has been clarified. Mixed behavior profiles
    distinguish "agent" regret and liap values from their strategy-based analogs. Methods which compute
    using the agent-form - specifically enumpure_solve and liap_solve, now clarify this by being named
    differently in pygambit. (#617)
  • For clarity, the stop_after and max_depth arguments to lcp_solve are no longer permitted when solving using
    the sequence form. These actually had no effect in previous versions. (#671)
  • In the graphical interface, removed option to configure information set link drawing; information sets
    are always drawn and indicators are always drawn if an information set spans multiple levels.
  • In pygambit, indexing the children of a node by a string inteprets the string as an action label,
    not a label of a child node. In addition, indexing by an action object is now supported. (#587)
  • In pygambit, min_payoff and max_payoff (for both games and players) now refers to payoffs in
    any play of the game; previously this referred only to the set of outcomes. (#498)
  • In pygambit, calls to sort_infosets are no longer required to normalise the game representation.
    Iteration ordering of information sets and their members is ensured internally. sort_infosets
    is therefore now a no-op and is deprecated; it will be removed in a future version.

Removed

  • Eliminating dominated actions has been removed from the GUI as it was implementing a non-standard
    formulation of dominance. (#612)
  • The C++ method for computing subgame perfect equilibria with selected methods has been removed
    (and as a result from the enumpure, lp, and lcp command-line tools); this will be replaced
    with new and more customisable approaches. (#639)