อัลกอริทึมของ Grover และความสัมพันธ์กับคลาสความซับซ้อน?


12

ฉันสับสนเกี่ยวกับอัลกอริทึมของ Grover และเชื่อมต่อกับคลาสความซับซ้อน

อัลกอริทึมของ Grover ค้นหาและองค์ประกอบในฐานข้อมูลของ (เช่นที่ ) ขององค์ประกอบที่มี เรียกไปยัง oraclek f ( k ) = 1 N=2nf(k)=1

N=2n/2

ดังนั้นเราจึงมีปัญหาต่อไปนี้:

ปัญหา: ค้นหาในฐานข้อมูลที่f ( k ) = 1kf(k)=1

ตอนนี้ฉันรู้แล้วว่านี่ไม่ใช่ปัญหา desision และทำให้คำจำกัดความปกติของคลาสความซับซ้อน ,ฯลฯ ไม่ได้ใช้ แต่ฉันอยากรู้ว่าเราจะกำหนดระดับความซับซ้อนในกรณีเช่นนี้อย่างไร - และสภาพอากาศที่ทำกับหรือ ?NP N nPNPNn

นอกจากนี้อัลกอริทึมของ Grover ยังสามารถใช้เป็นรูทีนย่อยได้อีกด้วย ฉันได้อ่านในหลาย ๆ ที่ว่าอัลกอริทึมของโกรเวอร์ไม่เปลี่ยนปัญหาความซับซ้อนของคลาส - มีวิธีแก้ปัญหาเพื่อดูสิ่งนี้


พิจารณาใช้\text{}สำหรับการเขียนชื่อของคลาสความซับซ้อน ตัวอย่างเช่น\text{NP}หรือ\text{BQP}
Sanchayan Dutta

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

คำตอบ:


6

สรุป

  • มีทฤษฎีความซับซ้อนของปัญหาการค้นหา (หรือที่เรียกว่าปัญหาความสัมพันธ์) ทฤษฎีนี้รวมถึงคลาสที่เรียกว่าFP , FNPและFBQPซึ่งมีประสิทธิภาพเกี่ยวกับการแก้ปัญหาการค้นหาด้วยทรัพยากรประเภทต่างๆ
  • จากปัญหาการค้นหาคุณยังสามารถกำหนดปัญหาการตัดสินใจซึ่งช่วยให้คุณสามารถเชื่อมโยงปัญหาการค้นหากับคลาสP , NPและBQPปกติ
  • ไม่ว่าคุณจะพิจารณาเวอร์ชันการค้นหาของเวอร์ชันการตัดสินใจของปัญหาวิธีที่คุณพิจารณาอินพุตสำหรับปัญหาการค้นหาที่ไม่มีโครงสร้างจะกำหนดขอบเขตบนที่คุณสามารถใช้กับความซับซ้อนของมัน

ความซับซ้อนของปัญหาความสัมพันธ์

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

โครงสร้างของปัญหาการค้นหาทั่วไป
รับอินพุตและความสัมพันธ์แบบไบนารีหาค่าที่ถืออยู่R y R ( x , y )xRyR(x,y)

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

โดยเฉพาะอย่างยิ่ง: ตัวอย่างของปัญหา 'การค้นหาฐานข้อมูล' ซึ่ง Grover's Search มักจะนำไปใช้สามารถอธิบายได้ดังนี้

การค้นหาที่ไม่มีโครงสร้าง
รับอินพุต oracleเช่นนั้นสำหรับฟังก์ชัน , หาเช่นนั้น\ O | a | b = | a | b f ( a ) f : { 0 , 1 } m{ 0 , 1 } y O | y | 0 = | y | 1 O:H2m+1H2m+1O|a|b=|a|bf(a)f:{0,1}m{0,1}yO|y|0=|y|1

ที่นี่ oracle เองก็เป็นตัวป้อนปัญหา: มันเล่นบทบาทของและความสัมพันธ์ที่เราใช้คือ R ( O , y )x

R(O,y)[O|y|0=|y|1][f(y)=1].

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

  • สมมติว่าฟังก์ชั่นการป้อนข้อมูลให้เป็นฐานข้อมูล (ในขณะที่ปัญหาจะอธิบายบางครั้ง) ที่เข้าสู่ฐานข้อมูลแต่ละคนมีความยาวบาง\ถ้าคือความยาวของสตริงใช้เพื่ออธิบายฐานข้อมูลทั้งหมดแล้วฐานข้อมูลมีรายการ แล้วมันเป็นไปได้ที่จะละเอียดถี่ถ้วนค้นหาฐานข้อมูลทั้งหมดโดยการสอบถามแต่ละรายการในลำดับและหยุดหากเราพบรายการดังกล่าวว่า1 สมมติว่าแต่ละแบบสอบถามไปยังฐานข้อมูลใช้เวลาเช่นเวลาขั้นตอนนี้จะหยุดในเวลาn x N = n /N y f ( y ) = 1 O ( บันทึกN ) O ( บันทึกn ) O ( N บันทึกN ) O ( n บันทึกn )nxN=n/Nyf(y)=1O(logN)O(logn)O(NlogN)O(nlogn)เพื่อให้ปัญหาอยู่ในFP

    สมมติว่าฐานข้อมูลการค้นหาสามารถทำได้ในการทับซ้อนกันอัลกอริทึมของโกรเวอร์ช่วยให้ปัญหานี้อยู่ในFBQP แต่เป็นFP  ⊆  FBQPการค้นหาหมดจดคลาสสิกยังพิสูจน์ให้เห็นว่าปัญหานี้เป็นปัญหาในFBQP สิ่งที่เราได้รับ (ขึ้นอยู่กับปัจจัยบันทึก) คือการเพิ่มความเร็วเป็นกำลังสองเนื่องจากการประหยัดจำนวนการสืบค้นฐานข้อมูล

  • สมมติว่าฟังก์ชั่นการป้อนข้อมูลถูกอธิบายอย่างกระชับโดยอัลกอริทึมพหุนาม - เวลาที่ใช้สเปคและอาร์กิวเมนต์และคำนวณบนพื้นฐานของรัฐมาตรฐานที่อาจจะมีขนาดใหญ่กว่าn) ตัวอย่างจะเป็นที่ที่ระบุรูปแบบ CNF ของฟังก์ชันบูลีนสำหรับซึ่งในกรณีนี้เราอาจประเมินได้อย่างมีประสิทธิภาพบนอินพุต y { 0 , 1 } m O : H m + 1 2x{0,1}ny{0,1}mO:H2m+1H2m+1m Ω ( บันทึกn ) x f : { 0 , 1 } m{ 0 , 1 } m O ( n ) f ( y ) y { 0 , 1 } m O|y|bmΩ(logn)xf:{0,1}m{0,1}mO(n)f(y)y{0,1}mและมีประสิทธิภาพประเมินในสถานะมาตรฐาน ซึ่งจะทำให้เกิดปัญหาในการพร่ำO

    ให้ขั้นตอนการประเมินจากในเวลาสำหรับอัลกอริทึมของ Grover แก้ปัญหาการค้นหาที่ไม่มีโครงสร้างสำหรับในเวลาn}) นี่ไม่ใช่พหุนามในและไม่เพียงพอที่จะทำให้ปัญหานี้ในFBQP : เราจะได้รับการเพิ่มความเร็วเป็นกำลังสอง - แม้ว่านี่จะยังคงประหยัดเวลาในการคำนวณได้อย่างมากสมมติว่าประโยชน์จากอัลกอริทึมของ Grover ไม่ได้หายไป ค่าใช้จ่ายที่จำเป็นสำหรับการคำนวณควอนตัมที่ทนต่อความผิดพลาด( x , y ) O ( p ( n ) ) n = | x | O O ( p ( n ) f(y)(x,y)O(p(n))n=|x|OO(p(n)O(p(n)2m) nO(p(n)2n)n

ในทั้งสองกรณีซับซ้อนจะพิจารณาในแง่ของความยาวของสตริง * ซึ่งระบุวิธีการคำนวณพยากรณ์O ในกรณีที่แทนตารางการค้นหาเรามีซึ่งในกรณีนี้ประสิทธิภาพการทำงานของฟังก์ชันจะคล้ายกับประสิทธิภาพการทำงานเป็นฟังก์ชันของ ; แต่ในกรณีที่ชัดเจนระบุและข้อความภาพใหญ่ที่โกรเวอร์แก้ปัญหาในx O x N = n /N n x O N O ( 2 n / 2 ) O ( nxOxN=n/NnxONO(2n/2)O(N) ข้อความค้นหาปิดบังข้อความที่ละเอียดยิ่งขึ้นซึ่งอัลกอริธึมนี้ยังคงเป็นเลขชี้กำลังสำหรับคอมพิวเตอร์ควอนตัม

การตัดสินใจที่ซับซ้อนจากปัญหาความสัมพันธ์

มีวิธีที่ตรงไปตรงมาที่จะได้รับปัญหาการตัดสินใจจากปัญหาความสัมพันธ์ซึ่งเป็นที่รู้จักกันดีจากทฤษฎีของปัญหา NP- ที่ไม่สมบูรณ์ : เพื่อเปลี่ยนปัญหาการค้นหาเป็นคำถามของการมีอยู่ของการแก้ปัญหาที่ถูกต้อง

เวอร์ชันการตัดสินใจของปัญหาการค้นหาทั่วไป
รับอินพุตและความสัมพันธ์แบบไบนารีพิจารณาว่าหรือไม่R y : R ( x , y )xRy:R(x,y)

ระดับความซับซ้อนของปัญหาสามารถกำหนดได้ในแง่ของปัญหาดังกล่าวเมื่อความสัมพันธ์สามารถคำนวณได้อย่างมีประสิทธิภาพ: ปัญหา NP ที่มีชื่อเสียงที่สุด(CNF-SAT, HAMCYCLE, 3-COLORING) เป็นเพียงการแก้ปัญหาที่ถูกต้อง ปัญหาความสัมพันธ์ที่ตรวจสอบได้อย่างมีประสิทธิภาพ การเปลี่ยนจากการแก้ปัญหาการผลิตเป็นการเพียงแค่ยืนยันว่าการดำรงอยู่ของการแก้ปัญหาเป็นสิ่งที่ช่วยให้เราสามารถอธิบายรุ่นของตัวประกอบจำนวนเต็มซึ่งอยู่ในBQP (โดยการถามว่ามีปัจจัยที่ไม่น่าสนใจมากกว่าการขอค่าปัจจัยที่ไม่สำคัญ) .R

ในกรณีของการค้นหาแบบไม่มีโครงสร้างคลาสความซับซ้อนที่อธิบายปัญหาได้อีกครั้งนั้นขึ้นอยู่กับว่าโครงสร้างข้อมูลเข้านั้นเป็นอย่างไร การพิจารณาว่ามีวิธีแก้ไขปัญหาความสัมพันธ์อยู่หรือไม่อาจลดลงเพื่อค้นหาและตรวจสอบวิธีแก้ไขปัญหา ดังนั้นในกรณีที่อินพุตเป็นสตริงระบุ oracle เป็นตารางการค้นหาปัญหาของการค้นหาที่ไม่มีโครงสร้างอยู่ในP ; และอื่น ๆ โดยทั่วไปถ้าระบุวิธีที่มีประสิทธิภาพในการประเมินคำพยากรณ์ที่เป็นปัญหาในNP อาจเป็นไปได้ว่ามีวิธีการพิจารณาว่ามีอยู่จริงหรือไม่xxx โซลูชันสำหรับการค้นหาแบบไม่มีโครงสร้างซึ่งทำได้โดยไม่ต้องค้นหาโซลูชันแม้ว่าจะไม่ชัดเจนโดยทั่วไปว่าจะทำอย่างไรในลักษณะที่จะให้ประโยชน์มากกว่าการค้นหาโซลูชัน

ความซับซ้อนของ Oracle

ฉันได้รับการผงาดขยับจากการพูดคุยเกี่ยวกับการพยากรณ์ , วิธีการที่อินพุตสามารถนำมาใช้เพื่อระบุ (และประเมินผลการศึกษา) พยากรณ์O แต่แน่นอนวิธีหลักที่เราพิจารณาว่าอัลกอริทึมของ Grover นั้นเป็นผลลัพธ์ของ oracle ซึ่งการประเมิน oracle นั้นใช้เวลาเพียงขั้นตอนเดียวและไม่จำเป็นต้องมี speficiation เราจะพิจารณาความซับซ้อนของปัญหาในกรณีนี้ได้อย่างไร x OOxO

ในกรณีนี้เรากำลังจัดการกับโมเดลการคำนวณเชิงสัมพันธ์ซึ่งการประเมิน oracle (ซึ่งจำไว้คืออินพุตของปัญหา) เป็นการดำเนินการดั้งเดิม oracle นี้ถูกกำหนดในทุกขนาดอินพุต: เพื่อพิจารณาปัญหาสำหรับการค้นหาสตริงที่มีความยาวคุณต้องระบุว่าคุณกำลังพิจารณาว่า oracleทำหน้าที่ในอินพุตของความยาวซึ่งจะทำอีกครั้งโดยพิจารณาความยาว ของสตริงบูลีนถ่ายเป็นอินพุต ในกรณีนี้วิธีที่เราจะนำเสนอปัญหาอาจเป็นดังนี้ n O n xOnOnx

ไม่มีโครงสร้างค้นหาเทียบกับออราเคิลO O ได้รับการป้อนข้อมูลของความยาว , x=111n
x=111n

  • ค้นหา (ปัญหาความสัมพันธ์) หรือy{0,1}n

  • ตรวจสอบว่ามี (ปัญหาการตัดสินใจ)y{0,1}n

เช่นว่า\O|y|0=|y|1

ปัญหานี้อยู่ใน (สำหรับปัญหาการตัดสินใจ) หรือ (สำหรับปัญหาความสัมพันธ์) ขึ้นอยู่กับรุ่นของปัญหาที่คุณต้องการ พิจารณา. เพราะอัลกอริทึมของโกรเวอร์ไม่ได้เป็นอัลกอริทึมพหุนามเวลาปัญหานี้จะไม่เป็นที่รู้จักที่จะอยู่ในหรือO} ในความเป็นจริงเราสามารถพูดอะไรบางอย่างที่แข็งแกร่งกว่าที่เราจะเห็นNPOFNPOBQPOFBQPO

เหตุผลที่ผมแปรงเหนือจริง, คำอธิบาย oracle-based ของที่ไม่มีโครงสร้างค้นหาอยู่ในเพื่อที่จะสัมผัสกับมุมของความซับซ้อนและโดยเฉพาะอย่างยิ่งที่จะสัมผัสกับคำถามของขนาดการป้อนข้อมูล ความซับซ้อนของปัญหาส่วนใหญ่ถูกควบคุมโดยวิธีการอินพุตที่ระบุ: เป็นข้อมูลจำเพาะที่รวบรัด (ในกรณีที่ฟังก์ชันระบุไว้ใน CNF-SAT) เป็นข้อกำหนดที่ชัดเจน (ในกรณีของตารางค้นหาสำหรับ ฟังก์ชั่น) หรือแม้กระทั่งเป็นจำนวนเต็มที่ระบุไว้ในเอกภาพคือความยาวของสตริง 1s ข้างต้น (เช่นใน "การค้นหาแบบไม่มีโครงสร้างที่สัมพันธ์กับ Oracle " ด้านบน)O

ดังที่เราเห็นได้จากกรณีหลังหากเราปฏิบัติต่อสิ่งที่ป้อนเข้ามาในรูปของพยากรณ์เท่านั้นสถานการณ์ดูเหมือนจะไม่ง่ายนักและแน่นอนว่ามันเป็นไปไม่ได้ที่จะพูดถึงวิธีการที่ฐานข้อมูลสามารถรับรู้ได้ แต่ข้อดีอย่างหนึ่งของการพิจารณาปัญหาที่สัมพันธ์กันกับพยากรณ์จริงคือเราสามารถพิสูจน์สิ่งต่าง ๆ ที่เราไม่ทราบวิธีที่จะพิสูจน์ หากเราสามารถพิสูจน์ได้ว่ารุ่นการตัดสินใจของปัญหาการค้นหาที่ไม่มีโครงสร้างรวบรัดอยู่ในBQPเราจะต้องตระหนักถึงความก้าวหน้าครั้งใหญ่ในการคำนวณเชิงปฏิบัติ และถ้าเราพิสูจน์ได้ว่าปัญหาการตัดสินใจไม่ได้อยู่ในBQPจริงเราก็จะแสดงให้เห็นว่าP ≠ PSPACEซึ่งจะเป็นการพัฒนาครั้งใหญ่ในความซับซ้อนของการคำนวณ เราไม่รู้วิธีการทำเช่นกัน แต่สำหรับปัญหาที่เกี่ยวข้องเราสามารถแสดงให้เห็นว่ามี oracleซึ่งเป็นเวอร์ชั่นการตัดสินใจของ "Unstructured Search เทียบกับ " อยู่ในแต่ไม่ใช่ในO} สิ่งนี้ช่วยให้เราแสดงให้เห็นว่าในขณะที่การคำนวณควอนตัมอาจมีประสิทธิภาพมีเหตุผลที่คาดว่าBQPอาจไม่มีNPและรุ่นที่เกี่ยวข้องของการค้นหาที่ไม่มีโครงสร้างโดยเฉพาะนั้นไม่น่าจะอยู่ในFBQPโดยไม่มีข้อ จำกัด ที่แข็งแกร่ง อินพุตถูกแสดงOONPOBQPO


2

โดยทั่วไปคลาสความซับซ้อนจะถูกกำหนดโดยคำนึงถึงขนาดของอินพุต ขนาดที่เกี่ยวข้องที่นี่คือ (จำนวน qubits ที่คุณอนุญาตให้อัลกอริทึมของ Grover ทำงาน) และตัวเลขที่คุณยังไม่ได้กล่าวถึงเรียกมันว่าบิตที่จำเป็นในการอธิบายรูทีนย่อยโดยทั่วไปที่เรียกว่า oracle โดยปกติแล้ว oracle จะถูกนำไปใช้อย่างมีประสิทธิภาพในลักษณะที่ชั่งโพลีโนมิกในซึ่งเป็นกรณีตัวอย่างเช่นถ้าคุณเข้ารหัสปัญหาความน่าเชื่อถือแบบบูลทั่วไปใน oraclenmn

ไม่ว่าในกรณีใดคุณจะไม่ได้รับความซับซ้อนในชั้นเรียนโดยใช้อัลกอริทึมของโกรเวอร์: มันต้องใช้การดำเนินการเชิงปริมาณจำนวนมากโดยทั่วไปคือเพื่อแก้ปัญหาที่เราสามารถบังคับได้บนคอมพิวเตอร์แบบดั้งเดิมอย่างไรก็ตาม ซึ่งหมายความว่าปัญหาที่ทราบ (เช่น EXPTIME) หรือสงสัยว่า (เช่น NP) เพื่อรันไทม์เอ็กซ์โปเนนเชียลจะยังต้องการรันไทม์เอ็กซ์โปเนนเชียลm2n/2m2n1

อย่างไรก็ตามนักฟิสิกส์ชอบที่จะดึงดูดความคิดที่ว่านี่ยังคงเป็นความเร็วแบบเอกซ์โปเนนเชียลโดยไม่ทราบว่าเทียบเท่าหรือคลาสสิกเทียบเท่า นี่คือตัวอย่างที่ชัดเจนที่สุดในฐานข้อมูลที่ฟังก์ชั่น oracle เป็นฐานข้อมูลการค้นหาและอัลกอริทึมของโกรเวอร์สามารถทำให้ต้องค้นหาน้อยกว่าข้อมูลในฐานข้อมูล ในแง่นี้ยังคงมีข้อได้เปรียบที่สำคัญแม้ว่ามันจะหายไปอย่างสมบูรณ์ในภาพระดับความซับซ้อน


" นักฟิสิกส์ชอบที่จะดึงดูดความคิดที่ว่านี่ยังคงเป็นความเร็วแบบเอ็กซ์โพเนนเชียลโดยไม่ทราบ " ... คุณหมายถึงการเขียน " ยังคงเป็นพหุนามความเร็ว " หรือไม่?
glS

ไม่มันเป็นการเร่งความเร็วแบบเอ็กซ์โปเนนเชียล (แค่ไม่เพียงพอที่จะเปลี่ยนการรันไทม์แบบเอ็กซ์โปเนนเชียลให้กลายเป็น nonexponential หนึ่ง)
ปิรามิด

2

การนับทั้งหมดจะกระทำในรูปของจำนวนของบิตที่จำเป็นในการอธิบายอินพุตn

เรากำหนดคลาสของ problemsด้วยวิธีต่อไปนี้ (หรือนี่เป็นวิธีหนึ่งที่ทำได้):NP

ปล่อยให้เป็นฟังก์ชั่นที่รับอินพุตและส่งกลับค่าบิตเดียว 0 หรือ 1 งานคือคุณต้องค้นหาว่าค่าที่กำหนดของส่งกลับค่า a 1. อย่างไรก็ตามมีโครงสร้างเพิ่มเติมของปัญหา: ถ้าคุณรับประกันได้ว่ามีการพิสูจน์ (ขนาด ) เช่นนั้นฟังก์ชันเท่านั้นถ้าและฟังก์ชั่นคือคำนวณได้อย่างมีประสิทธิภาพ (คือมันมีเวลาทำงานของ(n)f(x)x{0,1}nxf(x)=1pxmpoly(n)g(x,px)=1f(x)=1g(x,px)poly(n)

ขอยกตัวอย่างสักสองสามอย่าง (บางทีนี่คือสิ่งที่คุณขอที่นี่ ?):

  • พาริตี:ตอบคำถาม ' แปลก ?' นี้เป็นที่น่ารำคาญดังนั้น (เพียงแค่ใช้เวลาบิตอย่างมีนัยสำคัญน้อยที่สุดของ ) ที่จะคำนวณได้อย่างมีประสิทธิภาพโดยตรงและดังนั้นจึงพิสูจน์ไม่จำเป็น(x)f(x)xxf(x)g(x,px)=f(x)

  • หมายเลขคอมโพสิต:ตอบคำถาม 'คือการแทนทศนิยมของจำนวนคอมโพสิต?' หลักฐานหนึ่งที่เป็นไปได้ในทิศทางใช่ (คุณเพียง แต่ต้องพิสูจน์ว่าทิศทางนั้น) คือการให้ปัจจัยสองอย่าง เช่น ,(8,9) จากนั้นก็เกี่ยวข้องกับการคูณด้วยกันปัจจัยและการตรวจสอบพวกเขาจะเท่ากับxf(x)xx=72px=(8,9)g(x,p)x

  • กราฟมอร์ฟิซึม: จากกราฟสองกราฟและ (ที่นี่มีคำอธิบายของกราฟทั้งสอง),ตอบคำถามที่ว่า 'กราฟสองกราฟ isomorphic?' หลักฐานคือการเปลี่ยนแปลง: การคำสั่งของวิธีการจุดในส่วน map กับบรรดาของG_2ฟังก์ชั่นตรวจสอบว่าคือการเปลี่ยนแปลงที่ถูกต้อง permutes จุดของใช้การเปลี่ยนแปลงที่ระบุและตรวจสอบว่าเมทริกซ์ถ้อยคำเป็นเช่นเดียวกับที่G_2G1G2xf(x)pxG1G2g(x,px)pxG1G2

  • Minesweeper : เกมโปรดเก่าที่สร้างขึ้นใน windows (และอื่น ๆ ) สามารถแสดงได้เช่นนี้ ลองจินตนาการถึงคณะกรรมการเรือกวาดทุ่นระเบิดที่ไม่ได้เปิดบางส่วนดังนั้นบางเซลล์จึงไม่เป็นที่รู้จักและบางเซลล์ได้ถูกเปิดเผยเพื่อเปิดเผยจำนวนเหมืองที่อยู่ในเซลล์ข้างเคียง นี้ถูกสร้างขึ้นทั้งหมดลงในตัวแปรxถามคำถาม 'มีการมอบหมายเหมืองที่ถูกต้องในภูมิภาคที่ไม่มีการเปิดหรือไม่' การพิสูจน์เป็นเพียงหนึ่งการมอบหมายของเหมือง สิ่งนี้สามารถตรวจสอบได้อย่างง่ายดายโดยใช้ซึ่งจะรับรองความสอดคล้องกับทุกข้อ จำกัด ที่ทราบxf(x)pxg(x,px)

ปัญหาเหล่านี้ทั้งหมดอยู่ในเพราะพอดีกับคำจำกัดความของวิธีแก้ปัญหาที่ตรวจสอบได้อย่างมีประสิทธิภาพ บางส่วนของพวกเขาเป็นที่รู้จักกันที่จะอยู่ในเช่นกัน: เราได้ระบุไว้แล้วว่าการทดสอบที่แปลกอยู่ใน{P} หมายเลขคอมโพสิตก็เป็นเพราะมันมีประสิทธิภาพในการตรวจสอบว่าตัวเลขเป็นสำคัญโดยใช้การทดสอบแบบดั้งเดิมของAKSNPPP

กราฟมอร์ฟและเรือกวาดทุ่นระเบิดจะไม่เป็นที่รู้จักที่จะอยู่ใน{P} อันที่จริงเรือกวาดทุ่นระเบิดเป็นที่รู้จักกันจะเป็นสมบูรณ์เช่นถ้าจะสามารถแก้ไขได้อย่างมีประสิทธิภาพทุกปัญหาในอยู่ใน{P} หลายคนสงสัยว่าและด้วยเหตุนี้เรือกวาดทุ่นระเบิดจะมีอินสแตนซ์ที่ใช้เวลานานกว่าพหุนามเพื่อแก้ปัญหาPNPNPPPNP

x g ( x , p x ) = 1 O ( 2 m poly ( m ) ) g ( x , p x ) = 1 p x O ( 2 m / 2 poly ( m ) )NPxpxm=poly(n)g(x,px)=1O(2mpoly(m))g(x,px)=1pxO(2m/2poly(m))(M)) สิ่งนี้เร็วกว่าอย่างมาก แต่ไม่เปลี่ยนการประเมินว่าเวลาทำงานนั้นเป็นพหุนามหรืออะไรที่แย่กว่านั้น มันไม่ได้เป็นอัลกอริธึมเวลาพหุนาม ตัวอย่างเช่นกราฟมอร์ฟิซึ่มจะต้องค้นหาพีชคณิตที่เป็นไปได้ทั้งหมด เรือกวาดทุ่นระเบิดจะต้องค้นหาการมอบหมายที่เป็นไปได้ทั้งหมดของเหมืองในช่องสี่เหลี่ยมที่ไม่มีการเปิด

แน่นอนบางครั้งโครงสร้างเพิ่มเติมในปัญหาอนุญาตให้ใช้วิธีแก้ไขปัญหาต่าง ๆ ที่ไม่ต้องการค้นหาหลักฐานที่เป็นไปได้ทั้งหมด ที่นั่นการค้นหาของ Grover นั้นมีน้อยหรือไม่มีเลยสำหรับเรา แต่อาจเป็นไปได้ว่าเราสามารถคิดอัลกอริธึมเวลาพหุนามด้วยวิธีอื่นได้ ตัวอย่างเช่นกรณีของการทดสอบคอมโพสิต: คลาสสิกการหาปัจจัยของตัวเลขดูเหมือนจะยาก: เราไม่สามารถทำได้ดีกว่าการทดสอบปัจจัยที่เป็นไปได้ทั้งหมดดังนั้นการใช้รูปแบบการพิสูจน์นั้นก็ไม่ได้ช่วยอะไรมากนัก แต่ ดังที่ได้กล่าวไปแล้วคำถามสามารถแก้ไขได้อย่างมีประสิทธิภาพผ่านเส้นทางอื่นการทดสอบแบบดั้งเดิมของ AKS


คลาส P และ NP มักถูกกำหนดเป็นคลาสของภาษาหรือปัญหาการตัดสินใจเช่นในคำตอบของคำถามนี้ ในขณะที่สิ่งเหล่านี้สามารถ 'เข้ารหัส' เป็นฟังก์ชั่นที่มีเอาท์พุทไบนารีในขณะที่คุณทำที่นี่นี่เป็นบิตที่ไม่ได้มาตรฐานในทฤษฎีความซับซ้อน
จิ้งจกไม่ต่อเนื่อง

@Discretelizard True แต่ฉันตั้งเป้าหมายเพื่อวัตถุประสงค์ในการสอนเพื่อหลีกเลี่ยงการแนะนำศัพท์ / เทคนิคเพิ่มเติม ฉันแน่ใจว่ามีรายละเอียดปลีกย่อยเล็กน้อยที่คำอธิบายของฉันหายไป (เช่นฉันระบุฟังก์ชั่นมากกว่าตระกูลของฟังก์ชั่น) อีกครั้งด้วยความตั้งใจที่จะไม่จมน้ำมากเกินไปและพยายามหาจุด f(x)
DaftWullie

คุณสามารถกำหนดสิ่งต่าง ๆ ได้ตามที่คุณต้องการ แต่ฉันคิดว่ามันมีประโยชน์ที่จะกล่าวถึงว่าสิ่งนี้ไม่ได้มาตรฐานเมื่อผู้อ่านตรวจสอบแหล่งอื่น ดังนั้นความคิดเห็น
จิ้งจกไม่ต่อเนื่อง

-1

ลืมฐานข้อมูล อัลกอริทึมของโกรเวอร์แก้ปัญหาความพึงพอใจ Booleanกล่าวคือ:

คุณมีวงจรบูลีนที่มีอินพุตและเอาต์พุตเดียว วงจรเอาท์พุทสำหรับการกำหนดค่าของบิตเดียวอินพุตมิฉะนั้นเป็นผล0ค้นหาการกำหนดค่าของอินพุตบิต1 0n10

ปัญหานี้ทราบแล้วว่าเป็นปัญหาสมบูรณ์


3
มีองค์ประกอบของความจริงในสิ่งที่คุณกำลังพูดนั่นคือคนส่วนใหญ่ควรคิดถึง oracle ว่าเป็นการประเมินฟังก์ชั่นมากกว่าการค้นหาฐานข้อมูล และถ้าฟังก์ชันนั้นสามารถประเมินได้ในเวลาพหุนามแล้วมันก็เป็นตัวอย่างที่มีประสิทธิภาพของ SAT ซึ่งเป็น NP-complete แน่นอน แต่เนื่องจากการเร่งความเร็วจาก Grover นั้นเป็นกำลังสองมากที่สุดมันไม่ชัดเจนว่า NP-ครบถ้วนสมบูรณ์ของ SAT เกี่ยวข้องกับสิ่งที่อัลกอริทึมของ Grover ทำจริง
Niel de Beaudrap

2
เนื่องจากการเพิกเฉยหรือไม่รู้หนังสือฉันไม่ได้มีส่วนร่วมในฟอรัมนี้อีกต่อไป
kludg

@ kludg ฉันยอมรับว่าการลงคะแนนเสียงอย่างใดอย่างหนึ่งเป็นของฉันดังนั้นให้ฉันอธิบาย; คำตอบของคุณโดยไม่มีบริบทหรือคำอธิบายเพิ่มเติมไม่ตอบคำถามใด ๆ ที่ฉันโพสต์ไว้ใน OP มันทำให้ประเด็นที่น่าสนใจ แต่เท่าที่บอกมานี้ไม่เกี่ยวข้องกับคำถามเฉพาะของฉัน ตอนนี้ฉันอาจผิดในจุดนี้และคุณตอบว่าจริง ๆ แล้วกำลังตอบคำถามของฉัน - ถ้าเป็นกรณีนี้ฉันไม่เชื่อว่าพวกเขาได้รับคำตอบในทางที่ชัดเจน
สปาเกตตี้ควอนตัม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.