Vì cây là hữu hạn và các nhãn là số thực, chúng tôi đảm bảo rằng có ít phần tử nhất trong bộ nhãn ( câu hỏi này từ math.SE có bằng chứng về thuộc tính đơn giản này). Trong trường hợp này vì tất cả các nhãn là khác biệt, chúng tôi yêu cầu cực tiểu địa phương phải nhỏ hơn so với hàng xóm của chúng. Nếu đúng như vậy, thì chúng ta sẽ phải nới lỏng điều kiện này thành "ít hơn hoặc bằng", nếu không thì có thể không có giải pháp. Tuy nhiên, chúng tôi biết rằng có ít nhất một địa phương tối thiểu để tìm.
Nếu cây được root (tức là chúng ta có một khái niệm về mối quan hệ cha-con), chúng ta có thể giải quyết vấn đề rẻ hơn một chút. Nếu cây không được phân bổ, thì chúng ta cũng có thể làm bất thường, nhưng chúng ta có thể sẽ thực hiện nhiều thăm dò thực tế hơn.
Đầu tiên chúng ta sẽ giải quyết trường hợp đã root.
Vì cây là cây nhị phân (hoàn chỉnh), mỗi đỉnh có nhiều nhất là ba lân cận, cha mẹ và hai anh chị em của nó (với gốc tất nhiên không có cha mẹ), vì vậy một đỉnh là tối thiểu cục bộ nếu nhãn của nó nhỏ hơn nhãn của hai đứa con và cha mẹ của nó. Do đó, chúng ta có thể xác định xem một đỉnh có phải là tối thiểu cục bộ hay không với tối đa bốn đầu dò (thực tế là chúng ta sẽ đi ngang qua cây theo thứ tự, chúng ta sẽ cần nhiều nhất là ba trong trường hợp gốc).
Để thực sự tìm thấy một mức tối thiểu cục bộ, chúng ta có thể đi qua cây, bắt đầu với gốc là đỉnh hiện tại, theo cách sau:
- Thăm dò nhãn của đỉnh hiện tại và nhãn của hai con của nó.
- Nếu nhãn hiện tại là nhỏ nhất, hãy dừng lại và báo cáo rằng đỉnh hiện tại là mức tối thiểu cục bộ.
- Khác đặt đỉnh hiện tại cho con với nhãn nhỏ nhất và quay lại bước 1.
Khi chúng ta bắt đầu từ gốc, chúng ta không bao giờ phải lo lắng về nhãn của cha mẹ - gốc không có cha mẹ và nếu đỉnh hiện tại của chúng ta có cha mẹ, thì chúng ta phải giảm giá trong lần lặp trước. Lưu ý rằng trong bước 2, chúng tôi không yêu cầu nghiêm ngặt rằng chúng tôi chọn nhãn nhỏ nhất, bất kỳ nhãn nào nhỏ hơn dòng điện là đủ 1 , chọn loại nhỏ nhất chỉ mang lại sự lựa chọn xác định (một lần nữa vì chúng tôi có nhãn riêng biệt).
Khi chúng tôi chọn một đỉnh trong số hai đứa trẻ, đường ngang của chúng tôi chọn ra một đường dẫn từ gốc đến (xa nhất) một chiếc lá, do đó chúng tôi có một cây nhị phân có chiều sâu d<logn+1 (vì nó là một cây nhị phân hoàn chỉnh với n=2d−1 đỉnh), chúng tôi thực hiện nhiều nhất 3d∈O(logn) thăm dò.
Trong trường hợp không được phân bổ, chúng ta không có điểm khởi đầu thuận tiện như vậy, tuy nhiên chúng ta vẫn có cấu trúc cây (ngay cả khi thuật toán không biết điều đó). Chúng ta có thể sử dụng thuật toán sau:
- Chọn bất kỳ đỉnh nào là đỉnh hiện tại ban đầu.
- Thăm dò nhãn của đỉnh hiện tại và tất cả các lân cận của nó.
- Nếu đỉnh hiện tại có nhãn thấp nhất, hãy dừng lại và báo cáo nó ở mức tối thiểu cục bộ.
- Khác, chọn hàng xóm có nhãn thấp nhất làm đỉnh hiện tại mới và quay lại bước 2.
Ở mỗi lần lặp, chúng tôi chỉ thực hiện tối đa 4 lần thăm dò, vì vậy câu hỏi là có bao nhiêu lần lặp có thể có? Chìa khóa là quan sát rằng chúng ta không bao giờ có thể quay lại (chúng ta biết rằng chúng ta đến từ một nhãn lớn hơn), vì vậy chúng ta phải đi theo một đường dẫn đơn giản trong biểu đồ, nhưng vì biểu đồ thực sự là một cây nhị phân hoàn chỉnh, đường dẫn đơn giản dài nhất có chiều dài2d. Do đó, ngay cả trong trường hợp không được phân bổ, chúng tôi thực hiện nhiều nhất8d∈O(logn) thăm dò.
Để cho chính xác, chúng tôi xem xét thuật toán thứ hai (trường hợp gốc rõ ràng chỉ là trường hợp đặc biệt của trường hợp không được phân bổ).
Thực tế là thuật toán không bao giờ có thể quay lại cũng đảm bảo chấm dứt, vì đồ thị là hữu hạn. Bây giờ chúng ta chỉ cần chứng minh rằng đỉnhvchúng tôi chấm dứt trên thực tế là tối thiểu địa phương. Giả sử mâu thuẫn rằng nó không phải, sau đó nó có một số hàng xómucó nhãn với giá trị thấp hơn. Chúng tôi có ba trường hợp: (1)u là đỉnh trước đó trong đường dẫn mà thuật toán đã theo, trong trường hợp đó là khi thuật toán ở u, nó sẽ không được chọn vlà đỉnh tiếp theo; (2)uđược xuất hiện trong đường dẫn, nhưng nhiều hơn một lần lặp lại trước đó, trong trường hợp này biểu đồ không phải là một cái cây; và (3)u Không phải là trong đường dẫn thuật toán theo sau, nhưng sau đó thuật toán sẽ chọn u là đỉnh tiếp theo trong bước 4 và thuật toán sẽ không kết thúc tại v. Như vậyv phải là tối thiểu địa phương.
Một cách khác để thấy điều này là chỉ cần quan sát rằng chuỗi các nhãn của các đỉnh được thuật toán chọn là giảm đơn điệu. Từ đó cả việc chấm dứt và tính đúng đắn ngay lập tức.
Chú thích:
- Thuộc tính cho phép điều này là mọi cây con đều có mức tối thiểu cục bộ - một lần nữa, mọi tập hợp hữu hạn có tổng thứ tự có một phần tử nhỏ nhất. Do đó, bằng cách cảm ứng, khi chúng ta mở rộng cây con bằng một gốc mới và cây con anh chị em, chúng ta có ba trường hợp: (1) gốc mới nhỏ hơn cả hai con của nó, vì vậy thuật toán sẽ chấm dứt gốc mới; (2) gốc mới nhỏ hơn một con nhưng không phải gốc khác, thuật toán sẽ không chọn gốc lớn hơn và phải lấy giá trị nhỏ nhất theo định nghĩa; hoặc (3) cả hai đứa trẻ đều nhỏ hơn, nhưng trong trường hợp này, như đã lưu ý, mỗi cây con có ít nhất một mức tối thiểu cục bộ, vì vậy chúng tôi có thể chọn một trong hai.