I ÖZET Bu çalıĢmanın amacı evrim ve genetiğin - Yapay

Transkript

I ÖZET Bu çalıĢmanın amacı evrim ve genetiğin - Yapay
Ö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
I
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.
II
ĠÇĠ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
III
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
IV
ġ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
V
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
VI
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.
1
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
2
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.
3
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,
4
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.
5
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
imlendirilememesi gerçeğini doğurdu.
6
semantik
süreçlerin
de
benzeĢ
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
7
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.
8
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.
9
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.
10
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
11
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
12
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.
13
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
14
ö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
15
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.
16
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.
17
Ö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).
18
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.
19
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)
20
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
21
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ü
22
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
23
Ģ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
24
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:
25
ġ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ç
26
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
27
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.
28
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
programlamayla
benzemektedir.
bu
tip
Genetik
problemlere
tatmin
algoritmaların
edici
kullanıldığı
çözümler
çok
daha
genetik
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
29
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.
30
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 ortalamavaryans 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.
31
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ı
32
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.
33
• 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.
34
• 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
35
mesafeyi minimize eden bir yolculuk planı oluĢturmaktır. Bir çok problem tipi gezgin
satıcı problemi gibi modellenebilmektedir. Bunlara örnek olarak; devre tasarımı, posta
taĢıyıcılarının, havayolu uçaklarının, okul otobüslerinin rotalarının bulunması verilebilir.
Gezgin satıcı probleminin bir özelliği de değiĢken sayısı artıkça üstsel artıĢ gösteren zaman
ihtiyacı içinde çözüme ulaĢtırılabilmesidir. Bu durum bir örnekle Ģöyle açıklanabilir; bir
satıĢ görevlisinin ziyaret etmek durumunda olduğu n tane Ģehir olsun. Burada tüm
Ģehirlerarasındaki maksimum izlenecek rota sayısı (n-1)! dir. Tüm mümkün rotaları basitçe
inceleyen ve en kısa olan rotayı bulan bir algoritma kullanılır.
Fakat Ģehir sayısı arttıkça algoritmanın hesaplama için gereksinim duyduğu zaman
daha da büyük bir oranda artmaktadır. Ziyaret edilmesi gereken 25 Ģehir varsa,
algoritmanın inceleyeceği rota sayısı 24!’dir. Bu da yaklaĢık 6,2x1023 sayısına karĢılık
gelmektedir. Saniyede bir milyon rota inceleme kapasitesine sahip bir bilgisayar, bu
problemi, 6,2x1017 saniyede yani,1,96x1010 yılda çözebilmektedir (Dong, 2000: 6).
Herhangi bir problem için kullanılan algoritmanın en yaygın performans ölçütü,
algoritmanın çözüme ulaĢma süresidir. Gezgin satıcı gibi değiĢken sayısı arttıkça çözüm
zamanı üstsel olarak artan problemlerde bu daha da önemlidir. Genetik algoritmalar birleĢi
optimizasyon problemlerini klasik yöntemlere göre çok daha kısa sürede çözmektedir.
Sonuçta optimale yakın ve kabul edilebilir bir çözüm bulunmaktadır.
•Araç Rotalama Problemi
BirleĢi optimizasyon problemlerinin örneklerinden biri de araç rotalama
problemidir. Temel araç rotalama problemi, talebi belirli olan müĢterileri kapsar. Tek bir
depodan araçlar ayrılmakta ve müĢteri taleplerini karĢılayarak tekrar depoya dönmektedir.
Her aracın kapasite kısıtı vardır. Bu temel probleme ayrıca, her aracın alacağı yol da
mesafe kısıtı olarak eklenebilir. Her bir müĢterinin talebini yalnızca bir araç
karĢılamaktadır. Problem, bu kısıtlar altında minimum toplam maliyeti veren rotaları
bulmaktır. Daha karmaĢık bir araç rotalama problemi olan zaman pencereli rotalama
probleminde ise amaç müĢteri talebini belirli zaman aralıkları içersinde minimum toplam
maliyetle karĢılamaktır. Genetik algoritmalar özellikle zaman pencereli araç rotalama
36
problemlerinin çözümü için kullanılmaktadır. Thangiah, Blanton ve Wainwright, Prinetto
bu konuda çalıĢmalarda bulunan araĢtırmacılardan bazılarıdır. Ayrıca, Kopfer, Pankratz ve
Erkens ile Filipec, Sklec ve Krajcar’ın bu konuda yayınlanmıĢ çalıĢmaları bulunmaktadır.
• Minimum Yayılan Ağaç Problemi
Minimum yayılan ağaç problemi, grafik teorisinde klasik bir problemdir.
Coğrafi bir alanda dağılmıĢ çeĢitli Ģehirlerarasında fiber-optik kablo döĢeme problemi bu
tip problemler için uygun örneklerden birisidir. Her Ģehir arasında kablo döĢeme maliyeti
bilinmektedir. Problemin amacı, tüm Ģehirleri fiber-optik kablo ağına bağlayan yerleĢimi
en düĢük maliyetle bulabilmektir. YerleĢim herhangi iki Ģehir arasında veri paketinin gidip
gelmesine, uzaklık ne olursa olsun olanak tanımalıdır. Grafik teorisinde, Ģehirler vertisler,
kablolar da kenarlar olarak tanımlanır. Burada her kenarın bir maliyeti vardır. Bu problem
Ģöyle formüle edilmektedir. G = (V, E) bağlantılı ve yönlendirilmemiĢ bir grafik olsun. V =
{v(1), v(2), ........., v(n)} vertisler kümesi ve E = {e(1), e(2), ........., e(m)} kenarlar kümesi
olsun. Her kenarın negatif olmayan w ağırlığı mevcuttur. Bu da w={w(1), w(2), .....,
w(m)} olarak gösterilmektedir. Yayılan ağaç, grafikteki tüm vertisleri birbirine bağlayan
minimum değerli kenarlar kümesidir. Buradaki “ağaç” tanımı, döngü kuran vertisleri veya
yalnızca tek bir vertisi kapsamaz. Kısacası, minimum yayılan ağaç problemi her bir olay
veya nokta çiftleri arasındaki kenarların (dalların) en kısa olanının bulunarak ağaç içindeki
kenarların birbirleriyle toplam en kısa yolu bulacak Ģekilde iliĢkilendirilmesidir. Genetik
algoritmaları minimum yayılan ağaç problemini çözmek için kullanırken önemli olan
nokta, ağacın nasıl kodlanacağıdır. Kodlama; kenar kodlaması, vertis kodlaması veya her
iki kodlamanın birleĢimi kullanılarak yapılabilmektedir. Genetik algoritmaların etkin sonuç
verebilmesi için kodlamanın doğru Ģekilde yapılması gerekmektedir. Kodlama planında,
tüm ağaçlar temsil edilebilmeli ve her ağaç aynı sayıda kodlanmalıdır. Bu konuda,
Wainwright, Ali ve Schoenefeld’in yayınlanmıĢ çalıĢması mevcuttur.
37
4. VERĠ MADENCĠLĠĞĠ
4.1. Karar Verme ve Veri Madenciliği
Bir karar verici için verilen kararın doğruluğu, onun yeteneklerine, deneyimine ve
bilgi birikimine olduğu kadar sahip olduğu veri kümesinin yeterliliğine de bağlıdır. Diğer
bir deyiĢle kararın baĢarısında, verilerin doğru depolanması, doğru sınıflanması, doğru
ayıklanması, doğru iĢlenmesi ve doğru yorumlanması çok önemli bir rol oynar. Ancak
karar süreçlerinin karmaĢıklaĢması, sayısal olarak daha fazla veriye gereksinimi ortaya
çıkarmıĢ, bu durum ise veri depolarının büyüklüğünü manuel olarak kontrol edilemeyecek
boyutlara ulaĢtırmıĢtır.
Artık ekonomik sistemde veri ya da bilgi, mal ya da hizmet üretiminin
faktörlerinden birisi olarak algılanmaktadır. Bu ise karar vericileri yanlıĢ karar riskinden
uzaklaĢabilmek için, mümkün olduğunca fazla veriyi depolamaya zorlamaktadır. Ayrıca
internetin küreselleĢmeyi körüklemesi, rekabetin kırıcı seviyelere ulaĢması, kar marjlarının
düĢmesi ve müĢteri memnuniyetinin zorlaĢması, bu endiĢeyi daha da körüklemektedir. Bu
durum ise doğru veriyi toplama ya da doğru veriye ulaĢma zorunluluğunu doğurmaktadır.
Diğer bir deyiĢle artık, veriye eriĢmek en az verinin kendisi kadar önemli hale gelmiĢtir.
4.2. Veri Ambarları ve Veri Madenciliği
Veriyi genel olarak, enformasyonel veri ve operasyonel veri olarak ikiye ayırmak
mümkündür. Enformasyonel veri, kiĢiye yönelik, bütünleĢik, zaman içinde oluĢan ve
birleĢtirilmiĢ veriler olarak tanımlanabilir. Operasyonel veri ise, uygulamaya yönelik,
dağınık, kısa zamanda oluĢan ve tekrarlayabilen veriler olarak tanımlanmaktadır.
38
Veri ambarları, tüm operasyonel iĢlemlerin, en alt düzeydeki verilerine kadar
inebilen, etkili analiz yapılabilmesi için özel olarak modellenen ve tarihsel derinliği olan
veri depolama sistematiği olarak tanımlanabilir. Bu tanımdan da anlaĢılacağı gibi bir veri
ambarı enformasyonel veri üzerine kurulur. Bir veri ambarının oluĢturulabilmesi için
kullanılabilecek bir yazılım yoktur. Diğer bir deyiĢle veri ambarları, ilgili karar sürecine
özeldir ve o karar süreci için modellenir.
Veri ambarları aynı zamanda bir veri tabanı olarak da yorumlanabilir ve temel
olarak müĢteri bilgilerini içerir. Veri ambarında, bir karar süreci için gerekli olacak
kullanılabilir veri oluĢturulur. Bir veri ambarının yapısı organizasyon içindeki bütün karar
vericilere verileri ve iĢlem sonuçlarını sunan, en geliĢmiĢ iletiĢimi sağlayan bir dizi
birbiriyle bütünleĢik alt bileĢenlerden oluĢur. Bu katmanlar aĢağıda sıralanmıĢtır.
1. Operasyonel Veri Tabanı / Harici Veri Tabanı Katmanı
2. Enformasyon UlaĢım Katmanı
3. Data UlaĢım Katmanı,
4. Data Directory (Metadata) Katmanı,
5. ĠĢlem (process) Yönetim Katmanı,
6. Uygulama HaberleĢmesi Katmanı
7. Veri Ambarı Katmanı
8. Data Sunum Katmanı
Bir veri ambarı kiĢisel bilgisayarlar, karar destek sistemi (DSS) yazılımı, iletiĢim
ağları, sunucular, anaçatı bilgisayarlar, farklı veritabanı yönetim sistemi (DBMS) paketleri,
farklı insan ve organizasyonel birimler gibi, çok geniĢ bir alana dağılmıĢ bileĢenler içeren
karmaĢık bir sistemdir. Bu yüzden de her karmaĢık sistemde olduğu gibi bir mimari
oluĢturularak iĢe giriĢilmelidir. Bu sistemin tasarımlanabilmesi için birbirinden farklı
disiplinlerden yararlanılması gerekmektedir.
39
Veri ambarından beklenilen, hem organizasyonu hem de çevresini anlatan tutarlı ve
yararlı bir bilgi kaynağına ulaĢabilmektir. Sistemin tasarımı oluĢturulurken, aĢağıdaki
noktalara dikkat etmek yararlı olacaktır.

Sistemin çözmesi istenen problem ayrıntılı bir biçimde tanımlanmalıdır.

Sistemle ilgili hedefler, kısıtlamalar ve kritik baĢarı etkenleri sıralanmalıdır.

BaĢlıca sistem bileĢenleri ve arayüzler, bileĢenler arasındaki bağlantı veya iletiĢim
yolları iyice ortaya koyulmalıdır.

Gelecekte yapılması olası iyileĢtirmeler, değiĢiklikler ve baĢka sistemlere geçiĢler
hakkında öngörüler yapılmalıdır.

Bütünsel bir geliĢtirme ve bakım programı ve sisteme destek verecek personel
kaynağı planlanmalıdır.

Sistemi programa uygun bir Ģekilde geliĢtirebilmek ve uzun vadede bakımını yapıp
yönetebilmek için gerekli bilgi, beceri ve diğer destek araçları belirlenmelidir.
Veri madenciliği, veri ambarlarındaki tutulan çok çeĢitli verilere dayanarak daha önce
keĢfedilmemiĢ verileri ortaya çıkarmak, bunları karar vermek ve gerçekleĢtirmek için
kullanma sürecidir (Swift, 2001). Bu tanımdan yararlanarak veri madenciliğinin aynı
zamanda bir istatistiksel süreç olduğunu da söylemek mümkündür.
Veri madenciliği süreci ġekil 3’ de gösterilmiĢtir. Bu Ģekilden de görüleceği gibi veri
madenciliği süreci, verileri veri ambarından alır, bunları derler, düzenler ve yorumlar.
ġekil 3: Veri Madenciliği Süreci
40
Veri madenciliğinin karar verici için olası yararları aĢağıdaki gibi sıralanabilir:

Mevcut müĢterilerin karar verici tarafından daha iyi tanınmasını sağlayabilir.

Özellikle finans sektöründe mevcut müĢterileri bölümlere ayırıp,
kredi risk
davranıĢ modelleri oluĢturarak, yeni baĢvuruda bulunan müĢterilere karĢı riskin
minimize edilmesini sağlayabilir.

Mevcut müĢterilerin ödeme performansları incelenip kötü ödeme performansı
gösteren müĢterilerin ortak özellikleri belirlenerek, benzer özelliklere sahip tüm
müĢteriler için yeni risk yönetim politikaları oluĢturulabilir.

En iyi müĢteriler veya müĢteri bölümlerinin bulunmasında kullanılabilir. Bulunan
bu iyi müĢteri bölümlerine yönelik yeni pazarlama stratejileri oluĢturulabilir.

KuruluĢlar tarafından düzenlenecek çeĢitli kampanyalarda mevcut müĢteri
kitlesinin seçimi ve bu müĢterilerin davranıĢ özelliklerine yönelik kampanya
Ģartlarının oluĢturulması sağlanabilir.

Bankacılık faaliyetlerinde, küçük iĢletmelere yönelik olarak makine ve ekipman
satıĢı yapan dağıtıcı firmalarla ortak hareket ederek oluĢturulacak satıĢ paketleri ile
pazarlama stratejileri geliĢtirilebilir.

Mevcut müĢteriler üzerinde firma ürünlerinin çapraz satıĢ kapasitesinin arttırılması
sağlanabilir.

Veri madenciliği ile mevcut müĢteriyi tanıyarak kuruluĢların müĢteri iliĢkileri
yönetimlerinde düzenleme ve geliĢtirmeler yapılabilir. Bu sayede kuruluĢun
müĢterilerini daha iyi tanıyarak müĢteri gibi düĢünme kapasitelerinin arttırılması
sağlanabilir

Günümüzde var olan yoğun rekabet ortamında kuruluĢların hızlı ve kendisi için en
doğru kararı almalarını sağlayabilir.

KuruluĢlar veri analizi ile müĢterilerini kiĢiselleĢtirilmiĢ ürün ve hizmetler
hakkında bilgilendirebilirler.

Veri madenciliği ile kuruluĢların müĢteriyle bütünleĢmiĢ satıĢ politikaları
oluĢturması sağlanabilir.
41
Veri madenciliği günümüzde karar verme sürecine ihtiyaç duyulan birçok alanda
uygulaması mümkün olmakla birlikte özellikle pazarlama, bankacılık ve sigortacılık
sektörlerinde yaygın olarak kullanılmaktadır. Bunlar kullanım yerlerine göre aĢağıda
gösterilmiĢtir:

Pazarlama
o MüĢterilerin satın alma örüntülerinin belirlenmesi
o MüĢterilerin demografik özellikleri arasındaki bağlantıların bulunması
o Posta kampanyalarında cevap verme oranının artırılması
o Mevcut müĢterilerin elde tutulması, yeni müĢterilerin kazanılması
o Pazar sepeti analizi
o MüĢteri iliĢkileri yönetimi
o MüĢteri değerlendirmesi
o SatıĢ tahmini

Bankacılık
o Farklı finansal göstergeler arasında gizli korelâsyonların bulunması
o Kredi kartı dolandırıcılıklarının tespiti
o Kredi kartı harcamalarına göre müĢteri gruplarının belirlenmesi
o Kredi taleplerinin değerlendirilmesi

Sigortacılık
o Yeni poliçe talep edecek müĢterilerin tahmin edilmesi
o Sigorta dolandırıcılıklarının tespiti
o Riskli müĢteri örüntülerinin belirlenmesi
4.3. Veri Madenciliğinde Kullanılan Yöntemler
Veri madenciliği sürecinin çeĢitli aĢamalarında kullanılan teknikler, istatistiksel
yöntemler, bellek tabanlı yöntemler, genetik algoritmalar, yapay sinir ağları ve karar
ağaçları olarak sıralanabilir.
42
4.3.1. Ġstatistiksel Yöntemler
Veri madenciliği çalıĢması esas olarak bir istatistik uygulamasıdır. Verilen bir
örnek kümesine bir kestirici oturtmayı amaçlar. Ġstatistik literatüründe son yıllarda bu amaç
için değiĢik teknikler önerilmiĢtir. Bu teknikler istatistik literatüründe çok boyutlu analiz
baĢlığı altında toplanır ve genelde verinin parametrik bir modelden (çoğunlukla çok
boyutlu bir Gauss dağılımından) geldiğini varsayar. Bu varsayım altında;
-
Sınıflandırma: Sınıflandırma, yeni bir nesnenin niteliklerini inceleme ve bu
nesneyi önceden tanımlanmıĢ bir sınıfa atamaktır. Burada önemli olan, her bir
sınıfın özelliklerinin önceden net bir Ģekilde belirlenmiĢ olmasıdır. Sınıflandırmaya
örnek olarak kredi kartı baĢvurularını düĢük, orta ve yüksek risk grubu olarak
ayırmak gösterilebilir.
-
Ayırma Analizi: Ayırma analizi, iki veya daha fazla sayıdaki grubun ayırımı ile
ilgilenen çok değiĢkenli ilgi analizidir. Amaçları arasında, analiz öncesi
tanımlanmıĢ iki veya daha fazla sayıda grubun ortalama nitelikleri arasında önemli
farkların olup olmadığının test edilmesi, gruplar arasındaki farka her bir değiĢkenin
katkısının saptanması ve grup içi değiĢime oranla gruplar arasındaki ayrımı
maksimize eden tahmin değiĢkenleri kombinasyonunun belirlenmesi sayılabilir.
Örneğin, bira içenleri, bira içmeyenlerden ayırt etmenin bir pazarlama sorunu
olduğu kabul edilirse, büyük bir bira üreticisinin yaptığı araĢtırma ayırma analizine
örnek olarak gösterilebilir. Bu nedenle, tesadüfi olarak seçilen 500 kiĢilik bir
tüketici bölümünü örnek olarak alınmıĢ ve bu kiĢilerin bira içip içmedikleri,
cinsiyetleri ve sporla ilgilenme dereceleri saptanmıĢtır. Cinsiyet ve sporla
ilgilenmenin tahmin değiĢkenleri olarak kullanılmalarının nedeni, daha önceki
çalıĢmaların bu değiĢkenlerle bira içme arasında kuvvetli bir ilginin olduğunu
göstermiĢ olmasıdır. Ayırma analizi sonuçlarının test edilme olanağının bulunması
sonuçların geçerliliğini ve güvenilirliğini ve dolayısıyla analizin gücünü artıran
önemli bir etmendir.
43
-
Regresyon: Bir ya da daha çok değiĢkenin baĢka değiĢkenler cinsinden tahmin
edilmesini olanaklı kılan iliĢkiler bulmaktır. Örnek olarak, “ev sahibi olan, evli,
aynı iĢ yerinde beĢ yıldan fazladır çalıĢan, geçmiĢ kredilerinde geç ödemesi bir ayı
geçmemiĢ bir erkeğin kredi skoru 825’dir.” Sonucu bir regresyon iliĢkisidir.
-
Öbekleme (Kümeleme): Kümeleme modellerinde amaç, küme üyelerinin
birbirlerine çok benzediği, ancak özellikleri birbirlerinden çok farklı olan kümelerin
bulunması ve
veri tabanındaki kayıtların bu farklı kümelere bölünmesidir.
BaĢlangıç aĢamasında veri tabanındaki kayıtların hangi kümelere ayrılacağı veya
kümelemenin hangi değiĢken özelliklerine göre yapılacağı bilinmemekte, konunun
uzmanı olan bir kiĢi tarafından kümelerin neler olacağı tahmin edilmektedir. Örnek
olarak bir süpermarketin müĢteri bilgileri ve satıĢ kayıtları incelenecek olursa,
müĢterilerin büyük bir kısmının düzenli olarak Cuma akĢamları kredi kartıyla
alıĢveriĢ yaptıkları Ģeklinde bir sonuca ulaĢılabilir.
-
Hipotez Testi
-
Varyans Analizi
-
Lojistik regresyon: Doğrusal regresyonda Y (açıklanan) iki değer alan (yani;
0 ve 1 ) gösterge değiĢkeni olarak tanımlandığında bunlara iliĢkin hata terimlerinin (
ei ) beklenen değeri sıfır, E  ei   0 ve varyanslarının
sabit, Var ei   e2 olduğu
Ģeklinde tanımlanan varsayım gerçekleĢmemektedir. Bunun bir sonucu olarak
varsayımlardan sapma durumunda elde edilen tahminler en iyi doğrusal ve
sapmasız tahmin ediciler olmayacaktır. Bu yetersizlik sınıflandırma analizlerinde
doğrusal regresyonun kullanılmasını engellemektedir. Bu nedenle lojistik
regresyon, sınıflandırma analizlerinde sık kullanılan yöntemlerden biridir. Lojistik
regresyon, çok değiĢkenli normal dağılım varsayımına ihtiyaç göstermediğinden bu
tür uygulamalarda üstünlük sağlamaktadır. Ayrıca sınıf üyeliğine iliĢkin olasılıkları
belirlemek özelliği de vardır. Lojistik regresyonun varsayımlarından biri doğrusal
olasılık fonksiyonunun, hata terimlerinin dağılımının lojistik dağılıma uymasıdır.
44
-
Χ2 analizi: Ki-kare ilgi analizi pazarlama araĢtırmalarında çok yaygın olarak
kullanılan bir istatistiksel analiz türüdür. Bu yaygın kullanımın en önemli nedenleri,
çok basit bir analiz türü olması, varsayımlarının azlığı ve çok güçsüz ölçeklerde
ölçülmüĢ verilere uygulanabilmesidir. Ġki veya daha fazla nitelik esas alınarak
sınıflandırılan veriler değerlenerek bu nitelikler arasındaki ilginin derecesinin
belirlenmesi (bağımsızlık testi) amacıyla kullanılır.
4.3.2. Bellek Tabanlı Teknikler
Bellek tabanlı veya örnek tabanlı bu yöntemler istatistikte 1950’li yıllarda
önerilmiĢ olmasına rağmen o yıllarda gerektirdiği hesaplama ve bellek yüzünden
kullanılamamıĢ ama günümüzde bilgisayarların ucuzlaması ve kapasitelerinin artmasıyla,
özellikle de çok iĢlemcili sistemlerin yaygınlaĢmasıyla, kullanılabilir olmuĢtur. Bu
yönteme en iyi örnek en yakın k komĢu algoritmasıdır (k-nearest neighbor)
4.3.3. Genetik Algoritmalar
Diğer veri madenciliği algoritmalarını geliĢtirmek için kullanılan optimizasyon
teknikleridir. Sonuç model veriye uygulanarak gizli kalmıĢ kalıpları ortaya çıkarılmakta ve
bu sayede tahminler yapılabilmektedir. Doğrudan postalama, risk analizi ve perakende
analizlerinde kullanılabilir.
4.3.4. Yapay Sinir Ağları
Bu yöntem, belirli bir profile uyuĢması için kalıp düzenlerini kontrol etmektedir ve bu
süreç içerisinde belli bir öğrenme faaliyeti gerçekleĢtirerek sistemi geliĢtirmektedir. Yapay
sinir ağlarında kullanılan öğrenme algoritmaları, veriden üniteler arasındaki bağlantı
ağırlıklarını hesaplar. Yapay Sinir Ağları istatistiksel yöntemler gibi veri hakkında
45
parametrik bir model varsaymaz yani uygulama alanı daha geniĢtir ve bellek tabanlı
yöntemler kadar yüksek iĢlem ve bellek gerektirmez.
4.3.5. Karar Ağaçları
Ġstatistiksel yöntemlerde veya yapay sinir ağlarında veriden bir fonksiyon öğrenildikten
sonra bu fonksiyonun insanlar tarafından anlaĢılabilecek bir kural olarak yorumlanması
zordur. Karar ağaçları ise ağaç oluĢturulduktan sonra,
kökten yaprağa doğru inilerek
kurallar yazılabilir. Bu Ģekilde kural çıkarma veri madenciliği çalıĢmasının sonucunun
doğrulanmasını sağlar. Bu kurallar uygulama konusunda uzman bir karar vericiye
gösterilerek sonucun anlamlı olup olmadığı denetlenebilir. Sonradan baĢka bir teknik
kullanılacak bile olsa karar ağacı ile önce bir kısa çalıĢma yapmak, önemli değiĢkenler ve
yaklaĢık kurallar konusunda karar vericiye bilgi verir.
4.4. Veri Madenciliği Süreci
4.4.1. Sorunun Tanımlanması
Veri madenciliği çalıĢmalarında baĢarılı olmanın ilk Ģartı, uygulamanın hangi
kuruluĢ amacı için yapılacağının açık bir Ģekilde tanımlanmasıdır. Ġlgili kuruluĢ amacı,
sorun üzerine odaklanmıĢ ve açık bir dille ifade edilmiĢ olmalı, elde edilecek sonuçların
baĢarı düzeylerinin nasıl ölçüleceği tanımlanmalıdır. Sorun ile tam örtüĢmeyen bir veri
madenciliği çalıĢması, sorunu çözmeye yetmeyeceği gibi sonuçta baĢka problemlerin de
ortaya çıkmasına neden olabilecektir. Ayrıca yanlıĢ kararlarda katlanılacak olan
maliyetlere ve doğru kararlarda kazanılacak faydalara iliĢkin öngörülere de bu aĢamada yer
verilmelidir.
46
4.4.2. Verilerin Hazırlanması
Modelin kurulması aĢamasında ortaya çıkacak sorunlar, bu aĢamaya sık sık geri
dönülmesine ve verilerin yeniden düzenlenmesine neden olacaktır. Bu durum verilerin
hazırlanması ve modelin kurulması aĢamaları için, bir karar vericinin veri keĢfi sürecinin
toplamı içerisindeki enerji ve zamanının % 50 - % 85’ ini harcamasına neden olmaktadır.
Verilerin hazırlanması aĢaması kendi içerisinde toplama ve uyumlaĢtırma,
birleĢtirme ve temizleme ve seçme adımlarından meydana gelmektedir.
Toplama ve UyumlaĢtırma: Tanımlanan sorun için gerekli olduğu düĢünülen verilerin ve
bu
verilerin toplanacağı veri kaynaklarının
belirlenmesi adımıdır.
Hangi
veri
kaynaklarından yararlanılacağı önemli bir karardır. Çünkü gereğinden az veri kaynağı veri
madenciliği çalıĢmasını eksik bırakacağı gibi, gereğinden fazla veri kaynağı sürecin
uzamasına neden olabilecek veri kirliliğine yol açabilecektir. Verilerin toplanmasında
kuruluĢun kendi veri kaynaklarının dıĢında, nüfus sayımı, hava durumu, merkez bankası
kara listesi gibi çeĢitli veri tabanlarından veya veri pazarlayan kuruluĢların veri
tabanlarından faydalanılabilir.
Veri madenciliğinde kullanılacak verilerin farklı kaynaklardan toplanması, doğal
olarak veri uyumsuzluklarına neden olacaktır.
Bu uyumsuzlukların baĢlıcaları farklı
zamanlara ait olmaları, güncelleme hataları, veri formatlarının farklı olması, kodlama
farklılıkları (örneğin bir veri tabanında cinsiyet özelliğinin e/k, diğer bir veri tabanında 0/1
olarak kodlanması), farklı ölçü birimleri ve varsayım farklılıklarıdır. Ayrıca verilerin nasıl,
nerede ve hangi koĢullar altında toplandığı da önem taĢımaktadır. Güvenilir olmayan veri
kaynaklarının kullanımı tüm veri madenciliği sürecinin de güvenilirliğini etkileyecektir.
47
Bu nedenlerle, iyi sonuç alınacak veri madenciliği çalıĢmaları ancak iyi verilerin
üzerine kurulabileceği için, toplanan verilerin ne ölçüde uyumlu oldukları bu adımda
incelenerek değerlendirilmelidir.
BirleĢtirme ve Temizleme : Bu adımda farklı kaynaklardan toplanan verilerde bulunan ve
bir önceki adımda belirlenen sorun ve uyumsuzluklar mümkün olduğu ölçüde giderilerek,
veriler tek bir veri tabanında toplanır. Ancak basit yöntemlerle ve baĢtan savma olarak
yapılacak sorun giderme iĢlemlerinin, ileriki aĢamalarda daha büyük sorunların kaynağı
olacağı unutulmamalıdır.
Seçim : Bu adımda kurulacak modele bağlı olarak veri seçimi yapılır. Örneğin tahmin
edici bir model için bu adım, bağımlı ve bağımsız değiĢkenlerin ve modelde kullanılacak
veri kümesinin seçilmesi anlamını taĢımaktadır.
Sıra numarası, kimlik numarası gibi anlamlı olmayan değiĢkenlerin modele
girmemesi gerekmektedir. Çünkü bu tip değiĢkenler, diğer değiĢkenlerin modeldeki
ağırlığının azalmasına ve veriye ulaĢma zamanlarının uzamasına neden olabilmektedir.
Bazı veri madenciliği algoritmaları konu ile ilgisi olmayan bu tip değiĢkenleri otomatik
olarak elese de, pratikte bu iĢlemin kullanılan yazılıma bırakılmaması daha akılcı olacaktır.
Verilerin görselleĢtirilmesine olanak sağlayan grafik araçlar ve bunların sunduğu
iliĢkiler, bağımsız değiĢkenlerin seçilmesinde önemli yararlar sağlayabilir. Genellikle
yanlıĢ veri giriĢinden veya bir kereye özgü bir olayın gerçekleĢmesinden kaynaklanan
verilerin, veri kümesinden atılması tercih edilir.
Veri madenciliği çalıĢmasında geliĢtirilen modelde kullanılan veri tabanının çok
büyük olması durumunda, rastgeleliği bozmayacak Ģekilde örnekleme yapılması uygun
48
olabilir. Ayrıca burada seçilen örneklem kümesinin tüm popülasyonu temsil edip etmediği
de kontrol edilmelidir. Halen kullanılan iĢletim sistemleri ve paket programlar ne kadar
geliĢmiĢ olursa olsun, çok büyük veri tabanları üzerinde çok sayıda modelin denenmesi
zaman kısıtı nedeni ile mümkün olamamaktadır. Bu nedenle tüm veri tabanını kullanarak
bir kaç model denemek yerine, rastgele örneklenmiĢ bir veri tabanı parçası üzerinde bir çok
modelin denenmesi ve bunlar arasından en güvenilir ve güçlü modelin seçilmesi daha
uygun olacaktır. Diğer bir deyiĢle modellerin performansları uygun bir karar yöntemi ile
sınanmalıdır.
4.4.3. Modelin Kurulması ve Değerlendirilmesi
Tanımlanan problem için en uygun modelin bulunabilmesi, olabildiğince çok
sayıda modelin kurularak denenmesi ile mümkündür. Bu nedenle veri hazırlama ve model
kurma aĢamaları, en iyi olduğu düĢünülen modele varılıncaya kadar yinelenen bir süreçtir.
Model kuruluĢ süreci, denetimli ve denetimsiz öğrenmenin kullanıldığı modellere
göre farklılık göstermektedir.
Örnekten öğrenme olarak da isimlendirilen denetimli öğrenmede, bir denetçi
tarafından ilgili sınıflar önceden belirlenen bir kritere göre ayrılarak, her sınıf için çeĢitli
örnekler verilir. Sistemin amacı verilen örneklerden hareket ederek her bir sınıfa iliĢkin
özelliklerin bulunması ve bu özelliklerin kural cümleleri ile ifade edilmesidir.
Öğrenme süreci tamamlandığında, tanımlanan kural cümleleri verilen yeni
örneklere uygulanır ve yeni örneklerin hangi sınıfa ait olduğu kurulan model tarafından
belirlenir.
49
Denetimsiz öğrenmede, kümeleme analizinde olduğu gibi ilgili örneklerin
gözlenmesi ve bu örneklerin özellikleri arasındaki benzerliklerden hareket ederek sınıfların
tanımlanması amaçlanmaktadır.
Denetimli öğrenmede seçilen algoritmaya uygun olarak ilgili veriler hazırlandıktan
sonra, ilk aĢamada verinin bir kısmı modelin öğrenilmesi,
diğer kısmı ise modelin
geçerliliğinin test edilmesi için ayrılır. Modelin öğrenilmesi, öğrenim kümesi kullanılarak
gerçekleĢtirildikten sonra, test kümesi ile modelin doğruluk derecesi belirlenir.
Bir modelin doğruluğunun test edilmesinde kullanılan en basit yöntem basit
geçerlilik testidir. Bu yöntemde tipik olarak verilerin % 5 ile % 33 arasındaki bir kısmı test
verileri olarak ayrılır ve kalan kısım üzerinde modelin öğrenimi gerçekleĢtirildikten sonra,
bu veriler üzerinde test iĢlemi yapılır. Bir sınıflama modelinde yanlıĢ olarak sınıflanan olay
sayısının, tüm olay sayısına bölünmesi ile hata oranı, doğru olarak sınıflanan olay sayısının
tüm olay sayısına bölünmesi ile ise doğruluk oranı hesaplanır.
(Doğruluk Oranı = 1 - Hata Oranı)
Sınırlı miktarda veriye sahip olunması durumunda, kullanılabilecek diğer bir
yöntem, çapraz geçerlilik testidir. Bu yöntemde veri kümesi rastgele iki eĢit parçaya ayrılır.
Ġlk aĢamada bir parça üzerinde model eğitimi ve diğer parça üzerinde test iĢlemi; ikinci
aĢamada ise ikinci parça üzerinde model eğitimi ve birinci parça üzerinde test iĢlemi
yapılarak elde edilen hata oranlarının ortalaması kullanılır.
Bir kaç bin veya daha az satırdan meydana gelen küçük veri tabanlarında, verilerin
n gruba ayrıldığı n katlı çapraz geçerlilik testi tercih edilebilir. Verilerin örneğin 10 gruba
50
ayrıldığı bu yöntemde, ilk aĢamada birinci grup test, diğer gruplar öğrenim için kullanılır.
Bu süreç her defasında bir grubun test, diğer grupların öğrenim amaçlı kullanılması ile
sürdürülür. Sonuçta elde edilen on hata oranının ortalaması, kurulan modelin tahmini hata
oranı olacaktır.
Bootstrapping küçük veri kümeleri için modelin hata düzeyinin tahmininde
kullanılan bir baĢka tekniktir. Çapraz geçerlilikte olduğu gibi model bütün veri kümesi
üzerine kurulur. Daha sonra en az 200, bazen binin üzerinde olmak üzere çok fazla sayıda
öğrenim kümesi tekrarlı örneklemelerle veri kümesinden oluĢturularak hata oranı
hesaplanır.
Model kuruluĢu çalıĢmalarının sonucuna bağlı olarak, aynı teknikle farklı
parametrelerin kullanıldığı veya baĢka algoritma ve araçların denendiği değiĢik modeller
kurulabilir. Model kuruluĢ çalıĢmalarına baĢlamadan önce, hangi tekniğin en uygun
olduğuna karar verebilmek güçtür. Bu nedenle farklı modeller kurarak, doğruluk
derecelerine göre en uygun modeli bulmak üzere sayısız deneme yapılmasında yarar
bulunmaktadır.
Özellikle sınıflama problemleri için kurulan modellerin doğruluk derecelerinin
değerlendirilmesinde basit ancak faydalı bir araç olan risk matrisi kullanılmaktadır.
AĢağıda bir örneği görülen bu matriste sütunlarda fiili, satırlarda ise tahmini sınıflama
değerleri yer almaktadır. Örneğin fiilen B sınıfına ait olması gereken 46 elemanın, kurulan
model tarafından 2’sinin A, 38’inin B, 6’sının ise C olarak sınıflandırıldığı matrisde
kolayca görülebilmektedir.
51
Tablo 1: Risk Matrisi
Fiili
Tahmini
A
B
C
Sınıfı
Sınıfı
Sınıfı
A Sınıfı
45
2
3
B Sınıfı
10
38
2
C Sınıfı
4
6
40
Önemli diğer bir değerlendirme kriteri, modelin anlaĢılabilirliğidir. Bazı
uygulamalarda doğruluk oranlarındaki küçük artıĢlar çok önemli olsa da, bir çok kuruluĢ
uygulamasında ilgili kararın niçin verildiğinin yorumlanabilmesi çok daha büyük önem
taĢıyabilir. Çok ender olarak yorumlanamayacak kadar karmaĢıklaĢsalar da, genel olarak
karar ağacı ve kural temelli sistemler model tahmininin altında yatan nedenleri çok iyi
ortaya koyabilmektedir.
Kaldıraç oranı ve grafiği, bir modelin sağladığı faydanın değerlendirilmesinde
kullanılan önemli bir yardımcıdır. Örneğin kredi kartını muhtemelen iade edecek
müĢterilerin belirlenmesi amacını taĢıyan bir uygulamada, kullanılan modelin belirlediği
100 kiĢinin 35’i gerçekten bir süre sonra kredi kartını iade ediyorsa ve tesadüfi olarak
seçilen 100 müĢterinin aynı zaman diliminde sadece 5’i kredi kartını iade ediyorsa kaldıraç
oranı 7 olarak bulunacaktır.
52
Kurulan modelin değerinin belirlenmesinde kullanılan diğer bir ölçü, model
tarafından önerilen uygulamadan elde edilecek kazancın bu uygulamanın gerçekleĢtirilmesi
için katlanılacak maliyete bölünmesi ile edilecek olan yatırımın geri dönüĢ oranıdır.
Kurulan modelin doğruluk derecesi ne denli yüksek olursa olsun, gerçek dünyayı
tam anlamı ile modellediğini garanti edebilmek mümkün değildir. Yapılan testler
sonucunda geçerli bir modelin doğru olmamasındaki baĢlıca nedenler, model kuruluĢunda
kabul edilen varsayımlar ve modelde kullanılan verilerin doğru olmamasıdır. Örneğin
modelin kurulması sırasında varsayılan enflasyon oranının zaman içerisinde değiĢmesi,
bireyin satın alma davranıĢını belirgin olarak etkileyecektir.
4.4.3.1. Modelin Kullanılması
Kurulan ve geçerliliği kabul edilen model doğrudan bir uygulama olabileceği gibi,
bir baĢka uygulamanın alt parçası olarak kullanılabilir. Kurulan modeller risk analizi, kredi
değerlendirme,
dolandırıcılık
tespiti
gibi
iĢletme
uygulamalarında
doğrudan
kullanılabileceği gibi, promosyon planlaması simülasyonuna entegre edilebilir veya tahmin
edilen envanter düzeyleri yeniden sipariĢ noktasının altına düĢtüğünde, otomatik olarak
sipariĢ verilmesini sağlayacak bir uygulamanın içine gömülebilir.
4.4.3.2. Modelin Ġzlenmesi
Zaman içerisinde bütün sistemlerin özelliklerinde ve dolayısıyla ürettikleri verilerde
ortaya çıkan değiĢiklikler, kurulan modellerin sürekli olarak izlenmesini ve gerekiyorsa
yeniden düzenlenmesini gerektirecektir. Tahmin edilen ve gözlenen değiĢkenler arasındaki
farklılığı gösteren grafikler model sonuçlarının izlenmesinde kullanılan yararlı bir
yöntemdir.
53
5. UZMAN SĠSTEMLER
Uzman Sistemler, özel bir alandaki uzman bilgi gerektiren problemleri çözebilir ve
bu bilgiyi belli bir formatta temsil edip, saklayabilirler. Bunun için bu sistemler Bilgiye
Dayalı Sistemler (Knowledge Based Systems) diye de adlandırılırlar.
Uzman Sistemler Ģu elemanlardan meydana gelirler:

Bilgi Tabanı (Knowledge Base)

Muhakeme Ünitesi (Inference Engine)

Kullanıcı Arabirimi (User Intereface)

Bilgiyi Alma Ünitesi (Knowledge Acquisition)

Açıklama Ünitesi
Bilgi Tabanı: Ġlgili alana özel tecrübeye dayalı bilginin saklandığı veritabanıdır. Kural ve
Olgulardan meydana gelir. Olgular; nesneler arasındaki iliĢki, sınırlama ve açıklamalardan
oluĢur. Kurallar ise; problem alanı ile ilgili kavramlar arasındaki mantıksal iliĢkileri
tanımlar.
Muhakeme Ünitesi: Kuralları ve olguları okuyarak ne demek istediklerini anlar ve
muhakeme fonksiyonunu icra eder.
Kullanıcı Arabirimi: Kullanıcı ile sistem arasındaki iletiĢimi sağlar. Genellikle Neden
(Why) ve Nasıl (How) sorularına cevap veren bir açıklama ünitesini içerir.,
Bilgi Alma Ünitesi: Kullanıcıya, bilgi tabanındaki kurallar ve olguları düzeltme, ekleme,
çıkartma yapma ve bazılarını silme imkânı sağlar.
Açıklama Ünitesi: Muhakemenin nasıl yapıldığını açıklar. Ayrıca kullanıcı ile iletiĢim
anında bazı sorular sorar ve kullanıcıda neden bu soruyu sorduğunu bilmek isterse
kullanıcıya Açıklama Ünitesi gerekli açıklamayı yapar.
54
Uzman sistemlerin genel tekniklerinden birisi de karakter ve kelime eĢleĢtirme tekniğidir.
GeliĢtirilmiĢ bir sistemin bilgi tabanındaki herhangi bir değiĢiklik sistemin tümünü
etkilemez. Kendi kendilerine karar vermek için karar üniteleri vardır. Bu ve benzeri
özellikler, Uzman sistemleri diğer programlardan farklı kılmaktadır. Bu nedenle genellikle
yazılımlar PROLOG ve LISP programlama dilleriyle geliĢtirilmektedir.
Genellikle klasik diğer programlama dilleri (Pascal, Fortran, C, Basic v.b.) Ģu nedenlerden
dolayı tercih edilmemektedir Phan 1990):

Bu dillerle geliĢtirilen program yapıları esnek bir yapıya sahip değillerdir.

Programda değiĢiklik yapmak veya ekleme yapmak zordur.

GeliĢtirilen programlar, problemleri programcının düĢündüğü tek tip yöntemle
çözerler.
5.1. Uzman sistem programlarının genel yapısı
Uzman sistem programları genel olarak "Muhakeme Etme"; yani eldeki verilere göre en
uygun durumu belirleme esasına göre çalıĢırlar (ġekil 4). Genellikle Bilgi Tabanındaki
tüm kuralların muhakeme edilmesi iki teknikle gerçekleĢtirilir. (Derbyshire 1985) ve
(Edmund ve Robert 1990).

Ġleriye Doğru Zincirleme

Geriye Doğru Zincirleme
55
ġekil 4: Uzman Sistem programlarının yapısı
5.1.1. Ġleriye Doğru Zincirleme(Forward chaining)
Muhakeme ünitesi, problemin en baĢından baĢlayarak (IF cümlesinden) sonuç kısmına
(THEN...) ulaĢmasıdır. Bu yöntem Tümevarım mantığı ile çalıĢır. Bütün kuralların Ģartı
sağlayıp sağlamadığı göz önünde tutularak sonuca ulaĢılır. Eğer Ģartlar sağlıyor ise "Then"
kısmında yer alan yargı cümlesi doğrudur. Bu cümle Ģartlara göre elde edilen sonuçtur
(ġekil 5).
ġekil 5:Ġleriye Doğru Zincirleme
56
5.1.2. Geriye Doğru Zincirleme (Backward chaining)
Muhakeme ünitesi; problemi çözerken kuralın en sonu olan sonuç (THEN…) cümlesi ile
baĢlar ve Ģart (IF…) cümleleri tatbik edilerek çözüm bulunur. Yani bu tür zincirleme
Tümdengelim ilkesini temel olarak alır ve sonuç kısmını sağlayacak bütün kuralları tek tek
inceler (ġekil 6).
ġekil 6:Geriye Doğru Zincirleme
Geriye doğru zincirlemenin, GeniĢlik öncelikli ve Derinlik öncelikli olmak üzere
iki Ģekli vardır. GeniĢlik öncelikli geriye doğru zincirleme, o anda eldeki amaca çözüm
bulmak için tüm kuralların sonuç kısmını kontrol eder. Çözüm bulamazsa kuralların Ģart
kısımlarına bakar. Derinlik öncelikli geriye doğru zincirleme ise, eldeki amaca çözüm
bulmak için ilgili bir kural bulur ve bu kuralın önce Ģart kısmına bakar. Bu kuralın Ģart
kısmı sonuca götürmezse baĢka bir kural arar(Winstanley 1991).
Uzman Sistem oluĢturulurken izlenecek prosedür aĢağıdaki Ģekilde (ġekil 7)
gösterilmiĢtir.
57
ġekil 7:Uzman Sistem OluĢturulurken Ġzlenecek Prosedür.
6. GENETĠK ALGORĠTMALAR ĠLE UZMAN SĠSTEM TASARIMI
Bilindiği gibi Uzman Sistemler eldeki verilere göre en uygun durumu belirleme
esasına göre çalıĢırlar. Uzman Sistemin tasarlanabilmesi için öncelikle kurallar oluĢturulup
bir bilgi tabanının elde edilmesi ve elde edilen bu bilgi tabanı ile muhakeme edilmesi
gerekir. Programda, öncelikle kuralları çıkartacağımız verilerin elde ediliĢi, verilerin
analizi, kuralların oluĢturulması ile bilgi tabanının elde edilmesi ve daha sonra elde edilen
bu bilgi tabanı ile muhakeme edilmesiyle en uygun durumların ortaya çıkması
sağlanmaktadır.
58
6.1. Verilerin Elde Edilmesi Ve Analizi
AĢağıda Ģekilde verilerin elde edilmesi ve analizini akıĢ diyagramı bulunmaktadır
(ġekil 8).
ġekil 8:Verilerin alınması Analizi AkıĢ Diyagramı
Program baĢlatıldığında öncelikli olarak herhangi bir veritabanı ayarı yapılmamıĢ
ise veritabanı ayarlarını girmemizi isteyecektir. Böylece verileri elde edebileceğiz. ġekil
10’daki pencereden ayarları girmemiz gerekecek ve veritabanı sunucusunun çalıĢır
olduğundan emin olmalıyız. Eğer çalıĢır değil ve program sunucuya bağlanamıyorsa aynı
giriĢ ekranı tekrar gelecektir. Aksi halde program sunucuya bağlanıp o veritabanına ait tüm
tabloları bir liste ile gösterecek ve ilk getirdiği tabloyu seçecektir.
59
Programı ilk defa açıyor isek aĢağıdaki Ģekille karĢılaĢırız. Gerekli ayarları girdiğimiz ve
KAYDET VE BAĞLAN butonuna tıkladığımız takdirde program veritabanı sunucusuna
bağlanmak isteyecektir. Eğer bağlanırsa gerekli ayarları varsayılan ayar olarak
kaydedecektir. Bağlanmadığı takdirde aynı ekran tekrar gelecektir.
Bir tarafta Eğitim Sürecindeki ayarlar, Diğer yanda da test sürecindeki ayarlar
mevcuttur.
ġekil 9:VeriTabanı Sunucusu Ayarları
Ayarlardaki butonların görevleri:
KAYDET VE BAĞLAN: Eğer sunucular bağlanır durumda ise bağlanır ve ayar
penceresini kapatır. Değilse ayar penceresine yeniden döner.
KAPAT: Programın tamamen kapanmasını sağlar.
60
TUTARLILIĞI DÜZELT: Sunucuya bağlı olduğumuz zaman çalıĢır. Bağlı olduğumuz
veritabanındaki tüm tabloların tutarlılıklarını yani kuralların çıkarılması için gereken
tutarlılığı düzeltir. Bozukluk yapan örnekleri düzenler ve gerekli olanları siler.
Gerekli Ayarlardan sonra KAYDET VE BAĞLAN dediğimizde
ġekil 10: Gerekli Ayarların girilmesi
Programın ana penceresi (ġekil 11) gelir ve iĢlem tablosunda en üstte olan tablonun
verilerini alır. Ġstenildiğinde iĢlem tablosu listesinden tablo değiĢtirilebilir.
ġekil 11: Eğitim Süreci için gerekli tablo bilgisi
61
Veri elde edilmesi: Listeden seçili olan tablodaki verilerin tamamı dizilere aktarılır.
Veri analizi: Dizilere aktarılan örneklerin sahip oldukları değerlerin birleĢimi her alan için
seçilir ve alanlar için ayrılan sınıflarda tutulur. Ġlerde bu değerler üzerinden kurallar
çıkarılacaktır.
6.2. Eğitim Süreci
Eğitim Sürecinin baĢlaması için “Eğitim Sürecini BaĢlat” butonuna tıklanması
yeterlidir. AĢağıdaki Ģekilde eğitim sürecinde yapılacak iĢlemler akıĢ diyagramı Ģekliden
gösterilmiĢtir. (ġekil 12)
ġekil 12: Eğitim Süreci AkıĢ Diyagramı
62
6.2.1 Eğitim Sürecinin baĢlaması için gerekli parametreler

Nesil Sayısı: Rastgele oluĢturulacak kuralların sayısını belirtir.

Çaprazlama Oranı: OluĢturulan kuralların çaprazlanma olasılıkları belirlenir.

Mutasyon Oranı: Çaprazlanan kuralların mutasyona uğrayıp uğramayacağının
olasılığını belirtir.

Ġterasyon sayısı: Eğitim sürecinde nesil sayısı kadar kuralın üretilip, çaprazlanıp,
mutasyon iĢleminin yapılması ve oluĢan yeni kuralların kaydedilmesi sürecinin kaç
kez tekrarlanacağını belirtir.
6.2.2. Eğitim Süreci Adımları
Eğitim Süreci baĢlatıldığında aĢağıdaki Ģekildeki gibi bir ekran ile karĢılaĢırız.
ġekilde üretilen kurallar sağ paneldeki sonuçlar kısmında gösterilir.(ġekil 13)
ġekil 13: Eğitim sürecini baĢlatma
63

Tekrar Sayısı: AĢağıdaki adımların Kural OluĢtur, Çaprazlama ĠĢlemi, Mutasyon
iĢlemi, Kuralı Kaydet adımlarının tekrarını belirler. ĠĢlemin girdi parametrelerinden
iterasyon sayısı kadar tekrarlanmasıdır. Eğer örnek tablosunun tamamı çözülmüĢ
ise bu tekrar iĢlemi kesilir ve elde edilen kurallar kaydedilir.

Kural OluĢtur: Girdi parametrelerinden nesil sayısı kadar kuralın rastgele
oluĢturulması iĢlemidir.

Çaprazlama iĢlemi: Kural OluĢtur adımından sonra oluĢturulan kurallar kendi
aralarında çaprazlanarak kuraların değerleri değiĢir.

Mutasyon iĢlemi: Çaprazlanan kurallar mutasyon iĢleminden geçirilerek geçerli
kural için mutasyon olasılığına göre gerekiyorsa mutasyona uğrayarak değeri
değiĢir.

Kuralı Kaydet: Elde edilen kurallar tablo üzerinden süzülerek eğer kural olma
Ģartlarını sağlıyorlar ise saklanırlar.

Sonuçları Göster: Tekrar sayısı kadar oluĢturulan kurallar ve bu kuralların örnek
tablosunda sınıflayabildiği örnekler ve tüm örnekler eğitim sürecinden sonuçlar
bölümüne yazılır. Aynı zamanda üretilen kurallar test kısmında da yazılır.
6.3. Test Süreci
ġekil 14: Test Süreci AkıĢ Diyagramı
64
6.3.1. Test Sürecinin BaĢlaması Ġçin Gerekenler:
Kurallar: Eğitim süreci tamamlandığın oluĢan kurallardır.
Test Edilecek Tablo: Test tablolarında seçili olan tablodur. Eğer listede hiç tablo yok ise
eğitim sürecindeki tablo ile uyumlu bir tablo yok demektir.
6.3.2. Test Süreci Adımları
Eğitim setinden elde edilen kural kümesi yardımıyla test kümesi test edilir. Bu test
sonuçları iki farklı yöntemle değerlendirilir. Bu yöntemler aĢağıda verilmiĢtir. Genel olarak
doğruluk oranı kullanıldığından bu çalıĢmada da bu orana göre değerlendirme yapılmıĢtır.

Kural Değerleri Hesapla: Eğitim süreci sonunda oluĢturulan kuralların her birinin
değerleri (tp,tn,fp,fn,se,sp,fitness) hesaplanır.

Fitness : Uygunluk, Doğruluk oranı gibi uygunluk değerini belirler.
65

Doğruluk Oranı: Eğitim sürecinden elde edilmiĢ kuralların test tablosunda
örneklerin ne kadarını sınıflandırdığı bizim için çok önemlidir. Test tablosundaki
her bir örneği bu kurallarla test ederek sınıflandırıp sınıflandırmadığı hesaplanır. En
sonunda sınıflandırılanların sayısı tablodaki örnek sayısına oranı bize doğruluk
oranını verir.
ġekil 15:Test Süreci sonunda doğruluk oranı görünümü

Sonuçları Göster: Kuralların hesaplanan değerleri test sürecindeki sağ panelde
kural değerleri kısmında gösterilir. Doğruluk oranı da doğruluk oranı kısmında
gösterilir.
66
7. Sonuçlar
Bu çalıĢmada gerçek dünyadan alınan veri setleri kullanılmıĢtır. Bu veri setlerinin
özellikleri aĢağıdaki tabloda verilmiĢtir.
Tablo 2: Eğitim ve test setlerinin özellikleri
Veri Seti
Örnek Sayısı
Test Örnek Sayısı
MONK1
124
432
MONK2
169
432
MONK3
122
432
Eğitim seti kullanılarak elde edilen kurallar ve bu kurallar yardımıyla test
setlerinden elde edilen sonuçlar tablo x’da verilmiĢtir.
Tablo 3: Test veri setleri kullanılarak elde edilen doğruluk oranları
Algoritma
Monk1
Monk2
Monk3
ID3
%81.0
%69.9
%91.7
C4.5
%82.4
%69.7
%90.3
C4.5 Prune
%75.7
%65.0
%97.2
C4.5 Rules
%93.5
%66.2
%96.3
REX-1
%97.2
%76.4
%93.5
REX-2
%97.2
%72.2
%89.4
REX-3
BU
ÇALIġMA
%96.8
%76.9
%91.0
%92.12
%83.10
%93.51
67
Farklı algoritmalar tarafından elde edilen sonuçlar ile genetik algoritmalar kullanılarak
elde edilen sonuçlar karĢılaĢtırıldığında genetik algoritmalar tarafından elde edilen
sonuçların kabul edilebilir olduğu görülmektedir.
68
8. Kaynaklar
[1] Akgöbek, Ö., Endüktif Öğrenmede yeni Algoritmalar, Doktora tezi, Sakarya
Üniversitesi, Fen Bilimleri Enstitüsü, 2003
[2] WU, X., “Rule Induction with Extension Matrices”, Journal of the American
Society for Information Science, Volume 49, Number 5, pp 435-454, 1998.
[3] HAMILTON, H. J., SHAN, N., CERCONE, N., “RIAC:A Rule Induction
Algorithm Based on Approximate Classification Technical Report”, Department of
Computer Science University of Regina Regina, Saskatchewan, CANADA, S4S 0A2,
CS-96-06, ISSN 0828-3494 ISBN 0-7731-0321-X, May 1996.
[4] THRUN, S.B., BALA, J., BLOEDORN, E., BRATKO, I., CESTNIK, B., CHENG,
J., DE JONG, K., DZEROSKI, S., FAHLMAN, S.E., FISHER, D., HAMANN, R.,
KAUFMAN, K., KELLER, S., KONONENKO, I., KREUZIGER, J.,
[5] GREFENSTETTE, J.J., JONG, K.A.D., ve WILLIAM, M.S. (1993)
Competition-based Learning, Foundation of Knowledge Acqusition: Machine
Learning, A. Meyrowitz (Edt), Kluwer Academic Publishers.
[6] BACK.,T., FOGEL, D.B. ve MICHALEWICH, T. (2000) Evolutionary
Computation 1: Basic Algorithms and Operators, Institute of Physics
Publishing , Bristol and Philadelphia.
[7] AKAY, D., ÇETĠNYOKUġ, T. ve DAĞDEVĠREN, M. (2002) Portföy
Seçimi Problemi Ġçin KDS/GA YaklaĢımı, Gazi Üniversitesi Mühendislik
Mimarlık Fakültesi Dergisi, 17(4), 125-138.
[8] AKINOĞLU, H. (1992), Uzman Sistemler, Türk Kütüphaneciliği, 142-15
[9] NEELY, C., WELLER, P. ve DITTMAR, R. (1997) Is Technical Analysis in
the Foreigne Exchange Market Profitable? A Genetic Programming
Approach, Journal of Financial and Quantative Analysis, 32(4), 405-426.
[10] KORCZAK, J. ve ROGER, P. (2002) Stock Timing Using Genetic
Algorithms, Applied Stochastic Models in Business and Industry, 18, 121-134.
69
[11] KIM, M.J., HAN, I. ve LEE, K.C. (2004) Hybrid Knowledge Integration
Using the Fuzzy Genetic Algorithm: Prediction of the Korea Stock
Price Index, ıntelligent Systems in Accounting, Finance and
Management, 12(1), 43-60.
[12] KAHRAMAN, M. ve ÖZDAĞLAR, D. (2004) Su Dağıtım Sistemlerinin
Genetik Algoritma ile Optimizasyonu, DEÜ Mühendislik Fakültesi
Dergisi, 6(3), 1-18.
70

Benzer belgeler