public KPD(VS parent, string name) : base(parent, name) { #region Инициализация переменных объектов модели KOZ = InitModelObject<TIntVar>(); KPZ = InitModelObject<TIntVar>(); Zanyatost = InitModelObject<TRefVar<VS.Zayavka>>(); Q_Vhod = InitModelObject<SimpleModelList<QRec>>(); Q_Vozvrat = InitModelObject<SimpleModelList<QRec>>(); #endregion #region Инициализация сборщиков статистики Variance_Q_Vhod = InitModelObject<Variance<int>>(); Variance_Q_Vhod.ConnectOnSet(Q_Vhod.Count); Min_Q_Vhod = InitModelObject<Min<int>>(); Min_Q_Vhod.ConnectOnSet(Q_Vhod.Count); Max_Q_Vhod = InitModelObject<Max<int>>(); Max_Q_Vhod.ConnectOnSet(Q_Vhod.Count); Variance_Q_Vozvrat = InitModelObject<Variance<int>>(); Variance_Q_Vozvrat.ConnectOnSet(Q_Vozvrat.Count); Min_Q_Vozvrat = InitModelObject<Min<int>>(); Min_Q_Vozvrat.ConnectOnSet(Q_Vozvrat.Count); Max_Q_Vozvrat = InitModelObject<Max<int>>(); Max_Q_Vozvrat.ConnectOnSet(Q_Vozvrat.Count); Zanyato = InitModelObject<BoolCollector>(); Zanyato.ConnectOnSet(Zanyatost); #endregion }
TIntVar KVZ; //Количество вошедших заявок #endregion Fields #region Constructors public UstroystvoVvoda(VU parent, string name) : base(parent, name) { #region Инициализация переменных объектов модели KOZ = InitModelObject<TIntVar>(); KVZ = InitModelObject<TIntVar>(); Zanyatost = InitModelObject<TRefVar<VS.Zayavka>>(); Que = InitModelObject<SimpleModelList<QRec>>(); parentVU = parent; #endregion #region Инициализация сборщиков статистики Variance_QueCount = InitModelObject<Variance<int>>(); Variance_QueCount.ConnectOnSet(Que.Count); Min_QueCount = InitModelObject<Min<int>>(); Min_QueCount.ConnectOnSet(Que.Count); Max_QueCount = InitModelObject<Max<int>>(); Max_QueCount.ConnectOnSet(Que.Count); Zanyto = InitModelObject<BoolCollector>(); Zanyto.ConnectOnSet(Zanyatost); #endregion }
public SMOModel(Model parent, string name) : base(parent, name) { KVZS = InitModelObject<TIntVar>(); KVZ = InitModelObjectArray<TIntVar>(3, ""); KPZ = InitModelObjectArray<TIntVar>(3, ""); KZ = InitModelObjectArray<TBoolVar>(2, ""); TZKO = InitModelObjectArray<TRealVar>(2, ""); KPZ = InitModelObjectArray<TIntVar>(3, ""); queue = InitModelObjectArray<SimpleModelList<QueueRec>>(3, ""); TimeIn_FirstFlow = InitModelObject<TRealVar>(); TimeIn_SecondFlow = InitModelObject<TRealVar>(); inFlowGenerator = InitModelObjectArray<PoissonStream>(2, ""); servFlowGenerator = InitModelObjectArray<ExpStream>(2, ""); repeateGenerator = InitModelObject<UniformStream>(); Variance_QueueCount = InitModelObjectArray<Variance<int>>(3, ""); Variance_QueueCount[0].ConnectOnSet(queue[0].Count); Variance_QueueCount[1].ConnectOnSet(queue[1].Count); Variance_QueueCount[2].ConnectOnSet(queue[2].Count); Variance_TimeIn_FirstFlow = InitModelObject<Variance<double>>(); Variance_TimeIn_FirstFlow.ConnectOnSet(TimeIn_FirstFlow); Variance_TimeIn_SecondFlow = InitModelObject<Variance<double>>(); Variance_TimeIn_SecondFlow.ConnectOnSet(TimeIn_SecondFlow); Min_TimeIn_FirstFlow = InitModelObject<Min<double>>(); Min_TimeIn_FirstFlow.ConnectOnSet(TimeIn_FirstFlow); Min_TimeIn_SecondFlow = InitModelObject<Min<double>>(); Min_TimeIn_SecondFlow.ConnectOnSet(TimeIn_SecondFlow); Max_TimeIn_FirstFlow = InitModelObject<Max<double>>(); Max_TimeIn_FirstFlow.ConnectOnSet(TimeIn_FirstFlow); Max_TimeIn_SecondFlow = InitModelObject<Max<double>>(); Max_TimeIn_SecondFlow.ConnectOnSet(TimeIn_SecondFlow); Bool_Kanal = InitModelObjectArray<BoolCollector>(2, ""); Bool_Kanal[0].ConnectOnSet(KZ[0]); Bool_Kanal[1].ConnectOnSet(KZ[1]); }
TRealVar TOZ; //Время обработки заявки в системе #endregion Fields #region Constructors public VU(VS parent, string name) : base(parent, name) { ParentVS = parent; UVD = new UstroystvoVvoda(this, "УВД" + "(" + name + ")"); UR = new UstroystvoRabota(this, "УОД" + "(" + name + ")"); UV = new UstroystvoVyvoda(this, "УВР" + "(" + name + ")"); this.AddModelObject(UVD); this.AddModelObject(UR); this.AddModelObject(UV); #region Инициализация переменных объектов модели KVZ = InitModelObject<TIntVar>(); KOZ = InitModelObject<TIntVar>(); TOZ = InitModelObject<TRealVar>(); KPZ = new int[3]; Gener_Vhod = InitModelObject<ExpStream>(); Gener_RazmerVvod = InitModelObject<UniformStream>(); Gener_RazmerVyvoda = InitModelObject<NormalStream>(); // Gener_RazmerRabota = InitModelObject<ExpStream>(); #endregion #region Инициализация сборщиков статистики Variance_TOZ = InitModelObject<Variance<Double>>(); //создаем сборщик Variance_TOZ.ConnectOnSet(TOZ); //подключаем сборщик к переменной Min_TOZ = InitModelObject<Min<double>>(); //создаем сборщик Min_TOZ.ConnectOnSet(TOZ); //подключаем сборщик к переменной Max_TOZ = InitModelObject<Max<double>>(); //создаем сборщик Max_TOZ.ConnectOnSet(TOZ); //подключаем сборщик к переменной His_TOZ = InitModelObject<DynamicHistogram>(); His_TOZ.ConnectOnSet(TOZ); #endregion }
Variance<Double> Variance_TOZ; //МО и дисперсия #endregion Fields #region Constructors public VS(Model parent, string name) : base(parent, name) { #region Инициализация переменных объектов модели KVZ = InitModelObject<TIntVar>(); KOZ = InitModelObject<TIntVar>(); TOZ = InitModelObject<TRealVar>(); UZEL = new VU[3]; UZEL[0] = new VU(this, "ВУ1"); UZEL[1] = new VU(this, "ВУ2"); UZEL[2] = new VU(this, "ВУ3"); this.AddModelObject(UZEL[0]); this.AddModelObject(UZEL[1]); this.AddModelObject(UZEL[2]); KANAL = new KPD[3]; KANAL[0] = new KPD(this, "КПД(1,2)"); KANAL[1] = new KPD(this, "КПД(1,3)"); KANAL[2] = new KPD(this, "КПД(2,3)"); this.AddModelObject(KANAL[0]); this.AddModelObject(KANAL[1]); this.AddModelObject(KANAL[2]); KANAL[0].VU_1 = UZEL[0]; KANAL[0].VU_2 = UZEL[1]; KANAL[1].VU_1 = UZEL[0]; KANAL[1].VU_2 = UZEL[2]; KANAL[2].VU_1 = UZEL[1]; KANAL[2].VU_2 = UZEL[2]; #endregion #region Инициализация сборщиков статистики Variance_TOZ = InitModelObject<Variance<Double>>(); //создаем сборщик Variance_TOZ.ConnectOnSet(TOZ); //подключаем сборщик к переменной Min_TOZ = InitModelObject<Min<double>>(); //создаем сборщик Min_TOZ.ConnectOnSet(TOZ); //подключаем сборщик к переменной Max_TOZ = InitModelObject<Max<double>>(); //создаем сборщик Max_TOZ.ConnectOnSet(TOZ); //подключаем сборщик к переменной His_TOZ = InitModelObject<DynamicHistogram>(); His_TOZ.ConnectOnSet(TOZ); //-------------------------------------------------- allValuesTest = InitModelObject<AllValues<int>>("Сборщик полной статистики"); dhTest = InitModelObject<DynamicHistogram>("Динамическая гистограмма"); testAV = InitModelObject<TIntVar>("Тестовая переменная 1"); testDH = InitModelObject<TRealVar>("Тестовая переменная 2"); testAV.AddCollectors_OnSet(allValuesTest); testDH.AddCollectors_OnSet(dhTest); //-------------------------------------------------- #endregion /*Tracer.AddAutoTabModel(this); UZEL.ToList().ForEach(u => Tracer.AddAutoTabModel(u)); KANAL.ToList().ForEach(k => Tracer.AddAutoTabModel(k));*/ }
public SmoModel(Model parent, string name) : base(parent, name) { #region Инициализация переменных состояния модели Shops = new Shop[N]; for (int i = 0; i < N; i++) { Shops[i] = new Shop(); Shops[i].ProductAmountCurrent = InitModelObject <TIntVar>("Текущий объем товара в(во) " + i + "-ом магазине "); Shops[i].ProductDemandCurrent = InitModelObject <TIntVar>("Текущий объем спроса на товар в(во) " + i + "-ом магазине "); Shops[i].ProductUnmetDemandCurrent = InitModelObject <TRealVar>("Текущий объем неудовлетворенного спроса в(во) " + i + "-ом магазине "); Shops[i].ProductUnrealizedCurrent = InitModelObject <TRealVar>("Текущий объем пролежанного товара в(во) " + i + "-ом магазине "); Shops[i].HasSendRequest = InitModelObject <TIntVar>("Идентификатор подачи заявки в(во) " + i + "-ом магазине "); Shops[i].RequestsTotalCountCurrent = InitModelObject <TRealVar>("Текцщее количество поданных заявок на пополнение товара в(во) " + i + "-ом магазине "); Shops[i].RequestsTotalCountAll = InitModelObject <TRealVar>("Суммарное количество поданных заявок на пополнение товара в(во) " + i + "-ом магазине "); Shops[i].ProductDemandAll = InitModelObject <TIntVar>("Суммарный объем спроса на товар в(во) " + i + "-ом магазине "); Shops[i].ProductUnmetDemandAll = InitModelObject <TRealVar>("Суммарный объем неудовлетворенного спроса в(во) " + i + "-ом магазине "); Shops[i].ProductUnrealizedAll = InitModelObject <TRealVar>("Суммарный объем пролежанного товара в(во) " + i + "-ом магазине "); } SVST = InitModelObject <TRealVar>("текущий суммарный объем спроса на товар (за день)"); SVSTP = InitModelObject <TRealVar>("Cуммарный объем спроса на товар (за все время)"); // Ряд распределения для времени восстановления товарного запаса в первом магазине ZR_TV_ValueGenerator1 = InitModelObject <DiscreteStream <double> >("Генератор 'Ряд распределения для времени восстановления товарного запаса в первом магазине': "); ZR_TV_ValueGenerator1.Table = new Dictionary <double, double>(); // Ряд распределения для времени восстановления товарного запаса во втором магазине ZR_TV_ValueGenerator2 = InitModelObject <DiscreteStream <double> >("Генератор 'Ряд распределения для времени восстановления товарного запаса во втором магазине': "); ZR_TV_ValueGenerator2.Table = new Dictionary <double, double>(); #endregion #region Инициализация генераторов потоков NormalGenerator_VDS1 = InitModelObject <NormalStream>("генератор потока 'объем дневного спроса в первом магазине'"); NormalGenerator_VDS2 = InitModelObject <NormalStream>("генератор потока 'объем дневного спроса во втором магазине'"); UniformGenerator_TVost1 = InitModelObject <UniformStream>("генератор потока 'время восстановления товарного запаса в первом магазине'"); UniformGenerator_TVost2 = InitModelObject <UniformStream>("генератор потока 'время восстановления товарного запаса во втором магазине'"); #endregion #region Инициализация сборщиков статистики и подключение их к переменным //хранение пролеживаемого товара Variance_SDP_PP = InitModelObjectArray <Variance <double> >(N, "Сборщик статистики: средние дневные потери от пролеживания товара в i-том магазине"); Variance_SDP_PP[0].ConnectOnSet(Shops[0].ProductUnrealizedCurrent); Variance_SDP_PP[1].ConnectOnSet(Shops[1].ProductUnrealizedCurrent); Max_SDP_PP = InitModelObjectArray <Max <double> >(N, "Максимум потерь от пролеживания товара в i-том магазине"); Max_SDP_PP[0].ConnectOnSet(Shops[0].ProductUnrealizedCurrent); Max_SDP_PP[1].ConnectOnSet(Shops[1].ProductUnrealizedCurrent); Min_SDP_PP = InitModelObjectArray <Min <double> >(N, "Минимум потерь от пролеживания товара в i-том магазине"); Min_SDP_PP[0].ConnectOnSet(Shops[0].ProductUnrealizedCurrent); Min_SDP_PP[1].ConnectOnSet(Shops[1].ProductUnrealizedCurrent); //нереализованная прибыль от неудовлетворенного спроса Variance_SDP_PNP = InitModelObjectArray <Variance <double> >(N, "Сборщик статистики: средние дневные потери от неудовлетворенного спроса в i-том магазине"); Variance_SDP_PNP[0].ConnectOnSet(Shops[0].ProductUnmetDemandCurrent); Variance_SDP_PNP[1].ConnectOnSet(Shops[1].ProductUnmetDemandCurrent); Max_SDP_PNP = InitModelObjectArray <Max <double> >(N, "Максимум потерь от нереализованной прибыли в i-том магазине"); Max_SDP_PNP[0].ConnectOnSet(Shops[0].ProductUnmetDemandCurrent); Max_SDP_PNP[1].ConnectOnSet(Shops[1].ProductUnmetDemandCurrent); Min_SDP_PNP = InitModelObjectArray <Min <double> >(N, "Минимум потерь от нереализованной прибыли в i-том магазине"); Min_SDP_PNP[0].ConnectOnSet(Shops[0].ProductUnmetDemandCurrent); Min_SDP_PNP[1].ConnectOnSet(Shops[1].ProductUnmetDemandCurrent); //потери от подачи заявок Variance_SDP_PPZ = InitModelObjectArray <Variance <double> >(N, "Сборщик статистики: средние дневные потери от подачи заявок в i-том магазине"); Variance_SDP_PPZ[0].ConnectOnSet(Shops[0].RequestsTotalCountCurrent); Variance_SDP_PPZ[1].ConnectOnSet(Shops[1].RequestsTotalCountCurrent); Max_SDP_PPZ = InitModelObjectArray <Max <double> >(N, "Максимум потерь от подачи заявок в i-том магазине"); Max_SDP_PPZ[0].ConnectOnSet(Shops[0].RequestsTotalCountCurrent); Max_SDP_PPZ[1].ConnectOnSet(Shops[1].RequestsTotalCountCurrent); Min_SDP_PPZ = InitModelObjectArray <Min <double> >(N, "Минимум потерь от подачи заявок в i-том магазине"); Min_SDP_PPZ[0].ConnectOnSet(Shops[0].RequestsTotalCountCurrent); Min_SDP_PPZ[1].ConnectOnSet(Shops[1].RequestsTotalCountCurrent); // суммарные средние дневные потери торговой системы Variance_SSDS = InitModelObject <Variance <double> >("Сборщик статистики: суммарные средние дневные потери торговой системы"); // SVSTP Variance_SVSTP = InitModelObject <Variance <double> >("Сборщик статистики: МО объема поставок со склада в магазины."); Variance_SVSTP.ConnectOnSet(SVSTP); Max_SVSTP = InitModelObject <Max <double> >("Максимум объема поставок со склада в магазины."); Max_SVSTP.ConnectOnSet(SVSTP); Min_SVSTP = InitModelObject <Min <double> >("Минимум объема поставок со склада в магазины."); Min_SVSTP.ConnectOnSet(SVSTP); #endregion }