You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Develop concept of a Cartesian product space and apply to games in strategic form.
This creates an abstraction, CartesianProductSpace, which aims to separate out the computations
related to representing a Cartesian product. This has always been implicit in the strategic form,
but the core ideas apply equally to other situations (sequence form, some applications of pure behavior profiles).
Underpinning this is that any element of a cartesian product space can be represented by an
integer computed using mixed radix arithmetic.
This then leads to simplifications in the internal representation of several objects:
* PureStrategyProfile, which is now be characterised simply by an integer index.
* StrategySupportProfile, which is characterised by the set of "digits" which are valid for each dimension.
* StrategyContingencies, which iterates over the valid digits for each dimension.
Implement PureStrategyProfile using indexes only.
This changes PureStrategyProfile so that it stores only to the index of
the strategy profile in the cartesian product of pure strategy sets.
A map from players to strategies is no longer needed.
Implement CartesianProductSpace abstraction
Implement StrategySupportProfile as vectors of legal "digits" in indexing the Cartesian product space.
Default initialisations
Make StrategyContingencies header-only to facilitate possible inlining eventually.
Rewrite strategycontingencies to use "odometer digit" abstraction.
Tidy up some uses of StrategyContingencies
Remove "frozen" strategies in contingencies; handle in support profiles instead.
Remember to add iterator attributes for StrategyContingencies
0 commit comments