ถ้าจากนั้นเราก็รู้ว่าเซตไม่ใช่ antichain โดยบทแทรกของ Sperner และอื่น ๆ เวอร์ชันการตัดสินใจของปัญหากลายเป็นเรื่องเล็กน้อย แต่มันอาจน่าสนใจที่จะพิจารณากรณีที่ใกล้เคียงกับค่านั้น nn>(dd/2)≈2dπd/2√n
ทำงาน Friedgut บนแอร์ดิช-Ko-Rado ทฤษฎีบทที่แสดงให้เห็นว่าได้รับเวกเตอร์ลักษณะครอบครัวย่อยของหนึ่งสามารถหาได้ในเวลาไม่ว่าจะเป็นเป็นครอบครัวตัด (ทุกสององค์ประกอบของตัด). โดยทั่วไปวิธีการของเขาทำให้เราสามารถคำนวณ
ที่เป็นฟังก์ชันที่รู้จัก (เฉพาะ) ซึ่งไม่ใช่ - ศูนย์เฉพาะถ้าเป็น disjoint ขึ้นอยู่กับ histogram ของที่เป็นตัวบ่งชี้สำหรับx[ m ] O ( m 2 m ) f f Σ = ∑ x , y ∈ f S ( x , y ) , S ( x , y ) ≥ 0 x , y S ( x , y ) { ( x i , y i ) : i ∈ [ d ] } x if[m]O(m2m)ff
Σ=∑x,y∈fS(x,y),
S(x,y)≥0x,yS(x,y){(xi,yi):i∈[d]}xii∈x
(ในฐานะที่เป็นกันเราแสดงความคิดเห็นว่าวิธีการของเขายังทำงานถ้าเราจะได้รับทั้งสองครอบครัวและมีความสนใจใน . ใน ทั้งสองกรณีเราจำเป็นต้องคำนวณการแปลงฟูริเยร์ - วอลช์ skewed ของสำหรับพลแล้วโดยที่ขึ้นอยู่กับน้ำหนัก Hamming ของ .)Σ = Σ x ∈ F , Y ∈ กรัม S ( x , Y ) พีเอฟ, จีพี∈ ( 0 , 1 / 2 ) Σ = Σ x T ( x ) F ( x ) กรัม ( x ) T ( x ) xf,gΣ=∑x∈f,y∈gS(x,y)pf,gp∈(0,1/2)Σ=∑xT(x)f^(x)g^(x)T(x)x
ทั้งหมดนี้เกี่ยวข้องกับปัญหาที่เกิดขึ้นอย่างไร? พิจารณาครอบครัว
ทุกมี disjoint จากทุก\} ตั้งแต่จะได้รับอย่างชัดเจนเราสามารถคำนวณผลงานของคู่เหล่านี้ไป\มีคู่ที่แยกจากกันมากขึ้นอีกไหม? หากมี disjoint จากแล้วและอื่นS_j ดังนั้นจึงเป็นแอนติเจน iff
S i ∪ { x } ¯ S i ∪ { y } S ( x , y ) Σ S i ∪ { x } ¯ S
F={Si∪{x}:i∈[n]}∪{Si¯¯¯¯¯∪{y}:i∈[n]}.
Si∪{x}Si¯¯¯¯¯∪{y}S(x,y)ΣSi∪{x}SiSj¯¯¯¯¯∪{y}Si∩Sj¯¯¯¯¯=∅Si⊆SjS1,…,SnΣ=∑i=1nS(Si∪{x},Si¯¯¯¯¯∪{y}).
อัลกอริทึมนี้วิ่งในเวลาปัจจัยพหุนามในละเลยdเมื่ออยู่ใกล้กับนี้เป็นอย่างดีกว่า2) โดยทั่วไปเราได้รับการปรับปรุงตราบเท่าที่2})O~(n+2d)dn2dO~(n2)n=ω(2d/2)
เนื่องจากเราทราบว่ามีคู่ที่น่าพอใจมีอยู่เราจะหาได้อย่างไร สมมติว่าเราแบ่งชุดออกเป็นสองกลุ่มโดยการสุ่ม ด้วยความน่าจะเป็นประมาณเซตและจะพบว่าตัวเองอยู่ในกลุ่มเดียวกัน หากเราโชคดีเราสามารถใช้อัลกอริทึมของเราในและค้นหาว่าสิ่งใดเป็นของเหล่านี้และลดจำนวนชุดที่เราต้องพิจารณาลงครึ่งหนึ่ง ถ้าไม่เราสามารถลองอีกครั้ง นี้แสดงให้เห็นว่ามีจำนวนที่คาดหวังของโทร oracle กับรุ่นตัดสินใจเราจริงสามารถหาคู่ที่น่าพอใจS_jSi⊆SjS1,…,SnG1,G21/2SiSjG1G2O(logn)Si⊆Sj
นอกจากนี้เรายังสามารถสุ่มอัลกอริทึม โดยไม่สูญเสียของทั่วไปเช่นสมมติว่า k ในแต่ละขั้นตอนเราแบ่งพาร์ติชันตามแต่ละบิตหนึ่งในพาร์ติชันเหล่านี้จะใส่และในส่วนเดียวกันเสมอยกเว้นว่าพวกเขามีขั้วตรงข้าม เราสามารถทดสอบสิ่งนี้ได้อย่างชัดเจนโดยใช้การดำเนินการเท่านั้น นี่เป็นอัลกอริธึมที่กำหนดไว้ล่วงหน้าโดยใช้ oracle เรียกไปยังเวอร์ชันการตัดสินใจn=2kkxyO(nd)O(log2n)