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

Understanding the PRP --debug-output 1/0 simulator #7

Open
AnjelicaB opened this issue Jan 25, 2023 · 1 comment
Open

Understanding the PRP --debug-output 1/0 simulator #7

AnjelicaB opened this issue Jan 25, 2023 · 1 comment

Comments

@AnjelicaB
Copy link

Using prp from planutils, I realised that the "simulation" output when using the --debug-output 1/0 option is as close as I can get to a plan rather than a policy. I want to know how the simulator works, and here are a couple of my questions:

  1. Just to make sure: does the simulator use the problem file to simulate the sequence of the actions that would be conducted to achieve the goal state?
  2. When dealing with non-deterministic actions, how does the simulator select which potential "effect" to simulate?
  3. What's the difference between Expected operator and Chosen operator?
  4. Does the _DETDUP_0 behind an action (eg. peel_DETDUP_0 food_item food_peeler) mean that this action is non-deterministic?
  5. What does Atom stand for in the list of predicates (eg. '[Atom handempty()]')?
@haz
Copy link
Contributor

haz commented Jan 25, 2023

  1. It uses the policy it finds to simulate things from the initial state (given in the problem file) until either a bound is hit, deadend is reached, or goal achieved.
  2. Outcomes are selected uniformly at random.
  3. Those operators correspond to each outcom of an action. The expected is the one the planner hoped would happen, while the chosen one is the sampled one that actually happens.
  4. Yes, that indicates it's the first (0-based counting) operator in the all-outcomes determinization of the non-deterministic problem. You'll have many that differ just in terms of _DETDUP_# values -- one for each outcome.
  5. Just that it's a class of type Atom (ground predicate).

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

2 participants