Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Backward chaining

From Wikipedia, the free encyclopedia
(Redirected fromBackward reasoning)
Method of forming inferences
Not to be confused withBackward chaining (applied behavior analysis) orBack-chaining.

Backward chaining (orbackward reasoning) is aninference method described colloquially as working backward from the goal. It is used inautomated theorem provers,inference engines,proof assistants, and otherartificial intelligence applications.[1]

Ingame theory, researchers apply it to (simpler)subgames to find a solution to the game, in a process calledbackward induction. In chess, it is calledretrograde analysis, and it is used to generate table bases forchess endgames forcomputer chess.

Backward chaining is implemented inlogic programming bySLD resolution. Both rules are based on themodus ponens inference rule. It is one of the two most commonly used methods ofreasoning withinference rules andlogical implications – the other isforward chaining. Backward chaining systems usually employ adepth-first search strategy, e.g.Prolog.[2]

Usage

[edit]

Backward chaining starts with a list ofgoals (or ahypothesis) and works backwards from theconsequent to theantecedent to see if anydata supports any of these consequents.[3] Aninference engine using backward chaining would search theinference rules until it finds one with a consequent (Then clause) that matches a desired goal. If the antecedent (If clause) of that rule is not known to be true, then it is added to the list of goals (for one's goal to be confirmed one must also provide data that confirms this new rule).

For example, suppose a new pet, Fritz, is delivered in an opaque box along with two facts about Fritz:

  • Fritz croaks
  • Fritz eats flies

The goal is to decide whether Fritz is green, based on arule base containing the following four rules:

An Example of Backward Chaining.
An example of backward chaining
  1. If X croaks and X eats flies –Then X is a frog
  2. If X chirps and X sings –Then X is a canary
  3. If X is a frog –Then X is green
  4. If X is a canary –Then X is yellow

With backward reasoning, an inference engine can determine whether Fritz is green in four steps. To start, the query is phrased as a goal assertion that is to be proven: "Fritz is green".

1. Fritz is substituted for X in rule #3 to see if its consequent matches the goal, so rule #3 becomes:

If Fritz is a frog –Then Fritz is green

Since the consequent matches the goal ("Fritz is green"), the rules engine now needs to see if the antecedent ("Fritz is a frog") can be proven. The antecedent, therefore, becomes the new goal:

 Fritz is a frog

2. Again substituting Fritz for X, rule #1 becomes:

If Fritz croaks and Fritz eats flies –Then Fritz is a frog

Since the consequent matches the current goal ("Fritz is a frog"), the inference engine now needs to see if the antecedent ("Fritz croaks and eats flies") can be proven. The antecedent, therefore, becomes the new goal:

 Fritz croaks and Fritz eats flies

3. Since this goal is a conjunction of two statements, the inference engine breaks it into two sub-goals, both of which must be proven:

 Fritz croaks Fritz eats flies

4. To prove both of these sub-goals, the inference engine sees that both of these sub-goals were given as initial facts. Therefore, the conjunction is true:

 Fritz croaks and Fritz eats flies

therefore the antecedent of rule #1 is true and the consequent must be true:

 Fritz is a frog

therefore the antecedent of rule #3 is true and the consequent must be true:

 Fritz is green

This derivation, therefore, allows the inference engine to prove that Fritz is green. Rules #2 and #4 were not used.

Note that the goals always match the affirmed versions of the consequents of implications (and not the negated versions as inmodus tollens) and even then, their antecedents are then considered as the new goals (and not the conclusions as inaffirming the consequent), which ultimately must match known facts (usually defined as consequents whose antecedents are always true); thus, the inference rule used ismodus ponens.

Because the list of goals determines which rules are selected and used, this method is calledgoal-driven, in contrast todata-drivenforward-chaining inference. The backward chaining approach is often employed byexpert systems.

Programming languages such asProlog,Knowledge Machine andECLiPSe support backward chaining within their inference engines.[4]

See also

[edit]

References

[edit]
  1. ^Feigenbaum, Edward (1988).The Rise of the Expert Company. Times Books. p. 317.ISBN 0-8129-1731-6.
  2. ^Michel Chein; Marie-Laure Mugnier (2009).Graph-based knowledge representation: computational foundations of conceptual graphs. Springer. p. 297.ISBN 978-1-84800-285-2.
  3. ^Definition of backward chaining as a depth-first search method:
  4. ^Languages that support backward chaining:

Sources

[edit]

External links

[edit]
Expert systems
Reasoning systems
Ontology languages
Theorem provers
Constraint satisfaction
Automated planning
Retrieved from "https://en.wikipedia.org/w/index.php?title=Backward_chaining&oldid=1262845624"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp