19.07.2014 Views

Contents - Student subdomain for University of Bath

Contents - Student subdomain for University of Bath

Contents - Student subdomain for University of Bath

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

134 CHAPTER 4. MODULAR METHODS<br />

(presumed) x i y j terms in the g.c.d., to get the following final result:<br />

x 4 (y 7 ( z 3 + z 2 + z + 1 ) + y 3 ( z 4 + z 3 + z 2 + z + 1 ) +<br />

y ( z 5 + z 4 + z 3 + z 2 + z + 1 )) + x 2 ( y 7 ( z 3 + z 2 + z + 1 ) + y 4 z 5 + 1 ) + 1.<br />

(4.13)<br />

We still need to check that it does divide g and g, but, once we have done so,<br />

we are assured by Corollary 11 that it is the greatest common divisor.<br />

4.3.2 Converting this to an algorithm<br />

There are, however, several obstacles to converting this to an algorithm: most<br />

centring around the linear systems such as (4.10). First, however, we must<br />

<strong>for</strong>malize the assumption made on page 133.<br />

Definition 72 We define the skeleton <strong>of</strong> a polynomial f ∈ R[x 1 , . . . , x n ], denoted<br />

Sk(f), to be the set <strong>of</strong> monomials in a (notional) distributed representation<br />

<strong>of</strong> f.<br />

Definition 73 We say that an evaluation φ : R[x 1 , . . . , x n ] → R[x i : i /∈ S],<br />

which associates a value in R to every x i : i ∈ S, satisfies the Zippel assumption<br />

<strong>for</strong> f if ψ(Sk(f)) = Sk(φ(f)), where ψ deletes the powers <strong>of</strong> x i : i /∈ S from<br />

monomials.<br />

For example, if f = (y 2 − 1)x 2 − x, Sk(f) = {x 2 y 2 , x 2 , x}. If φ : y ↦→ 1, then<br />

φ(f) = −x, so Sk(φ(f)) = {x}, but ψ(Sk(f)) = {x 2 , x}, so this φ does not<br />

satisfy the Zippel assumption. However, if φ : y ↦→ 2, φ(f) = 3x 2 − x and<br />

Sk(φ(f)) = {x 2 , x}, so this φ satisfies the Zippel assumption.<br />

Hence the assumption on page 133 was that z ↦→ 2 satsifies the Zippel<br />

assumption. Let us now look at the problems surrounding (4.10). In fact, there<br />

are three <strong>of</strong> them.<br />

1. The equations might be under-determined, as we saw there.<br />

2. We need to solve a t × t system, where t is the number <strong>of</strong> terms being<br />

interpolated. This will normally take O(t 3 ) coefficient operations, and, as<br />

we know from section 3.2.3, the coefficients may also grow during these<br />

operations.<br />

3. The third problem really goes back to (4.9). We stated that<br />

gcd(f| z=3,y=−1 , g| z=3,y=−1 ) = −525x 4 + 204x 2 + 1,<br />

but we could equally well have said that it was 525x 4 − 204x 2 − 1, at<br />

which point we would have deduced that the equivalent <strong>of</strong> (4.10) was<br />

inconsistent. In fact, Definition 25 merely defines a greatest common<br />

divisor, <strong>for</strong> the reasons outlined there. We there<strong>for</strong>e, as in Algorithm 14,<br />

impose gcd(lc(f), lc(g)), as the leading coefficient <strong>of</strong> the greatest common<br />

divisor.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!