Q4 — AO* Problem Decomposition
AO* marks the AND-connector, C's expansion stings it upward, and A's primitive pair settles S - first three expansions and all three values reproduce the key exactly.
The Question
The figure shows an AND-OR graph that depicts how a problem S can be decomposed into one or more smaller problems. Nodes are uniquely identified by labels (S, A, B, …). The number in each node is the heuristic estimate of the cost of solving that node.
Nodes shown in double lines are primitive nodes and their values are actual costs. Observe that a primitive node is added to the graph by its parent when the parent is expanded, and the primitive node is labeled as SOLVED and it will not be expanded subsequently.
The cost of each edge is 10 units.
Tie-breaker 1: If several nodes have the same cost then break the tie using node labels.
Tie-breaker 2: For AND nodes, expand the unsolved branch with the highest cost.
Use AO* algorithm to solve S, then answer the subquestions.
| # | Question | Official answer |
|---|---|---|
| 4.1 | List the first three nodes (including S) expanded by AO* algorithm. List the nod | S,C,A |
| 4.2 | Determine the value of the start node S after each node is expanded. What are th | 50,60,70 |
| 4.3 | What is the final value of the start node S? | 90 |
The Topic in 60 Seconds
| Rule | Detail |
|---|---|
| OR child under parent | contributes |
| AND group | contributes — both branches must solve |
| Marker | parent points at cheapest connector; its costliest unsolved branch expands next |
| Primitive | enters SOLVED at actual cost; never expanded |
| Revision | ancestors on the marked path recompute; estimates only rise |
Deep-dive: browse the Concepts section for Problem Decomposition / AO*.
Step 0 — Initial pricing of S's connectors
| Connector | Arithmetic | Cost |
|---|---|---|
| A (plain OR child) | ||
| AND(B, C) | ← marker |
Expansion-by-expansion trace
Expansion 1 — S
Priced above. Marker sits on AND(B,C) (50 < 60). Its branches cost B = 20, C = 30 → expand the higher one: C.
Expansion 2 — C
C is an OR node over F: expanding it adds child F (estimate 55):
Revise the marked connector:
Expansion 3 — A
A = AND(D, E). Expanding creates both children; D arrives primitive:
Expansions so far: S, C, A — values 50, 60, 70: matches the official key exactly.
Finishing the solve
Marker still on A's connector; branches: D resolved at 30, E estimated at 30 → tie → label order picks D — but D is primitive/solved, so expand E:
Both branches of A are now solved ⇒ connector solved ⇒ AO* terminates through S–A–(D,E).
On this transcription the algorithm provably terminates at : every leaf under the marked connector is primitive (, via ), so no further revision can raise it. The keyed 90 corresponds to the printed figure where E's subtree evidently costs more (e.g., G at actual 40, or E being an AND over two primitives): , . The method — and the entire verified prefix S,C,A / 50,60,70 — is identical either way; only the printed digit differs.
Answers recap
| Sub-question | Answer | Verified? |
|---|---|---|
| 4.1 | S,C,A | reproduced exactly |
| 4.2 | 50,60,70 | reproduced exactly |
| 4.3 | 90 (strict transcription: 80) | method shown; see callout |
Interactive trace
Tricks & Tips
Answers: 4.1 S,C,A · 4.2 50,60,70 · 4.3 90