การสร้างต้นไม้ใหม่จากคิวรีตัวคั่น


18

สมมติว่าเป็นต้นไม้ที่มีค่าคงที่ซึ่งเราไม่รู้โครงสร้าง ปัญหาคือการส่งออกต้นไม้โดยขอให้สอบถามรูปแบบ: "โหนดอยู่บนเส้นทางจากโหนดไปยังโหนดหรือไม่" สมมติว่าแต่ละแบบสอบถามสามารถตอบได้ในเวลาคงที่โดย oracle เรารู้ค่าของ , จำนวนโหนดในทรี โดยมีวัตถุประสงค์เพื่อลดเวลาที่ใช้ในการส่งออกต้นไม้ในแง่ของnt x a b n nTTxabnn

มีอัลกอริทึมสำหรับปัญหาข้างต้นหรือไม่o(n2)

สมมติว่าระดับของโหนดใด ๆ ในมากที่สุด 3T


สิ่งที่ฉันรู้

กรณีเส้นผ่าศูนย์กลาง bounded เป็นเรื่องง่าย ถ้าเส้นผ่านศูนย์กลางของต้นไม้คือเราจะได้อัลกอริธึมหารและพิชิต:D

ต้นไม้ไบนารีใด ๆ ที่มีตัวคั่นที่ดีที่แบ่งต้นไม้เป็นองค์ประกอบที่มีขนาดไม่น้อยกว่า 1 / 3n

  1. เลือกจุดสุดยอดใด ๆ x ถ้าเป็นป้ายคั่นที่ดีนั้นและรับคืน
  2. ค้นหา 3 ประเทศเพื่อนบ้านทั้งหมดของ x
  3. ย้ายไปในทิศทางของเพื่อนบ้านที่มีจำนวนโหนดมากที่สุด ทำซ้ำขั้นตอนที่ 2 กับเพื่อนบ้าน

เนื่องจากการค้นหาตัวคั่นใช้ขั้นตอนมากที่สุดเราจึงได้อัลกอริทึมO ( n D log n )DO(nDlogn)

O(nlog2n)สุ่มอัลกอริทึม (ย้ายจากความคิดเห็นด้านล่าง)

เลือกสองจุดยอด x และ y สุ่ม ด้วยความน่าจะเป็น 1/9 พวกเขาจะนอนอยู่ฝั่งตรงข้ามของตัวคั่น เลือกโหนดกลางของเส้นทางจากไปYดูว่ามันเป็นตัวแยกถ้าไม่ทำการค้นหาแบบไบนารีxy

ใช้เวลาเวลาที่คาดหวังในการค้นหาตัวคั่น ดังนั้นเราจึงได้อัลกอริธึมแบบสุ่มO ( nO(nlogn)O(nlog2n)


พื้นหลัง. ฉันเรียนรู้เกี่ยวกับปัญหานี้จากเพื่อนที่ทำงานในแบบจำลองความน่าจะเป็นแบบกราฟิก ปัญหาข้างต้นนั้นสอดคล้องกับการเรียนรู้โครงสร้างของทางแยกโดยใช้ oracle ซึ่งกำหนดตัวแปรสุ่มสามตัวคือ X, Y และ Z สามารถบอกค่าของข้อมูลร่วมกันระหว่าง X และ Y ให้ค่าของ Z ถ้าค่าใกล้เคียง เป็นศูนย์เราอาจสมมติว่า Z อยู่บนเส้นทางจาก X ถึง Y


7
โปรดเปิดเผยสิ่งที่คุณรู้แล้วเกี่ยวกับปัญหาดังนั้นเราจึงไม่ต้องเสียเวลาในการปรับเปลี่ยนพวงมาลัย
Jeffε

@ Jɛ ff E ฉันได้แก้ไขคำถามของฉัน
Jagadish

คำตอบ:


5

ไม่ได้ กลยุทธ์กลยุทธ์ง่ายๆต่อไปนี้บอกเป็นนัยว่าอัลกอริทึมใด ๆ ในการสร้างทรี node ต้องมีอย่างน้อย "การอยู่ระหว่าง" แบบสอบถาม( n - 1)n(n12)=n(n1)/2

พลป้ายโหนดn-1 ฝ่ายตรงข้ามตอบแบบสอบถามทั้งหมดราวกับว่าต้นไม้เป็นดาวที่มีจุดสุดยอดอยู่ตรงกลาง คิดเป็นเป็นรูทและโหนดอื่น ๆ เป็นลูกของมัน0 00,1,2,,n100

Between?(a,x,b)
    if x=0 return TRUE else return FALSE

ตอนนี้สมมติว่าอัลกอริทึมหยุดทำงานหลังจากทำแบบสอบถามน้อยกว่าแล้วจะต้องมีสองจุดและ , ค่าเท่ากับศูนย์เช่นว่าอัลกอริทึมยังไม่ได้สอบถามการเปลี่ยนแปลงของสามใด ๆZ) หากอัลกอริทึมอ้างว่าต้นไม้ไม่ใช่ดาวฤกษ์ที่มีกึ่งกลางศูนย์ฝ่ายตรงข้ามจะเปิดเผยข้อมูลของตนเพื่อพิสูจน์ว่าอัลกอริทึมนั้นผิด ฝ่ายตรงข้ามเผยให้เห็นว่าเป็นลูกคนเดียวของซึ่งพิสูจน์ว่าอัลกอริทึมผิดอีกครั้งy z ( 0 , y , z ) 0 x yn(n1)/2yz(0,y,z)0xy

อัปเดต:อ๊ะเพิ่งสังเกตเห็นข้อ จำกัด การศึกษาระดับปริญญา โชคดีที่นี่ไม่ใช่สิ่งกีดขวางที่สำคัญ แทนที่โหนดด้วยต้นไม้ไบนารีที่คุณชื่นชอบด้วยโหนดอื่น ๆที่เหลืออยู่ในลำดับที่ไม่รู้จักและจากนั้นเปิดเผยทรีย่อยนี้ไปยังอัลกอริทึมการสร้างใหม่ การสร้างโหนดต้นไม้ไบนารีผลลัพธ์ -node ยังคงต้องการการสืบค้นอย่างน้อยเท่าฟื้นฟู -node ต้นไม้ไบนารีต้องมีอย่างน้อยคำสั่ง (ฉันแน่ใจว่าการก่อสร้างที่ลึกซึ้งยิ่งขึ้นจะช่วยปรับปรุงค่าคงที่)n - 1 ( 2 n - 3 ) n ( n - 1 ) / 2 m ( m + 3 ) ( m + 2 ) / 80n1(2n3)n(n1)/2m(m+3)(m+2)/8 เมื่อจากาดิชชี้ให้เห็นลักษณะทั่วไปนี้ไม่ได้ผล แบบสอบถามเกี่ยวกับโหนดภายในในต้นไม้กำหนดลำดับบนใบซึ่งจะลดจำนวนของแบบสอบถามที่จำเป็น


คำถามของฉันเกี่ยวกับต้นไม้คงที่ อาร์กิวเมนต์นี้ใช้ไม่ได้กับกรณีนั้นใช่ไหม
Jagadish

2
@ จากาดิช: (1) ฉันไม่คิดว่าการพิสูจน์ขอบเขตล่างนี้ใช้ได้กับอัลกอริธึมแบบสุ่ม ฝ่ายตรงข้ามยังสามารถสร้างตัวอย่างที่ล้มเหลว แต่นั่นไม่ขัดแย้งกับสมมติฐานที่ว่าอัลกอริทึมแบบสุ่มทำงานได้อย่างถูกต้องกับความน่าจะเป็นสูง (2) โดยวิธีดูเหมือนว่าคุณถามคำถามรู้คำตอบ สิ่งที่คุณทำเพื่อ?
Tsuyoshi Ito

2
ฉันเห็น. ขอบคุณสำหรับคำอธิบายและขอขอบคุณสำหรับการแก้ไขคำถาม!
Tsuyoshi Ito

4
หากคุณมีอัลกอริทึมแบบสุ่มแสดงว่าคุณมีอัลกอริทึม การกำหนดเกินจริง
Jeffε

1
ปัญหานี้ทำให้ฉันนึกถึงการเรียง / จับคู่ถั่วและสลักเกลียว อัลกอริทึมแบบสุ่มที่ทำงานในเวลามีความน่าจะเป็นสูงนั้นง่าย - มันเป็นเพียงแค่การสุ่มอย่างรวดเร็ว มีอัลกอริทึมกำหนดไว้ล่วงหน้าแต่อัลกอริธึมเป็นเรื่องที่ไม่สำคัญมาก O ( n log n )O(nlogn)O(nlogn)
Jeffε

5

Anindya Sen และฉันมีกระดาษใน ALT '13 ที่เราให้อัลกอริทึมสำหรับปัญหานี้ เราไม่ทราบว่าอัลกอริทึมที่ดีกว่านั้นเป็นไปได้หรือไม่O~(nn)

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