Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Chương 5: Bài toán liệt kê trình bày giới thiệu bài toán; nhắc lại kiến thức đệ quy; phương pháp sinh; giải thuật quay lui,. . | Chương 5 – Bài toán liệt kê 5.1. Giới thiệu bài toán. 5.2. Nhắc lại kiến thức đệ quy. 5.3. Phương pháp sinh 5.4. Giải thuật quay lui. 5.1. Giới thiệu bài toán Cần có giải thuật để lần lượt xây dựng được tất cả các cấu hình đang quan tâm → BÀI TOÁN LIỆT KÊ. Đối với bài toán liệt kê, cần đảm bảo 2 nguyên tắc: Không được lặp lại một cấu hình. Không được bỏ sót một cấu hình. Khó khăn chính của phương pháp này là sự “bùng nổ tổ hợp”! 5.1. Giới thiệu bài toán Ví dụ 1: Một người bán hàng tại 8 thành phố. Người này có thể bắt đầu hành trình của mình tại một thành phố nào đó nhưng phải qua 7 thành phố kia theo bất kỳ thứ tự nào mà người đó muốn. Hãy chỉ ra lộ trình ngắn nhất mà người đó có thể đi. Giải: Có tất cả 7! = 5040 cách đi của người bán hàng. Tuy nhiên trong 5040 cách chúng ta phải duyệt toàn bộ để chỉ ra một hành trình là ngắn nhất. 5.2. Nhắc lại kiến thức đệ quy. Trong thực tế, nhiều đối tượng mà khó có thể định nghĩa nó một cách tường minh, nhưng lại dễ dàng định nghĩa đối tượng qua | Chương 5 – Bài toán liệt kê 5.1. Giới thiệu bài toán. 5.2. Nhắc lại kiến thức đệ quy. 5.3. Phương pháp sinh 5.4. Giải thuật quay lui. 5.1. Giới thiệu bài toán Cần có giải thuật để lần lượt xây dựng được tất cả các cấu hình đang quan tâm → BÀI TOÁN LIỆT KÊ. Đối với bài toán liệt kê, cần đảm bảo 2 nguyên tắc: Không được lặp lại một cấu hình. Không được bỏ sót một cấu hình. Khó khăn chính của phương pháp này là sự “bùng nổ tổ hợp”! 5.1. Giới thiệu bài toán Ví dụ 1: Một người bán hàng tại 8 thành phố. Người này có thể bắt đầu hành trình của mình tại một thành phố nào đó nhưng phải qua 7 thành phố kia theo bất kỳ thứ tự nào mà người đó muốn. Hãy chỉ ra lộ trình ngắn nhất mà người đó có thể đi. Giải: Có tất cả 7! = 5040 cách đi của người bán hàng. Tuy nhiên trong 5040 cách chúng ta phải duyệt toàn bộ để chỉ ra một hành trình là ngắn nhất. 5.2. Nhắc lại kiến thức đệ quy. Trong thực tế, nhiều đối tượng mà khó có thể định nghĩa nó một cách tường minh, nhưng lại dễ dàng định nghĩa đối tượng qua chính nó. Kỹ thuật định nghĩa đối tượng qua chính nó được gọi là kỹ thuật đệ qui (recursion). Một thuật toán được gọi là đệ quy nếu nó giải bài toán bằng cách rút gọn bài toán ban đầu thành bài toán tương tự như vậy sau một số hữu hạn lần thực hiện. Sau mỗi lần thực hiện, dữ liệu đầu vào tiệm cận tới tập dữ liệu dừng. Các giải thuật đệ qui thường được xây dựng qua hai bước: bước phân tích bước thay thế ngược lại 5.2. Nhắc lại kiến thức đệ quy. Ví dụ 2: Để tính tổng S(n) = 1 + 2 +.+ n. Giải quyết bài toán: Bước phân tích: Để tính toán được S(n), cần tính S(n-1), sau đó tính S(n) = S(n-1) +n. Và cuối cùng S(1) chúng ta có ngay kết quả là 1. Bước thay thế ngược lại: Xuất phát từ S(1) thay thế ngược lại chúng ta xác định S(n): S(1) = 1 S(2) = S(1) + 2 S(n) = S(n - 1) + n 5.2. Nhắc lại kiến thức đệ quy. Ví dụ 3: Định nghĩa công thức mệnh đề bằng phương pháp đệ quy Mỗi biến mệnh đề X, Y, Z (có thể có chỉ số) là một công