1. Trang chủ
  2. » Giáo án - Bài giảng

BÀI TOÁN XÂU TRONG CỰC ĐẠI

22 550 6
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Bài Toán Xâu Trong Cực Đại
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Tập
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 22
Dung lượng 845,5 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át biểu bài toán  Giới thiệu phương pháp thực hiện  Phân tích bài toán  Giải pháp đệ quy  Áp dụng vào bước tạo bảng  Tạo bảng  Tổng hợp kết quả  Minh họa bằng ví dụ  Phân tích độ phức tạp thời gian, không gian

Trang 2

NỘI DUNG TRÌNH BÀY

Phát biểu bài toán

Giới thiệu phương pháp thực hiện

Phân tích bài toán

Trang 3

PHÁT BIỂU BÀI TOÁN

Xâu con cực đại :

S là xâu con của T nếu S nhận được bằng cách xoá đi một số ký tự nào đó trong T

Ví dụ: ‘EAC’ là xâu con của ‘C EA EE C ’

Xâu con chung:

Nếu xóa một số ký tự của hai xâu thì hai xâu con

còn lại của chúng bằng nhau

Ví dụ: S1=‘ A B CD AE’ và S2=‘XY AC A D K’ có xâu

‘ACD’ là xâu con chung có độ dài cực đại.

Bài toán đặt ra :

Cho 2 xâu S1, S2 Tìm một xâu S là xâu con chung của S1 và S2 có độ dài cực đại.

Trang 4

PHƯƠNG PHÁP THỰC HIỆN

Phân tích bài toán (biểu diễn bài toán dưới dạng một bài toán nhiều mức)

Xây dựng giải pháp đệ quy (lập công thức truy hồi)

Lập bảng (sử dụng các mảng để tính toán các giá trị theo kiểu lên)

dưới- Tổng hợp kết quả (kiến tạo một lời giải cho bài toán từ các thông tin

đã tính toán)

Trang 5

PHÂN TÍCH BÀI TOÁN

Giả sử ta có:

 Xâu A có độ dài xâu là m

 Xâu B có độ dài xâu là n,

 L(k, h) là bài toán xâu con chung cực đại, với

k ∈ N*: Độ dài dãy a1a2…ak ( k ≤ m )

Trang 6

GIẢI PHÁP ĐỆ QUY

Trường hợp đơn giản nhất

Nếu (i=0) hoặc (j=0) thì L(i,j)=0

Nếu ( i>0 ) and ( j>0 ) and ( a i <> b j )

LCS(i,j) = Max(LCS(i-1,j), LCS(i,j-1))

 Nếu (i>0) and (j>0) and (a i =b j )

LCS(i,j)= 1 + LCS(i-1,j-1)

Độ phức tạp cao và dễ tràn stack do phải tính lại nhiều lần kết quả các bài toán con

Trang 7

Nếu ai<>bj , lúc này cho S 1 là LCS của Ai-1 và Bj, và S2

là LCS của Ai và Bj-1 S sẽ là giá trị lớn hơn trong 2 giá trị S1 và S2.

Trang 8

TẠO BẢNG

Cho L[i, j] = LCS[i, j], lúc này

L[i, j] sẽ phụ thuộc vào 3 giá trị sau

 Phần tử L[i-1, j]

 Phần tử L[i, j-1]

 Phần tử L[i-1, j-1]

Trang 10

TỔNG HỢP KẾT QUẢ

Để tìm xâu kết quả S

 Đi ngược từ ô l[m n] hướng về l0, 0]

 Nếu ai = bj thì đặt ai hoặc bj vào bên trái dãy

S (ở đầu xâu)

 Nếu ai <> bj thì

 lùi về L[i - 1, j] trong trường hợp L[i - 1, j] > L[i, j – 1]

 ngược lại, lùi về L[i, j – 1] trong trường hợp L[i - 1, j]

≤ L[i, j – 1]

Trang 11

 Xâu con chung lớn nhất

 Bảng p (được tạo ra từ bước lập bảng)

Trang 16

If L[i, j] <> L[i-1, j] then dec(j)

Trang 22

XIN CẢM ƠN !!!

Ngày đăng: 27/05/2014, 19:37

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w