Komputasi Evolusioner Menjanjikan Pemrograman Mandiri

Komputasi Evolusioner Menjanjikan Pemrograman Mandiri – Bagaimana jika komputer dapat memprogram diri mereka sendiri?

Komputasi Evolusioner Menjanjikan Pemrograman Mandiri

Alih-alih pekerjaan yang melelahkan untuk mengetahui bagaimana komputer dapat memecahkan masalah dan kemudian menulis instruksi kode yang tepat, yang harus Anda lakukan hanyalah memberi tahu apa yang Anda inginkan dan komputer akan menghasilkan algoritme yang memecahkan masalah Anda.

Masukkan komputasi evolusioner, yang dapat dilihat sebagai jenis kecerdasan buatan dan cabang dari pembelajaran mesin. Pertama kali disarankan pada 1950-an, komputasi evolusioner adalah gagasan bahwa komputer dapat mengembangkan solusi sendiri untuk masalah, daripada manusia harus melalui serangkaian langkah yang mungkin rumit untuk menulis program komputer itu sendiri. https://www.premium303.pro/

Secara teori, ini berarti program komputer yang mungkin membutuhkan waktu berminggu-minggu untuk diprogram secara manual dapat siap dalam hitungan menit.

Ide ini memungkinkan komputer untuk memecahkan masalah kompleks yang mungkin tidak dipahami dengan baik dan sulit untuk ditangani manusia. Ilmuwan komputer telah menggunakan komputasi evolusioner pada banyak masalah, termasuk merumuskan campuran bahan terbaik untuk pakan udang, optimalisasi portofolio, telekomunikasi, bermain game, dan pengemasan otomatis.

Dan para peneliti yang telah mempelajari komputasi evolusioner selama lebih dari 60 tahun telah membuat kemajuan yang luar biasa. Bahkan menjadi subyek beberapa jurnal ilmiah. Namun, seperti yang saya catat dalam makalah baru -baru ini, ide tersebut masih belum digunakan secara luas di luar komunitas riset. Jadi mengapa komputasi evolusioner tidak berkembang lebih cepat?

Bagaimana cara kerja komputasi evolusioner?

Perhitungan evolusioner mengacu pada prinsip- prinsip evolusi alami Charles Darwin, yang umumnya dikenal sebagai survival of the fittest. Artinya, anggota spesies yang paling lemah (kurang beradaptasi dengan baik) mati dan yang terkuat bertahan. Selama beberapa generasi, spesies akan berevolusi menjadi lebih baik beradaptasi dengan lingkungannya.

Dalam komputasi evolusioner, komputer menciptakan populasi solusi potensial untuk suatu masalah. Ini sering kali merupakan solusi acak, sehingga tidak mungkin menyelesaikan masalah yang sedang ditangani atau bahkan mendekati. Tetapi beberapa akan sedikit lebih baik daripada yang lain.

Komputer dapat membuang solusi terburuk, mempertahankan solusi yang lebih baik, dan menggunakannya untuk “membiakkan” solusi yang lebih potensial. Bagian dari solusi yang berbeda akan digabungkan (ini sering disebut “crossover”) untuk membuat solusi generasi baru yang kemudian dapat diuji dan prosesnya dimulai lagi.

Elemen penting lainnya dari perhitungan evolusioner, seperti halnya seleksi alam, adalah mutasi. Sering kali, perubahan kecil dan acak dilakukan pada salah satu solusi yang diuji. Ini berarti solusi potensial baru dapat dibuat yang tidak mungkin hanya dengan menggunakan crossover.

Semoga kombinasi crossover dan mutasi akan menghasilkan solusi potensial baru yang lebih baik dari “induknya”. Ini mungkin tidak terjadi setiap saat, tetapi karena semakin banyak generasi yang dihasilkan, solusi yang lebih baik kemungkinan besar akan muncul. Bukan hal yang aneh jika perhitungan evolusioner melibatkan jutaan generasi, seperti halnya seleksi alam yang membutuhkan waktu jutaan tahun untuk mengubah spesies hidup secara nyata.

Salah satu jenis komputasi evolusioner yang paling populer adalah pemrograman genetik. Ini melibatkan satu program komputer yang mengembangkan program kerja lain untuk mengatasi masalah tertentu.

Pengguna memberikan beberapa ukuran tentang apa yang terdiri dari program yang baik dan kemudian proses evolusi mengambil alih, dengan harapan mengembalikan program yang memecahkan masalah.

Kita dapat melacak pemrograman genetik kembali ke akhir 1980-an, dengan salah satu pendukung utamanya adalah John Koza. Tetapi meskipun sejak itu telah membuat kemajuan penelitian yang signifikan, pemrograman genetik tidak digunakan setiap hari oleh organisasi komersial atau pengguna komputer rumahan.

Mengingat betapa sulitnya mengembangkan sistem perangkat lunak yang bekerja secara efektif dan efisien, tampaknya masuk akal untuk meminta bantuan komputer dengan cara yang sama seperti mereka mengubah banyak industri lain.

Mengapa perhitungan evolusioner tidak diadopsi?

Sektor komersial belum menganut komputasi evolusioner karena memiliki teknologi lain yang dikembangkan oleh para peneliti. Misalnya, pencetakan 3D ditemukan pada 1980-an dan setelah periode pengembangan yang lama, sekarang digunakan di industri manufaktur dan bahkan oleh orang -orang di rumah mereka.

Demikian pula, augmented reality, realitas virtual, dan kecerdasan buatan telah muncul dari komunitas riset dan menjadi produk utama bagi perusahaan teknologi besar.

Salah satu masalah utama yang menahan komputasi evolusioner adalah kegagalan para peneliti untuk fokus pada masalah yang akan dikenali oleh sektor komersial. Misalnya, ilmuwan komputer telah mempelajari secara intensif bagaimana komputasi evolusioner dapat digunakan untuk menjadwalkan jadwal ujian atau menentukan rute kendaraan.

Tetapi peneliti seringkali hanya mempelajari versi sederhana dari masalah yang tidak banyak digunakan di dunia nyata. Misalnya, banyak simulasi rute kendaraan melibatkan penghitungan jarak antara dua titik menggunakan garis lurus.

Rute kendaraan di dunia nyata jarang mengikuti garis lurus, dan harus berhadapan dengan sistem satu arah, kerusakan, masalah hukum (seperti berapa lama sebelum pengemudi harus beristirahat), batasan waktu, dan banyak lagi. Namun, kompleksitas ini sebenarnya di mana komputasi evolusioner dapat membantu.

Jika Anda dapat secara memadai mendefinisikan masalah seperti yang terjadi di dunia nyata, maka algoritma evolusioner harus mampu menangani kompleksitasnya.

Masalah lainnya adalah bahwa solusi yang dihasilkan oleh komputasi evolusioner seringkali sulit untuk dijelaskan. Misalnya, meskipun sistem pemrograman genetik dapat menciptakan solusi dengan hasil yang sempurna, cara kerjanya mungkin menjadi misteri bagi pemrogram manusia karena sistem tersebut mungkin telah menghasilkan kode kompleks yang sulit untuk ditafsirkan dan dipahami.

Sistem komputasi evolusioner juga rumit untuk diterapkan dan didukung dan ini dapat menunda beberapa organisasi komersial. Akan membantu jika ada kerangka kerja yang mudah digunakan yang menyembunyikan banyak kerumitan yang mendasarinya. Sementara kerangka kerja ini ada di komunitas ilmiah, mereka tidak mudah diakses oleh sektor komersial, apalagi pengguna rumahan.

Arsitek komputer terkenal IBM Frederick Brooks mengatakan bahwa Anda tidak dapat menangani proyek pengembangan perangkat lunak yang semakin besar hanya dengan melemparkan lebih banyak orang ke dalamnya.

Komputasi Evolusioner Menjanjikan Pemrograman Mandiri

Akan sangat membantu industri pengembangan perangkat lunak jika, daripada harus mengembangkan setiap bagian sistem secara manual, pengembang dapat menentukan persyaratan bagian-bagian utamanya dan membiarkan proses evolusioner memberikan solusi.