Kỹ thuật quay lui

Một phần của tài liệu một số vấn đề ứng dụng của đồ thị trong tin học (Trang 72 - 73)

II. Cây bao trùm

2.2.1Kỹ thuật quay lui

2. Các thuật toán tìm cây bao trùm

2.2.1Kỹ thuật quay lui

Nội dung của kỹ thuật quay lui có thể tóm tắt như sau: Dùng cây quyết định, còn lá thì biểu thị 1 lời giải có thể. Để tìm nghiệm bằng kỹ thuật quay lui, trước tiên tạo ra dãy quyết định (càng dài càng tốt) để tiến tới lời giải. Dãy quyết định có thể biểu thị một đường đi trong cây quyết định. Mỗi khi biết được không thể có lời giải từ bất kỳ dãy quyết định nào thì ta quay lui lại đỉnh cha của đỉnh hiện tại để hướng tới lời giải bằng dãy quyết định khác (nếu có thể). Thủ tục tiếp tục cho tới khi tìm được lời giải hoặc là kết luận không có lời giải.

Ví dụ cho 1 tập A = {1, 2, 3, 4} hãy tìm tập con của A gồm 3 phần tử sao cho tổng các phần tử của tập con này là 8.

Trước hết ta xây dựng cây quyết định cho bài toán này như sau:

Hình 2.2

Mỗi một nhánh là 1 phần tử của một tập con 3 phần tử nào đó của A, một dãy liên tiếp đường đi gồm 3 nhánh từ gốc tới lá là một tập con của A, mỗi một lá là tổng của một tập con.

Dãy quyết định cho lời giải như sau:

Đầu tiên đi theo các nhánh 1 - 2 - 3 tổng dãy ở lá là 6 . Không phải, quay lui một nhánh về nhánh 2 đi vào nhánh 4 được: 1 - 2 - 4 ở lá là 7 . Không đúng

6 7 8 9 1 2 3 4 3 4 2 3 4

quay lại về nhánh 1 đi tiếp nhánh 3 và 4 được: 1 - 3 - 4 ở lá là 8, đây là nghiệm cần tìm, vậy tập con cần tìm là {1, 3, 4}

Đây cũng là bài toán tổ hợp có tính đệ quy, rõ ràng ở đây ta thấy được một áp dụng của cây trong kỹ thuật này.

Một phần của tài liệu một số vấn đề ứng dụng của đồ thị trong tin học (Trang 72 - 73)