Tiểu luận môn phân tích và đánh giá thuật toán phương pháp quy hoạch động bài toán ba lô có hạn chế

17 535 8
Tiểu luận môn phân tích và đánh giá thuật toán phương pháp quy hoạch động bài toán ba lô có hạn chế

Đ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

GIỚI THIỆU ĐỀ TÀI I MỤC TIÊU PHẠM VI CỦA ĐỀ TÀI Mục tiêu đề tài nắm rõ phương pháp quy hoạch động từ áp dụng để giải toán ba hạn chế Nếu vét cạn phương án toán tốn nhiều thời gian, sử dụng phương pháp "tham ăn" phương án tìm chưa phương án tối ưu Quy hoạch động kỹ thuật nhằm đơn giản hóa việc tính toán công thức truy hồi cách lưu toàn hay phần kết tính toán bước trước với mục đích sử dụng lại Lý thuyết − Nắm rõ phương pháp quy hoạch động − Áp dụng phương pháp vào toán sau: Giải toán ba hạn chế: cho n loại đồ vật khối lượng w 1, , wn Số lượng giá trị loại đồ vật c 1, c2, , cn v1, ,vn Xếp đồ vật vào túi sức T cho tổng giá trị lớn Giả thiết T, wi, vi, ci, i=1, ,n, số nguyên dương Phần mềm − Sử dụng ngôn ngữ C viết chương trình Dev C để giải toán CHƯƠNG I SỞ LÍ THUYẾT VỀ QUY HOẠCH ĐỘNG 1.1 MỘT SỐ KHÁI NIỆM: 1.1.1 Bài toán tối ưu: a Khái niệm: Bài toán tối ưu gồm hàm f gọi hàm mục tiêu hay hàm đánh giá; hàm g1, g2, …, gn cho giá trị logic gọi hàm ràng buộc Yêu cầu toán tìm cấu hình x thoả mãn tất ràng buộc g1, g2, …, gn:gi(x) = TRUE ( i:1 i n) x tốt nhất, theo nghĩa không tồn cấu hình y khác thoả mãn hàm ràng buộc mà f(y) tốt f(x) Bài toán tối ưu toán thường nhiều nghiệm chấp nhận nghiệm giá trị đánh giá Mục tiêu đặt tìm nghiệm tối ưu, nghiệm giá trị đánh giá lớn nhỏ (tối ưu) b Một số ví dụ toán tối ưu: Ví dụ 1.1: Trong mặt phẳng tọa độ Oxy tìm tọa độ (x,y) để tổng x + y đạt giá trị lớn mà x2 + y2 ≤ Ở toán ta thấy: Hàm mục tiêu : x + y  max Hàm ràng buộc : x2 +y2 ≤ Ví dụ 1.2: Bài toán xếp Ba ba chứa tối đa trọng lượng M n đồ vật (n 100), đồ vật trọng lượng wi giá trị bi; M, wi, bi số nguyên Hãy chọn xếp đồ vật vào ba để tổng giá trị ba lớn Với toán ta thấy: Hàm mục tiêu: , i = 1, 2, …, n Hàm ràng buộc : , i = 1, 2, …, n Tóm lại, toán tối ưu phong phú, đa dạng, ứng dụng nhiều thực tế cần biết đa số toán tối ưu không giải chưa giải 1.1.2 Công thức truy hồi (Hệ thức truy hồi): Khái niệm: Công thức truy hồi công thức thể quan hệ bước toán kết bước sau thường dựa vào kết bước trước Kết bước cuối kết toán 1.2.PHƯƠNG PHÁP QUY HOẠCH ĐỘNG: 1.2.1 Phương pháp chia để trị: “Chia để trị” việc tách toán ban đầu thành toán độc lập, sau giải toán tổ hợp dần lời giải từ toán nhỏ đến toán ban đầu Phương pháp chia để trị phương pháp thông dụng Tin học Phương pháp chia để trị thường áp dụng cho toán chất đệ quy (bài toán P chất đệ quy toán P giải lời giải toán P’ dạng giống P Tuy nhiên, cần lưu ý rằng: P’ dạng giống P theo nghĩa P’ phải nhỏ P, dễ giải P việc giải không cần dùng đến P) Giải thuật dùng để giải toán chất đệ quy gọi giải thuật đệ quy 1.2.2 Khái niệm phương pháp quy hoạch động: a Khái niệm: Phương pháp quy hoạch động (Dynamic Programming) kỹ thuật nhằm đơn giản hóa việc tính toán công thức truy hồi cách lưu toàn hay phần kết tính toán bước trước với mục đích sử dụng lại Như vậy, Quy hoạch động = Chia để trị + Mảng (lưu lại kết quả) Phương pháp quy hoạch động nhà toán học người Mỹ Richard Bellman (19201984) phát minh năm 1953 Phương pháp dùng để giải toán tối ưu chất đệ qui, tức tìm phương án tối ưu cho toán đưa tìm phương án tối ưu số hữu hạn toán Điểm khác quy hoạch động phương pháp đệ quy : • Phương pháp đệ quy giải toán theo hướng top-down, nghĩa để giải toán ban đầu, ta phải giải tất toán Đây phương pháp hay, nhiên phương pháp gặp hạn chế mặt thời gian, tốc độ phải tính tính lại nhiều lần số toán giống • Phương pháp quy hoạch động sử dụng nguyên lý bottom-up, nghĩa "đi từ lên" Đầu tiên, ta phải giải toán đơn giản nhất, tìm nghiệm Sau kết hợp toán lại để tìm lời giải cho toán lớn giải toán yêu cầu Với phương pháp này, toán sau giải xong lưu trữ lại đem sử dụng cần Do tiết kiệm nhớ cải thiện tốc độ b Đặc điểm chung quy hoạch động: Quy hoạch động việc giải tất toán nhỏ (bài toán sở) để từ bước giải toán lớn giải toán lớn (bài toán ban đầu) Quy hoạch động cần phải bảng phương án Ý tưởng phương pháp quy hoạch động tránh tính toán lại toán xét, nói cách khác phương pháp quy hoạch động thể sức mạnh nguyên lý chia để trị đến cao độ Tóm lại: • Quy hoạch động dùng để giải toán tối ưu theo nguyên lý “chia để trị” thực chất phương pháp cải tiến phương pháp giải toán theo hướng đệ quyQuy hoạch động làm giảm độ phức tạp, giảm thời gian giải • Quy hoạch động thường tiếp cận theo hướng từ lên (Bottom – up) 1.2.3 Các cách thực phương pháp quy hoạch động Quy hoạch động thường dùng cách tiếp cận sau: a Tiếp cận từ lên (bottom up) b Tiếp cận từ xuống (top down) Cách tiếp cận từ lên hiệu nên cách tiếp cận từ lên (bottom up) thường sử dụng nhiều 1.2.4 Các yêu cầu toán tối ưu sử dụng phương pháp quy hoạch động Một toán tối ưu muốn giải phương pháp quy hoạch động toán tối ưu đặc điểm đây: 1) Bài toán lớn phải phân rã thành nhiều toán con, mà phối hợp lời giải toán cho ta lời giải toán lớn 2) Vì quy hoạch động giải tất toán nên không đủ không gian vật lý lưu trữ kết (bộ nhớ, đĩa …) để phối hợp chúng phương pháp quy hoạch động thực 3) Quá trình từ bài toán sở tìm lời giải toán ban đầu phải qua hữu hạn bước 1.3.NGUYÊN TẮC BẢN CỦA QUY HOẠCH ĐỘNG Nguyên lý tối ưu Bellman: Ta biết quy hoạch động thường dùng để giải toán tối ưu- toán yêu cầu tìm giải pháp tốt giải pháp tìm sở quy hoạch động toán tối ưu nguyên lý tối ưu Bellman Nguyên lý tối ưu Bellman phát biểu sau: “Dãy tối ưu định trình định nhiều giai đoạn thuộc tính dù trạng thái định ban đầu nào, định lại phải tạo thành cách giải tối ưu không phụ thuộc vào trạng thái sinh từ định ban đầu” Hay nói cách khác: “Giải pháp tối ưu cho toán P cần chứa giải pháp tối ưu cho toán P” Do giải toán theo quy hoạch động dùng phương pháp gồm nhiều bước tiến hành điều kiện cần để giải pháp tối ưu xây dựng từ nghiệm tối ưu bước trước 1.4 CÁC BƯỚC GIẢI BÀI TOÁN TỐI ƯU BẰNG QUY HOẠCH ĐỘNG • Bước 1: Lập công thức truy hồi • Bước 2: Tổ chức liệu chương trình • Bước 3: Truy vết, tìm nghiệm toán dựa vào bảng phương án 1.5 ƯU ĐIỂM HẠN CHẾ CỦA PHƯƠNG PHÁP QUY HOẠCH ĐỘNG 1.5.1 Ưu điểm: Tiết kiệm thời gian thực không cần phải tính tính lại nhiều lần số toán giống 1.5.2 Hạn chế - Việc tìm công thức truy hồi tìm cách phântoán nhiều đòi hỏi phân tích tổng hợp công phu, dễ sai sót, khó nhận thích hợp, đòi hỏi nhiều thời gian suy nghĩ Đồng thời lúc kết hợp lời giải toán cho kết toán lớn - Khi bảng lưu trữ đòi hỏi mảng hai, ba chiều … khó xử lý liệu với kích cỡ chiều lớn đến hàng trăm - toán tối ưu giải quy hoạch động Tóm lại: Không phải lúc việc kết hợp toán cho ta kết toán lớn Hay nói cách khác việc tìm kiếm "công thức truy hồi" khó khăn Ngoài ra, số lượng toán cần lưu trữ lớn, không chấp nhận liệu nhớ máy tính không cho phép KẾT CHƯƠNG I Quy hoạch động phương pháp hay hiệu quả, giải hầu hết toán tối ưu Tuy nhiên, giải toán theo hướng quy hoạch động, ta cần phải tìm công thức truy hồi thật xác chứng minh độ xác tin cậy Cho đến nay, chưa định lý cho biết xác toán tối ưu giải hiệu quy hoạch động Tuy nhiên, để biết toán giải phương pháp quy hoạch động hay không, ta tự đặt câu hỏi: “ Một nghiệm tối ưu toán lớn phải phối hợp nghiệm tối ưu toán hay không?” “Liệu lưu trữ nghiệm toán hình thức để phối hợp tìm nghiệm toán lớn?” CHƯƠNG II GIẢI BÀI TOÁN BA HẠN CHẾ THEO PHƯƠNG PHÁP QUY HOẠCH ĐỘNG ĐỀ BÀI: Giải toán ba hạn chế: cho n loại đồ vật khối lượng w1, , wn Số lượng giá trị loại đồ vật c1, c2, , cn v1, ,vn Xếp đồ vật vào túi sức T cho tổng giá trị lớn Giả thiết T, wi, vi, ci, i=1, ,n, số nguyên dương 2.1.PHÂN TÍCH BÀI TOÁN Cho n loại đồ vật Đồ vật thứ i khối lượng w[i] giá trị v[i] Số lượng đồ vật loại bị hạn chế c[i] Cần chọn đồ vật loại để bỏ vào ba cho tổng giá trị đồ vật chọn lớn tổng khối lượng chúng không vượt sức chứa T cho trước Cho biết số lượng đồ vật loại chọn tổng giá trị lớn thu Input:   n đồ vật, túi sức chứa T Mỗi loại đồ vật khối lượng w , giá trị v số lượng c   Số lượng đồ vật loại chọn Tổng giá trị lớn thu Output: 2.2.XÁC ĐỊNH CÔNG THỨC ĐỆ QUY Gọi F(i, m) tổng giá trị lớn hàng chọn cho tổng khối lượng m: F(i, m) = F(i-1, m) • Trường hợp w[i] && m >= 0) Begin if(S[i][m] != 0) Begin ; m = m - S[i][m] * w[i]; End i = i - 1; End ; End  Sơ đồ khối i = n; m = T; S i > m >=0 Đ Đ S[i][m] != S i = i -1 Đ m = m - S[i][m] * w[i]; ; End CHƯƠNG III CHẠY CHƯƠNG TRÌNH 3.1 CHẠY CHƯƠNG TRÌNH VỚI VÍ DỤ CỤ THỂ Ta sử dụng để ví dụ cho phía n = 5, T = 12 i w[i] v[i] c[i]  Nhập liệu từ bàn phím  In kết 3.2 QUÁ TRÌNH THỬ NGHIỆM CHƯƠNG TRÌNH VỚI NHIỀU DỮ LIỆU ĐẦU VÀO KHÁC NHAU 3.2.1.Thử nghiệm với n tăng dần , khối lượng T = 700 túi giữ nguyên n 50 100 200 300 400 500 Time(milliseconds) 15 15 16 31 31 78 3.2.1.Thử nghiệm với T tăng dần , n = 50 T 1000 2000 3000 4000 5000 Time(milliseconds) 15 47 63 94 131 * Nhận xét: Thời gian thực thi thuật toán tỉ lệ thuận với n, T CHƯƠNG IV TỔNG KẾT 4.1 KẾT QUẢ ĐẠT ĐƯỢC Sau nghiên cứu tìm hiểu đề tài, với hướng dẫn tận tình Thầy giúp đỡ bạn nhóm tiểu luận hoàn thành đạt số kết sau: − Chương trình chạy với nhiều Test − Hiểu, thiết lập thuật toán viết chương trình dựa vào thuật toán thiết lập Chương trình thiết kế thuật toán đơn giản, dễ hiểu nên dễ dàng kiểm tra sửa chữa yêu cầu chỉnh sửa − 4.2 HẠN CHẾ Nhóm chưa tích lũy nhiều kinh nghiệm việc làm tiểu luận kỹ làm việc nhóm, kỹ thuật lập trình tổ chức liệu Do đó, chương trình nhiều thiếu sót: − thể gặp nhiều lỗi mà chưa tìm Lý luận toán chưa ngắn gọn, súc tích nên gây khó khăn việc theo dõi toán − − Giao diện hạn chế ... chung quy hoạch động: Quy hoạch động việc giải tất toán nhỏ (bài toán sở) để từ bước giải toán lớn giải toán lớn (bài toán ban đầu) Quy hoạch động cần phải có bảng phương án Ý tưởng phương pháp quy. .. toán lớn?” CHƯƠNG II GIẢI BÀI TOÁN BA LÔ CÓ HẠN CHẾ THEO PHƯƠNG PHÁP QUY HOẠCH ĐỘNG ĐỀ BÀI: Giải toán ba lô có hạn chế: cho n loại đồ vật có khối lượng w1, , wn Số lượng giá trị loại đồ vật c1,... Các yêu cầu toán tối ưu sử dụng phương pháp quy hoạch động Một toán tối ưu muốn giải phương pháp quy hoạch động toán tối ưu có đặc điểm đây: 1) Bài toán lớn phải phân rã thành nhiều toán con, mà

Ngày đăng: 03/10/2017, 00:46

Từ khóa liên quan

Mục lục

  • GIỚI THIỆU ĐỀ TÀI

  • 1. Lý thuyết

  • 2. Phần mềm

  • TỔNG KẾT

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

Tài liệu liên quan