Vấn đề này có thể được giải quyết trong thời gian đa thức bằng cách sử dụng lập trình tuyến tính và điều này thực sự đúng với bất kỳ thứ tự từng phần nào . Bằng cách này, chúng ta có thể chứng minh bằng cách cảm ứng rằng với bất kỳ tập hợp một phần hữu hạn nào , tồn tại một tập hữu hạn và một mệnh đề , sao cho cho tất cả .( S , ≤ ) S ' ⊆ N f : S → S ' s 1 , s 2 ∈ S , s 1 ≤ s 2 ⇔ f ( s 1 ) | f ( s 2 )(S,≤)(S,≤)S′⊆Nf:S→S′s1,s2∈S,s1≤s2⇔f(s1)|f(s2)
Hãy là tập hợp hình thành bởi các chuỗi trong . Nhắc nhở rằng là một chuỗi iff cho tất cả trong , hoặc S CCSC C v ≤ v ′ v ′ ≤ vv,v′Cv≤v′v′≤v
Bây giờ, tạo một biến boolean cho mỗi , và một biến boolean cho mỗi chuỗi . Chúng tôi có thể viết chương trình tuyến tính cho vấn đề của mình:
v ∈ S y C C ( P ) Max Σ v ∈ S x v chịu Σ v ∈ C x v ≤ 1 , ∀ C ∈ Cxvv ∈ SyCC(P)
Max∑v∈Sxvsubject to∑v∈Cxv≤1,∀C∈Cxv∈{0,1},v∈S
và kép của nó :(D)
Min∑C∈CyCsubject to∑C:v∈CyC≥1,∀v∈SyC∈{0,1},C∈C
Sau đó, vấn đề tìm vỏ bọc tối thiểu của một chuỗi được đặt hàng bởi các chuỗi là vấn đề kép của chúng tôi. Định lý của Dilworth nói rằng
Tồn tại một antichain A và một phân vùng của đơn hàng vào một chuỗi P họ, sao cho số chuỗi trong phân vùng bằng với giá trị chính của A
có nghĩa là giải pháp tối ưu của hai vấn đề này khớp nhau:Opt(P)=Opt(D)
Đặt ( resp. ) là sự thư giãn của ( resp. ) tức là cùng một chương trình tuyến tính trong đó tất cả các ràng buộc ( resp. ) được thay thế bằng ( tương ứng ). Đặt và là giải pháp tối ưu của họ. Vì chúng tôi có:
và tính đối ngẫu yếu định lý xác lập rằng( D ∗ ) ( P ) ( D ) x v ∈ { 0 , 1 } y C ∈ { 0 , 1 } x v ∈ [ 0 , 1 ] y C ∈ [ 0 , 1 ] O p t ( P ∗ ) O p t ( D ∗ ) {(P∗) (D∗)(P) (D)xv∈{0,1} yC∈{0,1}xv∈[0,1] yC∈[0,1]Opt(P∗)Opt(D∗)O p t ( P ) ≤ O p t ( P * ) và O p t ( D * ) ≤ O p t ( D ) O p t ( P * ) ≤ O p t ( D * ) O p t ( P ) ={0,1}⊆[0,1]
Opt(P)≤Opt(P∗) and Opt(D∗)≤Opt(D)
Opt(P∗)≤Opt(D∗)sau đó bằng cách đặt mọi thứ lại với nhau, chúng ta có:
Opt(P)=Opt(P∗)=Opt(D∗)=Opt(D)
Sau đó, sử dụng phương pháp Ellipsoid , chúng ta có thể tính ( ) trong thời gian đa thức. Có một số lượng các ràng buộc theo cấp số nhân nhưng tồn tại một tiên đề phân tách thời gian đa thức. Thực tế đã đưa ra giải pháp , chúng tôi có thể liệt kê tất cả các cặp và kiểm tra xem hay , và do đó quyết định trong thời gian đa thức xem có khả thi hay không, nếu không thì ràng buộc liên quan đến chuỗi bị vi phạm.Opt(P∗)=Opt(P)Xs1,s2∈Xs1≤s2s2≤s1X{v1,v2}