1. Trang chủ
  2. » Khoa Học Tự Nhiên

Thuyết trình môn thuật toán nâng cao đa thức và FFT (polynomials and the FFT)

41 627 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 41
Dung lượng 1,45 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNGCách nhân nhanh hơn Sử dụng FFT, có thể nhân 2 đa thức trong Θ n lg n thời gian Ý tưởng: Biểu diễn đa thức theo cách mà cho phép nhân nhanh hơn.. •

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Chương 30: Đa thức và FFT (Polynomials and the FFT)

Trang 2

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

∑−

=

= n 1

0 j

j

jxaA(x)

Đa thức: Là biểu diễn một hàm A(x) theo biến x dưới dạng:

Hệ số: căn phức, 3.25 + 6.999i

Trang 3

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

j

jxaA(x)

∑−

=

= n 1

0 j

j

jxbB(x)

j j

j

1 n

0 j

j

cB(x)

Trang 4

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Ví dụ cộng đa thức

6x3 + 7x2 – 10x + 9 –2x3 + 4x – 5

= 4x3 + 7x2 – 6x + 4

Trang 5

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

k j k j

2 2n

0 j

j j

bac

đótrong

xc

B(x)A(x)

C(x)

Gọi là: tính chập (convolution) Note: Mức độ ràng buộc của C(x) is 2n – 1.

Tính toán đơn giản mất Θ (n 2 ) time

Trang 6

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Ví dụ nhân đa thức

Trang 7

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Cách nhân nhanh hơn

Sử dụng FFT, có thể nhân 2 đa thức trong Θ (n lg n) thời gian

Ý tưởng: Biểu diễn đa thức theo cách mà cho phép nhân nhanh hơn.

1 Đổi sang cách biểu diễn mới.

2 Nhân trong Θ (n) thời gian.

3 Chuyển đổi trở lại.

Các bước đó chạy trong Θ (n lg n) thời gian

Trang 8

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Biểu diễn mới của đa thức

Biểu diễn hệ số:

Lợi thế:

1) Có thể đánh giá tại bất kỳ thời điểm x0 trong Θ (n) thời gian sử dụng

luật của Horner :

A(x0) = a0 + x0(a1 + x0(a2 + … + x0(an-2 + x0(an-1)) … ))

2) Có thể thêm trong Θ (n) thời gian.

Biểu diễn Point-Value : {(x0, y0), (x1, y1), …, (xn-1, yn-1)},

Trong đó xk là khác biệt và yk = A(xk).

Chuyển đổi từ hệ số để P-V sử dụng luật của Horner mất Θ (n 2 ) thời gian

Nhưng chúng ta muốn mất Θ (n lg n) thời gian.

j

jxaA(x)

Trang 9

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Trang 10

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Chiến lược nhân đa thức

P.V Biểu diễn.

Trang 11

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Trang 12

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Ví dụ

1 –1

Giá trị của ω80 , ω81 , …, ω87 trong mảng phức, khi và chỉ khi

ω8 = e 2 π i/8 là nguyên tắc căn phức 8 của 1.

Trang 13

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Hệ quả 30.4: Với mọi n > 0: ωnn/2 = ω2 = –1

Hệ quả 30.4: Với mọi n > 0: ωnn/2 = ω2 = –1

Trang 14

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Bổ đề chia

Chứng minh:

( ωnk ) 2 = ωn/2k

Lưu ý: ( ωnk+n/2 ) 2 = ωn2k+n = ωn2k ωnn = ωn2k = ( ωnk ) 2

Do đó, ωnk và ωnk+n/2 có bình phương như nhau.

Bổ đề 30.5: Nếu n > 0, sau đó bình phương của n căn phức bậc n của 1 là n/2

căn phức (n/2) của 1.

Bổ đề 30.5: Nếu n > 0, sau đó bình phương của n căn phức bậc n của 1 là n/2

căn phức (n/2) của 1.

Trang 15

jxaA(x)

Ta muốn tính giá trị của tại ωn0, ωn1, …, ωnn-1

với điều kiện n là số lũy thừa của 2

kj n j

k n

y

Phép biến đổi Fourier rời rạc (DFT)

Trang 16

n/2 căn phức bậc (n/2) th của 1 (theo bổ đề chia đôi)

Phép biến đổi Fourier nhanh (FFT)

Trang 17

kj n j

k n

y

Trang 19

Với k = 0, 1, …, n/2 – 1 + Tại dòng 11 ta có:

yk = yk[0] + ωnk yk[1]

= A[0](ωn2k) + ωnk A[1](ωn2k) = A(ωnk)

+ Tại dòng 12 ta cũng có:

yk+(n/2) = yk[0] – ωnk yk[1]

= yk[0] + ωnk+(n/2) yk[1]

= A[0](ωn2k) + ωnk+(n/2) A[1](ωn2k) = A[0](ωn2k+n) + ωnk+(n/2) A[1](ωn2k+n) = A(ωnk+(n/2))

Trang 20

14 return y //Giả định y là 1 vector cột

Đánh giá thuật toán

Ngoài các lời gọi đệ quy, mỗi yêu cầu cần thời gian Θ(n) với n: độ dài của vector đầu vào

Do đó thời gian chạy là:

T(n) = 2T(n/2) + Θ(n)

= Θ(n lg n)

Trang 22

• Do đó, chúng ta có thể tính toán DFTn-1 trong thời gian

Θ(n lg n) là tốt

• Chúng ta thấy rằng , bằng cách sử dụng FFT và FFT ngược , chúng ta có thể chuyển đổi một đa thức bậc n-ràng buộc qua lại giữa các đại diện hệ số của nó và đại diện giá trị một điểm trong thời gian Θ(n lg n)

Trang 23

DFT và FFT

• Định Lý 30.8 (Định ly phép nhân chập)

• Đối với bất kỳ hai vectors a và b có độ dài n , n

là lũy thừa của 2

• Nơi các vectors a và b được đệm bằng số 0

đến chiều dài 2n , và có nghĩa tích số theo

từng thành phần của 2 vectors 2n phần tử

Trang 24

Triển khai FFT hiệu quả

 Đầu tiên, chúng ta sẽ xem xét một phiên bản của thuật

toán FFT chạy lặp đi lặp lại trong thời gian Θ(n lg n)

 Sau đó, chúng ta sẽ sử dụng những hiểu biết đó để thực hiện lặp đi lặp lại để thiết kế một mạch FFT song song hiệu quả

• Lặp đi lặp lại một thực hiện FFT

• Chúng tôi có thể thay đổi vòng lặp để tính toán nó chỉ một lần, lưu trữ nó trong một biến t tạm thời

Trang 25

Triển khai FFT hiệu quả

• Hoạt động trong vòng lặp này, nhân tố quay vong ̀ ωn = ωnk

bởi yk[1] , lưu trữ các giá trị vào t, và cộng và trừ t từ yk[0]

• Bây giờ chúng ta thấy làm thế nào để thực hiện các thuật toán FFT lặp đi lặp lại chứ không phải là đệ quy trong cấu trúc

Trang 26

Triển khai FFT hiệu quả

• Trong sơ đồ dưới , chúng tôi đã sắp xếp các vector đầu vào cho các cuộc gọi đệ quy trong một lời gọi của Đệ quy-FFT trong một cấu trúc cây

• Trong lá của cây trong hình 30.4 (Chúng ta sẽ thấy sau làm thế nào để xác định điều này trật tự, được biết đến như một bit-đảo ngược hoán vị.)

Trang 27

Triển khai FFT hiệu quả

• Do đó ta có các thuật toán như sau:

Trang 28

14 return y //Giả định y là 1 vector cột

Thuật toán tính Fourier

Trang 30

k ω

a

0 j

kj n j

=

1n ,1,0,

k ω

yn

1

0 k

kj

n k

=

Trang 31

Tăng tốc độ của thuật toán

Có thể tăng tốc độ mã FFT

trong thực tế bằng cách làm cho nó

lặp đi lặp lại và loại bỏ chung

các biểu thức con trong vòng lặp

Trang 32

Tăng tốc độ của thuật toán

Trang 33

30-1 Nhân theo phương thức

chia để trị

• Thấy làm thế nào để nhân hai đa thức tuyến tính

ax+b và cx+d chỉ sử dụng ba phép nhân

• Đưa ra hai thuật toán nhân-chia để tri hai đa

thức bậc n trong O(nlg3) thời gian Các thuật toán đầu tiên phải chia đầu vào hệ số đa thức thành một nửa cao và nửa thấp, và các thuật toán thứ hai phân chia chúng theo dù chỉ số chẵn hoặc lẻ.

• Cho thấy làm thế nào để nhân hai số nguyên bit trong O(nlg3) thời gian, mỗi lần hoạt động trên nhiều nhất là một hằng số của các giá trị 1- bit.

Trang 34

n-30-2 Toeplitz ma trận

• Một ma trận Toeplitz là một ma trận có kích thước nxn A=( aij) trong đó aij=ai-1,j-1 với i= 1,2 …n và j = 2,3,…n

• a Tổng của hai ma trận Toeplitz là ma trận Toeplitz?

• b Mô tả cách biểu diễn cho ma trận Toeplitz để bạn có thể thêm hai ma trận Toeplitz kích thước nxn trong

O(n) thời gian

• c Đưa ra giải thuật O(nlgn) thời gian cho quá trình nhân một ma trận Toeplitz nxn bằng 1 vector độ dài n Sử

dụng cho miêu tả từ phần (b)

• d Đưa ra một thuật toán hiệu quả để nhân hai ma trận Toeplitz nxn Phân tích thời gian hoạt động của nó

Trang 35

30-3 Biến đổi Fourier đa chiều

• Đầu vào là mảng d – chiều A = (aj1, aj2, ajd) mà kích thước là n1, n2, …, nd trong đó n1n2…nd = n Chúng ta xác định phép biến đổi Fourier rời rạc d – chiều bởi biểu thức.

Trang 36

30-3 Biến đổi Fourier đa chiều

• kích thước không quan trọng, để chúng ta có thể tính toán

một DFT d- chiều bằng cách tính toán DFTs 1 chiều.

• tính toán mỗi DFT 1 - chiều bằng cách tính toán biến đổi

Fourier nhanh, tổng số thời gian để tính toán một DFT d - chiều đang Bật O(nlgn), độc lập với d.

Trang 37

30-4 Đánh giá tất cả các dẫn xuất

của một đa thức tại một điểm

• Cho đa thức A(x) với ràng buộc n và phát sinh t.

Trang 38

30-4 Đánh giá tất cả các dẫn xuất

của một đa thức tại một điểm

a Đưa ra các hệ số b0,b1,…, bn-1 như là

Cho biết cách tính A(t) (x0), với t=0,1,2,…,n-1,

trongO(n) thời gian.

b Giải thích cách tìm b0,b1,…, bn-1 trong O(nlgn) ,

thời gian, đưa ra biểu thức A( ) với

k=0,1,2,…,n-1.

1

0 0

( ) n ( )j

j j

Trang 39

30-5 Đánh giá đa thức tại nhiều

Trang 40

30-6 FFT sử dụng số học modula

• Theo định nghĩa, biến đổi rời rạc Fourier đòi hỏi

chúng ta phải tính toán phức tạp với con số, mà có thể dẫn đến không chính xác do lỗi làm tròn Đối với một số vấn đề, câu trả lời được biết đến có chứa chỉ

số nguyên, và bằng cách sử dụng một biến thể của FFT dựa trên số học mô-đunchúng ta có thể đảm

bảo rằng các câu trả lời được tính chính xác

Trang 41

Thanks you

Ngày đăng: 02/03/2016, 23:32

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w