สนุกกับ Invermann ผกผัน


11

ฟังก์ชัน Ackermann ผกผันเกิดขึ้นบ่อยครั้งเมื่อวิเคราะห์อัลกอริทึม การนำเสนอที่ดีของมันอยู่ที่นี่: http://www.gabrielnivasch.org/fun/inverse-ackermann

α1(n)=[n/2]
α2(n)=[log2n]
α3(n)=logn
. .
...
αk(n)=1+αk(αk1(n))
α(n)=min{k:αk(n)3}

คำถามของฉันคือฟังก์ชั่นคืออะไร เห็นได้ชัด(n) สิ่งที่ขอบเขตที่เข้มงวดมากขึ้นหนึ่งสามารถให้กับk (n) ? เป็นk (n) \ leq \ Log \ alpha (n) ?1 « k ( n ) α ( n ) k ( n ) k ( n ) เข้าสู่ระบบα ( n )

k(n)=min{k:αk(n)k}
1k(n)α(n)k(n)k(n)logα(n)

ฉันรู้ว่าทำไมแต่คุณช่วยอธิบายได้ไหมว่าทำไม ? k ( n ) « α ( n )k(n)α(n)k(n)α(n)
jbapple

ตกลงแก้ไขไปไม่มีปัญหา(n) k(n)<α(n)
Dana Moshkovitz

3
@DanaMoshkovitz: ฉันประมาณคำจำกัดความโดยใช้ลำดับชั้น Ackermann ฉันคุ้นเคยกับ:และ\} พร้อมคำจำกัดความที่เป็นแบบฉบับของฟังก์ชั่น Ackermann,(k) ดังนั้นถ้าแล้วคือk(ฉันหวังว่าฉันไม่ได้ทำผิดพลาดอยู่ในนั้น)k ( n ) = min { k : A k ( k ) n } A k + 1 ( 1 ) = A k ( A k ( 1 ) ) A k ( k ) A k ( kα(n)=min{k:Ak(1)n}k(n)=min{k:Ak(k)n}Ak+1(1)=Ak(Ak(1))Ak(k)A k + 1 ( 1 ) Ak(k)nk ( n ) α ( n)Ak+1(1)nk(n)α(n)1
Sylvain

1
@DanaMoshkovitz: เพื่อชี้แจงฉันใช้และซึ่งเติบโตเร็วกว่าคำนิยามของคุณเล็กน้อยเช่นแทน n มันไม่ควรมีผลลัพธ์มากนัก:และนั้นเหมือนกันมาก A k + 1 ( n ) = A n + 1 k ( 1 ) A 2 ( n ) = 2 n + 1 2 n α ( n ) k ( n )A1(n)=2nAk+1(n)=Akn+1(1)A2(n)=2n+12nα(n)k(n)
Sylvain

1
@DanaMoshkovitz: ผมไม่เห็นว่าทำไม(n) สำหรับค่าจำนวนนับไม่ถ้วนของคุณจะมีเช่นเมื่อใดก็ตามที่ ; เนื่องจากเติบโตอย่างรวดเร็วคุณจึงมีการจัดลำดับดังกล่าวนานขึ้น กับนิยามของคุณมันเป็นไปได้ที่จะมี :จึงแต่ 3 n α ( n ) = k ( n ) A k ( k ) < n A k + 1 ( 1 ) < A k + 1 ( k + 1 ) A k + 1 ( 1) ) - A k ( k ) α ( n )k(n)<α(n)nα(n)=k(n)Ak(k)<nAk+1(1)<Ak+1(k+1)Ak+1(1)Ak(k)α 2 ( 8 ) = 3 > 2 α ( 8 ) = 2 k ( 8 ) = 3α(n)<k(n)α2(8)=3>2α(8)=2k(8)=3
Sylvain

คำตอบ:


12

ให้จะผกผันของ\\ ผมอ้างว่า(x)α k A 1 ( x ) = 2 x , A 2 ( x ) = 2 x , k - 1 ( x ) = A x ( x )AkαkA1(x)=2x,A2(x)=2x,k1(x)=Ax(x)

ตั้งแต่และตั้งแต่ ,x เป็นผลให้xz , α y ( z ) > α x ( z ) α y ( A x ( x ) ) > α x ( A x ( x ) ) = x k ( A x ( x ) ) = xx=αx(Ax(x))z,αy(z)>αx(z)αy(Ax(x))>αx(Ax(x))=xk(Ax(x))=x

ตอนนี้พิจารณาค่าของ ) ตามคำนิยามของαนี้เป็นนาทีZ { α Z ( n ( n ) ) 3 } เรารู้ว่าα n ( A n ( n ) ) = nดังนั้นα ( A n ( n)α(k1(n))=α(An(n))αminz{αz(An(n))3}αn(An(n))=n n ผมอ้างว่า2 (n) ตอนนี้ดังนั้น3 ตั้งแต่,ดังนั้น4 ดังนั้น α n + 2 ( A n ( n ) ) = 1 + α n + 2 ( α n + 1 ( nα(An(n))>nα n + 1 ( A n ( n ) ) = 1 + α n + 1 ( n ) α ( n ) = min z { α z ( n ) 3 } α α ( n ) ( n ) 3 n +α(An(n))n+2αn+1(An(n))=1+αn+1(n)α(n)=minz{αz(n)3}αα(n)(n)3n+1>α(n)αn+1(n)3αn+1(An(n))4 3αn+2(An(n))=1+αn+2(αn+1(n))1+αn+2(4)3

ดังนั้นเรามีดังนั้นkและαจึงเท่ากับn<α(k1(n))n+2kα


9
และขอฉันเพิ่มว่าฟังก์ชั่นทั้งหมดนี้เป็นเพียงวิธีที่ซับซ้อนแตกต่างกันในการเขียนหมายเลข 4
Sariel Har-Peled

0

สิ่งนี้ไม่ถูกต้อง ดูความคิดเห็น

ฟังก์ชั่นอย่างใกล้ชิดกับคนนี้ถูกเรียกว่า " " และใช้ในPettie ของ "Splay ต้นไม้, ดาเวนพอร์-Schinzel ลำดับและ Deque การคาดคะเน"ในการที่เขาแสดงให้เห็นว่า " nการดำเนินงาน deque [ในต้นไม้ที่แผ่ออก] ใช้เวลาเพียงO ( n α ( n ) )เวลาโดยที่α ( n )คือจำนวนการใช้งานขั้นต่ำของการแม็พฟังก์ชัน inverse-Ackermann nกับค่าคงที่ "α* * * *nO(nα(n))α(n)n

ฟังก์ชั่นนี้เป็นเติบโตอย่างช้าและช้ากว่าการเติบโต ) พิจารณาฟังก์ชั่นf : NNlogα(n)f:NN

f(n)={1 n = 02f(n1) n > 0

ฟังก์ชั่นนี้จะประมาณเจริญเติบโตเร็วที่สุดเท่าที่( 4 , n )ดังนั้นการเจริญเติบโตช้ากว่ากว่า' ( n ) = ( n , n ) ตอนนี้ฉันจะประเมินlog α ( n )และα ( n )ในA ( f ( n ) ) :A(4,n)A(n)=A(n,n)logα(n)α(n)A(f(n))

logα(A(f(n)))=logf(n)=f(n1)

α(A(f(n)))=1+α(f(n))<1+α(A(n))<2+α(n)

ตั้งแต่ , เข้าสู่ระบบα ( n )มีการเจริญเติบโตได้เร็วขึ้นมากกว่าα * ( n )f(n1)ω(2+α(n))logα(n)α(n)


ความสัมพันธ์ระหว่าง alpha ^ * และ k (n) คืออะไร (โปรดทราบว่าในคำจำกัดความของ k (n) ฉันใช้สัญกรณ์ alpha_k (n) ที่กำหนดไว้ในลิงก์ที่ฉันมีในคำถาม)
Dana Moshkovitz

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