ความแตกต่างระหว่างอัลกอริทึมภาษาและปัญหาคืออะไร?


40

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


อัลกอริทึมเป็นวิธีการแก้ปัญหา
reinierpost

คำตอบ:


53

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

ภาษา : ภาษาเป็นเพียงชุดของสตริง หากคุณมีตัวอักษรเช่น แล้วΣ *เป็นชุดของคำทุกคำที่มีเพียงสัญลักษณ์ในที่Σ ตัวอย่างเช่น{ 0 , 1 } คือชุดของลำดับเลขฐานสองทั้งหมดของความยาวใด ๆ แม้ว่าตัวอักษรไม่จำเป็นต้องเป็นเลขฐานสอง มันอาจเป็นเอกภาพสามเทอมนารี ฯลฯΣΣΣ{0,1}

ภาษามากกว่าตัวอักษรเป็นส่วนย่อยของใด ๆΣ *ΣΣ

ปัญหา : ปัญหาคือคำถามเกี่ยวกับอินพุตที่เราต้องการคำตอบ โดยเฉพาะปัญหาการตัดสินใจคือคำถามที่ถามว่า "การป้อนข้อมูลที่เราได้รับนั้นเติมเต็มด้วยคุณสมบัติหรือไม่?X

X

L={wwyXyX}

การพิจารณาว่าคำตอบสำหรับอินพุตกับปัญหาการตัดสินใจคือ "ใช่" เทียบเท่ากับการพิจารณาว่าการเข้ารหัสของอินพุตนั้นบนตัวอักษรนั้นเป็นภาษาที่สอดคล้องกันหรือไม่

อัลกอริทึม : อัลกอริทึมเป็นวิธีการแก้ปัญหาทีละขั้นตอน โปรดทราบว่ามีอัลกอริทึมสามารถแสดงได้หลายวิธีและหลายภาษาและมีอัลกอริทึมต่าง ๆ มากมายในการแก้ปัญหาใด ๆ

M

L(M)={wMw}

RRE

ความสัมพันธ์ระหว่างภาษากับเครื่องทัวริงมีดังนี้

  1. ทัวริงเครื่องยอมรับทุกภาษาอย่างแน่นอน

  2. อาจมีทัวริงมากกว่าหนึ่งเครื่องที่ยอมรับภาษาที่กำหนด

  3. อาจไม่มีทัวริงเครื่องที่ยอมรับภาษาที่กำหนด

เราสามารถพูดอย่างเดียวกันเกี่ยวกับอัลกอริทึมและปัญหา: อัลกอริทึมทุกอันแก้ปัญหาเดียว แต่อาจมี 0 หรือหลาย ๆ อัลกอริทึมในการแก้ปัญหาที่กำหนด

ความซับซ้อนของเวลา : หนึ่งในแหล่งที่พบบ่อยที่สุดของความสับสนระหว่างอัลกอริทึมและปัญหาคือเกี่ยวกับคลาสที่ซับซ้อน การจัดสรรที่ถูกต้องสามารถสรุปได้ดังนี้:

  • อัลกอริทึมมีความซับซ้อนของเวลา
  • ปัญหาเป็นของระดับความซับซ้อน

f(n)f(n)n

ปัญหาไม่มีเวลาทำงานเนื่องจากปัญหาไม่ได้เชื่อมโยงกับอัลกอริทึมเฉพาะซึ่งใช้งานได้จริง แต่เราบอกว่าปัญหาเป็นของคลาสที่ซับซ้อนหากมีอัลกอริทึมบางส่วนที่แก้ปัญหานั้นด้วยความซับซ้อนของเวลาที่กำหนด

P,NP,PSPACE,EXPTIMEPXXPXXP


1
โปรดแก้ไขคำตอบนี้ตามที่เห็นสมควร
jmite

ฉันคิดว่าเป็นการดีที่จะกล่าวถึงว่ามีปัญหาการคำนวณประเภทอื่น (เช่นปัญหาการค้นหา)
Kaveh

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

4
เพื่อนนี่เป็นคำตอบที่ยิ่งใหญ่ที่สุดที่ฉันเคยเห็น คุณเพิ่งสรุปวิทยาการคอมพิวเตอร์ทั้งหมดใน 1 หน้า
CaptainCodeman

1
@ gnasher729 มีทฤษฏีที่บอกว่าสามารถนิยามได้ในแง่ของการตรวจสอบ แต่คำจำกัดความที่แท้จริงคือในแง่ของความซับซ้อนของเวลาสำหรับเครื่องที่ไม่ได้กำหนดค่าดังนั้นชื่อ NP: ชื่อพหุนาม nondeterministic
jmite
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.