Closed
Conversation
This removes the class hierarchy structure for Nash equilibrium algorithms, in favor of using function types as appropriate.
This adds a GitHub action workflow that builds a binary artifact of the OSX graphical interface (and disk image) only on a release tag or cron. This builds a custom static version of wxWidgets, so it is rather more expensive than the usual test builds.
This updates the implementation and interface of PureStrategyProfile: * Remove player-index-based access * Implement using a map in parallel to PureBehaviorProfile * Use shared_ptr to manage memory for pointer-to-implementation
This accomplishes some cleanup of the linear algebra sublibrary, removing unused or duplicated code, simplifying structures, and so on.
…ad of integer indices.
Bumps [jidicula/clang-format-action](https://github.com/jidicula/clang-format-action) from 4.14.0 to 4.15.0. - [Release notes](https://github.com/jidicula/clang-format-action/releases) - [Commits](jidicula/clang-format-action@v4.14.0...v4.15.0) --- updated-dependencies: - dependency-name: jidicula/clang-format-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
This performs some outstanding rationalisation of `GameObjectRep` objects: * Removes indexing of payoffs by player index * Templates `GetPayoff` to obtain payoffs directly in the desired representation * Store payoffs using a `std::map` instead of `Array`. Closes gambitproject#490.
…ile.max_regret to documentation index.
This corrects a regression which invalidates an information set object earlier than it should. This can lead to a segmentation fault in certain situations, as in effect `delete this` is called before it ought to be.
# Conflicts: # ChangeLog
This fixes a bug in `MixedStrategyProfile<T>::operator[]` which was not producing the correct output when called for a player. This is only used at present in constructing the equilibrium cliques after `enummixed_solve` and as such has flown under the radar.
# Conflicts: # .github/workflows/tools.yml
* Checks are now applied to .h and .imp files * The C++17 extension of directly specifying nested namespaces via the :: notation is now enforced. * Checks are not applied to the GUI for now (due to challenges with excluding headers, and flagging issues that ultimately arise from the design of wxWidgets) .
… actually available.
The roles of the `src` and `dest` arguments of `copy_tree` and `move_tree` were reversed. This corrects this error and adds a few tests. Closes gambitproject#499.
# Conflicts: # .github/workflows/tools.yml
* Migrated pygambit metadata to pyproject.toml * Officially added support for Python 3.13 * Added pytest configuration of marks for Nash equilibrium algorithms, slow tests
This implements some clean-ups that address some compiler warnings. Principal among these are more consistent uses of size_t for values which are related to the sizes of containers. Along the way, where it was straightforward to do so, some passages were re-written to avoid signed/un-signed comparisons by using instead STL algorithms and idioms.
This changes the following game operations in C++: * `NewStrategy` moves from `GamePlayerRep` to `GameRep` * `NewStrategy` now requires a strategy label string * `DeleteStrategy` moves from `GameStrategyRep` to `GameRep`.
This implements a new template class, ElementCollection, which represents a collection of objects in a game. This handles efficient access and iteration over game objects without the need to allocate a new container. Closes gambitproject#516
This provides computation of the set of plays (terminal nodes) consistent with passing through a specified node, information set, or action: * `GameRep.GetPlays()` in C++ * Properties `Node.plays`, `Infoset.plays`, `Action,plays` in Python. Closes gambitproject#517.
This provides an interface to the mapping from strategy to actions in an extensive game: * `GameStrategyRep::GetAction(GameInfoset)` in C++ * `Strategy.action(Infoset)` in Python`
tturocy
requested changes
Jun 28, 2025
Member
tturocy
left a comment
There was a problem hiding this comment.
Some organisational things:
- This should be proposed to be merged back into the issue branch, not master.
- PRs should to the extent possible be separate from each other. This one does not depend on the revised implementation of the perfect recall checker, so that should not be being included here.
This actually does not do anything with computing the reduced strategies, which is the whole point of this exercise. And it's the data that that algorithm needs which determines whether the player consequences data structure that's being built here is the right one (or not).
…de and returns nodes in DFT order
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two steps:
GameTreeRep::BuildPlayerConsequences; storedm_playerConsequencesas a private member variable of theGameTreeRepclass and make it a part ofBuildComputedValues;GameTreeRep::BuildPlayerConsequencesto illustrate the novel structure, those will be eventually removed;GameTreeRep::MakeReducedStratPR.