Sebagai bagian dari tugas saya harus menulis algoritma pemrograman genetika yang melakukan prediksi tingkat polusi atmosfer. Karena saya tidak punya pengalaman, siapa pun bisa mengarahkan saya ke proposisi bahasa pemrograman di mana program yang dikembangkan akan ditulis .
Klarifikasi: Saya tidak bertanya bahasa apa yang akan saya gunakan untuk menulis algoritma genetika itu sendiri (karena saya akan dapat mengambil keputusan sendiri), saya bertanya dalam bahasa pemrograman apa program yang dikembangkan harus dibuat.
Instruktur saya menyarankan Lisp, tapi saya tidak suka ide ini --- pertama saya harus bekerja pada semacam Pohon Sintaks Abstrak, yang kedua melakukan crossover pada struktur pohon dapat menjadi berantakan.
Saya lebih suka menggunakan sesuatu yang didedikasikan untuk pemrograman genetik seperti garis miring / A . SlashA tidak perlu bekerja pada ASTs --- program dalam bytecode hanyalah sebuah array int yang dapat diubah dalam setiap fasi yang diperlukan karena setiap array int mewakili beberapa program slash / A.
Tanda tambahan:
- Saya ingin menghindari memanipulasi AST!
- Masalah ini sulit (mungkin tidak sesulit memprediksi nilai saham). Ini disebabkan oleh fakta bahwa (kemungkinan besar) kami tidak memiliki informasi input yang cukup (ada beberapa parameter tersembunyi). Membuat model yang memiliki kinerja yang lebih baik daripada model yang mengembalikan rata-rata adalah sedikit tantangan (model rata-rata memiliki 35% MAPE), sebagian besar model memiliki MAPE sekitar 25%, terbaik memiliki 20%.
- Saya ingin memiliki bahasa yang mengelola kumpulan data dengan banyak fitur dengan asumsi bahwa saya tidak yakin mana yang penting. (Slash / A memiliki kelemahan di sini --- dalam bahasa ini fitur input dibaca berurutan --- sehingga beberapa fitur akan digunakan dengan probabilitas lebih besar).
- Saya ingin dapat memprogram ini dengan Python, jadi python lib akan lebih bagus --- tapi saya bisa melakukan binding untuk C / C ++ (tidak ada Java, tidak ada Matlab, dll).
Saya sadar ini adalah pertanyaan survei, jadi jika terlalu dini untuk pertanyaan seperti itu silakan tutup, tapi saya rasa itu cukup spesifik.
Jika Anda ingin mengembangkan program, Anda kemungkinan besar akan memanipulasi pohon sintaksis; dengan cara itu program apa pun yang Anda evolusi akan secara otomatis benar secara sintaksis.
Ada dua hal yang perlu Anda ingat ketika memilih bahasa.
Saya akan memilih menentang bahasa assembly untuk alasan yang sama, meskipun mesin virtual seperti JVM dan CLR harus memberi Anda sesuatu dari jaring pengaman.
Anda mungkin ingin menggunakan bahasa target yang sudah Anda kenal. Saya sendiri tidak terbiasa dengan Python, tetapi AFAIK memenuhi kriteria di atas, jadi itu harus menjadi pilihan yang baik untuk bahasa target Anda.
sumber