Giải thuật Berlekamp

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 33 - 37)

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 .

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 33 - 37)