การประมวลผลล่วงหน้าที่เหมาะสมที่สุดสำหรับการสืบค้นบางประเภท


11

สมมติว่าเรามีกึ่งกลุ่มที่มีองค์ประกอบS = { s 1 , s 2 , ... , s n } เป้าหมายของเราคือการคำนวณผลิตภัณฑ์s ฉันs ฉัน+ 1s J(S,)S={s1,s2,...,sn}sผมsผม+1sJ

ในบทความของพวกเขา "การประมวลผลที่เหมาะสมที่สุดสำหรับการตอบแบบสอบถามออนไลน์" Alon และ Schieber พิสูจน์ว่าเราสามารถตอบแต่ละคำถามดังกล่าวได้ในขั้นตอน (โดยที่αเป็นฟังก์ชัน Invermann ผกผัน) โดยใช้จำนวนเชิงเส้นเท่านั้น ของการประมวลผลล่วงหน้าO(α(n))α

ถ้ามันเป็นที่ต้องการว่าแต่ละแบบสอบถามสามารถตอบได้ในO ( เข้าสู่ระบบ( J - ฉัน) )ขั้นตอนหนึ่งสามารถยังคงทำเช่นนี้มีเพียงเส้นตรง preprocessing?sผมsผม+1sJO(เข้าสู่ระบบ(J-ผม))

(คำถามนี้ได้รับแรงบันดาลใจจากคำถามล่าสุดนี้โดย Brendan McKay ที่ Mathoverflow)


1
คุณสามารถเพิ่มลิงก์ไปยังคำถาม MO ได้หรือไม่
Suresh Venkat

1
มีเหตุผลอะไรที่ทำให้มันเป็นเซมิกกรุ๊ปแทนที่จะเป็นกลุ่ม?
Huck Bennett

1
@ ฮัค: ถ้าเป็นกลุ่มการก่อสร้างของนัมในลิงค์ด้านบนจะให้อัลกอริธึมแบบนั้น
Gjergji Zaimi

คำตอบ:


2

สร้างต้นไม้ไบนารีสั่งสมดุลกับในใบ (ตามลำดับ) ในแต่ละโหนดภายในโวเก็บสินค้าของใบของต้นไม้ย่อยที่หยั่งรากลึกในโวลต์ การประมวลผลล่วงหน้านี้เห็นได้ชัดว่าทำงานในเวลา O ( n )และพื้นที่s1,...,snโวลต์โวลต์(n)

ตอนนี้ในการคำนวณผลิตภัณฑ์ (ที่ฉัน< J ) เดินต้นไม้ขึ้นมาจากฉันไปที่บรรพบุรุษร่วมกันอย่างน้อย (LCA) ของฉันและเจ รวบรวมผลิตภัณฑ์ที่เก็บไว้ในเด็กที่ถูกต้องแต่ละคนห้อยออกนอกเส้นทางยกเว้นเด็กที่ถูกต้องของ LCA กล่าวอีกนัยหนึ่งเมื่อคุณขึ้นจากuไปยัง parent vหากuเป็นลูกซ้ายของvแล้วหยิบผลิตภัณฑ์ที่เก็บไว้ในchild ขวาของv ในทำนองเดียวกันเดินขึ้นจากเจsผม...sJผม<JผมผมJยูโวลต์ยูโวลต์โวลต์Jไปที่ LCA และรวบรวมผลิตภัณฑ์ที่เก็บไว้ในเด็กซ้ายที่ห้อยออกจากเส้นทางนั้น คูณทุกผลิตภัณฑ์เหล่านี้พร้อมกับและs ในการสั่งซื้อsผมsJ

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