Khái niệm “Thuật toán” và “Thuật giải” Quan điểm lập trình cấu trúc Algorithm + Data structure = Program Thuật toán: dãy hữu hạn các bước không mập mờ và có thể thực hiện được
Trang 1THUẬT GIẢI HEURISTIC
Giảng viên: ThS Đào Quốc Thắng
Khoa Công nghệ thông tin Trường ĐH Ngân hàng Tp HCM
CHUYÊN ĐỀ BỒI DƯỠNG ĐỘI TUYỂN OLYMPIC TIN HỌC
Trang 22
Nội dung
Khái niệm “Thuật toán” và “Thuật giải”
Thuật giải Heuristic
Một số ví dụ ứng dụng
Bài tập
Trang 3Khái niệm “Thuật toán” và
“Thuật giải”
Quan điểm lập trình cấu trúc
Algorithm + Data structure
= Program
Thuật toán: dãy hữu hạn các bước
không mập mờ và có thể thực hiện được , quá trình hành động theo các
bước này phải dừng và cho kết quả
như mong muốn
Trang 66
Thuật giải
Các cách giải chấp nhận được nhưng
không hoàn toàn đáp ứng đầy đủ các tiêu chuẩn của thuật toán
Trang 72 Thuật giải Heuristic
Là sự mở rộng của thuật toán với các
Trang 9Nguyên lý tham lam
Lấy tiêu chuẩn tối ưu toàn cục (đặt ra cho bài toán) làm tiêu chuẩn chọn lựa hành động cục bộ (từng bước/từng giai đoạn thực hiện)
Trang 11Nguyên lý vét cạn
Bài toán tìm kiếm: cố gắng hạn chế
không gian tìm kiếm hoặc sử dụng một kiểu dò tìm đặc biệt dựa vào đặc thù
riêng của bài toán để nhanh chóng đi
tới mục tiêu
Trang 13Bài toán hành trình ngắn nhất
Một người bán hàng mỗi ngày phải đem hàng từ công ty đến giao cho các đại lý trong thành phố, rồi sau đó quay trở lại
vị trí xuất phát (về lại công ty) Giả sử giữa mỗi cặp điểm (công ty/đại lý) đều tồn tại một đường đi trực tiếp Hãy tìm con đường đi ngắn nhất sao cho mỗi
đại lý chỉ được đi qua đúng 1 lần
Trang 15Bài toán phân việc
Một công ty nhận hợp đồng gia công n chi tiết máy J1, J2, …Jn Công ty có m máy công cụ P1, P2, …Pm, trong đó
mỗi chi tiết máy đều có thể gia công
trên bất kỳ máy nào, một khi đã gia
công một chi tiết máy thì không thể
ngưng giữa chừng
Trang 1616
Ví dụ
Giả sử thời gian cần thiết để gia công
mỗi chi tiết Ji là Ti, hãy phân công công việc trên các máy để thời gian thực hiện hợp đồng là ngắn nhất
VD 1: m=3, n=5, T1=2, T2=5, T3=8, T4=1, T5=5
VD 2: m-2, n=5, T1=3, T3, T4=2,
T5=2
Trang 17Bài toán tô màu bản đồ
Cho một bản đồ n vùng, hãy tô màu
các vùng sao cho mỗi cặp 2 vùng lân
cận phải được tô bằng 2 màu riêng biệt
và số màu được sử dụng là ít nhất
Trang 19Bài toán Ta-canh (trò chơi
9-puzzle)
Cho hình vuông kích thước 3x3 với 9 ô chứa 1 trong 8 con số 1, 2, …, 8 và 1 ô
để trống Hãy di chuyển ô trống sao
cho các ô số được sắp xếp theo thứ tự
tứ 1 đến 8
Trang 214 Bài tập
Bài tập 1
Bài tập 2
Bài tập 3
Trang 22Bài tập 1
22
Cho n loại tiền với các mệnh giá m1, m2, …,
mn khác nhau, trong đó có một loại tiền có mệnh giá bằng 1 Hãy biểu diễn số tiền N
bằng các loại tiền trên sao cho số tờ tiền sử dụng là ít nhất
Trang 24Bài tập 2
24
Cho n container cùng loại và k đồ vật có khối lượng lần lượt là m1, m2 ,…, mk Giả sử có thể xếp hết toàn bộ các đồ vật trên vào các container, hãy tìm cách sắp xếp sao cho chênh lệch khối lưởng giữa các container là nhỏ nhất
Lặp lại bài toán trên cới đk bổ sung: số lượng
đồ vật trong mỗi container < l với k < n*l
Trang 26Bài tập 3
26
Cho n xe tải với tải trọng C1, C2, …, Cn và k
thùng hàng với khối lượng lần lượt là m1, m2
,…, mk, m1+ m2 +…+ mk,> C1 + C2 + …+
Cn Hãy tìm cách sắp xếp các thùng hàng trên lên xe sao cho tổng lượng hàng sắp xếp
được là nhiều nhất