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

BÀI TẬP LỚN TỔNG QUAN VỀ KỸ THUẬT ĐỆ QUY

22 984 1

Đ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 22
Dung lượng 514 KB

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

Nội dung

BÀI TẬP LỚN TỔNG QUAN VỀ KỸ THUẬT ĐỆ QUY

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI ĐẠI HỌC KHOA HỌC TƯ NHIÊN

Trang 2

M c l c ục lục ục lục

 Khái niệm kỹ thuật đệ quy, các loại đệ quy.

 Khái niệm đệ quy.

 Phương pháp sử dụng kỹ thuật đệ quy trong một bài toán.

 Cơ chế thực hiện giải thuật đệ quy.

 Ví dụ minh họa

 Tổng quan về vấn đề giải thuật đệ quy.

 Các trường hợp khử đệ quy đơn giản.

 Ví dụ minh họa.

Trang 3

Khái niệm đệ quy

 Là phương pháp dùng trong các chương

trình máy tính trong đó có hàm có lệnh gọi lại chính hàm đó.

VD: int giaithua(int n)

else return n*giaithua(n-1);

}

Trang 4

Cấu trúc đệ quy đầy đủ:

 Phần neo : là phần không đệ quy, có thể biết được

giá trị của nó

VD tính giai thừa của số tự nhiên n:

0!=1; 1!=1; là trường hợp suy biến

 Phần quy nạp: phần chứa câu lệnh gọi lại hàm đó

VD: n!=n*(n-1)!;

Trang 5

Các loại đệ quy

Phân loại theo cách mô tả đệ quy :

tượng được mô tả trực tiếp qua nó: A

mô tả qua A,B,C…trong đó B,C,…không chứa A.

tượng được mô tả gián tiếp qua nó:A mô

tả qua A1,A2…….,An

Trang 6

Các loại đệ quy( tiếp)

Phân loại theo cách gọi hàm

a) Đệ quy tuyến tính

Trong thân hàm có duy nhất

một lời gọi hàm gọi lại chính

nó một cách tường minh.

b) Đệ quy nhị phân

Trong thân của hàm có hai lời

gọi hàm gọi lại chính nó một

cách tường minh.

HÀM(tham sô 2) HÀM(tham số1)

HÀM ( tham số 2) HÀM( tham số 3)

HÀM( tham sô 1)

Trang 8

Phương pháp sử dụng kỹ thuật

đệ quy

Thông số hóa bài toán

Tìm các trường hợp neo cùng giải thuật giải tương ứng Tìm giải thuật trong trường hợp tổng quát bằng phân rã bài toán theo kiểu đệ quy

Trang 9

Cơ chế thực hiện giải thuật

Lưu trong bộ nhớ máy

Trang 10

Bài toán tháp Hà Nội

Input: n: số đĩa cần chuyển từ cột A->C qua trung gian

B

Output: in ra cách di chuyển n đĩa

Trang 11

Bài toán tháp Hà Nội

Trang 12

 Phân rã bài toán chuyển n (n>0) đĩa từ cột A sang cột C lấy cột B làm trung gian

• Chuyển (k-1) đĩa từ cột A sang cột B lấy C làm trung gian THN(k-1,A,C,B)

• Chuyển 1 đĩa từ cột A sang cột C: move(A,C);

• Chuyển (k-1) đĩa từ cột B sang cột C lấy A làm trung gian THN(k-1,B,A,C)

Vậy giải thuật trong trương hợp tổng quát (n>1) là:

Trang 13

• Bài toán tìm kiếm, liệt kê ( đối tượng có tích chất tương đồng)

• Bài toán tối ưu hóa;

• Bài toán tìm đường đi, chu trình Vd: halminton

Lưu ý:

1.đệ qui sử dụng bộ nhớ kiểu LIFO chứa kết quả trung gian và do

đó thận trọng lường trước việc kết thúc quá trình đệ qui.

2.Tránh dùng đệ qui khi có thể dùng phép lặp tính toán

Trang 15

KHỬ ĐỆ QUY

 Tổng quan về vấn đề giải thuật đệ quy

Giải thuật giải bài toán bằng đệ quy thường rất đẹp, nhưng…

 Các trường hợp khử đệ quy đơn giản.

Trang 16

• Với U 0 là trạng thái của U ngay trước

vòng lặp

• U k là trạng thái của U sau lần lặp thứ k

Khởi tạo

Các câu lệnh

Không thỏa điều kiện

while

Trang 17

Trong đó DS,FS,BS,CS là các giải thuật không đệ quy.

• BS(X) , CS(Y) , DS(U,V) , FS(U,V) là các hàm đơn giản không có lệnh gọi hàm con.

• X,Y,U,V là các biến véc tơ hoặc các biến đơn trị.

Trang 20

dữ liệu từ ví trí thứ k của stack (S,(n,X,Y,Z,k)) ;

n := n - 1 ; Swap (X ,Y ) ; }

( k = 1 ) ; }

}

Trang 21

Tổng kết về kỹ thuật đệ

quy

• Đệ quy cung cấp cho ta cơ chế giải quyết bài toán phức tạp một cách đơn giản

• Xây dựng đệ quy thông qua việc xác định

điều kiện dừng và bước thực hiên tiếp theo

• Chỉ nên cài dặt phương pháp đệ quy khi

không còn cách giải quyết bằng cách lặp thông thường

Trang 22

Thank you for listening

Ngày đăng: 17/07/2015, 12:35

TỪ KHÓA LIÊN QUAN

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

w