Genetik iyileştirme (bilgisayar bilimi) - Genetic improvement (computer science)

Gelen bilgisayar programı geliştirme, genetik İyileştirme kullanılmasıdır optimizasyonu ve makine öğrenme teknikleri, özellikle arama tabanlı yazılım mühendisliği gibi teknikler genetik programlama mevcut geliştirmek için yazılım . Geliştirilmiş programın orijinaliyle aynı şekilde davranması gerekmez. Örneğin, otomatik hata düzeltme , hatalı davranışı azaltarak veya ortadan kaldırarak program kodunu iyileştirir . Diğer durumlarda, geliştirilmiş yazılım eski sürümle aynı şekilde davranmalıdır, ancak daha iyidir, çünkü örneğin: daha hızlı çalışır, daha az kullanırbellek , daha az enerji kullanır veya farklı türde bir bilgisayarda çalışır. GI, örneğin resmi program çevirisinden farklıdır, çünkü öncelikle hem yeni hem de eski yazılımı test girişlerinde çalıştırarak ve yeni yazılımın bunu yapıp yapamayacağını görmek için çıktılarını ve performanslarını karşılaştırarak yeni mutant sürümün davranışını doğrular. hala orijinal programdan isteneni yapıyor ve şimdi daha iyi.

Genetik iyileştirme , her biri belirli bir kullanım veya belirli bir bilgisayar için daha iyi olacak şekilde uyarlanmış birden çok program sürümü oluşturmak için kullanılabilir .

Genetik iyileştirme, yazılımı birden çok boyutta geliştirmeyi düşünmek veya çeşitli hedefler arasındaki ödünleşimleri dikkate almak için çok amaçlı optimizasyon ile kullanılabilir; örneğin, GI'den verdikleri cevapların kalitesine göre hız ticareti yapan programları geliştirmesini istemek gibi. Elbette hem daha hızlı hem de daha iyi cevaplar veren programlar bulmak mümkün olabilir.

Çoğunlukla Genetik İyileştirme , programın kaynak kodunda tipik olarak küçük değişiklikler veya düzenlemeler ( mutasyonlar olarak da bilinir ) yapar, ancak bazen mutasyonlar derleme kodunda , bayt kodunda veya ikili makine kodunda yapılır .

Referanslar

  1. ^ Langdon, William B. (2015). Genetik Olarak Geliştirilmiş Yazılım . Genetik Programlama Uygulamaları El Kitabı . s. 181–220. doi : 10.1007/978-3-319-20883-1_8 . ISBN'si 978-3-319-20882-4.
  2. ^ Justyna Petke ve Saemundur O. Haraldsson ve Mark Harman ve William B. Langdon ve David R. White ve John R. Woodward (2018). "Yazılımın Genetik İyileştirilmesi: Kapsamlı Bir Anket" (PDF) . Evrimsel Hesaplamada IEEE İşlemleri . 22 (3): 415-432. doi : 10.1109/TEVC.2017.2693219 . hdl : 1893/25358 .
  3. ^ Weimer, Westley; et al. (2010). "Evrimsel hesaplama ile otomatik program onarımı". ACM'nin İletişimi . 53 (5): 109. CiteSeerX  10.1.1.170.188 . doi : 10.1145/1735223.1735249 .
  4. ^ Langdon, William B.; Harman, Mark (2015). "Genetik Programlama ile Mevcut Yazılımların Optimize Edilmesi". Evrimsel Hesaplamada IEEE İşlemleri . 19 : 118-135. doi : 10.1109/TEVC.2013.2281544 .
  5. ^ Wu, Fan; Weimer, Westley; Harman, Mark; Jia, Yue; Krinke, Jens (2015). Derin Parametre Optimizasyonu . 2015 Genetik ve Evrimsel Hesaplama Konferansı Bildirileri - GECCO '15 . s. 1375–1382. doi : 10.1145/2739480.2754648 . ISBN'si 9781450334723.
  6. ^ Bruce, Bobby R.; Petke, Justyna; Harman, Mark (2015). Genetik İyileştirme Kullanarak Enerji Tüketiminin Azaltılması . 2015 Genetik ve Evrimsel Hesaplama Konferansı Tutanakları - GECCO '15 . s. 1327-1334. doi : 10.1145/2739480.2754752 . ISBN'si 9781450334723.
  7. ^ Langdon, William B.; Harman, Mark (2014). Genetik Olarak Geliştirilmiş CUDA C++ Yazılımı . EuroGP 2014 . Bilgisayar Bilimleri Ders Notları. 8599 . s. 87–99. doi : 10.1007/978-3-662-44303-3_8 . ISBN'si 978-3-662-44302-6.
  8. ^ Orlov, Michael; Sipper, Moşe (2011). "Java Wilderness sayesinde FINCH Uçuşu". Evrimsel Hesaplamada IEEE İşlemleri . 15 (2): 166-182. CiteSeerX  10.1.1.298.6272 . doi : 10.1109/TEVC.2010.2052622 .
  9. ^ Schulte, Eric M.; Weimer, Westley; Forrest, Stephanie (2015). COTS Yönlendirici Ürün Yazılımını Kaynak Koduna veya Test Paketlerine Erişim Olmadan Onarma . 2015 Genetik ve Evrimsel Hesaplama Konferansı - GECCO Companion '15 Companion Yayınının Tutanakları . s. 847-854. doi : 10.1145/2739482.2768427 . ISBN'si 9781450334884.

Dış bağlantılar

Araçlar