コード例 #1
0
ファイル: NetworkModel.cs プロジェクト: SunyDays/graduate
        private void ComputeParameters()
        {
            Lambda.ForEach(lambdas => Lambda0.AddElement(lambdas.Sum()));
            RoTotal = new Vector <double>(NodesCount);

            for (int stream = 0; stream < StreamsCount; stream++)
            {
                // input intensity
                InputProbability.Add(Lambda[stream].Clone().InsertElement(0, 0).Divide(Lambda0[stream]));

                // E
                E.Add(GaussMethod.Solve(GetExtendedMatrix(stream)));

                // lambda'
                LambdaBar.Add(E[stream].Multiply(Lambda0[stream]));

                // ro' & ro total
                RoBar.Add(LambdaBar[stream].DivideElementWise(Mu[stream]));
                RoTotal = RoTotal.AddElementWise(RoBar.Last());

                if (RoBar[stream].Any(roBar => roBar > 1))
                {
                    throw new ArgumentOutOfRangeException(string.Format("RoBar, stream {0}", stream), "Some Ro' is greater than zero.");
                }
            }

            if (RoTotal.Any(roTotal => roTotal > 1))
            {
                throw new ArgumentOutOfRangeException("RoTotal", "Some RoTotal is greater than zero.");
            }

            FindPaths();
        }