Пример кода для выполнения процесса МКП одним методом с одной классификацией

Считываем из некоторого источника данных классификацию продуктов в качестве коллекции. Функция //ReadProductClassifiers — условная.
List inputProductClassifersList = ReadProductClassifiers(connectionString);

Количество уровней в классификации.
int productClassificationLevelsQuantity = 5;

Создаем пул классификации.
CUniLogicInputClassifiersPool productClassifiersPool =
new CUniLogicInputClassifiersPool(inputProductClassifersList, productClassificationLevelsQuantity);

Классификация-коллекция больше не нужна.
inputProductClassifersList = null;

Считываем из некоторого источника данных статистику (исходные статистические данные). Функция //ReadStatistics — условная.
List currentRawInputStatisticsList = ReadStatistics(connectionString);

Создаем объект входящих данных.
CUniLogicInputData inputData = new CUniLogicInputData();

Добавляем пул классификации в объект входящих данных.
inputData.ClassPools.Add(productClassifiersPool);

Добавляем статистику в объект входящих данных.
inputData.Statistics.AddRange(currentRawInputStatisticsList);
CEngineFactory engineFactory = new CEngineFactory();

Задаем границы интервала исходных статистических данных, размер цикла прогнозирования и создаем //настройки процессора.
DateTime firstDate = new DateTime(2014, 1, 3);
DateTime lastDate = new DateTime(2016, 11, 30);
int cycleSize = 12;
CUniLogicProcessorSettings procSettings = new CUniLogicProcessorSettings(ETimeSeed.Month, firstDate, lastDate, cycleSize);

Создаем процессор, передавая ему входящие данные и настройки самого процессора.
UniLogicProcessor processor = engineFactory.CreateUniLogicProcessor(inputData, procSettings);

Создаем настройки процесса прогнозирования. Прогноз на 15 месяцев, распределение пропорционального типа.
CUniLogicFullProcessSettings fullProcessSettings = new CUniLogicFullProcessSettings();
fullProcessSettings.GroupForecastSettings.ForecastPeriod = 15;
fullProcessSettings.DistributeSettings.ByCalender = false;

Запускаем расчет прогноза.
CUniLogicForecastResult forecastResult = processor.FullProcess(fullProcessSettings);

Для того, чтобы выполнить то же самое, но по частям (двумя методами), в приведенном выше коде необходимо вызов метода FullProcess заменить следующим:
Запускаем этап анализа.
List<dictionary<int, int="">> analyzeResults = processor.Analyze(fullProcessSettings);
Запускаем этапы Диагностики, Прогнозирования по группам, Распределения.
CUniLogicForecastResult result = processor.Forecast(analyzeResults, fullProcessSettings);

Для расчета с двумя классификациями необходимо считать ещё одну классификацию, создать для неё пул так же, как для первой и добавить ее в объект входящих данных. Также может быть полезным в таком случае установить пропорционально-календарный метод распределения.

Оставить комментарий

Вы комментируете как Гость.

Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
+7 (495) 215 10 82
ООО "Ново Биай" © 121205, Москва, территория инновационного центра «Сколково», Большой бульвар, 42, стр. 1, этаж 3, офис 1131

Исследования осуществляются Novo BI при грантовой поддержке Фонда «Сколково»

 Исследования осуществляются Novo BI при грантовой поддержке Фонда «Сколково»
ИНН 7813219842
Государственная аккредитация Минкомсвязи России № 8353