Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
            }
        }