protected override void Krok2(int V, bool normalizacja)
        {
            sigmaPrzyjmZgl sigmy = new sigmaPrzyjmZgl(aWiazka);

            for (int i = 0; i < aWiazka.m; i++)
            {
                DoRozklZalOdStanu(p[i], sigmy);
            }

            bool odNajmlodszej = true;

            if (odNajmlodszej)
            {
                P = new Rozklad(p[0]);

                for (int i = 1; i < aWiazka.m; i++)
                {
                    rAsMax Qab = new rAsMax(P);
                    Qab.Agreguj(p[i], sigmy);
                    Qab.przemnoz(p[i].sumaAt);

                    rAsMax Qba = new rAsMax(p[i]);
                    Qba.Agreguj(P, sigmy);
                    Qba.przemnoz(P.sumaAt);

                    Qba.dodaj(Qab);
                    P = new Rozklad(Qba);
                    if (normalizacja)
                    {
                        P.normalizacja();
                    }
                }
            }
            else
            {
                P = new Rozklad(p[aWiazka.m - 1]);

                for (int i = aWiazka.m - 2; i >= 0; i--)
                {
                    rAsMax Qab = new rAsMax(P);
                    Qab.Agreguj(p[i], sigmy);
                    Qab.przemnoz(p[i].sumaAt);

                    rAsMax Qba = new rAsMax(p[i]);
                    Qba.Agreguj(P, sigmy);
                    Qba.przemnoz(P.sumaAt);

                    Qba.dodaj(Qab);
                    P = new Rozklad(Qba);
                    if (normalizacja)
                    {
                        P.normalizacja();
                    }
                }
            }
            if (!normalizacja)
            {
                P.normalizacja();
            }
        }
Beispiel #2
0
        protected override void Krok2(int V, bool normalizacja)
        {
            sigmaPrzyjmZgl sigmy = new sigmaPrzyjmZgl(aWiazka);

            for (int i = 0; i < aWiazka.m; i++)
            {
                DoRozklZalOdStanu(p[i], sigmy);
            }

            P = new Rozklad(p[0]);
            for (int i = 1; i < aWiazka.m; i++)
            {
                rAsMax Qab = new rAsMax(P);
                Qab.AgregujR(p[i]);
                Qab.przemnoz(p[i].sumaAt);

                rAsMax Qba = new rAsMax(p[i]);
                Qba.AgregujR(P);
                Qba.przemnoz(P.sumaAt);
                Qba.dodaj(Qab);
                if (normalizacja)
                {
                    Qba.normalizacja();
                }
                P = new Rozklad(Qba);
            }
            if (!normalizacja)
            {
                P.normalizacja();
            }
        }