Chuyên đề quy hoạch động

16 391 0
Chuyên đề quy hoạch động

Đ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

1 QUY HOẠCH ĐỘNGQUY HOẠCH ĐỘNG Chuyên đề: 2 Giảng viên: NGUYỄN DUY DŨNG Đơn vị: Trường THPT Chuyên Hà Tĩnh Số ĐT: 0913141823 Email: Dungduyit83@gmail.com FaceBook: Dungduyit83 QUY HOẠCH ĐỘNG LÀ GÌ?QUY HOẠCH ĐỘNG LÀ GÌ? Bài toán Quy hoạch động (dynamic programming) Chia để trị (divide & conquer) 3 Thiết kế thuật toán Mô hình hóa Xây dựng cấu trúc dữ liệu Lập trình Kiểm thử Vét cạn (exhaustive search) Tham lam (greedy) Cách khác  Ba tính chất của bài toán tối ưu có thể giải bằng quy hoạch động:  Bài toán lớn có thể phân rã thành những bài toán con đồng dạng, những bài toán con đó có thể phân rã thành những bài toán nhỏ hơn nữa …(recursive form).  Lời giải tối ưu của các bài toán con có thể sử dụng để tìm ra lời giải tối ưu của bài toán lớn (optimal substructure)  Hai bài toán con trong quá trình phân rã có thể có chung một số bài toán con khác (overlapping subproblems).  Có thể hiểu  Hai tính chất đầu tiên  Có thể giải bằng chia để trị và đệ quy  Tính chất thứ ba  Đặc trưng cho tính hiệu quả của quy hoạch động BÀI TOÁN QUY HOẠCH ĐỘNGBÀI TOÁN QUY HOẠCH ĐỘNG  Ba tính chất của bài toán tối ưu có thể giải bằng quy hoạch động:  Bài toán lớn có thể phân rã thành những bài toán con đồng dạng, những bài toán con đó có thể phân rã thành những bài toán nhỏ hơn nữa …(recursive form).  Lời giải tối ưu của các bài toán con có thể sử dụng để tìm ra lời giải tối ưu của bài toán lớn (optimal substructure)  Hai bài toán con trong quá trình phân rã có thể có chung một số bài toán con khác (overlapping subproblems).  Có thể hiểu  Hai tính chất đầu tiên  Có thể giải bằng chia để trị và đệ quy  Tính chất thứ ba  Đặc trưng cho tính hiệu quả của quy hoạch động 4  Bài toán giải theo phương pháp quy hoạch động gọi là bài toán quy hoạch động.  Công thức phối hợp nghiệm của các bài toán con để có nghiệm của bài toán lớn gọi là công thức truy hồi của quy hoạch động.  Tập các bài toán nhỏ nhất có ngay lời giải để từ đó giải quyết các bài toán lớn hơn gọi là cơ sở quy hoạch động.  Không gian luu trữ lời giải các bài toán con để tìm cách phối hợp chúng gọi là bảng phương án của quy hoạch động. CÁC KHÁI NIỆMCÁC KHÁI NIỆM  Bài toán giải theo phương pháp quy hoạch động gọi là bài toán quy hoạch động.  Công thức phối hợp nghiệm của các bài toán con để có nghiệm của bài toán lớn gọi là công thức truy hồi của quy hoạch động.  Tập các bài toán nhỏ nhất có ngay lời giải để từ đó giải quyết các bài toán lớn hơn gọi là cơ sở quy hoạch động.  Không gian luu trữ lời giải các bài toán con để tìm cách phối hợp chúng gọi là bảng phương án của quy hoạch động. 5  Giải tất cả các bài toán cơ sở (thông thường rất dễ), luu các lời giải vào bảng phương án.  Dùng công thức truy hồi phối hợp những lời giải của những bài toán nhỏ đã lưu trong bảngphương án để tìm lời giải của những bài toán lớn hơn và lưu chúng vào bảng phuong án, chotới khi bài toán ban đầu tìm được lời giải.  Dựa vào bảng phương án, truy vết tìm ra nghiệm tối ưu. CÁC BƯỚC GIẢI BÀI TOÁN QUY HOẠCH ĐỘNGCÁC BƯỚC GIẢI BÀI TOÁN QUY HOẠCH ĐỘNG  Giải tất cả các bài toán cơ sở (thông thường rất dễ), luu các lời giải vào bảng phương án.  Dùng công thức truy hồi phối hợp những lời giải của những bài toán nhỏ đã lưu trong bảngphương án để tìm lời giải của những bài toán lớn hơn và lưu chúng vào bảng phuong án, chotới khi bài toán ban đầu tìm được lời giải.  Dựa vào bảng phương án, truy vết tìm ra nghiệm tối ưu. 6  Nhập vào dãy số nguyên A=(a 1 ,a 2 …a n ). n≤10 6 , |a i |≤ 10 9 Tìm một đoạn con gồm các phần tử liên tiếp trong dãy A có tổng lớn nhất.  Dữ liệu vào file: DAYSO.INP - Dòng 1: chứa số nguyên dương N - Dòng 2: chứa N số nguyên của dãy A  Dữ liệu ra file: DAYSO.OUT - Ghi 1 giá trị duy nhất là tổng lớn nhất tìm được Ghi chú: Tên chương trình: DAYSO.PAS BÀI TOÁN 1BÀI TOÁN 1  Nhập vào dãy số nguyên A=(a 1 ,a 2 …a n ). n≤10 6 , |a i |≤ 10 9 Tìm một đoạn con gồm các phần tử liên tiếp trong dãy A có tổng lớn nhất.  Dữ liệu vào file: DAYSO.INP - Dòng 1: chứa số nguyên dương N - Dòng 2: chứa N số nguyên của dãy A  Dữ liệu ra file: DAYSO.OUT - Ghi 1 giá trị duy nhất là tổng lớn nhất tìm được Ghi chú: Tên chương trình: DAYSO.PAS 7  Thuật toán đầu tiên: O(n 3 )  Thuật toán O(n 2 ): - Gọi S[i] là tổng các phần tử từ a 1 tới a i Bài toán cơ sở: dãy không có phần tử nào S[0]=0 Công thức tính S: S[i] = S[i-1]+a[i] Kết quả bài toán: Res = Max{S[j]-S[i-1]; i: 1 n, j: i n } BÀI TOÁN 1BÀI TOÁN 1  Thuật toán đầu tiên: O(n 3 )  Thuật toán O(n 2 ): - Gọi S[i] là tổng các phần tử từ a 1 tới a i Bài toán cơ sở: dãy không có phần tử nào S[0]=0 Công thức tính S: S[i] = S[i-1]+a[i] Kết quả bài toán: Res = Max{S[j]-S[i-1]; i: 1 n, j: i n } 8  Thuật toán O(n): - Gọi S[i] là tổng các phần tử từ a 1 tới a i Bài toán cơ sở: dãy rỗng S[0] = 0 Công thức tính S: S[i] = S[i-1]+a[i] Gọi min là giá trị S nhỏ nhất từ 1 tới i-1 Kết quả bài toán Xét i: 1 . .n Res = max{S[i] - min} BÀI TOÁN 1BÀI TOÁN 1  Thuật toán O(n): - Gọi S[i] là tổng các phần tử từ a 1 tới a i Bài toán cơ sở: dãy rỗng S[0] = 0 Công thức tính S: S[i] = S[i-1]+a[i] Gọi min là giá trị S nhỏ nhất từ 1 tới i-1 Kết quả bài toán Xét i: 1 . .n Res = max{S[i] - min} 9  Nhập vào dãy số nguyên A=(a 1 ,a 2 …a n ). n≤10 6 , |a i |≤ 10 9 Nối a 1 vào sau a n ta được 1 vòng tròn số Tìm một đoạn con gồm các phần tử liên tiếp trong vòng tròn số có tổng lớn nhất.  Dữ liệu vào file: DAYSO.INP - Dòng 1: chứa số nguyên dương N - Dòng 2: chứa N số nguyên của dãy A  Dữ liệu ra file: DAYSO.OUT - Ghi 1 giá trị duy nhất là tổng lớn nhất tìm được Ghi chú: Tên chương trình: DAYSO.PAS BÀI TOÁN 2BÀI TOÁN 2  Nhập vào dãy số nguyên A=(a 1 ,a 2 …a n ). n≤10 6 , |a i |≤ 10 9 Nối a 1 vào sau a n ta được 1 vòng tròn số Tìm một đoạn con gồm các phần tử liên tiếp trong vòng tròn số có tổng lớn nhất.  Dữ liệu vào file: DAYSO.INP - Dòng 1: chứa số nguyên dương N - Dòng 2: chứa N số nguyên của dãy A  Dữ liệu ra file: DAYSO.OUT - Ghi 1 giá trị duy nhất là tổng lớn nhất tìm được Ghi chú: Tên chương trình: DAYSO.PAS 10 . 1 QUY HOẠCH ĐỘNGQUY HOẠCH ĐỘNG Chuyên đề: 2 Giảng viên: NGUYỄN DUY DŨNG Đơn vị: Trường THPT Chuyên Hà Tĩnh Số ĐT: 0913141823 Email: Dungduyit83@gmail.com FaceBook: Dungduyit83 QUY HOẠCH ĐỘNG. và đệ quy  Tính chất thứ ba  Đặc trưng cho tính hiệu quả của quy hoạch động BÀI TOÁN QUY HOẠCH ĐỘNGBÀI TOÁN QUY HOẠCH ĐỘNG  Ba tính chất của bài toán tối ưu có thể giải bằng quy hoạch động: . bằng chia để trị và đệ quy  Tính chất thứ ba  Đặc trưng cho tính hiệu quả của quy hoạch động 4  Bài toán giải theo phương pháp quy hoạch động gọi là bài toán quy hoạch động.  Công thức phối

Ngày đăng: 30/03/2014, 23:58

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan