예제 #1
0
 /// <summary>
 /// Создание описания для открытой сети массового осблуживания с делением и слиянием требований
 /// </summary>
 /// <param name="S">Массив номеров базовых систем</param>
 /// <param name="J">Массив номеров интеграторов</param>
 /// <param name="F">Массив номеров дивайдеров</param>
 /// <param name="mu">Массив интенсивностей обслуживания для базовых систем</param>
 /// <param name="Theta">Матрица передачи</param>
 /// <param name="Lambda0">Интенсивность входящего потока</param>
 /// <param name="kappa">Массив число обслуживающих приборов в каждой базовой системе обслуживания>
 public DescriptionOFJQN(int[] S, int[] F, int[] J, double[] mu, int[] kappa, RoutingMatrix Theta, double Lambda0)
 {
     this.S       = S;
     this.F       = F;
     this.mu      = mu;
     this.kappa   = kappa;
     this.J       = J;
     this.Theta   = Theta;
     this.Lambda0 = Lambda0;
 }
예제 #2
0
        /// <summary>
        /// Создает открытую сеть с делением и слиянием требований, считывая данные из файла
        /// </summary>
        /// <param name="FileName"></param>
        public DescriptionOFJQN(string FileName)
        {
            using (StreamReader sr = new StreamReader(FileName))
            {
                //Индексы server-node
                var temp = sr.ReadLine().Split(';');
                S = new int[temp.Length];
                for (int i = 0; i < temp.Length; i++)
                {
                    S[i] = int.Parse(temp[i], System.Globalization.CultureInfo.CreateSpecificCulture("RU-ru"));
                }


                //Индексы fork-node
                temp = sr.ReadLine().Split(';');
                if (temp[0].Length != 0)
                {
                    F = new int[temp.Length];
                    for (int i = 0; i < temp.Length; i++)
                    {
                        F[i] = int.Parse(temp[i], System.Globalization.CultureInfo.CreateSpecificCulture("RU-ru"));
                    }
                }
                else
                {
                    F = new int[0];
                }



                //Индексы join-node
                temp = sr.ReadLine().Split(';');
                if (temp[0].Length != 0)
                {
                    J = new int[temp.Length];
                    for (int i = 0; i < temp.Length; i++)
                    {
                        J[i] = int.Parse(temp[i], System.Globalization.CultureInfo.CreateSpecificCulture("RU-ru"));
                    }
                }
                else
                {
                    J = new int[0];
                }



                Theta = new RoutingMatrix(S.Length + J.Length + F.Length + 1, F.Length + 1);

                //Маршрутная матрица
                for (int k = 0; k < Theta.CountForker; k++)
                {
                    for (int i = 0; i < Theta.Dimention; i++)
                    {
                        temp = sr.ReadLine().Split(';');
                        for (int j = 0; j < Theta.Dimention; j++)
                        {
                            Theta[k, i, j] = double.Parse(temp[j], System.Globalization.CultureInfo.CreateSpecificCulture("RU-ru"));
                        }
                    }
                }

                //Параметры систем массового обслуживания
                //Интенсивности обслуживания
                temp = sr.ReadLine().Split(';');
                mu   = new double[S.Length];
                for (int i = 0; i < mu.Length; i++)
                {
                    mu[i] = double.Parse(temp[i], System.Globalization.CultureInfo.CreateSpecificCulture("RU-ru"));
                }

                //Число обслуживающих приборов в каждой системе обслуживания
                temp  = sr.ReadLine().Split(';');
                kappa = new int[S.Length];
                for (int i = 0; i < mu.Length; i++)
                {
                    kappa[i] = int.Parse(temp[i], System.Globalization.CultureInfo.CreateSpecificCulture("RU-ru"));
                }

                //Интенсивность входящего потока
                Lambda0 = double.Parse(sr.ReadLine());
            }
        }