biology daily - the biology and biochemistry encyclopedia
biology daily articles and research Encyclopedia Dictionary Forums biology research links Weblinks Pictures Articles Blogs Newsletter

Knuth-Bendix completion algorithm

The Knuth-Bendix completion algorithm is an algorithm for transforming a set of equations (over terms) into a confluent term rewriting system. When the algorithm succeeds, it has effectively solved the word problem for the specified algebra. Hence, it can also be used to solve the coset enumeration problem. The word problem is, in general, undecidable, hence the algorithm cannot always terminate successfully. If it does not succeed, it will either run forever, or fail when it encounters an unorientable equation (i.e. an equation that it cannot turn into a rewrite rule). The enhanced completion without failure will not fail on unorientable equations and provides a semi-decision procedure for the word problem.

Description of the algorithm

Suppose we are given a presentation \langle X \mid R \rangle, where X is a set of generators and R is a set of relations giving the rewriting system. Suppose further that we have a well-ordering < words generated by X. For each relation Pi = Qi in R, suppose Qi < Pi. Thus we begin with the set of reductions P_i \rightarrow Q_i.

First, if any relation Pi = Qi can be reduced, replace Pi and Qi with the reductions.

Next, we add more reductions (that is, rewriting rules) to eliminate possible exceptions of confluence. Suppose that Pi and Pj, where i \neq j, overlap. That is, either the prefix of Pi equals the suffix of Pj, or vice versa. In the former case, we can write Pi = BC,Pj = AB; in the latter case, Pi = AB,Pj = BC.

Reduce the word ABC using Pi first, then using Pj first. Call the results r1,r2, respectively. If r_1 \neq r_2, then we have an instance where confluence could fail. Hence, add the reduction \max r_1, r_2 \rightarrow \min r_1, r_2 to R.

After adding a rule to R, remove any rules in R that might have reducible left sides.

Repeat the procedure until all overlapping left sides have been checked.

Example

Consider the presentation \{ x, y \mid x^3 = y^3 = (xy)^3 = 1 \}. We use the lexicographic ordering. In fact, this is an infinite group. Nevertheless, the Knuth-Bendix algorithm is able to solve the word problem.

Our beginning three reductions are therefore (1) x^3 \rightarrow 1, (2) y^3 \rightarrow 1, and (3) (xy)^3 \rightarrow 1.

First, we see an overlap of x in (1) and (3). Consider the word x3yxyxy. Reducing using (1), we get yxyxy. Reducing using (3), we get x2. Hence, we get yxyxy = x2, giving the reduction rule (4) yxyxy \rightarrow x^2.

Similarly, using the overlap of y in (2) and (3), we get the reduction (5) xyxyx \rightarrow y^2.

Both of these rules obsolete (3), so we remove it.

Next, consider the overlap of x of (1) and (5). Considering x3yxyx we get the rule yxyx = x2y2, so we get the rule (6) yxyx \rightarrow x^2y^2. This obsoletes rule (4) and (5), so we remove them. Considering xyxyx3, we get xyxy = y2x2, so we get the rule (7) y^2x^2 \rightarrow xyxy.

Now, we are left with the rewriting system

  • (1) x^3 \rightarrow 1
  • (2) y^3 \rightarrow 1
  • (6) yxyx \rightarrow x^2y^2
  • (7) y^2 x^2 \rightarrow xyxy

Checking the overlaps of these rules, we find no potential failures of confluence. Therefore, we have a confluent rewriting system, and the algorithm terminates successfully.



07-14-2008 23:18:10
The contents of this article are licensed from Wikipedia.org under the GNU Free Documentation License. How to see transparent copy
BiologyDaily.com 2005. Legal info   Privacy