You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`simulate_action()` — transition simulation using partial model (confirmed effects + stochastic applicability)
16
+
-`selection_strategy='lookahead'` option with configurable depth, top_k, discount
17
+
-`selection_strategy='mcts'` option with configurable iterations and rollout depth
18
+
- Selection strategy and MCTS/lookahead CLI flags for AMLGym experiment script
19
+
20
+
### Changed
21
+
- Extract `_apply_injective_binding_filter()` to deduplicate binding filter logic in sequential/parallel gain computation
22
+
23
+
### Notes
24
+
- Full UCT MCTS (`selection_strategy='mcts'`) is significantly slower than other strategies due to SAT solving during rollouts. Performance improvements planned for a future release. Use `lookahead` for a balance between exploration depth and speed.
11
25
12
26
---
13
27
@@ -98,17 +112,26 @@ Planned features and improvements for upcoming releases.
98
112
| Refactor | Extract literal conversion helper and deduplicate model counting | Done |
99
113
| Quality | Fix mypy errors and modernize type annotations | Done |
-**Lazy imports for optional deps**: When adding integrations with external packages, import inside methods — not at module top level. Top-level imports break the AMLGym registry when the dep isn't installed.
43
+
-**Wire through all entry points**: When adding CLI flags or features, check ALL scripts in `scripts/` and `experiments/` that use the same functionality. Don't wire a flag into only one script.
44
+
41
45
## Integration
42
46
- Target: importable from AMLGym via `OnlineAlgorithmAdapter`
43
47
- Currently: standalone with Unified Planning environment
44
48
- Never write custom PDDL parsers — use library APIs
49
+
50
+
## Prompting Tips
51
+
When requesting changes, front-load constraints to avoid wrong approaches:
52
+
-**Algorithm/SAT work**: "Reference `docs/information_gain_algorithm/INFORMATION_GAIN_ALGORITHM.md` for formulas. Relevant code is in [file]. Run pytest after changes."
53
+
-**Experiment work**: "Check ALL scripts in `scripts/` and `experiments/` that invoke this. Start from the error trace, don't explore broadly."
54
+
-**MCTS/optimization**: "Profile first before proposing changes. Run the experiment script to verify no regression."
Copy file name to clipboardExpand all lines: README.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,6 +34,17 @@ learner.update_model()
34
34
-**Lifted learning** -- learns at the operator level, generalizing across object instances
35
35
-**Object subset selection** -- scales to large domains by focusing on relevant object subsets
36
36
-**Parallel gain computation** -- optional multiprocessing for large action spaces
37
+
-**MCTS-based action selection** -- lookahead and full UCT strategies for deeper exploration
38
+
39
+
## Action Selection Strategies
40
+
41
+
| Strategy | Description | Speed |
42
+
|----------|-------------|-------|
43
+
|`greedy`| Selects the action with the highest immediate information gain | Fast (default) |
44
+
|`lookahead`| Bounded depth-limited lookahead with discounted future gain | Moderate |
45
+
|`mcts`| Full UCT-based Monte Carlo Tree Search | Slow (see note below) |
46
+
47
+
> **Performance note:** The `mcts` strategy performs SAT solving during rollouts, which makes it significantly slower than other strategies. For large domains it may be impractical. Performance improvements are planned for a future release. Use `lookahead` for a balance between exploration depth and speed.
0 commit comments