Jika kita memiliki program komputer sewenang-wenang yang dapat memodifikasi instruksinya, apakah mungkin untuk mensimulasikan program itu dengan program yang tidak dapat memodifikasi instruksinya?
Edit:
Saya baru mengenal stackexchange jadi tidak yakin apakah saya diperbolehkan mengajukan pertanyaan BARU di sini, tapi begini: Ok jadi buktinya mungkin sebenarnya sebenarnya sangat sederhana seperti yang kalian tunjukkan. Sekarang, saya bertanya-tanya: Apakah ada masalah yang lebih efisien (dan sampai sejauh mana) untuk menggunakan algoritma pengubah-sendiri yang paling efisien untuk menyelesaikan masalah, versus algoritma non-self-termodifikasi yang setara dengan input-output yang paling efisien?
Model komputasi Turing-complete yang tidak memiliki kode modifikasi (atau "kode") berfungsi sebagai bukti pernyataan itu. Aku tidak tahu bahwa salah satu model standar (TM, RAM, ...) jangan memiliki memodifikasi kode, jadi kita tidak perlu melihat terlalu jauh.
Untuk mendapatkan program dalam bahasa apa pun yang ada dalam pikiran Anda, kompilasi dari model seperti itu (dan pastikan bahwa kompiler tidak memperkenalkan modifikasi kode).
Hal ini, tentu saja, argumen eksistensial: ada adalah program setara. Tetapi kita juga tahu bahwa ada kompiler rekursif (yaitu komputable) antara dua bahasa Turing-complete, jadi itulah cara Anda mendapatkan program bentuk (baca: dalam bahasa) yang Anda inginkan.
sumber
Untuk menambahkan jawaban David Richerby :
Jika memang benar bahwa tidak ada algoritma modifikasi diri tidak dapat dimodelkan oleh algoritma non-modifikasi diri, maka algoritma tersebut harus dijalankan pada sesuatu yang juga memodifikasi diri. Itu harus kura-kura sepanjang jalan.
Seperti yang saya sebutkan dalam komentar saya, algoritma modifikasi diri dapat dijalankan pada prosesor yang dengan sendirinya mematuhi aturan algoritma statis (yang dikodekan dalam desainnya) yang "memberi tahu" bagaimana cara menjalankan instruksi mesin.
sumber
cat
. (Tidak ada permainan kata-kata yang dimaksudkan, meskipun kucing adalah makhluk hidup)