การแก้ไข : เพิ่มเลมมาส 2 และ 3
นี่คือคำตอบบางส่วน: คุณสามารถเข้าถึงตำแหน่งN
- ในเคลื่อนที่โดยใช้ช่องว่างN O ( ϵ ( N ) )โดยที่ϵ ( N ) = 1 / √NNO(ϵ(N)) N (บทแทรก 1)ϵ(N)=1/logN−−−−−√
- ในย้ายใช้พื้นที่O ( log N ) (สำหรับค่าคงที่ใด ๆδ > 0 ) (บทแทรก 2)N1+δO(logN)δ>0
นอกจากนี้เราร่างขอบเขตล่าง (เลมม่า 3): สำหรับคลาสที่เรียกว่าโซลูชันที่มีพฤติกรรมดีเลมม่า 1 นั้นแน่น (ขึ้นอยู่กับปัจจัยคงที่ในเลขชี้กำลัง) และไม่มีวิธีแก้ปัญหาดังกล่าวโดยใช้พื้นที่โพลีล็อก ตำแหน่งในเวลาO ( NN )O(NpolylogN)
บทแทรก 1. สำหรับทุกก็เป็นไปได้ที่จะไปถึงตำแหน่งที่nในnย้ายใช้พื้นที่ประสบการณ์( O ( √nnnexp(O(logn−−−−√)) = nO(1/logn√)
พิสูจน์ รูปแบบซ้ำแล้วซ้ำอีกดังแสดงในรูปด้านล่าง เราใช้สัญกรณ์ต่อไปนี้:
- คือจำนวนระดับในการเรียกซ้ำk
- เป็นคำตอบที่เกิดขึ้น (โดยมีระดับการเรียกซ้ำ k )P(k)k
- คือตำแหน่งสูงสุดที่มาถึงโดย P ( k ) (ณ เวลา N ( k ) )N(k)P(k)N(k)
- เป็นพื้นที่ที่ใช้โดย P ( k )S(k)P(k)
- คือจำนวนชั้นที่ใช้โดย P ( k )ดังที่แสดงด้านล่าง:L(k)P(k)
ในภาพเวลาที่ได้จากบนลงล่าง โซลูชันไม่หยุดในเวลาN ( k )แทน (สำหรับใช้ในการเรียกซ้ำ) มันจะดำเนินต่อไปจนถึงเวลา2P(k)N(k)กลับการเคลื่อนไหวของมันอย่างแน่นอนเพื่อกลับไปที่กรวดเดียวในเวลา 22N(k) )2N(k)
เส้นทึบแนวตั้งพาร์ทิชันชั้นของP ( k ) ในภาพL ( k )คือห้าดังนั้นP ( k )ประกอบด้วย 5 ชั้น แต่ละชั้นL ( k )ของP ( k ) (ยกเว้นด้านขวาสุด) มีสองปัญหาย่อยหนึ่งรายการที่ด้านบนสุดของชั้นและอีกหนึ่งที่ด้านล่างเชื่อมต่อกันด้วยเส้นแนวตั้งที่เป็นของแข็ง (แทนกรวดที่มีอยู่สำหรับ ช่วงเวลานั้น) ในภาพมีห้าชั้นดังนั้นจึงมีเก้าปัญหาย่อย โดยทั่วไปP (L(k)P(k)L(k)P(k)L(k)P(k)ประกอบด้วย 2P(k)ปัญหาย่อย subproblem ของแต่ละ P ( k )มีทางออก P ( k - 1 )2L(k)−1P(k)P(k−1)
การสังเกตที่สำคัญสำหรับการ จำกัด พื้นที่คือ ณ เวลาใด ๆ เพียงสองชั้นเท่านั้นที่มีปัญหาย่อย "ใช้งานอยู่" ส่วนที่เหลือมีเพียงก้อนเดียวเท่านั้นที่เรามี
- และS(k)≤L(k)+2S(k−1)
- N(k)=L(k)⋅N(k−1)
ตอนนี้เราเลือกเพื่อตรวจสอบอย่างเต็มที่P ( k ) ฉันไม่แน่ใจว่าทางเลือกนี้จะดีที่สุด แต่ดูเหมือนว่าใกล้: Take L ( k ) = 2 k จากนั้นการเกิดซ้ำดังกล่าวข้างต้นให้L(k)P(k)L(k)=2k
- และS(k)≤k⋅2k
- N(k)=2k(k+1)/2
ดังนั้นการแก้สำหรับเรามีk ≈ √n=N(k)
และS(k)≈ √k≈2logn−−−−−√) S(k)≈2logn−−−−−√22logn√=exp(O(logn−−−−√))
นี้จะดูแลทุกตำแหน่งในชุด{ N ( k ) : k ∈ { 1 , 2 , ... } } สำหรับพลn , ตัดด้านล่างของวิธีการแก้P ( k )สำหรับที่เล็กที่สุดkกับN ( k ) ≥ n ขอบเขตที่ต้องการเก็บไว้เนื่องจากS ( k ) / S ( k - 1 ) = O (n{N(k):k∈{1,2,…}}nP(k)kN(k)≥n ) QEDS(k)/S(k−1)=O(1)
บทแทรก 2. สำหรับท่านใดสำหรับทุกnก็เป็นไปได้ที่จะไปถึงตำแหน่งที่nในn 1 + δย้ายใช้พื้นที่O ( δ 2 1 / δ log n )δ>0nnn1+δO(δ21/δlogn).
พิสูจน์ ดัดแปลงสิ่งก่อสร้างจากหลักฐานของ Lemma 1 เพื่อชะลอการเริ่มต้นแต่ละ subproblem จนกว่า subproblem ก่อนหน้านี้จะเสร็จสิ้นดังที่แสดงด้านล่าง:
ให้แทนเวลาสำหรับการแก้ไขP ( k )เพื่อให้เสร็จ ตอนนี้ในแต่ละขั้นตอนมีเพียงหนึ่งเลเยอร์เท่านั้นที่มีปัญหาย่อยที่ให้การสนับสนุนมากกว่าหนึ่งเพบเบิลT(k)P(k)
- ,S(k)≤L(k)+S(k−1)
- ,N(k)=L(k)⋅N(k−1)
- )T(k)=(2L(k)−1)⋅T(k−1)≤2L(k)⋅T(k−1)≤2kN(k)
เลือกเราได้L(k)=21/δ
- ,S(k)≤k21/δ
- ,N(k)=2k/δ
- )T(k)≤2kN(k)
การแก้หาและT = T ( k )ในรูปของn = N ( k )เรามีk = δ log nและS=S(k)T=T(k)n=N(k)k=δlogn
- และS≤δ21/δlogn
- δ T≤n1+δ
นี้จะดูแลทุกตำแหน่งในชุด{ N ( k ) : k ∈ { 1 , 2 , ... } } สำหรับพลn , ตัดด้านล่างของวิธีการแก้P ( k )สำหรับที่เล็กที่สุดkกับN ( k ) ≥ n ขอบเขตที่ต้องการเก็บไว้เนื่องจากS ( k ) / S ( k - 1 ) = O (n{N(k):k∈{1,2,…}}nP(k)kN(k)≥n ) QEDS(k)/S(k−1)=O(1)
nP(n)nk≤n/2kP(N−k)k+1,k+2,…,nP(k)1,2,…,kkV(n)nδ=1>0
V(n)≥mink<nV(n−k)+max(n/2,(1+δ)V(k)).
n
ϵ(n)=1/logn−−−−√
δ>0V(n)≥n1+Ω(ϵ(n))
ntn1+Ω(ϵ(n))/t
- เลมม่า 1 แน่นถึงปัจจัยคงที่ในเลขชี้กำลัง (สำหรับการแก้ปัญหาอย่างดี)
- nnpolylognpolylognnΩ(ϵ(n))=exp(Ω(logn−−−−√))⊈polylogn
2V(n)≥f(n)f(n)=n1+cϵ(n)c.nc>02V(n)≥f(n)nV(n)≥n
nf(n)≤mink<nf(n−k)+max(n,2f(k))f(n)−f(n−k)≤max(n,(1+δ)f(k))k<n.
ff(n)−f(n−k)≤kf′(n)kf′(n)≤max(n,(1+δ)f(k)).
f(n)/n=eclogn√f′(n)=(f(n)/n)(1+c/(2logn−−−−√)),x=logk−−−−√y=logn−−−−√yx≤yecy(1+c/(2y))≤max(ey2−x2,(1+δ)ecx)1+z≤ezez≤1+2zz≤1ecy+c/(2y)≤max(ey2−x2,e2δ+cx),
cy+c/(2y)≤max(y2−x2,2δ+cx).
y≤x+0.1δ/ccy+c/(2y)≤cx+0.2δyy≥x+0.1δ/cy2−x2≥0.1yδ/cy
cy+c/(2y)≤0.1yδ/c.
cy.