มีฟังก์ชั่นที่มีอยู่ด้วยคุณสมบัติผลรวมโดยตรงต่อไปนี้หรือไม่?


15

คำถามนี้สามารถถามได้ทั้งในกรอบความซับซ้อนของวงจรของวงจรบูลีนหรือในกรอบของทฤษฎีความซับซ้อนเชิงพีชคณิตหรืออาจอยู่ในการตั้งค่าอื่น ๆ มากมาย มันง่ายที่จะแสดงด้วยการนับการโต้แย้งว่ามีฟังก์ชั่นบูลีนในอินพุต N ที่ต้องการประตูจำนวนมากแทน (แม้ว่าแน่นอนว่าเราไม่มีตัวอย่างที่ชัดเจน) สมมติว่าฉันต้องการประเมินฟังก์ชั่นเดียวกัน M ครั้งสำหรับจำนวนเต็ม M บางตัวใน M ของชุดอินพุตที่แตกต่างกันดังนั้นจำนวนอินพุตทั้งหมดคือ MN นั่นก็คือเราเพียงต้องการที่จะประเมินสำหรับฟังก์ชั่นเดียวกันที่ในแต่ละครั้งf(x1,1,...,x1,N),f(x2,1,...,x2,N),...,f(xM,1,...,xM,N)f

คำถามคือ: เป็นที่ทราบกันหรือไม่ว่ามีลำดับของฟังก์ชัน (หนึ่งฟังก์ชันสำหรับแต่ละ N) เช่นนั้นสำหรับ N ใด ๆ สำหรับ M ใด ๆ จำนวนประตูทั้งหมดที่ต้องการนั้นอย่างน้อยเท่ากับ M คูณฟังก์ชันเลขชี้กำลังของ N? อาร์กิวเมนต์การนับอย่างง่ายดูเหมือนจะไม่ทำงานเนื่องจากเราต้องการให้ผลลัพธ์นี้เก็บไว้สำหรับ M. One ทุกคนสามารถเกิดขึ้นได้กับ analogues ที่เรียบง่ายของคำถามนี้ในทฤษฎีความซับซ้อนเชิงพีชคณิตและด้านอื่น ๆf

คำตอบ:


13

นั่นเป็นเท็จ: มันเป็นไปได้ที่จะประเมิน M copy ของ ANY f โดยใช้ประตู O (N (M + 2 ^ N)) เท่านั้นซึ่งอาจน้อยกว่า M * exp (N) (ในความเป็นจริงคุณจะได้รับการตัดจำหน่ายเชิงเส้น ความซับซ้อนสำหรับ exponential M) ฉันจำการอ้างอิงไม่ได้ แต่ฉันคิดว่ามันน่าจะเป็นอะไรต่อไปนี้:

ก่อนอื่นให้เพิ่ม 2 ^ N ข้อมูลสมมติซึ่งเป็นค่าคงที่ 0 ... 2 ^ N-1 และตอนนี้แสดงว่า i'th N-bit อินพุตโดย xi (ดังนั้นสำหรับ i <= 2 ^ N เรามี xi = i และสำหรับ 2 ^ N <i <= 2 ^ N + M เรามีอินพุตต้นฉบับ) ตอนนี้เราสร้าง triplet สำหรับอินพุต M + 2 ^ N แต่ละอัน: (i, xi, fi) โดยที่ fi คือ f (i) สำหรับอินพุต 2 ^ N แรก (ค่าคงที่ที่เดินสายเข้าวงจร) และ fi = "*" มิฉะนั้น. ตอนนี้เราจัดเรียงแฝดสาม (i, xi, fi) ตามคีย์ xi และปล่อยให้ j'th triplet เป็น (i_j, x_j, f_j) จากนี้เราคำนวณ triplet (i_j, x_j, g_j) f_j หาก f_j ไม่ใช่ "*" และให้ g_j เป็น g_ (j-1) เป็นอย่างอื่น ตอนนี้จัดเรียง triplets ใหม่กลับตามคีย์ i_j และคุณได้รับคำตอบที่ถูกต้องในตำแหน่งที่ถูกต้อง


ฉลาด! สิ่งหนึ่งที่น้อย: เราต้องจัดเรียงแฝดสามอย่างเสถียร (หรือในวิธีอื่นที่รับประกันว่าแฝดสามที่มี fi ≠“ ” มาเร็วกว่าแฝดสามด้วย fi =“ ”)
Tsuyoshi Ito

ฉลาดมากและขอบคุณ อย่างไรก็ตามมีอะไรที่คล้ายกันในการตั้งค่าความซับซ้อนเชิงพีชคณิตหรือไม่?
แมตต์เฮสติ้งส์

1
ฉันเดาอีกวิธีหนึ่งในกรณีที่ M ไปไม่สิ้นสุดนั่นคือคุณสามารถลงทุน 2 ^ N * 2 ^ N เวลาเพื่อสร้างตารางแฮชสำหรับค่าทั้งหมดของ f แล้วคุณสามารถคำนวณทุกสำเนาใน O (N เวลา) ฉันคิดว่ามีอีกเหตุผลที่อย่างน้อยเราก็ไม่ควรรู้ว่าสิ่งที่เป็นเช่นนั้นจริงหรือไม่สำหรับค่าที่น้อยกว่าของ N ซึ่งก็คือมันจะให้ผลดีกว่าขอบเขตล่างที่รู้จัก คุณสามารถสร้างฟังก์ชั่นที่มีขีด จำกัด ล่างสุดโดยเดรัจฉานแรกที่บังคับให้ค้นหาฟังก์ชั่นใน n '= log n (หรืออาจจะ n' = loglog n) อินพุตที่มีความซับซ้อนมากและรับ n / n'copies ของมัน .
Boaz Barak

1
ในการโต้แย้งข้างต้นว่าทำไมผลลัพธ์ดังกล่าวนำไปสู่ขอบเขตที่ต่ำกว่าฉันไม่ทราบว่าจำนวนการทำซ้ำนั้นรุนแรงกว่าจริง ๆ หรือไม่ แต่มันใช้ได้กับฟิลด์ที่ไม่มีขอบเขตเช่นกัน
Boaz Barak

สวัสดี Boaz อันที่จริงความคิดเห็นของคุณคือเหตุผลที่ว่าทำไมฉันจึงสนใจฟังก์ชั่นเหล่านี้ อย่างไรก็ตามมีจุดที่ลึกซึ้งคือ "การบังคับเดรัจฉาน" อาจเป็น (ซึ่งเป็นสิ่งที่คำถามของฉันตั้งเป้าไว้) ฟังก์ชั่นดังกล่าวมีอยู่ แต่เราไม่มีอัลกอริทึมที่จะช่วยให้เราแสดงให้เห็นว่าฟังก์ชั่นที่กำหนดมีคุณสมบัตินี้ ท้ายที่สุดดูเหมือนจะไม่มีทางที่จะดุร้ายกับคุณสมบัติที่ขอบเขตล่างดังกล่าวเก็บไว้สำหรับ M ทั้งหมดเพราะคุณต้องตรวจสอบจำนวนอนันต์ของวงจรที่แตกต่างกัน ดังนั้นอาจมีฟังก์ชั่นดังกล่าวสำหรับฟิลด์ที่ไม่มีที่สิ้นสุด แต่เราไม่สามารถแสดงได้
hastings ด้าน

10

O(2n/n)mmfm2n/n

"เครือข่ายคำนวณฟังก์ชันบูลีนสำหรับค่าอินพุตหลายค่า"

m=2o(n/logn)mfO(2n/n)m=1

ฉันไม่พบสำเนาที่ไม่ได้ระบุออนไลน์หรือหน้าแรกของผู้แต่ง แต่ฉันเจอบทความนี้ในตอนนี้:

ความซับซ้อนของฟังก์ชั่นบูลีน (London Mathematical Society Lecture Note Series)


ขอบคุณ! ไม่มีคำถามที่ถามเกี่ยวกับความขัดแย้งใน TCS หรือไม่? นอกจากนี้ยังสามารถนำมาใช้เป็นคำตอบมี :)
Arnab

ขอบคุณสำหรับคำตอบนี้ด้วย ไม่สามารถอ่านการดำเนินการฉันจะเดาว่าคล้ายกับคำตอบก่อนหน้านี้มันอาจขึ้นอยู่กับจำนวน จำกัด ของปัจจัยการผลิตที่เป็นไปได้ดังนั้นคำถามติดตามเดียวกันข้างต้นอีกครั้ง: ในกรณีพีชคณิตซับซ้อน?
แมตต์เฮสติ้งส์

จริงๆแล้วมันปรากฏว่า Shannon พิสูจน์ให้เห็นขอบเขตแรกของ O (2 ^ n / n); Lupanov มีค่าคงที่ที่เหมาะสม ฉันแก้ไขสิ่งนี้แล้ว รายละเอียดอธิบายไว้ใน "การทบทวนขอบเขตของขนาดวงจรของฟังก์ชั่นที่ยากที่สุด" โดย Frandsen และ Miltersen
Andy Drucker

5

เกี่ยวกับความซับซ้อนเชิงพีชคณิตฉันไม่ทราบตัวอย่างที่ความซับซ้อนเชิงเลขลงไปถึงความซับซ้อนที่ตัดจำหน่ายแบบเลขชี้กำลัง แต่อย่างน้อยก็มีตัวอย่างง่าย ๆ ที่ความซับซ้อนของสำเนาที่แยกจากกันของ M อาจน้อยกว่า M คูณความซับซ้อนของสำเนาเดียว :

สำหรับ "สุ่ม" n * n เมทริกซ์ A ความซับซ้อนของรูปแบบ bilinear ที่กำหนดโดย A, (ฟังก์ชัน f_A (x, y) = xAy โดยที่ x และ y เป็น 2 เวกเตอร์ของความยาว n) คือ Omega (n ^ 2 ) - สิ่งนี้สามารถแสดงได้โดยอาร์กิวเมนต์มิติ "คล้ายการนับ" เนื่องจากคุณต้องการตำแหน่ง n ^ 2 "" ในวงจรเพื่อใส่ค่าคงที่ อย่างไรก็ตามเนื่องจากเวกเตอร์คู่ที่ต่างกัน (x ^ 1, y ^ 1) ... (x ^ n, y ^ n) คุณสามารถใส่ x's ลงในแถวของเมทริกซ์ n * n X และในทำนองเดียวกันกับ y ลงในคอลัมน์ของเมทริกซ์ Y จากนั้นอ่านคำตอบทั้งหมด x ^ iAy ^ i จากเส้นทแยงมุมของ XAY ซึ่งสิ่งนี้คำนวณได้ในการดำเนินงาน n ^ 2.3 (หรือมากกว่านั้น) โดยใช้การคูณเมทริกซ์ที่รวดเร็วอย่างมีนัยสำคัญน้อยกว่า n * n ^ 2


ขอบคุณฉันรู้ตัวอย่างนั้น สิ่งที่คล้ายกันคือมีพหุนามดีกรี n อยู่ในตัวแปรเดียวซึ่งใช้เวลาในการประเมิน ณ จุดที่กำหนด (แม้ว่าฉันจะไม่คิดว่ามีตัวอย่างชัดเจนฉันผิดหรือเปล่า?) อย่างไรก็ตามเราสามารถประเมินพหุนามดังกล่าวได้ที่ n คะแนนในเวลา n ล็อก ^ 2 (n)
hastings ด้าน

1
ฉันพบเอกสารสองฉบับจากยุค 80 เกี่ยวกับปัญหาผลรวมโดยตรงของพีชคณิต: "ความถูกต้องของการคาดคะเนผลรวมโดยตรง" โดย Ja'ja และ Takche และ "ในการคาดเดาผลรวมโดยตรงแบบขยาย" โดย Bshouty ฉันไม่สามารถสรุปเนื้อหาของพวกเขาได้ แต่บางทีพวกเขาอาจมีประโยชน์
Andy Drucker

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