ความซับซ้อนของฟังก์ชันเลขชี้กำลัง


36

เรารู้ว่าฟังก์ชั่นเอ็กซ์โปแนนเชียลมากกว่าจำนวนธรรมชาติไม่สามารถคำนวณได้ในเวลาพหุนามเพราะขนาดของเอาท์พุทไม่ได้ถูก จำกัด ขนาดแบบพหุนามในขนาดของอินพุตexp(x,y)=xy

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

ความซับซ้อนของบิตกราฟของฟังก์ชันเลขชี้กำลังคืออะไร?

{x,y,ix,y,iN and the i-th bit of xy is 1}

ฉันเปลี่ยนความคิด "EXP" เป็น "L" เนื่องจาก EXP เป็นชื่อของระดับความซับซ้อนที่มีชื่อเสียงและอาจนำไปสู่ความสับสน
MS Dousti

ถ้าจะมีการ จำกัด อำนาจของ 2 แล้วLคือC 0 กราฟของการยกกำลังΓ e x p = { ( x , y , z ) : x y = z }มีความซับซ้อนต่ำ xLAC0Γอีxพี={(x,Y,Z):xY=Z}
Kaveh

3
Sadeq: หากคุณต้องการหลีกเลี่ยงคลาสที่ซับซ้อน L จะไม่ดีไปกว่า EXP ... เปลี่ยนเป็น X.
Peter

@ Peter: ในบริบท L แน่นอนที่สุดคือ "ภาษา" มากกว่าชั้นความซับซ้อนของ Log-space อย่างไรก็ตาม X เป็นตัวเลือกที่ดีกว่ามาก
MS Dousti

@Kaveh: คำถามที่ระบุว่ามันเป็นเรื่องเกี่ยวกับฟังก์ชั่นชี้แจงเกี่ยวกับจำนวนธรรมชาติ
Tsuyoshi Ito

คำตอบ:


17

นี่คือขอบเขตบน

ด้วยการยกกำลังสองซ้ำปัญหานี้อยู่ใน PSPACE

มีขอบเขตบนที่ดีขึ้นเล็กน้อย ปัญหาเป็นกรณีพิเศษของปัญหา BitSLP: กำหนดโปรแกรมแบบเส้นตรงเริ่มต้นจาก 0 และ 1 ด้วยการบวกการลบและการคูณที่แทนจำนวนเต็มNและให้i decide ตัดสินใจว่าi- th bit (นับจาก บิตที่มีนัยสำคัญน้อยที่สุด) ของการแทนค่าไบนารีของNคือ 1 ปัญหาของ BitSLP อยู่ในลำดับชั้นการนับ ( CH ) [ABKM09] (ระบุไว้ใน [ABKM09] ว่าสามารถแสดงได้ว่าปัญหา BitSLP อยู่ใน PH PP PP PP PP )

การเป็นสมาชิกของ CH มักจะถูกพิจารณาว่าเป็นหลักฐานว่าปัญหาไม่น่าจะเป็น PSPACE-hard เพราะความเท่าเทียมกัน CH = PSPACE แสดงถึงว่าลำดับชั้นการนับยุบ อย่างไรก็ตามฉันไม่ทราบว่าหลักฐานนี้มีความแข็งแกร่งเพียงใด

สำหรับความแข็งนั้น BitSLP จะแสดงเป็น # P-hard ในกระดาษเดียวกัน [ABKM09] อย่างไรก็ตามการพิสูจน์ดูเหมือนว่าไม่มีความหมายถึงความแข็งของภาษาXในคำถาม

อ้างอิง

[ABKM09] Eric Allender, Peter Bürgisser, Johan Kjeldgaard-Pedersen และ Peter Bro Miltersen เกี่ยวกับความซับซ้อนของการวิเคราะห์เชิงตัวเลข วารสารคอมพิวเตอร์สยาม , 38 (5): 2530-2549, ม.ค. 2552. http://dx.doi.org/10.1137/070697926


12

ไม่ใช่คำตอบที่สมบูรณ์ แต่อย่างน้อยก็มีบางส่วน

ฉันสังเกตว่าทั้งสองคำตอบที่ปรากฏจนถึงขณะนี้ยังไม่ได้พูดถึงความจริงที่ว่ามีอัลกอริธึมสำหรับการคำนวณเลขชี้กำลังแบบเอกซ์โพเนนเชียลx y mod  zโดยที่nคือจำนวนบิตในzและที่ไหนωเป็นเลขชี้กำลังที่สอดคล้องกับอัลกอริธึมการคูณที่เร็วที่สุด ดังนั้นบิตที่มีนัยสำคัญน้อยกว่าของเลขชี้กำลังสามารถคำนวณได้อย่างมีประสิทธิภาพ (ในO ( n 3 )หรือน้อยกว่า)O(n1+ω)xY พอควร ZnZωO(n3)

วิธีการทำเช่นนี้ค่อนข้างง่าย: คุณสามารถคำนวณ , C 2 = x 2 mod  Z , C J = 2 J - 1 mod  Z เห็นได้ชัดว่าc j = x 2 j mod  zและดังนั้นx yj c y j j mod  zแต่เนื่องจากมีเพียงnเทอมc jสิ่งนี้ใช้เวลาเพียงn1=x2=x2 พอควร ZJ=J-12 พอควร ZJ=x2J พอควร ZxYΠJJYJ พอควร ZnJn คูณ

นอกจากนี้เราสามารถเขียนเป็น( n i = 0 2 i x i ) yดังนั้นบิตที่สำคัญที่สุดซึ่งตรงกับประมาณ2 n yสามารถคำนวณได้อย่างมีประสิทธิภาพเนื่องจากสิ่งเหล่านี้จะขึ้นอยู่กับบิตที่สำคัญที่สุดเท่านั้น ของxxY(Σผม=0n2ผมxผม)Y2nYx

ดังนั้นข้อกำหนดปัญหาจริงเท่านั้นที่เกิดจากบิตต่อศูนย์ของ YxY


1
มีความสัมพันธ์ที่น่าสนใจระหว่างคำตอบนี้กับฉัน ถ้าฉันไม่เข้าใจผิดภาพรวมคร่าวๆของอัลกอริทึมใน[ABKM09 ] ที่อ้างถึงในคำตอบของฉันคือการรวมความคิดนี้เข้ากับทฤษฎีบทส่วนที่เหลือของจีนเพื่อให้ได้บิตที่สูงขึ้น
Tsuyoshi Ito

อาฉันไม่ได้ตระหนักว่า
Joe Fitzsimons

6

[คำตอบนี้อธิบายประเด็นที่น่าสนใจเกี่ยวกับคำตอบของPer Vognsen มันไม่ได้เป็นคำตอบโดยตรงกับคำถามของ OP แต่มันอาจช่วยในการแก้ไขคำถามดังกล่าว]

ผมπผม-1

ผมπSC

SC

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