static void EstymPrint(int lp, Estym.ParametryGenetyczne p, double[] wyniki) { Console.Write(lp + ";" + p.l_osobnikow + ";" + p.l_pokolen + ";" + (p.skalowanie ? 1 : 0) + ";" + (p.elitaryzm ? 1 : 0) + ";" + p.p_krzyzowania + ";" + p.p_mutacji + ";"); foreach (int i in new int[] { 1, 6, 7, 8, 9 }) { Console.Write(wyniki[i] + ";"); } Console.Write(wyniki[0]); Console.WriteLine(); }
static void EstymMain() { Estym estym = new Estym(); estym.init(); double optymalne = 0; double opt_wynik = Double.PositiveInfinity; Estym.ParametryGenetyczne p = new Estym.ParametryGenetyczne(); int lp = 1; Console.WriteLine("lp;liczba osobników;liczba pokoleń;skalowanie;elitaryzm;p krzyżowania;p mutacji;a0;a5;a6;a7;a8;wynik"); for (byte i = 0; i < 4; i++) { p.elitaryzm = (i & 0x01) == 1; p.skalowanie = ((i >> 1) & 0x01) == 1; p.l_osobnikow = 50; p.l_pokolen = 1000; p.p_mutacji = 0.05; p.p_krzyzowania = 0.2; optymalne = 0; opt_wynik = Double.PositiveInfinity; foreach (double d in enumerujDoubla2()) { p.p_mutacji = d; estym.setParametryGenetyczne(p); estym.wykonajObliczenia(); double[] wyniki = estym.sprawdz(); if (wyniki[0] < opt_wynik) { optymalne = d; opt_wynik = wyniki[0]; } EstymPrint(lp++, p, wyniki); System.Threading.Thread.Sleep(50); } p.p_mutacji = optymalne; optymalne = 0; opt_wynik = Double.PositiveInfinity; foreach (double d in enumerujDoubla2()) { p.p_krzyzowania = d; estym.setParametryGenetyczne(p); estym.wykonajObliczenia(); double[] wyniki = estym.sprawdz(); if (wyniki[0] < opt_wynik) { optymalne = d; opt_wynik = wyniki[0]; } EstymPrint(lp++, p, wyniki); System.Threading.Thread.Sleep(50); } p.p_krzyzowania = optymalne; foreach(int d in new int[]{5, 10, 20}) { p.l_osobnikow = d; estym.setParametryGenetyczne(p); estym.wykonajObliczenia(); double[] wyniki = estym.sprawdz(); EstymPrint(lp++, p, wyniki); System.Threading.Thread.Sleep(50); } } }
static void EstymMain() { Estym estym = new Estym(); estym.init(); double optymalne = 0; double opt_wynik = Double.PositiveInfinity; Estym.ParametryGenetyczne p = new Estym.ParametryGenetyczne(); int lp = 1; Console.WriteLine("lp;liczba osobników;liczba pokoleń;skalowanie;elitaryzm;p krzyżowania;p mutacji;a0;a5;a6;a7;a8;wynik"); for (byte i = 0; i < 4; i++) { p.elitaryzm = (i & 0x01) == 1; p.skalowanie = ((i >> 1) & 0x01) == 1; p.l_osobnikow = 50; p.l_pokolen = 1000; p.p_mutacji = 0.05; p.p_krzyzowania = 0.2; optymalne = 0; opt_wynik = Double.PositiveInfinity; foreach (double d in enumerujDoubla2()) { p.p_mutacji = d; estym.setParametryGenetyczne(p); estym.wykonajObliczenia(); double[] wyniki = estym.sprawdz(); if (wyniki[0] < opt_wynik) { optymalne = d; opt_wynik = wyniki[0]; } EstymPrint(lp++, p, wyniki); System.Threading.Thread.Sleep(50); } p.p_mutacji = optymalne; optymalne = 0; opt_wynik = Double.PositiveInfinity; foreach (double d in enumerujDoubla2()) { p.p_krzyzowania = d; estym.setParametryGenetyczne(p); estym.wykonajObliczenia(); double[] wyniki = estym.sprawdz(); if (wyniki[0] < opt_wynik) { optymalne = d; opt_wynik = wyniki[0]; } EstymPrint(lp++, p, wyniki); System.Threading.Thread.Sleep(50); } p.p_krzyzowania = optymalne; foreach (int d in new int[] { 5, 10, 20 }) { p.l_osobnikow = d; estym.setParametryGenetyczne(p); estym.wykonajObliczenia(); double[] wyniki = estym.sprawdz(); EstymPrint(lp++, p, wyniki); System.Threading.Thread.Sleep(50); } } }