Tải bản đầy đủ (.pdf) (10 trang)

Bài giảng Cơ sở lập trình nâng cao - Chương 4: Phương pháp thiết kế thuật toán – quay lui

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (261.44 KB, 10 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

CƠ SỞ LẬP TRÌNH


NÂNG CAO



Biên soạn: Ths.Tôn Quang Toại




TPHCM, NĂM 2013



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

PHƯƠNG PHÁP THIẾT KẾ


THUẬT TOÁN



– QUAY LUI –



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Nội dung



Giới thiệu



Phương pháp



Sơ đồ cài đặt



Các ví dụ



</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Hình ảnh



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Giới thiệu



Định nghĩa [Quay lui – Backtracking]:



– Quay lui là một phương pháp thiết kế thuật



tốn để tìm nghiệm của bài toán bằng cách


xét tất cả các phương án.


– Một phương án gồm nhiều thành phần, và


phương pháp quay lui sẽ xây dựng từng


thành phần trong mỗi bước.


– Trong quá trình xây dựng thành phần thứ i


(tìm nghiệm cho thành phần thứ i), nếu


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Bài tốn



Phát biểu bài tốn: Giả sử nghiệm của bài



tốn cần tìm có dạng X=(x1, x2, …, xk,


…), trong đó



– xi là 1 thành phần nghiệm của bài tốn
– xi có một miền giá trị Di nào đó (xi Di).


– Số lượng thành phần xi có thể xác định hay


khơng xác định


– Bài tốn có những ràng buộc là F



Yêu cầu: Hãy xây dựng 1 nghiệm hay tất



</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=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 của bài


toán: Bắt đầu từ x1 được chọn ra từ tập D1, rồi đến x2


được chọn ra từ tập D2, ... bằng cách thử mọi khả năng có
thể xảy ra.


– Một cách tổng quát: Nếu chúng ta đã xác định được lời


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

Phương pháp



– Có 2 khả năng xảy ra:


• Nếu khả năng j thỏa điều kiện thì


– <sub>Gán xi = j </sub>


– <sub>Tiếp theo tìm nghiệm cho thành phần xi+1 </sub>


• Nếu đã thử mọi khả năng của j mà không thỏa


điều kiện bài tốn thì có nghĩa là đi theo con
đường


X(i-1) = (x1, x2, ..., xi-1)



</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

Phương pháp



– Quá trình này dừng cho đến khi tìm được


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

Phương pháp



Cây tìm kiếm (Cây khơng gian tìm



kiếm): Q trình tìm kiếm lời giải theo


phương pháp Quay lui sẽ sinh ra 1 cây


tìm kiếm



</div>

<!--links-->

×