Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removing different actions from different turns/rivers #14

Closed
bkushigian opened this issue Dec 23, 2022 · 7 comments
Closed

Removing different actions from different turns/rivers #14

bkushigian opened this issue Dec 23, 2022 · 7 comments

Comments

@bkushigian
Copy link
Contributor

I'm building a strategy simplifier that removes unused sizes from different turns/rivers. For instance, in a single raised pot Bn vs BB on J93 after a small cbet, on a brick turn I'll probably want to overbet barrel, but this size won't be used much on a J or a 9. Therefore I'd like to prune my gametree differently for different turn cards.

It looks like ActionTree doesn't support this:

    /// Removes a given line from the action tree.
    ///
    /// - `line` must exist in the current tree.
    /// - Chance actions (i.e., dealing turn and river cards) must be omitted from the `line`.
    /// - If the current node is removed by this method, the current node is moved to the nearest
    ///   ancestor node that is not removed.

Is there any way to get this functionality? I also looked into modifying a PostFlopGame instance directly but couldn't find anything, and I'd imagine there might be issues that arise from treating isomorphic lines differently?

Thanks a bunch!

@bkushigian bkushigian changed the title Removing different lines from different turns/rivers Removing different actions from different turns/rivers Dec 23, 2022
@b-inary
Copy link
Owner

b-inary commented Dec 23, 2022

Currently, we have not implemented such a feature. I think it is a niche demand to be able to set different action lines for different turn/river cards, so I am afraid I am not very positive about implementing this feature. As a compromise, it might be possible to allow only the deletion of nodes in the PostFlopGame struct after building the tree and before allocating memory.

The processing of isomorphisms is also relevant. For example, suppose the flop was Js9h3h. Then, the process for the turn being Jd is also automatically applied to Jc. This is reasonable but somewhat not intuitive.

@bkushigian
Copy link
Contributor Author

That would work for me. I have a bunch of lines I want to remove (which include chance actions), and I could manually maintain any isomorphism invariants.

@b-inary
Copy link
Owner

b-inary commented Dec 23, 2022

Understood. I will try to address this when I can afford it, but if you need this feature immediately, please work on your fork repository. You only need to reverse the process of build_tree_recursive, push_chances, and push_actions methods and then update misc_memory_usage, num_storage_actions, and num_storage_chances fields.

(which include chance actions)

Are you want to remove chance actions? It is not possible to solve, say, a single specific turn card, because that game tree means the specific turn card is determined to be dealt.

@bkushigian
Copy link
Contributor Author

Great, thanks! I'll try to get it implemented on my fork.

@bkushigian
Copy link
Contributor Author

Are you want to remove chance actions?

No, just responses to them. Adding dead cards might be interesting, but not what I'm concerned with at the moment

@dpmaloney
Copy link
Contributor

Just my two cents, but this also might be useful for understanding how we should adjust our bet size strategy for different “categories” of turns/rivers.

@bkushigian
Copy link
Contributor Author

Closed by #16

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants