Thiết kế thuật toán 1
Số trang: 10
Loại file: pdf
Dung lượng: 79.41 KB
Lượt xem: 11
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tham khảo tài liệu thiết kế thuật toán 1, công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Thiết kế thuật toán 1 Thi t k thu t toán Lê S VinhB môn Khoa H c Máy Tính – Khoa CNTT ð i H c Công Ngh - ðHQGHN Email: vinhioi@yahoo.com Chia ð Tr (Divide and Conquer)1. Chia bài toán l n thành các bài toán có kích thư c nh2. Gi i các bài toán có kích thư c nh3. K t h p nghi m c a các bài toán có kích thư c nh ñ gi i bài toán l n Ví d : Dãy s FibonacciDãy Fibonacci: 0 1 2 3 5 8 13… f(0) = 0 f(1) = 1 f(k) = f(k-1) + f(k-2)Fibonacci_DAC (k) { if (k == 0) return 0 else if (k == 1) return 1 else return Fibonacci _DAC (k-1) + fibonacci_DAC (k-2)}Nh n xét: Các bài toán nh ñư c gi i quy t d a vào nh ng bài toán nh hơn gi ng nhau. Quy ho ch ñ ng (Dynamic programming)• Gi ng phương pháp ‘chia-ñ -tr ’ (divide-and-conquer) là gi i quy t bài toán l n d a vào k t qu các bài toán con.• ði m khác bi t là quy ho ch ñ ng lưu l i nghi m c a t t c các bài toán con, m i bài toán con ch ph i tính toán 1 l n.• Quy hoach ñ ng thư ng ñư c dùng ñ gi i quy t nh ng bài toán liên quan ñ n t i ưu hóa (tìm nghi m t t nh t). Ví d : Dãy s Fibonacciint fib[N];for (int i = 0; i C u trúc chung c a phương pháp quy ho ch ñ ng1. ðưa ra cách tính nghi m c a các bài toán con ñơn gi n2. Tìm công th c xây d ng nghi m c a bài toán thông qua nghi m c a các bài toán con3. Thi t k b ng ñ lưu nghi m c a các bài toán4. Tính nghi m c a các bài toán t nh ñ n l n5. Xây d ng nghi m c a bài toán c n tìm t b ng Ví d : Bài toán cái ba lôCó N ñ v t, ñ v t i có kh i lư ng wi và giá tr ti . M t tên tr m có 1 chi c balô có th mang ñư c không qúa M kg. Hãy tìm cách mang m t s ñ v t ñt ng giá tr l y ñư c là l n nh t. Bi t r ng, wi nguyên dương nh hơn 101, Mnguyên dương nh hơn 1001.Ví dN = 4, M = 10i 1 2 3 4wi 5 4 6 3ti 1 4 3 5 Ví d : Dãy con chungCho hai dãy s A = (a1,…,an) và B = (b0,..,bm), tìm dãy s C = (c0,..,ck) saocho C là dãy con c a c A và B, và C dài nh t có th .Ví d : A = (3, 5, 1, 3, 5, 5, 3) B = (1, 5, 3, 5, 3, 1) C = (5, 3, 5, 3) ho c (1, 3, 5, 3) ho c (1, 5, 5, 3) Ví d : Dãy con li n nhau t ng l n nh tCho dãy s A = (a1,…,an), tìm dãy con li n nhau (ai, ai+1,…,aj-1, aj) v i t ng l n nh t.Ví d : A = (-3, 5, -4, 3, 2, -4, 1)Dãy con li n nhau t ng l n nh t: (5, -4, 3, 2) Ví d : Chia k oCó N gói k o, gói k o i có ai cái. Hãy chia N gói k o trên thành 2 ñ ng saocho chênh l nh gi a t ng s k o c a hai ñ ng là ít nh t. Lưu ý là không ñư cchia nh các gói k o ra.Ví d :N =513495Chia thành: 1 9 và 3 4 5
Nội dung trích xuất từ tài liệu:
Thiết kế thuật toán 1 Thi t k thu t toán Lê S VinhB môn Khoa H c Máy Tính – Khoa CNTT ð i H c Công Ngh - ðHQGHN Email: vinhioi@yahoo.com Chia ð Tr (Divide and Conquer)1. Chia bài toán l n thành các bài toán có kích thư c nh2. Gi i các bài toán có kích thư c nh3. K t h p nghi m c a các bài toán có kích thư c nh ñ gi i bài toán l n Ví d : Dãy s FibonacciDãy Fibonacci: 0 1 2 3 5 8 13… f(0) = 0 f(1) = 1 f(k) = f(k-1) + f(k-2)Fibonacci_DAC (k) { if (k == 0) return 0 else if (k == 1) return 1 else return Fibonacci _DAC (k-1) + fibonacci_DAC (k-2)}Nh n xét: Các bài toán nh ñư c gi i quy t d a vào nh ng bài toán nh hơn gi ng nhau. Quy ho ch ñ ng (Dynamic programming)• Gi ng phương pháp ‘chia-ñ -tr ’ (divide-and-conquer) là gi i quy t bài toán l n d a vào k t qu các bài toán con.• ði m khác bi t là quy ho ch ñ ng lưu l i nghi m c a t t c các bài toán con, m i bài toán con ch ph i tính toán 1 l n.• Quy hoach ñ ng thư ng ñư c dùng ñ gi i quy t nh ng bài toán liên quan ñ n t i ưu hóa (tìm nghi m t t nh t). Ví d : Dãy s Fibonacciint fib[N];for (int i = 0; i C u trúc chung c a phương pháp quy ho ch ñ ng1. ðưa ra cách tính nghi m c a các bài toán con ñơn gi n2. Tìm công th c xây d ng nghi m c a bài toán thông qua nghi m c a các bài toán con3. Thi t k b ng ñ lưu nghi m c a các bài toán4. Tính nghi m c a các bài toán t nh ñ n l n5. Xây d ng nghi m c a bài toán c n tìm t b ng Ví d : Bài toán cái ba lôCó N ñ v t, ñ v t i có kh i lư ng wi và giá tr ti . M t tên tr m có 1 chi c balô có th mang ñư c không qúa M kg. Hãy tìm cách mang m t s ñ v t ñt ng giá tr l y ñư c là l n nh t. Bi t r ng, wi nguyên dương nh hơn 101, Mnguyên dương nh hơn 1001.Ví dN = 4, M = 10i 1 2 3 4wi 5 4 6 3ti 1 4 3 5 Ví d : Dãy con chungCho hai dãy s A = (a1,…,an) và B = (b0,..,bm), tìm dãy s C = (c0,..,ck) saocho C là dãy con c a c A và B, và C dài nh t có th .Ví d : A = (3, 5, 1, 3, 5, 5, 3) B = (1, 5, 3, 5, 3, 1) C = (5, 3, 5, 3) ho c (1, 3, 5, 3) ho c (1, 5, 5, 3) Ví d : Dãy con li n nhau t ng l n nh tCho dãy s A = (a1,…,an), tìm dãy con li n nhau (ai, ai+1,…,aj-1, aj) v i t ng l n nh t.Ví d : A = (-3, 5, -4, 3, 2, -4, 1)Dãy con li n nhau t ng l n nh t: (5, -4, 3, 2) Ví d : Chia k oCó N gói k o, gói k o i có ai cái. Hãy chia N gói k o trên thành 2 ñ ng saocho chênh l nh gi a t ng s k o c a hai ñ ng là ít nh t. Lưu ý là không ñư cchia nh các gói k o ra.Ví d :N =513495Chia thành: 1 9 và 3 4 5
Tìm kiếm theo từ khóa liên quan:
giáo dục đào tạo cao đẳng đại học Khoa học máy tính thiết kế thuật toánGợi ý tài liệu liên quan:
-
Tóm tắt Đồ án tốt nghiệp Khoa học máy tính: Xây dựng ứng dụng quản lý quán cà phê
15 trang 472 1 0 -
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 376 6 0 -
32 trang 225 0 0
-
Bài giảng chuyên đề Phân tích và thiết kế thuật toán: Chia để trị
27 trang 221 0 0 -
BÀI THUYẾT TRÌNH CÔNG TY CỔ PHẦN
11 trang 204 0 0 -
Đồ án nghiên cứu khoa học: Ứng dụng công nghệ cảm biến IoT vào mô hình thủy canh
30 trang 201 0 0 -
CHẨN ĐOÁN XQUANG GAN VÀ ĐƯỜNG MẬT
11 trang 190 0 0 -
20 trang 183 0 0
-
6 trang 169 0 0
-
Giáo trình Nguyên tắc phương pháp thẩm định giá (phần 1)
9 trang 164 0 0