Talk:Forward checking

From what I remember to have learn at the university, forward checking is not the same as the look ahead algorithm, though the second can be considered an enhancement of the first. Shouldn't it be an article on its own instead of a redirect to look ahead? --Huygens 25 14:37, 6 February 2007 (UTC)
 * The redirect is there just because Look-ahead (backtracking) has something on forward checking (first paragraph of section "Look ahead techniques"). I have changed the redirect to point to that section, but I have no objection to splitting out that part (it should be expanded in that case). Tizio 15:33, 6 February 2007 (UTC)

FC is one technique
Forward Checking is one technique of eliminating or pruning alternatives to look at in a backtracking tree search. "Full lookahead" ahd "Partial lookahead" are techniques that add to these by making additional checks of potential future variable assignments. MAC or "Maintaining Arc Consistency" is a generally accepted as more powerful on larger problems, but FC is simpler. But one does not need to do any pruning or elimination of future assignments except for the massive improvements in execution efficiency during the treesearch. Treesearch is the base algorithm--these are all techniques on top of treesearch method.

The main difference of what we called "lookahead" is that lookahead compared or eliminated combinations in which both variables were future nodes in the treesearch, where the "forward" checking was present node variable against future variable's potential results. I'm not sure that everyone has maintained the same terminology as our original research when the FC algorithm was developed. Generally I would consider these all as small (but very important) algorithm changes within the general area of pruning "future" choices during the treesearch, with "future" and "forward" as details. I remember we had difficulty naming the original algorithms, and in fact changed names as new techniques were developed.

That said, many algorithms in use today use "forward checking" as a fundamental algorithm control structure, and add the "future" or arc checks as additional techniques. So various views are all consistent with someone's code version on this topic, not easily broken out into separate pages.

64.136.209.228 21:44, 30 June 2007 (UTC)Gordon Elliott