Nội dung của chương này trình bày hai chiến lược thiết kế thuật giải thông dụng là vét cạn và tham lam. Nội dung của chương, ngoài phần trình bày về các phương pháp còn có những ví dụ cụ thể, cả thuật giải và cài đặt, để người đọc có một cái nhìn chi tiết về việc từ thuật toán đến chương trình.
THIẾT KẾ GIẢI THUẬT Nội dung chương trình bày hai chiến lược thiết kế thuật giải thông dụng vét cạn tham lam Nội dung chương, ngồi phần trình bày phương pháp cịn có ví dụ cụ thể, thuật giải cài đặt, để người đọc có nhìn chi tiết việc từ thuật tốn đến chương trình Vét cạn (Exhausted search) Vét cạn, duyệt, quay lui… số tên gọi không đồng nghĩa phương pháp đơn giản tin học: tìm nghiệm toán cách xem xét tất phương án Đối với người phương pháp thường khơng khả thi số phương án cần kiểm tra lớn Tuy nhiên máy tính, nhờ tốc độ xử lí nhanh, máy tính giải nhiều tốn phương pháp vét cạn Ưu điểm lớn phương pháp vét cạn ln đảm bảo tìm nghiệm xác Ngồi phương pháp vét cạn cịn có số ưu điểm so với phương pháp khác địi hỏi nhớ cài đặt đơn giản Hạn chế phương pháp thời gian thực thi lớn, độ phức tạp thường bậc mũ Do vét cạn thường áp dụng tốt với tốn có kích thước nhỏ 1.1 Bài tốn tìm cấu hình tổ hợp Thường tốn Tin học có u cầu dạng: tìm đối tượng x thoả mãn điều kiện định tập S đối tượng cho trước Bài tốn tìm cấu hình tổ hợp tốn u cầu tìm đối tượng x có dạng vector thoả mãn điều kiện sau: Đối tượng x gồm n phần tử: x = (x1,x2,…xn) Mỗi phần tử xi nhận giá trị rời rạc a1, a2, … am x thoả mãn ràng buộc cho hàm logic G(x) Tuỳ trường hợp mà tốn yêu cầu: tìm nghiệm, tìm tất nghiệm đếm số nghiệm Trước hết nhắc lại số cấu hình tổ hợp a) Tổ hợp Một tổ hợp chập k n tập k phần tử tập n phần tử Chẳng hạn tập {1,2,3,4} có tổ hợp chập là: {1,2}, {1,3, {1,4, {2,3}, {2,4}, {3,4} Vì tập hợp phần tử không phân biệt thứ tự nên tập {1,2} tập {2,1} đó, ta coi chúng tổ hợp Bài toán đặt cho xác định tất tổ hợp châp k tập n phần tử Để đơn giản ta xét tốn tìm tổ hợp tập số nguyên từ đến n Đối với tập hữu hạn bất kì, cách đánh số thứ tự phần tử, ta đưa toán tập số nguyên từ đến n Nghiệm cần tìm tốn tìm tổ hợp chập k n phần tử phải thoả mãn điều kiện sau: Là vector x =(x1,x2,…xk) xi lấy giá trị tập {1,2,…n} Ràng buộc: xi