Beispiel #1
0
        public override IAlgorytm ZbudujAlgorytm(Dictionary <string, string> parametry, ProblemOptymalizacyjny problem)
        {
            int iloscRozwiazan = 100,
                iloscElementow = problem.ZwrocDlugoscGenotypu();

            AOsobnik      osobnik;
            AnalizaRLS_RS analiza;

            switch (parametry["problem"])
            {
            case "Problem Plecakowy":
                osobnik = new OsobnikKP(problem);
                analiza = new AnalizaRLS_RS(osobnik, short.Parse(parametry["liczbaIteracji"]), short.Parse(parametry["czasPoszukiwania"]));

                return(new RS(new LosowanieKP(osobnik), iloscRozwiazan, iloscElementow, analiza));

            case "Problem Komiwojażera":
                osobnik = new OsobnikTSP(problem);
                analiza = new AnalizaRLS_RS(osobnik, short.Parse(parametry["liczbaIteracji"]), short.Parse(parametry["czasPoszukiwania"]));

                return(new RS(new LosowanieTSP(osobnik), iloscRozwiazan, iloscElementow, analiza));

            case "Problem Podróżującego Złodzieja":
                osobnik = new OsobnikTTP(problem);
                analiza = new AnalizaRLS_RS(osobnik, short.Parse(parametry["liczbaIteracji"]), short.Parse(parametry["czasPoszukiwania"]));

                return(new RS(new LosowanieTTP(osobnik), iloscRozwiazan, iloscElementow, analiza));
            }

            throw new Exception();
        }
Beispiel #2
0
        public override IAlgorytm ZbudujAlgorytm(Dictionary <string, string> parametry, ProblemOptymalizacyjny problem)
        {
            AOsobnik      osobnik;
            ALosowanie    losowanie;
            AnalizaRLS_RS analiza;
            AWspinaczka   przeszukiwanieLokalne;

            int iloscRozwiazan = 100,
                iloscElementow = problem.ZwrocDlugoscGenotypu();

            switch (parametry["problem"])
            {
            case "Problem Plecakowy":
                osobnik   = new OsobnikKP(problem);
                losowanie = new LosowanieKP(osobnik);
                analiza   = new AnalizaRLS_RS(osobnik, short.Parse(parametry["liczbaIteracji"]), short.Parse(parametry["czasPoszukiwania"]));
                losowanie.SzukajNajlepszegoRozwiazania(iloscRozwiazan, iloscElementow);

                przeszukiwanieLokalne = new WspinaczkaKP(losowanie, int.Parse(parametry["parametrP"]));

                return(new HCA(przeszukiwanieLokalne, analiza));

            case "Problem Komiwojażera":
                osobnik   = new OsobnikTSP(problem);
                losowanie = new LosowanieTSP(osobnik);
                analiza   = new AnalizaRLS_RS(osobnik, short.Parse(parametry["liczbaIteracji"]), short.Parse(parametry["czasPoszukiwania"]));
                losowanie.SzukajNajlepszegoRozwiazania(iloscRozwiazan, iloscElementow);

                przeszukiwanieLokalne = new WspinaczkaTSP(losowanie, int.Parse(parametry["parametrP"]));

                return(new HCA(przeszukiwanieLokalne, analiza));

            case "Problem Podróżującego Złodzieja":
                osobnik   = new OsobnikTTP(problem);
                losowanie = new LosowanieTTP(osobnik);
                analiza   = new AnalizaRLS_RS(osobnik, short.Parse(parametry["liczbaIteracji"]), short.Parse(parametry["czasPoszukiwania"]));
                losowanie.SzukajNajlepszegoRozwiazania(iloscRozwiazan, iloscElementow);

                przeszukiwanieLokalne = new WspinaczkaTTP(losowanie, int.Parse(parametry["parametrP"]));

                return(new HCA(przeszukiwanieLokalne, analiza));
            }

            throw new Exception();
        }
Beispiel #3
0
        public override IAlgorytm ZbudujAlgorytm(Dictionary <string, string> parametry, ProblemOptymalizacyjny problem)
        {
            // Stałe składniki Algorytmu Ewolucyjnego
            ASelekcja selekcja;

            ReprezentacjaRozwiazania[] populacja;
            AOsobnik          rozwiazanie;
            ARekombinacja     rekombinacja;
            AnalizaEwolucyjny analityka;

            switch (parametry["problem"])
            {
            case "Problem Plecakowy":
                // konfiguracja algorytmu pod Problem Plecakowy
                rozwiazanie  = new OsobnikKP(problem);
                analityka    = new AnalizaEwolucyjny(rozwiazanie, short.Parse(parametry["liczbaIteracji"]), short.Parse(parametry["czasPoszukiwania"]));
                selekcja     = new SelekcjaWektora(rozwiazanie, problem.ZwrocDlugoscGenotypu(), parametry["metodaSelekcji"]);
                rekombinacja = new RekombinacjaKP(float.Parse(parametry["pwoMutacji"]), rozwiazanie);
                populacja    = new PopulacjaKP().StworzPopulacjeBazowa(problem, ushort.Parse(parametry["rozmiarPopulacji"]), problem.ZwrocDlugoscGenotypu());

                return(new SEA(selekcja, rekombinacja, analityka, populacja, float.Parse(parametry["pwoKrzyzowania"])));

            case "Problem Komiwojażera":
                // konfiguracja algorytmu pod Problem Komiwojażera
                rozwiazanie  = new OsobnikTSP(problem);
                analityka    = new AnalizaEwolucyjny(rozwiazanie, short.Parse(parametry["liczbaIteracji"]), short.Parse(parametry["czasPoszukiwania"]));
                selekcja     = new SelekcjaWektora(rozwiazanie, problem.ZwrocDlugoscGenotypu(), parametry["metodaSelekcji"]);
                rekombinacja = new RekombinacjaTSP(float.Parse(parametry["pwoMutacji"]), rozwiazanie, parametry["rodzajKrzyzowania"]);
                populacja    = new PopulacjaTSP().StworzPopulacjeBazowa(problem, ushort.Parse(parametry["rozmiarPopulacji"]), problem.ZwrocDlugoscGenotypu());

                return(new SEA(selekcja, rekombinacja, analityka, populacja, float.Parse(parametry["pwoKrzyzowania"])));

            case "Problem Podróżującego Złodzieja":
                // konfiguracja algorytmu pod Problem Podróżującego Złodzieja
                rozwiazanie  = new OsobnikTTP(problem);
                analityka    = new AnalizaEwolucyjny(rozwiazanie, short.Parse(parametry["liczbaIteracji"]), short.Parse(parametry["czasPoszukiwania"]));
                selekcja     = new SelekcjaWektora(rozwiazanie, problem.ZwrocDlugoscGenotypu(), parametry["metodaSelekcji"]);
                rekombinacja = new RekombinacjaTTP(float.Parse(parametry["pwoMutacji"]), rozwiazanie, parametry["rodzajKrzyzowania"]);
                populacja    = new PopulacjaTTP().StworzPopulacjeBazowa(problem, ushort.Parse(parametry["rozmiarPopulacji"]), problem.ZwrocDlugoscGenotypu());

                return(new SEA(selekcja, rekombinacja, analityka, populacja, float.Parse(parametry["pwoKrzyzowania"])));
            }

            return(new SEA());
        }