Пример #1
0
        private void btnAlgoritam_Click(object sender, EventArgs e)
        {
            GenetskiAlgoritam ga = new GenetskiAlgoritam();
            double            rX = ga.algoritam();
            double            rY = GenetskiAlgoritam.funkcija(rX);

            label4.Text = "Resenje: f(" + rX.ToString("#0.000") + ")=" + rY.ToString("#0.000");
        }
Пример #2
0
        private void btnPopulacija_Click(object sender, EventArgs e)
        {
            int brojVrsta = 10;

            Jedinka[] populacija = new Jedinka[brojVrsta];
            try
            {
                double maxX = Convert.ToDouble(tbMaxX.Text);
                double minX = Convert.ToDouble(tbMinX.Text);
                Random rnd  = new Random();
                for (int i = 0; i < brojVrsta; i++)
                {
                    double x = minX + (maxX - minX) * rnd.NextDouble();
                    populacija[i]       = new Jedinka(x, minX, maxX);
                    populacija[i].ocena = GenetskiAlgoritam.funkcija(x);
                }
                // odrediti ocenuP
                double minOcena = populacija[0].ocena;
                double maxOcena = populacija[0].ocena;
                for (int i = 0; i < brojVrsta; i++)
                {
                    minOcena = Math.Min(minOcena, populacija[i].ocena);
                    maxOcena = Math.Max(maxOcena, populacija[i].ocena);
                }
                // skaliranje minOcena = 0 maxOcena = 100
                double a      = 100 / (maxOcena - minOcena);
                double b      = -a * minOcena;
                double ukupno = 0;
                for (int i = 0; i < brojVrsta; i++)
                {
                    double ocenaP = (float)(a * populacija[i].ocena + b);
                    ukupno += ocenaP;
                    populacija[i].ocenaP = ocenaP / 100.0;
                    //Debug.WriteLine("Za X : " + populacija[i].x + ", ocena je : " + populacija[i].ocena + " i ocenaP je " + populacija[i].ocenaP);
                }

                populacijaPanel1.populacija = populacija;
                populacijaPanel1.Refresh();
            }
            catch (Exception ex)
            {
                statusBar.Text = "Greška!";
            }
        }
Пример #3
0
        public PopulacijaPanel()
        {
            InitializeComponent();
            int brojVrsta = 10;

            populacija = new Jedinka[brojVrsta];
            Random rnd  = new Random();
            double minX = 0;
            double maxX = 100;

            for (int i = 0; i < brojVrsta; i++)
            {
                double x = minX + (maxX - minX) * rnd.NextDouble();
                populacija[i]       = new Jedinka(x, minX, maxX);
                populacija[i].ocena = GenetskiAlgoritam.funkcija(x);
            }
            // odrediti ocenuP
            double minOcena = populacija[0].ocena;
            double maxOcena = populacija[0].ocena;

            for (int i = 0; i < brojVrsta; i++)
            {
                minOcena = Math.Min(minOcena, populacija[i].ocena);
                maxOcena = Math.Max(maxOcena, populacija[i].ocena);
            }
            // skaliranje minOcena = 0 maxOcena = 100
            double a      = 100 / (maxOcena - minOcena);
            double b      = -a * minOcena;
            double ukupno = 0;

            for (int i = 0; i < brojVrsta; i++)
            {
                double ocenaP = (float)(a * populacija[i].ocena + b);
                populacija[i].ocenaP = ocenaP / 100.0;
                ukupno += populacija[i].ocenaP;
            }
            // procentualno
            //for (int i = 0; i < brojVrsta; i++)
            //{
            //    double ocenaP = populacija[i].ocenaP / ukupno ;
            //    populacija[i].ocenaP = ocenaP;
            //}
        }
Пример #4
0
        private void btnAlgoritam_Click(object sender, EventArgs e)
        {
            GenetskiAlgoritam ga = new GenetskiAlgoritam();

            GenetskiAlgoritam.traziMAX = true;
            double rX = ga.algoritam();
            //TODO 17:Promeniti ispis
            double rX2 = ga.resenjeX2;
            double rY  = GenetskiAlgoritam.funkcija(rX, rX2);

            if (GenetskiAlgoritam.traziMAX == true)
            {
                label4.Text = "Resenje: f(" + rX.ToString("#0.000") + "," + rX2.ToString("#0.000") + ")=" + rY.ToString("#0.000");
            }
            else
            {
                label4.Text = "Resenje: f(" + rX.ToString("#0.000") + "," + rX2.ToString("#0.000") + ")=" + (-rY).ToString("#0.000");
            }
        }