diff options
| author | Jedidiah Barber <contact@jedbarber.id.au> | 2026-02-09 14:52:20 +1300 |
|---|---|---|
| committer | Jedidiah Barber <contact@jedbarber.id.au> | 2026-02-09 14:52:20 +1300 |
| commit | ad7fc58a7097e19c49cbf4a7c11ae9c0a7086a52 (patch) | |
| tree | b96a2b3dd0e898c34dbd5cc95e5e543f098129f7 | |
| parent | ab78413a044900e421d2e0144f3c170bdc3f0b18 (diff) | |
Readme updated to note IDDFS use
| -rw-r--r-- | readme.md | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -92,10 +92,14 @@ programs. Internally a Goal is structured as a directed acyclic graph. Evaluation of a Goal involves inverting the arrows in the graph, interleaving those arrows according to Disjunct choices made from the top to get there, and then running -a depth-first search from the bottom upwards using the inverted graph. When -a Conjunct node is encountered it is expanded, inverted, and interleaved in a -similar way before the search continues. The inversions and expanded portions -are all discarded once evaluation is complete. +an iterative deepening depth-first search from the bottom upwards using the +inverted graph. The depth limit that is iterated on is the number of Conjunct +nodes seen. When a Conjunct node is encountered it is expanded, inverted, +and interleaved before the search continues. If too many Conjunct nodes have +been encountered, the search will backtrack to before where the first one was, +increase the limit, and keep going on other branches before coming back later. +The inversions and expanded portions are all discarded once evaluation is +complete. The State datatype makes use of a Vector of Variable->Term bindings and a Hashed_Map to get from Variable to the index for the Vector. Both are needed so |
