@@ -34,7 +34,7 @@ Adapt the flow: if the user provides a formal problem name, validate it with `pr
3434```
3535Step 1: Clarify Problem (skip if user knows the formal name)
3636Step 2: Match to Library Models (web search + pred list)
37- Step 3: Explore Reduction Paths (multi-hop guided via pred to)
37+ Step 3: Explore Reduction Paths (auto-explore via pred to --hops 3 )
3838Step 4: Recommend Solvers (web search + pred solve options)
3939Step 5: Generate Solution Doc (docs/solutions/<name>.md)
4040```
@@ -106,47 +106,30 @@ Use `AskUserQuestion` for each question. Format options as **(a)**/**(b)**/**(c)
106106
107107## Step 3: Explore Reduction Paths
108108
109- ** Goal:** Guide the user through the reduction graph one hop at a time until they reach a solver-ready target .
109+ ** Goal:** Discover all solver-ready targets reachable from the chosen model and present them ranked .
110110
111- ** This is an interactive loop. Each iteration:**
112-
113- 1 . ** Run ` pred to <current_model> ` ** to get 1-hop reduction targets. Copy-paste the full output.
111+ ** Actions:**
114112
115- 2 . ** For each target ** , gather additional info and present an annotated table:
113+ 1 . ** Run ` pred to <model> --hops 3 ` ** to find all problems reachable within 3 hops. Copy-paste the full output.
116114
115+ 2 . ** For each reachable problem** , gather info:
116+ - Run ` pred path <model> <target> ` to get the cheapest witness-capable reduction path and composed overhead
117117 - Run ` pred show <target> ` to get its best-known complexity
118- - Run ` pred path <target> ILP ` to check if an ILP path exists (report step count or "No path")
119- - Extract overhead from the ` pred to ` / ` pred show ` output
120-
121- Present the table:
122-
123- | # | Reduces To | Overhead | Complexity | Has ILP Path? |
124- | ---| ------------| ----------| ------------| ---------------|
125- | 1 | ... | ... | ... | ... |
126- | 2 | ... | ... | ... | ... |
127-
128- 3 . ** Show the running path summary:**
129-
130- ```
131- Path so far: MIS -> MaximumSetPacking -> ???
132- Accumulated overhead: num_sets = num_vertices, universe_size = num_edges
133- ```
118+ - Check if it's a solver-ready target (ILP, QUBO, SAT) or has a path to one via ` pred path <target> ILP `
134119
135- 4 . ** Ask the user** using ` AskUserQuestion ` :
136- - Pick a target number to continue exploring
137- - Or say "solve here" to stop at the current problem
138- - Or say "go back" to revisit the previous step
120+ 3 . ** Present a ranked table** (most practical paths first — fewest hops, lowest overhead):
139121
140- 5 . ** Repeat** with the chosen target as the new current model.
122+ | # | Target | Hops | Composed Overhead | Target Complexity | Solver-Ready? |
123+ | ---| --------| ------| -------------------| -------------------| ---------------|
124+ | 1 | ILP | 2 | num_vars = 2* n + m | O(2^num_vars) | Yes (is ILP) |
125+ | 2 | QUBO | 1 | num_vars = n | O(2^num_vars) | Yes (is QUBO) |
126+ | 3 | MaxSetPacking | 1 | num_sets = n | O(2^num_sets) | Yes (ILP in 2 steps) |
141127
142- ** Termination conditions:**
143- - User reaches ILP or another solver-ready problem and says "solve here"
144- - User explicitly chooses brute-force on the current problem
145- - No outgoing reductions exist — inform the user this is a dead end and suggest backtracking
128+ 4 . ** Ask the user** using ` AskUserQuestion ` : "Which reduction path would you like to use? Pick a number."
146129
147- ** Backtracking: ** If the user says "go back" or "try a different target", re-run ` pred to ` on the previous model and present options again .
130+ ** If ` --hops 3 ` returns more than 15 results: ** present only the top 10 by overhead and mention the rest are available .
148131
149- ** Proceed to Step 4 with the final reduction path.**
132+ ** Proceed to Step 4 with the chosen path.**
150133
151134---
152135
0 commit comments