Mungkin jawabannya adalah rekan kerja Anda benar. Mungkin Anda salah mengerti Turing, atau bagaimana penerapannya di sini?
Semua mesin terbatas, oleh karena itu tidak ada mesin Turing 'nyata' dan tidak ada program yang tidak akan pernah berhenti. Program sepele yang mengeksekusi loop infinite sederhana dapat berjalan 5 menit atau 50 tahun tetapi pada mesin yang terbatas itu akan berhenti. Masalah non-sepele yang non-sepele seperti 'menghitung pi dengan tepat' juga akan berhenti, karena pada akhirnya perhitungan akan melebihi kapasitas untuk menyimpan angka lebih lanjut.
Hasil Turing tidak menjamin apa pun yang sangat berguna pada mesin yang terbatas, sehingga pencarian Anda pada akhirnya tidak membuahkan hasil. Lebih baik fokus pada berapa banyak waktu dan berapa banyak uang dan biarkan tak terhingga bagi para matematikawan.
Anda mungkin berpikir bahwa program seperti { while true: print "running"; print "halted"; }
adalah contoh tandingan tetapi tidak. Program ini memiliki efek samping, yang mungkin atau tidak dapat menghentikannya. Mengabaikan efek samping, adalah mungkin untuk menemukan bukti formal bahwa program ini tidak akan berhenti. Dalam pertanyaan ini kami hanya memusatkan perhatian pada program-program yang menghindari bukti formal tidak berhenti, di mana pertanyaan berhenti tidak dapat diputuskan. Ini bukan program seperti itu.
Mungkin membantu membedakan Turing 'kuat' dari Turing 'lemah'. Mesin Turing yang kuat sebenarnya tak terbatas dan jika gagal berhenti, akan berjalan untuk waktu yang tak terbatas. Kita tidak bisa membangun itu.
Mesin Turing yang lemah memiliki batas waktu dan ruang yang terbatas, dan mereka adalah satu-satunya jenis yang dapat kita bangun. Kami tertarik pada program yang tidak dapat dibuktikan berhenti dalam batas-batas itu. Turing memberi tahu kami bahwa ada program semacam itu tetapi kami tidak dapat mengidentifikasi mereka. Jika batasnya cukup rendah, kami dapat mengidentifikasinya dengan menulis program dan menjalankannya hingga batasnya.
Inti dari Turing adalah tidak ada jalan pintas. Satu-satunya cara untuk memastikan apakah suatu masalah layak secara komputasi adalah dengan menulis program, menjalankannya, dan mencari tahu. Dengan waktu dan uang yang cukup, Anda dapat menulis semua program, menjalankannya selamanya dan seiring waktu, dan menemukan program yang menghasilkan hasil (penghalang). Yang lain masih akan berjalan. Apakah Anda rekan kerja punya cukup waktu dan uang untuk melakukan itu?
Namun serius, perselisihan adalah tentang batasan. Turing dan NP selesai memberi tahu kami bahwa kelas masalah tertentu tidak dapat diselesaikan oleh komputer dalam anggaran apa pun atau pada jadwal apa pun, tidak peduli seberapa besar anggaran itu atau seberapa murahnya jadwal itu. Contoh-contoh masalah semacam itu berlimpah: putus kunci kriptografi; mengoptimalkan rute untuk melakukan pengiriman ke ratusan alamat; kotak kemasan di truk; menemukan bug dalam program besar!
Jadi mintalah rekan kerja Anda anggaran dan jadwal, dan buat janji bahwa Anda dapat menghasilkan masalah yang tidak dapat diselesaikan dalam anggaran atau jadwal itu. Janji itu akan sangat mudah untuk ditepati.