Với mỗi khả năng j (j Di), chúng ta kiểm tra xem có thể thỏa điều kiện là nghiệm thành phần của bài toán không.. Phương pháp[r]
(1)CƠ SỞ LẬP TRÌNH NÂNG CAO
Biên soạn: Ths.Tôn Quang Toại TonQuangToai@yahoo.com
TPHCM, NĂM 2013
(2)PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN
– QUAY LUI –
(3)Nội dung
• Giới thiệu
• Phương pháp
• Sơ đồ cài đặt
• Các ví dụ
(4)Hình ảnh
(5)Giới thiệu
• Định nghĩa [Quay lui – Backtracking]:
– Quay lui phương pháp thiết kế thuật
tốn để tìm nghiệm toán cách
xét tất phương án
– Một phương án gồm nhiều thành phần,
phương pháp quay lui xây dựng
thành phần bước
– Trong trình xây dựng thành phần thứ i
(tìm nghiệm cho thành phần thứ i),
(6)Bài tốn
• Phát biểu tốn: Giả sử nghiệm
tốn cần tìm có dạng X=(x1, x2, …, xk, …),
– xi thành phần nghiệm tốn – xi có miền giá trị Di (xi Di)
– Số lượng thành phần xi xác định hay
khơng xác định
– Bài tốn có ràng buộc F
• Yêu cầu: Hãy xây dựng nghiệm hay tất
(7)Phương pháp • Phương pháp Quay lui
– Phương pháp Quay lui xây dựng dần nghiệm X
toán: Bắt đầu từ x1 chọn từ tập D1, đến x2
được chọn từ tập D2, cách thử khả xảy
– Một cách tổng quát: Nếu xác định lời
(8)Phương pháp
– Có khả xảy ra:
• Nếu khả j thỏa điều kiện
– Gán xi = j
– Tiếp theo tìm nghiệm cho thành phần xi+1
• Nếu thử khả j mà không thỏa
điều kiện tốn có nghĩa theo đường
X(i-1) = (x1, x2, , xi-1)
(9)Phương pháp
– Quá trình dừng tìm
(10)Phương pháp
• Cây tìm kiếm (Cây khơng gian tìm
kiếm): Quá trình tìm kiếm lời giải theo phương pháp Quay lui sinh tìm kiếm