20
Goal-driven Mechanism in Interim.2 Go Program Ling Zhao University of Alberta Go Seminar on September 29, 2004

Goal-driven Mechanism in Interim.2 Go Program

  • Upload
    kevork

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

Goal-driven Mechanism in Interim.2 Go Program. Ling Zhao University of Alberta Go Seminar on September 29, 2004. Outline. Overview of the Interim Go program Framework Probe Examples Experimental results After thoughts. Overview of Interim.2 Program. - PowerPoint PPT Presentation

Citation preview

Page 1: Goal-driven Mechanism in Interim.2 Go Program

Goal-driven Mechanism in Interim.2 Go Program

Ling Zhao

University of Alberta

Go Seminar on September 29, 2004

Page 2: Goal-driven Mechanism in Interim.2 Go Program

Outline

Overview of the Interim Go program Framework Probe Examples Experimental results After thoughts

Page 3: Goal-driven Mechanism in Interim.2 Go Program

Overview of Interim.2 Program

Developed by Bruce Wilcox and Walter Reitman in 1970s (1972-1979), 7 man-years, 8K lines of LISP.

At least 6 papers published based on this program addressing different aspects: structure & performance, pattern matching, planning, knowledge representation, goal-driven analysis, etc.

Page 4: Goal-driven Mechanism in Interim.2 Go Program

Framework of Interim.2MOVE UPDATE.POINT.TYPES UPDATE.STRINGS UPDATE.LENSES UPDATE.LINKS UPDATE.GROUPS UPDATE.WEBS UPDATE.SECTOR.LINES UPDATE.TERRITORIES UPDATE.TACTICAL.ANALYSES [PROBE] UPDATE.GROUP.STABILITY.ESTIMATES

REFLEXLOCAL.URGENT PLAY.JOSEKI STRING.ATTACK.AND.DEFEND LINK.ATTACK.AND.DEFEND RE.EDGE.LINK

[PROBE] VITAL.SHAPE.POINT CONTACT.FIGHTDEVELOP.GROUP KILL.CUTTING.STRING EXTEND.AND.SQUEEZE COUNTERATTACK CROSS.SECTOR.LINE STABILIZE.POTENTIAL.TERRITORY RUN.TOATTACK.GROUP WIPE.OUT SHAPE.POINTS

[PROBE] SQUEEZE ENCLOSERUN.TOWARD.DEAD.GROUPEXTEND.SECURE.INVADEDEVELOP.POTENTIAL.TERRITORYENDGAME

Page 5: Goal-driven Mechanism in Interim.2 Go Program

Probe: overview

Best-first problem-solving system inside Interim.2.

Designed to model how skilled human player solve tactical problems by selective search.

Application: problem solving under dynamic or adversarial environments

Page 6: Goal-driven Mechanism in Interim.2 Go Program

Probe: frameworkPROBE SEARCH DEVELOP.GOALS ENTRY.FAIL? RESUME.GOALS? RESULT.FAIL? RESOUCES [LIBERTY.ESTIMATEOR] [QUICK.KILL] GOAL.FAIL? [BAD.SACRIFICE?] SUBGOAL GOAL.REPLY REPLY.FAIL? BACKUP.FAIL? BACK.ONE STORE

Input: A tactical goal.Output: Result of the goal, move, dependency points &areas, validity of the result.

Page 7: Goal-driven Mechanism in Interim.2 Go Program

PROBE SEARCH DEVELOP.GOALS ENTRY.FAIL? RESUME.GOALS? RESULT.FAIL? RESOUCES [LIBERTY.ESTIMATEOR] [QUICK.KILL] GOAL.FAIL? [BAD.SACRIFICE?] SUBGOAL GOAL.REPLY REPLY.FAIL? BACKUP.FAIL? BACK.ONE STORE

RESUME.GOALS?Reinstate high-priority goals?

RESULT.FAIL?Check if the same source results in a failure before.

RESOUCES Collect information about the means available for pursuing the current goal.

LIBERTY.ESTIMATEOR Compute how many more liberties can be gained by augmenting a string.

QUICK.KILLSpecialized look-ahead routine for ladder-kill and forced search.

GOAL.FAIL?Check if current goal fails or succeeds.

BAD.SACRIFICE?Check if sacrificing current goal will fail/succeed the original goal.

Page 8: Goal-driven Mechanism in Interim.2 Go Program

PROBE SEARCH DEVELOP.GOALS ENTRY.FAIL? RESUME.GOALS? RESULT.FAIL? RESOUCES [LIBERTY.ESTIMATEOR] [QUICK.KILL] GOAL.FAIL? [BAD.SACRIFICE?] SUBGOAL GOAL.REPLY REPLY.FAIL? BACKUP.FAIL? BACK.ONE STORE

SUBGOAL Choose among various general methods available for achieving a goal and generate a subgoal if possible.

GOAL.REPLY

Propose a move based on current goal, will call SEARCH again.

REPLY.FAIL?

Move filter.

BACKUP.FAIL?

If the current goal fail, check if backing up to some antecedent goal.

BACK.ONE

Restore and try another resource.

Page 9: Goal-driven Mechanism in Interim.2 Go Program

Resources

Organized as a set of packets. Each packet contains all instances of one type of resources.

A packet has two lists: one for un-probed instances and the other for those otherwise.

Instances are ordered best first.

Page 10: Goal-driven Mechanism in Interim.2 Go Program

Resources: example

DEFEND-STRING/ATTACK-STRING goal with some string S.

Relevant resources:

a. liberty points of S,

b. enemy strings adjacent to S

Page 11: Goal-driven Mechanism in Interim.2 Go Program

Packet 1 for DEFEND-STRING

A packet containing all of the possible plays upon a liberty point of S. Associated with each of these points is the following information:

(a) the set of friendly strings adjacent to that point;

(b) the set of enemy strings adjacent to that point;

(c) the liberty count S will have if defender plays at this point

(d) the liberty count S will have if attacker plays at this point

Page 12: Goal-driven Mechanism in Interim.2 Go Program

Packets 2-4 for DEFEND-STRING

2. A packet containing all enemy strings adjacent to S, ordered weakest first.

3. A packet containing all double-threat plays

4. A packet containing all enemy strings that can be QUICK-KILLed.

Page 13: Goal-driven Mechanism in Interim.2 Go Program

Output of Probe

Type of the call and target Result and move for attacker and defender

to play first respectively. A list of relevant points (must be empty). A list of relevant strings (only consider the

liberty count).

Page 14: Goal-driven Mechanism in Interim.2 Go Program

ExampleREFLEX

LOCAL.URGENT PLAY.JOSEKI STRING.ATTACK.AND.DEFEND LINK.ATTACK.AND.DEFEND RE.EDGE.LINK

[PROBE] VITAL.SHAPE.POINT CONTACT.FIGHTDEVELOP.GROUP KILL.CUTTING.STRING EXTEND.AND.SQUEEZE COUNTERATTACK CROSS.SECTOR.LINE STABILIZE.POTENTIAL.TERRITORY RUN.TOATTACK.GROUP WIPE.OUT SHAPE.POINTS

[PROBE] SQUEEZE ENCLOSERUN.TOWARD.DEAD.GROUPEXTEND.SECURE.INVADEDEVELOP.POTENTIAL.TERRITORYENDGAME

After White move at C2:LOCAL.URGENT ->RE.EDGE.LINK ->Get B2 and B3 from patterns ->CAN’T CUT? for B3->PROBE

Page 15: Goal-driven Mechanism in Interim.2 Go Program

ExamplePROBE INPUT: Search type (CONNECTED-EXTENSION) Move considered (B2) Side to move (Black) Two endpoints for linkages (B2,C3)

1. Update all data structures for a hypothetical black move at B2.

2. Initial goal for Black: DEFEND-LINK B2-C3

3. Initial goal for White: ATTACK-LINK B2-C3

4. SEARCH -> DEVELOP.GOALS5. ENTRY.FAIL? No.6. RESOUCES (a) moves to attack the linkage (b) alternate path to tie the two endpoints (c) enemy strings adjacent to both endpoints7. GOAL.FAIL? No.8. SUBGOAL? No.

PROBE SEARCH DEVELOP.GOALS ENTRY.FAIL? RESUME.GOALS? RESULT.FAIL? RESOUCES [LIBERTY.ESTIMATEOR] [QUICK.KILL] GOAL.FAIL? [BAD.SACRIFICE?] SUBGOAL GOAL.REPLY REPLY.FAIL? BACKUP.FAIL? BACK.ONE STORE

Page 16: Goal-driven Mechanism in Interim.2 Go Program

Example10. GOAL.REPLY: get B3 from resource(a)11. REPLY.FAIL for B3? No.12. return to DEVELOP.GOALS13. return to SEARCH14. SEARCH calls MOVE to place another hypothetical white move B3.15. DEVELOP.GOALS -> ENTRY.FAIL? -> RESOUCES -> GOAL.FAIL? -> SUBGOAL16. SUBGOAL proposes a subgoal of killing B3 to advance the original goal. SUBGOAL calls QUICK.KILL to check feasibility.17. SUBGOAL adds ATTACK-STRING and DEFEND-STRING GOALS to goal stacks.18. Goes back to DEVELOP.GOALS.19. ENTRY.FAIL? ->RESOUCES-> GOAL.FAIL?20. GOAL.FAIL? B3 is killable -> BAD.SACRIFICE? B3 is essential.21. Goal fails for attempt at B322. Back up and try another resource.23. No more moves. 24. Return result: Linkage safe.

PROBE SEARCH DEVELOP.GOALS ENTRY.FAIL? RESUME.GOALS? RESULT.FAIL? RESOUCES [LIBERTY.ESTIMATEOR] [QUICK.KILL] GOAL.FAIL? [BAD.SACRIFICE?] SUBGOAL GOAL.REPLY REPLY.FAIL? BACKUP.FAIL? BACK.ONE STORE

Page 17: Goal-driven Mechanism in Interim.2 Go Program

Discussion

Resources: rule-based static analysis to propose moves

A goal can be assisted with subgoals, but no coordination between subgoals. No necessary conditions between goal and subgoals, which resulted in many complexities.

One goal can have several subgoals, and although they all will be evaluated, it seems only one will be actually tried (put into goal stacks).

Page 18: Goal-driven Mechanism in Interim.2 Go Program

Experimental results

Claimed about 27 kyu for the program. 278 test positions from 2 test games. Classified into 3 categories by Wilcox: easy (10

kyu rank), moderate (4 kyu rank), and hard (1 dan rank).

Accuracy rate (including both results and reasoning):

easy: 88%, moderate: 56%, hard: 100%

but only 3 hard positions.

Page 19: Goal-driven Mechanism in Interim.2 Go Program

After thoughts

A first complete goal-driven Go program. Strategic framework: rule-based system Tactical layer: static analysis (patterns,

rules) and look ahead. Very constrained goal-driven search. No real decomposition for goals. Experimental results seem very impressive.

Page 20: Goal-driven Mechanism in Interim.2 Go Program

References

Walter Reitman and Bruce Wilcox. The structure and performance of the Interim.2 Go program. In Proceedings of the Joint Conference on Artificial Intelligence, pages 711 - 719, 1979.

Walter Reitman and Bruce Wilcox. Modeling tactical analysis and problem solving in Go. In Proceedings of the Tenth Annual Pittsburg Conference on Modelling and Simulation, pages 2133 - 2148, Pittsburg, 1979. Instrument Society of America.