예제 #1
0
        //Действия по окончанию прогона
        public override void FinishModelling(int variantCount, int runCount)
        {
            Tracer.AnyTrace("");
            Tracer.TraceOut("==============================================================");
            Tracer.TraceOut("============Статистические результаты моделирования===========");
            Tracer.TraceOut("==============================================================");
            Tracer.AnyTrace("");
            Tracer.TraceOut("Время моделирования: " + String.Format("{0:0.00}", Time));

            Tracer.TraceOut("\r\nИнтенсивность числа полных прогонов: ");
            //Tracer.TraceOut("Заявка 1: " + KC[0] / TP);
            //Tracer.TraceOut("Заявка 2: " + KC[1] / TP);

            //Tracer.TraceOut("\r\nВероятность загрузки узлов: ");
            //Tracer.TraceOut("Узел 1: " + TSZ[0] / (TSZ[0] + TSZ[1] + TSZ[2]));
            //Tracer.TraceOut("Узел 2: " + TSZ[1] / (TSZ[0] + TSZ[1] + TSZ[2]));
            //Tracer.TraceOut("Узел 3: " + TSZ[2] / (TSZ[0] + TSZ[1] + TSZ[2]));

            //Tracer.TraceOut("\r\nСтатистические характеристики длин очередей: ");
            //Tracer.TraceOut("Очереди KPP: ");
            //Tracer.TraceOut("МО = " + String.Format("{0:0.000}", Variance_LKPP[0].Mx));
            //Tracer.TraceOut("Дисперсия = " + String.Format("{0:0.000}", Variance_LKPP[0].Stat));
            //Tracer.TraceOut("МО = " + String.Format("{0:0.000}", Variance_LKPP[1].Mx));
            //Tracer.TraceOut("Дисперсия = " + String.Format("{0:0.000}", Variance_LKPP[1].Stat));
            //Tracer.TraceOut("МО = " + String.Format("{0:0.000}", Variance_LKPP[2].Mx));
            //Tracer.TraceOut("Дисперсия = " + String.Format("{0:0.000}", Variance_LKPP[2].Stat));
            //Tracer.AnyTrace("");
            //Tracer.TraceOut("Очереди SQ: ");
            //Tracer.TraceOut("МО = " + String.Format("{0:0.000}", Variance_LSQ[0].Mx));
            //Tracer.TraceOut("Дисперсия = " + String.Format("{0:0.000}", Variance_LSQ[0].Stat));
            //Tracer.TraceOut("МО = " + String.Format("{0:0.000}", Variance_LSQ[1].Mx));
            //Tracer.TraceOut("Дисперсия = " + String.Format("{0:0.000}", Variance_LSQ[1].Stat));
            //Tracer.TraceOut("МО = " + String.Format("{0:0.000}", Variance_LSQ[2].Mx));
            //Tracer.TraceOut("Дисперсия = " + String.Format("{0:0.000}", Variance_LSQ[2].Stat));
        }
예제 #2
0
 /// <summary>
 /// Печать заголовка
 /// </summary>
 void TraceModelHeader()
 {
     Tracer.TraceOut("========================================================================");
     Tracer.TraceOut("======================= Запущена модель ================================");
     Tracer.TraceOut("========================================================================");
     //Tracer.AnyTrace("");
     Tracer.AnyTrace("Параметры модели:");
     //Tracer.AnyTrace("");
     Tracer.AnyTrace("Количество магазинов: " + N);
     //Tracer.AnyTrace("");
     Tracer.AnyTrace("МО дневного спроса в i-ом магазине: " + Shops[0].Mx);
     //Tracer.AnyTrace("");
     Tracer.AnyTrace("СКО дневного спроса в i-ом магазине: " + Shops[0].Sigma);
     //Tracer.AnyTrace("");
     Tracer.AnyTrace("Точка восстановления: " + TV);
     //Tracer.AnyTrace("");
     Tracer.AnyTrace("Объем восстановления: " + VV);
     //Tracer.AnyTrace("");
     Tracer.AnyTrace("Потери от хранения пролежанной продукции PP: " + PP);
     //Tracer.AnyTrace("");
     Tracer.AnyTrace("Потери от нереализованной прибыли PNP: " + PNP);
     //Tracer.AnyTrace("");
     Tracer.AnyTrace("Потери от подачи заявки на пополнение товарного запаса PPZ: " + PPZ);
     Tracer.AnyTrace("Фиксированный интервал времени TF: 7 дн.");
     Tracer.AnyTrace("Время прогона имитационной модели TP: " + M);
     Tracer.AnyTrace("");
     Tracer.AnyTrace("Начальное состояние модели:");
 }
예제 #3
0
        //Печать заголовка
        void TraceModelHeader()
        {
            Tracer.TraceOut("==============================================================");
            Tracer.TraceOut("======================= Запущена модель ======================");
            Tracer.TraceOut("==============================================================");
            //вывод заголовка трассировки
            Tracer.AnyTrace("");
            Tracer.AnyTrace("Параметры модели:");
            Tracer.AnyTrace("Математическое ожидание: " + MO);
            Tracer.AnyTrace("СКО: " + SKO);
            Tracer.AnyTrace("Значение точки восстановления: " + ZTV);
            Tracer.AnyTrace("Значение объёма восстановления запаса: " + ZOV);
            Tracer.AnyTrace("Значение приведённых дней: " + DAY[0] + " " + DAY[1] + " " + DAY[2] + " " + DAY[3] + " " + DAY[4]);
            Tracer.AnyTrace("Вероятности пополнения запаса: " + P[0] + " " + P[1] + " " + P[2] + " " + P[3] + " " + P[4]);
            Tracer.AnyTrace("Стоимость подачи заявки на пополнение: " + C_POP);
            Tracer.AnyTrace("Стоимость потерь возможных: " + C_POT);
            Tracer.AnyTrace("Стоимость хранения одной единицы товара: " + C_HR);
            Tracer.AnyTrace("Время прогона модели: " + TP);
            Tracer.AnyTrace("");
            Tracer.AnyTrace("Начальное состояние модели:");
            TraceModel();
            Tracer.AnyTrace("");

            Tracer.TraceOut("==============================================================");
            Tracer.AnyTrace("");
        }
예제 #4
0
        //Действия по окончанию прогона
        public override void FinishModelling(int variantCount, int runCount)
        {
            Tracer.AnyTrace("");
            Tracer.TraceOut("==============================================================");
            Tracer.TraceOut("============Статистические результаты моделирования===========");
            Tracer.TraceOut("==============================================================");
            Tracer.AnyTrace("");
            Tracer.TraceOut("Время моделирования: " + string.Format("{0:0.00}", Time));

            Tracer.TraceOut("Статистические характеристики длины очереди: ");
            Tracer.TraceOut("МО = " + Variance_LQ.Mx.ToString("#.###"));
            Tracer.TraceOut("Дисперсия = " + Variance_LQ.Stat.ToString("#.###"));

            for (int i = 0; i < iPassOut; i++)
            {
                TQ.Value = times[i];
            }

            Tracer.TraceOut("Статистические характеристики времени нахождения пассажиров в очереди: ");
            Tracer.TraceOut("МО = " + Variance_TQ.Mx.ToString("#.###"));
            Tracer.TraceOut("Дисперсия = " + Variance_TQ.Stat.ToString("#.###"));

            Tracer.TraceOut("");
            Tracer.TraceOut("KNP = " + KNP);
        }
예제 #5
0
        public override void StartModelling(int variantCount, int runCount)
        {
            /* Reading start parametrs from screen */
            if (Convert.ToBoolean(ReadFromScreen()))
            {
                GenerateInputFile();
                /* Reading input file */
                ReadFile(@"inputg.txt");
            }
            else
            {
                /* Reading input file */
                ReadFile(@"input.txt");
            }

            //Печать заголовка строки состояния модели
            TraceModelHeader();

            #region Планирование начальных событий

            Tracer.AnyTrace("");
            Tracer.AnyTrace("FIFO");
            Tracer.AnyTrace("");
            /* Planning startd event */
            var ev = new FIFO();
            PlanEvent(ev, 0.0);

            #endregion
        }
예제 #6
0
 //Печать заголовка
 void TraceModelHeader()
 {
     Tracer.TraceOut("==============================================================");
     Tracer.TraceOut("======================= Запущена модель ======================");
     Tracer.TraceOut("==============================================================");
     //вывод заголовка трассировки
     Tracer.AnyTrace("");
     Tracer.AnyTrace("Параметры модели:");
     Tracer.AnyTrace("");
 }
예제 #7
0
 /// <summary>
 /// Печать строки состояния.
 /// </summary>
 void TraceModel(int dayNumber)
 {
     Tracer.AnyTrace("SVP[" + Shops[0].ProductUnrealizedCurrent.Value + "," + Shops[1].ProductUnrealizedCurrent.Value + "]",
                     "SVNS[" + Shops[0].ProductUnmetDemandCurrent.Value + "," + Shops[1].ProductUnmetDemandCurrent.Value + "]",
                     "SKZ[" + Shops[0].RequestsTotalCountCurrent.Value + "," + Shops[1].RequestsTotalCountCurrent.Value + "]",
                     "VTT[" + Shops[0].ProductAmountCurrent.Value + "," + Shops[1].ProductAmountCurrent.Value + "]",
                     "Flag[" + Shops[0].HasSendRequest.Value + "," + Shops[1].HasSendRequest.Value + "]");
     Tracer.AnyTrace("");
     Tracer.AnyTrace("");
 }
예제 #8
0
        //Действия по окончанию прогона
        public override void FinishModelling(int variantCount, int runCount)
        {
            Tracer.AnyTrace("");
            Tracer.TraceOut("==============================================================");
            Tracer.TraceOut("============Статистические результаты моделирования===========");
            Tracer.TraceOut("==============================================================");
            Tracer.AnyTrace("");

            Tracer.AnyTrace("Суммарное количество затраченных тактов процессора для FIFO: " + (fifoTickNumber));
            Tracer.AnyTrace("Суммарное количество затраченных тактов процессора для SJF: " + (tickNumber));
            //Tracer.TraceOut("Время моделирования: " + String.Format("{0:0.00}", Time));
        }
예제 #9
0
 //Действия по окончанию прогона
 public override void FinishModelling(int variantCount, int runCount)
 {
     Tracer.AnyTrace("");
     Tracer.TraceOut("==============================================================");
     Tracer.TraceOut("============Статистические результаты моделирования===========");
     Tracer.TraceOut("==============================================================");
     Tracer.AnyTrace("");
     Tracer.TraceOut("Время моделирования: " + string.Format("{0:0.00}", Time));
     Tracer.TraceOut("Среднедневные затраты на подачу заявки на пополнение: " + string.Format("{0:0.00}", Q_POP * C_POP / TP));
     Tracer.TraceOut("Среднедневные потери от неудовлетворенного спроса: " + string.Format("{0:0.00}", Q_LOST * C_POT / TP));
     Tracer.TraceOut("Среднедневные потери от пролеживания товара: " + string.Format("{0:0.00}", VPRT * C_HR / TP));
     Tracer.TraceOut("Суммарные среднедневные потери: " + string.Format("{0:0.00}", Q_POP * C_POP / TP + Q_LOST * C_POT / TP + VPRT * C_HR / TP));
 }
예제 #10
0
        //Печать строки состояния
        void TraceModel()
        {
            Tracer.AnyTrace(string.Format("TSZ[{0},{1},{2}] KC[{3},{4}] LSQ[{5},{6},{7}] LKPP[{8},{9},{10}]",
                                          TSZ[0], TSZ[1], TSZ[2], KC[0], KC[1],
                                          (int)SQ[0].Count, (int)SQ[1].Count, (int)SQ[2].Count,
                                          (int)KPP[0].Count, (int)KPP[1].Count, (int)KPP[2].Count));
            String str = "KPP: {";

            //Tracer.AnyTrace("KPP: {");
            for (int i = 0; i < KUVS; i++)
            {
                for (int j = 0; j < MAXKPP[i]; j++)
                {
                    if (KPP[i].Count > j)
                    {
                        str += " NU = " + (i + 1).ToString() + " [" + KPP[i][j].Z.NZ.ToString() + "," + KPP[i][j].Z.NE.ToString() + "," + KPP[i][j].Z.KK.ToString() + "]";
                        //Tracer.TraceOut("NU = " + (i+1) + " [" + KPP[i][j].Z.NZ + "," + KPP[i][j].Z.NE + "," + KPP[i][j].Z.KK + "]");
                    }
                    else
                    {
                        str += " NU = " + (i + 1).ToString() + " [-,-,-]";
                        //Tracer.AnyTrace("NU = " + (i + 1) + " [-,-,-]");
                    }
                }
            }
            str += "}";
            Tracer.AnyTrace(str);

            str = "SQ: {";
            for (int i = 0; i < KUVS; i++)
            {
                for (int j = 0; j < SQ[i].Count; j++)
                {
                    if (SQ[i].Count > j)
                    {
                        str += " NU = " + (i + 1).ToString() + " [" + SQ[i][j].Z.NZ.ToString() + "," + SQ[i][j].Z.NE.ToString() + "," + SQ[i][j].Z.KK.ToString() + "]";
                        //Tracer.TraceOut("NU = " + (i + 1) + " [" + SQ[i][j].Z.NZ + "," + SQ[i][j].Z.NE + "," + SQ[i][j].Z.KK + "]");
                    }
                    else
                    {
                        str += " NU = " + (i + 1).ToString() + " [-,-,-]";
                        //Tracer.AnyTrace("NU = " + (i + 1) + " [-,-,-]");
                    }
                }
            }
            str += "}";
            Tracer.AnyTrace(str);

            Tracer.AnyTrace("");
        }
예제 #11
0
        //Действия по окончанию прогона
        public override void FinishModelling(int variantCount, int runCount)
        {
            Tracer.AnyTrace("");
            Tracer.TraceOut("==============================================================");
            Tracer.TraceOut("============Статистические результаты моделирования===========");
            Tracer.TraceOut("==============================================================");
            Tracer.AnyTrace("");

            Tracer.AnyTrace("FIFO page faults = " + pageFaultsAmountFifo);
            Tracer.AnyTrace("WorkingSet page faults = " + pageFaultsAmountWS);

            Console.WriteLine("\n*Трассировка также сохранена в файл trace.txt");

            //Console.ReadKey();
        }
예제 #12
0
        public override void StartModelling(int variantCount, int runCount)
        {
            #region Задание начальных параметров моделирования
            //Задание начальных значений модельных переменных и объектов
            for (int i = 0; i < N; i++)
            {
                Shops[i].ProductAmountCurrent.Value      = VV;      // начальный объем товара в i-том магазине
                Shops[i].ProductDemandCurrent.Value      = 0;       // начальный объем спроса на товар в i-том магазине
                Shops[i].ProductUnrealizedCurrent.Value  = 0;       // начальный объем пролежанного товара в i-том магазине
                Shops[i].ProductUnmetDemandCurrent.Value = 0;       // начальный объем неудовлетворенного спроса на товар в i-том магазине
                Shops[i].HasSendRequest.Value            = 0;       // начальное состояние по наличию заявок
                Shops[i].RequestsTotalCountCurrent.Value = 0;       // начальное кол-во заявок
            }
            SVSTP.Value = 0;
            SVST.Value  = 0;

            // Cброс сборщиков статистики

            foreach (var collector in GetObjectsByType <StatCollector>())
            {
                collector.ResetCollector();
            }

            //Печать заголовка строки состояния модели
            TraceModelHeader();
            //Печать заголовка строки состояния модели
            var DayNumber = 0;

            //Планирование начальных событий
            // И вывод СБС
            var k1Event = new K1()
            {
                DayNumber = DayNumber
            };
            PlanEvent(k1Event, DayNumber);
            Tracer.PlanEventTrace(k1Event, DayNumber + 1);
            var k3Event = new K3 {
                NumberOfWeek = 0
            };
            PlanEvent(k3Event, 0);
            Tracer.PlanEventTrace(k3Event,
                                  1);
            Tracer.AnyTrace();
            Tracer.AnyTrace();
            TraceModel(DayNumber++);
            #endregion
        }
예제 #13
0
        //Печать заголовка
        void TraceModelHeader()
        {
            Tracer.TraceOut("==============================================================");
            Tracer.TraceOut("======================= Запущена модель ======================");
            Tracer.TraceOut("==============================================================");
            //вывод заголовка трассировки
            Tracer.AnyTrace("");
            Tracer.AnyTrace("Параметры модели:");
            Tracer.AnyTrace("Интенсивность потока пассажиров:");
            Tracer.AnyTrace("LAMBD = " + LAMBD);
            Tracer.AnyTrace("Состояние автобуса:");
            Tracer.AnyTrace("SA = " + SA);
            Tracer.AnyTrace("Размер автобуса:");
            Tracer.AnyTrace("B = " + B);
            Tracer.AnyTrace("Интервал времени прибытия автобуса:");
            Tracer.AnyTrace("T = " + T);
            Tracer.AnyTrace("Погрешность прибытия автобуса:");
            Tracer.AnyTrace("A = " + A);
            Tracer.AnyTrace("Время прогона:");
            Tracer.AnyTrace("TP = " + TP);
            Tracer.AnyTrace("Вариант модели:");
            Tracer.AnyTrace("NVAR = " + NVAR);
            Tracer.AnyTrace("Левая и правая границы числа пассажиров в автобусе:");
            Tracer.AnyTrace("ml = " + ml);
            Tracer.AnyTrace("mp = " + mp);
            Tracer.AnyTrace("Левая и правая границы времени высадки пассажира:");
            Tracer.AnyTrace("bcl = " + bcl);
            Tracer.AnyTrace("bcp = " + bcp);
            Tracer.AnyTrace("Левая и правая границы времени посадки пассажира:");
            Tracer.AnyTrace("pcl = " + pcl);
            Tracer.AnyTrace("pcp = " + pcp);
            Tracer.AnyTrace("Левая и правая границы количества выходящих пассажиров из автобуса:");
            Tracer.AnyTrace("VL = " + VL);
            Tracer.AnyTrace("VP = " + VP);
            Tracer.AnyTrace("");

            Tracer.AnyTrace("Начальное состояние модели:");
            TraceModel();
            Tracer.AnyTrace("");

            Tracer.TraceOut("==============================================================");
            Tracer.AnyTrace("");
        }
예제 #14
0
        void ReadFile()
        {
            StreamReader sr;

            if (Environment.OSVersion.Platform.ToString() == "Win32NT")
            {
                sr = new StreamReader(@"D:\Langs\C#\SPOlab1\input.txt");
            }
            else

            {
                sr = new StreamReader(@"/Users/andreymakarov/Downloads/SPOlab1/input.txt");
            }

            Tracer.AnyTrace("Исходные процессы:\n");
            while (!sr.EndOfStream)
            {
                String[] tmp     = sr.ReadLine().Split();
                Process  process = new Process(Convert.ToInt32(tmp[0]),
                                               Convert.ToInt32(tmp[1]),
                                               Convert.ToInt32(tmp[2]),
                                               Convert.ToInt32(tmp[3]));
                Tracer.AnyTrace("Процесс №" + process.number +
                                " с временем разблокировки " + process.readinessTime +
                                " временем выполнения " + process.requiredAmount +
                                " приоритетом " + process.priority);

                processes.Add(process);
            }

            foreach (Process process in processes)
            {
                waitProcesses.Add(new Process(process.number,
                                              process.readinessTime,
                                              process.requiredAmount,
                                              process.priority));
            }
        }
예제 #15
0
        //Печать заголовка
        void TraceModelHeader()
        {
            Tracer.TraceOut("==============================================================");
            Tracer.TraceOut("======================= Запущена модель ======================");
            Tracer.TraceOut("==============================================================");
            //вывод заголовка трассировки
            Tracer.AnyTrace("");
            Tracer.AnyTrace("Параметры модели:");
            Tracer.AnyTrace("");

            //Tracer.AnyTrace("Количество узлов: ");
            //Tracer.AnyTrace("KUVS = " + KUVS);
            //Tracer.AnyTrace("");
            //Tracer.AnyTrace("Количество заявок: ");
            //Tracer.AnyTrace("KZ = " + KZ);
            //Tracer.AnyTrace("");
            //Tracer.AnyTrace("Маршрут:");
            //Tracer.AnyTrace(MZ[0, 0] + " " + MZ[0, 1] + " " + MZ[0, 2]);
            //Tracer.AnyTrace(MZ[1, 0] + " " + MZ[1, 1] + " " + MZ[1, 2]);
            //Tracer.AnyTrace("");
            //Tracer.AnyTrace("МО:");
            //Tracer.AnyTrace(MOKK[0, 0] + " " + MOKK[0, 1] + " " + MOKK[0, 2]);
            //Tracer.AnyTrace(MOKK[1, 0] + " " + MOKK[1, 1] + " " + MOKK[1, 2]);
            //Tracer.AnyTrace("");
            //Tracer.AnyTrace("Максимальное количество ПП в каждом узле:");
            //Tracer.AnyTrace(MAXKPP[0] + " " + MAXKPP[0] + " " + MAXKPP[0]);
            Tracer.AnyTrace("");
            Tracer.AnyTrace("Время прогона: ");
            Tracer.AnyTrace("TP = " + TR);
            Tracer.AnyTrace("");
            Tracer.AnyTrace("Начальное состояние модели:");
            TraceModel();
            Tracer.AnyTrace("");

            Tracer.TraceOut("==============================================================");
            Tracer.AnyTrace("");
        }
예제 #16
0
 //Печать строки состояния
 void TraceModel()
 {
     Tracer.AnyTrace("T = " + T + " VT = " + VT + " Q_LOST = " + Q_LOST + " VPRT = " + VPRT + " ZNP = " + ZNP + " Q_POP = " + Q_POP);
 }
예제 #17
0
 /// <summary>
 /// Действия по окончанию прогона
 /// </summary>
 /// <param name="variantCount"></param>
 /// <param name="runCount"></param>
 public override void FinishModelling(int variantCount, int runCount)
 {
     Tracer.TraceOut("===============================================================================");
     Tracer.TraceOut("============ Статистические результаты моделирования ==========================");
     Tracer.TraceOut("===============================================================================");
     Tracer.AnyTrace("");
     Tracer.TraceOut("======= I. Сбор статистики по средним дневным потерям торговой системы ========");
     Tracer.AnyTrace("");
     //Tracer.AnyTrace("");
     Tracer.AnyTrace("1. Сбор статистики средней дневной потери по каждому магазину (руб)");
     Tracer.TraceOut("   средние дн. потери в первом магазине:  " + ((Shops[0].ProductUnrealizedAll.Value * PP / M) + (Shops[0].ProductUnmetDemandAll.Value * PNP / M) + (Shops[0].RequestsTotalCountAll.Value * PPZ / M)));
     Tracer.TraceOut("   средние дн. потери во втором магазине: " + ((Shops[1].ProductUnrealizedAll.Value * PP / M) + (Shops[1].ProductUnmetDemandAll.Value * PNP / M) + (Shops[1].RequestsTotalCountAll.Value * PPZ / M)));
     Tracer.AnyTrace("");
     //Tracer.AnyTrace("");
     Tracer.TraceOut("2. Сбор статистики по средним дневным потерям по всей системе (руб): SSDS = "
                     + ((Shops[0].ProductUnrealizedAll.Value * PP / M)
                        + (Shops[1].ProductUnrealizedAll.Value * PP / M)
                        + (Shops[0].ProductUnmetDemandAll.Value * PNP / M)
                        + (Shops[1].ProductUnmetDemandAll.Value * PNP / M)
                        + (Shops[0].RequestsTotalCountAll.Value * PPZ / M)
                        + (Shops[1].RequestsTotalCountAll.Value * PPZ / M)));
     Tracer.AnyTrace("");
     //Tracer.AnyTrace("");
     Tracer.TraceOut("3. Сбор статистики по средним дневным потерям по отдельным составляющим (руб): ");
     Tracer.AnyTrace("");
     Tracer.TraceOut("       в системе: -------------------------------------------------------------");
     Tracer.TraceOut("           средние потери от пролеживания товара:       " + ((Shops[0].ProductUnrealizedAll.Value * PP / M) + (Shops[1].ProductUnrealizedAll.Value * PP / M)));
     Tracer.TraceOut("           средние потери от неудовлетворенного спроса: " + ((Shops[0].ProductUnmetDemandAll.Value * PNP / M) + (Shops[1].ProductUnmetDemandAll.Value * PNP / M)));
     Tracer.TraceOut("           средние потери от подачи заявки:             " + ((Shops[0].RequestsTotalCountAll.Value * PPZ / M) + (Shops[1].RequestsTotalCountAll.Value * PPZ / M)));
     //Tracer.AnyTrace("");
     Tracer.TraceOut("       в первом магазине: -----------------------------------------------------");
     Tracer.TraceOut("           средние потери от пролеживания товара SDP_VP[0] = " + (Shops[0].ProductUnrealizedAll.Value * PP / M));
     Tracer.TraceOut("               МО:      " + (Variance_SDP_PP[0].Mx * PP));
     //Tracer.TraceOut("           макс:    " + (Max_SDP_PP[0].Stat * PP));//вместо минимакса Хохо "приказал" делать МО
     //Tracer.TraceOut("           мин:     " + (Min_SDP_PP[0].Stat * PP));
     Tracer.TraceOut("           средние потери от неудовлетворенного спроса SDP_NS[0] = " + (Shops[0].ProductUnmetDemandAll.Value * PNP / M));
     Tracer.TraceOut("               МО:      " + (Variance_SDP_PNP[0].Mx * PNP));
     //Tracer.TraceOut("           макс:    " + (Max_SDP_PNP[0].Stat * PNP));
     //Tracer.TraceOut("           мин:     " + (Min_SDP_PNP[0].Stat * PNP));
     Tracer.TraceOut("           средние потери от подачи заявки SDP_PZ[0] = " + (Shops[0].RequestsTotalCountAll.Value * PPZ / M));
     Tracer.TraceOut("               МО:      " + (Variance_SDP_PPZ[0].Mx * PPZ / M));
     //Tracer.TraceOut("           макс:    " + (Max_SDP_PPZ[0].Stat * PPZ / M));
     //Tracer.TraceOut("           мин:     " + (Min_SDP_PPZ[0].Stat * PPZ / M));
     //Tracer.AnyTrace("");
     Tracer.TraceOut("       во втором магазине: ----------------------------------------------------");
     Tracer.TraceOut("           средние потери от пролеживания товара SDP_VP[1] = " + (Shops[1].ProductUnrealizedAll.Value * PP / M));
     Tracer.TraceOut("               МО:      " + (Variance_SDP_PP[1].Mx * PP));
     //Tracer.TraceOut("           макс:    " + (Max_SDP_PP[1].Stat * PP));
     //Tracer.TraceOut("           мин:     " + (Min_SDP_PP[1].Stat * PP));
     Tracer.TraceOut("           средние потери от неудовлетворенного спроса SDP_NS[1] = " + (Shops[1].ProductUnmetDemandAll.Value * PNP / M));
     Tracer.TraceOut("               МО:      " + (Variance_SDP_PNP[1].Mx * PNP));
     //Tracer.TraceOut("           макс:    " + (Max_SDP_PNP[1].Stat * PNP));
     //Tracer.TraceOut("           мин:     " + (Min_SDP_PNP[1].Stat * PNP));
     Tracer.TraceOut("           средние потери от подачи заявки SDP_PZ[1] = " + (Shops[1].RequestsTotalCountAll.Value * PPZ / M));
     Tracer.TraceOut("               МО:      " + (Variance_SDP_PPZ[1].Mx * PPZ / M));
     //Tracer.TraceOut("           макс:    " + (Max_SDP_PPZ[1].Stat * PPZ / M));
     //Tracer.TraceOut("           мин:     " + (Min_SDP_PPZ[1].Stat * PPZ / M));
     Tracer.AnyTrace("");
     Tracer.AnyTrace("");
     Tracer.AnyTrace("");
     Tracer.TraceOut("======== II. Сбор статистики по суммарным потерям в торговой системе ==========");
     Tracer.AnyTrace("");
     Tracer.TraceOut(" МО суммарного объема поставок с оптового склада по всем магазинам: " + Variance_SVSTP.Mx);
 }
예제 #18
0
 //Печать строки состояния
 void TraceModel()
 {
     Tracer.AnyTrace("LVQ = " + VQ.Count.Value + " LQPP = " + QPP.Count.Value + " FREEMEM = " + FREEMEM + " FREEMEM(%) = " + String.Format("{0:0}", FREEMEM / MAINMEM * 100));
     Tracer.AnyTrace("");
 }
예제 #19
0
 //Печать строки состояния
 void TraceModel()
 {
     Tracer.AnyTrace("KVZ = " + KVZ + " SA = " + SA + " KPA = " + KPA + " KA = " + KA + " LQ = " + LQ.Value);
 }