2013-06-25 37 views
6

Tôi đang nghiên cứu tìm kiếm chi nhánh và ràng buộc và tốt nhất đầu tiên cho công việc luận án của mình nhưng đã tìm thấy rất nhiều mâu thuẫn trên web về hai khái niệm này. Đầu tiên tôi nghĩ chi nhánh và ràng buộc chỉ tỉa cành nhánh kết thúc với giải pháp chi phí cao (sử dụng heuristic) và không ưu tiên tìm kiếm (làm một DFS đơn giản hoặc BFS trên phần còn lại của cây sau khi cắt tỉa). Tuy nhiên, sau này tôi tìm thấy nhiều tài nguyên nói rằng BB cũng xếp hạng các trạng thái và xem xét các nút có xếp hạng cao hơn đầu tiên (một tìm kiếm được ưu tiên). Nếu nó là như vậy, sự khác biệt chính xác giữa BB và tìm kiếm tốt nhất là gì?Sự khác biệt giữa tìm kiếm chi nhánh và giới hạn và tìm kiếm tốt nhất đầu tiên

Trả lời

5

2 khái niệm có liên quan (bạn có thể thậm chí đôi khi kết hợp chúng) nhưng bạn chỉ nên tập trung vào sự khác biệt cơ bản giữa chúng như tên của màn hình:

Chi nhánh và bị ràng buộc khám phá không gian tìm kiếm cách thấu đáo bởi phân nhánh trên các biến (= kiểm tra các giá trị của các biến). Điều này tạo ra một số vấn đề phụ, ví dụ: phân nhánh trên một biến nhị phân tạo ra một vấn đề trong đó biến = 0 và một vấn đề trong đó nó = 1. Sau đó bạn có thể tiến hành và giải quyết chúng một cách đệ quy. Khía cạnh 'giới hạn' của kỹ thuật này bao gồm các giới hạn ước tính về các giải pháp có thể đạt được trong bài toán con. Nếu subproblem chỉ có thể mang lại các giải pháp xấu (so với giải pháp đã tìm thấy trước đó), bạn có thể bỏ qua một cách an toàn việc khám phá phần đó của không gian tìm kiếm.

Cách tốt nhất đầu tiên để tìm giải pháp nhanh nhất có thể bằng cách xem phần thú vị nhất của không gian tìm kiếm trước tiên (thú vị nhất = ước tính). Nó không phân chia không gian tìm kiếm, chỉ cố gắng để đạt được một/giải pháp càng nhanh càng tốt.

Cả hai cách tiếp cận đều cố gắng bỏ qua việc điều tra các phần của không gian tìm kiếm. Việc sử dụng và hiệu quả của chúng phụ thuộc vào việc thiết lập vấn đề. Tốt nhất đầu tiên yêu cầu bạn chỉ định một tiêu chí cho 'giải pháp thú vị nhất để khám phá', đôi khi có thể khó khăn/không thể. Chi nhánh và ràng buộc chỉ là thú vị nếu ràng buộc bạn có thể đưa vào các vấn đề con có ý nghĩa/không quá rộng. Nó phụ thuộc vào vấn đề bạn đang cân nhắc ...

+0

Điều tôi hiểu là: tìm kiếm đầu tiên chỉ xem xét chi phí đạt trạng thái (tức là tổng chi phí từ trạng thái gốc đến trạng thái đó) để xếp hạng , nhưng BB sử dụng chi phí tối thiểu ước tính của việc có các giải pháp hoàn chỉnh thông qua trạng thái đó. Tôi có đúng không? – Barpa

+0

Không, Đầu tiên tốt nhất cố gắng chọn nút tiếp theo để xử lý bằng cách sử dụng ước tính chi phí toàn cầu và không chỉ chi phí hiện tại. Hãy xem xét một vấn đề chuyển hướng mà bạn có thể sử dụng Dijkstra để tạo ra các cây con đường ngắn nhất. Chỉ nhìn vào chi phí để đạt được trạng thái hiện tại là chính xác những gì Dijkstra làm bằng cách chọn nút có khoảng cách dự kiến ​​thấp nhất để giải quyết tiếp theo. Bằng cách áp dụng Best First cho nó, bạn sẽ nhận được A * như trong A *, bạn luôn chọn nút có ước tính tổng chi phí thấp nhất. – Origin

+0

Xin lỗi, nhưng bây giờ tôi thấy bối rối hơn. Bạn nói tốt nhất đầu tiên chọn nút tiếp theo bằng cách sử dụng ước tính chi phí toàn cầu. Không phải là ước tính chi phí toàn cầu giống như chi nhánh bị ràng buộc toàn cầu (thấp hơn hoặc cao hơn) và sử dụng bị ràng buộc để so sánh với trạng thái hiện tại bị ràng buộc? – Barpa

Các vấn đề liên quan