The Horn-SAT forward-chaining algorithm maintains the set of Boolean variables already forced true. Write each Horn clause as an implication , where the conclusion is either a Boolean variable or false. Start with . Whenever every antecedent belongs to , add the conclusion ; if the conclusion is false, report failure.
Every satisfying assignment must make all members of true: this holds initially and is preserved by each enabled implication. Thus an enabled false conclusion proves that no satisfying assignment exists. If no further Boolean variable can be added and no such failure occurs, interpreting exactly as true satisfies every Horn clause. It is the least satisfying assignment under inclusion of true Boolean variables.
For example, the clauses , and force . Adding makes the instance unsatisfiable. Each Boolean variable enters at most once. Indexing antecedent occurrences and maintaining a counter per clause permits one update per occurrence, avoiding repeated full scans.

Articles by others on the same topic (0)

There are currently no matching articles.