GAP IV. Mühendislik Kongresi Bildiriler Kitabı, 06-08 Haziran 2002, Şanlıurfa. Proceedings of the Fourth GAP Engineering Congress, 06-08 June 2002, Şanlıurfa. GENETİK ALGORİTMALAR VE ÇALIŞMA PRENSİPLERİ Paki TURĞUT, HR.Ü. İnşaat Müh. Böl., Şanlıurfa, turpak@hotmail.com Mehmet GÜMÜŞÇÜ, HR.Ü., İnşaat Müh. Böl., Şanlıurfa, mgumuscu@harran.edu.tr Abdussamet ARSLAN, G.Ü. İnşaat Müh. Böl., Ankara, arslan@mmf.gazi.edu.tr Özet Genetik Algoritma, bilgisayar üzerinde oluşan bir evrim şeklidir. Genetik Algoritmalar ile oluşturulan seleksiyon, doğal topluluklara benzer bir şekilde bilgisayar hafızasına depo edilmiş kromozomlar üzerinde icra edilmektedir. Evrim teorisi, biyolojik sistemleri doğal seleksiyon işleminin devamlı üretimi olarak tanımlamaktadır. Buna benzer olarak, Genetik Algoritmalar el ile yapıldığında uzun süren hesaplamalar yerine bilgisayar üzerinde oluşturulan evrimle mühendislik problemlerinin çözümünde etkili olmaktadır. Matematiksel çözüme dayalı metotlar türev bilgisi gerektirmesine rağmen, Genetik Algoritmalar yardımıyla bir problemi çözmede özel bilgi gerekmemektedir. Genellikle, Genetik Algoritmalar deterministik bir alanda random operatörler kullanmaktadır. Bu bildiride, Genetik Algoritmaların VLSI(Very Large Scale Integration) çok büyük ölçekli tümdevre tasarımındaki yüksek performansı anlatılmaktadır. Anahtar Kelimeler: Genetik Algoritmalar, gen, kromozom, VLSI, devre, optimizasyon GENETIC ALGORITHMS AND THEIR WORKING PRINCIPLES Abstract Genetic Algorithm is a form of evolution that takes place in a computer. The selection by Genetic Algorithm operates on strings of binary digits stored in the computer's memory in much the same way that natural populations of individuals evolve. The evolution theory describes the biological systems as the continuous process of the natural selections. Similar to that, since computations made by hand are time consuming, Genetic Algorithms are effective for solving engineering problems by forming evaluation in computer. Genetic Algorithms do not require specific knowledge solving a problem although calculus based search algorithms use derivative information. Genetic Algorithms use randomized operators in place of usual deterministic ones. In this paper, it has been explained Genetic Algorithms have high performance in designing of VLSI(Very Large Scale Integration) circuit. Keywords: Genetic Algorithms, gene, chromosome, VLSI, circuit, optimisation 1.Giriş Genetik Algoritmalar, insan ve ekosistemlerdeki doğal gelişme, sosyal sistemlerdeki taklit etme ve psikolojideki sonuçları değerlendirmeyi içine alan dinamik metotların geniş bir şekilde modellenmesi ile oluşmaktadır. Evrim sistemlerinin bilgisayarda modellenmesini yapmak çoğu konvensiyonel modellemelere kıyasla biraz daha zor olmaktadır[1]. Teknolojide ilerlemeler için, doğanın sonsuz esin kaynağı olabileceğini bir kez de Michigan Üniversitesi'nden John Holland'ın çalışmaları kanıtlamıştır. Makine öğrenmesi (Machine Learning) konusunda çalışmalar yapan Holland, evrim kuramından etkilenerek canlılarda yaşanan genetik süreci bilgisayar ortamında gerçekleştirmeyi düşünmüştür[2]. Genetik Algoritma ilk ismini biyoloji, ikinci ismini ise bilgisayar biliminden almaktadır. Sadece bir tane mekanik yapının öğrenme yeteneğinin geliştirilmesi yerine, böyle yapılardan oluşan bir topluluğun çoğalma, çiftleşme, değişim vb.genetik süreçlerden geçirilerek, başarılı(öğrenebilen) yeni bireylerin oluştuğu görülmüştür. Holland'ın çalışmalarının sonuçlarını açıkladığı kitabının 1975'de yayınlanmasından sonra geliştirdiği yöntemin adı Genetik Algoritmalar yada kısaca GA olarak yerleşmiştir. Ancak 1985 yılında Holland'ın öğrencisi olarak doktorasını veren David E.Goldberg adlı inşaat mühendisi 1989'da konusunda bir klasik sayılan kitabını yayınlayıncaya kadar, Genetik Algoritmalar'ın pek pratik yararı olmayan araştırma konusu olduğu düşünülmekteydi. Halbuki Goldberg' in gaz borusu hatlarının denetimi 1173 üzerine yaptığı çalışma ona sadece 1985 National Science Fundation Genç Araştırmacı ödülünü kazandırmakla kalmayıp, Genetik Algoritmalar' ın pratik kullanımının da olabilirliğini kanıtlamıştır[3]. 2. Genetik Algoritmalarla İlgili Temel Kavramlar Kromozom (Chromosome) bir yada daha fazla genin bir araya gelmesi ile oluşan ve problemin çözümü için gerekli tüm bilgiyi üzerinde taşıyan genetik yapıdır. Örneğin, 100011101 genleri 4, 3, 5 birim uzunluklara sahip olan üç doğru parçasına ait uzunluk bilgisinin ikilik düzende kodlandığı bir kromozomu göstermektedir. Çaprazlama (Crossover) iki kromozomun bir araya gelerek genetik bilgi değişimi yapmasıdır. Örneğin, 100011101 ve 010110001 kromozomları üzerinde 4. genden başlayarak tek noktalı çaprazlama yapıldığında, 100110001 ve 010011101 kromozomları elde edilmektedir. Evrim (Evolution) genetik bilgi taşıyan bir topluluk üzerine genetik işlemlerin uygulanması sürecidir. Gen (Gene) kendi başına anlamlı genetik bilgi taşıyan en küçük genetik yapıdır. Genetik Programlama (GP, Genetic Programming) genlerinde program parçacıklarının kodlandığı kromozomlar üzerinde çalışan bir genetik algoritma yoluyla istenilen işi yapan bir programın geliştirilmesidir. Tersinme (Inversiyon) bir kromozomu ulaştıran genlerden ardışık bir grubun kendi içerisinde birbirleri ile yer değiştirerek ters dizilmeleridir. Örneğin, 011110101 kromozomu 5. ve 8. gen konumları arasında tersindiğinde ortaya 011101011 kromozomu çıkmaktadır. Eşleme (Mating) iki kromozomun çaprazlama amacıyla seçilmesidir. Değişim (Mutasyon) bir kromozomun taşıdığı genetik bilgide bir nedene bağlı olmaksızın rastgele değişim olmasıdır. Örneğin, 100110000 kromozomunun 3. geninde değişim olması sonucunda, 101110000 kromozomu oluşmaktadır. Çoğalma, Kopyalama (Reproduction) bir kromozomun kendisi ile aynı genetik bilgiyi taşıyan bir kopyasının oluşturulmasıdır. Örneğin, 100111011 kromozumu çoğaltıldığında 100111011 ve 100111011 kromozomları elde edilmektedir. Seçme (Selection) bir kromozom havuzundaki kromozomlardan hangilerinin yeni oluşturulacak havuza aktarılacağının, kromozomların başarı değerlerini dikkate alarak belirlenmesidir. 3. Genetik Algoritmaların Genel Yapısı Ünlü matematikçi J. Hadamard "Gerek matematikte, gerek başka alanlarda buluş ve icatlar farklı alanlardan düşüncelerin bir araya gelmesiyle gerçekleşir.”demiştir[3]. Bu söz Genetik Algoritmalar' ın nasıl doğduğunu özetlediği gibi temel çalışma ilkesini de açıklamıştır. Aşağıda Genetik Algoritma' nın yapısı genel hatları ile verilmektedir. Başlangıç anını belirle. t:0; Toplulukta yer alacak bireyleri oluştur. P(t); Bireylerin yaşam koşullarına uygunluğunu değerlendir. Değerlendir P(t); İstenilen düzeye ulaşılana kadar. While not başarılı-birey-bulundu do Zaman sayacını artır. t:= t+1; Bir sonraki topluluğa döl verecek bireyleri seç. P'(t) :=Ebeveynleri seç P(t); Seçilen bireyleri çiftleştir. Çiftleştir P(t); Geçici toplulukta rasgele değişimler olmasını sağla. Değişime uğrat P(t); Geçici topluluğun başarı durumunu değerlendir. Değerlendir P(t); Bir sonraki topluluğu oluştur. P(t+1):=P(t); End do : 1174 Buradaki terimlerde topluluk havuz ile, birey kromozom ile, çiftleşme çaprazlama ile, uygunluk fonksiyonu tasarımın kalitesi ile, sosyal başarı da tasarımın ekonomikliği ile yer değiştirdiğinde ortaya Genetik Algoritmalar çıkmaktadır. Görüldüğü gibi başlangıçta topluluğu oluşturma işlemi yapılmaktadır. Bu adımda genellikle uygulanan yöntem başlangıç topluluğunun rasgele oluşturulması şeklindedir. Fakat topluluk oluşturulurken bireylerin mümkün olduğu kadar biri birine benzememesini sağlamak toplumsal çeşitlilik açısından faydalı olmaktadır ve dolayısıyla çözüme daha hızlı yaklaşılmaktadır. Toplulukları evrim sürecine sokmadan önce yapılması gereken bir başka işlemde, başlangıç bireylerinin değerlendirilmesidir. Bu aşama evrim süreci içerisinde bir sonraki nesle döl verecek olan bireylerin belirlenmesi için gerekmektedir. Daha sonra istenilen düzeyde başarılı birey bulununcaya kadar veya topluluk başarıda artış sağlayamaz duruma gelince veya önceden belirlenen evrim sayısı tamamlanıncaya kadar sürecek olan evrim başlayacaktır. Her evrim sürecinde tekrar edilecek olan işlemler ise aşağıdaki şekilde sıralanacaktır. Bir sonraki nesle döl verecek olan bireyler daha önce hesaplanmış olan başarı değerlerine bağlı olarak seçilmektedir. Daha sonra, seçilen bireyler istenilen bir yöntemle çiftleştirilmektedir. Çiftleştirme sonucu oluşturulan bireyler genellikle, % 0.1 olasılıkla değişime uğratılmaktadır. Son adım olarak ta oluşturulan yeni bireylerin başarı değeri hesaplanmaktadır[4]. 4. Genetik Algoritmaların Uygulamaları 1983 yılında, Goldberg gaz borusu hatlarının denetiminde ilk defa Genetik Algoritmaları kullanmıştır. Goldberg tarafından yapılan bu çalışma, Genetik Algoritmaların ilk pratik uygulamasıdır. Goldberg yapmış olduğu bu çalışmayla Genetik Algoritmaların pratik kullanımını göstermiş ve bu çalışma sonucunda 1985 National Science Fundation Genç Araştırmacı Ödülünü kazanmıştır[3]. Rajeev ve Krishnamoorty 160 elemanlı bir uzay kafes sisteminin optimum tasarımında Genetik Algoritmaları kullanmıştır[5]. Dejong çok parametreli fonksiyonların çözümünü Genetik Algoritmalar kullanarak yapmıştır[6]. Jenkins değişik maksimizasyon veya minimizasyon problemlerinin çözümünde Genetik Algoritmaları kullanmıştır[7]. Çok katlı yapı çerçevelerinde kesit tesirlerini oluşturan hareketli yük kombinezonlarının bulunması işlemini Genetik Algoritmalarla Arslan tarafından yapılmıştır. Arslan’ın çözmüş olduğu bu problemin çözümünde matematiksel modelin kullanılması mümkün değildi. Genetik Algoritmalar matematiksel modellemesi yapılamayan veya karmaşık olan problemleri random operatörler kullanarak başarılı bir şekilde çözmektedir[8]. Arslan, betonarme bir kirişin optimum tasarımında Genetik Algoritmaları başarılı bir şekilde kullanmıştır[9]. 5. VLSI(Çok Büyük Ölçekli Tümdevre) Tasarımında Genetik Algoritmalar Genetik Algoritmaların kullanıldığı en önemli alanlardan birisi optimizasyon problemlerinin çözümüdür. Genetik Algoritmaların nasıl çalıştığı anlatılmak istendiğinde genellikle verilen örnek f(x)= x2 fonksiyonunun belirli bir aralıktaki en büyük veya en küçük değerinin bulunmasıdır. VLSI tasarımı bu tip bir fonksiyonun optimizasyonu işlemine benzemektedir[10]. Elektronik bir devrenin transistörler, dirençler, sığalar ve diğer elemanlardan meydana geldiği bilinmektedir. Bu devre elemanları çeşitli maddelerden yapıldığında dikdörtgen kutucuklar oluşmaktadır. VLSI yonga tasarımında, dikdörtgenler belli şekillerde çakışarak veya çakışmayarak, bazende dikdörtgenler arasında belirli uzunluklar bırakılarak bu kutucuklar en küçük alana yerleştirilir. Milyonlarca kutucuğun bulunduğu bir elektronik devrede klasik bir yöntemle bu işlemleri yapmak oldukça zordur ve çok uzun zaman almaktadır. Verilen pratik uygulama, belirli bir alanda bulunan dikdörtgen kutuların birbirleriyle çakışmama problemine dönüşmektedir[10]. Şekil 1 de, dikdörtgen bir devre plakası ve dikdörgen kutucuklardan oluşan devre elemanları gösterilmektedir. Dikdörtgen sayıları ve boyutları başlangıçta verilmektedir. Devre plakasının boyutları da verilmektedir. Genetik Algoritmalarla bir problemin çözümüne başlanmadan yapılması gereken en önemli işlem amaç fonksiyonu ve kromozomların oluşturulmasıdır. Başlangıçta, düşünülmeden yanlış oluşturulmuş bir amaç fonksiyonu ve kromozom şekli sonuçların hatalı olmasına neden olacaktır. VLSI yonga tasarımında, amaç fonksiyonu kesişen dikdörtgen kutuların kesişen bölgedeki alanlarının minimizasyonu olmaktadır. Kesişen kutuların kesişim bölgesindeki alan küçüldükçe, kutular birbirinden uzaklaşmaktadır. Programın çalışma süresini belirleyen generasyon sayısı, kesişmeler ortadan kaldırılıncaya kadar devam eden sürece bağlı olmaktadır. Genetik Algoritma kromozomlarını oluşturan genler bu uygulamada 1175 koordinat bilgisini taşımaktadır. Genlerin oluşturduğu kromozomlar üzerinde dikdörtgen kutuların köşe koordinatları saklanmaktadır. Ayrıca, bu kromozomların bünyesinde taşıdığı köşe noktaların koordinatlarına ait genlere ilave olarak, dikdörtgen kutucukları döndüren genlerde bulunmaktadır. Örneğin herhangi bir kromozomdaki 1 geni dönmeyi, 0 geni ise dönmemeyi ifade etmektedir. Bu işlemlere ait bilgisayar akış diyagramı Şekil 1 de gösterilmektedir. Şekil 1 de görüldüğü gibi, popülasyon sayısı, kromozom uzunluğu, dikdörtgen boyutları, dikdörtgen sayısı ve plaka boyutları başlangıçta verilmektedir. Başlangıç popülasyonu rasgele oluşturulmaktadır. Dikdörtgenlerin kesişen alanları hesaplanmakta ve bu kromozomlar alanların değerleri dikkate alınarak büyükten küçüğe doğru sıralanmaktadır. Amaç fonksiyonu kesişen alanların en küçükleme işlemi olduğundan, küçük alanları veren kromozomlar başarılı kabul edilmektedir. Bir sonraki aşamada, havuz oluşturulmaktadır. Başarılı olan bireylerin bir veya birkaç kopyası yapılırken, başarısız olan bireyler havuzun dışına atılıp, imha edilmektedir. Böylece, başarılı olan bireyler birbirlerine çaprazlama vasıtasıyla döl vererek, çok daha başarılı bireyleri oluşturmaktadır. Bütün bu işlemler topluluktaki bireylerin başarısı birbirlerine yaklaşıncaya kadar devem etmektedir. Generasyon işlemi bittikten sonra, en iyi düzenlemeyi oluşturan birey ortaya çıkmaktadır. Şekil 2 de, VLSI yonga tasarımında değişim süreci gösterilmektedir. Değişik boyuttaki dikdörtgen devrelerin ana plaka üzerine birbirleriyle çakışmayacak şekilde yerleştirilmesi gerekmektedir. Şekil 2 de gösterilen 1 rakamı generasyon sayısını göstermektedir. Şekil 2 de gösterildiği gibi, başlangıçta 15 adet dikdörtgen rasgele ana plaka üzerine dağıtılmıştır. Devreler rasgele dağıtıldığından, dikdörtgen kutular arasında oldukça fazla çakışma olduğu gözlenmektedir. Şekil 2 de, gösterilen 10471 rakamı kutucuklar arasındaki çakışmadan dolayı oluşan alanı göstermektedir. Çakışan alanların toplam miktarı 10471 br2 dir. Genetik Algoritmanın amacı 10471 br2 lik çakışan alanı sıfırlamaktır. Çakışan alanların toplam miktarı azaldıkça, kutular birbirinden uzaklaşacaktır. Genetik Algoritma 60. evrim sürecinde dikdörtgenleri birbirinden ayırmış ve 0 çakışmayı elde etmiştir. Ancak, evrim süreci tamamlanmamıştır. Böyle bir durum erken yaklaşmayı önlemek için gereklidir. Erken yaklaşmayı önlemek için iki seçenek bulunmaktadır. Bunlardan birincisi programı birkaç defa aynı problem için çalıştırmaktır. İkincisi ise, generasyon sayısını büyük seçmektir. Şekil 2 de gösterilen en son düzenleme yani 84. generasyonda farklı bir düzenleme oluşturulmuştur. Genetik Algoritma 60. evrim sürecinde yakaladığı 0 çakışma durumundan değişme(mutasyon) operatörünün uygulanmasıyla uzaklaşmıştır. Fakat, 84. evrim sürecinin sonunda istenilen değere kavuşarak çözümü tamamlamıştır. Şekil 2 de gösterilen her üç düzenlemenin birbirinden faklı olduğu gözlenmektedir. Bu problemde 15 adet devre yerine çok daha büyük sayıda ( Örneğin 10.000.000-100.000.000 adet) devre bulunduğu zaman Genetik Algoritmaların performansının ne kadar yüksek olduğu gözlenecektir. Görüldüğü gibi, Genetik Algoritmalar özellikle standart boyutlara sahip bir tüm plaka üzerinden çeşitli büyüklükteki geometrik parçaların ekonomik bir şekilde elde edilmesi işleminde oldukça faydalı olacaktır. 6.Sonuç Genetik Algoritmaların hesaplama hızının konvensiyonel metotlardan daha fazla olduğu görülmektedir. Matematiksel bilgiye dayanan problemlerde araştırma uzayını elde etmek için türev bilgisi kullanılmasına rağmen, Genetik Algoritmalar için türev bilgisi önemsizdir. Genetik Algoritmalar problem çözümüne noktalar topluluğu ile yaklaştığından, çözümün çok kısa sürede bulunması ihtimali bulunmaktadır. Genetik Algoritmaların başarısı çaprazlama operatörünün sürekli olarak yeni alternatifler üretmesinden ileri gelmektedir. Mutasyon operatörünün kullanılması erken yaklaşımı önleyip, alternatif üretimlerin devam etmesini sağlamaktadır. Genetik Algoritmalar problem çözümünde çok alternatiflerin üretilmesi istenilen yerlerde başarılı olmaktadır. Genetik Algoritmalar özellikle matematiksel olarak modellenemeyen optimizasyon problemlerinin çözümünde oldukça etkili olmaktadır. Genetik Algoritmaların başarısı uygun kromozomların seçimi ve amaç fonksiyonun oluşturulması işlemlerine bağımlıdır. Hatalı oluşturulmuş bir kromozom yapısı ve amaç fonksiyonu sonuçların yanlış elde edilmesine ve Genetik Algoritmaların hiçbir zaman sonuca ulaşamamasına neden olacaktır. Bilgisayarların tüm bilim dallarına hakim olduğu günümüzde, evrimsel modellemelere olan bağımlılık gittikçe artmaktadır. 1176 Başla Popülasyon sayısı, Kromozom uzunluğu, Dikdörtgen boyutları Dikdörtgen sayısı,Plaka boyutları Generasyon= 1 Popülasyonun rasgele oluşturulması Dikgörtgenlerin kesişen kısımlarının alanlarını hesapla Alanları ve kromozomları küçükten büyüğe sırala En iyi bireyleri seç Generasyon=Generasyon+1 İyi bireyleri havuza at ve eşleştir Çaprazlama ve mutasyon operatörü kullanarak yeni bireyler oluştur Hayır Generasyon bittimi? Evet En iyi düzenlemeyi çiz Şekil 1. VLSI Tasarımında Genetik Algoritma Akış Diyagramı 1177 1 10471 60 0 84 0 Şekil 2. VLSI Yonga Tasarımında Devre Üzerindeki Evrim Süreci 1178 Kaynaklar [1] LIEPPINS,G.E. and HILLIARD, M.R.,1989. Genetic Algorithms Foundation and Applications ,Annals of Operations Research, V.21, pp:31-58. [2] HOLLAND, J.H.,1975. Adaptation in Natural and Artificial Systems, University of Michigan Press, Ann Arbor [3] GOLDBERG, D. E.,1983. Computer-Aided Gas Pipeline Operation Using Genetic Algorithms and Rule Learning. Ph.D Dissertation University of Michigan, Ann Arbor. [4] ARSLAN, A., TURĞUT, P.,1996. Yapı Mühendisliğinde Genetik Algoritmalar ve Uygulama Potansiyeli. İnşaat Mühendisliğinde Bilgisayar Kullanımı V. Sempozyumu, İ.T.Ü. İnşaat Fakültesi, İstanbul. [5] RAJEEV, S. AND KRISHNAMOORTHY, C. S., 1992. Discrete Optimisation of Structures Using Genetic Algorithms. Journal of Structural Engineering, V.118, No.5, pp: 1233-2408. [6] DEJONG, K.A., 1995. Genetic Algorithms. Thesis, University of Michigan, Ann Arbor. MI. [7] JENICINS, W.M.,1993. Plane Frame Optimum Design Environment Based on Genetic Algorithms. Journal of Structures Engineering, V. 118, No. 11, pp:3103-3112 [8] ARSLAN, A., TURĞUT, P., CALAYIR, Y,1996. A Genetic Search Based Arrangement of Load Combinations in Structural Frames. CST 96 The Third International Conference on Computational Structures Technology, Budapest, Hungary, Ed. B.H.V. Topping, CIVIL-COMP Press, Edinburgh, Scotland [9] TURĞUT, P., ARSLAN, A., 1997. Genetik Algoritma ile Betonarme Bir Kirişin Optimum Tasarımı. Prof.Dr. Rifat Yarar Sempozyumu, İTÜ, İnşaat Fakültesi, Maslak-İstanbul. [10] ERGÜL, A.,1994. PC Günlüğü, PC Dosyası. Şubat 1994. 1179