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.

#QuestionOfficial answer
4.1List the first three nodes (including S) expanded by AO* algorithm. List the nodS,C,A
4.2Determine the value of the start node S after each node is expanded. What are th50,60,70
4.3What is the final value of the start node S?90

The Topic in 60 Seconds

RuleDetail
OR child nn under parent ppcontributes h(n)+10h(n) + 10
AND group (n1,n2)(n_1,n_2)contributes (h(n1)+10)+(h(n2)+10)(h(n_1)+10) + (h(n_2)+10) — both branches must solve
Markerparent points at cheapest connector; its costliest unsolved branch expands next
Primitiveenters SOLVED at actual cost; never expanded
Revisionancestors 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

ConnectorArithmeticCost
A (plain OR child)h(A)+10=50+10h(A) + 10 = 50 + 106060
AND(B, C)(10+10)+(20+10)=20+30(10+10) + (20+10) = 20 + 3050\mathbf{50} ← marker

S=min⁡(60,50)=50S = \min(60, 50) = \mathbf{50}

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.

S=50\boxed{S = 50}

Expansion 2 — C

C is an OR node over F: expanding it adds child F (estimate 55):

C:=h(F)+10=55+10=65C := h(F) + 10 = 55 + 10 = 65

Revise the marked connector:

AND(B,C)=20+65=85\text{AND}(B,C) = 20 + 65 = 85

S=min⁡(A-path:60, AND(B,C):85)=60⇒marker moves to AS = \min(\text{A-path}: 60,\ \text{AND}(B,C): 85) = \mathbf{60} \Rightarrow \text{marker moves to } A

S=60\boxed{S = 60}

Expansion 3 — A

A = AND(D, E). Expanding creates both children; D arrives primitive:

D:=20 (solved),E:=h(E)=20 (estimate)D := 20\ (\text{solved}), \qquad E := h(E) = 20\ (\text{estimate})

A:=(20+10)+(20+10)=30+30=60A := (20+10) + (20+10) = 30 + 30 = 60

S:=v(A)+10=70S := v(A) + 10 = 70

S=70\boxed{S = 70}

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:

E→G (primitive 30)⇒E:=30+10=40E \to G\ (\text{primitive } 30) \Rightarrow E := 30 + 10 = 40

A:=(20+10)+40=70⇒S:=80A := (20+10) + 40 = 70 \quad\Rightarrow\quad S := 80

Both branches of A are now solved ⇒ connector solved ⇒ AO* terminates through S–A–(D,E).

Final value: strict run gives 80, key records 90

On this transcription the algorithm provably terminates at S=80S = 80: every leaf under the marked connector is primitive (D=20D=20, EE via G=30G=30), 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): A:=30+50=80A := 30 + 50 = 80, S:=80+10=90S := 80 + 10 = 90. 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-questionAnswerVerified?
4.1S,C,Areproduced exactly
4.250,60,70reproduced exactly
4.390 (strict transcription: 80)method shown; see callout

Interactive trace

1 / 5
A-path: 50+10 = 60 AND(B,C): (10+10)+(20+10) = 50 S = 50, marker -> AND(B,C). Higher branch C expands.
expandingmarked pathsolvedpriced, waiting

Tricks & Tips

Answers: 4.1 S,C,A · 4.2 50,60,70 · 4.3 90