Skip to content

Alternatives to the use_strategic argument for solvers #720

@rahulsavani

Description

@rahulsavani

Requested enahancement or feature

In solvers like lp_solve and lcp_solve, at the moment use_strategic defaults to False.

When the game does not have a tree representation, we must use the strategic representation, and so use_strategic has no effect.

It is not ideal that when a user has a non-tree game and passes in use_strategic as False they get no feedback to say that we must use the strategic form in this case. This is not a bug, the docs are clear, it just does not seem idea.

If the default was True (not suggesting that we should do this), then at least one could give a warning if one ever tries to set it as False for a non-tree, which is more consistent in some sense with always being able to use the strategic representation but not always having a tree. I note that having a use_tree argument that defaults to True, has the symmetric issue of when a user tries to set it explicitly to True when calling on a non-tree -- it makes not sense for them to include that argument in that case, but there is also no way to give feedback since that is the default.

Maybe the current setup is fine, but this did all lead me to wonder if we simply want different functions for the solvers on different representations, though I know that would move us away from the approach taken in many modern scientific computing packages.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions