โครงสร้างข้อมูลสำหรับเคียวรีผลิตภัณฑ์จุดต่ำสุด


19

Rn⟨⋅,⋅⟩mv1,v2,…,vmx∈Rnต่ำสุดฉัน ⟨ x , v ฉัน ⟩ mini⟨x,vi⟩O ( n m )O(nm) n = 2 n=2O ( บันทึก2 m )O(log2m)

สิ่งเดียวที่ฉันสามารถทำได้คือ มันเป็นผลที่ตามมาทันทีของจอห์นสัน - Lindenstrauss บทแทรกที่ทุก ๆε > 0ε>0และการกระจายDDบนR nRnมีการทำแผนที่เชิงเส้นf : R n → R O ( บันทึกm )f:Rn→RO(logm) (ซึ่งสามารถประเมินได้ในเวลาO ( n log m )O(nlogm) ) เช่นนั้นP r x ∼ D [ ∀ i⟨ x , วีฉัน ⟩ - ε ( ‖ x ‖ + ‖ วีฉัน ‖ ) 2 ≤ ⟨ F ( x ) , F ( วีฉัน ) ⟩ ≤ ⟨ x , วีฉัน ⟩ + ε ( ‖ x ‖ + ‖ วีฉัน ‖ ) 2 ] ≥ 1 - εPrx∼D[∀i⟨x,vi⟩−ε(∥x∥+∥vi∥)2≤⟨f(x),f(vi)⟩≤⟨x,vi⟩+ε(∥x∥+∥vi∥)2]≥1−ε\ ดังนั้นในเวลาO ( ( n + m ) บันทึกm )O((n+m)logm)เราสามารถคำนวณได้สิ่งที่อยู่ในความรู้สึกใกล้กับmini⟨x,vi⟩mini⟨x,vi⟩สำหรับส่วนใหญ่ของxx (อย่างน้อยถ้าบรรทัดฐาน‖x‖∥x∥และ‖vi‖∥vi∥มีขนาดเล็ก)

UPDขอบเขตที่กล่าวถึงข้างต้นสามารถเพิ่มความคมชัดให้กับเวลาO(n+m)O(n+m)หากเราใช้การแปลงค่าตามพื้นที่ แม่นยำมากขึ้นเราเลือกk:=O(1ε2)k:=O(1ε2)เวกเตอร์เสียนอิสระr1,r2,…,rkr1,r2,…,rkr_k จากนั้นเราแมปRnRnถึง{0,1}k{0,1}kดังนี้: วี↦ ( ⟨ R 1 , วี⟩ ≥ 0 , ⟨ R 2 , วี⟩ ≥ 0 , ... , ⟨ R k , วี⟩ ≥ 0 )v↦(⟨r1,v⟩≥0,⟨r2,v⟩≥0,…,⟨rk,v⟩≥0)0) จากนั้นเราสามารถประมาณมุมระหว่างเวกเตอร์สองตัวภายในข้อผิดพลาดการเติมεεโดยการคำนวณℓ 1ℓ1ระยะทางในภาพของการทำแผนที่นี้ ดังนั้นเราสามารถประมาณผลิตภัณฑ์ดอทภายในข้อผิดพลาดของสารเติมแต่งε ‖ x ‖ ‖ วีฉัน ‖ε∥x∥∥vi∥ในO ( 1)ε 2 )O(1ε2)เวลา



ฉันไม่แน่ใจว่าสิ่งนี้ใช้งานได้หรือไม่ แต่เป็นปัญหาของคุณ (หลังจากเปลี่ยนเครื่องหมายของ v_i เพื่อแปลงเป็นขนาดสูงสุด) ดูเหมือนว่าไดอะแกรม Voronoi อาจเป็นไปได้ในการปรับเปลี่ยนอัลกอริทึมสำหรับไดอะแกรม Voronoi กับปัญหานี้ แต่ถึงแม้ว่ามันจะเป็นไปได้มันอาจจะมีประโยชน์สำหรับ n ขนาดเล็กเท่านั้น
— Tsuyoshi Ito

ฉันไม่รู้ว่านี่เป็นการสังเกตแบบเดียวกันหรือไม่ ... xทั้งหมดxxสามารถทำให้เป็นเวกเตอร์หน่วยได้และไม่เปลี่ยนผลลัพธ์เราสามารถทำทุกอย่างในหน่วย n-cube ที่มีศูนย์กลางอยู่ที่จุดกำเนิด ค้นหาว่าภูมิภาคใดของคิวบ์ลดขนาดผลิตภัณฑ์ดอทด้วยv ฉันviสำหรับแต่ละผมi (แต่ละภูมิภาคจะต้องเป็นโพลีท็อป) ฉันไม่มีข้อผูกมัดกับจำนวนโพลิปท็อป ถ้ามันน้อยกว่าเลขชี้กำลังเป็นไม่มnmคุณมีสิ่งที่ดีกว่าO ( n m )O(nm)โดยทำเคียวรีตำแหน่งจุด n มิติ
— Chao Xu

พารามิเตอร์ใดที่คุณสนใจอีก โดยปกติถ้าคุณต้องการให้ sublinear เป็น m คุณจะเริ่มได้รับเลขชี้กำลังเป็น n
— Suresh Venkat

@Suresh มันจะดีที่จะเข้าใจการแลกเปลี่ยนที่เป็นไปได้ที่แตกต่างกัน เวอร์ชั่นโดยประมาณก็น่าสนใจเช่นกัน
— ilyaraz

บันทึกย่อ: สำหรับกรณี n = 2 การค้นหาแบบไบนารีบนฮัลล์นูนให้เวลาเคียวรีO ( บันทึกn )O(logn)
— Geoffrey Irving

คำตอบ:


16

พิจารณากรณีพิเศษที่คุณเพียงแค่ต้องการตรวจสอบว่าเวกเตอร์แบบสอบถามของคุณเป็นมุมฉากกับเวกเตอร์บางส่วนในคอลเลกชันของคุณที่ประมวลผลแล้ว (นั่นคือคุณต้องการพิจารณาว่าซึ่งเวกเตอร์ที่อยู่ภายใต้การสนทนามีค่าสัมประสิทธิ์ที่ไม่เป็นลบ) กรณีนี้น่าสนใจมากmini⟨x,vi⟩=0mini⟨x,vi⟩=0

สมมติว่าคุณสามารถตอบคำถามในเวลาเวลาสำหรับโดยประมวลผลล่วงหน้า ( องศาของพหุนามไม่ควรขึ้นอยู่กับหรือหรือ )nO(1)m1−δnO(1)m1−δδ>0δ>0mO(1)nO(1)mO(1)nO(1)mmnnδδ

ในบทความ "อัลกอริธึมใหม่สำหรับความพึงพอใจสูงสุด 2 ข้อ จำกัด และความหมาย" ฉันสังเกตว่าโครงสร้างข้อมูลดังกล่าวจะช่วยให้คุณแก้ปัญหา CNF-SAT ได้ในเวลาสำหรับ , โดยที่คือจำนวนของตัวแปร นี้จะลบล้าง "Strong ชี้แจงเวลาสมมติฐาน" ที่ K-SAT ต้องใช้หลักเวลาสำหรับมากมายk2αv2αvα<1α<1vv2n2nkk

เพื่อดูว่าทำไมสมมติว่าเวลา preprocessing มีขอบเขตโดยค พิจารณาสูตร CNFกับตัวแปรและข้อ เราแบ่งชุดของตัวแปรออกเป็นสองส่วนและของขนาดและตามลำดับ แสดงรายการการมอบหมายที่เป็นไปได้ทั้งหมดให้กับตัวแปรในชิ้นส่วน (รับและมอบหมายตามลำดับ) เชื่อมโยงแต่ละส่วนที่ได้รับมอบหมายบางส่วนกับเวกเตอร์ bitโดยที่ iff the(nm)c(nm)cF V n P 1 P 2โวลต์( 1 - 1 / ( 2 ค) ) V / ( 2 ค) 2 โวลต์( 1 - 1 / ( 2 ค) ) 2 V / ( 2 ค)ฉัน n W ฉันW ฉัน [ j ] = 1 jFvnP1P2v(1−1/(2c))v/(2c)2v(1−1/(2c))2v/(2c)Ainwiwi[j]=1jประโยคที่ห้าของไม่พอใจโดยดังนั้นเราจึงมีสองรายการของเวกเตอร์บิตจำนวนมากชี้แจงF A iFAi

ขอให้สังเกตว่าคือพอใจ IFF มีเวกเตอร์จากที่ได้รับมอบหมายในและเวกเตอร์จากที่ได้รับมอบหมายในดังกล่าวว่า0F w 1 P 1 w 2 P 2 ⟨ w 1 , w 2 ⟩ = 0Fw1P1w2P2⟨w1,w2⟩=0

ตอนนี้ให้และ preprocess โครงสร้างข้อมูลสันนิษฐานกับเวกเตอร์ทั้งหมดจากส่วนP_2สิ่งนี้ใช้เวลาตามสมมติฐาน เรียกใช้อัลกอริทึมการค้นหาบนเวกเตอร์ทั้งหมดจากผู้ที่ได้รับมอบหมายในส่วนP_1โดยสมมติฐานนี้ใช้เวลา(2C)} Let(2C)m = 2 v / ( 2 c ) P 2 n 2 v / 2 P 1 2 v ( 1 - 1 / ( 2 c ) ) ⋅ n O ( 1 ) m 1 - δ = n O ( 1 ) 2 v - δ v / ( 2 c ) α = 1 - δm=2v/(2c)P2n2v/2P12v(1−1/(2c))⋅nO(1)m1−δ=nO(1)2v−δv/(2c)/ ( 2 c )α=1−δ/(2c)

บางทีอาจเป็นไปได้ที่จะได้รับการประมวลผลล่วงหน้าที่มีประสิทธิภาพและเวลาสอบถามด้วยเทคนิคที่มีอยู่ อัลกอริทึม CNF-SAT ที่รู้จักกันดีที่สุดไม่ได้ตัดทอนมันออกไป (พวกมันได้อะไร ) แต่การคำนวณนั้นแรงกว่าเล็กน้อย - ในการตั้งค่านี้มันจะเหมือนกับการแก้ MAX CNF-SATnO(1)m1−1/(loglogm)nO(1)m1−1/(loglogm)2n−n/lognmini⟨x,vi⟩


! น่ากลัว แต่มันก็ไม่ได้ตัดทอนโครงสร้างข้อมูลโดยประมาณเช่นเดียวกับเวลาของแบบสอบถามเช่นO ( m ⋅ p o l y ( log n ) )ซึ่งน่าสนใจเช่นกัน
— ilyaraz

โดยวิธีการที่เราไม่สามารถพูดอะไรบางอย่างเช่น "ถ้ามีแม้กระทั่งโครงสร้างข้อมูลโดยประมาณด้วยเวลาแบบสอบถามที่รวดเร็ว MAX-SAT ก็จะประมาณ"
— ilyaraz

ทำไมความเท่าเทียมกันที่ระบุไว้ในวรรคหนึ่งจึงถืออยู่? ฉันคิดว่าผลิตภัณฑ์ชั้นในสามารถลบได้โดยทั่วไป
— Tsuyoshi Ito

ilyaraz: ใช่แม้โครงสร้างข้อมูลประมาณจะหมายถึง MAX-SAT โดยประมาณ Tsuyoshi: ขอบคุณสำหรับความเข้าใจของคุณ
— Ryan Williams

6

นี่คือแนวคิดหนึ่งสำหรับคำตอบที่แน่นอนฉันสงสัยว่า Chao Xu อาจจะพูดพาดพิงถึง ก่อนอื่นให้สังเกตว่าเราอาจทำให้xเป็นปกติตามที่เจ้าชีทชี้ให้เห็น ตอนนี้พิจารณาไฮเปอร์เพลชั่วโมงปกติไปยังทิศทางที่x เป้าหมายคือการหาจุดที่ใกล้กับไฮเปอร์เพลนนี้มากที่สุด ตามความเป็นคู่สิ่งนี้สอดคล้องกับข้อความค้นหาการถ่ายภาพรังสีในการจัดเรียงของไฮเปอร์เพลนเพื่อค้นหาระนาบที่ใกล้ที่สุด "เหนือ" จุดสอบถาม เนื่องจากสามารถประมวลผลได้ล่วงหน้าความซับซ้อนหลักคือตำแหน่งของจุดและดังนั้นปัญหาของคุณจึงถูกลดลงเป็นความซับซ้อนของการทำตำแหน่งจุดในการจัดเรียงของไฮเปอร์เพลน การใช้การตัดสามารถทำได้ในเวลาO ( บันทึกn )ในn d ช่องว่าง


1
ฉันควรจะกล่าวว่าฉันยังสนใจในเวลา preprocessing ที่เหมาะสมซึ่งไม่ใช่กรณีที่นี่ถ้ามิติมีขนาดใหญ่
— ilyaraz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.