1. Trang chủ
  2. » Giáo Dục - Đào Tạo

bài toán cái balô bằng kĩ thuật tham với số lượng không hạn chế

17 176 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 17
Dung lượng 337,68 KB

Nội dung

TRƯỜNG ĐẠI HỌC TÂY ĐÔ KHOA KỸ THUẬT-CÔNG NGHỆ  NIÊN LUẬN CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN BÀI TỐN CÁI BALƠ BẰNG KĨ THUẬT THAM VỚI SỐ LƯỢNG KHÔNG HẠN CHẾ Cán hướng dẫn: Th.s: Lâm Tấn Phương Sinh viên thực hiện: Phan Thị Kiều Mỵ 197060027 Lê Nguyễn Nhật Minh 197060065 Cần Thơ, năm 2021 NỘI DUNG CHƯƠNG I: TỔNG QUAN LỜI MỞ ĐẦU Balo vật dụng thông thường sử dụng hàng ngày sống, giúp mang theo vật dụng cần thiết Tuy nhiên balo chứa khối lượng vật dụng định cần lựa chọn vật dụng có giá trị nhất, cần thiết để đem theo Từ việc chọn vật dụng có giá trị vào balo nên người ta lấy tên “Bài toán balo” để đặt tên cho dạng tốn Bài tốn xếp ba lơ (cịn biết đến toán túi) dạng tốn tối ưu hóa tổ hợp Bài tốn đặt tên từ vấn đề chọn quan trọng nhét vừa vào túi (với khối lượng định) để mang theo chuyến Các toán tương tự thường xuất kinh doanh, tốn tổ hợp, lý thuyết độ phức tạp tính tốn, mật mã học ứng dụng MƠ TẢ BÀI TOÁN Đặt đồ vật vào balo cho giá trị balo cao đảm bảo khối lượng balo Giả sử có đồ có giá trị 10$, 4$, 2$, 2$, 1$ khối lượng đồ 4kg, 12kg, 2kg, 1kg, 1kg Khối lượng mà balo chứa 15kg Vấn đề chọn đồ vật để giá trị balo nhiều $ đảm bảo khối lượng balo không vượt 15kg Hình 1: mơ tả tốn túi Kiến thức cần có - Trang bị kiến thức tốn học - Nắm vũng ngơn ngữ lập trình C, C++,… Nắm vững lí thuyết cấu trúc liệu giải thuật để lựa chọn đồ vật cho hợp lí Dịch chương trình sang file thực thi Hướng giải quyết: Các bước giải tốn: • Tính đơn giá cho loại đồ vật • Xét loại đồ vật theo thứ tự đơn giá từ lớn đến nhỏ • Với loại đồ vật xét lấy số lượng tối đa mà trọng lượng cịn lại bao cho phép • Xác định trọng lượng lại balo quay lại bước khơng cịn chọn đồ vật Kế hoạch thực Đề tài dự kiến hoàn thành sau tuần, cụ thể sau: • Tìm hiểu thuật tốn: tuần • Lập trình demo cho ví dụ nêu, code demo: tuần • Tham số hóa chương trình để xét liệu nhập vào Nộp chương trình: tuần • Tinh chỉnh phần mềm, nộp phần mềm chỉnh sửa: tuần • Viết tài liệu, nộp tài liệu: tuần CHƯƠNG II: CƠ SỞ LÝ THUYẾT Giới thiệu thuật toán tham lam (tham ăn) Tham ăn hiểu cách dân gian môt mâm có nhiều ăn, ngon ta ăn trước ăn cho hết chuyển sang ngon thứ hai, lại ăn hết thứ hai chuyển sang thứ Có nhiều giải thuật để giải toán balo như: vét cạn, quy hoạch động, chia để trị,… Tuy nhiên phương pháp dễ hiểu, sử dụng phổ biến phương pháp tham lam Phương pháp giúp người thiết kế giải thuật tìm trật tự hợp lí tối ưu để duyệt liệu nhằm đạt mục tiêu cách xác nhanh Định nghĩa kĩ thuật tham lam (Greedy algorithm) Thuật toán tham làm hay xác kĩ thuật (technique) tương tự quy hoạch động hay chia để trị kĩ thuật chọn định tốt thởi điểm hay lựa chọn tối ưu cục hi vọng định dẫn tới giải pháp tối ưu toàn cục cho tốn Do khác với quy hoạch động ln duyệt hết đảm bảo tìm thấy lời giải, với quy hoạch động định dựa vào định bải toán giải bước trước xét lại đường bước trước hướng tới lời giải Giải thuật tham lam định sớm thay đổi đường thuật toán theo định đó, khơng xét lại định cũ Chính nhiều tốn tham lam cho kết xác nhanh Tham lam khơng dựa vào định tốn trước để đưa định mà bước tự đưa định tối ưu cục định định đường bước tiếp theo, định quay lại hay phục hồi Có nhiều vấn đề cần giải quyết, quy vấn đề sau đây: Cho trước tập A đối tượng đó, địi hỏi phải chọn tập S đối tượng thỏa mãn số điều kiện Bất kỳ tập S A thỏa mãn yêu cầu đặt gọi nghiệm chấp nhận toán Một hàm mục tiêu gắn nghiệm chấp nhận với giá trị Một nghiệm chấp nhận mà hàm mục tiêu có giá trị lớn (hoặc nhỏ nhất) gọi nghiệm tối ưu * Ý tưởng Ta xây dựng tập S bước, tập rỗng Tại bước, ta chọn phần tử “tốt nhất” phần tử lại A để đưa vào S Việc lựa chọn phần tử bước hướng dẫn hàm chọn Phần tử chọn bị loại khỏi tập A Nếu thêm phần tử chọn vào tập S mà S cịn thỏa mãn điều kiện tốn ta mở rộng S cách thêm vào phần tử chọn * Đặc điểm Mục đích xây dựng toán giải nhiều lớp toán khác nhau, đưa định dựa vào thuật tốn có, tương lai không xem xét lại định q khứ Vì thuật tốn dễ đề xuất, thời gian tính nhanh thường khơng cho kết Lời giải cần tìm mơ tả gồm hữu hạn thành phần thoả mãn điều kiện định, ta phải giải toán cách tối ưu Để xây dựng lời giải ta có tập ứng cử viên Xuất phát từ lời giải rỗng, thực việc xây dựng lời giải bước, bước lựa chọn tập ứng cử viên để bổ sung vào lời giải có Xây dựng hàm nhận biết tính chấp nhận lời giải có -> Hàm Solution(S) -> Kiểm tra thoả mãn điều kiện chưa Một hàm quan trọng nữa: Select(A) cho phép bước thuật toán lựa chọn ứng cử viên có triển vọng để bổ xung vào lời giải có -> dựa vào ảnh hưởng vào hàm mục tiêu, thực tế ứng cử viên phải giúp phát triển tiếp tục toán Hình 2:lược đồ tổng quát Trong lược đồ tổng quát Select hàm chọn, cho phép ta chọn từ tập A phần tử xem tốt nhất, nhiều hứa hẹn thành viên nghiệm Ta dễ dàng thấy thuật tốn gọi “ tham ăn” Tại bước, chọn “miếng ngon nhất” (được xác định hàm chọn), thấy nuốt (có thể đưa vào nghiệm) xơi ngay, khơng bỏ đi, sau không xem xét lại Cần nhấn mạnh rằng, thuật toán tham ăn số toán, xây dựng hàm chọn thích hợp cho nghiệm tối ưu Trong nhiều tốn, thuật tốn tham ăn tìm nghiệm gần với nghiệm tối ưu Các thành phần giải thuật tham lam Giải thuật tham lam có thành phần: • Một tập hợp ứng viên (candidate), để từ tạo lời giải • Một hàm lựa chọn, để theo lựa chọn ứng viên tốt để bổ sung vào lời giải • Một hàm khả thi (feasibility), dùng để định ứng viên dùng để xây dựng lời giải • Một hàm mục tiêu, ấn định giả trị lời giải lời giải chưa hoàn thành • Một hàm đánh giá, ta tìm lời giải hồn chỉnh Có hai thành phần định tới định tham lam: Tính chất lựa chọn tham lam • Chúng ta lựa chọn giải pháp cho tốt thời điểm sau giải toán nảy sinh từ việc thực lựa chọn vừa Lựa chọn thuật toán tham lam phụ thuộc vào lựa chọn trước Nhưng khơng thể phụ thuộc vào lựa chọn tương lai hay phụ thuộc vào lời giải toán Thuật toán tiến triển theo kiểu thực chọn lựa theo vòng lặp, lúc thu nhỏ tốn cho toán nhỏ Đấy khác biệt thuật toán giải thuật quy hoạch động Giải thuật tham lam định sớm thay đổi đường thuật tốn theo định đó, khơng xét lại định cũ Đối với số tốn, thuật tốn tối ưu xác Cấu trúc tối ưu • Một tốn gọi “ có cấu trúc tối ưu”, lời giải tối ưu toán chứa lời giải tối ưu tốn lớn Thuận lợi khó khăn áp dụng thuật toán tham lam Thuận lợi: • Khá dễ để tiến hành thuật toán tham lam cho tốn • Phân tích thời gian chạy thuật toán tham lam dễ dàng kĩ thuật khác (như chia để chạy) Với kỹ thuật chia để trị, không rõ ràng kĩ thuật nhanh hay chậm Lý mức đệ quy kích thước nhỏ số lượng tốn lớn Khó khăn: • Khó khăn việc chứng minh lại Chương III: CÀI ĐẶT – THIẾT KẾ GIẢI THUẬT CÀI ĐẶT Ta thực cài đặt thủ tục sau: Tính đơn giá sản phẩm: struct Dovat{ char Ten [20]; float TrongLuong, GiaTri, DonGia; int PhuongAn; //so luong vat chon Tính đơn giá sản phẩm Độ phức tạp thuật toán O(n) Void TinhDonGia(DoVat sp[], int n) { for(int i=1; i

Ngày đăng: 24/12/2021, 09:32

HÌNH ẢNH LIÊN QUAN

Và ta gán trọng lượng của balo là 456. Ta thu được bảng như sau: - bài toán cái balô bằng kĩ thuật tham với số lượng không hạn chế
ta gán trọng lượng của balo là 456. Ta thu được bảng như sau: (Trang 13)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w