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

to be checked: Leak in rdeep? #15

Open
miselico opened this issue Jan 21, 2021 · 3 comments
Open

to be checked: Leak in rdeep? #15

miselico opened this issue Jan 21, 2021 · 3 comments

Comments

@miselico
Copy link

The rdeep bot is making a call to make_assumption, which in turn makes a call to make_assumption on the Deck.
Then, in the deck, a new Deck is created, but that gets initialized with the perspective of player 2.
Finally, rdeep uses this assumption to do random rollouts of the game

I am under the impression that this means that information which player 1 does not have access to is leaking. This information could then potentially be used in the roll-outs, leading to the prediction from the roll-outs to be better as it normally should be.

Note, it might also be that because rdeep, in its current implementation, is using random roll-outs of the game, it does not matter that it sees the perspective of palyer 2. It does not use the information anyway,

@miselico
Copy link
Author

miselico commented Jan 22, 2021

I made an implementation which I think gets a more or less correct player 2 perspective, see 40cb802 in https://github.com/intelligent-systems-course/schnapsen/tree/rdeeppessimist
This player is not competitive with the previous rdeep implementation.
It is not clear what the reason is for this. Besides not getting the perspective, there are some other things that are currently not copied over, I still need to figure out their effect.

  • State
    • state.__phase
    • state.__leads_turn
    • state.__revoked
    • state.__signature This is okay as this is anyway overwritten to None in the original make_assumption .
  • Deck
    • deck.__trick
    • deck.__previous_trick Not used anywhere in the platform. Should probably just be removed altogether.
    • deck.__signature It seems this is not an issue

@miselico
Copy link
Author

It became clear that the deck.__trick and state.__leads_turn are essential for this to work correctly. It is not possible to set initialize the value for __leads_turn currently, so adding this to the State constructor. The trick can be set on the Deck by just re-playing it.
This is done in cb182a4 in https://github.com/intelligent-systems-course/schnapsen/tree/rdeeppessimist

@miselico
Copy link
Author

It seems that in any case, getting the work done in rdeeppessimist would be beneficial.

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

1 participant