ตัวอย่างของวิธีการที่ไม่สม่ำเสมอมีประโยชน์อย่างไร


9

ฉันอยากรู้เกี่ยวกับวิธีการที่คุณเห็นความไม่สม่ำเสมอนั้นมีประโยชน์ในการคำนวณ วิธีหนึ่งคือการสุ่มในขณะที่BPPP/polyและอีกรายการเป็นตารางค้นหาซึ่งใช้เพื่อแสดงว่าทุกภาษามีวงจรไม่สม่ำเสมอ

โดยเฉพาะอย่างยิ่งฉันสนใจในวิธีการที่วัตถุมีอยู่โดยใช้วิธีการความน่าจะเป็นและวิธีการพิสูจน์อื่น ๆ ที่ไม่สร้างสรรค์ ฉันต้องการตัวอย่างที่เป็นธรรมชาติไม่ใช่มีแผน เพื่อให้ชัดเจนวงจรสำหรับปัญหาที่วางแผนไว้อาจเป็นดังนี้: ให้ภาษาLPฉันสร้างวงจรขนาดพหุนามด้วยการคำนวณฟังก์ชั่นที่ยากจริงๆ f(|x|) ใช้คำแนะนำของฉันและถามว่า f(|x|)n/|f(|x|)|xL.


ดังนั้นโดย "มีประโยชน์" ฉันคิดว่าคุณหมายถึงการลดทรัพยากรที่จำเป็นในการแก้ปัญหาลงอย่างมากหรือไม่ เช่นวงจรที่ไม่ใช่ขนาดเล็กที่มีขนาดเล็กกว่าชุดที่มีนัยสำคัญหรือเครื่องทัวริงที่มีคำแนะนำที่ทำงานเร็วกว่าที่ไม่มีคำแนะนำ?
usul

สิ่งเหล่านี้เทียบเท่ากันใช่ไหม ฉันหมายถึงมีประโยชน์จริง ๆ เช่นเดียวกับใน "เคยพิสูจน์สิ่งที่น่าสนใจ" แม้ว่า
Samuel Schlesinger

ฉันคิดว่าฉันจินตนาการว่าสิ่งที่น่าสนใจทั้งหมดที่คุณพิสูจน์ได้ว่าใช้ความไม่สม่ำเสมอนั้นจะตกอยู่ในสิ่งที่คุณพูดยกเว้นวงจรที่อาจจะดีกว่าชุดที่รู้จัก แต่ไม่ดีไปกว่าที่เป็นไปได้
Samuel Schlesinger

คำตอบ:


11

ตัวอย่างที่ฉันชอบคืออาร์กิวเมนต์ที่ NEcoNE/(n+1)โดยการนับสตริงในภาษา (ดูเช่นhttps://blog.computationalcomplexity.org/2004/01/little-theorem.html )


นี่เป็นสิ่งที่ยอดเยี่ยมเพราะมันไม่ได้ขึ้นอยู่กับวิธีความน่าจะเป็นหรือตารางค้นหา ขอบคุณสำหรับสิ่งนี้.
ซามูเอลชเลซิงเจอร์

(โปรดทราบว่าหากความยาวของสตริงคำแนะนำต้องตรงกัน nทำงานไม่มากอย่างเห็นได้ชัด (และฉันไม่เห็นทางที่จะแสดงให้เห็นว่าการทำงานที่ชัดเจน-มิได้ไม่ใด ๆ )).

ฉันคิดว่าคลาสคำแนะนำมักไม่ได้ถูกกำหนดให้มีความยาวคำแนะนำที่แน่นอน @RickyDemer
Samuel Schlesinger

นอกจากนี้ฉันไม่สามารถเห็นสิ่งนี้ได้ในความพยายามของฉันจนถึงตอนนี้ดังนั้นหากใครบางคนสามารถให้ข้อมูลอ้างอิงหรือพูดถึงวิธีการดูฉันจะขอบคุณมัน
Samuel Schlesinger

1
@SamuelSchlesinger: ในขณะที่ P / poly หรือ C / log (สำหรับคลาส C ใด ๆ ) มักจะถูกกำหนดด้วยคำแนะนำที่ยาวถึงใหญ่ - โอ้นั่นไม่จริงเสมอไป ผลลัพธ์บางรายการใช้บิตคำแนะนำจำนวนแน่นอน (บางครั้งมีขนาดเล็กเท่ากับ 1!)
Joshua Grochow

10

ตัวอย่างหนึ่งคือ NLUL/poly. ทฤษฎีบทนี้ได้รับการพิสูจน์โดย Reinhardt และ Allender ในกระดาษของพวกเขา"ทำไม่นิยมที่ชัดเจน" คำแนะนำในอัลกอริทึมของพวกเขาประกอบด้วยลำดับของการกำหนดน้ำหนักขอบเพื่อให้สำหรับการขุดใด ๆG เข้ารหัสโดย nสตริงบิตการกำหนดค่าบางอย่างในลำดับทำให้ G"นาทีที่ไม่ซ้ำกัน" ลำดับดังกล่าวสามารถแสดงให้เห็นว่ามีอยู่โดยวิธีความน่าจะเป็น การสนับสนุนหลักของ Reinhardt และ Allender คือการให้อัลกอริธึมพื้นที่บันทึกที่ไม่คลุมเครือสำหรับการพิจารณาว่าการมอบหมายในลำดับใดที่ทำงานได้ดีกับกราฟิคที่กำหนดG และสำหรับการตัดสินใจ s-t การเชื่อมต่อบนกราฟิคที่ไม่เหมือนใคร

เช่นเดียวกับ BPPP/polyมันเป็นที่คาดคะเนว่า nonuniformity นั้นไม่จำเป็นจริง ๆ ที่นี่นั่นคือมันอนุมานได้ว่า NL=UL.


6

ฉันไม่แน่ใจว่ามันเหมาะกับสิ่งที่คุณกำลังมองหาหรือไม่ แต่มีผลลัพธ์เล็กน้อยที่พิสูจน์ทฤษฎีบทลำดับชั้นสำหรับคลาสความซับซ้อนเชิงความหมายด้วยคำแนะนำหนึ่งบิตโดยที่ไม่มีทฤษฎีบทลำดับชั้นที่รู้จัก ตัวอย่างที่รู้จักกันดีที่สุดคือ BPP ซึ่งเราไม่รู้จักทฤษฎีลำดับชั้น แต่ Fortnow และ Santhanam แสดงให้เห็นว่ามีคำแนะนำเพียงหนึ่งเดียว (สร้างจาก Barak ที่ใช้คำแนะนำเพิ่มเติม) บทความนี้โดย Melkebeek และ Pervyshev ให้การอ้างอิงและประวัติและทฤษฎีบทที่ดูเหมือนว่าจะรวมถึงบทความก่อนหน้า


ถ้ามันเป็นเพียงบิตเดียวเราไม่สามารถวนรอบมันได้อย่างที่มันเป็น P/log?
T ....

@Turbo คุณอ้างว่า BPP / 1 เหมือนกับ BPP พยายามเขียนหลักฐานและคุณควรจะสามารถดูได้อย่างง่ายดายด้วยตัวคุณเองที่นี้ผิดพลาด
Sasho Nikolov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.