Tôi sẽ phác thảo ngắn gọn một bản phác thảo của một đối số bất lợi.
Xem xét thuật toán lựa chọn của bạn chơi với đối thủ mà chúng tôi sẽ gọi là đối thủ. Mục đích của đối thủ là cung cấp X đầu vào cho thuật toán của bạn nhằm tối đa hóa số lượng các hoạt động so sánh được thực hiện bởi thuật toán của bạn. Thật vậy, thuật toán của bạn có thể được xem như một cây so sánh, trong đó một đường dẫn tương ứng với một thứ tự từng phần. Khi thuật toán hỏi đối thủ về một cặp( x , y) của các phần tử, thì đối thủ trả vềx < y hoặcy< x . Các câu trả lời bất lợi không bao giờ có thể mâu thuẫn với kết quả trước đó.
Giả thiết rằng k phần tử lớn nhất -thứ là x* : xem xét thứ tự một phần liên quan đến bất kỳ lá của cây so sánh, sau đó x* phải so sánh với tất cả các yếu tố khác để cho các thuật toán được chính xác, do đó các thuật toán phải có thực hiện ít nhất một so sánh ( y, z) ∀ y≠ x* có kết quả là y< z≤ x* hoặcx*≤ z< y . Gọi một so sánhquan trọngnhư vậycho một yếu tốy. Rõ ràng, đối thủ muốn tối đa hóa số lượng so sánh không quan trọng được thực hiện bởi thuật toán của bạn.
Đặt L là tập hợp k - 1 phần tử lớn nhất; nhu cầu thuật toán của bạn để xác định một cách chính xác tất cả các yếu tố trong L và cũng là yếu tố lớn nhất trong X∖ L , tức là x* . Quan sát rằng mỗi phần tử trong X∖ L đã mất ít nhất một so sánh quan trọng. Bây giờ, đối thủ có một chiến lược buộc mỗi k - 1phần tử - 1 trongL phải giành được ít nhất⌈ lgnk - 1⌉so sánh, không có so sánh nào quan trọng đối vớiX∖ L . Thêm các so sánh quan trọng n - k còn lại cho X∖ L bạn có được giới hạn dưới. Để biết chi tiết, xin vui lòng đọc các ghi chú sau, xuất sắc, Jeff Erikson .
crucial comparison for $y$
: sự so sánh nơi hoặc y < z ≤ x * hoặc x * ≤ z < y và x * là yếu tố mục tiêu. Điều gì xảy ra nếu chúng ta không biết mối quan hệ giữa z và x ∗ khi những so sánh này được thực hiện? Chúng ta có một lời sấm truyền ở đây? Hay chúng ta toàn trí với thông tin đầy đủ (thậm chí là thông tin trong tương lai)?