Vấn đề, trình bày lại và khái quát hóa: đưa ra một tập hữu hạn được trang bị với một trật tự một phần ≤ , tìm chuỗi C 1 , C 2 ⊆ S tối đa hóa | C 1 ∪ C 2 | . Câu hỏi đặt ra là về trường hợp S ⊆ R 2 + và ( x , y ) ≤ ( z , w ) ⟺ x ≤ z ∧ y ≤ wS ≤C1,C2⊆S|C1∪C2|S⊆R2+( x , y) ≤ ( z, w ) ⟺ x ≤ z∧ y≤ w .
Ngây thơ, người ta có thể cố gắng tìm chuỗi duy nhất tốt nhất trong , trong đó tốt nhất được đo bằng bao nhiêu giá trị riêng biệt mà các thành phần của chuỗi có. Thật không may, một thành phần có thể truy xuất các bước của thành phần khác, ví dụ: ( ( 0 , 0 ) , ( 0 , 0 ) ) < ( ( 1 , 0 ) , ( 0 , 0 ) ) < ( ( 2 , 0 ) , ( 0 , 0 ) )S2vì vậy khái niệm tốt nhất này không có cấu trúc tối ưu.
((0,0),(0,0))<((1,0),(0,0))<((2,0),(0,0))<((2,0),(1,0)),
Thay vào đó, chúng ta tìm kiếm chuỗi trong tập . Bằng cách yêu cầu các thành phần bằng nhau hoặc không thể so sánh được, chúng tôi ngăn chặn retracing nhưng bây giờ cần phải lập luận rằng một số chuỗi tốt nhất phù hợp với yêu cầu mới.T:={(x,y)∣(x,y)∈S2∧x≮y∧y≮x}
Bổ đề 1 (không rút lại). Hãy là một chuỗi và xác định C 1 : = { x | ( x , y ) ∈ C } và C 2 : = { y | ( x , y ) ∈ C } . Đối với tất cả z ∈ S , chúng ta có z ∈ C 1C⊆TC1:={x∣(x,y)∈C}C2:={y∣(x,y)∈C}z∈S khi và chỉ khi ( z , z )z∈C1∩C2 .(z,z)∈C
Bằng chứng. Hướng if là tầm thường. Trong chỉ khi hướng, cho tất cả , có tồn tại x , y ∈ S như vậy ( x , z ) , ( z , y ) ∈ C . Kể từ khi C là một chuỗi, ( x , z ) ≤ ( z , y ) ∨ ( z , y ) ≤ ( z )z∈ C1∩ C2x , y∈ S( x , z) , ( z, y) ∈ CC( x , z) ≤ (z, y) ∨ ( z, y) ≤ ( x , z) . Giả sử đối xứng đó , trong đó hàm ý rằng x ≤ z ≤ y . Chúng tôi biết bằng cách định nghĩa của T rằng x ≮ z ∧ z ≮ y , vì vậy x = z = y , và ( z , z ) ∈ C( x , z) ≤ (z, y)x ≤ z≤ yTx ≮ z∧ z≮ yx = z= y( z, z) ∈ C .
Bổ đề 2 (tồn tại chuỗi hạn chế tốt nhất). Đối với tất cả các chuỗi , tồn tại một chuỗi C ⊆ T mà C 1 ⊆ { x | ( x , y ) ∈ C } ⊆ C 1 ∪ C 2 và C 2 ⊆ { y | ( x ,C1, C2⊆ SC⊆ TC1⊆ { x ∣ ( x , y) ∈ C} ⊆ C1∪ C2 .C2⊆{y∣(x,y)∈C}⊆C1∪C2
Bằng chứng (sửa đổi). Chúng tôi đưa ra một thuật toán để xây dựng . Để thuận tiện, xác định lính canh ⊥ , ⊤ mà ⊥ < x < ⊤ cho tất cả x ∈ S . Hãy C ' 1 : = C 1 ∪ { ⊤ } và C ' 2 : =C⊥,⊤⊥<x<⊤x∈SC′1:=C1∪{⊤} .C′2:=C2∪{⊤}
Initialize và x : = ⊥ và y : = ⊥ . Một bất biến là x ≮ y ∧ y ≮ x .C:=∅x:=⊥y:=⊥x≮y∧y≮x
Hãy là yếu tố tiếp theo của C 1 , có nghĩa là, x ' : = inf { z | z ∈ C ' 1 ∧ x < z } . Hãy để y ' là yếu tố tiếp theo của C 2 , có nghĩa là, y ' : = inf { w | w ∈ C ' 2 ∧ y < w } .x′C1x′:=inf{z∣z∈C′1∧x<z}y′C2y′: = Inf { w | w ∈ C'2∧y< w }
Nếu , thiết lập ( x , y ) : = ( x ' , y ' ) và đi đến bước 9.x'≮ y'∧ y'≮ x'( x ,y) : = ( x', y')
Nếu , thiết lập ( x , y ) : = ( x ' , x ' ) và đi đến bước 9.y< x'< y'( x ,y) : = ( x', x')
Nếu , bộ x : = x ' và đi đến bước 9. Lưu ý rằng x < x ' ∧ x ≮ yy≮ x'< y'x : = x'x < x'∧ x ≮ y ngụ ý rằng .x'≮ y
Nếu , thiết lập ( x , y ) : = ( yx < y'< x' và đi đến bước 9.( x ,y) : = ( y', y')
Nếu , bộ y : = y ' và đi đến bước 9. Lưu ý rằng y < y ' ∧ y ≮ xx ≮ y'< x'y: = y'y< y'∧y≮ x ngụ ý rằng .y'≮ x
Bước này không bao giờ đạt được, vì các điều kiện cho các bước 3 Ném7 là đầy đủ.
Nếu (tương đương, y ≠ ⊤ ), bộ C : = C ∪ { (x ≠ ⊤y≠ ⊤ và đi đến bước 2.C: = C∪ { ( x , y) }
Chương trình động. Đối với tất cả , tính toán D [ x , y ] : = sup ( { D [ z , w ] + [ x ≠ z ] + [ y ≠ w ] - [ x = y ] | ( z , w ) ∈ T ∧ ( z ,( x , y) ∈ T
nơi [ điều kiện ] = 1 nếu điều kiện là đúng và [ điều kiện ] = 0 nếu điều kiện là sai. Theo bổ đề 1, theo sau các biểu thức ngoặc sẽ đếm chính xác số lượng phần tử mới. Theo bổ đề 2, giải pháp tối ưu cho vấn đề ban đầu được tìm thấy.
D [ x , y] : =sup ( { D [ z, w ] + [ x ≠ z] + [ y≠ w ] - [ x = y] ||( z, W ) ∈ T∧ ( z, w ) < ( x , y) }∪ { 2 - [ x = y] } ) ,
[ điều kiện ] = 1tình trạng[ điều kiện ] = 0tình trạng