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

Считываем из некоторого источника данных классификацию продуктов в качестве коллекции. Функция //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 812 407-10-11
Общество с ограниченной ответственностью "Ново Би Ай"©, ИНН 7813219842
199026, г. Санкт-Петербург, В.О. 26-я линия, д. 15, корп.2, Литер А - БЦ "Биржа"
Государственная аккредитация Минкомсвязи России № 8353

Авторизация