Bài toán cái ba lô Cho một cái ba lô có thể đựng một trọng lượng W và n loại đồ vật, mỗi đồ vật i có một trọng lượng gi và một giá trị vi. Tất cả các loại đồ vật đều có số lượng không hạn chế. Tìm một cách lựa chọn các đồ vật đựng vào ba lô, chọn các loại đồ vật nào, mỗi loại lấy bao nhiêu sao cho tổng trọng lượng không vượt quá W và tổng giá trị là lớn nhất. | Giải thuật Kĩ thuật thiết kế giải thuật Bài toán cái ba lô Cho một cái ba lô có thể đựng một trọng lượng W và n loại đồ vật mỗi đồ vật i có một trọng lượng gi và một giá trị vi. Tất cả các loại đồ vật đều có số lượng không hạn chế. Tìm một cách lựa chọn các đồ vật đựng vào ba lô chọn các loại đồ vật nào mỗi loại lấy bao nhiêu sao cho tổng trọng lượng không vượt quá W và tổng giá trị là lớn nhất. Theo yêu cầu của bài toán thì ta cần những đồ vật có giá trị cao mà trọng lượng lại nhỏ để sao cho có thể mang được nhiều đồ quý sẽ là hợp lý khi ta quan tâm đến yếu tố đơn giá của từng loại đồ vật tức là tỷ lệ giá trị trọng lượng. Đơn giá càng cao thì đồ càng quý. Từ đó ta có kĩ thuật greedy áp dụng cho bài toán này là 1. Tính đơn giá cho các loại đồ vật. 2. Xét các loại đồ vật theo thứ tự đơn giá từ lớn đến nhỏ. 3. Với mỗi đồ vật được xét sẽ lấy một số lượng tối đa mà trọng lượng còn lại của ba lô cho phép. 4. Xác định trọng luợng còn lại của ba lô và quay lại bước 3 cho đến khi không còn có thể chọn được đồ vật nào nữa. Ví dụ 3-2 Ta có một ba lô có trọng lượng làì 37 và 4 loại đồ vật với trọng lượng và giá trị tương ứng được cho trong bảng bên. Từ bảng đã cho ta tính đơn giá cho các loại đồ vật và sắp xếp các loại đồ vật này theo thứ tự đơn giá giảm dần ta có bảng sau. Theo đó thì thứ tự ưu tiên để chọn đồ vật là là B A D và cuối cùng là C. Loại đồ vật Trọng lượng Giá trị A 15 30 B 10 25 C 2 2 D 4 6 Loại đồ vật Trọng lượng Giá trị Đơn giá B 10 25 A 15 30 D 4 6 C 2 2 Nguyễn Văn Linh Trang 54 Sưu tầm bởi Giải thuật Kĩ thuật thiết kế giải thuật Vật B được xét đầu tiên và ta chọn tối đa 3 cái vì mỗi cái vì trọng lượng mỗi cái là 10 và ba lô có trọng lượng 37. Sau khi đã chọn 3 vât loại B trọng lượng còn lại trong ba lô là 37 - 3 10 7. Ta xét đến vật A vì A có trọng lượng 15 mà trọng lượng còn lại của balô chỉ còn 7 nên không thể chọn vật A. Xét vật D và ta thấy có thể chọn 1 vật D khi đó trọng lượng còn lại của ba lô là 7-4 3. Cuối .