genetik algoritmalar ve pratik uygulamaları

advertisement
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, [email protected]
Mehmet GÜMÜŞÇÜ, HR.Ü., İnşaat Müh. Böl., Şanlıurfa, [email protected]
Abdussamet ARSLAN, G.Ü. İnşaat Müh. Böl., Ankara, [email protected]
Ö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
Download