Luôn có nhiều sự nhầm lẫn về khái niệm này, bởi vì việc đặt tên là sai lệch, cho rằng cả tìm kiếm cây và biểu đồ đều tạo ra một cây (từ đó bạn có thể rút ra một đường dẫn) trong khi khám phá không gian tìm kiếm, thường được biểu thị dưới dạng biểu đồ .
Sự khác biệt
Đầu tiên, chúng ta phải hiểu rằng vấn đề tiềm ẩn (hoặc không gian tìm kiếm) hầu như luôn được biểu diễn dưới dạng biểu đồ (mặc dù biểu đồ bên dưới có thể không chứa chu kỳ, vì vậy nó có thể đại diện cho một cây). Vì vậy, sự khác biệt không phải là vấn đề là cây (một loại biểu đồ đặc biệt) hay đồ thị chung!
Thay vào đó, sự khác biệt là cách chúng ta đi qua không gian tìm kiếm (được biểu thị dưới dạng biểu đồ) để tìm kiếm trạng thái mục tiêu của chúng ta và liệu chúng ta có đang sử dụng danh sách bổ sung (được gọi là danh sách đóng ) hay không.
Vì vậy, sự khác biệt cơ bản là
Trong trường hợp tìm kiếm đồ thị, chúng tôi sử dụng một danh sách, được gọi là danh sách đã đóng (còn được gọi là bộ khám phá ), để theo dõi các nút đã được truy cập và mở rộng, để chúng không được truy cập và mở rộng lại.
Trong trường hợp tìm kiếm cây, chúng tôi không giữ danh sách kín này. Do đó, cùng một nút có thể được truy cập nhiều lần (hoặc thậm chí vô hạn nhiều lần), có nghĩa là cây được tạo ra (bằng cách tìm kiếm cây) có thể chứa cùng một nút nhiều lần.
Ưu điểm và nhược điểm
Các lợi thế của việc tìm kiếm đồ thị rõ ràng là, nếu chúng ta kết thúc việc tìm kiếm của một nút, chúng tôi sẽ không bao giờ tìm kiếm nó một lần nữa. Mặt khác, tìm kiếm cây có thể truy cập vào cùng một nút nhiều lần.
Các nhược điểm của tìm kiếm đồ thị là nó sử dụng nhiều bộ nhớ hơn (mà chúng tôi có thể có hoặc không có) so với tìm kiếm cây. Điều này quan trọng bởi vì tìm kiếm đồ thị thực sự có yêu cầu bộ nhớ theo cấp số nhân trong trường hợp xấu nhất, làm cho nó không thực tế mà không có một tìm kiếm heuristic thực sự tốt hoặc một vấn đề cực kỳ đơn giản.
Vì vậy, có một sự đánh đổi giữa không gian và thời gian khi sử dụng tìm kiếm đồ thị trái ngược với tìm kiếm trên cây (hoặc ngược lại).
Phần kết luận
Vì vậy, sự khác biệt giữa tìm kiếm cây và tìm kiếm biểu đồ không phải là tìm kiếm cây hoạt động trên cây trong khi tìm kiếm biểu đồ hoạt động trên biểu đồ! Cả hai đều có thể hoạt động trên cây hoặc đồ thị (nhưng, cho rằng đồ thị là một khái quát của cây, chúng ta có thể nói đơn giản là cả hai đều hoạt động trên đồ thị, hoặc là cây hoặc không) và cả hai đều tạo ra một cây!
Ghi chú
Các định nghĩa về tìm kiếm cây và tìm kiếm đồ thị được đưa ra ở trên dựa trên các định nghĩa được đưa ra trong phần 3.3 (trang 77) của cuốn sách Trí tuệ nhân tạo: Cách tiếp cận hiện đại (ấn bản thứ 3) , của Stuart J. Russell và Peter Norvig, đó là de sách tiêu chuẩn -facto trong trí tuệ nhân tạo, vì vậy những định nghĩa này được áp dụng trong bối cảnh trí tuệ nhân tạo (cũng là bối cảnh của trang web này)!
Tuy nhiên, lưu ý rằng, đôi khi, mọi người có thể sử dụng thuật ngữ tìm kiếm cây để chỉ một giao dịch cây , được sử dụng để chỉ một tìm kiếm trong cây tìm kiếm (ví dụ: cây tìm kiếm nhị phân hoặc cây đỏ đen), đó là một cây (tức là một biểu đồ không có chu kỳ) duy trì một trật tự nhất định của các phần tử của nó. Đây là một lý do khác để có các định nghĩa khác nhau về tìm kiếm cây và nghĩ rằng tìm kiếm cây chỉ hoạt động trên cây.