Itu karena bahasa adalah cara terbaik (satu-satunya?) Yang kita miliki untuk memformalkan konsep "masalah".
Algoritma (Mesin Turing) memiliki kinerja, yang kami nyatakan melalui kompleksitas O-besar. Masalah (bahasa) milik kelas kompleksitas. Ini biasanya ditentukan oleh keberadaan: jika ada mesin yang menerima bahasa yang berjalan dalam kinerja yang diberikan (ruang atau waktu), maka bahasa tersebut termasuk kelas kompleksitas yang sesuai.L.
Ada beberapa alasan untuk ini. Pertama adalah bahwa bahasa adalah platform independen. Anda tidak khawatir tentang apakah integer adalah 32 atau 64 bit, atau apakah operasi floating point berjalan paralel dengan operasi lain. Hal-hal ini memberikan peningkatan kinerja di tingkat mikro, tetapi analisis kompleksitas tertarik pada tingkat makro. Saat Anda menskalakan input dari 100 menjadi hingga hingga , bagaimana kinerja algoritma berubah? Apakah ia beralih dari menggunakan 1 juta sel pita menjadi 1 miliar, atau dari 1 juta sel lebih banyak daripada jumlah atom di alam semesta?1061091012
Yang kedua adalah bahwa bahasa hanyalah abstraksi yang bagus untuk data. Anda membutuhkan sesuatu yang dapat Anda lakukan sebagai bukti, sesuatu yang dapat Anda modelkan secara formal. Pengkodean input dan output Anda sebagai string berarti bahwa Anda sekarang berhadapan bukan dengan bit dalam memori, tetapi dengan objek matematika dengan properti tertentu. Anda dapat bernalar tentang mereka dan membuktikan bukti tentang mereka dalam arti formal, dan sangat sederhana.
Teori kompleksitas cenderung berfokus pada masalah keputusan karena mereka akhirnya menjadi sulit. Ketika versi keputusan salesman keliling NP-complete (yaitu apakah ada tur lebih pendek dari panjang ), maka jelas menemukan jalur terpendek lebih sulit. Tidak ada banyak fokus pada masalah fungsi / optimasi karena masih ada banyak pertanyaan terbuka dan masalah yang belum terpecahkan tentang masalah keputusan yang lebih sederhana.k
Saya kira inilah tantangan saya untuk Anda: temukan cara untuk menjelaskan masalah yang bukan bahasa secara matematis. Saya tidak tahu apakah bahasa itu spesial, tetapi saya pikir itu adalah alat paling sederhana yang kami punya, yang paling mudah untuk diatasi.