I ÖZET
Bu çalıĢmanın amacı evrim ve genetiğin doğal sürecine dayalı stokastik bir araĢtırma ve kural çıkarma tekniği olan genetik algoritmalar ile Uzman Sistem oluĢturmaktır.
Klasik programlama teknikleri ile geliĢtirilen programlar yerini artık yapay zekâ teknikleri kullanılarak geliĢtirilen çalıĢmalara bırakmaktadır. Böylece planlanan üretimi artırmak ve kârı maksimize etmek için; sezgisel parametreleri kullanma, doğru analiz yapabilme ve anında karar verme gibi insana özgü olan yetileri kullanarak karar veren veya tavsiyelerde bulunan sistemlerin geliĢtirilmesi ile daha hızlı ve gerçekçi çözümler elde edilecektir.
Bu çalıĢmada genetik algoritmanın nasıl çalıĢtığı, kural üretmede nasıl kullanıldığı, kural çıkarma yöntemleri, veri madenciliği ve UZMAN SĠSTEM TASARALANMASI problemleri arasında genetik algoritma ile çözümü üzerinde durulmuĢ ve bunun için geliĢtirilen bir java programı ile çözümü tanıtılmıĢtır. Ayrıca genetik algoritma çözümü ve klasik yöntemlerle çözümleri karĢılaĢtırılmaktadır.
Anahtar Kelimeler: Genetik Algoritma, Uzman Sistem, Kural Çıkarma
II TEġEKKÜR
Bu projenin geliĢtirilmesinde öneri ve eleĢtirileriyle katkıda bulunan değerli hocam Yrd.Doç.Dr.Ömer AKGÖBEK(HR.Ü)’e teĢekkürlerimi sunarım.
III
ĠÇĠNDEKĠLER
1.GĠRĠġ ...1
2. YAPAY ZEKÂ ...2
2.1.TANIM ...2
2.2.TARĠHÇE ...2
2.3.GELĠġĠM SÜRECĠ ...4
2.3.1. Ġlk araĢtırmalar ve yapay sinir ağları ...4
2.3.2. Yeni yaklaĢımlar...5
2.3.3. YaklaĢımlar ve eleĢtiriler ...5
3. GENETĠK ALGORĠTMALAR VE UYGULAMA ALANLARI ... 10
3.1.TANIM ... 10
3.2.BĠYOLOJĠK ALTYAPI ... 11
3.2.1. Kromozom ... 11
3.2.2. Tekrar Üretim ... 11
3.2.3. Arama Uzayı ... 12
3.2.4. Basit Genetik Programlama Taslağı ... 13
3.2.5. GA ĠĢleçleri ... 14
3.2.6. GA’nın Parametreleri... 16
3.2.7. Kodlama ... 17
3.2.8. Seçim ... 22
3.2.9. Çaprazlama ... 24
3.2.10. Mutasyon ... 25
3.3.GENEL UYGULAMA ALANLARI ... 26
3.3.1. Optimizasyon ... 26
3.3.2. Otomatik Programlama ve Bilgi Sistemleri ... 27
3.3.3. Mekanik Öğrenme ... 28
3.3.4. Ekonomik ve Sosyal Sistem Modelleri ... 29
3.3.5. ĠĢletmelerdeki Uygulama Alanları ... 30
4. VERĠ MADENCĠLĠĞĠ ... 38
4.1.KARAR VERME VE VERĠ MADENCĠLĠĞĠ ... 38
4.2.VERĠ AMBARLARI VE VERĠ MADENCĠLĠĞĠ ... 38
4.3.VERĠ MADENCĠLĠĞĠNDE KULLANILAN YÖNTEMLER ... 42
4.3.1. Ġstatistiksel Yöntemler ... 43
4.3.2. Bellek Tabanlı Teknikler ... 45
4.3.3. Genetik Algoritmalar... 45
4.3.4. Yapay Sinir Ağları ... 45
4.3.5. Karar Ağaçları ... 46
4.4.VERĠ MADENCĠLĠĞĠ SÜRECĠ ... 46
4.4.1. Sorunun Tanımlanması ... 46
4.4.2. Verilerin Hazırlanması ... 47
4.4.3. Modelin Kurulması ve Değerlendirilmesi ... 49
5. UZMAN SĠSTEMLER ... 54
BĠLGĠ TABANI: ... 54
5.1.UZMAN SĠSTEM PROGRAMLARININ GENEL YAPISI ... 55
5.1.1. Ġleriye Doğru Zincirleme(Forward chaining) ... 56
IV
5.1.2. Geriye Doğru Zincirleme (Backward chaining)... 57
6. GENETĠK ALGORĠTMALAR ĠLE UZMAN SĠSTEM TASARIMI ... 58
6.1.VERĠLERĠN ELDE EDĠLMESĠ VE ANALĠZĠ... 59
6.2.EĞĠTĠM SÜRECĠ ... 62
6.2.1 Eğitim Sürecinin baĢlaması için gerekli parametreler ... 63
6.2.2. Eğitim Süreci Adımları ... 63
6.3.TEST SÜRECĠ ... 64
6.3.1. Test Sürecinin BaĢlaması Ġçin Gerekenler: ... 65
6.3.2. Test Süreci Adımları ... 65
7. SONUÇLAR ... 67
8. KAYNAKLAR ... 69
V
ġEKĠLLER LĠSTESĠ
ġekil 1 : Genetik algoritmalarda çaprazlama ………. 25
ġekil 2 :Genetik algoritmalar genel akıĢ diyagramı ……….. 26
ġekil 3 : Veri Madenciliği Süreci ……….. 40
ġekil 4 : Uzman Sistem programlarının yapısı ……….. 56
ġekil 5 : Ġleriye Doğru Zincirleme ………. 56
ġekil 6 : Geriye Doğru Zincirleme ………. 57
ġekil 7 : Uzman Sistem OluĢturulurken Ġzlenecek Prosedür ………. 58
ġekil 8 : Verilerin alınması Analizi AkıĢ Diyagramı ………. 59
ġekil 9 : VeriTabanı Sunucusu Ayarları ……… 60
ġekil 10 : Gerekli Ayarların girilmesi ………. 61
ġekil 11 : Eğitim Süreci için gerekli tablo bilgisi ……… 61
ġekil 12 : Eğitim Süreci AkıĢ Diyagramı ..………. 62
ġekil 13 : Eğitim sürecini baĢlatma ………. 63
ġekil 14 : Test Süreci AkıĢ Diyagramı ……… 64
ġekil 15:Test Süreci sonunda doğruluk oranı görünümü ……… 66
VI
TABLOLAR LĠSTESĠ
Tablo 1: Risk Matrisi ………52 Tablo 2: Eğitim ve test setlerinin özellikleri ……… 65 Tablo 3: Test veri setleri kullanılarak elde edilen doğruluk oranları ………65
1 1.GĠRĠġ
Evrimsel süreç, hayvanların ve bitkilerin çevrenin sunduğu fırsatlara uyum göstererek fayda sağlamasını olanaklı kılmıĢtır. Bu süreci ele alarak, evrimin bilgisayarlı (computational) ve matematiksel simülasyonları ile geleneksel optimizasyon süreçlerine yeni bir yaklaĢım geliĢtirilebileceği düĢünülmüĢtür. Evrimsel ilkelere bağlı kalınarak oluĢturulan algoritmalara evrimsel algoritmalar adı verilmiĢtir. Evrimsel algoritmalar, evrimin genellikle bilgisayar ortamında simüle edilmesine yönelik metodların oluĢumu olarak tanımlanabilir. Evrimsel algoritmalar, rassal çeĢitlendirmeye ve seçime dayalı populasyon temelli bir yaklaĢımı içinde barındıran metotlar alanıdır.
“Geleneksel arama metotları, probleme bir çözüm adayı önerir ve onu değiĢtirerek daha iyi çözümler elde etmeye çalıĢır. Aksine evrimsel algoritmalar, bir çözüm adayları populasyonu oluĢturur ve bu populasyon zamanla evrimleĢir. Bir adayın çözüme ne kadar yakın olduğu, uygulamaya bağlı bir fonksiyondur. Bir çözüm adayı bir parametreler topluluğunu, bir kuralı, bir kurallar grubunu veya ağaç yapısında bir bilgisayar programını temsil edebilir. Hepsinde de, algoritma her adayın ne kadar güçlü olduğunu hesaplar ve buna göre bir sonraki neslin ebeveynleri olacak ya da yok olacak bireyleri belirler. Daha sonra, makul bir yeni nesil oluĢturmak için ebeveynlere genetik arama iĢlemcilerini (yeniden yapılanma ve mutasyon) uygular. Bu döngü her defasında daha güçlü bireyler oluĢturarak tekrarlanır.
Yapay zekanın gittikçe geniĢleyen bir kolu olan evrimsel algoritmaların alt dalları olarak genetik algoritmalar, genetik programlama, yapay sinir ağları (neural networks), benzetimli tavlama, tabu arama ve bunlarla birlikte bulanık mantık (fuzzy logic) iĢletme, temel bilimler ve mühendislik problemlerinde tek baĢına veya karma sistemler olarak kullanılabilmektedir.
Bu çalıĢmada Uzman Sistem hazırlamak amacıyla genetik algoritmalar kullanılmıĢ ve elde edilen sonuçlar benzer çalıĢmalarla karĢılaĢtırılmıĢtır.
2 2. YAPAY ZEKÂ
Yapay zekâ, insanın düĢünme yöntemlerini analiz ederek bunların benzeri yapay yönergeleri geliĢtirmeye çalıĢmaktır.
Bir bakıĢ açısına göre, programlanmıĢ bir bilgisayarın düĢünme giriĢimi gibi görünse de bu tanımlar günümüzde hızla değiĢmekte, öğrenebilen ve gelecekte insan zekâsından bağımsız geliĢebilecek bir yapay zekâ kavramına doğru yeni yönelimler oluĢmaktadır. Bu yönelim, insanın evreni ve doğayı anlama çabasında kendisine yardımcı olabilecek belki de kendisinden daha zeki, insan ötesi varlıklar meydana getirme düĢünün bir ürünüdür. Bu düĢ, 1920 li yıllarda yazılan ve sonraları Isaac Asimov'u etkileyen modern bilim kurgu edebiyatının öncü yazarlarından Karel Čapek'in eserlerinde dıĢa vurmuĢtur. Karel Čapek, R.U.R adlı tiyatro oyununda yapay zekâya sahip robotlar ile insanlığın ortak toplumsal sorunlarını ele alarak 1920 yılında yapay zekânın insan aklından bağımsız geliĢebileceğini öngörmüĢtü.
2.1. Tanım
Ġdealize edilmiĢ bir yaklaĢıma göre yapay zekâ, insan zekâsına özgü olan, algılama, öğrenme, çoğul kavramları bağlama, düĢünme, fikir yürütme, sorun çözme, iletiĢim kurma, çıkarımsama yapma ve karar verme gibi yüksek biliĢsel fonksiyonları veya otonom davranıĢları sergilemesi beklenen yapay bir iĢletim sistemidir. Bu sistem aynı zamanda düĢüncelerinden tepkiler üretebilmeli (eyleyici Yapay Zekâ) ve bu tepkileri fiziksel olarak dıĢa vurabilmelidir.
2.2. Tarihçe
"Yapay zekâ" kavramının geçmiĢi modern bilgisayar bilimi kadar eskidir. Fikir babası, "Makineler düĢünebilir mi ?" sorunsalını ortaya atarak Makine Zekâsını tartıĢmaya açan Alan Mathison Turing'dir.1943 te II. Dünya SavaĢı sırasında Kripto Analizi
3
gereksinimleri ile üretilen elektromekanik cihazlar sayesinde bilgisayar bilimi ve yapay zekâ kavramları doğmuĢtur.
Alan Turing, Nazi'lerin Enigma makinesinin Ģifre algoritmasını çözmeye çalıĢan matematikçilerin en ünlenmiĢ olanlarından biriydi. Ġngiltere, Bletchley Park'ta Ģifre çözme amacı ile baĢlatılan çalıĢmalar, Turing'in prensiplerini oluĢturduğu bilgisayar prototipleri olan Heath Robinson, Bombe Bilgisayarı ve Colossus Bilgisayarları, Boole cebirine dayanan veri iĢleme mantığı ile Makine Zekâsı kavramının oluĢmasına sebep olmuĢtu.
Modern bilgisayarın atası olan bu makineler ve programlama mantıkları aslında insan zekâsından ilham almıĢlardı. Ancak sonraları, modern bilgisayarlarımız daha çok uzman sistemler diyebileceğimiz programlar ile gündelik hayatımızın sorunlarını çözmeye yönelik kullanım alanlarında daha çok yaygınlaĢtılar. 1970'li yıllarda büyük bilgisayar üreticileri olan Microsoft, Apple, Xerox, IBM gibi Ģirketler kiĢisel bilgisayar (PC Personal Computer) modeli ile bilgisayarı popüler hale getirdiler ve yaygınlaĢtırdılar. Yapay zekâ çalıĢmaları ise daha dar bir araĢtırma çevresi tarafından geliĢtirilmeye devam etti.
Bugün, bu çalıĢmaları teĢvik etmek amacı ile Alan Turing'in adıyla anılan Turing Testi ABD'de Loebner ödülleri adı altında Makine Zekâsına sahip yazılımların üzerinde uygulanarak baĢarılı olan yazılımlara ödüller dağıtılmaktadır.
Testin içeriği kısaca Ģöyledir: birbirini tanımayan birkaç insandan oluĢan bir denek grubu birbirleri ile ve bir yapay zekâ diyalog sistemi ile geçerli bir süre sohbet etmektedirler. Birbirlerini yüz yüze görmeden yazıĢma yolu ile yapılan bu sohbet sonunda deneklere sorulan sorular ile hangi deneğin insan hangisinin makine zekâsı olduğunu saptamaları istenir. Ġlginçtir ki, Ģimdiye kadar yapılan testlerin bir kısmında makine zekâsı insan zannedilirken gerçek insanlar makine zannedilmiĢtir.
4
Loebner Ödülünü kazanan Yapay Zekâ Diyalog sistemlerinin yeryüzündeki en bilinen örneklerinden biri [http://www.alicebot.org/ A.L.I.C.E|'dir.Carnegie üniversitesinden Dr.Richard Wallace tarafından yazılmıĢtır.Bu ve benzeri yazılımlarının eleĢtiri toplamalarının nedeni, testin ölçümlediği kriterlerin konuĢmaya dayalı olmasından dolayı programların ağırlıklı olarak diyalog sistemi (chatbot) olmalarıdır.
Türkiye'de de makine zekâsı çalıĢmaları yapılmaktadır. Bu çalıĢmalar doğal dil iĢleme, uzman sistemler ve yapay sinir ağları alanlarında Üniversiteler bünyesinde ve bağımsız olarak sürdürülmektedir. Bunlardan biri, D.U.Y.G.U. - Dil Uzam Yapay Gerçek Uslamlayıcı'dır.
2.3. GeliĢim süreci
2.3.1. Ġlk araĢtırmalar ve yapay sinir ağları
Ġdealize edilmiĢ tanımıyla yapay zekâ konusundaki ilk çalıĢmalardan biri McCulloch ve Pitts tarafından yapılmıĢtır. Bu araĢtırmacıların önerdiği, yapay sinir hücrelerini kullanan hesaplama modeli, önermeler mantığı, fizyoloji ve Turing'in hesaplama kuramına dayanıyordu. Her hangi bir hesaplanabilir fonksiyonun sinir hücrelerinden oluĢan ağlarla hesaplanabileceğini ve mantıksal ve veya iĢlemlerinin gerçekleĢtirilebileceğini gösterdiler. Bu ağ yapılarının uygun Ģekilde tanımlanmaları halinde öğrenme becerisi kazanabileceğini de ileri sürdüler. d Hebb, sinir hücreleri arasındaki bağlantıların Ģiddetlerini değiĢtirmek için basit bir kural önerince, öğrenebilen yapay sinir ağlarını gerçekleĢtirmek de olası hale gelmiĢtir.
1950'lerde Shannon ve Turing bilgisayarlar için satranç programları yazıyorlardı.
Ġlk yapay sinir ağı temelli bilgisayar SNARC, MIT'de Minsky ve Edmonds tarafından 1951'de yapıldı. ÇalıĢmalarını Princeton Üniversitesi'nde sürdüren Mc Carthy, Minsky,
5
Shannon ve Rochester'le birlikte 1956 yılında Dartmouth'da iki aylık bir açık çalıĢma düzenledi. Bu toplantıda birçok çalıĢmanın temelleri atılmakla birlikte, toplantının en önemli özelliği Mc Carthy tarafından önerilen Yapay zekâ adının konmasıdır. Ġlk kuram ispatlayan programlardan Logic Theorist (Mantık kuramcısı) burada Newell ve Simon tarafından tanıtılmıĢtır.
2.3.2. Yeni yaklaĢımlar
Daha sonra Newell ve Simon, insan gibi düĢünme yaklaĢımına göre üretilmiĢ ilk program olan Genel Sorun Çözücü (General Problem Solver)'ı geliĢtirmiĢlerdir. Simon, daha sonra fiziksel simge varsayımını ortaya atmıĢ ve bu kuram, insandan bağımsız zeki sistemler yapma çalıĢmalarıyla uğraĢanların hareket noktasını oluĢturmuĢtur. Simon’ın bu tanımlaması bilim adamlarının Yapay zekâya yaklaĢımlarında iki farklı akımın ortaya çıktığını belirginleĢtirmesi açısından önemlidir: Sembolik Yapay Zekâ ve Sibernetik Yapay Zekâ.
2.3.3. YaklaĢımlar ve eleĢtiriler
2.3.3. 1.Sembolik yapay zekâ
Simon’un sembolik yaklaĢımından sonraki yıllarda mantık temelli çalıĢmalar egemen olmuĢ ve programların baĢarımlarını göstermek için bir takım yapay sorunlar ve dünyalar kullanılmıĢtır. Daha sonraları bu sorunlar gerçek yaĢamı hiçbir Ģekilde temsil etmeyen oyuncak dünyalar olmakla suçlanmıĢ ve yapay zekânın yalnızca bu alanlarda baĢarılı olabileceği ve gerçek yaĢamdaki sorunların çözümüne ölçeklenemeyeceği ileri sürülmüĢtür.
6
GeliĢtirilen programların gerçek sorunlarla karĢılaĢıldığında çok kötü bir baĢarım göstermesinin ardındaki temel neden, bu programların yalnızca sentaktik süreçleri benzeĢ imlendirerek, anlam çıkarma, bağlantı kurma ve fikir yürütme gibi süreçler konusunda baĢarısız olmasıydı. Bu dönemin en ünlü programlarından Weizenbaum tarafından geliĢtirilen Eliza, karĢısındaki ile sohbet edebiliyor gibi görünmesine karĢın, yalnızca karĢısındaki insanın cümleleri üzerinde bazı iĢlemler yapıyordu. Ġlk makine çevirisi çalıĢmaları sırasında benzeri yaklaĢımlar kullanılıp çok gülünç çevirilerle karĢılaĢılınca bu çalıĢmaların desteklenmesi durdurulmuĢtu. Bu yetersizlikler aslında insan beynindeki semantik süreçlerin yeterince incelenmemesinden kaynaklanmaktaydı.
2.3.3. 2.Sibernetik yapay zekâ
Yapay Sinir Ağları çalıĢmalarının dâhil olduğu Sibernetik cephede de durum aynıydı. Zeki davranıĢı benzeĢ imlendirmek için bu çalıĢmalarda kullanılan temel yapılardaki bazı önemli yetersizliklerin ortaya konmasıyla birçok araĢtırmacılar çalıĢmalarını durdurdular. Buna en temel örnek, Yapay Sinir Ağları konusundaki çalıĢmaların Minsky ve Papert'in 1969'da yayınlanan Perceptrons adlı kitaplarında tek katmanlı algaçların bazı basit problemleri çözemeyeceğini gösterip aynı kısırlığın çok katmanlı algaçlarda da beklenilmesi gerektiğini söylemeleri ile bıçakla kesilmiĢ gibi durmasıdır.
Sibernetik akımın uğradığı baĢarısızlığın temel sebebi de benzer Ģekilde Yapay Sinir Ağının tek katmanlı görevi baĢarması fakat bu görevle ilgili vargıların veya sonuçların bir yargıya dönüĢerek diğer kavramlar ile bir iliĢki kurulamamasından kaynaklanmaktadır. Bu durum aynı zamanda semantik süreçlerin de benzeĢ imlendirilememesi gerçeğini doğurdu.
7 2.3.3. 3.Uzman sistemler
Her iki akımın da uğradığı baĢarısızlıklar, her sorunu çözecek genel amaçlı sistemler yerine belirli bir uzmanlık alanındaki bilgiyle donatılmıĢ programları kullanma fikrinin geliĢmesine sebep oldu ve bu durum yapay zekâ alanında yeniden bir canlanmaya yol açtı. Kısa sürede Uzman sistemler adı verilen bir yöntem geliĢti. Fakat burada çok sık rastlanan tipik bir durum, bir otomobilin tamiri için önerilerde bulunan uzman sistem programının otomobilin ne iĢe yaradığından haberi olmamasıydı. Buna rağmen uzman sistemlerin baĢarıları beraberinde ilk ticari uygulamaları da getirdi.
Yapay zekâ yavaĢ yavaĢ bir endüstri hâline geliyordu. DEC tarafından kullanılan ve müĢteri sipariĢlerine göre donanım seçimi yapan R1 adlı uzman sistem Ģirkete bir yılda 40 milyon dolarlık tasarruf sağlamıĢtı. Birden diğer ülkelerde yapay zekâyı yeniden keĢfettiler ve araĢtırmalara büyük kaynaklar ayrılmaya baĢlandı. 1988'de yapay zekâ endüstrisinin cirosu 2 milyar dolara ulaĢmıĢtı.
2.3.3. 4.Doğal dil iĢleme
Antropoloji bilimi, geliĢmiĢ insan zekâsı ile dil arasındaki bağlantıyı gözler önüne serdiğinde, dil üzerinden yürütülen yapay zekâ çalıĢmaları tekrar önem kazandı. Ġnsan zekâsının doğrudan doğruya kavramlarla düĢünmediği, dil ile düĢündüğü, dil kodları olan kelimeler ile kavramlar arasında bağlantı kurduğu anlaĢıldı. Bu sayede insan aklı kavramlar ile düĢünen hayvan beyninden daha hızlı iĢlem yapabilmekteydi ve dil dizgeleri olan cümleler yani Ģablonlar ile etkili bir öğrenmeye ve bilgisini soyut olarak geniĢletebilme yeteneğine sahip olmuĢtu. Ġnsanların iletiĢimde kullandıkları Türkçe, Ġngilizce gibi doğal dilleri anlayan bilgisayarlar konusundaki çalıĢmalar hızlanmaya baĢladı. Önce, yine Uzman sistemler olarak karĢımıza çıkan doğal dil anlayan programlar, daha sonra Sembolik Yapay Zekâ ile ilgilenenler arasında ilgiyle karĢılandı. Yazılım alanındaki geliĢmeler sayesinde Ġngilizce olan A.I.M.L (Artificial intelligence Markup
8
Language) ve Türkçe T.Y.Ġ.D (Türkçe Yapay Zekâ ĠĢaretleme Dili) gibi bilgisayar dilleri ile sentaktik Örüntü iĢlemine uygun veri eriĢim metodları geliĢtirilebildi. Bugün Sembolik Yapay Zekâ araĢtırmacıları özel Yapay Zekâ dillerini kullanarak verileri birbiri ile iliĢkilendirebilmekte, geliĢtirilen özel prosedürler sayesinde anlam çıkarma ve çıkarımsama yapma gibi ileri seviye biliĢsel fonksiyonları benzet imlendirmeye çalıĢmaktadırlar.
Bütün bu geliĢmelerin ve süreçlerin sonunda bir grup yapay zekâ araĢtırmacısı, insan gibi düĢünebilen sistemleri araĢtırmaya devam ederken, diğer bir grup ise ticari değeri olan rasyonel karar alan sistemler (Uzman sistemler) üzerine yoğunlaĢtı.
2.3.3. 5.Gelecekte yapay zekâ
Gelecekte yapay zekâ araĢtırmalarındaki tüm alanların birleĢeceğini öngörmek zor değildir. Sibernetik bir yaklaĢımla modellenmiĢ bir Yapay Beyin, Sembolik bir yaklaĢımla insan aklına benzetilmiĢ biliĢsel süreçler ve Yapay Bilinç sistemi, insan aklı kadar esnek ve duyguları olan bir Ġrade ( Karar alma yetisi ), Uzman sistemler kadar yetkin bir bilgi birikimi ve rasyonel yaklaĢım. Bunların dengeli bir karıĢımı sayesinde Yapay Zekâ, gelecekte insan zekâsına bir alternatif oluĢturabilir.
Bilginin hesaplanması matematiksel geliĢme ile mümkün olabilir. Çok yüksek döngü gerektiren NP problemlerin çözümü, Satranç oyununda en iyi hamleyi hesaplamak veya görüntü çözümleme iĢlemlerinde bilgiyi saymak yerine hesaplamak sureti ile sonuca ulaĢılabilir.
Yeni matematik kuantum parçacık davranıĢlarını açıklayacağı gibi kuantum bilgisayarın yapılmasına olanak verir.
9 2.3.3. 6.Yapay Zekânın Gücü
BiliĢim uzmanları, bir insanın hepsi aynı anda paralel olarak çalıĢan 100 trilyon nötron bağlantısının toplam hesap gücünün alt sınırı olan saniyede 10 katrilyon hesap düzeyine 2025'te eriĢeceğini düĢünüyorlar.
Beynin bellek kapasitesine gelince,100 trilyon bağlantının her birine 10.000 bit bilgi depolama gereksinimi tanınırsa, toplam kapasite 10^18 düzeyine çıkıyor. 2020 ye gelindiğinde insan beyninin iĢlevselliğine eriĢmiĢ bir bilgisayarın fiyatının 1000 dolar olacağı tahmin ediliyor. 2030'da 1000 dolarlık bir bilgisayarın bellek kapasitesi 1000 insanın belleğine eĢit olacak. 2050'de ise yine 1000 dolara, dünyadaki tüm insanların beyin gücünden daha fazlasını satın alabileceksiniz.
10
3. GENETĠK ALGORĠTMALAR VE UYGULAMA ALANLARI
3.1. Tanım
AraĢtırmalarda birçok olasılık söz konusu olurken bu olası çözümleri bir araya getiren tek ve basit bir çözüm veya her bir olası durumun tek tek incelenmesi olanaklı olmamaktadır. Genetik algoritma teknikleri ile olası durumların akıllıca incelenmesi olanaklı kılınmaktadır. Genetik algoritmalar, evrimsel sürecin bilgisayarda simülasyonunu gerçekleĢtirme metodu ve tam olarak rastgele arama tekniği olarak açıklanabilir.
Genetik algoritmalar, ilk defa Michigan Üniversitesi’nde John Holland ve çalıĢma arkadaĢları tarafından geliĢtirilmiĢtir. Holland, araĢtırmalarını, arama ve optimumu bulma için, doğal seçme ve genetik evrimden yola çıkarak yapmıĢtır. ĠĢlem boyunca, biyolojik sistemde bireyin bulunduğu çevreye uyum sağlayıp daha uygun hale gelmesi örnek alınmıĢ, optimum bulma ve makine öğrenme problemlerinde, bilgisayar yazılımları geliĢtirilmiĢtir.
Çoğu pratik optimizasyon problemlerinde karıĢık değiĢkenler (sürekli ve kesikli) ve araĢtırma alanında süreksizlikler söz konusudur. Eğer bu durumlarda standart doğrusal olmayan programlama teknikleri kullanılırsa hesaplamalar açısından çok pahalı ve etkin olmayan durumlarla karĢılaĢılır. Genetik algoritmalar bu durumlar için iyi bir çözüm oluĢturmaktadır.
Genetik Algoritmalar (GA), dört açıdan normal optimizasyon ve araĢtırma süreçlerinden ayrılmaktadır:
1. GA, parametrelerin kendisi ile değil onun kodları (temsilcileri ) ile çalıĢır. Bu Ģekliyle araĢtırma metodu, kesikli ve tamsayı programlama problemlerinin çözümlerinde uygulanabilir.
11
2. GA, tek nokta üzerine değil bir noktalar popülâsyonu (aday çözümler kümesi) ile araĢtırma yapmaktadır. Bu Ģekilde yerel optimum tuzağına düĢme olasılığı daha zayıftır.
3. GA, sadece bedel (amaç fonksiyonu) bilgisi değerini kullanır, türevlerini veya diğer ikincil bilgilerini değil.
4. GA, rassal Ģekilde, ebeveyn seçimini ve eski jenerasyonlardan çaprazlama yöntemini kullanır. Böylece etkin bir Ģekilde elde olan bilgilere dayanarak yeni kombinasyonlar oluĢturur ve uygunluk değeri daha iyi yeni jenerasyonlar geliĢtirir.
3.2. Biyolojik Altyapı
3.2.1. Kromozom
Tüm yaĢayan organizmalar hücrelerden oluĢur. Her hücrede aynı kromozom kümeleri bulunur. Kromozomlar DNA dizileri olup, tüm organizmanın örneği olarak hizmet ederler.
Bir kromozom gen adı verilen DNA bloklarından oluĢur. Her gen belirli bir proteini kodlar. Basitçe, her genin, örneğin göz rengi gibi bir özelliği kodladığı söylenebilir. Bir özellik için olası ayarlar, (Örn. Mavi, YeĢil) alel olarak adlandırılır. Her gen kromozom üzerinde kendine ait bir konuma sahiptir. Bu konuma yörünge (“locus”) adı verilir. Tüm genetik malzeme kümesine (tüm kromozomlar) genom adı verilir. Genom üzerindeki belli gen kümelerine genotip adı verilir. Genotipler, doğumdan sonra geliĢmeyle fenotiplere - canlının göz rengi, zekâ v.b. fiziksel ve zihinsel özellikleri- dönüĢür.
3.2.2. Tekrar Üretim
Tekrar üretim sırasında, yeniden birleĢme (veya çaprazlama) ilk önce ortaya çıkar.
Atalardan gelen genler yepyeni bir kromozom üretmek için bir araya gelirler. Bu yeni yaratılmıĢ nesil daha sonra mutasyona uğrayabilir. Mutasyon DNA elemanlarının değiĢmesidir. Bu değiĢimler genellikle atalardan gen kopyalanması sırasındaki hatalardan
12
kaynaklanır. Bir organizmanın uygunluğu (“fitness”) organizmanın yaĢamındaki baĢarısıyla (hayatta kalma) ölçülür.
3.2.3. Arama Uzayı
Eğer bir problemi çözüyorsak, genellikle çözümler arasındaki en iyi olanını arıyoruz demektir. Mümkün tüm çözümlerin uzayına (istenen çözümün aralarından bulunduğu çözümler kümesi) arama uzayı (durum uzayı) adı verilir. Arama uzayındaki her nokta bir olası çözümü temsil eder. Her olası çözüm değeri (uygunluğu) ile problem için
“iĢaretlenebilir”. Genetik algoritmalar yardımıyla arama uzayındaki olası çözümler arasından en iyi çözümü araĢtırırız. Çözümü aramak, arama uzayında aĢırı noktaları (azami veya asgari) aramak ile aynı anlamdadır. Zaman zaman arama uzayı iyi tanımlanmıĢ olabilir, ama bu arama uzayında sadece bir kaç noktayı biliyor olabiliriz. GA kullanma sürecinde, çözüm bulma süreci diğer noktaları (olası çözümleri) evrim sürdükçe üretir.
Sorun, arama çok karmaĢık olabilir. Nereden baĢlanacağı veya nereye bakılacağı bilinemeyebilir. Uygun çözümün bulunması için birçok yöntem vardır, fakat bu yöntemler en iyi çözümü üretmeyebilir. Bu yöntemlerin bazıları, tepe tırmanma (“hill climbing”), yasak arama (“tabu search”), benzetimli tavlama (“simulated annealing”) ve genetik algoritmalardır. Bu yöntemler sonucu bulunan çözümler genellikle iyi çözümler olarak kabul edilir, çünkü sık sık en iyiyi bulmak ve ispatlamak mümkün değildir.
NP-Zor (“NP-Hard”) Problemler: “Geleneksel” yolla çözülemeyecek problem sınıfına bir örnek NP (“Non-deterministic Polynomial Time”) problemlerdir. Hızlı (Çokterimli) algoritmaların uygulanabildiği birçok görev vardır. Ancak algoritmik olarak çözülemeyen bazı problemler de vardır. Çözüm bulmanın çok zor olduğu önemli problemler vardır, fakat çözüm bulununca bu çözümü kontrol etmek kolaydır. Bu gerçek “NP-Complete”
Problemleri ortaya çıkarır. NP Nondeterministic Polynomial anlamına gelir ve bunun anlamı çözüm (Nondeterministic algoritma yardımıyla) “tahmin” edilebilir ve kontrol edilebilir. NP Problemlere örnek olarak tatmin problemini, gezgin satıcı problemini veya
13
sırt çantası problemini verebiliriz. Daha fazla örnek için “A Compendium of NP Optimization Problems” sitesi incelenebilir.
3.2.4. Basit Genetik Programlama Taslağı
1. BaĢlangıç: n kromozom oluĢan rasgele toplum oluĢturulur (problemin olası çözümleri)
2. Uygunluk: Toplumdaki her x kromozomu için f(x) uygunluk değeri değerlendirilir.
3. Yeni Toplum: AĢağıdaki adımlar izlenerek yeni toplum üretilir;
1. Seçim: Toplumdan uygunluklarına göre iki ata seçilir (daha uygun olanın seçilme Ģansı daha fazladır)
2. Çaprazlama: Çaprazlama olasılığı ile ataları yeni yavru oluĢturmak için birbirleriyle eĢleĢtirilir. Eğer çaprazlama yapılmazsa, yavru ataların tıpatıp aynısı olacaktır.
3. Mutasyon: Mutasyon olasılığı ile yeni yavru üzerinde her yörünge için mutasyon iĢlemi yapılacaktır.
4. Kabul: Yeni yavru, yeni topluma eklenir.
4. DeğiĢtir: Yeni toplum algoritmanın tekrar iĢlenmesinde kullanılır.
5. Deney: Eğer bitiĢ durumu sağlandıysa, durup toplumdaki en iyi çözüm döndürülür.
6. Döngü: Adım 2’ye gidilir. (Kaynak)
Yukarıda da görüldüğü gibi, genetik algoritmanın akıĢı oldukça kolaydır. Birçok parametre ve ayar farklı problemler için farklı Ģekillerde gerçekleĢtirme için vardır.
Sorulması sorulan ilk soru kromozomun nasıl kodlanacağıdır. Daha sonra çaprazlama ve mutasyon, GA’nın iki basit iĢleci adreslenecektir. Bir sonraki soru çaprazlama için ataların nasıl seçileceğidir. Bu farklı birçok yolla yapılabilir, ancak ana fikir daha iyi ataların daha iyi yavrular üreteceği düĢüncesiyle seçilmesidir. Bu Ģekilde en iyi çözümün kaybedilmemesi için seçkinlik, en iyi çözümün değiĢtirilmeden yeni nesle aktarılması, böylece en iyi çözümün yaĢatılması uygulanabilir.
14 3.2.5. GA ĠĢleçleri
Genetik algoritma taslağında görebileceğimiz gibi, çaprazlama ve mutasyon genetik algoritmanın en önemli kısımlarıdır. BaĢarım en çok bu iki iĢleçten etkilenir. Bu iĢleçlerden bahsetmeden önce kromozomlardan daha fazla bahsetmek gereklidir.
3.2.5.1. Kromozomun Kodlanması
Bir kromozom temsil ettiği çözüm hakkında bir Ģekilde bilgi içermelidir. En çok kullanılan kodlama ikili karakter dizisidir. Bu yöntemle kromozom Ģu Ģekilde görülmektedir:
Kromozom 1: 1101100100110110 Kromozom 2: 1101111000011110
Her kromozom ikili karakter dizisi Ģeklinde temsil edilmektedir. Karakter dizisindeki her bit çözümün bir özelliğini temsil eder. Bir baĢka olasılık tüm karakter dizisinin bir sayıyı temsil etmesidir. Elbette, birçok baĢka kodlama yöntemi vardır.
Kodlama daha çok çözülen probleme bağlıdır. Örneğin bazı problemler için tamsayı veya gerçek sayı Ģeklinde kodlamak gerekirken, bazı problemlerde permütasyon Ģeklinde kodlamaya ihtiyaç vardır.
3.2.5.2. Çaprazlama
Kodlamaya karar verdikten sonra, çaprazlama iĢlemiyle devam edebiliriz.
Çaprazlama, atalardaki seçili genler üzerinde iĢlem yapar ve yeni yavrular oluĢturur.
Bunun en basit Ģekli, rasgele bir kesme noktası (çaprazlama noktası) seçip, bu noktadan
15
önceki her Ģeyi ilk atadan, sonraki her Ģeyi ikinci atadan alıp birleĢtirerek yavruyu oluĢturmaktır.
Çaprazlama aĢağıdaki Ģekilde gösterilebilir: ( | kesme noktasıdır):
Kromozom 1: 11011 | 00100110110 Kromozom 2: 11011 | 11000011110 Yavru 1: 11011 | 11000011110 Yavru 2: 11011 | 00100110110
Çaprazlamanın birçok yolu mevcuttur, örneğin birden fazla kesme noktası seçilebilir. Çaprazlama daha da karmaĢık olabilir ve tamamen kromozomların kodlanmasına bağlıdır. Özel problemler için yapılmıĢ özel çaprazlamalar genetik algoritmanın baĢarımını arttırabilir.
3.2.5.3. Mutasyon
Çaprazlama iĢlemi gerçekleĢtirildikten sonra, mutasyon iĢlemi yapılır. Mutasyonun amacı, toplumdaki tüm çözümlerin çözülen problemlerin bir yerel uygun değerine düĢmesinin önüne geçmektir. Mutasyon iĢlemi çaprazlama sonucu oluĢan yavruyu rasgele değiĢtirmektedir. Ġkili kodlamada rasgele seçilmiĢ bir kaç biti 1’i 0’a, 0’ı 1’e Ģeklinde değiĢtirmek bir mutasyondur.
Asıl Yavru 1: 1101111000011110
Mutasyon GeçirmiĢ Yavru 1:1100111000011110 Asıl Yavru 2: 1101100100110110
Mutasyon GeçirmiĢ Yavru 2:1101101100110110
16
Mutasyon tekniği (çaprazlama tekniği de) kromozomların kodlamasına çoğunlukla bağlıdır. Örneğin permütasyon Ģeklinde kodlamada mutasyon rasgele seçilen iki genin yer değiĢtirmesi olarak gerçekleĢtirilir.
3.2.6. GA’nın Parametreleri
3.2.6.1. Çaprazlama Olasılığı
Bu parametre çaprazlamanın ne kadar sıklıkla yapılacağını belirtir. Eğer herhangi bir çaprazlama yoksa yavrular ataların aynısı olacaktır. Eğer bir çaprazlama yapılırsa yavrular ataların parçalarından oluĢur. Eğer çaprazlama olasılığı %100 ise yavrular tamamen çaprazlama ile yapılır. Eğer %0 ise yavrular ataların kromozomlarının aynısına sahip olurlar. (Bu yeni toplumun aynı olduğu anlamına gelmez) Çaprazlama, yeni kromozomların eski kromozomların iyi parçalarını alıp daha iyi olacakları düĢüncesiyle yapılır, ancak eski toplumun bazı parçalarının bir sonraki nesle aktarılması da iyidir.
3.2.6.2. Mutasyon Olasılığı
Kromozom parçalarının ne kadar sıklıkla mutasyon geçireceğini belirtir. Eğer mutasyon yoksa yavrular çaprazlamadan hemen sonra değiĢtirilmeden üretilir (veya doğrudan kopyalanır). Eğer mutasyon varsa, yavruların kromozomlarının bir veya daha fazla parçası değiĢir. Eğer mutasyon olasılığı %100 ise tüm kromozom değiĢecektir. %0 ise hiçbir Ģey değiĢmez. Mutasyon genellikle GA’nın yerel aĢırılıklara düĢmesini engeller.
Mutasyonlar çok sık oluĢmamalıdır, çünkü GA rasgele aramaya dönüĢebilir.
17 3.2.6.3. Toplum Büyüklüğü
Toplumdaki kromozom (birey) sayısını belirtir. Eğer çok az birey varsa, GA’nın çaprazlama yapacağı olasılıklar azalacaktır ve arama uzayının çok küçük bir kısmı araĢtırılacaktır. Eğer çok fazla birey varsa, GA bayağı yavaĢlayacaktır. AraĢtırmalar bazı sınırlardan sonra çok büyük toplumların kullanılmasının yararlı olmadığını göstermiĢtir, bu problemin daha hızlı bir Ģekilde çözülmesine yardımcı olmamaktadır.
3.2.7. Kodlama
Kromozomların kodlanması bir problem çözümüne baĢlarken sorulması gereken ilk sorudur. Kodlama problemin kendisine yoğun Ģekilde bağlıdır.
3.2.7.1. Ġkili kodlama
Ġkili kodlama en çok kullanılan yöntemdir, çünkü ilk GA araĢtırmaları bu kodlama yöntemini kullanıldı ve görece basit bir yöntemdir. Ġkili kodlamada, her kromozom bit (0 veya 1) karakter dizilerinden oluĢmaktadır.
Kromozom A: 101100101100101011100101 Kromozom B: 111111100000110000011111
Ġkili kodlama, fazla olasılıkta kromozomlar verir, bunlara düĢük sayıda alel içerenler de dâhildir. Ancak, bu yöntem çoğu problem için doğal bir kodlama değildir ve çaprazlama ve/ya mutasyondan sonra düzeltmeler yapılması gerekir.
18 Örnek Problem: Sırt çantası problemi
Problem: Elimizde değeri ve boyutu verilmiĢ olan nesneler var. Sırt çantasının kapasitesi verilmiĢtir. Elimizdeki nesneler sırt çantasına azami sayıda çantanın kapasitesini
aĢmayacak Ģekilde yerleĢtirilmelidir.
Kodlama: Her bit, Ģeyin sırt çantasında olup olmadığını belirtiyor.
3.2.7.1.1. Çaprazlama Yöntemleri
Tek Noktalı Çaprazlama: Tek bir kesme noktası seçilir, ilk atanın kromozomundan kesme noktasına kadar baĢtan itibaren alınır ve geri kalan kısım ikinci atanın kesme noktasından sonraki kısmıyla birleĢtirilip yavrunun kromozomu oluĢturulur (11001011+11011111 = 11001111 ).
İki Noktalı Çaprazlama: Ġki kesme noktası seçilir, kromozomun baĢından ilk kesme noktasına kadar olan ikili karakter dizisi ilk atadan, iki kesme noktası arasındaki kısım ikinci atadan ve ikinci kesme noktasından sonraki kısım tekrar ilk atadan alınarak yeni yavru oluĢturulur (11001011 + 11011111 = 11011111).
Tek biçimli çaprazlama: Bitler atalardan rasgele olarak seçilip kopyalanır (11001011 + 11011101 = 11011111 ).
Aritmetik çaprazlama: Bazı aritmetik bit iĢlemleri atalar üzerinde uygulanarak yeni yavru oluĢturulur (VE iĢlemi 11001011 + 11011111 = 11001001).
19 3.2.7.1.2. Mutasyon Yöntemleri
Bit ters çevirme: Seçilen bitler terslerine çevrilir. (Bkz. ġekil 4.8 Yeni Bit= (NOT)Eski Bit iĢlemi 11001001 => 100010001)
3.2.7.2. Permütasyon Kodlama
Permütasyon kodlama, gezgin satıcı problemi veya görev sıralama gibi sıralama problemlerinde kullanılabilir. Permütasyon kodlamada, her kromozom sıra’da konum belirten numara karakter dizisinden oluĢur.
Kromozom A: 1 5 3 2 6 4 7 9 8 Kromozom B: 8 5 6 7 2 3 1 4 9
Permütasyon kodlama, sıralama problemleri için yararlıdır. Bazı problemlerde bazı çaprazlama ve mutasyon türleri için kromozomların tutarlılığı için (örneğin içerisinde gerçek sırayı tutan) düzeltmeler yapılması gerekmektedir.
Örnek Problem: Gezgin satıcı problemi
Problem: ġehirler ve bu Ģehirler arasındaki uzaklıklar verilmektedir. Gezgin satıcı tüm bu Ģehirleri dolaĢmak zorundadır. Fakat gereğinden fazla dolaĢmamalıdır. En küçük dolaĢma uzunluğunu verecek olan Ģehir dolaĢma sırası bulunmalıdır. Kodlama: Kromozom Ģehirlerin gezgin satıcının dolaĢacağı sırasını tutar.
20
3.2.7.2.1. Çaprazlama yöntemleri (Tek Noktalı Çaprazlama)
Bir kesme noktası seçilir, kesme noktasına kadar ilk atadan, kesme noktasından sonraki kısımlar da ikinci atadan olmak üzere permütasyonlar kopyalanır. Aynı sayılar olmayan sayılarla değiĢtirilerek tutarlı yeni yavru elde edilir. Bundan çok farklı, daha fazla sayıda yöntem de uygulanabilir.
(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) = (1 2 3 4 5 6 8 9 7)
3.2.7.2.2. Mutasyon Yöntemi (Sıra DeğiĢtirme)
Ġki sayı seçilir ve yerleri değiĢtirilir. (1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)
3.2.7.3. Değer kodlama
Gerçek sayılar gibi karmaĢık değerlerin kullanıldığı problemlerde doğrudan değer kodlama kullanılabilir. Ġkili kodlamanın bu tip problemler için kullanılması problemlerin zorlaĢmasına neden olacaktır. Değer kodlamada, her kromozom bazı değerlere eĢittir.
Değerler problemle ilgili herhangi bir Ģey olabilir. Gerçek sayılar, karakterler veya herhangi nesneler olabilir.
Değer kodlama ile kodlanmıĢ kromozom örnekleri:
Kromozom A: 1.2324 5.3243 0.4556 2.3293 2.4545 Kromozom B: ABDJEIFJDHDIERJFDLDFLFEGT Kromozom C: (geri), (geri), (sağ), (ileri), (sol)
21
Değer kodlama bazı özel problemler için iyi bir seçimdir. Ancak, bu tip kodlamada probleme özgü yeni çaprazlama ve mutasyon yöntemleri geliĢtirmek gereklidir.
Örnek Problem: Bir sinir ağı için ağırlıkları bulma
Problem: Bir sinir ağı belirlenmiĢ mimariyle birlikte verilmektedir. Ağdan beklenen değeri almak için sinir ağındaki sinirler arasındaki ağırlıklar istenmektedir.
Kodlama: Kromozomlardaki gerçek değerler sinir ağındaki ağırlıkları temsil eder.
3.2.7.3.1. Çaprazlama yöntemi
Ġkili kodlamadaki tüm çaprazlamalar kullanılabilir.
3.2.7.3.2. Mutasyon Yöntemi (Küçük bir sayı ekleme -Gerçek sayı kodlama için-)
Seçilen değerlere küçük bir sayı eklenir (veya çıkarılır).
(1.29 5.68 2.86 4.11 5.55) => (1.29 5.68 2.73 4.22 5.55)
3.2.7.4. Ağaç Kodlama
Ağaç kodlama genellikle evrimleĢen program veya ifadeler için kullanılmaktadır.
Örneğin genetik programlama için Ağaç kodlamada her kromozom bazı nesnelerin ağacıdır, örneğin iĢlevler veya programlama dilindeki komutlar gibi. Ağaç kodlama evrimleĢen programlar veya ağaç Ģeklinde kodlanabilecek herhangi diğer yapılar için uygundur. LISP programlama dilinde programların ağaç Ģeklinde temsil edilmesi nedeniyle
22
LISP bu iĢ için en çok kullanılan dildir. LISP’te bu ağaçlar kolayca ayrıĢtırılıp, çaprazlama ve mutasyon kolayca yapılmaktadır.
Örnek Problem: Verilen değer çiftlerini yaklaĢtıran fonksiyonu bulma
Problem: Girdi ve çıktılar verilmektedir. Görev tüm girdiler için en iyi çıktıları veren fonksiyonun üretilmesidir.
Kodlama: Kromozomlar ağaçta fonksiyonlar Ģeklinde temsil edilir.
3.2.7.4.1. Çaprazlama
Bir kesme noktası her iki atada da seçilir, atalar bu noktada bölünür ve kesme noktasının altında kalan parçalar değiĢtirilerek yeni yavrular oluĢturulur.
3.2.7.4.2. Mutasyon (ĠĢlev veya Numara değiĢtirme)
Seçilen düğümler yer değiĢtirilir.
3.2.8. Seçim
Seçim, uygunluk değerini temel alarak, populasyondan uygunluk değeri düĢük olan bireylerin elenmesi ve yerlerine uygunluk değerleri yüksek bireylerin kopyalarının konmasıdır. Uygunluk değeri; hangi bireyin sonraki topluluğa taĢınacağını belirler. Bir dizinin uygunluk değeri, problemin amaç fonksiyonu değerine eĢittir. Bir dizinin gücü
23
uygunluk değerine bağlı olup iyi bir dizi, problemin yapısına göre maksimizasyon problemi ise yüksek, minimizasyon problemi ise düĢük uygunluk değerine sahiptir.
Seçim aĢamasının önemi, topluluğun (population) boyutu ile iliĢkilidir. Seçimde küçük topluluk boyutu ile çalıĢılması durumunda topluluk çeĢitlendirmesinin olası iyi alternatiflerin oluĢması için yetersiz kalması sorunu yaĢanabilir. Bu sebeple seçimde, topluluktaki bireylerin çeĢitlendirmesini daraltan bir yöntemin uygulanması iyi sonuç vermeyebilir.
3.2.8.1. Rulet Tekeri Seçimi
Atalar uygunluklarına göre seçilirler. Daha iyi kromozomlar, daha fazla seçilme Ģansına sahip olanlardır. Toplumdaki tüm kromozomların yerleĢtirildiği bir rulet tekerini hayal edelim. Rulet tekeri üzerindeki kromozomun yerinin boyutu kromozomun uygunluğuyla orantılıdır. Daha uygun olan kromozom daha geniĢ bir kısma sahip olur. Bir bilye rulet tekerine atılmakta ve bilyenin durduğu yerdeki kromozom seçilir. Daha uygun olan kromozomlar böylece daha fazla sayıda seçilecektir. Süreç aĢağıdaki algoritma ile anlatılabilir. Toplam: Toplumdaki tüm kromozomların uygunluk toplamını hesaplar - S.
Seçim: (0,S) aralığından rasgele bir sayı üretilir - r. Döngü: Toplum üzerinden gidip 0’dan itibaren uygunlukların toplamını al - s, s r’den büyük olduğu zaman dur ve bulunduğumuz yerdeki kromozomu döndür. Elbette, aĢama bir her toplum için bir kez yapılmaktadır.
3.2.8.2. Sıralama Seçimi
Bir önceki seçim düzeneğinde uygunluk değerleri arasında büyük farklar oluĢunca problemler ortaya çıkacaktır. Örneğin, eğer en iyi kromozomun uygunluğu diğer tüm kromozomların toplamının %90’ı ise diğer kromozomların seçilme Ģansı çok azalacaktır.
Sıralama seçimi ilk önce toplumu sıralar ve her kromozom uygunluk değeri olarak sırasını kullanır. En kötü 1 uygunluğunu, ikinci kötü 2,…., en iyi N (toplumdaki kromozom sayısı) uygunluğunu alır. Uygunluk sıraya göre belirlendiği zaman durum değiĢmektedir. Bu
24
Ģekilde tüm kromozomların seçilme Ģansı olacaktır. Ancak bu yöntem daha yavaĢ yakınsama neden olabilir, çünkü en iyi kromozomlar birbirlerinden çok farklı değillerdir.
3.2.8.3. Sabit Durum Seçimi
Bu özel bir ata seçme yöntemi değildir. Bu tip seçimin ana fikri, toplumun var olan kromozomlarının büyük bir kısmının yeni nesle aktarılmasıdır. Sabit durum seçimi Ģu Ģekilde çalıĢmaktadır. Her yeni nesilde yüksek uygunluk değerine sahip kromozomlar yeni yavruları oluĢturmak için seçilir ve düĢük uygunluk değerine sahip yavrular kaldırılarak yerlerine bu yeni oluĢturulan yavrular koyulur. Toplumun geri kalan kısmı aynen yeni nesle aktarılır.
3.2.8.4. Seçkinlik (Elitizm)
Seçkinliğin ana fikri daha önce açıklandı. Çaprazlama ve Mutasyon yöntemleriyle yeni bir nesil oluĢtururken, en iyi kromozomları kaybetme olasılığımız vardır. Seçkinlik, en iyi kromozomların (ya da bir kısmının) ilk önce kopyalanıp yeni nesle aktarıldığı yöntemin adıdır. Geri kalan kromozomlar yukarıda anlatılan yöntemlerle üretilir. Seçkinlik GA’nın baĢarımını hızlı bir Ģekilde arttırabilir, çünkü bulunan en iyi çözümün kaybolmasını önler.
3.2.9. Çaprazlama
Çaprazlama operatörünün altında yatan düĢünce, iyi uygunluk değerine sahip iki bireyin iyi özelliklerini birleĢtirerek daha iyi sonuçlar elde etmektir. Fakat hangi özelliklerin iyi performans sağladığına yönelik bir fikir edinilemediği için özelliklerin değiĢ tokuĢu Ģeklinde birleĢim rassal olarak gerçekleĢtirilir. Bu Ģekilde rassal olarak
25
yapılan birleĢimler ile iyi sonuçlar alınması beklenir. Tabi ki bazen en kötü özelliklerin toplandığı bir çocuk oluĢumu da söz konusu olabilir. Bu durumda bu çocuk elenecektir.
Basit bir çaprazlama ikili sistem üzerinde aĢağıdaki Ģekilde (ġekil 1) gösterilebilir:
ġekil 1: Genetik algoritmalarda çaprazlama iĢlemi
3.2.10. Mutasyon
Genetik algoritmalarda çeĢitlendirmeye gitmede mutasyondan faydalanılır.
Mutasyonda genlerden biri rassal olarak değiĢtirilir. Eğer ikili (0-1) yapıda bir metod tercih edilmiĢse bu durumda bir genin 0 ise 1, 1 ise 0 yapılması bir mutasyon olacaktır.
Genellikle kullanılan mutasyon oranı, birin birey gen uzunluğuna bölümü seviyesindedir.
Örneğin 100 gen birimine sahip bir birey için oran 0.01’dir. Diğer deyiĢle rassal olarak düĢünüldüğünde her bir genin mutasyona uğrama olasılığı % 1’dir.
Bu tür genetik operatörlerin kullanımı ile en iyi uygunluk değerine ulaĢmaya çalıĢan genetik algoritmaların akıĢ diyagramı aĢağıdaki Ģekildeki gibi olacaktır.
Algoritmanın durması için sağlanması gereken kriter; genellikle belli bir uygunluk değerinin yakalanması veya belirlenen sayıda döngünün sağlanması olarak verilmektedir.
Bir genetik algoritma süreci genel olarak aĢağıdaki Ģekildeki(ġekil 2) gibidir:
26
ġekil 2:Genetik Algoritmaların genel akıĢ diyagramı
3.3. Genel Uygulama Alanları
Genetik algoritmaların genel uygulama alanları aĢağıdaki gibi verilebilir:
3.3.1. Optimizasyon
Bir arama yöntemi olan genetik algoritmalar, farklı bilim dallarındaki optimizasyon problemlerini çözmede kullanılmaktadır. Genetik algoritmaların uygulandığı optimizasyon problemleri, fonksiyon optimizasyonu ve birleĢi (combinatorial) optimizasyonu altında toplanabilir
Genetik algoritma araĢtırmalarının önemli bir bölümü fonksiyon optimizasyonu ile ilgilidir. Genetik algoritmalar, geleneksel optimizasyon tekniklerine göre zor, süreksiz ve gürültü (noisy) içeren fonksiyonları çözmede daha etkindirler. Optimize edilecek amaç
27
fonksiyonunun süreksiz olması halinde, süreksizlik noktalarında fonksiyonun türevi alınamayacağından, türev almaya dayalı optimizasyon yöntemleri kullanılamamaktadır.
Oysa, genetik algoritmalar, problemlerin çözümü için türev veya diğer yardımcı bilgilere gereksinim duymadığından özellikle bu tip problemlerin çözümünde geleneksel yöntemlere göre önemli bir üstünlük sağlamaktadır.
Genetik algoritmaların uygulandığı diğer bir optimizasyon problem sınıfı olan birleĢi optimizasyon problemleri ise, istenen amaçlara ulaĢmak üzere, sınırlı kaynakların etkin tahsis edilmesiyle ilgilidir. Bu sınırlar genel olarak, iĢgücü, tedarik veya bütçe ile ilgilidir. Sözü geçen “birleĢi” kelimesi, yalnızca sonlu sayıda alternatif uygun çözümün mevcut olması ile ilgilidir. BirleĢi optimizasyon, iyi tanımlanmıĢ bir problem uzayında bir veya daha fazla optimal çözüm bulma sürecidir. Bu tip problemler yönetim biliminin tüm dallarında da (finans, pazarlama, üretim, stok kontrolü, veri-tabanı yönetimi vb.) ortaya çıkmaktadır. Gezgin satıcı problemi, araç rotalama problemi, Çinli postacı problemi, iĢ atölyesi çizelgeleme problemi, atama problemi, yerleĢim tasarımı problemi ve sırt çantası problemi birleĢi optimizasyon problemlerine örnektir. BirleĢi optimizasyon problemlerinde, incelenen değiĢken sayısı arttıkça çözüme ulaĢma zamanı üstsel olarak artmaktadır. Çözüm uzayının tamamının taranmasını gerektiren geleneksel çözüm yöntemlerinde problem çözümü değiĢken sayısının artmasıyla imkansız hale gelebilmektedir. Genetik algoritmalar ise çözüm uzayının yalnızca belirli bir kısmını taradığı ve eĢ zamanlı arama yaptığı için, bu tip problemlerde çözüme daha kısa sürede ulaĢabilmektedir.
ÇeĢitli avantajlarına rağmen genetik algoritmaların uygulamalarında bir takım sorunlarla da karĢılaĢılmaktadır. Bu sorunları aĢmak için çeĢitli yöntemler geliĢtirilmiĢtir.
Buna kısıtların ele alınmasındaki soruna karĢı ceza fonksiyonu yönteminin kullanılması örnek verilebilir. Ancak, bulunan çeĢitli yöntemlere rağmen bu konuda yeni yaklaĢımlara gereksinim duyulmaktadır
3.3.2. Otomatik Programlama ve Bilgi Sistemleri
28
Genetik algoritmaların yaygın olarak kullanıldığı alanlardan biri, belirli ve özel görevler için gerekli olan bilgisayar programlarını geliĢtirmedir. Ayrıca, diğer hesaplama gerektiren yapıların tasarımı için de kullanılmaktadır. Bunlara örnek olarak, bilgisayar çipleri tasarımı, ders programı hazırlanması ve ağların çizelgelenmesi verilebilir.
Genetik algoritmalar kullanılarak dağıtılmıĢ bilgisayar ağlarının tasarımı da gerçekleĢtirilmektedir. Bu problem tipinde ağ güvenilirlik parametrelerini (çap, ortalama uzaklık ve bilgisayar ağ güvenilirliği gibi) optimize etmek için birden fazla amaç fonksiyonu kullanılmaktadır. Genetik algoritmalar ile 100 düğüme kadar olan ağlar baĢarıyla tasarlanmıĢtır. Ağ tasarımında genetik algoritmaların kullanılması, tasarım sürelerinin ve maliyetlerinin azalmasında önemli bir katkı sağlamıĢtır. Özellikle, maksimum miktardaki verinin minimum iletiĢim hattıyla taĢınmasında yüksek bir performans göstermiĢtir. Ayrıca genetik algoritmaların kullanımıyla, çeĢitli alanlara dağıtılmıĢ bir sistem için en uygun dosya tahsisatı gerçekleĢtirilmektedir.
3.3.3. Mekanik Öğrenme
Mekanik öğrenme; ilki, gözlenmiĢ bir veri takımını anlamak ve yorumlamak, ikincisi de görülmemiĢ objelerin özelliklerini tahmin etmek olan iki temel amaç için model kurmayı amaçlar. Parametrik istatistikten ziyade çok büyük veri takımlarının yönetimi üzerinde çalıĢır. Kullandığı metotların çoğu dağılımdan bağımsız metotlar olarak sınıflanabilir. Uygun model seçimi için iĢe problem hakkındaki varsayımlarla baĢlamaz.
Onun yerine uygun model yapısını belirlemek için doğrudan mevcut veriden hareketle bir araç kutusu yaklaĢımı kullanır.
Sınıflama sistemi, genetik algoritmaların mekanik öğrenme alanında bir uygulamasıdır. Basit dizi kurallarını öğrenen bir mekanik öğrenme sistemi olan sınıflama sisteminin kural ve mesaj sistemi, özel bir üretim sistemi olarak adlandırılabilir. Bu üretim sistemi, “eğer-sonra” kural yapısını kullanır. Bir üretim kuralı, “eğer” yapısından sonra belirtilen durum için, “sonra” yapısından sonra gelen faaliyetin gerçekleĢtirilmesini içerir.
29
Genetik algoritmalar, sınıflama sistemlerinde kural-bulma mekanizması olarak kullanılmaktadırlar.
Genetik algoritmalar ayrıca, sinir ağlarında ve proteinin yapısal analizinde de kullanılmaktadır.
3.3.4. Ekonomik ve Sosyal Sistem Modelleri
Bir sistemi ölçen ampirik olarak gözlenmiĢ değiĢkenler arasındaki matematiksel iliĢkiyi keĢfetme problemi ekonomide en önemli problemlerden biridir. Pratikte gözlenmiĢ veri gürültü içerebilir ve kapsanan iliĢkileri kesin ve açık bir Ģekilde açıklayacak bir yol bilinmeyebilir. Bu tip problemler, sembolik sistem tanımlama, kara kutu, veri madenciliği ve modelleme problemleri olarak bilinir. Eğer keĢfedilen model, sistemin durum değiĢkenlerinin gelecek değerlerini tahmin etme için kullanılacaksa problem öngörüleme problemi adını alır. Geleneksel doğrusal, kuadratik ve üstsel regresyon modellerinde sapma hataları minimize edilerek fonksiyonlara uygun sayısal katsayılar bulunur. Buradaki yaklaĢım, model seçildikten sonra uygun sayısal katsayıların aranmasıdır. Gerçek problem ise verinin değerlendirilmesi için hangi tip modelin uygun olduğunun kararıdır.
Keyfi bir matematiksel iliĢkiyi açıklamada bilgisayarlar, bu iliĢkiyi formüller ve denklemler aracılığı ile açıklamaktan daha esnektir. Bu nedenle, bu tip iliĢki açıklamaları için sembolik regresyon kullanılabilmektedir. Sembolik regresyonlar, hem fonksiyon formunu hem de o fonksiyondaki uygun katsayıyı araĢtırmaktadır. Bunu bulma ise, verilen girdiler için arzu edilen çıktıları üreten özel bir hesaplama programı ile program uzayında arama yapmaya benzemektedir. Genetik algoritmaların kullanıldığı genetik programlamayla bu tip problemlere tatmin edici çözümler çok daha kolay getirilebilmektedir.
Genetik algoritmalar yenilik sürecinin modellenmesi amacıyla da kullanılmaktadır.
Ayrıca genetik algoritmaların, fiyat verme stratejilerinin geliĢim süreçlerini ve kazanç getiren pazarların ortaya çıkıĢ süreçlerini modelleme alanlarında da kullanımları oldukça yaygındır. Genetik algoritmalar sosyal sistemlerin evrimsel yönlerini anlamak amacıyla
30
kullanılmaktadır. Bunlara örnek olarak iĢbirliğinin evrimi, iletiĢimin evrimi ve karıncalardaki iz takibi davranıĢının evrimi verilmektedir.
3.3.5. ĠĢletmelerdeki Uygulama Alanları
Genetik algoritmalar; baĢta üretim/iĢlemler olmak üzere finans ve pazarlama gibi iĢletmelerin fonksiyonel alanlardaki birçok farklı iĢ probleminin çözümü için kullanılmaktadır. Genetik algoritmaların özellikle, kaynak tahsisi, iĢ atölyesi çizelgelemesi, makine parça gruplaması ve bilgisayar ağ tasarımı gibi çeĢitli alanlarda uygulamaları mevcuttur. ĠĢletmelerdeki en yaygın kullanım alanları aĢağıdaki gibi verilebilir:
3.3.5.1. Finans
Genetik algoritmalar, finansal modelleme uygulamaları için son derece uygundurlar. Genetik algoritmalar amaç fonksiyonu odaklıdır. Finans problemlerinde genel olarak, amaç fonksiyonları tahmin etme gücüne veya bir kıyaslama sonucuna bağlı getirilerdeki geliĢmeleri içerir. Kullanılan araç ve problemler arasında mükemmel bir eĢleĢme mevcuttur. Özellikle hisse senedi fiyatlarındaki değiĢim kalıplarını tahmin etmede ve bulmada, kaynak tahsisi ve uluslararası sermaye tahsisi stratejilerini belirlemede genetik algoritmalar kullanılabilmektedir. Bu yaklaĢımla, kısıtlanmıĢ portföy optimizasyonu, endeks izleme, iĢlem maliyetleri ve risk tercihleri kısıtlarının da katıldığı çok dönemli portföy yönetim sistemlerinin kurulması, yine minimum iĢlem lotlu portföy seçimi problemlerin çözümü yapılabilmektedir. Daha yüksek getiriler elde etmek için FX piyasalarındaki ticari kuralları geliĢtirmede (al-tut stratejilerinden daha karlı olanları bularak) genetik algoritmalar kullanılabilmektedir. Ayrıca, müĢterilerinin kredi değerliliğini ölçmede, yatırım araçlarının performansını belirlemede, iĢletmedeki mali kayıpların araĢtırılmasında, finansal opsiyonların geliĢtirilmesinde kullanılan veri madenciliğine uygulanabilmektedir. MüĢteri kredi değerliliğini ölçme, kredi kartı puanlama, piyasalar ile ilgili tahminleri ve Ģirketlerdeki iflas tahminlerini yapma genetik algoritmaların en sık uygulandığı finans problemlerindendir.
31
Finans problemlerinin çözümünde genetik algoritmalar, bulanık ve yapay sinir ağları yaklaĢımlarıyla birlikte kullanılmaktadır. YumuĢak hesaplama ve hibrid genetik algoritma yaklaĢımı sık görülmektedir. Ayrıca, çözüm performansı açısından finans problemlerindeki genetik algoritma çözümleri yasaklı arama, tavlama benzetimi arama metotları ile karĢılaĢtırılmakta ve o probleme uygun çözüm yöntemi önerilmektedir.
Genetik algoritmaların optimal kaynak tahsisi problemlerine uygulanması ile ortalama- varyans optimumundan farklı çözüm yöntemi geliĢtirilmiĢ ve kuadratik optimizasyona genetik algoritmalar uygulanmıĢ olmaktadır.
3.3.5.2. Pazarlama
Tüketicilere ait verileri analiz etmek, çeĢitli tüketici kalıpları çıkarmak ve bu kalıplara dayanarak pazarlama stratejileri uygulamak, pazarlamanın en önemli fonksiyonlarından biridir. Tüketicilerin profilleri çıkarılarak, belirli satın alma kalıpları yakalanabilmektedir. Ancak tüketici profilini çıkarabilmek için, çok büyük veri tabanlarını iĢletme amaçları doğrultusunda hızlı ve etkin biçimde kullanmak gerekmektedir. Burada kullanılan teknik veri madenciliğidir. Veri madenciliği, çok geniĢ veri tabanlarından veriyi süzme tekniğidir. Pazarı ve tüketiciyi tanımada son derece önemli rol oynayan veri madenciliği, veriyi bilgiye bilgiyi de güvenli kararlara dönüĢtürür. Veri madenciliğinin verimlilik, karlılık, müĢteri tatmini ve rekabet edebilme yeteneği gibi yaĢamsal konularda iĢletme üzerinde çok önemli etkileri bulunmaktadır. Rekabet edebilme yeteneği karar alma kalitesine bağlıdır ve bundan dolayı iĢletmeler sürekli karar kalitelerini geliĢtirmeye çalıĢırlar. Veri madenciliğinde kullanılan tekniklerden birisi de genetik algoritmadır.
Genetik algoritma tabanlı yaklaĢım kullanılarak veri yığınlarından modeller elde edilmektedir. Bu konuda Siddhartha Bhattacharyya’nın 1999 yılında ve Marshall’ın da aynı yılda yayınlanmıĢ çalıĢması bulunmaktadır.
32 3.3.5.3. Üretim/ĠĢlemler
Genetik algoritmaların en çok uygulandığı alanların baĢında üretim/iĢlemler gelmektedir. Burada üretim/iĢlemler alanıyla ilgili çeĢitli problemler ele alınacaktır.
• Montaj Hattı Dengeleme Problemi
Montaj iĢlemi endüstrilerde çok önemli bir rol oynamaktadır. Nof ve arkadaĢlarının 1997’de yayınlanan çalıĢmalara göre üretilen mamullerin montajı, toplam üretim zamanının % 50’sine, toplam birim üretim maliyetinin % 20’sine ve iĢçilik maliyetlerinin
% 30-% 50’sine karĢılık gelmektedir. Bundan dolayı montaj hattı dengeleme problemi, firmalar açısından yaĢamsal öneme sahiptir. Bu konuda; Leu, Motheson ve Rees’in 1994’de, Rubinovitz ve Levitin’in 1995’de, Tsujimura, Gen ve Kubota’nın 1995’de, Sabuncuoğlu, Erel ve Tanyer’in 1999’da, Ponnambalam, Aravindan ve Naidu’nun 2000’de yayınlanmıĢ çalıĢmaları bulunmaktadır.
Bu çalıĢmalardan Tsujimura, Gen ve Kubata’nın 1995 yılında yayınlanan çalıĢmasında; her bir iĢ istasyonundaki toplam iĢlem zamanlarını minimize etmeyi hedefleyen amaç fonksiyonunun çözümü, genetik algoritma ile bulanık küme mantığı birlikte kullanılarak gerçekleĢtirilmiĢtir.
• Çizelgeleme Problemi
Genetik algoritmaların çizelgeleme problemine ilk uygulama çalıĢması, Davis tarafından 1985 yılında yapılmıĢtır. 1987’de Liepins ve arkadaĢları, belirli teslim tarihleri ve iĢlem süreleri olan iĢlerin çizelgelenmesi problemini araĢtırmıĢlardır. Bu problem en basit çizelgeleme problemi adlandırılmaktadır. 1993’de Gupta ve arkadaĢları, akıĢ zamanını minimize etme amacını taĢıyan tek makine modeli üzerindeki çalıĢmalarını
33
yayınlamıĢlardır. Lee ve Kim 1995’de gecikme ve sarkma cezalarını da modele katan çalıĢmalarını sunmuĢlardır. Cheng ve arkadaĢları gene aynı yıl, özdeĢ paralel makinalardan oluĢan model üzerindeki çalıĢmalarını yayınlamıĢlardır. Bunun dıĢında; iĢ atölyesi çizelgelemesi problemi için Biegel ve Davern’nin 1990’da, akıĢ atölyesi problemi için Badami ve Parks’ın 1991’de, süreç planlama problemi için Vancza ve Markus’un 1991’de yayınlanmıĢ çalıĢmaları bulunmaktadır. Genel olarak genetik algoritmalar, çizelgeleme problemlerine optimale yakın çözüm bulmuĢlardır. Fakat çözüm bulma süreleri diğer çözüm yöntemlerine göre oldukça hızlı olmuĢtur.
• Tesis YerleĢim Problemi
Tesis yerleĢim problemleri araç/gereçleri veya diğer kaynakları belirli bir kritere göre optimum performans sağlayacak Ģekilde yerleĢtirme kararını içermektedir. Bu gibi kararlar, araç/gereçlerin genellikle farklı ürünleri üretme esnasında kullanılmasından dolayı karmaĢık hale gelmektedir. Her ürünün kendine özgü gereksinimleri olabilir ve tüm ürünler için toplam üretim maliyetinin optimum olması sağlanacak Ģekilde yerleĢim tasarlanabilir. YerleĢim kararları hızlı ve doğru verilmelidir. Çünkü kararların zayıflığı üretim esnasında ortaya çıkmakta ve bu da artı maliyetlere yol açmaktadır. Örneğin, üretimde robot kullanan iĢletmelerin tesis yerleĢimi tasarımında karmaĢıklık söz konusudur. Tek bir robot bir makineden diğerine parçalar taĢırken hareketsiz bir noktada sabitlenir ve yalnızca bir eksen etrafında hareket eder. Robotun hareketine göre, makineler tek-sıra, doğrusal çift-sıra, dairesel tek-sıra ve çoklu-sıra gibi dört farklı yerleĢim Ģekliyle yerleĢtirilebilir. Burada, dairesel tek-sıra, doğrusal tek-sıranın özel bir durumudur. Ayrıca doğrusal çift-sıra da çoklu sıra probleminin bir alt kümesidir (Dong, 2000: 8). Tesis yerleĢim problemleri bunun gibi bir çok zorluğu içermektedir. Genetik algoritmalar, bu tip problemlerin çözümünde uygun bir çözüm yöntemi olabilmektedir. Bu alanda Tam’ın 1992 yılında, Chan ve Tansri’nin 1994 yılında, Tom ve Chan’nin 1998 yılında, ĠĢlier’in 1998 yılında ve Al-Hakim’in 2000 yılında yayınlanmıĢ çalıĢmaları bulunmaktadır.
34
• Atama Problemi
Genel olarak atama problemi; n elemanın, n farklı göreve atanması problemidir. Ġ.
kiĢinin, j. iĢi yapma maliyeti cij dir. Bu durumda problem amaç fonksiyonunu minimize edecek {Π1, ..., Πn} atama kümesinin bulunması Ģeklinde tanımlanabilir. Burada problem çözümü, {1, ..., n} sayılarının {Π1,...,Πn} permütasyonu olarak gösterilmektedir. Genetik algoritmaların atama problemlerine uygulanması konularında, Huntley ve Brown’nun 1991’de, Nissen’nin 1992’de, Tate ve Smith’in 1995’de, Ahuja, Orlin ve Tiwari’nin 2000’de yayınlanmıĢ çalıĢmaları mevcuttur. Ayrıca 1996 yılında Chu ve Beasly, minimum maliyetli atamanın hedeflendiği problem için genetik algoritmaların kullanıldığı bir çözüm önermiĢtir. 1995 yılında Zhao, Tsujimura ve Gen’nin yayınlanan makalelerinde, iĢ istasyonu atama problemi için genetik algoritma kullanılmıĢtır.
• Hücresel Üretim Problemi
Hücresel üretim kavramı, üretim sistemlerinin verimliliğini arttırmada anahtar faktörlerden biridir. Hücresel üretim, parça ailelerini belirledikten sonra, her parça ailesini ayrı bir üretim hücresinde imal ederek hücreler arası taĢımaları en aza indirmeyi amaçlamaktadır. Genetik algoritmalar, hücreler arası taĢımanın minimum olduğu bir hücre kuruluĢu amaçlanmasında kullanılabilmektedir. Bu konuda Tate ve Smith’in, Kamrani ve Parsai’nin yayınlanmıĢ çalıĢmaları bulunmaktadır Ayrıca, Joines’in 1996’da yayınlanmıĢ çalıĢması mevcuttur. Venugopal’ın 1999’daki çalıĢması, hücresel üretim konusu için uygulanmıĢ çözüm tekniklerinin genel bir değerlendirmesini içermektedir. ĠĢlier’in bu konudaki çalıĢmasında ise, üretim hücrelerinin yapısını temsil eden bilgilerin gösterimi, iki bölüm halindedir. Birinci bölümde, tezgah-hücre iliĢkileri, bunun devamı olan ikinci bölümde de parça-hücre iliĢkileri yer almaktadır. Genetik algoritmalar ile birden fazla çözüm aynı anda ele alınmaktave bu sayede farklı bölgeler eĢ zamanlı olarak taranmaktadır. Bunun sonucunda da daha kısa zamanda daha uygun sonuçlar elde edilmektedir.
35
• Sistem Güvenilirliği Problemi
Bir sistemin güvenilirliği, belirli koĢullar altında belirli bir zaman aralığında sistemin baĢarılı olarak çalıĢma olasılığı olarak tanımlanmaktadır. Çoğu sistem, çeĢitli iĢlemlerde kritik bir role sahiptir ve eğer sistemde arıza olursa sonuçları oldukça ciddi olmaktadır. Bu alanda optimizasyon, etkisiz parçaların sisteme en iyi Ģekilde tahsis edilebilme veya yararlanabilme yolunu bulmayı içermektedir. Parçalara, güvenilirliklerinin etkin olarak ölçülebilmesiiçin olasılıklar atanmaktadır (Dong, 2000: 7). Bu konuda;
Painton ve Campbell’in 1995’de, Sasaki, Gen ve Yamashiro’nun 1995’de, Coit ve Smith’in 1996’da, Dengiz, Altıparmak ve Smith’in 1997 ve 2000’de yayınlanmıĢ çalıĢmaları bulunmaktadır.
• TaĢıma Problemi
TaĢıma problemi; tedarikçilerden tüketicilere, talebi karĢılamak üzere, minimum maliyetle tek tipte mamul gönderilmesini içermektedir. M tane tedarikçi ve n tane de tüketici mevcuttur. Tek tedarikçiden her bir tüketiciye bir birim mamul ulaĢtırma maliyeti bilinmektedir. Problem, tüm talebin karĢılanması ve maliyet minimizasyonu Ģartıyla mamulün arz yerinden talep yerine optimum tahsisini sağlamaktır. Son zamanlarda, çeĢitli taĢıma problemlerinin çözümü için evrimsel (evolutionary) yaklaĢımlarla çözüm önerileri sunulmaktadır. Michalewicz ve arkadaĢları, doğrusal ve doğrusal olmayan taĢıma problemleri için genetik algoritma kullanımını ilk öneren araĢtırmacılardır. Ayrıca, Gen ve Li de genetik algoritmaları taĢıma problemlerinin çözümü için kullanmıĢlardır.
• Gezgin Satıcı Problemi
Genetik algoritmaların, birleĢi optimizasyon problemlerine uygulamaları ile ilgili çeĢitli çalıĢmalar mevcuttur. En yoğun yapılan çalıĢmalardan biri de gezgin satıcı problemleri için yapılmaktadır. Gezgin satıcı probleminde amaç, katedilen toplam