Tôi đã không nghĩ điều này qua rất nhiều, vì vậy xin vui lòng sửa cho tôi nếu tôi sai.
Nói là chiều rộng của poset.w
Đối với poset mà là sự kết hợp của chuỗi rời nhau bạn cần ít nhất đánh giá của bằng cách chỉ áp dụng các tiêu chuẩn thấp hơn bị ràng buộc vào sự phức tạp của truy vấn tìm kiếm nhị phân cho mỗi chuỗi.wwlognP
Vì bạn đưa ra so sánh miễn phí, bạn có thể tính toán phân tách chuỗi của poset thành chuỗi miễn phí. Làm tìm kiếm nhị phân trên mỗi chuỗi để xác định các yếu tố đầu tiên mà thỏa mãn . Sau đó đi qua các yếu tố được xác định và loại bỏ bất kỳ yếu tố chi phối. Số lượng đánh giá của là . Điều này xác định tất cả các yếu tố tối đa, vì có thể có nhiều nhất một yếu tố tối đa trên mỗi chuỗi.wPPO(wlogn)
THÊM: Trên thực tế tôi đang thấy một thuật toán đệ quy đơn giản để làm tốt hơn nhiều ( ) cho mạng các tập con 2 [ n ] ( EDIT : domotor mô tả chiến lược chung trong câu trả lời của anh ấy). Ở đây tôi giả sử P là đơn điệu hướng xuống (tức là các tập con { X : P ( X ) = 1 } tạo thành một tập hợp thấp hơn), đó là ý tôi muốn nói. Vì vậy, đây là thuật toán để tìm một thành viên của tập hợp thấp hơn:O(n)2[n]P{X:P(X)=1}
a) Kiểm tra . Nếu 0 thì dừng lại.P(∅)
b) Kiểm tra . P({n})
bi) Nếu 0, sau đó lặp lại trên (OK, vì không có tập hợp nào chứa có thể nằm trong tập thấp hơn).2[n−1]n
b.ii) Nếu 1, thì tồn tại một thành viên của tập hợp thấp hơn trong mạng con . Mạng con này là đẳng cấu đến nên một lần nữa chúng ta có thể lặp lại. Chính xác hơn, chúng ta có thể chạy thuật toán cho , nhưng khi thuật toán yêu cầu đánh giá , chúng ta đánh giá trong đó .{X:n∈X}2[n−1]2[n−1]P(Y)P(X)X=Y∪{n}
Vì vậy, trong mỗi bước, chúng tôi lặp lại trên một phân lớp có kích thước bằng một nửa so với ban đầu. Nhìn chung, chúng ta cần đánh giá tối đa lần (thực tế bạn có thể thực hiện thuật toán để đánh giá vị từ lần như Yoshio chỉ ra, vì bạn chỉ cần kiểm tra một lần).2 n n + 1 ∅P2nn+1∅