โครงสร้างข้อมูลสำหรับพา ธ ที่สั้นที่สุด


19

ให้เป็นกราฟที่ไม่ได้บอกทิศทางโดยไม่มีขอบกับจุดยอดและขอบเป็นไปได้หรือไม่ที่จะประมวลผลล่วงหน้าและสร้างโครงสร้างข้อมูลขนาดเพื่อให้สามารถตอบแบบสอบถามในรูปแบบ "ระยะห่างระหว่างและ " ในเวลา O (n)?n m G m p o l y l o g ( n ) u vGnmGmpolylog(n)uv

ปัญหาดูเหมือนพื้นฐานเกินไปที่จะไม่ได้รับการแก้ไข


1
ในการตอบกลับคำพูดสุดท้ายของคุณเกี่ยวกับ“ พื้นฐานเกินไปที่จะไม่ได้รับการแก้ไข”: หากคำตอบต้องตอบในเวลาที่กำหนดแน่นอนว่าเป็นการศึกษาที่ดี แต่ประเด็นคำถามของคุณคือคุณอนุญาตเวลา O (n) สำหรับการสืบค้น (แทนที่จะเป็น O (1) หรือ O (m) เล็กน้อย แม้ว่าฉันคิดว่ามันเป็นคำถามที่น่าสนใจ แต่ฉันไม่คิดว่าคำถามนี้มีความสำคัญพื้นฐาน
Tsuyoshi Ito

1
@TsuyoshiIto - ฉันไม่เห็นว่าทำไมคำถามสูญเสีย "ความสำคัญขั้นพื้นฐาน" หากอนุญาตให้ใช้เวลาแบบสอบถามแบบเส้นตรงคงที่ ตัวอย่างเช่นสมมติว่าฉันสามารถแก้ไขปัญหาข้างต้นด้วยข้อ จำกัด ที่สามารถตอบแบบสอบถามระยะทางในเวลาสำหรับและเวลาประมวลผลมากที่สุด - นี่จะไม่ให้อัลกอริทึมย่อยลูกบาศก์สำหรับการคำนวณเส้นทางที่สั้นที่สุดหรือไม่ โดยส่วนตัวฉันคิดว่านี่เป็นคำถามที่น่าสนใจมาก O(n1ε)ε>0O(n3ε)
Rachit

ฉันไม่รู้ว่ามีวิธีทั่วไปหรือไม่ แต่มีวิธีที่ดีในกราฟ treewidth ที่ถูก จำกัด ขอบเขตให้ดูที่การสืบค้น Path ที่สั้นที่สุดในกราฟ treewidth ที่ล้อมรอบ
Saeed

และถ้าคุณสามารถสร้างแผนผังเส้นทางที่สั้นที่สุด (เริ่มจากแต่ละโหนด) จากนั้นตอบแบบสอบถามเส้นทางที่สั้นที่สุด (โดยรูทที่เกี่ยวข้อง) ในหรือด้วยวิธีที่คล้ายกันคุณสามารถสร้างได้ โครงสร้างข้อมูลที่มีขนาดหน่วยความจำน้อยกว่า m=Ω(n2)O(n)
Saeed

คำตอบ:


9

นี่เป็นคำถามที่น่าสนใจมาก ในระดับสูงคุณกำลังถามว่าใครสามารถประมวลผลกราฟก่อนว่าแบบสอบถามเส้นทางที่สั้นที่สุดจะกลายเป็นอิสระจากความหนาแน่นของกราฟโดยไม่ต้องใช้พื้นที่เพิ่มเติมมาก - น่าสนใจ แต่อย่างที่คุณพูดไม่ได้รับการแก้ไข

หากคุณมีความสุขกับระยะทางโดยประมาณนี่เป็นวิธีการได้รับ -approximation ให้เป็นกราฟแบบไม่ระบุทิศทางด้วย nodes และ edge มันแสดงให้เห็นในกระดาษต่อไปนี้ว่าสำหรับการสอบถามระยะทางโดยประมาณการออกแบบโครงสร้างข้อมูลสำหรับกราฟที่มีขอบนั้นไม่ยากกว่ากราฟที่แต่ละโหนดมีระดับที่ล้อมรอบด้วย :G n m m m / n2Gnmmm/n

R. Agarwal, PB Godfrey, S. Har-Peled, การค้นหาระยะทางโดยประมาณและการกำหนดเส้นทางแบบกระชับในกราฟกระจัดกระจาย, INFOCOM 2011

ดังนั้นสมมติว่าเป็นกราฟที่มีขอบเขต จำกัด -degree ตัวอย่างโหนดสม่ำเสมอ เรียกโหนแลนด์มาร์กเหล่านี้ ในระหว่างขั้นตอนการประมวลผลล่วงหน้าให้จัดเก็บระยะห่างจากแต่ละจุดสังเกตจุดหนึ่งไปยังอีกจุดหนึ่งในกราฟ นี้ต้องใช้พื้นที่ สำหรับแต่ละโหนดเก็บสถานที่สำคัญของโหนดที่อยู่ใกล้(U) นอกจากนี้ยังจัดเก็บกราฟภายในโครงสร้างข้อมูลพูดเป็นรายการ adjacencym / n α = O ( m / n ) O ( m ) u ( u )Gm/nα=O(m/n)O(m)u(u)

เมื่อสอบถามระยะห่างระหว่างและเติบโตลูกรอบทั้งสองโหนด - ลูกของโหนดถูกกำหนดให้เป็นชุดของโหนดที่มีอย่างเคร่งครัดใกล้ชิดกับมากกว่าที่จะโหนสถานที่สำคัญที่อยู่ใกล้มันพูด(w) จะเห็นได้ว่าขนาดของลูกบอลแต่ละลูกคือตามที่คาดหวัง ปล่อย , ที่คือลูกบอลของโหนดและคือชุดของเพื่อนบ้านของโหนดในมึง) สามารถแสดงให้เห็นว่าขนาดของคือตามที่คาดหวังv W W ( W ) O ( n 2 /ม. ) Γ ( U ) = B ( U ) N ( B ( U ) ) B ( U ) U N ( B ( U ) ) B ( U ) Γ ( คุณ) O ( n )uvww(w)O(n2/m)Γ(u)=B(u)N(B(u))B(u)uN(B(u))B(u)Γ(u)O(n)

ตอบแบบสอบถาม: ถ้าให้ส่งคืน ; อื่นถ้า , ส่งคืน ; อื่น ๆ ผลตอบแทนU) มันง่ายที่จะแสดงว่านี่เป็น -approximationนาทีx Γ ( U ) Γ ( V ) { d ( U , x ) + d ( โวลต์, x ) }Γ(u)Γ(v)minxΓ(u)Γ(v){d(u,x)+d(v,x)}d ( u , ( u ) ) + d ( ( u ) , v ) d ( v , ( v ) ) + d ( ( v ) , u ) 2d(u,(u))d(v,(v))d(u,(u))+d((u),v)d(v,(v))+d((v),u)2

ในแง่ของเวลาแบบสอบถามโปรดสังเกตว่าการปลูกลูกต้องใช้เวลาเวลาสำหรับกราฟ -degree; การสร้างและกำหนดให้ลูกบอลต้องใช้เวลา (เนื่องจากเพื่อนบ้านถูกเก็บไว้ในโครงสร้างข้อมูล); และตรวจสอบว่าเป็นที่ว่างเปล่าหรือไม่นอกจากนี้ยังใช้เวลาM / n Γ ( U ) Γ ( วี) O ( n ) Γ ( U ) Γ ( วี) O ( n )O(n)m/nΓ(u)Γ(v)O(n)Γ(u)Γ(v)O(n)

ขอบเขตดังกล่าวอยู่ในความคาดหมาย; ฉันคิดว่ามันเป็นเรื่องง่ายที่จะลดขนาดการก่อสร้าง แต่น่าเสียดายที่เทคนิคนี้ดูเหมือนจะไม่ช่วยให้ได้รับประมาณดีกว่า2มันเป็นคำถามที่น่าสนใจมาก ๆ ....2


เทคนิคข้างต้นไม่ได้ใช้ประโยชน์จากความจริงที่ว่ากราฟอินพุตของคุณไม่มีการถ่วงน้ำหนัก อาจมีบางสิ่งที่น่าสนใจที่คุณสามารถทำได้โดยการใช้ประโยชน์จากความจริงนั้น แต่ฉันไม่สามารถคิดวิธีที่จะดึงระยะทางที่แน่นอน ยกตัวอย่างเช่นมันเป็นไปได้ที่จะลดเวลาในแบบสอบถามไปยังและได้รับระยะล้อมรอบด้วยที่คือระยะทางที่แน่นอนระหว่างและV2 d + 1 d u vO(n2/m)2d+1duv
Rachit

ฉันรู้ว่าฉันไม่เข้าใจว่าทำไมมันถึงเป็นการประมาณ 2 แบบ Thorup-Zwick ในสถานการณ์เดียวกันจะให้ 3 ประมาณ
ilyaraz

@ilyaraz: โปรดทราบว่ารูปแบบ Thorup-Zwick ไม่จำเป็นต้องตรวจสอบ (และด้วยเหตุนี้ให้ตอบแบบสอบถามในเวลาเกือบคงที่) ดูกระดาษที่ฉันกล่าวถึงข้างต้นสำหรับการพิสูจน์ยืด2Γ(u)Γ(v)2
Rachit

4

สิ่งที่คุณต้องการเรียกว่า "ระยะทาง oracle" น่าเสียดายที่ฉันไม่คุ้นเคยกับออราเคิลระยะทางมากนักดังนั้นฉันจึงสามารถอ้างอิงคุณถึงเอกสารน้ำเชื้อได้เนื่องจาก Thorup และ Zwick:

Mikkel Thorup และ Uri Zwick ออราเคิลระยะทางโดยประมาณ STOC '01, 2001

นี่คือข้อความที่ตัดตอนมาจากบทคัดย่อ:

ให้เป็นกราฟถ่วงน้ำหนักแบบไม่กำหนดทิศทางด้วยและm ให้เป็นจำนวนเต็ม เราแสดงให้เห็นว่าสามารถประมวลผลล่วงหน้าได้ในเวลาที่คาดไว้การสร้างโครงสร้างข้อมูลขนาดเช่นนี้ แบบสอบถามทางไกลสามารถตอบได้ประมาณในเวลา ระยะทางโดยประมาณกลับมาเป็นของการยืดที่มากที่สุดคือความฉลาดที่ได้รับโดยการหารระยะทางโดยประมาณโดยระยะทางที่โกหกที่เกิดขึ้นจริงระหว่าง 1 และ1 [... ] ความต้องการพื้นที่ของอัลกอริทึมของเราคือ [... ] เหมาะสมที่สุดG=(V,E)|V|=n|E|=mkG=(V,E)O(kmn1/k)O(kn1+1/k)O(k)2k12k1

ตามผลลัพธ์ของพวกเขาสิ่งที่คุณร้องขอนั้นสามารถทำได้แม้จะเป็นกราฟน้ำหนัก: การเลือกให้ผลพยากรณ์ระยะทางขนาดได้รับในเวลาที่คาดหวังซึ่งสามารถตอบแบบสอบถามเส้นทางที่สั้นที่สุดของคุณด้วย - ยืดเวลา !O ( n 2 ) O ( m n ) 1 O ( 1 )k=1O(n2)O(mn)1O(1)

ออราเคิลระยะทางเป็นสาขาที่ได้รับการวิจัยเป็นอย่างดีดังนั้นคุณจะสามารถขุดต่อไปฉันเชื่อ


2
รุ่นวารสาร: JACM 2005
Tsuyoshi Ito

3
การใช้พื้นที่ทำให้สามารถเก็บตารางค้นหาได้อย่างไร้เดียงสา ดังนั้นบทความนี้ (ซึ่งฉันทราบ) ไม่เกี่ยวข้องที่นี่ O(n2)
ilyaraz

1
ยุติธรรมพอสมควร ผลลัพธ์ใกล้เคียงกับสิ่งที่คุณร้องขอ AFAIK มากที่สุดคือกราฟที่มีค่าองศาโดยเฉลี่ยที่ให้เส้นทางที่ยืดออก 2 ด้วยพื้นที่ในแบบสอบถามเวลา. (R. Agarwal, P. Godfrey และ S. Har-Peled "การค้นหาระยะทางโดยประมาณและการจัดเส้นทางแบบกระชับในกราฟO ( n 3 / 2 ) O ( Θ(logn)O(n3/2)O(n)
กระจาย

ใช้ Bourgain ของการฝังตัวของตัวชี้วัดลงในหนึ่งสามารถเกิดขึ้นกับ oracle มีพื้นที่เวลาแบบสอบถามและความผิดพลาดคูณn) O ( n log 2 n ) O ( log 2 n ) O ( log n )1O(nlog2n)O(log2n)O(logn)
ilyaraz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.