1. Trang chủ
  2. » Công Nghệ Thông Tin

Cấu trúc dữ liệu và giải thuật (phần 10) pot

10 664 2
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 216,01 KB

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

Nội dung

Phép toán trên ma tr ậ n Cộng, trừ ma trận: - 2 ma trận chỉ có thể cộng hoặc trừ cho nhau nếu chúng có cùng kích thước... Thu ậ t toán Strassen Đánh giá giải thuật: - Thuật toán Strassen

Trang 1

NHÂN MA TRN

Trang 2

Phép toán trên ma trn

 Cộng, trừ ma trận:

- 2 ma trận chỉ có thể cộng hoặc trừ cho nhau nếu chúng có cùng kích thước

Nhân ma trận:

- Có thể nhân 2 ma trận với nhau nếu số cột của

ma trận có số hàng của ma trận 1 và cột ma trận 2

- Ví dụ: Nhân 2 ma trận có kích thước 3x4 và 4x7

 được ma trận có kích thước 3x7

Trang 3

Nhân ma trn

 Tính chất của nhân ma trận:

- Nhân ma trận không có tính giao hoán

A*B # B*A

Ví dụ: Cho 2 ma trận 2x3 * 3x4  Kết quả ma

trận (2x4)

Trang 4

Nhân ma trn

 Thuật toán: Nhân 2 ma trận G(n x n) và H(n x n)

 Kết quả R(n x n)

for (int i =1;i<n;i++)

for (int j=1;j<n;j++)

Ri,j = 0;

for (int k=1;k<n;k++)

Ri,j=Ri,j+Gi,k*Hk,j;

Đánh giá thuật toán:

- Số phép cộng: n3

- Số phép nhân: n3  O(n 3 )

Trang 5

Thut toán Strassen

- Thuật toán Strassen ứng dụng với ma trận vuông

- Thuật toán Strassen áp dụng giải thuật chia để trị

- Chia nhỏ ma trận A, B thành những ma trận con

A0,A1,…

A0 A1

A2 A3 ×

B0 B1

B2 B3 = A 0 ×B× 0 +A 1 ×B× 2 A 0 ×B× 1 +A 1 ×B× 3

A 2 ×B× 0 +A 3 ×B× 2 A 2 ×B× 1 +A 3 ×B× 3

Trang 6

Thut toán Strassen

P 1 = (A 11 + A 22 )(B 11 +B 22 )

P 2 = (A 21 + A 22 ) * B 11

P 3 = A 11 * (B 12 - B 22 )

P 4 = A 22 * (B 21 - B 11 )

P 5 = (A 11 + A 12 ) * B 22

P 6 = (A 21 - A 11 ) * (B 11 + B 12 )

P 7 = (A 12 - A 22 ) * (B 21 + B 22 )

Trang 7

Thut toán Strassen

 Cài đặt:

void matmul(int *A, int *B, int *R, int n)

{

if (n == 1)

else

matmul(A, B+(n/4), R+(n/4), n/4);

matmul(A+2*(n/4), B, R+2*(n/4), n/4);

matmul(A+2*(n/4), B+(n/4), R+3*(n/4), n/4);

matmul(A+(n/4), B+2*(n/4), R, n/4);

matmul(A+(n/4), B+3*(n/4), R+(n/4), n/4);

matmul(A+3*(n/4), B+2*(n/4), R+2*(n/4), n/4);

matmul(A+3*(n/4), B+3*(n/4), R+3*(n/4), n/4);

}

}

Trang 8

Thut toán Strassen

 Đánh giá giải thuật:

- Thuật toán Strassen có độ phức tạp O(nlog7 ) = O(n2,81)

Trang 9

PHƯƠNG TRÌNH

Trang 10

Phương trình tuy ế n tính

Tìm giá trị (x1,…,xn)

 Ví dụ:

Ngày đăng: 09/07/2014, 21:20

TỪ KHÓA LIÊN QUAN

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