Share to: share facebook share twitter share wa share telegram print page

Algoritma evolusioner

Algoritma evolusioner (bahasa Inggris: Evolutionary algorithm atau disingkat EA) adalah teknik komputasi yang terinspirasi dari mekanisme dasar evolusi biologis. Algoritma ini digunakan untuk menyelesaikan masalah optimasi atau pencarian solusi yang sulit, terutama ketika tidak tersedia metode eksak maupun algoritmik yang efisien. EA termasuk ke dalam metaheuristik dan juga merupakan algoritma berbasis populasi yang terinspirasi oleh biologi.[1] Selain itu, EA juga merupakan bagian dari komputasi evolusioner yang merupakan cabang dari kecerdasan komputasional.[2] Mekanisme utama evolusi biologis yang ditiru oleh EA adalah reproduksi, mutasi, rekombinasi, dan seleksi. Dalam implementasinya, solusi kandidat masalah optimasi diperlakukan sebagai individu dalam sebuah populasi, sementara fungsi fitness digunakan untuk menilai kualitas solusi (lihat juga fungsi kerugian). Evolusi populasi kemudian berlangsung melalui penerapan berulang operator-operator tersebut.

Algoritma evolusioner sering menunjukkan kinerja yang baik dalam menghampiri solusi berbagai jenis permasalahan karenaalgoritma ini tidak membuat asumsi tertentu mengenai bentuk fitness landscape yang mendasarinya secara. Penerapan teknik algoritma evolusioner untuk pemodelan evolusi biologis umumnya terbatas pada eksplorasi proses mikroevolusi, serta pada model perencanaan berbasis proses seluler. Dalam sebagian besar aplikasi EA yang sebenarnya, kompleksitas komputasi menjadi faktor pembatas.[3] Kompleksitas ini terutama disebabkan oleh evaluasi fungsi fitness yang umumnya dapat diatasi dengan aproksimasi fitness. Meskipun demikian, EA yang tampaknya sederhana dapat memecahkan masalah yang seringkali rumit.[4][5][6] Oleh karena itu, tidak selalu terdapat hubungan langsung antara kompleksitas algoritma dengan kompleksitas masalah.

Definisi umum

Berikut ini adalah contoh algoritma evolusi yang umum:[7][8][9]

  1. Menghasilkan populasi awal (generasi pertama) individu secara acak.
  2. Mengevaluasi fitness setiap individu dalam populasi.
  3. Memeriksa, apakah tujuan tercapai dan algoritma dapat dihentikan.
  4. Memiliki individu sebagai orang tua, individu yang memiliki fitness yang lebih tinggi lebih disukai.
  5. Menghasilkan keturunan dengan persilangan (meniru reproduksi ).
  6. Menerapkan operasi mutasi pada keturunannya.
  7. Memilih individu yang fitness-nya lebih rendah untuk diganti dengan individu baru (meniru konsep seleksi alam).
  8. Kembali ke 2.

Jenis

Teknik-teknik yang serupa biasanya berbeda dalam hal representasi genetik maupun implementasi detail lainnya, serta bergantung pada sifat masalah yang diterapkan.

  • Algoritma genetika – Jenis EA yang paling populer. Solusi direpresentasikan dalam bentuk rangkaian angka (biasanya biner, meskipun representasi terbaik biasanya yang mencerminkan masalah yang sedang dipecahkan),[3] dengan menerapkan operator seperti rekombinasi dan mutasi (terkadang salah satu dan terkadang keduanya). Jenis EA ini sering digunakan dalam masalah optimasi .
  • Pemrograman Genetik – Solusi direpresentasikan dalam bentuk program komputer, dan fitness ditentukan dari kemampuan program tersebut dalam menyelesaikan suatu permasalahan komputasional. Ada banyak varian Pemrograman Genetik:
  • Pemrograman evolusioner – Mirip dengan strategi evolusi, tetapi menggunakan seleksi deterministik untuk semua orang tua.
  • Strategi evolusi (ES) – Menggunakan vektor bilangan riil sebagai representasi solusi, dan biasanya menggunakan laju mutasi adaptif. Metode ini terutama digunakan untuk optimasi numerik, meskipun terdapat juga varian untuk tugas kombinatorial.[10][11][12]
    • CMA-ES
    • Strategi evolusi alami
  • Evolusi diferensial – Berdasarkan selisih vektor sehingga cocok untuk masalah optimasi numerik .
  • Algoritma koevolusi – Mirip dengan algoritma genetika dan strategi evolusi, tetapi solusi yang dihasilkan dibandingkan berdasarkan hasil interaksinya dengan solusi lain. Solusi dapat bersaing atau bekerja sama selama proses pencarian. Algoritma koevolusi sering digunakan dalam skenario di mana lanskap fitness bersifat dinamis, kompleks, atau melibatkan interaksi kompetitif.[13][14]
  • Neuroevolusi – Mirip dengan pemrograman genetik, tetapi genom merepresentasikan jaringan saraf tiruan dengan mendeskripsikan struktur dan bobot koneksi. Pengkodean genom dapat bersifat langsung maupun tidak langsung.
  • Sistem pengklasifikasi belajar (Learning classifier system, LCS) – Solusi berupa seperangkat pengklasifikasi (aturan atau kondisi).
    • Michigan-LCS berevolusi pada level pengklasifikasi individual.
    • Pittsburgh-LCS menggunakan populasi dari himpunan pengklasifikasi. Awalnya, pengklasifikasi hanya berupa biner, tetapi kini juga mencakup tipe riil, jaringan saraf, atau S-expression. Penilaian fitness biasanya menggunakan pendekatan pembelajaran penguatan (reinforcement learning) berbasis kekuatan atau akurasi, maupun pembelajaran terawasi.
  • Algoritma Kualitas–Keragaman – Algoritma QD secara bersamaan bertujuan untuk menghasilkan solusi berkualitas tinggi dan beragam. Tidak seperti algoritma optimasi tradisional yang hanya berfokus pada pencarian solusi terbaik untuk suatu masalah, algoritma QD mengeksplorasi beragam solusi di seluruh ruang masalah dan mempertahankan solusi yang tidak hanya berkinerja tinggi, tetapi juga beragam dan unik.[15][16][17]

Latar belakang teoritis

Prinsip teoritis berikut berlaku untuk semua atau hampir semua EA.

Teorema tidak ada makan siang gratis

Menurut teorema tidak ada makan siang gratis dalam optimasi, semua strategi optimasi sama efektifnya jika dipertimbangkan pada himpunan semua masalah optimasi. Dengan kata lain, tidak ada algoritma evolusioner yang secara fundamental lebih baik daripada yang lain apabila domain permasalahan tidak dibatasi. Dalam praktiknya, himpunan permasalahan selalu terbatas, sehingga algoritma evolusioner dapat ditingkatkan kinerjanya dengan memanfaatkan pengetahuan spesifik suatu masalah. Hal ini dapat dilakukan, misalnya, dengan memilih kekuatan mutasi tertentu, menggunakan representasi solusi yang sesuai dengan permasalahan, atau dengan membangun sebagian populasi awal melalui heuristik.[18][19] Selain itu, algoritma evolusioner dapat diperkaya dengan heuristik, prosedur pencarian lokal, atau metode terkait permasalahan dalam proses pembentukan keturunan. Bentuk perluasan ini dikenal sebagai algoritma memetik (memetic algorithm), yang memadukan evolusi populasi dengan optimasi lokal. Pendekatan ini banyak digunakan dalam aplikasi praktis karena dapat mempercepat proses pencarian solusi dan meningkatkan ketahanan algoritma.[18][20]

Konvergensi

Untuk algoritma evolusioner dengan elitisme (elitist evolutionary algorithms), yaitu varian yang selain keturunannya (offspring) juga digunakan setidaknya individu terbaik dari generasi induk untuk membentuk generasi berikutnya, terdapat bukti umum mengenai konvergensi dengan syarat bahwa optimum memang ada. Tanpa mengurangi keumuman, pembuktian biasanya dilakukan dengan asumsi bahwa masalah yang diselesaikan adalah pencarian maksimum.

Dari sifat penerimaan keturunan elitis dan adanya optimum, dapat disimpulkan bahwa pada setiap generasi , peningkatan nilai kebugaran dari masing-masing individu terbaik akan terjadi dengan suatu probabilitas . Dengan demikian:

Artinya, nilai kebugaran (fitness value) merepresentasikan sebuah barisan yang monotonik tak-menurun yang dibatasi oleh keberadaan optimum. Dari sini, maka barisan tersebut berkonvergensi menuju optimum.

Karena pembuktian tersebut tidak memberikan pernyataan mengenai kecepatan konvergensi, maka hasilnya kurang bermanfaat dalam penerapan praktis EA. Namun, hal ini tetap membenarkan rekomendasi untuk menggunakan EA yang bersifat elitis. Akan tetapi, ketika menggunakan model populasi panmiktik yang umum, EA elitis cenderung lebih cepat mengalami konvergensi prematur dibandingkan dengan yang non-elitis.[21] Dalam model populasi panmiktik, pemilihan pasangan (lihat langkah 4 pada definisi umum) dilakukan sedemikian rupa sehingga setiap individu dalam seluruh populasi dapat menjadi pasangan kawin. Sebaliknya, dalam populasi non-pan mictic, pemilihan dibatasi dengan sesuai, sehingga kecepatan penyebaran individu yang lebih baik berkurang dibandingkan dengan populasi panmiktik. Dengan demikian, risiko umum terjadinya konvergensi prematur pada EA elitis dapat dikurangi secara signifikan dengan menggunakan model populasi yang sesuai, yang membatasi pemilihan pasangan.[22][23]

Alfabet virtual

Dengan teori alfabet virtual, David E. Goldberg menunjukkan pada tahun 1990 bahwa dengan menggunakan representasi bilangan real, suatu EA yang memakai operator rekombinasi klasik (misalnya uniform atau n-point crossover) tidak dapat mencapai area tertentu dari ruang pencarian, berbeda dengan pengkodean menggunakan bilangan biner.[24] Dari hasil ini muncul rekomendasi bahwa EA dengan representasi real sebaiknya menggunakan operator aritmetika untuk rekombinasi (misalnya rata-rata aritmetika atau rekombinasi intermediat). Dengan operator yang sesuai, representasi berbasis bilangan real lebih efektif dibandingkan representasi biner, bertentangan dengan pendapat sebelumnya.[25][26]

Aplikasi

Bidang-bidang yang algoritma evolusi digunakan secara praktis hampir tidak terbatas[6] dan berkisar dari industri,[27][28] teknik,[3][4][29] penjadwalan kompleks,[5][30][31] pertanian,[32] perencanaan pergerakan robot,[33] keuangan[34][35] hingga penelitian[36][37] dan seni. Penerapan sebuah EA biasanya menuntut perubahan pola pikir bagi pengguna yang belum berpengalaman, karena pendekatannya berbeda dengan metode eksak konvensional yang umumnya diajarkan dalam kurikulum teknik maupun disiplin lain. Misalnya, fungsi kebugaran (fitness function) tidak hanya harus merumuskan tujuan akhir, tetapi juga harus mendukung proses pencarian evolusioner menuju tujuan tersebut. Dalam konteks penjadwalan, jika tujuan adalah menghindari puncak pemakaian sumber daya (misalnya tenaga kerja atau konsumsi energi), penilaian tidak cukup hanya berdasarkan nilai maksimum penggunaan. Sebaliknya, jumlah dan durasi terjadinya kelebihan beban pada tingkat yang masih dapat diterima juga perlu dipertimbangkan, sehingga pengurangan meskipun kecil tetap diberi penghargaan dalam proses pencarian.[38] Sejumlah publikasi telah ditulis khusus untuk pemula, dengan tujuan membantu menghindari kesalahan dasar dan meningkatkan peluang keberhasilan proyek aplikasi EA.[38][39][40] Publikasi ini umumnya menekankan pertanyaan mendasar: kapan sebuah masalah sebaiknya diselesaikan dengan algoritma evolusioner, dan kapan lebih baik menggunakan pendekatan lain.

Contoh

Pada tahun 2020, Google menyatakan bahwa AutoML-Zero mereka berhasil menemukan kembali algoritma klasik seperti konsep jaringan saraf.[41]

Simulasi komputer Tierra dan Avida mencoba memodelkan dinamika makroevolusi .

Galeri

[42][43]

Referensi

  1. ^ Farinati, Davide; Vanneschi, Leonardo (December 2024). "A survey on dynamic populations in bio-inspired algorithms". Genetic Programming and Evolvable Machines. 25 (2). doi:10.1007/s10710-024-09492-4.
  2. ^ Vikhar, P. A. (2016). "Evolutionary algorithms: A critical review and its future prospects". 2016 International Conference on Global Trends in Signal Processing, Information Computing and Communication (ICGTSPICC). Jalgaon. hlm. 261–265. doi:10.1109/ICGTSPICC.2016.7955308. ISBN 978-1-5090-0467-6. Pemeliharaan CS1: Lokasi tanpa penerbit (link)
  3. ^ a b c Cohoon, J. P.; Karro, J.; Lienig, J. (2003). "Evolutionary Algorithms for the Physical Design of VLSI Circuits" in Advances in Evolutionary Computing: Theory and Applications (PDF). London: Springer Verlag. hlm. 683–712. ISBN 978-3-540-43330-9. Kesalahan pengutipan: Tanda <ref> tidak sah; nama "VLSI" didefinisikan berulang dengan isi berbeda
  4. ^ a b Slowik, Adam; Kwasnicka, Halina (2020). "Evolutionary algorithms and their applications to engineering problems". Neural Computing and Applications (dalam bahasa Inggris). 32 (16): 12363–12379. doi:10.1007/s00521-020-04832-8. ISSN 0941-0643.
  5. ^ a b Mika, Marek; Waligóra, Grzegorz; Węglarz, Jan (2011). "Modelling and solving grid resource allocation problem with network resources for workflow applications". Journal of Scheduling (dalam bahasa Inggris). 14 (3): 291–306. doi:10.1007/s10951-009-0158-0. ISSN 1094-6136.
  6. ^ a b "International Conference on the Applications of Evolutionary Computation". The conference is part of the Evo* series. The conference proceedings are published by Springer. Diakses tanggal 2022-12-23.
  7. ^ Jansen, Thomas; Weyland, Dennis (7 July 2007). "Analysis of evolutionary algorithms for the longest common subsequence problem". Proceedings of the 9th annual conference on Genetic and evolutionary computation. Association for Computing Machinery. hlm. 939–946. doi:10.1145/1276958.1277148. ISBN 978-1-59593-697-4.
  8. ^ Jin, Yaochu (2003). "Evolutionary Algorithms". Advanced Fuzzy Systems Design and Applications. Studies in Fuzziness and Soft Computing (dalam bahasa Inggris). Vol. 112. Physica-Verlag HD. hlm. 49–71. doi:10.1007/978-3-7908-1771-3_2. ISBN 978-3-7908-2520-6.
  9. ^ Tavares, Jorge; Machado, Penousal; Cardoso, Amílcar; Pereira, Francisco B.; Costa, Ernesto (2004). "On the Evolution of Evolutionary Algorithms". Genetic Programming. Lecture Notes in Computer Science (dalam bahasa Inggris). Vol. 3003. Springer. hlm. 389–398. doi:10.1007/978-3-540-24650-3_37. ISBN 978-3-540-21346-8.
  10. ^ Nissen, Volker; Krause, Matthias (1994), "Constrained Combinatorial Optimization with an Evolution Strategy", dalam Reusch, Bernd (ed.), Fuzzy Logik, Informatik aktuell (dalam bahasa Inggris), Berlin, Heidelberg: Springer, hlm. 33–40, doi:10.1007/978-3-642-79386-8_5, ISBN 978-3-642-79386-8
  11. ^ Coelho, V. N.; Coelho, I. M.; Souza, M. J. F.; Oliveira, T. A.; Cota, L. P.; Haddad, M. N.; Mladenovic, N.; Silva, R. C. P.; Guimarães, F. G. (2016). "Hybrid Self-Adaptive Evolution Strategies Guided by Neighborhood Structures for Combinatorial Optimization Problems". Evol Comput. 24 (4): 637–666. doi:10.1162/EVCO_a_00187. PMID 27258842.
  12. ^ Slowik, Adam; Kwasnicka, Halina (1 August 2020). "Evolutionary algorithms and their applications to engineering problems". Neural Computing and Applications (dalam bahasa Inggris). 32 (16): 12363–12379. doi:10.1007/s00521-020-04832-8. ISSN 1433-3058.
  13. ^ Ma, Xiaoliang; Li, Xiaodong; Zhang, Qingfu; Tang, Ke; Liang, Zhengping; Xie, Weixin; Zhu, Zexuan (2019), "A Survey on Cooperative Co-Evolutionary Algorithms.", IEEE Transactions on Evolutionary Computation, 23 (3): 421–441, Bibcode:2019ITEC...23..421M, doi:10.1109/TEVC.2018.2868770
  14. ^ Popovici, Elena; Bucci, Anthony; Wiegand, R. Paul; De Jong, Edwin D. (2012). "Coevolutionary Principles". Dalam Rozenberg, Grzegorz; Bäck, Thomas; Kok, Joost N. (ed.). Handbook of Natural Computing (dalam bahasa Inggris). Berlin, Heidelberg: Springer Berlin Heidelberg. hlm. 987–1033. doi:10.1007/978-3-540-92910-9_31. ISBN 978-3-540-92910-9.
  15. ^ Pugh, Justin K.; Soros, Lisa B.; Stanley, Kenneth O. (2016-07-12). "Quality Diversity: A New Frontier for Evolutionary Computation". Frontiers in Robotics and AI. 3. doi:10.3389/frobt.2016.00040. ISSN 2296-9144. Pemeliharaan CS1: DOI bebas tanpa ditandai (link)
  16. ^ Lehman, Joel; Stanley, Kenneth O. (2011-07-12). "Evolving a diversity of virtual creatures through novelty search and local competition". Proceedings of the 13th annual conference on Genetic and evolutionary computation. New York, NY, USA: ACM. hlm. 211–218. doi:10.1145/2001576.2001606. ISBN 9781450305570.
  17. ^ Cully, Antoine; Clune, Jeff; Tarapore, Danesh; Mouret, Jean-Baptiste (2015-05-27). "Robots that can adapt like animals". Nature. 521 (7553): 503–507. arXiv:1407.3501. Bibcode:2015Natur.521..503C. doi:10.1038/nature14422. ISSN 0028-0836. PMID 26017452.
  18. ^ a b Davis, Lawrence (1991). Handbook of genetic algorithms. New York: Van Nostrand Reinhold. ISBN 0-442-00173-8. OCLC 23081440.
  19. ^ Lienig, Jens; Brandt, Holger (1994), Davidor, Yuval; Schwefel, Hans-Paul; Männer, Reinhard (ed.), "An evolutionary algorithm for the routing of multi-chip modules", Parallel Problem Solving from Nature — PPSN III, 866, Berlin, Heidelberg: Springer: 588–597, doi:10.1007/3-540-58484-6_301, ISBN 978-3-540-58484-1, diakses tanggal 2022-10-18
  20. ^ Neri, Ferrante; Cotta, Carlos; Moscato, Pablo, ed. (2012). Handbook of Memetic Algorithms. Studies in Computational Intelligence (dalam bahasa Inggris). Vol. 379. Berlin, Heidelberg: Springer Berlin Heidelberg. doi:10.1007/978-3-642-23247-3. ISBN 978-3-642-23246-6.
  21. ^ Leung, Yee; Gao, Yong; Xu, Zong-Ben (1997). "Degree of population diversity - a perspective on premature convergence in genetic algorithms and its Markov chain analysis". IEEE Transactions on Neural Networks. 8 (5): 1165–1176. doi:10.1109/72.623217. ISSN 1045-9227. PMID 18255718.
  22. ^ Gorges-Schleuter, Martina (1998), Eiben, Agoston E.; Bäck, Thomas; Schoenauer, Marc; Schwefel, Hans-Paul (ed.), "A comparative study of global and local selection in evolution strategies", Parallel Problem Solving from Nature — PPSN V, Lecture Notes in Computer Science, 1498, Berlin, Heidelberg: Springer Berlin Heidelberg: 367–377, doi:10.1007/bfb0056879, ISBN 978-3-540-65078-2, diakses tanggal 2022-10-21
  23. ^ Dorronsoro, Bernabe; Alba, Enrique (2008). Cellular Genetic Algorithms. Operations Research/Computer Science Interfaces Series. Vol. 42. Boston, MA: Springer US. doi:10.1007/978-0-387-77610-1. ISBN 978-0-387-77609-5.
  24. ^ Goldberg, David E. (1990), Schwefel, Hans-Paul; Männer, Reinhard (ed.), "The theory of virtual alphabets", Parallel Problem Solving from Nature, Lecture Notes in Computer Science (dalam bahasa Inggris), 496, Berlin/Heidelberg: Springer-Verlag (dipublikasikan 1991): 13–22, doi:10.1007/bfb0029726, ISBN 978-3-540-54148-6, diakses tanggal 2022-10-22
  25. ^ Stender, J.; Hillebrand, E.; Kingdon, J. (1994). Genetic algorithms in optimisation, simulation, and modelling. Amsterdam: IOS Press. ISBN 90-5199-180-0. OCLC 47216370.
  26. ^ Michalewicz, Zbigniew (1996). Genetic Algorithms + Data Structures = Evolution Programs (Edisi 3rd). Berlin Heidelberg: Springer. ISBN 978-3-662-03315-9. OCLC 851375253.
  27. ^ Sanchez, Ernesto; Squillero, Giovanni; Tonda, Alberto (2012). Industrial Applications of Evolutionary Algorithms. Intelligent Systems Reference Library. Vol. 34. Berlin, Heidelberg: Springer Berlin Heidelberg. doi:10.1007/978-3-642-27467-1. ISBN 978-3-642-27466-4.
  28. ^ Miettinen, Kaisa; Neittaanmäki, Pekka; Mäkelä, M. M.; Périaux, Jacques, ed. (1999). Evolutionary algorithms in engineering and computer science : recent advances in genetic algorithms, evolution strategies, evolutionary programming, genetic programming, and industrial applications (dalam bahasa Inggris). Chichester: Wiley and Sons. ISBN 0-585-29445-3. OCLC 45728460.
  29. ^ Gen, Mitsuo; Cheng, Runwei (1999-12-17). Genetic Algorithms and Engineering Optimization. Wiley Series in Engineering Design and Automation (dalam bahasa Inggris). Hoboken, NJ, USA: John Wiley & Sons, Inc. doi:10.1002/9780470172261. ISBN 978-0-470-17226-1.
  30. ^ Dahal, Keshav P.; Tan, Kay Chen; Cowling, Peter I. (2007). Evolutionary scheduling (dalam bahasa Inggris). Berlin: Springer. doi:10.1007/978-3-540-48584-1. ISBN 978-3-540-48584-1. OCLC 184984689.
  31. ^ Jakob, Wilfried; Strack, Sylvia; Quinte, Alexander; Bengel, Günther; Stucky, Karl-Uwe; Süß, Wolfgang (2013-04-22). "Fast Rescheduling of Multiple Workflows to Constrained Heterogeneous Resources Using Multi-Criteria Memetic Computing". Algorithms (dalam bahasa Inggris). 6 (2): 245–277. doi:10.3390/a6020245. ISSN 1999-4893. Pemeliharaan CS1: DOI bebas tanpa ditandai (link)
  32. ^ Mayer, David G. (2002). Evolutionary Algorithms and Agricultural Systems. Boston, MA: Springer US. doi:10.1007/978-1-4615-1717-7. ISBN 978-1-4613-5693-6.
  33. ^ Blume, Christian (2000), Cagnoni, Stefano (ed.), "Optimized Collision Free Robot Move Statement Generation by the Evolutionary Software GLEAM", Real-World Applications of Evolutionary Computing, LNCS 1803 (dalam bahasa Inggris), 1803, Berlin, Heidelberg: Springer: 330–341, doi:10.1007/3-540-45561-2_32, ISBN 978-3-540-67353-8, diakses tanggal 2022-12-28
  34. ^ Aranha, Claus; Iba, Hitoshi (2008), Wobcke, Wayne; Zhang, Mengjie (ed.), "Application of a Memetic Algorithm to the Portfolio Optimization Problem", AI 2008: Advances in Artificial Intelligence, Lecture Notes in Computer Science, 5360, Berlin, Heidelberg: Springer Berlin Heidelberg: 512–521, doi:10.1007/978-3-540-89378-3_52, ISBN 978-3-540-89377-6, diakses tanggal 2022-12-23
  35. ^ Chen, Shu-Heng, ed. (2002). Evolutionary Computation in Economics and Finance. Studies in Fuzziness and Soft Computing. Vol. 100. Heidelberg: Physica-Verlag HD. doi:10.1007/978-3-7908-1784-3. ISBN 978-3-7908-2512-1.
  36. ^ Lohn, J.D.; Linden, D.S.; Hornby, G.S.; Kraus, W.F. (June 2004). "Evolutionary design of an X-band antenna for NASA's Space Technology 5 mission". IEEE Antennas and Propagation Society Symposium, 2004. Vol. 3. hlm. 2313–2316 Vol.3. doi:10.1109/APS.2004.1331834. hdl:2060/20030067398. ISBN 0-7803-8302-8.
  37. ^ Fogel, Gary; Corne, David (2003). Evolutionary Computation in Bioinformatics (dalam bahasa Inggris). Elsevier. doi:10.1016/b978-1-55860-797-2.x5000-8. ISBN 978-1-55860-797-2.
  38. ^ a b Jakob, Wilfried (2021), Applying Evolutionary Algorithms Successfully - A Guide Gained from Realworld Applications, KIT Scientific Working Papers, vol. 170, Karlsruhe, FRG: KIT Scientific Publishing, arXiv:2107.11300, doi:10.5445/IR/1000135763, diakses tanggal 2022-12-23
  39. ^ Whitley, Darrell (2001). "An overview of evolutionary algorithms: practical issues and common pitfalls". Information and Software Technology (dalam bahasa Inggris). 43 (14): 817–831. doi:10.1016/S0950-5849(01)00188-4.
  40. ^ Eiben, A.E.; Smith, J.E. (2015). "Working with Evolutionary Algorithms". Introduction to Evolutionary Computing. Natural Computing Series (dalam bahasa Inggris) (Edisi 2nd). Berlin, Heidelberg: Springer Berlin Heidelberg. hlm. 147–163. doi:10.1007/978-3-662-44874-8. ISBN 978-3-662-44873-1.
  41. ^ Gent, Edd (13 April 2020). "Artificial intelligence is evolving all by itself". Science | AAAS (dalam bahasa Inggris). Diarsipkan dari versi aslinya tanggal 16 April 2020. Diakses tanggal 16 April 2020.
  42. ^ Simionescu, P.A.; Dozier, G.V.; Wainwright, R.L. (2006). "A Two-Population Evolutionary Algorithm for Constrained Optimization Problems" (PDF). 2006 IEEE International Conference on Evolutionary Computation. Proc 2006 IEEE International Conference on Evolutionary Computation. Vancouver, Canada. hlm. 1647–1653. doi:10.1109/CEC.2006.1688506. ISBN 0-7803-9487-9. Diakses tanggal 7 January 2017. Pemeliharaan CS1: Lokasi tanpa penerbit (link)
  43. ^ Simionescu, P.A. (2014). Computer Aided Graphing and Simulation Tools for AutoCAD Users (Edisi 1st). Boca Raton, FL: CRC Press. ISBN 978-1-4822-5290-3.

Bibliografi

Pranala luar

Kembali kehalaman sebelumnya