คำถามว่า P = NP น่าจะเป็นที่โด่งดังที่สุดในสาขาวิทยาศาสตร์คอมพิวเตอร์ทั้งหมดหรือไม่ มันหมายความว่าอะไร? และทำไมมันจึงน่าสนใจ?
โอ้และสำหรับเครดิตเพิ่มเติมโปรดโพสต์หลักฐานความจริงหรือเท็จ :)
คำถามว่า P = NP น่าจะเป็นที่โด่งดังที่สุดในสาขาวิทยาศาสตร์คอมพิวเตอร์ทั้งหมดหรือไม่ มันหมายความว่าอะไร? และทำไมมันจึงน่าสนใจ?
โอ้และสำหรับเครดิตเพิ่มเติมโปรดโพสต์หลักฐานความจริงหรือเท็จ :)
คำตอบ:
P ย่อมาจากเวลาพหุนาม NP ย่อมาจากเวลาพหุนามที่ไม่ได้กำหนดไว้
คำนิยาม:
เวลาพหุนามหมายความว่าความซับซ้อนของอัลกอริทึมคือ O (n ^ k) โดยที่ n คือขนาดของข้อมูลของคุณ (เช่นจำนวนองค์ประกอบในรายการที่จะเรียงลำดับ) และ k เป็นค่าคงที่
ความซับซ้อนคือเวลาที่วัดในจำนวนของการดำเนินการที่จะใช้เป็นฟังก์ชันของจำนวนรายการข้อมูล
การดำเนินการเป็นสิ่งที่สมเหตุสมผลสำหรับการดำเนินงานพื้นฐานสำหรับงานเฉพาะ สำหรับการเรียงลำดับการดำเนินการพื้นฐานคือการเปรียบเทียบ สำหรับการคูณเมทริกซ์การดำเนินการพื้นฐานคือการคูณจำนวนสองจำนวน
ทีนี้คำถามก็คือค่าเฉลี่ยที่กำหนดขึ้นกับที่ไม่ได้กำหนดไว้คืออะไร? มีรูปแบบการคำนวณที่เป็นนามธรรมคอมพิวเตอร์จินตภาพที่เรียกว่าเครื่องทัวริง (TM) เครื่องนี้มีสถานะที่แน่นอนจำนวนหนึ่งและเทปที่ไม่มีที่สิ้นสุดซึ่งมีเซลล์แบบแยกซึ่งมีสัญลักษณ์ จำกัด สามารถเขียนและอ่านได้ เมื่อใดก็ตามที่กำหนด TM อยู่ในสถานะใดสถานะหนึ่งและกำลังมองหาเซลล์หนึ่งบนเทป ขึ้นอยู่กับสิ่งที่อ่านจากเซลล์นั้นมันสามารถเขียนสัญลักษณ์ใหม่ลงในเซลล์นั้นเลื่อนเทปหนึ่งเซลล์ไปข้างหน้าหรือข้างหลังและไปสู่สถานะอื่น สิ่งนี้เรียกว่าการเปลี่ยนสถานะ น่าอัศจรรย์เพียงพอโดยการสร้างสถานะและช่วงการเปลี่ยนภาพอย่างรอบคอบคุณสามารถออกแบบ TM ซึ่งเทียบเท่ากับโปรแกรมคอมพิวเตอร์ใด ๆ ที่สามารถเขียนได้
TM มีสองประเภทที่เกี่ยวข้องกับเราที่นี่: กำหนดและไม่ได้กำหนดไว้ เครื่องคิดเลข TM มีการเปลี่ยนแปลงเพียงครั้งเดียวจากแต่ละสถานะสำหรับแต่ละสัญลักษณ์ที่กำลังอ่านเทป TM ที่ไม่ได้กำหนดค่าไว้อาจมีการเปลี่ยนแปลงหลายอย่างเช่นสามารถตรวจสอบความเป็นไปได้หลายอย่างพร้อมกัน นี่เป็นเหมือนการวางไข่หลายกระทู้ ความแตกต่างคือ TM ที่ไม่ได้กำหนดค่าไว้สามารถวางไข่ "เธรด" ได้มากเท่าที่ต้องการขณะที่บนคอมพิวเตอร์จริงจะสามารถประมวลผลเธรดได้จำนวนมากในแต่ละครั้ง (เท่ากับจำนวน CPU) ในความเป็นจริงคอมพิวเตอร์โดยทั่วไปจะกำหนด TM ด้วยเทป จำกัด ในทางตรงกันข้าม TM ที่ไม่ได้กำหนดค่าไว้นั้นไม่สามารถรับรู้ทางร่างกายได้ยกเว้นในคอมพิวเตอร์ควอนตัม
มันได้รับการพิสูจน์แล้วว่าปัญหาใด ๆ ที่สามารถแก้ไขได้โดย TM ที่ไม่ได้ถูกกำหนดสามารถแก้ไขได้โดย TM ที่กำหนดขึ้น อย่างไรก็ตามยังไม่ชัดเจนว่าจะใช้เวลานานเท่าใด คำสั่ง P = NP หมายความว่าหากปัญหาใช้เวลาพหุนามใน TM ที่ไม่ได้กำหนดค่าแล้วสามารถสร้างสารกำหนดเวลา TM ซึ่งจะแก้ปัญหาเดียวกันในเวลาพหุนาม จนถึงขณะนี้ไม่มีใครสามารถแสดงให้เห็นว่ามันสามารถทำได้ แต่ไม่มีใครสามารถพิสูจน์ได้ว่ามันไม่สามารถทำได้เช่นกัน
ปัญหา NP-complete หมายถึงปัญหา NP X เช่นว่าปัญหา NP ใด ๆ สามารถลดลงเหลือ X ได้ด้วยการลดพหุนาม นั่นก็หมายความว่าถ้าใครเคยคิดวิธีแก้ปัญหาเวลาพหุนามกับปัญหาที่สมบูรณ์แบบ NP ก็จะให้วิธีแก้ปัญหาพหุนามเวลากับปัญหา NP ใด ๆ ดังนั้นจะพิสูจน์ได้ว่า P = NP ในทางกลับกันถ้าใครต้องพิสูจน์ว่า P! = NP เราจะมั่นใจได้ว่าไม่มีทางแก้ปัญหา NP ในเวลาพหุนามในคอมพิวเตอร์ทั่วไป
ตัวอย่างของปัญหา NP-complete คือปัญหาของการค้นหาการมอบหมายความจริงที่จะทำให้นิพจน์บูลีนที่มีตัวแปร n จริง
สำหรับช่วงเวลาในการปฏิบัติปัญหาใด ๆ ที่ต้องใช้เวลาพหุนามใน TM ที่ไม่ได้กำหนดขึ้นสามารถทำได้ในเวลาเอ็กซ์โพเนนเชียลใน TM ที่กำหนดขึ้นหรือบนคอมพิวเตอร์ทั่วไป
ตัวอย่างเช่นวิธีเดียวที่จะแก้ปัญหาการมอบหมายความจริงคือการลองใช้ความเป็นไปได้ 2 ^ n
สังหรณ์ใจเราจะเห็นว่าถ้ามีปัญหาอยู่ในPแล้วมันอยู่ในNP ให้คำตอบที่เป็นไปได้สำหรับปัญหาในPเราสามารถตรวจสอบคำตอบได้โดยการคำนวณคำตอบใหม่
ชัดเจนน้อยกว่าและตอบยากกว่านั้นคือปัญหาทั้งหมดในNPอยู่ในPหรือไม่ ความจริงที่ว่าเราสามารถตรวจสอบคำตอบในเวลาพหุนามหมายความว่าเราสามารถคำนวณคำตอบในเวลาพหุนามหรือไม่?
มีปัญหาสำคัญจำนวนมากที่รู้กันว่าเป็นปัญหาที่ไม่สมบูรณ์ (โดยทั่วไปหากปัญหาใด ๆ เหล่านี้ได้รับการพิสูจน์ว่าเป็นPแล้วปัญหาNP ทั้งหมด จะได้รับการพิสูจน์ว่าเป็นP ) หากP = NPปัญหาเหล่านี้ทั้งหมดจะได้รับการพิสูจน์แล้วว่ามีวิธีแก้ปัญหาที่มีประสิทธิภาพ (เวลาพหุนาม)
นักวิทยาศาสตร์ส่วนใหญ่เชื่อว่าP ! = NP อย่างไรก็ตามยังไม่มีหลักฐานที่ยังไม่ได้รับการจัดตั้งขึ้นมาทั้งP = NP หรือP ! = NP ถ้าใครยังมีหลักฐานสำหรับการคาดเดาอย่างใดอย่างหนึ่งพวกเขาจะชนะสหรัฐ $ 1 ล้านบาท
เพื่อให้คำตอบที่ง่ายที่สุดฉันสามารถคิด:
สมมติว่าเรามีปัญหาที่ต้องใช้อินพุตจำนวนหนึ่งและมีวิธีแก้ปัญหาต่าง ๆ ที่อาจเกิดขึ้นหรืออาจจะไม่สามารถแก้ปัญหาสำหรับอินพุตที่กำหนดได้ ตรรกะเชิงตรรกะในนิตยสารจิ๊กซอว์จะเป็นตัวอย่างที่ดี: อินพุตเป็นเงื่อนไข ("จอร์จไม่ได้อาศัยอยู่ในบ้านสีฟ้าหรือสีเขียว") และวิธีแก้ปัญหาที่อาจเกิดขึ้นคือรายการของข้อความ ("จอร์จใช้ชีวิตในสีเหลือง บ้านปลูกถั่วและเป็นเจ้าของสุนัข ") ตัวอย่างที่มีชื่อเสียงคือปัญหาการเดินทางของพนักงานขาย: กำหนดรายชื่อเมืองและเวลาที่จะได้รับจากเมืองใด ๆ ไปยังที่อื่น ๆ และเวลาที่ จำกัด วิธีแก้ปัญหาที่อาจเกิดขึ้นคือรายชื่อเมืองตามลำดับที่พนักงานขายมาเยี่ยมพวกเขา มันจะทำงานได้ถ้าผลรวมของเวลาเดินทางน้อยกว่าเวลาที่กำหนด
ปัญหาดังกล่าวอยู่ใน NP ถ้าเราสามารถตรวจสอบโซลูชันที่มีศักยภาพเพื่อดูว่ามันทำงานได้อย่างมีประสิทธิภาพ ตัวอย่างเช่นให้รายชื่อเมืองเพื่อให้พนักงานขายไปเยี่ยมชมตามลำดับเราสามารถเพิ่มเวลาสำหรับการเดินทางระหว่างเมืองแต่ละครั้งและดูว่ามันอยู่ภายใต้เวลาที่กำหนดหรือไม่ ปัญหาอยู่ใน P หากเราสามารถหาวิธีแก้ปัญหาได้อย่างมีประสิทธิภาพหากมี
(ที่นี่อย่างมีประสิทธิภาพมีความหมายทางคณิตศาสตร์ที่แม่นยำจริง ๆ แล้วหมายความว่าปัญหาใหญ่ไม่ยากเกินกว่าจะแก้ได้เมื่อค้นหาวิธีแก้ปัญหาที่เป็นไปได้วิธีที่ไม่มีประสิทธิภาพจะแสดงรายการวิธีแก้ปัญหา ในขณะที่วิธีที่มีประสิทธิภาพจะต้องค้นหาชุดที่ จำกัด มากขึ้น)
ดังนั้นปัญหา P = NP สามารถแสดงด้วยวิธีนี้: หากคุณสามารถตรวจสอบวิธีแก้ปัญหาของการเรียงลำดับที่อธิบายไว้ข้างต้นได้อย่างมีประสิทธิภาพคุณสามารถหาวิธีแก้ปัญหา (หรือพิสูจน์ว่าไม่มีเลย) ได้อย่างมีประสิทธิภาพหรือไม่ คำตอบที่ชัดเจนคือ "ทำไมคุณถึงสามารถทำได้?" และนั่นก็เป็นเรื่องที่สำคัญมากในทุกวันนี้ ไม่มีใครสามารถพิสูจน์ได้ไม่ทางใดก็ทางหนึ่งและทำให้นักคณิตศาสตร์และนักวิทยาศาสตร์คอมพิวเตอร์จำนวนมากรบกวน นั่นเป็นเหตุผลที่ทุกคนที่สามารถพิสูจน์ได้ว่าการแก้ปัญหานั้นขึ้นอยู่กับเงินล้านดอลลาร์จากมูลนิธิ Claypool
โดยทั่วไปเราคิดว่า P ไม่เท่ากับ NP ซึ่งไม่มีวิธีทั่วไปในการค้นหาวิธีแก้ปัญหา หากปรากฎว่า P = NP สิ่งต่างๆมากมายจะเปลี่ยนไป ตัวอย่างเช่นการเข้ารหัสจะกลายเป็นไปไม่ได้และด้วยความเป็นส่วนตัวหรือการตรวจสอบได้บนอินเทอร์เน็ต ท้ายที่สุดเราสามารถนำข้อความที่เข้ารหัสและคีย์และสร้างข้อความต้นฉบับได้อย่างมีประสิทธิภาพดังนั้นถ้า P = NP เราสามารถค้นหาคีย์ได้อย่างมีประสิทธิภาพโดยไม่ต้องรู้ล่วงหน้า การแคร็กรหัสผ่านจะกลายเป็นเรื่องเล็กน้อย ในทางกลับกันมีปัญหาการวางแผนและปัญหาการจัดสรรทรัพยากรที่เราสามารถแก้ปัญหาได้อย่างมีประสิทธิภาพ
คุณอาจเคยได้ยินคำอธิบาย NP-complete ปัญหา NP-complete คือปัญหาที่ NP (แน่นอน) และมีคุณสมบัติที่น่าสนใจนี้: ถ้ามันอยู่ใน P ปัญหา NP ทุกปัญหาคืออะไรและ P = NP หากคุณสามารถหาวิธีในการแก้ปัญหาพนักงานขายเดินทางหรือไขปริศนาจากนิตยสารไขปริศนาได้อย่างมีประสิทธิภาพคุณสามารถแก้ปัญหาอะไรก็ได้ใน NP ปัญหา NP-complete คือปัญหาเรียงลำดับที่ยากที่สุดของ NP
ดังนั้นหากคุณสามารถหาเทคนิคการแก้ปัญหาทั่วไปที่มีประสิทธิภาพสำหรับปัญหา NP-complete ใด ๆ หรือพิสูจน์ว่าไม่มีอยู่จริงชื่อเสียงและโชคชะตาเป็นของคุณ
สรุปสั้น ๆ จากความรู้ต่ำต้อยของฉัน:
มีปัญหาในการคำนวณง่าย ๆ (เช่นการหาเส้นทางที่สั้นที่สุดระหว่างสองจุดในกราฟ) ซึ่งสามารถคำนวณได้อย่างรวดเร็ว (O (n ^ k)) โดยที่ n คือขนาดของอินพุตและ k เป็นค่าคงที่ (ใน กรณีของกราฟมันคือจำนวนของจุดยอดหรือขอบ))
ปัญหาอื่น ๆ เช่นการค้นหาเส้นทางที่ข้ามจุดยอดทุกจุดในกราฟหรือรับคีย์ส่วนตัว RSA จากพับลิกคีย์นั้นยากกว่า (O (e ^ n))
แต่ CS พูดบอกว่าปัญหาคือเราไม่สามารถ 'แปลง' ทัวริงที่ไม่ได้กำหนดค่าเป็นเครื่องจักรที่กำหนดขึ้นมาได้อย่างไรก็ตามเราสามารถเปลี่ยนออโตเมติก จำกัด ที่ไม่ได้กำหนดค่าได้ สามารถ แต่ระยะเวลาของเครื่องจะใช้เวลานาน) นั่นคือเราจะต้องลองทุกเส้นทางที่เป็นไปได้
มันน่าสนใจเพราะไม่มีใครมีความคิดในการแก้ปัญหา บางคนบอกว่าเป็นเรื่องจริงบางคนบอกว่ามันผิด แต่ไม่มีความเห็นเป็นเอกฉันท์ อีกสิ่งที่น่าสนใจคือการแก้ปัญหาอาจเป็นอันตรายต่อการเข้ารหัสคีย์สาธารณะ / ส่วนตัว (เช่น RSA) คุณสามารถทำลายมันได้อย่างง่ายดายเช่นเดียวกับการสร้างคีย์ RSA
และมันก็เป็นปัญหาที่สร้างแรงบันดาลใจ
มีไม่มากที่ฉันสามารถเพิ่มสิ่งที่และทำไมของ P =? NP ส่วนหนึ่งของคำถาม แต่ในเรื่องที่เกี่ยวกับการพิสูจน์ ไม่เพียง แต่หลักฐานที่จะคุ้มค่าบางสินเชื่อพิเศษ แต่มันจะแก้ปัญหาหนึ่งของปัญหามิลเลนเนียม การสำรวจความคิดเห็นที่น่าสนใจได้ดำเนินการเมื่อเร็ว ๆ นี้และผลการเผยแพร่ (PDF)นั้นคุ้มค่าที่จะอ่านอย่างแน่นอนเกี่ยวกับเรื่องของการพิสูจน์
ก่อนคำจำกัดความบางอย่าง:
ปัญหาเฉพาะคือ P หากคุณสามารถคำนวณวิธีการแก้ปัญหาในเวลาน้อยกว่าn^k
สำหรับบางk
ที่n
ขนาดของอินพุต ตัวอย่างเช่นการเรียงลำดับสามารถทำได้โดยn log n
ที่น้อยกว่าn^2
ดังนั้นการเรียงลำดับจึงเป็นเวลาพหุนาม
ปัญหาอยู่ใน NP ถ้ามีอยู่k
เช่นว่ามีอยู่แก้ปัญหาของขนาดที่มากที่สุดที่คุณสามารถตรวจสอบได้ในเวลาที่มากที่สุดn^k
n^k
ใช้กราฟ 3 สี: กำหนดกราฟ 3 สีคือรายการของคู่ (จุดสุดยอด, สี) ซึ่งมีขนาดO(n)
และคุณสามารถตรวจสอบเวลาO(m)
(หรือO(n^2)
) ว่าเพื่อนบ้านทั้งหมดมีสีแตกต่างกันหรือไม่ ดังนั้นกราฟมี 3 สีเฉพาะเมื่อมีวิธีแก้ปัญหาที่สั้นและตรวจสอบได้ง่าย
คำจำกัดความที่เทียบเท่าของ NP คือ "ปัญหาที่แก้ไขได้โดยเครื่องจักรทัวริสเทอโรไดน์ของNในเวลาP olynomial" แม้ว่ามันจะบอกให้คุณทราบว่าชื่อนั้นมาจากไหน แต่ก็ไม่ได้ให้ความรู้สึกที่เป็นธรรมชาติเหมือนกับปัญหา NP
โปรดทราบว่า P เป็นเซตย่อยของ NP: หากคุณสามารถหาวิธีการแก้ปัญหาในเวลาพหุนามมีวิธีการแก้ปัญหาที่สามารถตรวจสอบได้ในเวลาพหุนาม - เพียงตรวจสอบว่าวิธีการแก้ปัญหาที่กำหนดให้เท่ากับที่คุณสามารถหา
ทำไมคำถามจึงP =? NP
น่าสนใจ ในการตอบนั้นสิ่งแรกที่ต้องทำคือดูว่าปัญหา NP-complete คืออะไร พูดง่ายๆ
โปรดทราบว่าอินสแตนซ์ของ L ต้องเป็นแบบคำนวณเวลาพหุนามและมีขนาดพหุนามในขนาดของ L '; ด้วยวิธีนี้การแก้ปัญหา NP-complete ในเวลาพหุนามทำให้เราแก้ปัญหาพหุนามกับปัญหา NP ทั้งหมด
ต่อไปนี้เป็นตัวอย่าง: สมมติว่าเรารู้ว่ากราฟ 3 สีเป็นปัญหา NP-hard เราต้องการพิสูจน์ว่าการตัดสินใจความพึงพอใจของสูตรบูลีนนั้นเป็นปัญหาที่ยากมากเช่นกัน
สำหรับแต่ละจุดยอด v มีตัวแปรบูลีนสองตัวแปร v_h และ v_l และข้อกำหนด (v_h หรือ v_l): แต่ละคู่สามารถมีค่า {01, 10, 11} เท่านั้นซึ่งเราคิดว่าเป็นสี 1, 2 และ 3
สำหรับแต่ละขอบ (u, v) มีข้อกำหนดว่า (u_h, u_l)! = (v_h, v_l) นั่นคือ,
not ((u_h and not u_l) and (v_h and not v_l) or ...)
แจกแจงการกำหนดค่าที่เท่ากันทั้งหมดและข้อตกลงที่ไม่เป็นไปตามนั้น
AND
เมื่อรวมข้อ จำกัด เหล่านี้ทั้งหมดเข้าด้วยกันจะมีสูตรบูลีนซึ่งมีขนาดพหุนาม ( O(n+m)
) คุณสามารถตรวจสอบได้ว่าต้องใช้เวลาพหุนามในการคำนวณเช่นกัน: คุณกำลังทำO(1)
สิ่งที่ตรงไปตรงมาต่อยอดและต่อขอบ
หากคุณสามารถแก้สูตรบูลีนที่ฉันสร้างขึ้นได้คุณสามารถแก้ปัญหาการระบายสีกราฟ: สำหรับตัวแปรแต่ละคู่ v_h และ v_l ให้สีของ v เป็นค่าที่ตรงกับค่าของตัวแปรเหล่านั้น ด้วยการสร้างสูตรเพื่อนบ้านจะไม่มีสีเท่ากัน
ดังนั้นหากกราฟ 3 สีเป็น NP-complete ดังนั้นจึงเป็นที่น่าพอใจสูตรบูลีน
เรารู้ว่ากราฟ 3 สีนั้นสมบูรณ์แบบ NP อย่างไรก็ตามในอดีตเรารู้ว่าโดยการแสดงความสมบูรณ์ของวงจรบูลีนที่น่าพอใจและลดความน่าจะเป็น 3 สี (แทนที่จะเป็นวิธีอื่น)