MATEMATİK MÜHENDİSLİĞİ BÖLÜMÜ

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "MATEMATİK MÜHENDİSLİĞİ BÖLÜMÜ"

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 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

Detaylı

Fonksiyon Optimizasyonunda Genetik Algoritmalar

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

Detaylı

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 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.

Detaylı

Zeki Optimizasyon Teknikleri

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

Detaylı

GENETİK ALGORİTMALAR BÜŞRA GÜRACAR

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

Detaylı

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: Genetik Algoritmalar Bölüm 1 Optimizasyon Yrd. Doç. Dr. Adem Tuncer E-posta: adem.tuncer@yalova.edu.tr Optimizasyon? Optimizasyon Nedir? Eldeki kısıtlı kaynakları en iyi biçimde kullanmak olarak tanımlanabilir.

Detaylı

Makine Öğrenmesi 2. hafta

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

Detaylı

METASEZGİSEL YÖNTEMLER. Genetik Algoritmalar

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

Detaylı

GENETİK ALGORİTMA ÖZNUR CENGİZ HİLAL KOCA

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

Detaylı

YZM 3217 YAPAY ZEKA DERS#10: KÜMELEME

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)

Detaylı

Genetik Algoritmalar (GA) Genetik Algoritmalar Đçerik Nesin Matematik Köyü E rim Ç lı l ş ı ta t yı Nisan, 2012 Mustafa Suphi Erden

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

Detaylı

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ı 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

Detaylı

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

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

Detaylı

GENETĠK ALGORĠTMALAR ĠLE HAFTALIK DERS PROGRAMININ HAZIRLANMASI

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

Detaylı

Makine Öğrenmesi 3. hafta

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

Detaylı

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 VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN kergun@balikesir.edu.tr İçerik Sınıflandırma yöntemleri Karar ağaçları ile sınıflandırma Entropi Kavramı ID3 Algoritması C4.5

Detaylı

GENETİK ALGORİTMALARA GİRİŞ (II) BİNARİ KODLANMIŞ GA

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ü nedimtutkun@duzce.edu.tr Düzce Üniversitesi Elektrik&Elektronik Mühendisliği

Detaylı

Web Madenciliği (Web Mining)

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

Detaylı

VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN

VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN kergun@balikesir.edu.tr İçerik Kümeleme İşlemleri Kümeleme Tanımı Kümeleme Uygulamaları Kümeleme Yöntemleri Kümeleme (Clustering) Kümeleme birbirine

Detaylı

ALGORİTMA VE PROGRAMLAMA I

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

Detaylı

Uzaktan Algılama Uygulamaları

Uzaktan Algılama Uygulamaları Aksaray Üniversitesi Uzaktan Algılama Uygulamaları Doç.Dr. Semih EKERCİN Harita Mühendisliği Bölümü sekercin@aksaray.edu.tr 2010-2011 Bahar Yarıyılı Uzaktan Algılama Uygulamaları GÖRÜNTÜ İŞLEME TEKNİKLERİ

Detaylı

Web Madenciliği (Web Mining)

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

Detaylı

Zeki Optimizasyon Teknikleri

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

Detaylı

İLERİ ALGORİTMA ANALİZİ GENETİK ALGORİTMA

İ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

Detaylı

GENETİK ALGORİTMALARA GİRİŞ (V)

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ü nedimtutkun@duzce.edu.tr Düzce Üniversitesi Elektrik&Elektronik Mühendisliği Bölümü Konuralp 81620

Detaylı

Büyük Veri İçin İstatistiksel Öğrenme (Statistical Learning for Big Data)

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

Detaylı

GENETİK ALGORİTMALARA GİRİŞ (II) BİNARİ KODLANMIŞ GA

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ü nedimtutkun@duzce.edu.tr Düzce Üniversitesi Elektrik&Elektronik Mühendisliği

Detaylı

(AYIRIM) DENLİ. Emre KUZUGÜDENL. Doç.Dr.Serdar CARUS

(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

Detaylı

OPTİMİZASYON TEKNİKLERİ. Kısıtsız Optimizasyon

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

Detaylı

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İ 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

Detaylı

GENETİK ALGORİTMALARA GİRİŞ (III)

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ü nedimtutkun@duzce.edu.tr Düzce Üniversitesi Elektrik&Elektronik Mühendisliği Bölümü Konuralp 81620

Detaylı

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu

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

Detaylı

İstatistik ve Olasılık

İ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

Detaylı

Google Maps ve Genetik Algoritmalarla GSP Çözümü İçin Öneri

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

Detaylı

SAYISAL ÇÖZÜMLEME. Sayısal Çözümleme

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

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

Detaylı

GridAE: Yapay Evrim Uygulamaları için Grid Tabanlı bir Altyapı

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,

Detaylı

3.2. DP Modellerinin Simpleks Yöntem ile Çözümü Primal Simpleks Yöntem

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ı

Detaylı

GENETİK ALGORİTMA İLE RÜZGAR TÜRBİNİ KANAT SAYISI SEÇİMİ

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

Detaylı

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

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

Detaylı

Algoritma Analizi. Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan

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?

Detaylı

VERİ MADENCİLİĞİ (Sınıflandırma Yöntemleri) Yrd.Doç.Dr. Kadriye ERGÜN kergun@balikesir.edu.tr

VERİ MADENCİLİĞİ (Sınıflandırma Yöntemleri) Yrd.Doç.Dr. Kadriye ERGÜN kergun@balikesir.edu.tr VERİ MADENCİLİĞİ (Sınıflandırma Yöntemleri) Yrd.Doç.Dr. Kadriye ERGÜN kergun@balikesir.edu.tr Genel İçerik Veri Madenciliğine Giriş Veri Madenciliğinin Adımları Veri Madenciliği Yöntemleri Sınıflandırma

Detaylı

K En Yakın Komşu Methodu (KNearest Neighborhood)

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

Detaylı

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

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

Detaylı

AST416 Astronomide Sayısal Çözümleme - II. 6. Monte Carlo

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

Detaylı

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ı 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

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

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Ş

Detaylı

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 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

Detaylı

Esnek Hesaplamaya Giriş

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

Detaylı

TOPLAM KALİTE YÖNETİMİ

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

Detaylı

28/04/2014 tarihli LYS-1 Matematik-Geometri Testi konu analizi SORU NO LYS 1 MATEMATİK TESTİ KAZANIM NO KAZANIMLAR 1 / 31

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.

Detaylı

Fonksiyon Minimizasyonunda Simulated Annealing Yöntemi

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

Detaylı

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. 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

Detaylı

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 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.

Detaylı

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?

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

Detaylı

DERS 2 : BULANIK KÜMELER

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

Detaylı

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 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

Detaylı

PERGEL YAYINLARI LYS 1 DENEME-6 KONU ANALİZİ SORU NO LYS 1 MATEMATİK TESTİ KAZANIM NO KAZANIMLAR

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

Detaylı

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ı

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: karaboga@erciyes.edu.tr http://abis.erciyes.edu.tr/sorgu.aspx?sorgu=236 Erciyes Üniversitesi, Mühendislik

Detaylı

Zeki Optimizasyon Teknikleri

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

Detaylı

BIP116-H14-1 BTP104-H014-1

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.

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi

Detaylı

Kümeler arası. Küme içi. uzaklıklar. maksimize edilir. minimize edilir

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ş

Detaylı

ALTIN ORAN ARAMA (GOLDEN SECTION SEARCH) METODU

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)

Detaylı

Şekil 7.1 Bir tankta sıvı birikimi

Ş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

Detaylı

THE EFFECT OF PRODUCT NUMBER ON SOLVING THE JOP-SHOP SCHEDULING PROBLEM BY USING GENETIC ALGORITHM

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

Detaylı

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 BLM-431 YAPAY ZEKA Ders-5 Bilgili Arama Yöntemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Arama Grafları Eğer arama uzayı ağaç yapısından değil de graf

Detaylı

Gezgin Satıcı Probleminin Karınca Kolonisi ve Genetik Algoritmalarla Eniyilemesi ve Karşılaştırılması

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

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

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

Detaylı

İskambil Kağıtları. Bir İskambil kağıdı

İ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

Detaylı

YÖNEYLEM ARAŞTIRMASI - III

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

Detaylı

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 BLM-431 YAPAY ZEKA Ders-4 Bilgisiz Arama Yöntemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dersin Hedefleri Aşağıda verilen arama stratejilerini anlamak

Detaylı

Alıştırma 1: Yineleme

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:

Detaylı

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 VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN kergun@balikesir.edu.tr Genel İçerik Veri Madenciliğine Giriş Veri Madenciliğinin Adımları Veri Madenciliği Yöntemleri Sınıflandırma

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

C Dersleri Bölüm 3 : Program akışı

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 : programlama@ieubt.org Hazırlayan : Görkem PAÇACI (gorkem.pacaci@std.ieu.edu.tr) C Program

Detaylı

Algoritmalar ve Karmaşıklık

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

Detaylı

Veri Yapıları Laboratuvarı

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ç

Detaylı

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

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:

Detaylı

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ü 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

Detaylı

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ

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

Detaylı

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ı. 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

Detaylı

EMM4131 Popülasyon Temelli Algoritmalar (Population-based Algorithms) Genetik Algoritma

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:

Detaylı

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

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)

Detaylı

Geniş Bantlı Log-Periyodik Anten Dizgelerinin Genetik Algoritmalar Kullanılarak Tasarlanması

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 lgurel@bilkent.edu.tr

Detaylı

Tabakalı Kompozit Bir Malzemenin Genetik Algoritma Yöntemiyle Rijitlik Optimizasyonu

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

Detaylı

Tanımlar, Geometrik ve Matemetiksel Temeller. Yrd. Doç. Dr. Saygın ABDİKAN Yrd. Doç. Dr. Aycan M. MARANGOZ. JDF329 Fotogrametri I Ders Notu

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

Detaylı

TÜRKİYE CUMHURİYETİ DEVLETİNİN temellerinin atıldığı Çanakkale zaferinin 100. yılı kutlu olsun.

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

Detaylı

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 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

Detaylı

10. SINIF KONU ANLATIMI 6 MAYOZ BÖLÜNME-3

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

Detaylı

ISSN: El-Cezerî Fen ve Mühendislik Dergisi Cilt: 3, No: 2, 2016 ( )

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

Detaylı

Fatih University- Faculty of Engineering- Electric and Electronic Dept.

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

Detaylı

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 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

Detaylı

Türev Uygulamaları ÜNİTE. Amaçlar. İçindekiler. Yazar Prof.Dr. Vakıf CAFEROV

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

Detaylı

Özyineleme (Recursion)

Ö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,

Detaylı

KediCAD DE FEA UYGULAMASI

KediCAD DE FEA UYGULAMASI KediCAD DE FEA UYGULAMASI FEA (SONLU ELMAN ANALİZİ) ÖZET KediCAD 2 boyutlu sonlu eleman analizi yapmaktadır. Çizim alanına çizilen kapalı bir çizim için gereken kalınlık, malzeme, analiz yöntemi vb. Bilgileri

Detaylı

ERCİYES ÜNİVERSİTESİ KİMYA ANABİLİM DALI

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İ

Detaylı

İleri Diferansiyel Denklemler

İ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

Detaylı

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

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:

Detaylı

Zeki Optimizasyon Teknikleri

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:

Detaylı