เป็นไปได้หรือไม่ที่จะตัดสินใจว่าอัลกอริทึมที่ให้มานั้นเหมาะสมที่สุดหรือไม่


11

มีอัลกอริทึมสำหรับปัญหาต่อไปนี้:

ได้รับเครื่องทัวริงที่ตัดสินใจภาษา , มีเครื่องทัวริงตัดสินใจดังกล่าวว่า ? L M 2 L t 2 ( n ) = o ( t 1 ( n ) )M1L
M2Lt2(n)=o(t1(n))

ฟังก์ชั่นและเป็นเวลาทำงานที่เลวร้ายที่สุดของเครื่องจักรทัวริงและตามลำดับt 2 M 1 M 2เสื้อ1เสื้อ2M1M2

แล้วความซับซ้อนของอวกาศล่ะ?


1
คำตอบนั้นไม่แน่นอน การพิจารณาว่าเวลารันไทม์ที่เลวร้ายที่สุดของ TM นั้นเป็นที่ทราบกันว่าไม่สามารถตัดสินใจได้
chazisop

คำถามทั่วไปมากขึ้น
กราฟิลส์

คำตอบ:


9

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

เราลดปัญหาการหยุดชะงักในเทปเปล่าให้กับปัญหาของคุณเกี่ยวกับการปรับให้เหมาะสมในขณะใช้งาน

ให้เป็นเครื่องทัวริงที่ได้รับ ให้ N เป็นเครื่องทัวริงดังต่อไปนี้:M

: บนอินพุต n 1. รัน Mบนเทปเปล่าสำหรับ (มากที่สุด) nขั้นตอน 2. หาก Mไม่หยุดในขั้นตอน nให้รันลูปที่มีขนาด 2 nจากนั้นส่งคืน NO 3. มิฉะนั้นส่งคืน YESยังไม่มีข้อความn
Mn
Mn2n

มีสองกรณี:

  1. หากไม่ได้หยุดในเทปเปล่าเครื่องNจะทำงานΘ ( 2 n )ขั้นตอนเกี่ยวกับการป้อนข้อมูลn ดังนั้นเวลาทำงานของมันคือΘ ( 2 n ) ในกรณีนี้เห็นได้ชัดว่าNไม่เหมาะสมที่สุดMยังไม่มีข้อความΘ(2n)nΘ(2n)ยังไม่มีข้อความ

  2. หากหยุดในเทปว่างแล้วเครื่องNจะทำงานเป็นจำนวนคงที่ของขั้นตอนทั้งหมดที่มีขนาดใหญ่พอที่nดังนั้นเวลาทำงานเป็นO ( 1 ) ในกรณีนี้Nจะเหมาะสมที่สุดMยังไม่มีข้อความnO(1)ยังไม่มีข้อความ

ในระยะสั้น:

M หยุดพักบนเทปเปล่า ยังไม่มีข้อความ เป็นแง่ดี 

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

อาร์กิวเมนต์ที่คล้ายกันสามารถใช้สำหรับพื้นที่ได้เช่นกันก็ยังไม่สามารถตัดสินใจได้ว่าเครื่องทัวริงที่ได้รับนั้นเหมาะสมที่สุดสำหรับพื้นที่ที่ใช้หรือไม่

แม้คำสั่งที่แข็งแกร่งจะเป็นจริง: เราไม่สามารถตัดสินใจได้ว่าฟังก์ชันคำนวณที่ได้รับนั้นมีขอบเขตบนความซับซ้อนของเวลาในการคำนวณฟังก์ชันที่คำนวณได้ ในทำนองเดียวกันสำหรับพื้นที่ เช่นแม้กระทั่งทฤษฎีความซับซ้อนขั้นพื้นฐานไม่สามารถดำเนินการอัตโนมัติด้วยอัลกอริทึม (ซึ่งถือได้ว่าเป็นข่าวดีสำหรับนักทฤษฎีความซับซ้อน;)


เพียงแค่ต้องการพูดถึงว่าในคำถามเดิม OP สันนิษฐานว่าตัดสินใจภาษาในเวลากำลังสอง M1
Pål GD

โปรดอธิบายว่าคุณดูการเพิ่มประสิทธิภาพเชิงซีมโทติค แม้ในกรณีที่ 2 ไม่ได้ดีที่สุดอย่างเคร่งครัด ฟังก์ชั่นn YESสามารถคำนวณได้ในขั้นตอนเดียวในขณะที่Nต้องการมากกว่าn 0 (สำหรับnขนาดใหญ่) ด้วยn 0ความยาวของการคำนวณของMบนเทปเปล่า nnใช่ยังไม่มีข้อความn0nn0M
กราฟิลส์

อ่าคำถามเปลี่ยนไปตั้งแต่ฉันอ่านครั้งล่าสุด ไม่เป็นไร.
Raphael

@ PålGDฉันคิดว่า OP ใช้มันเป็นตัวอย่าง (ตามคำถามเดิมที่โพสต์บน cstheory) คุณสามารถตรวจสอบความคิดเห็นภายใต้คำถามนั้น
Kaveh

2

ตามที่คนอื่น ๆ กล่าวถึงคำตอบคือไม่

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

เป็นสถานที่ที่ดีมาก!


-3

ฮา! คำตอบคือใช่เราจะอยู่ในโลกที่แตกต่าง

ลองนึกภาพว่าคำตอบสำหรับคำถามของคุณคือใช่ (และแน่นอนว่าเรารู้อัลกอริทึมที่จะตอบคำถามของคุณ) จากนั้นสำหรับอัลกอริทึมAสำหรับภาษาLเราจะสามารถบอกได้ (ใช้A 0 ) ถ้าAเหมาะสมที่สุด หรือไม่.A0ALA0A

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


1
สำหรับปัญหาบางอย่างมีขอบเขตที่รู้จักของฟอร์มและอัลกอริธึมที่ตอบสนองสิ่งนี้ ตัวอย่างง่าย ๆ เช่นการเรียงลำดับโดยการเปรียบเทียบการค้นหาองค์ประกอบที่น้อยที่สุดของอาร์เรย์ Ω(ยังไม่มีข้อความ)
vonbrand

1
ก่อนอื่น "ดีที่สุด asymptotically" ไม่เหมือนกับ "ดีที่สุด" ประการที่สองคุณไม่ตอบคำถาม ประการที่สามมีขอบเขตต่ำกว่าสำหรับอัลกอริธึมการเรียงลำดับ (บางชนิด) Ω(nเข้าสู่ระบบn)
Raphael

@ vonbrand - นั่นคือสิ่งที่ฉันหมายถึงโดยอัลกอริทึมที่ได้สัดส่วนกับขนาดอินพุต
ถึง

1
@thothet ตกลงฉันกลัวว่ามันจะไร้ผล แต่ฉันจะลองอีกครั้ง 1) ไม่เลย หากคุณบันทึกเพียงหนึ่งขั้นตอนในทุกอินพุตคุณมีอัลกอริทึมที่ดีกว่าเมื่อก่อนแม้ว่าจะมีรันไทม์แบบอะซิมโทติกเดียวกัน 2) ไม่เลย มันอาจหมายถึง "ฉันไม่รู้เหมือนกัน แต่ถ้าใช่ก็หมายความว่า X" นี่ไม่ใช่เรื่องแปลก (cf P? = NP) 3) คุณอ้างว่ามีไม่มีขอบเขตต่ำไม่น่ารำคาญ (ใน asymptotics ผมถือว่า) ที่ทั้งหมด ว่าเป็นสิ่งที่ผิด. กรุณาทำการบ้านของคุณ
กราฟิลส์

1
@ MartinJonášฉันหมายถึงเครื่องจักรทัวริง 2 เทป Kaveh มีประเด็นการพิสูจน์ทฤษฎีบทลำดับชั้นของเวลาทำให้เกิดปัญหาที่สามารถแก้ไขได้โดยมีความซับซ้อนสูงตามอำเภอใจโดยพลการ แต่ตัวอย่างก็ไม่เป็นธรรมชาติและไม่รู้สึกชัดเจนมาก ยิ่งไปกว่านั้นลำดับชั้นไม่เป็นที่รู้จักสำหรับความน่าจะเป็นดังนั้นเราจึงไม่มีอะไรจริงๆ
Sasho Nikolov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.