Seorang teman saya tanpa pengetahuan pemrograman bertanya kepada saya pertanyaan ini dan saya menemukan itu menarik.
Saya pikir itu tidak mungkin karena akan membutuhkan kecerdasan buatan yang benar-benar canggih yang mampu menganalisis teks masalah, memikirkan solusi dan memprogramnya. Hanya memikirkan mesin yang dapat memprogram kalkulator sederhana tampaknya cukup canggih bagi saya.
Tapi mungkin saya salah dan saya ingin tahu apa pendapat Anda tentang hal itu dan jika Anda mengetahui ada artikel / penelitian tentang subjek, atau jika sudah ada atau jika ada kemungkinan memilih spesifikasi, dan mendapatkan mesin untuk memprogram sendiri ke "spek ini?"
Jawaban:
Joel benar-benar menjawab yang ini beberapa tahun yang lalu . Arti sebenarnya dari "mengajarkan mesin bagaimana memprogram dengan sendirinya" adalah "mengajar mesin bagaimana mengambil spec dan membuat program yang sesuai dengan spec itu." Dan dengan itu dalam pikiran:
Satu-satunya cara untuk menyiasatinya adalah dengan menghasilkan komputer sapient yang sebenarnya dengan cukup intuisi untuk melakukan semua pengisian-kosong yang Anda dan saya lakukan secara otomatis, setiap saat, ketika memproduksi perangkat lunak ... dalam hal ini Anda akan berakhir dengan komputer yang memprogram dirinya sendiri serta pengembang manusia. ;)
sumber
Tentu, kita melakukan ini semua dengan waktu (untuk subset sangat terbatas masalah). Cukup sepele untuk membayangkan mengambil satu atau dua langkah lagi dan mengikat sesuatu seperti Siri ke dalam input pembuat kode ini (atau sesuatu seperti Wolfram Alpha) yang pada gilirannya menulis kode dan menyelesaikan masalah Anda. Saya berharap sesuatu sudah ada di suatu tempat untuk melakukan hal-hal yang paling mendasar.
Masalah dengan menulis perangkat lunak yang kompleks untuk bisnis tidak membuat program untuk menulis kode - itu menulis program untuk mendapatkan persyaratan.
sumber
Saya pikir jawaban @Mason Wheeler memegang ide kunci. Bunyinya seperti ini:
Entropi Shannon dari Tic-tac-toe sangat kecil. Jadi kami menyebut tic-tac-toe permainan "diselesaikan" atau "deterministik". Ini tidak terlalu menarik setelah Anda lulus sekolah dasar. Checker memiliki entropi yang lebih tinggi, jika Anda mempertimbangkan entropi dari semua game yang mungkin Anda mainkan. Tetapi catur juga merupakan permainan yang "diselesaikan" atau "deterministik". Jika Anda bergerak lebih dulu, Anda seharusnya hanya menang atau seri. Catur memiliki entropi yang jauh lebih tinggi, tetapi tidak ada manusia yang mengalahkan pemain komputer terbaik sejak tahun 2006. Jadi, komputer telah menguasai catur dengan cara yang tidak bisa dilakukan manusia. Big Blue menganalisis wikipedia, dan kemudian memainkan Jeopardy melawan pemain manusia, dan mengalahkan mereka dengan baik.
Apa berikutnya? Apa entropi sebuah novel, atau soneta Shakepeare?
Demikian pula, di ruang pemrograman, apa yang mungkin akan muncul adalah peningkatan kompetensi. Prolog membahas sekumpulan masalah komputer tempat Anda menyiapkan masalah dan komputer menyelesaikan jawabannya. Seseorang mungkin akan menemukan kelas-kelas masalah pemrograman sederhana yang dapat dipenuhi oleh sebuah komputer, dll. Kemudian seseorang akan membangunnya untuk menghasilkan "kustomisasi permintaan" dalam beberapa ruang masalah. Dan begitulah seterusnya.
Saya pikir pertanyaannya berubah menjadi, berapa lama waktu yang dibutuhkan AI untuk menguasai jumlah entropi tertentu ... dan berapa banyak sumber daya komputasi yang dibutuhkan? Saya pikir tidak dapat dibayangkan bahwa komputer tidak dapat menguasai entropi yang dikuasai oleh otak manusia terbaik - tidak ada keajaiban tentang otak - tetapi pertanyaannya adalah, berapa banyak inti yang Anda butuhkan, dan berapa abad yang dibutuhkan untuk sampai di sana?
Tapi ... apakah komputer bisa melakukan pekerjaan saya ? Tak terbayangkan!
sumber
Ini sulit dijawab karena, seperti halnya dengan kecerdasan buatan, setelah kita menyelesaikan ini, itu karena kita akan menulis sebuah program yang melakukannya. Dan kritikus akan berkata, "Yah, mesin ini tidak benar-benar pemrograman itu sendiri! Itu hanya mengikuti persis program yang Anda berikan itu!"
Baiklah. Apa pun yang akan kita capai dengan komputer, kita akan lakukan dengan memberikannya beberapa program dan akan menjalankannya. Jika itu argumen yang menentang, maka kita tidak bisa mencapai apa pun. Namun, pada titik tertentu, orang-orang berpikir komputer bermain catur akan jelas-jelas cerdas. Sekarang mereka bisa, dan kami tahu persis bagaimana, dan kami tidak berpikir itu cerdas. Kapal selam masih belum bisa berenang.
Jadi - perhatikan beberapa contoh.
Sejak puluhan tahun, kami memiliki generator parser . Anda memberi mereka deskripsi bahasa, itu diproses dan hasilnya adalah kode untuk parser untuk bahasa itu. Kita tahu persis bagaimana itu dilakukan, tetapi bukankah itu pemrograman komputer itu sendiri?
Editor kedua yang memberi tahu Anda bahwa Anda membuat kesalahan (kesalahan sintaks, variabel yang tidak ada, dll.). Itu tidak memprogram apa pun itu sendiri, tetapi dapat memberitahu Anda bahwa Anda melakukan sesuatu yang salah. Ini sangat banyak di permukaan saja.
Bahasa tempat Anda cukup mengeklik dan menarik kontrol UI, dan kode yang benar-benar membuatnya berfungsi dihasilkan secara otomatis.
Kompiler JIT. Perangkat lunak yang dapat mengenali hotspot dalam perangkat lunak yang saat ini berjalan dan menggantinya dengan kode terkompilasi yang sangat dioptimalkan, secara optimal mengoptimalkan dirinya saat dijalankan. Saya pikir ini adalah contoh dari apa yang tampaknya menjadi pemrograman mesin itu sendiri, sampai Anda tahu persis bagaimana hal itu terjadi, dan kemudian ternyata hanya melakukan apa yang dikatakan oleh programmer, seperti biasa.
Bermain game umum. Ini adalah bidang penelitian yang menarik, di mana para peneliti menulis program yang dapat membaca deskripsi aturan permainan, yang kemudian dimainkan oleh program-program tersebut. Jadi alih-alih program tic-tac-toe atau program catur, ini adalah program yang membaca aturan tic-tac-toe atau catur atau permainan baru yang dibuat di tempat, dan kemudian dapat memainkannya. Program ini tidak memprogram dirinya sendiri, tetapi bermain catur tanpa aturan catur yang telah dikodekan. Ada saat ketika ini jelas akan dianggap komputer yang mengajarkan sesuatu.
Kami telah mengambil banyak langkah kecil ke arah umum.
Tapi saya tidak bisa memikirkan program apa pun yang menulis ulang sendiri berdasarkan hasil dari berjalan sebelumnya, atau yang dapat mengenali rutinitas usang atau tidak efisien dalam kode mereka sendiri. Saya pikir suatu hari nanti kita akan memilikinya, dan kita akan menganggapnya tidak ada yang istimewa sama sekali, karena itu hanya beberapa fitur dari kompiler terbaru ...
sumber
Tidak saat ini dan tidak di masa mendatang karena Anda membutuhkan semua kompleksitas otak manusia yang luar biasa untuk membuat program. Dan meskipun begitu, otak-otak itu harus sangat terlatih agar dapat melakukannya dengan benar, dan bahkan pada saat itu tidak semua dari mereka mampu melakukan tugas itu meskipun orang dapat berpendapat bahwa dengan waktu yang cukup Anda dapat melatih siapa saja untuk memprogram.
Saya mengambilnya dari cara Anda mengutarakan pertanyaan Anda sehingga Anda tidak berbicara tentang tugas sederhana yang ditiru.
Anda meminta artikel dan artikel Science Blog ini tentang Mengembangkan Kecerdasan menjawab pertanyaan itu dalam banyak cara.
sumber