Phát sinh các đa thức bất khả quy bậc cao với số lượng hạn chế

Một phần của tài liệu XÂY DỰNG CƠ SỞ DỮ LIỆU CÁC ĐA THỨC BẤT KHẢ QUY (Trang 31 - 49)

tích , ; ra tích các thừa số bất khả quy. Các phần tiếp theo (mục 2.2.2 và mục 2.2.3) sẽ trình bày hai giải thuật phân tích phổ biến là giải thuật Berlekamp [26] và giải thuật Cantor-Zassenhaus [28].

Định lý 2.2.1.2 sau đây (theo [26], Theorem 3.25, trang 84) cho ta biết sự phân bố của các đa thức bất khả quy trên trường hữu hạn theo bậc của đa thức.

Định lý 2.2.1.2

Số các đa thức bất khả quy bậc trên , ký hiệu là , được xác định bởi công thức: 1 | 1 |     2.2.1.3

Như chúng ta sẽ thấy sau này ở chương 3 (mục 3.2), khi bậc tăng thì số các đa thức bất khả quy bậc sẽ tăng lên rất nhanh. Do đó đa thức tích , ; sẽ có bậc rất cao, khiến cho quá trình phân tích thành các nhân tử bất khả quy trở nên kém hiệu quả. Định lý (2.2.1.3) dưới đây (theo [26], Theorem 3.31, trang 86) giúp ta giảm bậc của đa thức cần phân tích.

Định lý 2.2.1.3

Với 0 ta có:

trong đó tích ở vế phải được thực hiện trên tất cả các số nguyên dương là ước của

1, sao cho là bậc của modulo (tức là không tồn tại số nguyên dương nào mà lại là ước của 1) và là đa thức cyclotomic bậc  trên . Đa thức cyclotomic bậc , được xác định bởi công thức (theo [26], Theorem 3.27, trang 84): 1 | 1 |     2.2.1.5 Ví dụ, xét 2,6; x x x x x x x x x x x x x x x x x x x x x x x x x 1. Các giá trị là ước của 2 1 63 3.3.7 là 1, 3, 7, 9, 21 và 63. Tuy nhiên, vì

1|2 1  1 , 3|2 1  2 , 7|2 1  3 nên các số 1, 3 và 7 không thỏa điều kiện của định lý 2.2.1.3. Dễ dàng kiểm tra 9, 21 và 63 thỏa điều kiện của định lý 2.2.1.3, nên ta có thể biểu diễn 2,6; dưới dạng:

2,6; Ta có: ∏ 1 1 1 1 1 | . Tương tự ta tính được: 1 x x x x x x x x x x x x x 1 Tức là: 2,6; 1 1   36 x34 x28 x26 x20 x18 x16 x14 x12 x10 x8 x6 x4 x2 1 .

Như vậy thay vì phải phân tích đa thức bậc 54 ta sẽ phân tích ba đa thức có bậc nhỏ hơn, trong đó đa thức có bậc lớn nhất là 36.

Một định lý có nhiều ứng dụng quan trọng trong lý thuyết trường hữu hạn là định lý

Trung Hoa về phép chia có dư, được phát biểu như sau (theo [1], Định lý 4, trang 66).

Định lý 2.2.1.4

Giả sử:

2,    , , … ;    , , … , gcd , 1,   1

Khi ấy hệ phương trình đồng dư:

    , 1

Có một nghiệm   duy nhất ( ∏ , 0 ).

2.2.2. Giải thuật Berlekamp

Giả sử rằng là tích của các thừa số phân biệt nhau , , … , (số mũ của các đều bằng 1, ta nói có dạng square-free). Khi ấy giải thuật phân tích đa thức thành nhân tử bất khả quy của Berlekamp (theo [26], trang 130-134) dựa trên cơ sở của định lý 2.2.2.1 dưới đây (theo [26], Theorem 4.1, trang 130).

Định lý 2.2.2.1

Giả sử có hệ số đầu bằng 1 và sao cho     , khi ấy:

gcd ,    2.2.2.1

Ý tưởng chính của giải thuật Berlekamp là đi tìm đa thức thỏa điều kiện áp dụng của định lý 2.2.2.1 ở trên.

Giả sử rằng: …     2.2.2.2

Ta có:

    2.2.2.3

(vì trên trường hữu hạn ta có   ).

Ta xây dựng một ma trận , 0 , 1 có kích thước bằng cách tính     như sau:       0 1    2.2.2.4 Thay thế 2.2.2.4 vào 2.2.2.3 ta có:             , , , , , , , , , ,

, , … , , , … ,

hay,

, , … , 0,

trong đó là ma trận đơn vị cấp .

Sử dụng định lý Trung Hoa về phép chia có dư Berlekamp [26] đã chứng minh được rằng các nghiệm cần tìm lập thành một cơ sở của không gian con null space của . Từ đó ta có giải thuật Berlekamp sau đây cho bài toán phân tích đa thức thành

các nhân tử bất khả quy. Giải thuật bao gồm hai giai đoạn.

Giai đoạn 1: Giải thuật tìm các đa thức thỏa    

1. Thành lập ma trận theo công thức 2.2.2.4 ở trên bằng cách thực hiện tính

  , 0 1 (kết quả     chính là dòng thứ của ma trận ).

2. Sử dụng phương pháp (giải thuật) Gauss để đưa ma trận về dạng Column

Echelon. Giả sử ta được ma trận kết quả là .

3. Tìm cơ sở của ma trận . Kết quả chính là mảng các đa thức cần tìm.

Giai đoạn 2: Giải thuật phân tích thành các nhân tử bất khả quy

1. Tính hạng của ma trận , giả sử là . Từ đó xác định được số thừa số của là ( chính là số vectơ thành phần của cơ sở của ma trận ).

2. Tính gcd  , với mọi . Tích của các thừa số này chính là kết quả phân tích (một phần) của thành các nhân tử bất khả quy.

3. Nếu chưa được phân tích thành thừa số thì lặp lại quá trình ở bước 2 cho và tất cả các thừa số đã tìm thấy được trước đó. Có thể cần phải sử dụng tới x , 2 nhưng cuối cùng bao giờ ta cũng đạt được kết quả mong

muốn là phân tích ra thành thừa số bất khả quy (ta không sử dụng  1).

Ví dụ, phân tích đa thức 1 ( 8) ra thành các nhân tử bất khả quy trên trường (theo [26], Example 4.2, trang 133).

Trước hết ta tính     với 2, 0 7.

1

1 1

1

Ma trận có kích thước 8 8 được xác định bởi:

1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0

0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 Ma trận có hạng 6, do đó 2 (số nhân tử bất khả quy, cũng là số vectơ thành phần tạo thành cơ sở của không gian con null space của ). Các vector

1,0,0,0,0,0,0,0 và 0,1,1,0,0,1,1,1 lập thành cơ sở của không gian con null space

của tương ứng với các đa thức 1 và .

Do đó ta tính gcd  , với 0,1 . Sử dụng thuật toán chia

Euclidean chúng ta tính được gcd , 1 (tương ứng với 0) và gcd , 1 1 (tương ứng với 1). Do đó, ta có kết quả của quá trình phân tích đa thức thành các nhân tử bất khả quy là:

1 1

Ta có nhận xét rằng ở mỗi giai đoạn phân tích giải thuật Berlekamp cần phải tính toán ước chung lớn nhất của các đa thức, do đó nó chỉ thích hợp đối với các trường hữu hạn có kích thuớc (số phần tử) nhỏ.

Độ phức tạp của giải thuật Berlekamp là     , trong đó là bậc của đa thức , là độ dài bit của số nguyên .

2.2.3. Giải thuật Cantor-Zassenhaus

Khác với Berlekamp là giải thuật tất định (deterministic), Cantor-Zassenhaus (theo

[34], trang 532-536) lại là giải thuật ngẫu nhiên (probabilistic). Ta giả định rằng đa thức cần phân tích là tích của các thừa số phân biệt nhau (square-free).

Quá trình phân tích đa thức thành các nhân tử bất khả quy được phân chia ra làm hai giai đoạn: giai đoạn đầu phân tích thành các nhân tử (

∏ ) sao cho mỗi đều là tích của các nhân tử bất khả quy có cùng bậc  . Giai đoạn thứ hai phân tích các ra thành các nhân tử bất khả quy (bậc ). Giai đoạn này sử dụng phương pháp chọn lựa ngẫu nhiên. Chúng ta sử dụng giải thuật Cantor- Zassenhaus để phân tích đa thức tích , ; chứa các thừa số bất khả quy có cùng bậc nên chỉ cần thực hiện giai đoạn hai (theo giải thuật sẽ được trình bày bên dưới, giải thuật của giai đoạn đầu có tên gọi là Distinct Degree Factorization (DDF) sẽ được trình bày trong mục 2.2.4 tiếp theo sau). Trước tiên ta giới thiệu một số khái niệm cơ bản của đại số hiện đại sẽ được sử dụng trong giải thuật.

Giả sử có bậc là , có bậc nhỏ hơn , trong đó , .

Ký hiệu dùng để chỉ các đa thức sao cho     , tức là các đa thức , .

Với mỗi / ta ký hiệu là đa thức sao cho ( là phần tử đại diện nhỏ nhất của lớp tương đương modulo ).

Giả sử ta cần phân tích đa thức chỉ chứa các nhân tử bất khả quy có cùng bậc  ra thành các nhân tử bất khả quy: ∏ , trong đó mỗi đều có bậc là . Trước hết ta hãy xét trường hợp đặc biệt    2.

Theo định lý số dư Trung Hoa tồn tại đẳng cấu sau:

: …

, … , ,

Ta định nghĩa ∑     2.2.3.1 . Giả sử , nếu , … , ta có:

, … ,     2.2.3.2

Đặt (theo định nghĩa là đa thức có bậc nhỏ hơn sao cho ), khi ấy gcd  , chính là tích của các nhân tử của có

0.

Giải thuật phân tích hoàn toàn thành các nhân tử được thực hiện qua nhiều giai đoạn. Ở mỗi giai đoạn chúng ta có kết quả là sự phân tích một phần của , tức là

∏ . Ban đầu tập . Ở mỗi bước chúng ta sẽ cố gắng tách mỗi thành tích của hai thừa số. Nếu thành công, chúng ta thay bởi hai thừa số thành phần. Quá trình trên cứ tiếp tục cho đến khi chứa đủ số nhân tử của (| | , trong đó

/ ).

Giải thuật phân tích này có tên gọi là EDF (Equal Degree Factorization) (theo [34], trang 533) như được mô tả ở trang kế.

Giải thuật EDF

Input: Đa thức (bậc ) cần phân tích chứa các thừa số bất khả quy cùng bậc Output: Các thừa số bất khả quy của

/ while| | do for each do chọn ngẫu nhiên / gcd  , if 1or else , / end if end for end while return

Trường hợp 2 (do đó lẻ) chỉ khác biệt ở chỗ định nghĩa biểu thức : / 1     2.2.3.3

Giả sử , , … , , ta có:

, … ,     2.2.3.4

Do mỗi đều là nhóm cyclic bậc 1 nên ta có 1, do đó / √1= 1. Tức là chỉ có thể nhận giá trị 1 hoặc -1.

Đặt ta có gcd  , là tích của các nhân tử của sao cho

0. Ngoài việc thay đổi định nghĩa của biểu thức giải thuật EDF trong trường hợp này không có gì khác biệt so với trường hợp đã xét ở trên.

Độ phức tạp của toàn bộ giải thuật Cantor-Zassenhaus là   .

2.2.4. Giải thuật Simple

Một giải pháp khác tuy đơn giản nhưng lại rất hiệu quả có thể được sử dụng để tìm tất cả các đa thức bất khả quy bậc trên . Ý tưởng chính của giải thuật là như sau. Ta sẽ lần lượt phát sinh ra tất cả các đa thức bậc , rồi dùng giải thuật kiểm tra tính bất khả quy của mỗi đa thức và loại bỏ những đa thức khả quy. Cuối cùng ta thu được kết quả là các đa thức bất khả quy cần tìm.

Chú ý rằng đối với trường ta chỉ cần kiểm tra các đa thức bậc dạng

1 … 1, trong đó các hệ số 1, 0,1   1 1. Giải thuật dùng để kiểm tra tính bất khả quy của một đa thức dựa trên cơ sở của định lý 2.2.4.1 ở trang kế (theo [34], Theorem 19.10, trang 513).

Định lý 2.2.4.1

Giả sử 1, gọi là tích của tất cả các đa thức bất khả quy bậc  có hệ số đầu bằng 1 của trường . Khi ấy với mỗi số nguyên dương ta đều có:

∏ |     2.2.4.1 ,

trong đó tích số được thực hiện trên tất cả các ước số nguyên dương của .

Giả sử ta có đa thức cần kiểm tra xem có phải là đa thức bất khả quy hay không. Ta thấy rằng là tích của tất cả các đa thức bất khả quy có bậc chia hết

, nên nếu có chứa thừa số bất khả quy bậc  thì gcd  , phải khác 1.

Do đó, nếu đa thức có bậc và gcd , 1 với mọi 1 thì phải là đa thức bất khả quy.

Ta có nhận xét thêm rằng nếu khả quy và có nhân tử có bậc /2 thì nó cũng phải có nhân tử có bậc /2 (chẳng hạn / có bậc nhỏ hơn hay bằng /2).

Do đó, ta chỉ cần kiểm tra gcd , 1 cho tới bậc /2 là đủ.

Ta có giải thuật kiểm tra tính bất khả quy của đa thức ở trang kế (theo [34], trang 523). Độ phức tạp của giải thuật là   .

Giải thuật IPT (Irreducible Polynomial Testing) kiểm tra tính bất khả quy của đa thức

Input: Đa thức cần kiểm tra có bậc

Output: Giá trị true (bất khả quy) hoặc false (khả quy)

    for 1to /2 do     ifgcd  , 1 return false end if end for return true

Giải thuật Simple phát sinh ra tất cả các đa thức bậc và sử dụng giải thuật IPT để

kiểm tra và loại bỏ những đa thức không phải là đa thức bất khả quy. Phương pháp này tuy đơn giản nhưng lại vô cùng hiệu quả so với hai phương pháp trước. 

Ta sẽ phân tích ưu, khuyết điểm của mỗi giải thuật và so sánh hiệu quả của chúng ở mục 3.2 trong chương 3 (cài đặt thử nghiệm).

Theo định lý 2.2.4.1 ở trên ta có chứa tích của tất cả các đa thức bất khả quy có bậc bằng , do đó nếu là đa thức square-free thì gcd  , sẽ cho ta tích của tất cả các thừa số bất khả quy có bậc bằng của . Ta có thể tính gcd 

, sau đó tính gcd  , để có được tất cả các thừa số bất khả quy bậc hai của và loại chúng ra khỏi , … và đây chính là ý tưởng cơ bản của việc phân tích đa thức ở dạng square-free thành các nhân tử là tích của các thừa số bất khả quy có cùng bậc .

Giải thuật IPT được sửa đổi thành giải thuật DDF (Distinct Degree Factorization) ở trang kế (theo [34], trang 531), được thực hiện ở giai đoạn đầu của giải thuật Cantor-

Zassenhaus mà ta đã đề cập đến ở mục 2.2.3 bên trên.

Giải thuật DDF (Distinct Degree Factorization)

Input: Đa thức dạng square-free

Output: Danh sách chứa các cặp , trong đó là đa thức tích của tất cả các thừa số bất khả quy bậc của     0 while ( 1) do     1 gcd  , if ( 1) , /     end if end while return

2.2.5. Giải thuật tổng quát phân tích đa thức thành các nhân tử bất khả quy

Các giải thuật Berlekamp và Cantor-Zassenhaus mà ta đã đề cập đến ở các mục 2.2.2

và 2.2.3 bên trên đều đòi hỏi đa thức cần phân tích không có chứa các thừa số dạng , 2. Các đa thức thỏa mãn điều kiện này được gọi là đa thức square-

free.

Trong trường hợp tổng quát đa thức cần phân tích có thể không phải là đa thức

square-free. Chúng ta cần thực hiện bước tiền xử lý để phân tích đa thức ra thành các nhân tử là các đa thức square-free (cùng với số mũ tương ứng của chúng). Tức là phân tích: ∏ , trong đó:

• Các đều là các đa thức square-free và đôi một nguyên tố cùng nhau. • Các là các số nguyên dương.

Giải thuật thực hiện phép phân tích trên có tên gọi là square-free decomposition (SFD) và được đặt trên cơ sở của định lý 2.2.5.1 dưới đây (theo [34], Theorem 20.4, trang 527).

Định lý 2.2.5.1

Giả sử là đa thức bậc 0 có hệ số đầu bằng 1. Giả sử được phân tích thành các nhân tử bất khả quy: . … , khi ấy:

  , ∏

        2.2.5.1 , trong đó là đạo hàm của .

Căn cứ vào kết quả của định lý 2.2.5.1 ở trên, giải thuật SFD với độ phức tạp

1   / , trong đó là số phần tử của trường hữu hạn được thực hiện như sau (theo [34], trang 528).

Giải thuật SFD (Square-Free Decomposition)

Input: Đa thức

Output: Danh sách chứa các cặp , , trong đó các đều ở dạng square-free và

0 là số mũ tương ứng của , 1 do { 1, /gcd  , while ( 1) do / gcd  , / if ( 1) , 1 end if end while if ( 1) // is a th power / end if } while ( 1) return

Tóm lại, để phân tích đa thức bất kỳ thành các nhân tử bất khả quy ta thực hiện bước tiền xử lý hay giải thuật SFD để trước hết phân tích ra thành các đa thức dạng square-free, sau đó ta có thể sử dụng giải thuật Berlekamp hoặc Cantor-

Zassenhaus để tiếp tục phân tích các đa thức thành phần ở dạng square-free ra các

nhân tử bất khả quy. Các quá trình này sẽ được thực hiện từng bước ở mục 3.6 trong chương 3 (cài đặt thử nghiệm).

2.3. Tổng hợp các đa thức bất khả quy bậc cao

Số lượng các đa thức bất khả quy tăng lên rất nhanh theo bậc. Do đó việc tìm tất cả các

Một phần của tài liệu XÂY DỰNG CƠ SỞ DỮ LIỆU CÁC ĐA THỨC BẤT KHẢ QUY (Trang 31 - 49)

Tải bản đầy đủ (PDF)

(72 trang)