//Действия по окончанию прогона 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)); }
/// <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("Начальное состояние модели:"); }
//Печать заголовка 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(""); }
//Действия по окончанию прогона 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); }
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 }
//Печать заголовка void TraceModelHeader() { Tracer.TraceOut("=============================================================="); Tracer.TraceOut("======================= Запущена модель ======================"); Tracer.TraceOut("=============================================================="); //вывод заголовка трассировки Tracer.AnyTrace(""); Tracer.AnyTrace("Параметры модели:"); Tracer.AnyTrace(""); }
/// <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(""); }
//Действия по окончанию прогона 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)); }
//Действия по окончанию прогона 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)); }
//Печать строки состояния 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(""); }
//Действия по окончанию прогона 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(); }
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 }
//Печать заголовка 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(""); }
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)); } }
//Печать заголовка 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(""); }
//Печать строки состояния void TraceModel() { Tracer.AnyTrace("T = " + T + " VT = " + VT + " Q_LOST = " + Q_LOST + " VPRT = " + VPRT + " ZNP = " + ZNP + " Q_POP = " + Q_POP); }
/// <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); }
//Печать строки состояния void TraceModel() { Tracer.AnyTrace("LVQ = " + VQ.Count.Value + " LQPP = " + QPP.Count.Value + " FREEMEM = " + FREEMEM + " FREEMEM(%) = " + String.Format("{0:0}", FREEMEM / MAINMEM * 100)); Tracer.AnyTrace(""); }
//Печать строки состояния void TraceModel() { Tracer.AnyTrace("KVZ = " + KVZ + " SA = " + SA + " KPA = " + KPA + " KA = " + KA + " LQ = " + LQ.Value); }