เพื่อความง่ายฉันจะเริ่มด้วยการพิจารณาปัญหา "การตัดสินใจ" เท่านั้นซึ่งมีคำตอบใช่ / ไม่ใช่ ปัญหาเกี่ยวกับฟังก์ชั่นทำงานในลักษณะเดียวกันยกเว้นแทนที่จะเป็นใช่ / ไม่ใช่จะมีคำเอาท์พุทเฉพาะที่เกี่ยวข้องกับคำที่ป้อนแต่ละคำ
ภาษา : ภาษาเป็นเพียงชุดของสตริง หากคุณมีตัวอักษรเช่น
แล้วΣ *เป็นชุดของคำทุกคำที่มีเพียงสัญลักษณ์ในที่Σ ตัวอย่างเช่น{ 0 , 1 } ∗คือชุดของลำดับเลขฐานสองทั้งหมดของความยาวใด ๆ แม้ว่าตัวอักษรไม่จำเป็นต้องเป็นเลขฐานสอง มันอาจเป็นเอกภาพสามเทอมนารี ฯลฯΣΣ∗Σ{0,1}∗
ภาษามากกว่าตัวอักษรเป็นส่วนย่อยของใด ๆΣ *ΣΣ∗
ปัญหา : ปัญหาคือคำถามเกี่ยวกับอินพุตที่เราต้องการคำตอบ โดยเฉพาะปัญหาการตัดสินใจคือคำถามที่ถามว่า "การป้อนข้อมูลที่เราได้รับนั้นเติมเต็มด้วยคุณสมบัติหรือไม่?X
X
L={w∣wyXyX}
การพิจารณาว่าคำตอบสำหรับอินพุตกับปัญหาการตัดสินใจคือ "ใช่" เทียบเท่ากับการพิจารณาว่าการเข้ารหัสของอินพุตนั้นบนตัวอักษรนั้นเป็นภาษาที่สอดคล้องกันหรือไม่
อัลกอริทึม : อัลกอริทึมเป็นวิธีการแก้ปัญหาทีละขั้นตอน โปรดทราบว่ามีอัลกอริทึมสามารถแสดงได้หลายวิธีและหลายภาษาและมีอัลกอริทึมต่าง ๆ มากมายในการแก้ปัญหาใด ๆ
M
L(M)={w∣Mw}
RRE
ความสัมพันธ์ระหว่างภาษากับเครื่องทัวริงมีดังนี้
ทัวริงเครื่องยอมรับทุกภาษาอย่างแน่นอน
อาจมีทัวริงมากกว่าหนึ่งเครื่องที่ยอมรับภาษาที่กำหนด
อาจไม่มีทัวริงเครื่องที่ยอมรับภาษาที่กำหนด
เราสามารถพูดอย่างเดียวกันเกี่ยวกับอัลกอริทึมและปัญหา: อัลกอริทึมทุกอันแก้ปัญหาเดียว แต่อาจมี 0 หรือหลาย ๆ อัลกอริทึมในการแก้ปัญหาที่กำหนด
ความซับซ้อนของเวลา : หนึ่งในแหล่งที่พบบ่อยที่สุดของความสับสนระหว่างอัลกอริทึมและปัญหาคือเกี่ยวกับคลาสที่ซับซ้อน การจัดสรรที่ถูกต้องสามารถสรุปได้ดังนี้:
- อัลกอริทึมมีความซับซ้อนของเวลา
- ปัญหาเป็นของระดับความซับซ้อน
f(n)f(n)n
ปัญหาไม่มีเวลาทำงานเนื่องจากปัญหาไม่ได้เชื่อมโยงกับอัลกอริทึมเฉพาะซึ่งใช้งานได้จริง แต่เราบอกว่าปัญหาเป็นของคลาสที่ซับซ้อนหากมีอัลกอริทึมบางส่วนที่แก้ปัญหานั้นด้วยความซับซ้อนของเวลาที่กำหนด
P,NP,PSPACE,EXPTIMEPXXPXXP