private void button5_Click(object sender, EventArgs e) { return; DateTime t = DateTime.Now; string mesaj = "Atama Başl " + t.ToString(); listBox1.Items.Add(mesaj); Populasyon populasyon = new Populasyon(100, IlkAtamaYontem.bestfitteam); t = DateTime.Now; mesaj = "Atama Bitş " + t.ToString(); listBox1.Items.Add(mesaj); t = DateTime.Now; mesaj = "Fitness Başl " + t.ToString(); listBox1.Items.Add(mesaj); populasyon.FitnessHesapla(); int sayac = 0; long toplam = 0; foreach (Kromozom mykrom in populasyon.kromozomListesi) { sayac++; mesaj = "Krom: " + sayac.ToString() + " Id:" + mykrom.kromozomId.ToString() + "-->" + mykrom.fitness.ToString(); listBox1.Items.Add(mesaj); toplam += mykrom.fitness; } t = DateTime.Now; mesaj = "Fitness Bitş " + t.ToString(); listBox1.Items.Add(mesaj); }
private void button6_Click(object sender, EventArgs e) { Populasyon populasyon = new Populasyon(100, IlkAtamaYontem.bestfitperiod); populasyon.FitnessHesapla(); //Kromozom k1 = populasyon.kromozomListesi[0]; //Kromozom k2 = populasyon.kromozomListesi[1]; //populasyon.Caprazla(k1,k2); //for (int i=0;i<40;i++) //{ // Kromozom k1=null; // Kromozom k2=null; // populasyon.KromozomSec(ref k1,ref k2); // populasyon.CaprazlaveEkle(k1,k2); //} populasyon.Caprazla2Grup(80); }
public void Calistir(ListBox mylistbox) { /* * ilk atalamar yapıldı işlem adımları aşağıdaki gibi olacak * 1- Fitness hesapla * 2- En iyi fitness değerini Iyikromozomlar listesine ekle * 3- Durma kriteri oluştuysa 7. adıma git * 4- Çaprazlama Yap (2 yöntem var) * 5- mutasyon yap * 6- 1. adıma git * 7- sonuçları yaz (dosya,ekran,database vs vs) * */ DateTime zaman1; DateTime zaman2; for (int i = 0; i < nesilSayisi; i++) { //çaprazlama işlemi, 2 türlü yapılıyor birisi rastgele, diğeri ise iyi olan bireylerin seçim şansının yüksek olduğu yöntem zaman1 = DateTime.Now; if (caprazlasecim == "Random") { populasyon.Caprazla2Grup(caprazlamaOrani);//Çaprazlanacak olan bireyleri random seçer } else { populasyon.Caprazla2Grup_Olasilikli(caprazlamaOrani);//Fittnes değeri daha iyi olanların seçim şansıda yüksek olur } zaman2 = DateTime.Now; TimeSpan fark = zaman2 - zaman1; string caprazlazaman = fark.Milliseconds.ToString(); zaman1 = DateTime.Now; populasyon.FitnessHesapla(); zaman2 = DateTime.Now; fark = zaman2 - zaman1; string fitzaman = fark.Milliseconds.ToString(); zaman1 = DateTime.Now; //populasyon.ElitizimUygula(elitizmEniyi); //iyi sonuç vermeyince kullanılmadı populasyon.ElitizimEniyi(); zaman2 = DateTime.Now; fark = zaman2 - zaman1; string elittzaman = fark.Milliseconds.ToString(); if (populasyon.kromozomListesi.Count == 0) { //List<string> yazdirstring = new List<string>(); //for (int j = 0; j < Islemler.atanamayanHastalarListesi.Count; j++) //{ // bool buldum = false; // for (int n = 0; n < yazdirstring.Count; n++) // { // buldum = false; // if (Islemler.atanamayanHastalarListesi[j] == yazdirstring[n]) // { // buldum = true; // break; // } // } // if (buldum == false) yazdirstring.Add(Islemler.atanamayanHastalarListesi[i]); //} //for (int n = 0; n < yazdirstring.Count; n++) // mylistbox.Items.Add(yazdirstring[n]); return; } IyiKromozomlar iyi = new IyiKromozomlar(i, populasyon.kromozomListesi[0]); string deger = ""; // deger += i.ToString() +" Krom ID:"+ populasyon.kromozomListesi[0].kromozomId.ToString(); //deger += String.Format("Iter:{0,3}",i); //deger += " Fitn:" + populasyon.kromozomListesi[0].fitness.ToString(); deger += String.Format("I:{0,3}", nesilanlik++); deger += " F:" + populasyon.kromozomListesi[0].fitness.ToString(); deger += " M:" + populasyon.kromozomListesi[0].toplamUzaklik.metre.ToString(); deger += " P:" + populasyon.kromozomListesi[0].toplamUzaklik.dakika.ToString(); // deger += " cz:" + caprazlazaman; // deger += " fz:"+fitzaman; // deger += " ez:" + elittzaman; mylistbox.Items.Insert(0, deger); mylistbox.Refresh(); IyiList.Add(iyi); } }