MATEMATİK MÜHENDİSLİĞİ BÖLÜMÜ
|
|
|
- Aysel İşcan
- 9 yıl önce
- İzleme sayısı:
Transkript
1 İSTANBUL TEKNİK ÜNİVERSİTESİ FEN EDEBİYAT FAKÜLTESİ MATEMATİK MÜHENDİSLİĞİ BÖLÜMÜ K-MEANS KÜMELEME ALGORİTMASININ GENETİK ALGORİTMA KULLANILARAK GELİŞTİRİLMESİ BİTİRME ÖDEVİ Yunus YÜNEL Tez Danışmanı: Yar. Doç. Dr. Ahmet KIRIŞ MAYIS 2010
2 İSTANBUL TEKNİK ÜNİVERSİTESİ FEN EDEBİYAT FAKÜLTESİ MATEMATİK MÜHENDİSLİĞİ BÖLÜMÜ K-MEANS KÜMELEME ALGORİTMASININ GENETİK ALGORİTMA KULLANILARAK GELİŞTİRİLMESİ BİTİRME ÖDEVİ Yunus YÜNEL Teslim Tarihi: Tez Danışmanı: Yar. Doç. Dr. Ahmet KIRIŞ MAYIS 2010
3 ÖNSÖZ Bu çalışmayı hazırlarken, benden yardımını ve desteğini hiçbir zaman esirgemeyen Sayın Hocam Yar. Doç. Dr. Ahmet KIRIŞ a, okul hayatımda bana destek olan tüm değerli arkadaşlarıma, hayatım boyunca bana sevgi, güven veren ve her türlü desteği esirgemeyen annem, babam ve kardeşime en içten teşekkürlerimi sunarım. Mayıs, 2010 Yunus YÜNEL iii
4 İÇİNDEKİLER ÖZET... vi Değişken Listesi...vii 1. GİRİŞ K-MEANS KÜMELEME ALGORİTMASI Tanım ve Tarihçe Algoritma ve Akış Şeması Program: K-Means Clustering adet verinin gruplandırılması özellikli 100 adet verinin gruplandırılması GENETİK ALGORİTMA Tanım ve Tarihçe Algoritma ve Akış Şeması Uygunluk (Fitness) Seçilim (Selection) Çaprazlama (Crossover) Mutasyon (Mutation) Akış şeması Program: Genetik Algoritmanın K-Means Algoritmasına Uygulanması (GA-Clustering) GENETİK K-MEANS ALGORİTMASI Algoritma ve Akış Şeması Program: KGA-Clustering UYGULAMA: DERSLERDE ALDIKLARI NOTLARA GÖRE ÖĞRENCİLERİN SINIFLANDIRILMASI Tek Dersten Aldıkları Notlara Göre Gruplama KMeans Clustering GA-Clustering KGA-Clustering Üç Dersten Aldıkları Notlara Göre Gruplama iv
5 KMeans Clustering GA-Clustering KGA-Clustering Beş Dersten Aldıkları Notlara Göre Gruplama KMeans Clustering GA-Clustering KGA-Clustering EKLER VE DATALAR EK-1: K-Means Clustering Algoritmasının kodları EK-2: GA-Clustering Algoritmasının Kodları EK-3: KGA-Clustering Algoritmasının Kodları DATA-1: KMeans Clustering Algoritmasında Kullanılan Veri DATA-2: KMeans Clustering Algoritmasında Kullanılan Veri DATA-3: GA-Clustering ve KGA-Clustering Algoritmalarında Kullanılan Veri 31 KAYNAKLAR v
6 ÖZET Bu çalışmada sınıflandırma algoritmalarından biri olan K-Means Clustering algoritmasının, genetik algoritma operatörleri kullanılarak daha iyi sonuçlar vermesi amaçlanmıştır. K-Means Clustering algoritmasının en büyük dezavantajı olan yerel optimumlara takılma problemi, genetik operatörlerle (çaprazlama, mutasyon, seçilim ve seçkinlik) çözülmeye çalışılmıştır. Kullanılan algoritmalar öğrencilerin 5 dersten aldıkları notlardan oluşan bir veriye uygulanmıştır. vi
7 Değişken Listesi m : Bir verinin özellik sayısı (number of attributes) n : Toplam veri sayısı dataset : Veri uzayı matrisi nxm k : Oluşturulacak sınıf (cluster) sayısı z : ClusterCenter matrisi kxm, genetik algoritmada bireye (individual) karşılık. NN : Bir nesildeki birey sayısı pop : Nesil, NN tane z matrisi içeren tensör NNxkxm clusters : lg : Cluster ların içeriğini tutan tensör. kx xm (Her cluster farklı sayıda veri tutabileceği için sayısı belirsiz) İstenilen değere ulaşmazsa fonksiyonun en fazla kaç nesil çalışacağını belirtir. (length of generation) generations : lg tane pop tensörü içeren tensör lgxnnxkxm Bireylerin uygunluk (fitness) değerlerini içeren matris lgxnn fitnesses : tempfitnesses : (fitnesses[[a[[b a. nesildeki b. bireyin fitness değerini verir.) KMeansForPopulation fonksiyonu içinde bireylerin geçici fitness değerlerini tutan vektör. NN boyutundadır. totalfitness : Nesildeki bireylerin toplam fitness ı orderedpop : pop tensöründeki bireylerin fitness larına göre sıralanmış halini ve fitness değerini tutar. NNx2 (orderedpop[[nn[[1 vii
8 nesli, orderedpop[[nn[[2 fitness ı) elitno : Bir sonraki nesle direk geçecek en iyi elemanların sayısı matchingpool : Crossover işlemindeki eşleme için bireyleri tutan tensör (NNelitNo)xkxm l : İkili (binary) sistemdeki bit sayısı binarymatching Pool : matchingpool daki bireylerin crossover ve mutasyon uygulanabilmesi ikili sisteme çevrilmiş hallerini tutan vektör. (NN-elitNo) boyutundadır. pc : Çaprazlama olasılığı (proportion of crossover) pm : Mutasyon olasılığı (proportion of mutation) binarypop : Crossover dan çıkıp mutasyona girmek üzere olan bireyler. binarypop2 : Mutasyondan çıkan bireyler. temppop1 : Elitism fonksiyonundan gelen bireyleri tutar. temppop2 : ElitSearch fonksiyonundan gelen bireyleri tutar. temppop3 : Crossover ve Mutasyon işlemlerinden sonra BinaryToIndividual fonksiyonundan gelen bireyleri tutar. pop2 : temppop1, temppop2 ve temppop3 ü birleştirir. viii
9 1. GİRİŞ İnsanlar tarihin başlangıcından beri kullandıkları eşyaları kümeleme ya da gruplama ihtiyacı duymuşlardır. Bu kümeleme ve gruplama bazen eşyaların özelliklerine göre yapılmış, bazen de özellikleri göz ardı edilerek rastgele yapılmıştır. Özelliklerine göre yapılan gruplamalarda, aynı grupta olan öğelerin baz alınan özelliklere göre benzer, farklı grupta olan öğelerin baz alınan özelliklere göre farklı olması amaçlanmıştır. Örneğin, Yunan filozof Aristoteles canlıları yaşama ortamlarını (hava, kara, su) baz alarak sınıflandırmıştır [1. Algoritmaların gelişmesiyle kümeleme algoritmaları (clustering algorithms) türemiştir. Bu algoritmaların verimliliği algoritmanın uygulandığı veriye göre değişir. Fakat her tür veri için kabul edilebilir sonuçlar veren algoritma K-Means kümeleme algoritmasıdır [2. Bu algoritmanın dezavantajı uygunluk fonksiyonunda yerel optimumlara ulaştıktan sonra takılıp kalması ve genel optimumlara ulaşamamasıdır. Bu projede K-Means kümeleme algoritmasının yerel optimumlara takılma probleminin genetik algoritma kullanılarak giderilmesi amaçlanmıştır. Algoritmaların sonuçlarını görmek için örnek olarak öğrencilerin bazı derslerden aldıkları notlara göre kümeleme yapılmıştır. Öğrenci verileri rastgele seçilmiştir. Kümeleme yaparken sırasıyla K-Means, GA Clustering ve KGA - Clustering olmak üzere üç farklı algoritma kullanılmıştır. 1
10 2. K-MEANS KÜMELEME ALGORİTMASI 2.1. Tanım ve Tarihçe K-Means kümeleme algoritması n tane verinin k tane grup oluşturacak şekilde gruplandırılması esasına dayanır. Bu gruplama sırasında elemanların grup merkezine uzaklıklarını belirten bir metrik tanımlanır. Birbirine yakın veriler aynı grupta yer alırken birbirinden uzak veriler farklı gruplarda yer alırlar. K-Means terimi ilk olarak 1967 de James MacQueen tarafından kullanılsa da algoritmanın ana fikri 1956 da Hugo Steinhaus tarafından ortaya atılmıştır [3. Bazı kümeleme algoritmaları bazı verilerde daha iyi sonuçlar vermesine rağmen K- Means kümeleme algoritması her çeşit veride kabul edilebilir sonuçlar verir. Algoritmanın en büyük dezavantajı yerel optimumlarda kalarak genel optimumlara ulaşamamasıdır Algoritma ve Akış Şeması Bütün veriler sayısal değerlere dönüştürülür. Algoritma başlangıçta rastgele ya da belirli yöntemlerle seçilen k tane küme merkezi belirler. Sonra her elemanı hangi sınıf merkezine daha yakınsa onun sınıfında olacak şekilde sınıflara yerleştirir. Oluşan sınıflardaki elemanların normlarının ortalama değerlerini alır ve bu değerleri yeni sınıf merkezleri olarak belirler. Sonra her elemanı yeniden hangi sınıf merkezine yakınsa onun sınıfında olacak şekilde gruplar. Eski sınıf merkezleri yeni sınıf merkezlerine eşit olana ya da belirlenen çevrim sayısına ulaşana kadar algoritma bu işlemleri tekrarlar. Algoritmayı adım adım yazılırsa; 1. n tane veri ( ) arasından k tane küme merkezi ( ) seçilir. 2. Bir veri bir sınıf merkezine diğer sınıf merkezlerinden daha yakınsa o sınıfa yerleştirilir. 2
11 sınıfına yerleştir. ise ve ise verisini 3. Yeni sınıf merkezlerini sınıfın içindeki bütün elemanların ortalamasını alarak oluşturulur. burada sınıfının eleman sayısıdır. 4. Yeni sınıf merkezleri eski sınıf merkezlerine eşitse algoritmadan çık. Değilse yeni sınıf merkezlerini esas alarak 2. adıma dön. ise çık. Akış şeması çizilirse: leri oluştur., ve Hayır Evet Çık. 3
12 2.3. Program: K-Means Clustering adet verinin gruplandırılması EK-1 deki kodda yer alan fonksiyonlar kullanılarak K-Means Algoritmasının sonuçları görülebilir. Örnek olarak 0 ile 1000 arasındaki rastgele 100 veriyi K-Means algoritmasıyla 10 gruba bölünecektir. DATA-1 de belirlenen veriler data ismindeki vektöre atılır. Daha sonra rastgele 10 tane küme merkezi seçilir. Programda bu işlem RandomClusterCentersSelect fonksiyonuyla yapılır. Programda IsClusterCenterValid fonksiyonunu çağrılarak herhangi iki sınıf merkezinin aynı olmaması garantilenir. z = RandomClusterCentersSelect[10, 1 {{610}, {981}, {332}, {412}, {84}, {304}, {17}, {481}, {517}, {70}} data da bulunan 100 veri tek tek incelenerek 10 sınıf merkezinden hangisine daha yakınsa onun sınıfına atılır. Veriler sınıflara atıldıktan sonra sınıfların ortalamaları alınır ve bu ortalamalar yeni sınıf merkezleri olarak belirlenir. Bu işlem eski sınıf merkezleri, yeni sınıf merkezlerine eşit olana kadar tekrarlanır. Programda ise seçilen sınıf merkezleri ve belirlenen veri KmeansAlgorithm fonksiyonuna parametre olarak gönderilir. Fonksiyon veriyi KMeans Clustering algoritmasının adımlarını uygulayarak 10 sınıfa ayırır. Rastgele belirlenen veriler ve sınıf merkezleri için ilk adımın sonucu aşağıdaki gibidir: Sınıflar {729},{765},{599},{738},{733},{633},{630},{639},{643},{757},{712},{750},{65 8}, {784} {678} {685} {975},{846},{953},{899},{876},{918},{973},{868},{961},{809},{896},{913},{82 4}, Sınıf Merkezleri {371},{337},{330},{368},{346},{363},{351},{353},{337},{350},{353} {394},{380},{420} 398. {132},{157},{148},{115},{107} {220},{285},{246},{309},{240},{256},{195},{205},{302},{284},{210},{232},{ } {43},{20},{8},{14},{17},{36} 23. {476},{451},{484},{487},{456} {521},{521},{512},{504},{558},{503},{526},{512},{541},{546},{522},{529},{55 5}, {51},{49},{72}
13 Algoritmanın bütün adımları tamamlandığında ise sonuç aşağıdaki gibidir: Sınıflar Sınıf Merkezleri {729}, {765}, {738}, {733}, {633}, {630}, {639}, {643}, {757}, {712}, {750}, {658}, {784}, {678}, {685} {975}, {846}, {953}, {899}, {876}, {918}, {973}, {868}, {961}, {809}, {896}, {913}, {824}, {843}, {962}, {947}, {799}, {818}, {894}, {985}, {888}, {944}, {803}, {843} {337}, {330}, {346}, {309}, {351}, {353}, {337}, {350}, {302}, {353} {371}, {368}, {394}, {363}, {380}, {420} {132}, {157}, {148}, {115}, {107} {220}, {285}, {246}, {240}, {256}, {195}, {205}, {284}, {210}, {232}, {211} {20}, {8}, {14}, {17}, {36} 19. {476}, {451}, {484}, {487}, {456} {521}, {521}, {512}, {504}, {558}, {599}, {503}, {526}, {512}, {541}, {546}, {522}, {529}, {555}, {525} {43}, {51}, {49}, {72} özellikli 100 adet verinin gruplandırılması Yukarıda tek özellikli veriler için uygulanan adımlar, üç özellikli veriler için tekrar edilir. Farkı uzunluk hesabının vektörel olarak, yani iki veri arasındaki uzunluk hesaplanarak yapılmasıdır. DATA-2 de belirlediğimiz veriler data2 ismindeki 100x3 boyutlu matrise atılır. Daha sonra rastgele 10 tane küme merkezi seçilir. Programda bu işlem RandomClusterCentersSelect fonksiyonuyla yapılır. Programda IsClusterCenterValid fonksiyonunu çağrılarak herhangi iki sınıf merkezinin normunun aynı olmamasını garantilenir. z = RandomClusterCentersSelect[10, 3 {{84, 485, 167}, {235, 681, 503}, {313, 238, 782}, {336, 853, 988}, {819, 602, 798}, {163, 918, 331}, {832, 969, 272}, {251, 478,73}, {298, 562, 872}, {460, 690, 824}} data2 de bulunan 100 vektör tek tek incelenerek her birinin sınıf merkezlerine olan uzaklığı (vektörlerin farklarının normu), 10 sınıf merkezinden hangisinde daha küçükse veri o sınıfa atılır. Veriler sınıflara atıldıktan sonra sınıfların ortalamaları hesaplanır ve bu ortalamalar yeni sınıf merkezleri olarak belirlenir. Bu işlem eski sınıf merkezleri, yeni sınıf merkezlerine eşit olana kadar tekrarlanır. Programda ise seçilen sınıf merkezleri ve belirlenen veri KMeansAlgorithm fonksiyonuna parametre olarak gönderilir. Fonksiyon veriyi KMeans Clustering algoritmasının adımlarını uygulayarak 10 sınıfa ayırır. 5
14 Belirlenen veriler ve sınıf merkezleri için ilk adımın sonucu aşağıdaki gibidir: Sınıflar Sınıf Merkezleri {176,238,376},{75,315,38},{7,644,273},{102,625,3} {90, 455.5, 172.5} {421,908,480},{244,766,439},{20,743,510},{143,611,499},{107,479,530}, { , , {358,720,454},{1,758,643},{453,622,405},{391,899,511} } {282,42,818},{614,243,805},{394,62,703},{833,39,831},{625,193,774}, {473, , {439,201,591},{138,178,845},{483,377,542},{671,167,369},{344,70,407}, 649.6} {91,273,502},{560,264,567},{427,115,517},{532,321,985},{662,111,488} {12,979,780},{75,937,873},{213,964,820} {100, 960, } {832,332,465},{990,436,368},{740,433,584},{953,67,943},{921,345,445}, {805,217,456},{999,89,734},{809,145,953},{782,532,980},{729,454,520}, {949,271,836},{698,349,943},{907,391,658},{956,151,227},{827,452,774}, {636,419,930},{922,734,553},{701,272,493},{875,95,433},{666,360,665}, {977,275,455},{955,370,264},{735,443,692} {376,826,321},{340,809,184},{123,890,540},{31,983,59},{364,972,438}, {249,812,245} {704,506,281},{552,962,126},{941,730,136},{952,689,131},{671,939,215}, {975,805,254},{775,594,308},{562,820,64},{932,780,239},{827,826,314}, {934,725,465},{733,827,212},{544,797,193},{944,963,576},{720,578,343}, {630,920,133} {508,33,19},{243,679,173},{466,410,276},{391,101,188},{187,565,74}, {559,698,126},{340,444,92},{267,7,281},{299,686,156},{462,793,6}, {622,258,148},{567,460,223},{648,527,192} { , , } { , 882, } {774.75, , } { , , } {329,372,948},{73,440,813},{367,410,968},{34,426,720},{172,548,965}, {183, , {186,538,690},{120,574,796} } {628,811,747},{572,858,524},{565,709,657},{409,749,792} {543.5, , 680} Algoritmanın bütün adımları tamamlandığında ise sonuç aşağıdaki gibidir: Sınıflar {176,238,376},{75,315,38},{187,565,74},{7,644,273},{91,273,502}, {102,625,3} {244,766,439},{123,890,540},{20,743,510},{143,611,499},{107,479,530}, {1,758,643} {282,42,818},{614,243,805},{394,62,703},{625,193,774},{439,201,591}, {483,377,542},{671,167,369},{344,70,407},{560,264,567},{427,115,517}, {662,111,488} {12,979,780},{75,937,873},{213,964,820} {100, 960, } {832,332,465},{740,433,584},{953,67,943},{833,39,831},{921,345,445}, {805,217,456},{999,89,734},{809,145,953},{782,532,980},{729,454,520}, {949,271,836},{698,349,943},{907,391,658},{956,151,227},{827,452,774}, {636,419,930},{701,272,493},{875,95,433},{666,360,665},{977,275,455}, {735,443,692} {376,826,321},{340,809,184},{243,679,173},{552,962,126},{559,698,126}, {31,983,59},{671,939,215},{299,686,156},{562,820,64},{462,793,6}, {249,812,245},{544,797,193},{630,920,133} {704,506,281},{990,436,368},{941,730,136},{952,689,131},{975,805,254}, {775,594,308},{932,780,239},{827,826,314},{922,734,553},{934,725,465}, {733,827,212},{955,370,264},{944,963,576},{720,578,343},{648,527,192} 6 Sınıf Merkezleri { , , 211.} { , , } { , , } { , , } { , , } { , , } {508,33,19},{466,410,276},{391,101,188},{340,444,92},{267,7,281}, { , , {622,258,148},{567,460,223} } {329,372,948},{73,440,813},{367,410,968},{34,426,720},{138,178,845}, { , 423, {172,548,965},{186,538,690},{120,574,796},{532,321,985} } {628,811,747},{421,908,480},{572,858,524},{565,709,657},{364,972,438}, { , ,
15 {358,720,454},{453,622,405},{391,899,511},{409,749,792} } 7
16 3. GENETİK ALGORİTMA 3.1. Tanım ve Tarihçe Genetik algoritma mevcut çözümler arasında en iyi olanı ya da en iyiye en yakın olanı bulmak için kullanılan arama algoritmasıdır. Çözümler belirlenen bir uygunluk (fitness) fonksiyonu yardımıyla kıyaslanır. Genetik algoritma genellikle optimizasyon problemlerinin çözümünde kullanılır. Genetik algoritmalar evrimsel algoritmalarının bir alt sınıfıdır. Evrimsel algoritmalar biyolojinin evrim teorisinden esinlendikleri için çaprazlama, mutasyon, gen gibi terimler kullanırlar. Evrim için bilgisayar simülasyonların kullanılması üzerine ilk çalışmalar 1954 de Nils Aall Barricelli tarafından yapılmıştır [ ların başlarında evrim için bilgisayar simülasyonları biyologlar tarafından oldukça yoğun bir şekilde kullanılmıştır. Hans Bremermann 1960 larda yayınladığı modern genetik algoritmaların temellerini içeren makalelerde genetik algoritmaların sadece biyolojik problemlerin çözümünde değil, optimizasyon problemlerinin çözümünde de kullanılabileceğini belirtmiştir de Barricelli basit bir oyun oynanmasının evrimini simüle etmiştir [ larda ve 1970 lerin başlarında Rechenberg in grubu kompleks mühendislik problemlerinin çözümünde de evrimsel algoritmaları kullanmışlardır [7. Yapay zeka geliştirilmesi konusunda da yine evrimsel algoritmalar kullanılmıştır. Tüm bunlara rağmen genetik algoritma bir optimizasyon metodu olarak bilinir de John Holland ve öğrencileri tarafından yapılan çalışmalarla bir sonraki neslin kalitesi tahmin etmeye çalışılmıştır lerin ortalarındaki Pennsylvania daki 1. Uluslararası Genetik Algoritma Konferansına kadar bu çalışmalar teorik olarak kalmıştır lerin sonlarında General Elektrik dünyanın ilk Genetik Algoritma ürününü satmıştır da ise Axcelis firması genetik algoritma kullanan Evolver isimli dünyanın ikinci, fakat masaüstü bilgisayarlar için ilk ürünü piyasaya sürmüştür. 8
17 3.2. Algoritma ve Akış Şeması Genetik algoritma problemin en iyi ya da en iyiye en yakın çözümüne ulaşmak için problem çözümlerini bir nesildeki bireyler (kromozom) olarak görür, nesildeki kromozomlardan genetik operatörler yardımıyla yeni bireyler elde eder. Bu bölümde uygulamada kullanılan tanımlar, operatörler ve akış şemasındaki yerleri incelenecektir Uygunluk (Fitness) Uygunluk (fitness), çözümleri birbiriyle kıyaslayabilmek için tanımlanmış bir fonksiyondur. Problemde uygunluk fonksiyonunun tanımına göre, elde edilen uygunluk değeri ne kadar büyükse/küçükse çözüm o kadar iyidir. K-Means Clustering algoritması için verilerin içinde bulunduğu sınıfların sınıf merkezlerine olan uzaklıklarının toplamı M olarak gösterilirse, uygunluk fonksiyonu olur Seçilim (Selection) Bir sonraki nesil oluşturulurken bireylerin nasıl seçileceğini belirleyen operatördür. Çaprazlama ve Mutasyon operatörlerinin hangi bireylere uygulanacağını belirler. Seçilen bireyler eşleşme havuzu (matching pool) na atılır. Daha sonra eşleşme havuzundaki bireylere gerekli operatörler uygulanır Rulet tekerleği seçimi (Roulette wheel selection) Rulet tekerleği seçilimi ile bireyler uygunluk (fitness) değerlerinin büyüklüğüyle doğru orantılı bir şekilde seçilme şanslarını arttırırlar. Bir birey kendi uygunluk değerinin nesildeki toplam uygunluk değerine oranı olasılığıyla seçilir. Örneğin nesildeki bir A bireyinin uygunluk değeri 25 ve nesildeki bireylerin toplam uygunluk değerleri 250 iken, A bireyinin eşleşme havuzuna girme olasılığı %10 dur. 9
18 Seçkinlik (Elitism) Seçkinlik operatörü ile bir nesildeki en iyi birey(ler) korunarak bir sonraki nesle aktarılır. Böylelikle yeni neslin en iyi bireyinin uygunluk (fitness) değerinin, eski neslin en iyi bireyinin uygunluk (fitness) değerinden daha iyi ya da eşit olması garantilenir Seçkin çözümler civarında arama (Elit search) Seçkinlik operatörü ile seçilen çözümlerden ilk ikisinin çaprazlamasından ve ilk çözümün mutasyona uğramasından elde edilen çözümler seçkin çözümlerin ardından bir sonraki nesle aktarılır Çaprazlama (Crossover) Eşleşme havuzundan rastgele alınan iki bireyin (kromozomun) belirli bir olasılıkla belirli bir noktadan bölünerek elde edilen parçalarının yer değiştirmesiyle iki yeni bireyin elde edilmesidir. Çaprazlama sonucunda elde edilen bireylerin çözüm uzayında yer alması önemlidir. Örneğin çözüm uzayı 0-10 arasındaki sayılardan oluşuyorsa, 8(1000) ve 7 (0111) sayıları, soldan birinci bit ile soldan ikinci bit arasından ayrılarak çaprazlama yapılırsa; (1/000) X (0/111) => (0/000) X (1/111) Sonuç olarak 0 ve 15 sayıları elde edilir. Fakat 15 sayısı çözüm uzayında yer almaz. Bu durumu engellemek için, çözüm uzayını ikilik sistemde belirli bit sayısının minimum ve maksimum değerleri çözüm uzayının sınırları olan bir fonksiyon tanımlanır. Yukarıdaki örnek için 0 ı 0 a ve 10 u 15 e götüren bir fonksiyon ( ) yardımıyla çaprazlamadan çıkan her elemanının çözüm uzayında olması garantilenir. Bireyler çaprazlamadan çıktıktan sonra fonksiyonun tersi uygulanarak 0 ile 10 arasında bir çözüm elde edilir Mutasyon (Mutation) Herhangi bir nesilde bütün bireylerin bir özelliğinin aynı olması durumunda ne kadar çaprazlama yapılırsa yapılsın o özellik hep aynı kalacaktır. Örneğin çözüm uzayı 0-15 aralığı olan bir problemin uygunluk fonksiyonu olsun. İlk nesildeki 10
19 bireylerimiz de 7 (0111), 4 (0100), 3 (0011) ve 1 (0001) olsun. Ne kadar çaprazlama yapılırsa yapılsın. Çözümlerimizdeki en değerli bit yani soldan birinci bit nesildeki bütün bireylerde 0 olduğu için 0 olarak kalacaktır. Çaprazlamalar sonucu ulaşılabilecek en iyi sonuç 7 dir. Fakat problemin en iyi çözümü 15 dir. Bu durumdan kurtulmak için bazı bitler belirli bir olasılıkla değiştirilir Akış şeması Algoritmanın adımları aşağıda verilmiştir; 1. Nesildeki bireyler için K-Means Algoritması çalıştırılır. Çıkan sonuçlarla uygunluk değerleri hesaplanır. Bireyler uygunluk değerlerine göre sıralanır. 2. Seçkinlik operatörü uygulanıyorsa, en iyi çözümleri korumak için en iyi çözümler direk olarak bir sonraki nesle aktarılır. En iyi kaç çözümün bir sonraki nesle aktarılacağı probleme göre değişkenlik gösterir. 3. Kalan bireyler Rulet tekerleği seçilimi ile eşleşme havuzuna aktarılır. 4. Eşleşme havuzundaki bireylere çaprazlama operatörü uygulanır. 5. Çaprazlamadan çıkan bireylere mutasyon operatörü uygulanır. 6. Yeni nesil elde edildikten sonra yukarıdaki adımlar belirlenen nesil sayısı kadar tekrarlanır. 11
20 3.3. Program: Genetik Algoritmanın K-Means Algoritmasına Uygulanması (GA-Clustering) EK-2 deki kodda yer alan fonksiyonlar kullanılarak, DATA-3 de rastgele belirlenen 0 ile 1000 arasındaki 100 sayı 8 gruba ayrılır. Uygunluk değeri bütün verilerin bulundukları sınıfların merkezlerine olan uzaklıklarının toplamıyla bulunur. Fonksiyonlar aşağıdaki sırayla çağrılır. fitnesses = {}; pop = CreateFirstPopulation[16, 8, 1 tempfitness = KMeansAlgorithmForPopulation[dataSet, pop orderedpop = OrderPop[pop, tempfitness orderedtempfitness = Sort[tempFitness, #1 > #2 & MatrixForm[orderedTempFitness AppendTo[fitnesses, orderedtempfitness For[i = 1, i < 10, i++, Print[i, " nci çevrim" pop = CreateNextPopulation[orderedPop, 2, 10, 0.7, 0.1 tempfitness = KMeansAlgorithmForPopulation[dataSet, pop orderedpop = OrderPop[pop, tempfitness orderedtempfitness = Sort[tempFitness, #1 > #2 & MatrixForm[orderedTempFitness AppendTo[fitnesses, orderedtempfitness If[Length[Union[tempFitness < 8, Break Print[MatrixForm[fitnesses Bir nesilde 16 birey (kromozom) olacak şekilde ilk nesil oluşturulur. KMeansAlgorithmForPopulation fonksiyonu çalıştırılarak uygunluk değerleri hesaplanır. Nesildeki çözümler (bireyler) uygunluk değerlerine göre büyükten küçüğe sıralanır. O anki neslin en iyi 2 çözümü elit olarak bir sonraki nesle aktarılır. Çözümler eşleşme havuzuna atılır. Eşleşme havuzundan mutasyon olasılığı %10, 12
21 çaprazlama olasılığı %70 olacak şekilde bir sonraki nesil oluşturulur. Çaprazlama ve mutasyon için sayıları ikilik sisteme çevirirken 10 bitlik bir yapı kullanılır. DATA-2 deki veriler için ilk nesil oluşturulur ve uygunluk değerleri hesaplanır. {{572},{907},{839},{465},{761},{323},{90},{739}} {{207},{855},{488},{859},{99},{93},{810},{332}} {{920},{775},{867},{229},{939},{299},{197},{405}} {{688},{456},{268},{527},{188},{331},{90},{848}} {{199},{521},{728},{340},{73},{602},{800},{509}} {{960},{886},{463},{109},{671},{507},{958},{182}} {{337},{357},{328},{799},{497},{434},{176},{796}} {{587},{366},{678},{193},{487},{143},{733},{104}} {{422},{966},{411},{84},{523},{521},{412},{109}} {{801},{417},{799},{93},{583},{777},{649},{621}} {{117},{132},{543},{374},{900},{237},{997},{58}} {{83},{76},{212},{719},{360},{464},{306},{422}} {{218},{577},{105},{84},{620},{150},{301},{462}} {{568},{291},{30},{45},{295},{378},{531},{768}} {{538},{940},{200},{914},{448},{981},{802},{721}} {{485},{88},{49},{525},{54},{483},{627},{512}} nesilde ise nesil ve uygunluk değerleri aşağıdaki değerleri alır: {{538},{940},{200},{913},{73},{602},{800},{509}} {{203},{966},{411},{465},{898},{323},{90},{743}} {{538},{940},{201},{913},{73},{602},{800},{509}} {{218},{969},{839},{84},{523},{964},{306},{379}} {{538},{940},{200},{913},{73},{602},{800},{509}} {{538},{940},{200},{913},{73},{602},{800},{509}} {{197},{891},{974},{465},{886},{323},{112},{509}} {{578},{966},{411},{465},{886},{323},{112},{509}} {{197},{891},{978},{340},{73},{602},{800},{509}} {{197},{954},{978},{340},{73},{602},{800},{509}} {{197},{907},{839},{84},{523},{964},{306},{379}} {{203},{966},{411},{84},{522},{351},{800},{509}} {{218},{969},{978},{340},{73},{602},{779},{634}} {{197},{905},{200},{914},{73},{602},{800},{509}} {{197},{907},{978},{340},{73},{602},{779},{634}} {{197},{654},{200},{914},{73},{602},{800},{509}} Görüldüğü gibi ilk nesilde en iyi çözümün uygunluk değeri iken, 9. nesilde en iyi çözümün uygunluk değeri olmuştur. 13
22 4. GENETİK K-MEANS ALGORİTMASI KGA Clustering algoritmasında, GA Clustering algoritmasını hızlandırmak için her adımda K-Means Clustering Algoritmasını baştan sona çalıştırmak yerine K- Means algoritmasının ara adımlarının sonuçlarına Genetik Algoritma uygulanır. Bu işlem nesil sayısını arttırır, fakat bir nesilde harcanan işlem yükünü azaltır Algoritma ve Akış Şeması GA Clustering algoritmasındaki K-Means Algoritması eski sınıf merkezleriyle yeni sınıf merkezleri birbirine eşit olana kadar çalışırken, KGA-Clustering algoritmasında K-Means Algoritmasının sadece ilk adımı alınır. Yeni sınıf merkezlerini bulma işlemi sadece bir kere çalışır. Algoritmanın adımları yazılırsa; 1. Nesildeki bireyler için K-Means Algoritmasının ilk adımı çalıştırılır. Çıkan sonuçlarla uygunluk değerleri hesaplanır. Bireyler uygunluk değerlerine göre sıralanır. 2. Seçkinlik operatörü uygulanıyorsa, en iyi birkaç eleman direk olarak bir sonraki nesle aktarılır. 3. Kalan bireyler Rulet tekerleği seçilimi ile eşleşme havuzuna aktarılır. 4. Eşleşme havuzundaki bireylere çaprazlama operatörü uygulanır. 5. Çaprazlamadan çıkan bireylere mutasyon operatörü uygulanır. 6. K-Means bir sonraki adımına geçilerek aynı işlemler tekrarlanır Program: KGA-Clustering EK-3 deki kodda yer alan fonksiyonlar kullanılarak, DATA-3 de belirlenen 0 ile 1000 Arasındaki 100 sayı 8 gruba ayrılır. Sonuçları GA-Clustering ile kıyaslayabilmek için GA Clustering algoritmasında kullanılan veri ve ilk nesil 14
23 değerleri burada da kullanılmıştır. Uygunluk değeri bütün verilerin bulundukları sınıfların merkezlerine olan uzaklıklarının toplamıyla bulunur. Fonksiyonlar aşağıdaki sırayla çağrılır. fitnesses = {}; pop = {{{572}, {907}, {839}, {465}, {761}, {323}, {90}, {739}}, {{207}, {855}, {488}, {859}, {99}, {93}, {810}, {332}}, {{920}, {775}, {867}, {229}, {939}, {299}, {197}, {405}}, {{688}, {456}, {268}, {527}, {188}, {331}, {90}, {848}}, {{199}, {521}, {728}, {340}, {73}, {602}, {800}, {509}}, {{960}, {886}, {463}, {109}, {671}, {507}, {958}, {182}}, {{337}, {357}, {328}, {799}, {497}, {434}, {176}, {796}}, {{587}, {366}, {678}, {193}, {487}, {143}, {733}, {104}}, {{422}, {966}, {411}, {84}, {523}, {521}, {412}, {109}}, {{801}, {417}, {799}, {93}, {583}, {777}, {649}, {621}}, {{117}, {132}, {543}, {374}, {900}, {237}, {997}, {58}}, {{83}, {76}, {212}, {719}, {360}, {464}, {306}, {422}}, {{218}, {577}, {105}, {84}, {620}, {150}, {301}, {462}}, {{568}, {291}, {30}, {45}, {295}, {378}, {531}, {768}}, {{538}, {940}, {200}, {914}, {448}, {981}, {802}, {721}}, {{485}, {88}, {49}, {525}, {54}, {483}, {627}, {512}}}; tempfitness = KMeansAlgorithmForPopulation[dataSet, pop orderedpop = OrderPop[pop, tempfitness orderedtempfitness = Sort[tempFitness, #1 > #2 & MatrixForm[orderedTempFitness AppendTo[fitnesses, orderedtempfitness For[i = 1, i < 100, i++, Print[i, " nci çevrim" pop = CreateNextPopulation[orderedPop, 2, 10, 0.7, 0.1 tempfitness = KMeansAlgorithmForPopulation[dataSet, pop orderedpop = OrderPop[pop, tempfitness orderedtempfitness = Sort[tempFitness, #1 > #2 & 15
24 MatrixForm[orderedTempFitness AppendTo[fitnesses, orderedtempfitness If[Length[Union[tempFitness < 8, Break Print[MatrixForm[fitnesses KGA-Clustering algoritmasının GA Clustering algoritmasından tek farkı genetik operatörlerin hangi adımlarda kullanıldığıdır. İlk nesil aşağıdaki uygunluk değerlerini alır: {{572},{907},{839},{465},{761},{323},{90},{739}} {{199},{521},{728},{340},{73},{602},{800},{509}} {{688},{456},{268},{527},{188},{331},{90},{848}} {{960},{886},{463},{109},{671},{507},{958},{182}} {{117},{132},{543},{374},{900},{237},{997},{58}} {{207},{855},{488},{859},{99},{93},{810},{332}} {{587},{366},{678},{193},{487},{143},{733},{104}} {{337},{357},{328},{799},{497},{434},{176},{796}} {{568},{291},{30},{45},{295},{378},{531},{768}} {{422},{966},{411},{84},{523},{521},{412},{109}} {{538},{940},{200},{914},{448},{981},{802},{721}} {{920},{775},{867},{229},{939},{299},{197},{405}} {{801},{417},{799},{93},{583},{777},{649},{621}} {{218},{577},{105},{84},{620},{150},{301},{462}} {{83},{76},{212},{719},{360},{464},{306},{422}} {{485},{88},{49},{525},{54},{483},{627},{512}} Değerlerde görüleceği üzere ilk neslin en iyi değeri dir. GA Clustering ile karşılaştırıldığında bu sonucun daha kötü olmasının sebebi K-Means algoritmasının sadece ilk adımının çalıştırılmasıdır. 16
25 9. nesildeki sonuçlara bakarsak. {{207},{907},{837},{340},{73},{566},{531},{768}} {{207},{907},{837},{340},{73},{566},{531},{801}} {{207},{907},{869},{340},{73},{566},{531},{801}} {{572},{901},{30},{45},{263},{378},{529},{768}} {{572},{901},{30},{61},{263},{378},{529},{801}} {{572},{901},{30},{45},{256},{378},{529},{768}} {{572},{901},{30},{45},{295},{379},{531},{801}} {{572},{901},{30},{45},{295},{378},{531},{801}} {{572},{901},{30},{45},{295},{378},{531},{801}} {{72},{907},{837},{340},{73},{566},{529},{768}} {{207},{855},{405},{27},{73},{573},{31},{768}} {{207},{855},{405},{27},{73},{573},{29},{768}} {{207},{855},{405},{27},{295},{379},{531},{801}} {{197},{901},{30},{45},{295},{378},{529},{768}} {{582},{855},{405},{43},{73},{602},{800},{510}} {{572},{901},{30},{45},{73},{573},{31},{768}} nesildeki en iyi sonuçlar da GA Clustering sonuçlarından daha kötüdür. Sebep yine K-Means algoritmasının tamamı yerine sadece ilk iterasyonunun çalıştırılmasıdır. 85. nesile bakarsak: {{237},{930},{843},{340},{73},{566},{527},{776}} {{237},{930},{843},{340},{73},{566},{527},{776}} {{237},{930},{843},{340},{73},{566},{527},{776}} {{237},{930},{843},{340},{73},{566},{527},{776}} {{237},{930},{843},{344},{73},{566},{527},{776}} {{237},{907},{843},{340},{73},{566},{527},{776}} {{241},{907},{843},{340},{73},{566},{527},{768}} {{241},{907},{843},{340},{73},{566},{527},{768}} {{237},{907},{843},{340},{73},{566},{527},{776}} {{237},{907},{839},{340},{73},{566},{527},{776}} {{237},{907},{839},{340},{73},{566},{527},{776}} {{237},{907},{839},{340},{73},{566},{527},{776}} {{237},{907},{839},{340},{73},{566},{527},{776}} {{237},{907},{839},{340},{73},{566},{527},{776}} {{237},{907},{839},{340},{73},{566},{527},{776}} {{237},{930},{843},{469},{73},{566},{527},{776}} değerine ulaştığını görebiliriz. 17
26 5. UYGULAMA: DERSLERDE ALDIKLARI NOTLARA GÖRE ÖĞRENCİLERİN SINIFLANDIRILMASI Bu bölümde öğrencilerin 5 dersten aldıkları notlardan bir data oluşturulmuştur. Öğrenciler, tek dersten, 3 dersten ve 5 dersten aldıkları notlar baz alınarak KMeans Clustering, GA-Clustering ve KGA-Clustering algoritmaları yardımıyla 3 sınıfa (İyi, Orta, Kötü) ayrılmıştır Tek Dersten Aldıkları Notlara Göre Gruplama KMeans Clustering Bu algoritmayla elde edilen sınıflandırma sonucu ve sınıfların bazı istatistik değerleri aşağıda verilmiştir. KMeans algoritmasıyla elde edilen sınıflandırmanın uygunluk değeri: İyi sınıf Sınıf merkezi: Eleman sayısı: 129 Orta sınıf Sınıf merkezi: Eleman sayısı: 75 Kötü sınıf Sınıf merkezi: Eleman sayısı: 96 18
27 GA-Clustering İlk neslin en iyi uygunluk değeri: neslin en iyi uygunluk değeri: neslin en iyi uygunluk değeri: KGA-Clustering İlk neslin en iyi uygunluk değeri: neslin en iyi uygunluk değeri: neslin en iyi uygunluk değeri: Üç Dersten Aldıkları Notlara Göre Gruplama KMeans Clustering Uygunluk değeri: İyi sınıf Sınıf merkezi: { , ,86.} Eleman sayısı: 133 Orta sınıf Sınıf merkezi: { , , } Eleman sayısı: 70 Kötü sınıf Sınıf merkezi: {21.433, ,23.} Eleman sayısı: GA-Clustering İlk neslin en iyi uygunluk değeri: neslin en iyi uygunluk değeri: neslin en iyi uygunluk değeri:
28 KGA-Clustering İlk neslin en iyi uygunluk değeri: neslin en iyi uygunluk değeri: neslin en iyi uygunluk değeri: Beş Dersten Aldıkları Notlara Göre Gruplama KMeans Clustering Uygunluk değeri: İyi sınıf Sınıf merkezi: {86.246, , , , } Eleman sayısı: 126 Orta sınıf Sınıf merkezi: { , , , , } Eleman sayısı: 63 Kötü sınıf Sınıf merkezi: { ,18.973,24.009, , } Eleman sayısı: GA-Clustering İlk neslin en iyi uygunluk değeri: neslin en iyi uygunluk değeri: neslin en iyi uygunluk değeri: KGA-Clustering İlk neslin en iyi uygunluk değeri: neslin en iyi uygunluk değeri: neslin en iyi uygunluk değeri:
29 Yukarıdaki sonuçlardan anlaşılacağı üzere genetik algoritma içeren her iki KMeans sınıflandırma algoritması da (GA-Clustering ve KGA-Clustering) sadece KMeans algoritmasına göre daha iyi sonuçlar vermektedir. 21
30 6. EKLER VE DATALAR 6.1. EK-1: K-Means Clustering Algoritmasının kodları mindatarange = 0; maxdatarange = 1000; RandomClusterCentersSelect[k_, m_ := Block[{z, i}, i = 0; While[i == 0, z = Table[RandomInteger[maxDataRange, {k, m} i = IsClusterCentersValid[z Return[z IsClusterCentersValid[z_ := Block[{A, i}, A = {}; For[i = 1, i < Length[z + 1, i++, AppendTo[A, Norm[z[[i If[Length[Union[A == Length[z, Return[1, Return[0 KMeansAlgorithm[dataSet_, z_ := Block[{A, clusters, tempz, z1 = z, i, j, minnorm, minindex, step = 0, k = Length[z}, tempz = {}; clusters = {}; While[(z1!= tempz) && (step < 50), step++; tempz = z1; clusters = {}; For[i = 1, i < k + 1, i++, AppendTo[clusters, {} For[i = 1, i < Length[dataSet + 1, i++, minindex = 0; minnorm = ; For[j = 1, j < k + 1, j++, If[minNorm > Abs[Norm[z1[[j - Norm[dataSet[[i, minnorm = Abs[Norm[z1[[j - Norm[dataSet[[i minindex = j 22
31 AppendTo[clusters[[minIndex, dataset[[i For[i = 1, i < k + 1, i++, z1[[i =Sum[clusters[[i[[j, {j, Length[clusters[[i}/Length[clusters[[i Return[clusters 6.2. EK-2: GA-Clustering Algoritmasının Kodları mindatarange = 0; maxdatarange = 1000; RandomDataSelect[n_, m_ := Block[{dataSet}, Print["Datalar rastgele seçildi." dataset = Table[RandomInteger[maxDataRange, {n, m} Return[dataSet RandomClusterCentersSelect[k_, m_ := Block[{z, i}, i = 0; While[i == 0, z = Table[RandomInteger[maxDataRange, {k, m} i = IsClusterCentersValid[z Return[z IsClusterCentersValid[z_ := Block[{A, i}, A = {}; For[i = 1, i < Length[z + 1, i++, AppendTo[A, Norm[z[[i If[Length[Union[A == Length[z, Return[1, Return[0 23
32 CreateFirstPopulation[NN_, k_, m_ := Block[{pop, i}, pop = {}; For[i = 1, i < NN + 1, i++, AppendTo[pop, RandomClusterCentersSelect[k, m Print["İlk popülasyon oluşturuldu." Return[pop Fitness[clusters_, z_ := Block[{A, i, j}, A = 0; For[i = 1, i < Length[clusters + 1, i++, For[j = 1, j < Length[clusters[[i + 1, j++, A = A + (Abs[Norm[clusters[[i[[j - Norm[z[[i) A = 1/A; Return[A KMeansAlgorithm[dataSet_, z_ := Block[{A, clusters, tempz, z1 = z, i, j, minnorm, minindex, step = 0, k = Length[z}, tempz = {}; clusters = {}; While[(z1!= tempz) && (step < 50), step++; tempz = z1; clusters = {}; For[i = 1, i < k + 1, i++, AppendTo[clusters, {} For[i = 1, i < Length[dataSet + 1, i++, minindex = 0; minnorm = ; 24
33 For[j = 1, j < k + 1, j++, If[minNorm > Abs[Norm[z1[[j - Norm[dataSet[[i, minnorm = Abs[Norm[z1[[j - Norm[dataSet[[i minindex = j AppendTo[clusters[[minIndex, dataset[[i For[i = 1, i < k + 1, i++, z1[[i = Sum[clusters[[i[[j, {j, Length[clusters[[i} / Length[clusters[[i Return[N[Fitness[clusters, z1 KMeansAlgorithmForPopulation[dataSet_, pop_ := Block[{NN = Length[pop, i, tempfitness}, tempfitness = {}; For[i = 1, i < NN + 1, i++, AppendTo[tempFitness, KMeansAlgorithm[dataSet, pop[[i Return[tempFitness OrderPop[pop_, tempfitness_ := Block[{orderedPop, i, NN = Length[pop}, orderedpop = {}; For[i = 1, i < NN + 1, i++, AppendTo[orderedPop, {} For[i = 1, i < NN + 1, i++, AppendTo[orderedPop[[i, pop[[i AppendTo[orderedPop[[i, tempfitness[[i orderedpop = Sort[orderedPop, #1[[2 > #2[[2 & Return[orderedPop 25
34 Normalization[matchingPool_, l_ := Block[{a, b, c}, a = (2^l - 1); b = (maxdatarange - mindatarange); c = 0 - mindatarange; Return[Floor[a*matchingPool/b + c DeNormalization[tempPop3_, l_ := Block[{a, b, c}, a = (2^l - 1); b = (maxdatarange - mindatarange); c = 0 - mindatarange; Return[Ceiling[(tempPop3 - c)*b/a IndividualToBinary[matchingPool_, l_ := Block[{binaryMatchingPool, tempmatchingpool, t = Length[matchingPool, i}, binarymatchingpool = {}; tempmatchingpool = Normalization[matchingPool, l For[i = 1, i < t + 1, i++, AppendTo[binaryMatchingPool, Flatten[IntegerDigits[tempMatchingPool[[i, 2, l Return[binaryMatchingPool BinaryToIndividual[binaryPop2_, l_, m_ := Block[{tempPop3, node, individual, r, t = Length[binaryPop2, i, j}, temppop3 = {}; For[i = 1, i < t + 1, i++, individual = {}; node = Partition[binaryPop2[[i, l r = Length[node 26
35 For[j = 1, j < r + 1, j++, AppendTo[individual, FromDigits[node[[j, 2 AppendTo[tempPop3, Partition[individual, m temppop3 = DeNormalization[tempPop3, l Return[tempPop3 Elitism[orderedPop_, elitno_ := Block[{tempPop1, i}, temppop1 = {}; For[i = 1, i < elitno + 1, i++, AppendTo[tempPop1, orderedpop[[i[[1 Return[tempPop1 ElitSearch[tempPop1_, l_, m_ := Block[{elites, temppop2, binarytemppop2, binaryelites, crosselit, mutelit}, elites = {}; temppop2 = {}; binarytemppop2 = {}; AppendTo[elites, temppop1[[1 AppendTo[elites, temppop1[[2 binaryelites = IndividualToBinary[elites, l crosselit = Crossover[binaryElites, 1 mutelit = Mutation[{binaryElites[[1}, 1 AppendTo[binaryTempPop2, crosselit[[1 AppendTo[binaryTempPop2, mutelit[[1 temppop2 = BinaryToIndividual[binaryTempPop2, l, m Return[tempPop2 27
36 RouletteWheelSelection[orderedPop_, elitno_ := Block[{i, j, totalfitness = 0, orderedpop2, matchingpool, rand}, Print[MatrixForm[orderedPop orderedpop2 = Drop[orderedPop, elitno matchingpool = {}; For[i = 1, i < Length[orderedPop2 + 1, i++, totalfitness += orderedpop2[[i[[2 For[i = 1, i < Length[orderedPop2-1, i++, rand = RandomReal[{0, totalfitness} j = 0; While[rand > 0, j++; rand -= orderedpop2[[j[[2 AppendTo[matchingPool, orderedpop2[[j[[1 Return[matchingPool Crossover[binaryMatchingPool_, pc_ := Block[{i, binarypop, leng, cross, A1, A2, B1, B2, r}, binarypop = {}; leng = Length[binaryMatchingPool[[1 For[i = 1, i < Length[binaryMatchingPool + 1, i += 2, r = RandomReal[ If[pc > r, cross = RandomInteger[{1, leng - 1} A1 = Take[binaryMatchingPool[[i, cross B1 = Take[binaryMatchingPool[[i + 1, cross A2 = Take[binaryMatchingPool[[i + 1, cross - leng B2 = Take[binaryMatchingPool[[i, cross - leng AppendTo[binaryPop, Join[A1, A2 AppendTo[binaryPop, Join[B1, B2, AppendTo[binaryPop, binarymatchingpool[[i AppendTo[binaryPop, binarymatchingpool[[i
37 Return[binaryPop Mutation[binaryPop_, pm_ := Block[{i, binarypop2, leng, point, r}, binarypop2 = binarypop; leng = Length[binaryPop2[[1 For[i = 1, i < Length[binaryPop2 + 1, i++, r = RandomReal[ If[pm > r, point = RandomInteger[{1, leng} If[binaryPop2[[i[[point == 1, binarypop2[[i[[point = 0, binarypop2[[i[[point = 1 Return[binaryPop2 CreateNextPopulation[orderedPop_, elitno_, l_, pc_, pm_ := Block[{m = Length[orderedPop[[1[[1[[1, temppop1, matchingpool, binarymatchingpool, binarypop, binarypop2, temppop2, pop2, temppop3}, temppop1 = Elitism[orderedPop, elitno temppop2 = ElitSearch[tempPop1, l, m matchingpool = RouletteWheelSelection[orderedPop, elitno binarymatchingpool = IndividualToBinary[matchingPool, l binarypop = Crossover[binaryMatchingPool, pc binarypop2 = Mutation[binaryPop, pm temppop3 = BinaryToIndividual[binaryPop2, l, m pop2 = Join[tempPop1, temppop2, temppop3 Return[pop2 29
38 6.3. EK-3: KGA-Clustering Algoritmasının Kodları Bu algoritmanın GA-Clustering algoritmasından tek farkı KMeansAlgorithm fonksiyonu yerine aşağıdaki KMeansAlgorithmGA fonksiyonu kullanılmasıdır. KMeansAlgorithmGA[dataSet_, z_ := Block[{clusters, z1 = z, i, j, minnorm, minindex, k = Length[z}, clusters = {}; For[i = 1, i < k + 1, i++, AppendTo[clusters, {} For[i = 1, i < Length[dataSet + 1, i++, minindex = 0; minnorm = ; For[j = 1, j < k + 1, j++, If[minNorm > Norm[z1[[j - dataset[[i, minnorm = Norm[z1[[j - dataset[[i minindex = j AppendTo[clusters[[minIndex, dataset[[i For[i = 1, i < k + 1, i++, z1[[i = Sum[clusters[[i[[j, {j, Length[clusters[[i}/ Length[clusters[[i Return[N[Fitness[clusters, z DATA-1: KMeans Clustering Algoritmasında Kullanılan Veri data = {{521}, {975}, {729}, {371}, {337}, {846}, {521}, {765}, {953}, {512}, {132}, {504}, {43}, {899}, {558}, {599}, {51}, {503}, {738}, {526}, {512}, {876}, {733}, {20}, {330}, {918}, {220}, {368}, {633}, {973}, {541}, {868}, {285}, {346}, {961}, {246}, {394}, {309}, {809}, {363}, {157}, {380}, {630}, {896}, {639}, {643}, {49}, {913}, {240}, {351}, {824}, {757}, {843}, {546}, {256}, {962}, {353}, {476}, {712}, {750}, {658}, {947}, {148}, {72}, {799}, {337}, {8}, {195}, {420}, {14}, {784}, {818}, {451}, {484}, {350}, {205}, {487}, {115}, {17}, {522}, {678}, {107}, {302}, {685}, {36}, {353}, {284}, {456}, {894}, {210}, {985}, {529}, {888}, {232}, {944}, {803}, {555}, {525}, {211}, {843}}; 30
39 6.5. DATA-2: KMeans Clustering Algoritmasında Kullanılan Veri data2 = {{376, 826, 321}, {340, 809, 184}, {12, 979, 780}, {704, 506, 281}, {832, 332, 465}, {329, 372, 948}, {73, 440, 813}, {628, 811, 747}, {282, 42, 818}, {614, 243, 805}, {508, 33, 19}, {176, 238, 376}, {243, 679, 173}, {421, 908, 480}, {572, 858, 524}, {244, 766, 439}, {123, 890, 540}, {552, 962, 126}, {990, 436, 368}, {740, 433, 584}, {394, 62, 703}, {565, 709, 657}, {953, 67, 943}, {941, 730, 136}, {833, 39, 831}, {921, 345, 445}, {805, 217, 456}, {20, 743, 510}, {143, 611, 499}, {999, 89, 734}, {809, 145, 953}, {466, 410, 276}, {367, 410, 968}, {34, 426, 720}, {782, 532, 980}, {75, 315, 38}, {625, 193, 774}, {391, 101, 188}, {729, 454, 520}, {439, 201, 591}, {949, 271, 836}, {187, 565, 74}, {952, 689, 131}, {698, 349, 943}, {907, 391, 658}, {559, 698, 126}, {138, 178, 845}, {107, 479, 530}, {7, 644, 273}, {75, 937, 873}, {31, 983, 59}, {671, 939, 215}, {483, 377, 542}, {956, 151, 227}, {975, 805, 254}, {340, 444, 92}, {267, 7, 281}, {827, 452, 774}, {299, 686, 156}, {671, 167, 369}, {172, 548, 965}, {775, 594, 308}, {562, 820, 64}, {364, 972, 438}, {213, 964, 820}, {932, 780, 239}, {827, 826, 314}, {462, 793, 6}, {186, 538, 690}, {344, 70, 407}, {636, 419, 930}, {91, 273, 502}, {922, 734, 553}, {701, 272, 493}, {358, 720, 454}, {120, 574, 796}, {622, 258, 148}, {567, 460, 223}, {934, 725, 465}, {1, 758, 643}, {875, 95, 433}, {249, 812, 245}, {666, 360, 665}, {560, 264, 567}, {977, 275, 455}, {733, 827, 212}, {427, 115, 517}, {102, 625, 3}, {955, 370, 264}, {532, 321, 985}, {453, 622, 405}, {391, 899, 511}, {409, 749, 792}, {735, 443, 692}, {544, 797, 193}, {944, 963, 576}, {662, 111, 488}, {720, 578, 343}, {648, 527, 192}, {630, 920, 133}}; 6.6. DATA-3: GA-Clustering ve KGA-Clustering Algoritmalarında Kullanılan Veri dataset={{387}, {486}, {609}, {47}, {741}, {276}, {480}, {913}, {447}, {196}, {123}, {438}, {770}, {691}, {334}, {654}, {821}, {771}, {979}, {908}, {870}, {874}, {632}, {904}, {614}, {930}, {22}, {6}, {255}, {369}, {401}, {263}, {593}, {26}, {958}, {970}, {0}, {647}, {106}, {830}, {834}, {460}, {786}, {995}, {211}, {341}, {241}, {924}, {345}, {699}, {623}, {873}, {115}, {633}, {260}, {765}, {707}, {179}, {783}, {257}, {876}, {570}, {608}, {898}, {810}, {636}, {362}, {766}, {497}, {372}, {865}, {94}, {829}, {438}, {475}, {715}, {816}, {861}, {603}, {258}, {11}, {595}, {349}, {831}, {574}, {24}, {216}, {648}, {707}, {555}, {607}, {254}, {576}, {707}, {750}, {945}, {975}, {230}, {384}, {702}}; 31
40 KAYNAKLAR [1 [2 Xu R., Wunsch D. (2009) Clustering [3 [4 [5 Barricelli, Nils Aall (1954). "Esempi numerici di processi di evoluzione". Methodos: [6 Barricelli, Nils Aall (1963). "Numerical testing of evolution theories. Part II. Preliminary tests of performance, symbiogenesis and terrestrial life". Acta Biotheoretica (16): [7 Rechenberg, Ingo (1973). Evolutionsstrategie. Stuttgart: Holzmann-Froboog. [8 Coley David A. (1999), An introduction to Genetic Algorithms for Scientists and Engineers 32
YZM 5257 YAPAY ZEKA VE UZMAN SİSTEMLER DERS#6: GENETİK ALGORİTMALAR
YZM 5257 YAPAY ZEKA VE UZMAN SİSTEMLER DERS#6: GENETİK ALGORİTMALAR Sınıflandırma Yöntemleri: Karar Ağaçları (Decision Trees) Örnek Tabanlı Yöntemler (Instance Based Methods): k en yakın komşu (k nearest
Fonksiyon Optimizasyonunda Genetik Algoritmalar
01-12-06 Ümit Akıncı Fonksiyon Optimizasyonunda Genetik Algoritmalar 1 Fonksiyon Optimizasyonu Fonksiyon optimizasyonu fizikte karşımıza sık çıkan bir problemdir. Örneğin incelenen sistemin kararlı durumu
GENETİK ALGORİTMALAR. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ
GENETİK ALGORİTMALAR Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ GENETİK ALGORİTMALAR Genetik algoritmalar, Darwin in doğal seçim ve evrim teorisi ilkelerine dayanan bir arama ve optimizasyon yöntemidir.
Zeki Optimizasyon Teknikleri
Zeki Optimizasyon Teknikleri Genetik Algoritma (Genetic Algorithm) Doç.Dr. M. Ali Akcayol Genetik Algoritma 1970 li yıllarda John Holland tarafından geliştirilmiştir. 1989 yılında David E. Goldberg Genetik
GENETİK ALGORİTMALAR BÜŞRA GÜRACAR
GENETİK ALGORİTMALAR BÜŞRA GÜRACAR 201420404036 İÇERİK Genetik Algoritmanın, Amacı Kullanım Alanları Kavramları Uygulama Adımları Parametreler Genetik Algoritma Kodlama Türleri Genetik Algoritma Genetik
Genetik Algoritmalar. Bölüm 1. Optimizasyon. Yrd. Doç. Dr. Adem Tuncer E-posta:
Genetik Algoritmalar Bölüm 1 Optimizasyon Yrd. Doç. Dr. Adem Tuncer E-posta: [email protected] Optimizasyon? Optimizasyon Nedir? Eldeki kısıtlı kaynakları en iyi biçimde kullanmak olarak tanımlanabilir.
Makine Öğrenmesi 2. hafta
Makine Öğrenmesi 2. hafta Uzaklığa dayalı gruplandırma K-means kümeleme K-NN sınıflayıcı 1 Uzaklığa dayalı gruplandırma Makine öğrenmesinde amaç birbirine en çok benzeyen veri noktalarını aynı grup içerisinde
METASEZGİSEL YÖNTEMLER. Genetik Algoritmalar
METASEZGİSEL YÖNTEMLER Genetik Algoritmalar 1970 li yıllarda John Holland tarafından geliştirilmiştir. 1989 yılında David E. Goldberg Genetik Genetik Algoritma Algoritma Uygulamaları üzerine klasik eser
GENETİK ALGORİTMA ÖZNUR CENGİZ HİLAL KOCA
GENETİK ALGORİTMA ÖZNUR CENGİZ 201410306014 HİLAL KOCA 150306024 GENETİK ALGORİTMA Genetik Algoritma yaklaşımının ortaya çıkışı 1970 lerin başında olmuştur. 1975 te John Holland ın makine öğrenmesi üzerine
YZM 3217 YAPAY ZEKA DERS#10: KÜMELEME
YZM 317 YAPAY ZEKA DERS#10: KÜMELEME Sınıflandırma (Classification) Eğiticili (supervised) sınıflandırma: Sınıflandırma: Sınıf sayısı ve bir grup örneğin hangi sınıfa ait olduğunu bilinir Eğiticisiz (unsupervised)
Genetik Algoritmalar (GA) Genetik Algoritmalar Đçerik Nesin Matematik Köyü E rim Ç lı l ş ı ta t yı Nisan, 2012 Mustafa Suphi Erden
Genetik Algoritmalar Nesin Matematik Köyü Evrim Çalıştayı 20-23 Nisan, 202 Genetik Algoritmalar (GA Đçerik Biyolojiden esinlenme GA nın özellikleri GA nın unsurları uygulama Algoritma Şema teoremi Mustafa
Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım. Mehmet Ali Aytekin Tahir Emre Kalaycı
Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım Mehmet Ali Aytekin Tahir Emre Kalaycı Gündem Gezgin Satıcı Problemi GSP'yi Çözen Algoritmalar Genetik Algoritmalar
Serdar BİROĞUL YÜKSEK LİSANS TEZİ (ELEKTRİK EĞİTİMİ) GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ ANKARA
i GENETİK ALGORİTMA YAKLAŞIMIYLA ATÖLYE ÇİZELGELEME Serdar BİROĞUL YÜKSEK LİSANS TEZİ (ELEKTRİK EĞİTİMİ) GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ OCAK 2005 ANKARA ii Serdar BİROĞUL tarafından hazırlanan
GENETĠK ALGORĠTMALAR ĠLE HAFTALIK DERS PROGRAMININ HAZIRLANMASI
ÖZEL EGE LĠSESĠ GENETĠK ALGORĠTMALAR ĠLE HAFTALIK DERS PROGRAMININ HAZIRLANMASI HAZIRLAYAN ÖĞRENCĠLER: Berkin ĠNAN Doğa YÜKSEL DANIġMAN ÖĞRETMEN: Aslı ÇAKIR ĠZMĠR 2014 ĠÇĠNDEKĠLER 1. PROJENĠN AMACI. 3
Makine Öğrenmesi 3. hafta
Makine Öğrenmesi 3. hafta Entropi Karar Ağaçları (Desicion Trees) ID3 C4.5 Sınıflandırma ve Regresyon Ağaçları (CART) Karar Ağacı Nedir? Temel fikir, giriş verisinin bir kümeleme algoritması yardımıyla
VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN
VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN [email protected] İçerik Sınıflandırma yöntemleri Karar ağaçları ile sınıflandırma Entropi Kavramı ID3 Algoritması C4.5
GENETİK ALGORİTMALARA GİRİŞ (II) BİNARİ KODLANMIŞ GA
GENETİK ALGORİTMALARA GİRİŞ (II) BİNARİ KODLANMIŞ GA Nedim TUTKUN Düzce Üniversitesi Elektrik Elektronik Mühendisliği Bölümü [email protected] Düzce Üniversitesi Elektrik&Elektronik Mühendisliği
Web Madenciliği (Web Mining)
Web Madenciliği (Web Mining) Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Denetimsiz Öğrenmenin Temelleri Kümeleme Uzaklık Fonksiyonları Öklid Uzaklığı Manhattan
VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN
VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN [email protected] İçerik Kümeleme İşlemleri Kümeleme Tanımı Kümeleme Uygulamaları Kümeleme Yöntemleri Kümeleme (Clustering) Kümeleme birbirine
ALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama
Uzaktan Algılama Uygulamaları
Aksaray Üniversitesi Uzaktan Algılama Uygulamaları Doç.Dr. Semih EKERCİN Harita Mühendisliği Bölümü [email protected] 2010-2011 Bahar Yarıyılı Uzaktan Algılama Uygulamaları GÖRÜNTÜ İŞLEME TEKNİKLERİ
Web Madenciliği (Web Mining)
Web Madenciliği (Web Mining) Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Denetimli Öğrenmenin Temelleri Karar Ağaçları Entropi ID3 Algoritması C4.5 Algoritması Twoing
Zeki Optimizasyon Teknikleri
Zeki Optimizasyon Teknikleri Tabu Arama (Tabu Search) Doç.Dr. M. Ali Akcayol Tabu Arama 1986 yılında Glover tarafından geliştirilmiştir. Lokal minimum u elimine edebilir ve global minimum u bulur. Değerlendirme
İLERİ ALGORİTMA ANALİZİ GENETİK ALGORİTMA
İLERİ ALGORİTMA ANALİZİ 1. Giriş GENETİK ALGORİTMA Geniş çözüm uzaylarının klasik yöntemlerle taranması hesaplama zamanını artırmaktadır. Genetik algoritma ile kabul edilebilir doğrulukta kısa sürede bir
GENETİK ALGORİTMALARA GİRİŞ (V)
GENETİK ALGORİTMALARA GİRİŞ (V) Nedim TUTKUN Düzce Üniversitesi Elektrik Elektronik Mühendisliği Bölümü [email protected] Düzce Üniversitesi Elektrik&Elektronik Mühendisliği Bölümü Konuralp 81620
Büyük Veri İçin İstatistiksel Öğrenme (Statistical Learning for Big Data)
Büyük Veri İçin İstatistiksel Öğrenme (Statistical Learning for Big Data) M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Bu dersin sunumları, The Elements of Statistical Learning: Data
GENETİK ALGORİTMALARA GİRİŞ (II) BİNARİ KODLANMIŞ GA
GENETİK ALGORİTMALARA GİRİŞ (II) BİNARİ KODLANMIŞ GA Nedim TUTKUN Düzce Üniversitesi Elektrik Elektronik Mühendisliği Bölümü [email protected] Düzce Üniversitesi Elektrik&Elektronik Mühendisliği
(AYIRIM) DENLİ. Emre KUZUGÜDENL. Doç.Dr.Serdar CARUS
DİSKRİMİNANT ANALİZİ (AYIRIM) Emre KUZUGÜDENL DENLİ Doç.Dr.Serdar CARUS Bu analiz ile; Bir bireyin hangi gruptan geldiği (p değişkeni kullanarak, bireyi uygun bir gruba atar ) Her bir değişkenin atama
OPTİMİZASYON TEKNİKLERİ. Kısıtsız Optimizasyon
OPTİMİZASYON TEKNİKLERİ Kısıtsız Optimizasyon Giriş Klasik optimizasyon yöntemleri minimum veya maksimum değerlerini bulmak için türev gerektiren ve gerektirmeyen teknikler olarak bilinirler. Bu yöntemler
YAPAY SİNİR AĞLARI. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ
YAPAY SİNİR AĞLARI Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ İÇERİK Sinir Hücreleri Yapay Sinir Ağları Yapısı Elemanları Çalışması Modelleri Yapılarına Göre Öğrenme Algoritmalarına Göre Avantaj ve
GENETİK ALGORİTMALARA GİRİŞ (III)
GENETİK ALGORİTMALARA GİRİŞ (III) Nedim TUTKUN Düzce Üniversitesi Elektrik Elektronik Mühendisliği Bölümü [email protected] Düzce Üniversitesi Elektrik&Elektronik Mühendisliği Bölümü Konuralp 81620
Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu
Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu Öğr. Gör. M. Ozan AKI r1.0 Algoritmalar (Algorithms) Algoritma, bir problemin çözümünü sağlayan ancak deneme-yanılma ve sezgisel çözüme karşıt bir
İstatistik ve Olasılık
İstatistik ve Olasılık Rastgele Değişkenlerin Dağılımları I Prof. Dr. İrfan KAYMAZ Ders konusu Bu derste; Rastgele değişkenlerin tanımı ve sınıflandırılması Olasılık kütle fonksiyonu Olasılık yoğunluk
Google Maps ve Genetik Algoritmalarla GSP Çözümü İçin Öneri
Google Maps ve Genetik Algoritmalarla GSP Çözümü İçin Öneri Onur KARASOY 1, Serkan BALLI 2 1 Muğla Sıtkı Koçman Üniversitesi Bilgi İşlem Dairesi Başkanlığı 2 Muğla Sıtkı Koçman Üniversitesi Bilişim Sistemleri
SAYISAL ÇÖZÜMLEME. Sayısal Çözümleme
SAYISAL ÇÖZÜMLEME 1 SAYISAL ÇÖZÜMLEME 4. Hafta DENKLEM ÇÖZÜMLERİ 2 İÇİNDEKİLER Denklem Çözümleri Doğrusal Olmayan Denklem Çözümleri Grafik Yöntemleri Kapalı Yöntemler İkiye Bölme (Bisection) Yöntemi Adım
ELN1002 BİLGİSAYAR PROGRAMLAMA 2
ELN1002 BİLGİSAYAR PROGRAMLAMA 2 SIRALAMA ALGORİTMALARI Sunu Planı Büyük O Notasyonu Kabarcık Sıralama (Bubble Sort) Hızlı Sıralama (Quick Sort) Seçimli Sıralama (Selection Sort) Eklemeli Sıralama (Insertion
GridAE: Yapay Evrim Uygulamaları için Grid Tabanlı bir Altyapı
GridAE: Yapay Evrim Uygulamaları için Grid Tabanlı bir Altyapı Erol Şahin Bilgisayar Mühendisliği Bölümü, Orta Doğu Teknik Üniversitesi Ankara, Türkiye 2. ULUSAL GRİD ÇALIŞTAYI, 1-2 Mart 2007, TÜBİTAK,
3.2. DP Modellerinin Simpleks Yöntem ile Çözümü Primal Simpleks Yöntem
3.2. DP Modellerinin Simpleks Yöntem ile Çözümü 3.2.1. Primal Simpleks Yöntem Grafik çözüm yönteminde gördüğümüz gibi optimal çözüm noktası, her zaman uygun çözüm alanının bir köşe noktası ya da uç noktası
GENETİK ALGORİTMA İLE RÜZGAR TÜRBİNİ KANAT SAYISI SEÇİMİ
VI. Ulusal Temiz Enerji Sempozyumu UTES 2006 25 27 Mayıs 2006, Isparta Sf.756 764 GENETİK ALGORİTMA İLE RÜZGAR TÜRBİNİ KANAT SAYISI SEÇİMİ Nida Nurbay ve Ali Çınar Kocaeli Üniversitesi Tek. Eğt. Fak. Makine
Ders 4: Diziler (Arrays( Arrays) barisgokce.com
Ders 4: Diziler (Arrays( Arrays) Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Diziler Aynı tipteki bir veri gurubunun bir değişken içinde saklanmasıdır. Veriler Hafızada
Algoritma Analizi. Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan
Karmaşıklık Giriş 1 Algoritma Analizi Neden algoritmayı analiz ederiz? Algoritmanın performansını ölçmek için Farklı algoritmalarla karşılaştırmak için Daha iyisi mümkün mü? Olabileceklerin en iyisi mi?
VERİ MADENCİLİĞİ (Sınıflandırma Yöntemleri) Yrd.Doç.Dr. Kadriye ERGÜN [email protected]
VERİ MADENCİLİĞİ (Sınıflandırma Yöntemleri) Yrd.Doç.Dr. Kadriye ERGÜN [email protected] Genel İçerik Veri Madenciliğine Giriş Veri Madenciliğinin Adımları Veri Madenciliği Yöntemleri Sınıflandırma
K En Yakın Komşu Methodu (KNearest Neighborhood)
K En Yakın Komşu Methodu (KNearest Neighborhood) K-NN algoritması, Thomas. M. Cover ve Peter. E. Hart tarafından önerilen, örnek veri noktasının bulunduğu sınıfın ve en yakın komşunun, k değerine göre
Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği
Yrd. Doç. Dr. A. Burak İER Bilgisayar Mühendisliği Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar Temel Kavramlar Algoritma: Bir problemin çözümüne
AST416 Astronomide Sayısal Çözümleme - II. 6. Monte Carlo
AST416 Astronomide Sayısal Çözümleme - II 6. Monte Carlo Bu derste neler öğreneceksiniz? Monte Carlo Yöntemleri Markov Zinciri (Markov Chain) Rastgele Yürüyüş (Random Walk) Markov Chain Monte Carlo, MCMC
BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı
BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1 Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı Mart 2015 0 SORU 1) Bulanık Küme nedir? Bulanık Kümenin (fuzzy
2 ALGORİTMA VE AKIŞ DİYAGRAMLARI
İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ
AYRIK YAPILAR ARŞ. GÖR. SONGÜL KARAKUŞ- FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ, ELAZIĞ
AYRIK YAPILAR P r o f. D r. Ö m e r A k ı n v e Y r d. D o ç. D r. M u r a t Ö z b a y o ğ l u n u n Ç e v i r i E d i t ö r l ü ğ ü n ü ü s t l e n d i ğ i «A y r ı k M a t e m a t i k v e U y g u l a
Esnek Hesaplamaya Giriş
Esnek Hesaplamaya Giriş J E O L O J İ M Ü H E N D İ S L İ Ğ İ A. B. D. E S N E K H E S A P L A M A Y Ö N T E M L E R İ - I DOÇ. DR. ERSAN KABALCI Esnek Hesaplama Nedir? Esnek hesaplamanın temelinde yatan
TOPLAM KALİTE YÖNETİMİ
SAKARYA ÜNİVERSİTESİ TOPLAM KALİTE YÖNETİMİ Hafta 2 Yrd. Doç. Dr. Semra BORAN Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir. "Uzaktan Öğretim" tekniğine uygun olarak hazırlanan
28/04/2014 tarihli LYS-1 Matematik-Geometri Testi konu analizi SORU NO LYS 1 MATEMATİK TESTİ KAZANIM NO KAZANIMLAR 1 / 31
SORU NO LYS 1 MATEMATİK TESTİ A B KAZANIM NO KAZANIMLAR 1 1 / 31 11 32159 Rasyonel sayı kavramını açıklar. 2 12 32151 İki ya da daha çok doğal sayının en büyük ortak bölenini ve en küçük ortak katını bulur.
Fonksiyon Minimizasyonunda Simulated Annealing Yöntemi
07-04-006 Ümit Akıncı Fonksiyon Minimizasyonunda Simulated Annealing Yöntemi İçindekiler Fonksiyon Minimizasyonu Metropolis Algoritması. Algoritma.......................................... Bir boyutlu
Mekatronik Mühendisliği Uygulamalarında Yapay Zekâ. Ders 1- Yapay Zekâya Giriş. Erhan AKDOĞAN, Ph.D.
Mekatronik Mühendisliği Uygulamalarında Yapay Zekâ Ders 1- Yapay Zekâya Giriş Erhan AKDOĞAN, Ph.D. Yapay Zekâ nedir?! İnsanın düşünme ve karar verme yeteneğini bilgisayarlar aracılığı ile taklit etmeye
PARÇACIK SÜRÜ OPTİMİZASYONU BMÜ-579 METASEZGİSEL YÖNTEMLER YRD. DOÇ. DR. İLHAN AYDIN
PARÇACIK SÜRÜ OPTİMİZASYONU BMÜ-579 METASEZGİSEL YÖNTEMLER YRD. DOÇ. DR. İLHAN AYDIN 1995 yılında Dr.Eberhart ve Dr.Kennedy tarafından geliştirilmiş popülasyon temelli sezgisel bir optimizasyon tekniğidir.
2. (v+w+x+y+z) 8 ifadesinin açılımında kaç terim vardır? 3. log 5 0, 69897 olduğuna göre 50 10 sayısı kaç basamaklıdır?
Ayrık Hesaplama Yapıları A GRUBU 3.03.0 Numarası Adı Soyadı : CEVAP : ANAHTARI SINAV YÖNERGESİ İşaretlemelerinizde kurşun kalem kullanınız. Soru ve cevap kağıtlarına numaranızı ve isminizi mürekkepli kalem
DERS 2 : BULANIK KÜMELER
DERS 2 : BULNIK KÜMELER 2.1 Gİriş Klasik bir küme, kesin sınırlamalarla verilen bir kümedir. Örneğin, klasik bir küme aşağıdaki gibi belirtilebilir: = { x x > 6 }, Kapalı sınır noktası burada 6 dır.burada
T.C. KIRIKKALE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ YAPAY SİNİR AĞLARI. Doç.Dr. Necaattin BARIŞÇI FİNAL PROJESİ
T.C. KIRIKKALE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ YAPAY SİNİR AĞLARI Doç.Dr. Necaattin BARIŞÇI YAPAY SİNİR AĞLARI İLE KORONER ARTER HASTALIĞI RİSK Öğrenci : SİNEM ÖZDER Numarası : 118229001004
PERGEL YAYINLARI LYS 1 DENEME-6 KONU ANALİZİ SORU NO LYS 1 MATEMATİK TESTİ KAZANIM NO KAZANIMLAR
2013-2014 PERGEL YAYINLARI LYS 1 DENEME-6 KONU ANALİZİ SORU NO LYS 1 MATEMATİK TESTİ A B KAZANIM NO KAZANIMLAR 1 1 / 31 12 32173 Üslü İfadeler 2 13 42016 Rasyonel ifade kavramını örneklerle açıklar ve
ERCİYES ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTUSÜ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİMDALI. I. GENEL BİLGİLER Ders Adı
BİM618 Evrimsel Algoritmalar Öğretim Üyesi Prof. Dr. Derviş Karaboğa Görüşme Saatleri 8.00-17.00 E posta: [email protected] http://abis.erciyes.edu.tr/sorgu.aspx?sorgu=236 Erciyes Üniversitesi, Mühendislik
Zeki Optimizasyon Teknikleri
Zeki Optimizasyon Teknikleri (nt lgorithm) Doç.Dr. M. li kcayol 996 yılında Marco Dorigo tarafından ortaya atılmıştır. Temel olarak karıncaların yiyecek madde ile yuvaları arasındaki en kısa yolu bulmalarından
BIP116-H14-1 BTP104-H014-1
VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.
ALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ [email protected] YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi
Kümeler arası. Küme içi. uzaklıklar. maksimize edilir. minimize edilir
Kümeleme Analizi: Temel Kavramlar ve Algoritmalar Kümeleme Analizi Nedir? Her biri bir dizi öznitelik ile, veri noktalarının bir kümesi ve noktalar arasındaki benzerliği ölçen bir benzerlik ölçümü verilmiş
ALTIN ORAN ARAMA (GOLDEN SECTION SEARCH) METODU
ALTIN ORAN ARAMA (GOLDEN SECTION SEARCH) METODU Tek değişkenli bir f(x) fonksiyonunu ele alalım. [Bazı x ler için f (x) bulunamayabilir.] Aşağıdaki DOP modelini çözmek istediğimizi var sayalım. Max f(x)
Şekil 7.1 Bir tankta sıvı birikimi
6 7. DİFERENSİYEL DENKLEMLERİN SAYISAL ÇÖZÜMLERİ Diferensiyel denklemlerin sayısal integrasyonunda kullanılabilecek bir çok yöntem vardır. Tecrübeler dördüncü mertebe (Runge-Kutta) yönteminin hemen hemen
THE EFFECT OF PRODUCT NUMBER ON SOLVING THE JOP-SHOP SCHEDULING PROBLEM BY USING GENETIC ALGORITHM
GENETİK ALGORİTMA İLE ÇÖZÜMÜ GERÇEKLEŞTİRİLEN ATÖLYE ÇİZELGELEME PROBLEMİNDE ÜRÜN SAYISININ ETKİSİ Serdar BİROĞUL*, Uğur GÜVENÇ* (*) Gazi Üniversitesi Teknik Eğitim Fakültesi Elektrik Eğitimi Bölümü, Beşevler
BLM-431 YAPAY ZEKA. Ders-5 Bilgili Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA
BLM-431 YAPAY ZEKA Ders-5 Bilgili Arama Yöntemleri Yrd. Doç. Dr. Ümit ATİLA [email protected] http://web.karabuk.edu.tr/umitatilla/ Arama Grafları Eğer arama uzayı ağaç yapısından değil de graf
Gezgin Satıcı Probleminin Karınca Kolonisi ve Genetik Algoritmalarla Eniyilemesi ve Karşılaştırılması
Süleyman Demirel Üniversitesi Fen Bilimleri Enstitüsü Dergisi Suleyman Demirel University Journal of Natural andappliedscience 18(1), 8-13, 2014 Gezgin Satıcı Probleminin Karınca Kolonisi ve Genetik Algoritmalarla
PROGRAMLAMAYA GİRİŞ FONKSİYONLAR
PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya
İskambil Kağıtları. Bir İskambil kağıdı
Nesne Grupları ve Miras (Inheritance) Kavramı E.Fatih YETKİN İskambil Kağıtları Hatırlatma, bir iskambil destesinde 4 tipten olmak üzere 52 adet kağıt vardır: Maça Kupa Karo Sinek Deste Nesnesi: Bir İskambil
YÖNEYLEM ARAŞTIRMASI - III
YÖNEYLEM ARAŞTIRMASI - III Prof. Dr. Cemalettin KUBAT Yrd. Doç. Dr. Özer UYGUN İçerik Altın Oran (Golden Section Search) Arama Metodu Tek değişkenli bir f(x) fonksiyonunu ele alalım. [Bazı x ler için f
BLM-431 YAPAY ZEKA. Ders-4 Bilgisiz Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA
BLM-431 YAPAY ZEKA Ders-4 Bilgisiz Arama Yöntemleri Yrd. Doç. Dr. Ümit ATİLA [email protected] http://web.karabuk.edu.tr/umitatilla/ Dersin Hedefleri Aşağıda verilen arama stratejilerini anlamak
Alıştırma 1: Yineleme
Alıştırma 1: Yineleme Alıştırma 2: Yineleme H10->H2 çevrimini yapınız 7 2 1 3 2 1 1 1 2 0 Hafta 3: Yineleme Alıştırmaları(1) E1. (44/174) S değerini yineleme kullanarak hesap ediniz S = 1 + 2 + 3 + n Hafta3:
VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN
VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN [email protected] Genel İçerik Veri Madenciliğine Giriş Veri Madenciliğinin Adımları Veri Madenciliği Yöntemleri Sınıflandırma
Dr. Fatih AY Tel: 0 388 225 22 55 [email protected] www.fatihay.net
Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 [email protected] www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)
C Dersleri Bölüm 3 : Program akışı
İzmir Ekonomi Üniversitesi Bilgisayar Topluluğu www.ieubt.org C Dersleri Bölüm 3 : Program akışı Sorularınız için : [email protected] Hazırlayan : Görkem PAÇACI ([email protected]) C Program
Algoritmalar ve Karmaşıklık
Algoritmalar ve Karmaşıklık Ders 11 Algoritma Ayrık matematikte karşılaşılan bir çok problem sınıfı mevcuttur. Örneğin, verilen tamsayı grubu içindeki en büyük olanının bulunması, verilen bir kümenin bütün
Veri Yapıları Laboratuvarı
2013 2014 Veri Yapıları Laboratuvarı Ders Sorumlusu: Yrd. Doç. Dr. Hakan KUTUCU Lab. Sorumlusu: Arş. Gör. Caner ÖZCAN İÇİNDEKİLER Uygulama 1: Diziler ve İşaretçiler, Dinamik Bellek Ayırma... 4 1.1. Amaç
Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...
Array (Diziler) Array Aynı tipten çok sayıda değişken topluluğudur. Birden fazla aynı tipteki değerle işlem yapmayı kolaylaştırır. X Y Score1 Score2 40 56 Grade 40 56 80 (0) (1) (2)... (13) Array tanımlama:
KARINCA KOLONİ ALGORİTMASI BMÜ-579 Meta Sezgisel Yöntemler. Yrd. Doç. Dr. İlhan AYDIN Fırat Üniversitesi, Bilgisayar Mühendisliği Bölümü
KARINCA KOLONİ ALGORİTMASI BMÜ-579 Meta Sezgisel Yöntemler Yrd. Doç. Dr. İlhan AYDIN Fırat Üniversitesi, Bilgisayar Mühendisliği Bölümü Karınca Koloni Algoritması Bilim adamları, böcek davranışlarını inceleyerek
YZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ
YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ Algoritma Analizi Çerçevesi Algoritma Analizinde Göz Önünde Bulundurulması Gerekenler Neler? Algoritmanın Doğruluğu (Correctness) Zaman
Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi
Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip
EMM4131 Popülasyon Temelli Algoritmalar (Population-based Algorithms) Genetik Algoritma
2017-2018 Güz Yarıyılı Balıkesir Üniversitesi, Endüstri Mühendisliği Bölümü EMM4131 Popülasyon Temelli Algoritmalar (Population-based Algorithms) 3 Genetik Algoritma Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ Web:
BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok
8.0.0 Şebeke Kavramları BÖLÜM III: Şebeke Modelleri Şebeke (Network) Sonlu sayıdaki düğümler kümesiyle, bunlarla bağlantılı oklar (veya dallar) kümesinin oluşturduğu yapı şeklinde tanımlanabilir ve (N,A)
Geniş Bantlı Log-Periyodik Anten Dizgelerinin Genetik Algoritmalar Kullanılarak Tasarlanması
Geniş Bantlı Log-Periyodik Anten Dizgelerinin Genetik Algoritmalar Kullanılarak Tasarlanması Levent Gürel ve Özgür Ergül Elektrik ve Elektronik Mühendisliği Bölümü Bilkent Üniversitesi, Ankara [email protected]
Tabakalı Kompozit Bir Malzemenin Genetik Algoritma Yöntemiyle Rijitlik Optimizasyonu
th International Adanced Technologies Symposium (IATS ), -8 May 20, Elazığ, Turkey Tabakalı Kompozit Bir Malzemenin Genetik Algoritma Yöntemiyle Rijitlik Optimizasyonu Ö. Soykasap e K. B. Sugözü Afyon
Tanımlar, Geometrik ve Matemetiksel Temeller. Yrd. Doç. Dr. Saygın ABDİKAN Yrd. Doç. Dr. Aycan M. MARANGOZ. JDF329 Fotogrametri I Ders Notu
FOTOGRAMETRİ I Tanımlar, Geometrik ve Matemetiksel Temeller Yrd. Doç. Dr. Saygın ABDİKAN Yrd. Doç. Dr. Aycan M. MARANGOZ JDF329 Fotogrametri I Ders Notu 2015-2016 Öğretim Yılı Güz Dönemi İçerik Tanımlar
TÜRKİYE CUMHURİYETİ DEVLETİNİN temellerinin atıldığı Çanakkale zaferinin 100. yılı kutlu olsun.
Doç.Dr.Mehmet MISIR-2013 TÜRKİYE CUMHURİYETİ DEVLETİNİN temellerinin atıldığı Çanakkale zaferinin 100. yılı kutlu olsun. Son yıllarda teknolojinin gelişmesi ile birlikte; geniş alanlarda, kısa zaman aralıklarında
KİNETİK MODEL PARAMETRELERİNİN BELİRLENMESİNDE KULLANILAN OPTİMİZASYON TEKNİKLERİNİN KIYASLANMASI
KİNETİK MODEL PARAMETRELERİNİN BELİRLENMESİNDE KULLANILAN OPTİMİZASYON TEKNİKLERİNİN KIYASLANMASI Hatice YANIKOĞLU a, Ezgi ÖZKARA a, Mehmet YÜCEER a* İnönü Üniversitesi Mühendislik Fakültesi Kimya Mühendisliği
10. SINIF KONU ANLATIMI 6 MAYOZ BÖLÜNME-3
10. SINIF KONU ANLATIMI 6 MAYOZ BÖLÜNME-3 Mayoz Bölünmenin Genel Özellikleri Üreme ana hücrelerinde görülür. Üreme hücrelerinin oluşmasını sağlar. Sadece 2n kromozomlu hücrelerde görülür. 4 yeni hücre
ISSN: El-Cezerî Fen ve Mühendislik Dergisi Cilt: 3, No: 2, 2016 ( )
www.tubiad.org ISSN:2148-3736 El-Cezerî Fen ve Mühendislik Dergisi Cilt: 3, No: 2, 2016 (315-323) El-Cezerî Journal of Science and Engineering Vol: 3, No: 2, 2016 (315-323) ECJSE Makale / Research Paper
Fatih University- Faculty of Engineering- Electric and Electronic Dept.
Dijital Devre Tasarımı EEE122 A Ref. Morris MANO & Michael D. CILETTI DIGITAL DESIGN 4 th edition Fatih University- Faculty of Engineering- Electric and Electronic Dept. Chapter 3 Boole Fonksiyon Sadeleştirmesi
BİYOİSTATİSTİK Örnekleme ve Örnekleme Yöntemleri Yrd. Doç. Dr. Aslı SUNER KARAKÜLAH
BİYOİSTATİSTİK Örnekleme ve Örnekleme Yöntemleri Yrd. Doç. Dr. Aslı SUNER KARAKÜLAH Ege Üniversitesi, Tıp Fakültesi, Biyoistatistik ve Tıbbi Bilişim AD. Web: www.biyoistatistik.med.ege.edu.tr 1 Araştırmalarda
Türev Uygulamaları ÜNİTE. Amaçlar. İçindekiler. Yazar Prof.Dr. Vakıf CAFEROV
Türev Uygulamaları Yazar Prof.Dr. Vakıf CAFEROV ÜNİTE 10 Amaçlar Bu üniteyi çalıştıktan sonra; türev kavramı yardımı ile fonksiyonun monotonluğunu, ekstremum noktalarını, konvekslik ve konkavlığını, büküm
Özyineleme (Recursion)
C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,
ERCİYES ÜNİVERSİTESİ KİMYA ANABİLİM DALI
İlaç Tasarımında Yeni Yazılımların Geliştirilmesi: Elektron Konformasyonel-Genetik Algoritma Metodu ile Triaminotriazin Bileşiklerinde Farmakofor Belirlenmesi ve Nicel Biyoaktivite Hesabı; ERCİYES ÜNİVERSİTESİ
İleri Diferansiyel Denklemler
MIT AçıkDersSistemi http://ocw.mit.edu 18.034 İleri Diferansiyel Denklemler 2009 Bahar Bu bilgilere atıfta bulunmak veya kullanım koşulları hakkında bilgi için http://ocw.mit.edu/terms web sitesini ziyaret
BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI
BİR BOYUTLU DİZİLER Amaçlar: 1. 1 BOYUTLU DİZİLERİ TANIMLAMAK 2. 1 BOYUTLU DİZİ UYGULAMALARI YAPMAK Örnek 5-1 Aşağıdaki program öğrenci notlarını bularak en iyi notu hesaplar. Harf notu şu şekilde hesaplanır:
Zeki Optimizasyon Teknikleri
Zeki Optimizasyon Teknikleri Ara sınav - 25% Ödev (Haftalık) - 10% Ödev Sunumu (Haftalık) - 5% Final (Proje Sunumu) - 60% - Dönem sonuna kadar bir optimizasyon tekniğiyle uygulama geliştirilecek (Örn:
