Exemplo n.º 1
0
        public void aramaModu(Kedi kedicik)
        {
            Kedi[] adaylar = new Kedi[AHH];

            for (int i = 0; i < adaylar.Length; i++)
            {
                //adaylar[i] = (Kedi) kedicik.Clone();
                adaylar[i]          = new Kedi(boyutSayisi, parametreAraliklari, goruntuIslemleri);
                adaylar[i].Konum[0] = kedicik.Konum[0];
                adaylar[i].Konum[1] = kedicik.Konum[1];
                adaylar[i].Konum[2] = kedicik.Konum[2];

                adaylar[i].Uygunluk = kedicik.Uygunluk;
            }
            double[,] olasiKonumlar = new double[AHH, boyutSayisi];

            Kedi enIyi = new Kedi(boyutSayisi, parametreAraliklari, goruntuIslemleri);

            //Kedi enIyi = (Kedi)kedicik.Clone();
            enIyi.Konum[0] = adaylar[0].Konum[0];
            enIyi.Konum[1] = adaylar[0].Konum[1];
            enIyi.Konum[2] = adaylar[0].Konum[2];

            enIyi.Uygunluk = adaylar[0].Uygunluk;

            // Olası konumları üret.
            for (int i = 0; i < AHH; i++)
            {
                for (int j = 0; j < boyutSayisi; j++)
                {
                    olasiKonumlar[i, j] = rastgeleSayi(SBA[j, 0], SBA[j, 1]);
                    //Olası konumları yeni üretilen kedilere ata.
                    adaylar[i].Konum[j] += olasiKonumlar[i, j];
                }

                adaylar[i].Konum    = konumlariNormalizeEt(adaylar[i].Konum);
                adaylar[i].Uygunluk = goruntuIslemleri.ParametreleriDegerlendir(adaylar[i].Konum[0], adaylar[i].Konum[1], adaylar[i].Konum[2]);
                //secilmeIhtimaliHesapla(adaylar[i]);

                if (enIyi.Uygunluk < adaylar[i].Uygunluk)
                {
                    enIyi.Konum    = adaylar[i].getKonum();
                    enIyi.Uygunluk = adaylar[i].getUygunluk();
                }
            }
            kedicik.Konum    = enIyi.getKonum();
            kedicik.Uygunluk = enIyi.getUygunluk();
        }