Tiếp nội dung phần 1 Bài giảng Thiết kế và đánh giá thuật toán: Phần 2 cung cấp cho người học các kiến thức cơ bản như: Kỹ thuật quay lui; Kỹ thuật nhánh và cận; Kỹ thuật quy hoạch động. Mời các bạn cùng tham khảo!
Chƣơng KỸ THUẬT QUAY LUI 4.1 Nội dung kỹ thuật Nét đặc trưng kỹ thuật quay lui bước hướng tới lời giải hoàn toàn làm thử Tại bước, có lựa chọn chấp nhận ghi nhận lựa chọn tiến hành bước thử Ngược lại lựa chọn thích hợp làm lại bước trước, xoá bỏ ghi nhận quay chu trỡnh th cỏc la chn cũn li Hành động đ-ợc gọi quay lui, thut toỏn s dng k thuật thuật toán quay lui Lời giải toán thường biểu diễn gồm n thành phần x = (x1, , xn ) phải thoả mãn điều kiện Để lời giải x, ta phải xây dựng dần thành phần xi Nhu nội dung kỹ thuật việc xây dựng dần thành phần xi cách thử tất khả Giả sử xác định i -1 thành phần x1, x2,…, xi-1 (mà ta gọi lời giải phận cấp i- 1), ta xác định thành phần xi cách duyệt tất khả đề cử cho (đánh số khả từ đến ni ) Với khả j, kiểm tra xem j có chấp nhận khơng Xảy hai trường hợp: - Nếu chấp nhận j xác định xi theo j Sau i = n ta cấu hình, cịn trái lại ta tiến hành xác định xi+1 - Nếu thử tất khả mà khơng có khả chấp nhận quay lại bước trước để xác định lại xi-1 Điểm quan trọng thuật toán phải ghi nhớ bước qua khả thử để tránh trùng lặp Rõ ràng thông tin cần lưu trữ theo cấu ngăn xếp (Stack- Vào sau trước) Vì kỹ thuật phù hợp với việc lập trình ngôn ngữ cho phép gọi đệ qui Bước xác định xi diễn tả qua hàm tổ chức đệ qui đây: Try(i) { for(j=1;j