Читайте также:
|
|
Метод PERT/CPM с «авралами»
(Задача о ресурсах)
Это та же модель, что и предыдущая за исключением двух моментов. Во-первых, добавление ресурсов к некоторой операции, как количество рабочих-плотников, занятых на этапе отдели строения, проект может быть выполнен более быстро. Эта ситуация в некоторых кругах называется «авралом». Во-вторых, модель минимизирует затраты на «авралы» при соблюдении временных ограничений.
В нашем примере имеется семь операций (этапов). В нижеприведенной таблице собраны сведения об их взаимосвязях и временах, необходимых для выполнения каждой операции. Для времени приведены два значения — минимальное и нормальное время — вместе с затратами на организацию «аврала».
Операция | Нормальное время | Минимальное время | Затраты на «аврал» | Предшествующие операции |
FIRST | Нет | |||
FCAST | FIRST | |||
SURVEY | FIRST | |||
PRICE | FCAST, SURVEY | |||
SHCED | FCAST | |||
COSTOUT | DCHED | |||
FINAL | PRICE, COSTOUT |
Ниже приведена соответствующая модель.
PERTC.LNGPROJECT MGMT. WITH CRASHING
Тип модели: линейная оптимизация
MODEL:
1]! Модель метода PERT/CPM с авралами;
2]!
3]! Диаграмма порядка выполнения работ:
4]! /FCAST\——SCHED———COSTOUT\
5]! / \ \
6]! FIRST \ \
7]! \ \ \
8]! \SURVEY—PRICE———————————FINAL;
9]
10]SETS:
11] TASK/ FIRST, FCAST, SURVEY, PRICE,
12] SCHED, COSTOUT, FINAL/:
13] TIME,! Нормальное время выполнения;
14] TMIN,! Минимальное время при максимальных доп. затратах (аврале);
15] CCOST,! Затраты на аврал в единицу времени;
16] EF,! Ранние время окончания;
17] CRASH;! Вычисление дополнительных затрат на аврал;
18]
19]! Определим отношения предшествования;
20] PRED(TASK, TASK)/ FIRST,FCAST, FIRST,SURVEY,
21] FCAST,PRICE, FCAST,SCHED, SURVEY,PRICE,
22] SCHED,COSTOUT, PRICE,FINAL, COSTOUT,FINAL/;
23] ENDSETS
24]
25]DATA:
26] TIME = 0, 14, 3, 3, 7, 4, 10;! Нормальное время выполнения;
27] TMIN = 0, 8, 2, 1, 6, 3, 8;! авральное время;
28] CCOST = 0, 4, 1, 2, 4, 5, 3;! удельные затраты на аврал;
29] DUEDATE = 31;! данные, обусловленные проектом;
30]ENDDATA
31]
32]
33]! Модель линейного программирования для аврала;
34]! Определим ранее время окончания, каждый предшественник задачи ограничивает,
35] самое ранее время завершения задачи.
36] Должна закончиться самая ранняя из предшествующих задач плюс
37] время, требуемое для выполнения самой задачи, минус некоторое время
38] на которое может быть уменьшено время выполнения за счет авральных ресурсов.;
39] @FOR(PRED(I, J):
40] EF(J) >= EF(I) + TIME(J) - CRASH(J););
41]
42]! Для каждой задачи, максимум на который она может быть усилена авралом, есть
43] нормальное время ее выполнения минус минимальное время ее выполнения;
44] @FOR(TASK(J):
45] CRASH(J) <= TIME(J) - TMIN(J););
46]
47]! Вспомним о времени всего проекта;
48]! При этом предполагается, что имеется только одна последняя задача;
49] EF(@SIZE(TASK)) <= DUEDATE;
50]
51]! Минимизируем сумму авральных затрат;
52] MIN = @SUM(TASK: CCOST * CRASH);
END
Ниже показано решение для наиболее важных переменных, CRASH и EF.
OPTIMUM FOUND AT STEP 5
SOLUTION OBJECTIVE VALUE = 14.00
VARIABLE VALUE REDUCED COST
CRASH(FIRST).0000000.0000000
CRASH(FCAST) 1.000000.0000000
CRASH(SURVEY).0000000 1.000000
CRASH(PRICE).0000000 2.000000
CRASH(SCHED) 1.000000.0000000
CRASH(COSTOUT).0000000 1.000000
CRASH(FINAL) 2.000000.0000000
EF(FIRST).0000000 4.000000
EF(FCAST) 13.00000.0000000
EF(SURVEY) 3.000000.0000000
EF(PRICE) 16.00000.0000000
EF(SCHED) 19.00000.0000000
EF(COSTOUT) 23.00000.0000000
EF(FINAL) 31.00000.0000000
Таким образом, мы должны обеспечить дополнительными ресурсами (аврал) операции FCAST, SCHED И FINAL, получив суммарный выигрыш в четыре временных единицы, сократив общее время выполнения проекта с 35 единиц до 31. Общие затраты на дополнительные ресурсы (авралы) составляют 14.
Модель экономичного заказа (EOQ)
с дисконтом
Модель экономичного заказа (EOQ — Economic Order Quantity) минимизирует затраты на оформление заказа и затраты на хранение товара с целью определения оптимального размера заказа. Простейшая модель EOQ предполагает, что остается постоянным спрос и затраты на единицу товара не зависят от размера заказа. При этих условиях количество заказываемого товара может быть вычислено по формуле:
EOQ = (2 * K * D / H) ^.5
где K представляют затраты на размещение заказа, D — ежегодный спрос и H — затраты на хранение единицы товара.
В действительности затраты на единицу товара скорее всего зависят размера заказа — если вы намереваетесь закупить большую партию, то вероятно цена единицы товара будет ниже. В такой ситуации, когда существует скидка (дисконт), зависящая от размера заказа, вы должны для определения оптимального размера заказа сопоставлять затраты для различных цен.
Структура цен для нашего примера приведена в таблице:
Размер заказа (q) | Цена за единицу товара |
0 < q < 1000 | $0.35225 |
1000 < q < 2000 | $0.34525 |
2000 < 1 < 4000 | $0.34175 |
4000 < 1 < 6000 | $0.33825 |
Модель сначала вычисляет экономичный размер заказа, EOQ, для каждого заданного диапазона затрат на хранение, H, и затрат на размещение заказа K.
Оптимальный размер Q заказа для каждого из диапазонов будет равен вычисленному значению EOQ, если EOQ попадает внутрь допустимого диапазон q. Если же вычисленное значение EOQ оказывается вне соответствующего диапазона, то Q должно быть скорректировано. Например, если EOQ для диапазона 1000<q<2000 оказывается ниже 1000, то оптимальный размер должен быть принят равным 1000. Аналогично, если EOQ для этого диапазона оказывается выше 2000, то Q следует скорректировать до значения 2000.
Исходя из значений Q для каждого диапазона вычисляются средние затраты AC за год. Фактической величиной заказа тогда будет та, которая дает наименьшие средние затраты.
Замечание: Данная модель использует операторы сравнения #LE#, #GE# и #EQ#. Если выражение, содержащее операторы сравнения, истинно, то возвращается значение 1. Если выражение принимает значение «ложь», то возвращается значение 0. Например, A*(B#GE#C) эквивалентно A*1, если B больше или равно C, и равно A*0, если B меньше C.
QDISCX.LNG OPTIMAL ORDER QUANTITY
Тип модели: явная
MODEL:
1]! Экономичный размер заказа с дисконтом;
2]! Эта модель определяет оптимальный размер заказа
3] товара, который имеет дисконтируется в зависимости от размера заказа;
4]SETS:
5]! временные отрезки с атрибутами;
6]RANGE/1..4/: B,! верхняя граница;
7] P,! цена на единицу за период;
8] H,! удельные затраты на хранение единицы товара за период;
9] EOQ,! EOQ использующий значения H и K на данном отрезке времени;
10] Q,! оптимальный размер заказа в данный период;
11] AC;! Средние годовые затраты, использующие Q за этот период;
12]ENDSETS
13]
14]DATA:
15] D = 40000;! годовые потребности;
16] K = 90;! Фиксированные затраты на оформление заказа;
17] IRATE =.2;! годовая процентная ставка;
18]! Данные для верхней границы, B, цены за единицу товара, P:
19] Range: 1 2 3 4;
20] B = 10000, 20000, 40000, 60000;
21] P =.35225,.34525,.34175,.33825;
22]ENDDATA
23]
24]! Модель;
25]! вычислим затраты на хранение, H, и EOQ для каждого отрезка времени;
26] @FOR(RANGE:
27] H = IRATE * P;
28] EOQ = (2 * K * D/ H) ^.5;
29]);
30]
31]! Для первого периода оптимальный размер заказа
32] равен EOQ...;
33] Q(1) = EOQ(1)
34]! но если EOQ превышает первую верхнюю границу, уменьшаем его;
35] - (EOQ(1) - B(1) + 1) * (EOQ(1) #GE# B(1));
36]
37] @FOR(RANGE(J)| J #GT# 1:
38]! Аналогично, для последующих отрезков времени, Q = EOQ....;
39] Q(J) = EOQ(J) +
40]! но если EOQ меньше нижней границы, увеличиваем его;
41] (B(J-1) - EOQ(J)) * (EOQ(J) #LT# B(J - 1))
42]! или если EOQ превышает верхнюю границу, уменьшаем его;
43] - (EOQ(J44]);
45]
46]! Вычислим средние годовые затраты, AC, для каждого периода;
47] @FOR(RANGE: AC = P * D + H * Q/ 2 + K * D/ Q;);
48]! Найдем наибольшие средние затраты, ACMIN.;
49] ACMIN = @MIN(RANGE: AC);
50]! Выберем Q, которое дает самый низкий AC за год;
51]! напомним, что: TRUE = 1, FALSE = 0;
52] QUSE = @SUM(RANGE: Q * (AC #EQ# ACMIN));
END
) - B(J) + 1) * (EOQ(J) #GE# B(J));
Решение для неизвестных в данной модели следующее:
VARIABLE VALUE
ACMIN 14515.10
QUSE 10211.38
EOQ(1) 10109.41
EOQ(2) 10211.38
EOQ(3) 10263.54
EOQ(4) 10316.50
Q(1) 9999.000
Q(2) 10211.38
Q(3) 20000.00
Q(4) 40000.00
AC(1) 14802.25
AC(2) 14515.10
AC(3) 14533.50
AC(4) 1 4973.00
Задача массового обслуживания со многими пунктами обслуживания
и многими потребителями
Следующий пример из теории массового обслуживания предполагает, что имеется несколько пунктов обслуживания (серверов) и потребителей, прибывающих группами. Подобную ситуацию можно встретить на станции авто-обслуживания, где потребителями являются автомобили, подлежащие ремонту, а пакетом потребителей может служить грузовая платформа, прибывающая с автотрассы, и загруженная несколькими автомашинами для ремонта.
Параметры системы определены в строках 22–29 секции DATA. Атрибут A есть функция распределения вероятности для количества потребителей, прибывающих в группе. LMDA есть среднее количество групп, прибывающих в единицу времени. S — это количество серверов в системе и MU — количество потребителей, которое может обслужить в среднем один сервер в единицу времени.
Модель вычисляет вероятности P(i), i=1..41, где P(i) есть вероятность того, что в некоторый момент времени в системе находится (i-1) потребителей. Для того, чтобы вычислить эти 41 неизвестных величин, нам необходимо 41 уравнений. Одно из уравнений определяется условием, что сумма всех вероятностей равна 1 (строка 54). Остальные 40 уравнений определяются предположением о стабильной стационарной работе системы (строки 34–50).
Мы считаем, что система находится в состоянии равновесия, если тенденция выйти из данного состояния равна тенденции вернуться к этому состоянию. Это известно также как принцип «скорость входа равна скорости выхода» (RATE IN=RATE OUT). Строки 37–41 обеспечивают выполнение этого условия для состояния, когда количество потребителей в системе меньше или равно количеству серверов. Строки 46–50 обеспечивают выполнение этого условия в случае, когда количество потребителей превышает количество серверов.
Описанная модель приведена ниже.
QUEUEM.LNG STEADY STAT E EQ. OF A QUEUE
Тип модели: явная задача
MODEL:
1]
2]! Модель массового обслуживания с потребителями, поступающими группами. В данном
3] частном пример, они могут прибывать группами
4] из 1, 2, 3, or 4 единиц;
5]
6]SETS:
7]
8]! Проверьте выполнение условия, что P(i) для больших i
9] фактически равно нулю, где P(i) вероятность стационарного
10] состояния с i-1 потребителями в системе;
11]
12] STATE/ 1..41/: P;
13]
14]! Размеры потенциальных групп 1, 2, 3 или 4 потребителей,
15] и A(i) = вероятность того, что прибывающая группа
16] состоит из i потребителей;
17]
18] BSIZE/ 1..4/: A;
19]
20]ENDSETS
21]
22]DATA:
23]
24] A =.1,.2,.3,.4;! Распределение размеров групп;
25] LMDA = 1.5;! количество групп, прибывающих в единицу времени;
26] S = 5;! количество серверов;
27] MU = 2;! Количество потребителей, которое сервер может обслужить
28] за единицу времени;
29]ENDDATA
30]
31]! LAST = сумма состояния;
32] LAST = @SIZE(STATE);
33]
34]!Балансовые уравнения для состояний, в которых количество потребителей
35]в системе <= количества серверов;
36]
37] @FOR(STATE(N)| N #LE# S:
38] P(N) * ((N - 1)* MU + LMDA) =
39] P(N + 1) * MU * N +
40] LMDA * @SUM(BSIZE(I)| I #LT# N: A(I) * P(N - I))
41]);
42]
43]!Балансовое уравнение для состояний, в которых количество потребителей
44] в системе больше количество серверов, но меньше предельного;
45]
46] @FOR(STATE(N)| N #GT# S #AND# N #LT# LAST:
47] P(N) * (S * MU + LMDA) =
48] P(N + 1) * MU * S +
49] LMDA * @SUM(BSIZE(I)| I #LT# N: A(I) * P(N - I))
50]);
51]
52]! Сумма вероятностей должна быть равна 1;
53]
54] @SUM(STATE: P) = 1;
55]
END
Решением для неизвестной P является:
VARIABLE VALUE
P(1).2450015
P(2).1837511
P(3).1515947
P(4).1221180
P(5) 0.9097117E-01
P(6) 0.5707411E-01
P(7) 0.4276029E-01
P(8) 0.3099810E-01
P(9) 0.2187340E-01
P(10) 0.1538003E-01
P(11) 0.1108033E-01
P(12) 0.7894943E-02
P(13) 0.5607390E-02
P(14) 0.3993159E-02
P(15) 0.2849757E-02
P(16) 0.2029009E-02
P(17) 0.1444790E-02
P(18) 0.1029445E-02
P(19) 0.7334915E-03
P(20) 0.5224391E-03
P(21) 0.3721631E-03
P(22) 0.2651337E-03
P(23) 0.1888743E-03
P(24) 0.1345443E-03
P(25) 0.9584516E-04
P(26) 0.6827673E-04
P(27) 0.4863687E-04
P(28) 0.3464594E-04
P(29) 0.2467928E-04
P(30) 0.1757922E-04
P(31) 0.1252127E-04
P(32) 0.8918113E-05
P(33) 0.6351310E-05
P(34) 0.4522775E-05
P(35) 0.3220169E-05
P(36) 0.2292222E-05
P(37) 0.1631173E-05
P(38) 0.1160257E-05
P(39) 0.8247877E-06
P(40) 0.5858067E-06
P(41) 0.4155620E-06
Оптимизация стратегии выборок
СЛОВЕСНАЯ ФОРМУЛИРОВКА ЗАДАЧИ
В вашей работе по исследованию рынка изготовителей бытовой аппаратуры вы должны определить тенденцию спроса на вашу продукцию. Вам необходимо определить два математических ожидания, используя минимальную (с минимальными затратами) выборку, чтобы получить достоверный результат. Для уменьшения ошибки вы население на группы по величине их доходов. Вы задаете два вопроса:
ОСНОВАНИЯ
Данные по населению выглядят следующим образом:
Ответы | ||||
Слой населения | Величина доходов | Размер популяции | Вопрос 1 | Вопрос2 |
$50,001 и выше | 400,000 | |||
35,001–50,000 | 300,000 | |||
22,501–35,000 | 200,000 | |||
Ниже 22,000 | 100,000 |
Вы определяете верхний допустимый предел для дисперсии по обеим средним выборки и вы знаете дисперсию по категориям для каждой группы населения.
Секция SETS создает простое множество STRATUM в строке 6 из четырех элементов, каждый из которых имеет атрибуты SIZE (размер выборки), POP (популяция), COST (затраты) и WEIGHT (вес). В строке 7 определяется множество CATEGORY из двух элементов, каждый из которых имеет атрибуты VARMAX (максимальное допустимое отклонение) и K2, используемое при вычислении дисперсии. В строке 8 производное множество SRX определяет VAR (дисперсию) для каждой пары CATEGORY и STRATUM, а также K1, используемое при вычислении дисперсии выборки.
K1 и K2 являются промежуточными величинами, используемыми при определении дисперсии в группах. K2 по каждой категории вычисляется в строках с 32 по 35 как WEIGHT*VAR2/SIZE (вес, умноженный на квадрат дисперсии и деленный на размер популяции). Величина K1 вычисляется в строках с 36 по 38 для каждой категории в каждой группе населения как WEIGHT2*VAR2 (квадрат веса на квадрат дисперсии).
ПЕРЕМЕННЫЕ
Переменной является размер выборки SIZE для каждой группы населения.
ЦЕЛЕВАЯ ФУНКЦИЯ
Целевая функция в строке 25 минимизирует затраты на получение выборки по четырем группам населения.
ОГРАНИЧЕНИЯ
В строке 30 на размер SIZE выборки накладывается ограничение целочисленности.
В строках с 39 по 41 дисперсия для двух измеряемых категорий ограничена сверху, чтобы обеспечить разумные оценки.
В строке 42 установлена нижняя граница для размера выборки в виде 0.0001 (это гарантирует, что при вычислениях не появится ошибка деления на ноль) и верхняя граница на размер популяции.
Эта постановка задачи взята из книги Sampling Techniques, W.G. Cochran, 2nd Ed. Wiley, New York, 1963, к которой может обратиться интересующийся читатель.
Ниже приведена соответствующая модель.
SAMPLE2.LNG CONSTRAINED-VARIANCE SAMPLING
Тип модели: нелинейная оптимизация
MODEL:
1]! Модель групповых выборок, взятая из Bracken
2] и McCormick. Минимизирует затраты на выборки из
3] четырех групп, при условии, что дисперсия в выборках оценивается по двум категориям;
5] SETS:
6] STRATUM/1..4/: SIZE, POP, COST, WEIGHT;
7] CATEGORY/1..2/: VARMAX, K2;
8] SXC(STRATUM, CATEGORY): VAR, K1;
9] ENDSETS
10]! POP = популяция в каждой группе.
11] COST = затраты на выборку в каждой.
12] VARMAX = предел дисперсии.
13] VAR = дисперсия для каждой категории в каждой группе.
14] CFIX = фиксированные затраты;
15] DATA:
16] POP = 400000, 300000, 200000, 100000;
17] COST = 1, 1, 1, 1;
18] VARMAX =.043,.014;
19] VAR = 25 1
20] 25 4
21] 25 16
22] 25 64;
23] CFIX = 1;
24] ENDDATA
25] [ OBJ] MIN = CFIX + @SUM(STRATUM: SIZE * COST);
26]! Вычислим некоторые параметры;
27] TOTP = @SUM(STRATUM(I): POP(I));
28] @FOR(STRATUM(I):
29] WEIGHT(I)=POP(I)/TOTP;! Вес для каждой категории;
30] @GIN(SIZE(I));
31]);
32] @FOR(CATEGORY(J):
33] K2(J) =
34] @SUM(STRATUM(I): VAR(I, J)^2 * WEIGHT(I)/ POP(
I));
35]);
36] @FOR(SXC(I, J):
37] K1(I, J) = VAR(I, J)^2* WEIGHT(I)^2;
38]);
39] @FOR(CATEGORY(J):
40] @SUM(STRATUM(I): K1(I, J) / SIZE(I))
41] - K2(J) < VARMAX(J););
42] @FOR(STRATUM(I): @BND(0.0001, SIZE(I), POP(I) -1);
43]);
END
Решение модели возвращает размеры выборок, равные 206, 164, 134 и 100 с величиной минимальных затрат (COST), равной 605.
Экспоненциальное сглаживание
СЛОВЕСНАЯ ФОРМУЛИРОВКА ЗАДАЧИ
Чтобы минимизировать затраты на создание излишка товара и затраты на из хранение, для ваших торговых точек необходимо иметь прогноз относительно будущих продаж.
ОСНОВАНИЯ
При использовании взвешенных средних для «сглаживания» предыдущих данных, техника экспоненциального сглаживания позволяет получить прогноз на следующий период.
Базовая модель экспоненциального сглаживания выглядит следующим образом:
где — фактическое значение за период (t+1),
— предсказанное значение за период t,
–- — фактическое значение за период t,
a(альфа) — параметр сглаживания.
В данной простой задаче экспоненциального сглаживания вы имеете данные по продаже (в $1000) за восемь месяцев. Вы должны найти a, параметр сглаживания, который минимизирует сумму ошибок — в данном случае разницу между наблюдаемым и предсказанным значениями продаж за каждый период.
Если положить a равным 1, продажи в следующий период основываются только на значении предыдущего периода. Если же взять a равным 0, то фактическое значение из последнего периода полностью игнорируется. Поскольку ни один из этих случаев не дает возможности реально представить будущие данные, мы ограничим величину значениями между 0.01 и 0.9999
В секции SETS в строке 3 создается только одно простое множество, состоящее из восьми периодов (PERIODS) и с атрибутами OBSERVED (наблюдаемые продажи), ERROR)ошибка, вычисляемая в строке 26) и PREDICT (предсказанные продажи).
ПЕРЕМЕННЫЕ
Переменными являются PREDICT (предсказанные значения продаж) и параметр сглаживания a. Заметим, что PREDICT(1)? Предсказание для первого периода, равно фиксированной величине 10, что устанавливается в строке 17, поскольку для не имеется предшествующих периодов, на которых можно было бы строить предсказание.
ЦЕЛЕВАЯ ФУНКЦИЯ
Целевая функции в строке 19 соответствует минимизации суммы квадратов отклонений.
ОГРАНИЧЕНИЯ
Ограничение в строках с 22 по 24 воспроизводят базовую модель экспоненциального сглаживания, представленную выше, для каждого из предсказываемых периодов. В строке 31 величина a ограничивается значениями 0.00й и 0.999.
SIMXPO.LNG FORECASTING SALES
Тип модели: нелинейная оптимизация
MODEL:
1]
2]SETS:
3] PERIODS /1..8/: OBSERVED, ERROR, PREDICT;
4]ENDSETS
5]
6]DATA:
7]
8]! Степень целевой функции. N может быть изменено
9] на 1 чтобы минимизировать абсолютную величину отклонений;
10] N = 2;
11]
12]! Наблюдаемые значения временного ряда;
13] OBSERVED = 10 14 12 19 14 21 19 26;
14]
15]ENDDATA
16]! Для периода 1 положим предсказание равным 10;
17] PREDICT(1) = 10;
18]! Целевая функция;
19] [OBJ] MIN= @SUM(PERIODS: @ABS(ERROR) ^ N);
20]
21]! Вычислим прогнозируемые значения;
22] @FOR(PERIODS(T) | T #GT# 1:
23] PREDICT(T) = ALPHA * OBSERVED(T - 1) +
24] (1 - ALPHA) * PREDICT(T - 1));
25]! Вычислим ошибку прогноза;
26] @FOR(PERIODS: ERROR = PREDICT - OBSERVED);
27]
28]! Величина ошибки может быть как положительной, так и отрицательной;
29] @FOR(PERIODS: @FREE(ERROR));
30]! Исключим не имеющие смысла значения Alpha, равные 0 и 1;
31] @BND(.01, ALPHA,.9999);
32]
33]
END
При решении модели найдено значение a, равное 0.650. Этот простой пример может быть усовершенствован и его принципы можно применять различными способами. Пример на следующей странице вводит в описанную картину продаж сезонный фактор.
Прогнозирование сезонных продаж
СЛЛВЕСНАЯ ФОРМУЛИРОВКА ЗАДАЧИ
Если вы продаете сезонные продукты, то полезно знать, как влияют сезоны на продажи и их рост. Эта информация поможет вам прогнозировать продажи и принимать решение на оформление будущих заказов. Данная модель вычисляет сезонный фактор, который измеряет влияние каждого сезона на продажи. Он использует линейную зависимость (прямую линию) нормализованных данных для минимизации суммы квадратов ошибок. Так называемый «тренд», или наклон этой прямой, есть рост продаж за сезон. Базовой величиной (BASE) является значение на графике продаж в нулевой момент времени.
ОСНОВАНИЯ
Вы имеете данные по сезонным продажам за последние два года:
В секции SETS создается два простых множества. В строке 4 множество PERIODS состоит из восьми элементов с атрибутами OBSERVED (наблюдаемые значения), PREDICT (предсказанные значения) и ERROR (ошибка). Множество SEASONS в строке 5 состоит из четырех элементов с атрибутом SEASFAC (сезонный фактор).
Секция данных DATA в строке 10 содержит степень целевой функции и данные для атрибута OBSERVED в строке 11.
В строках с 21 по 23 вычисляются для каждого периода предсказываемые значения PREDICT. Величина ошибки ERROR для каждого периода определяется в строках с 26 по 27 вычитанием значения OBSERVED из значения PREDICT.
Наконец, поскольку величина ошибки может быть и отрицательной, в строке 30 используется функция @FREE.
ПЕРЕМЕННЫЕ
Переменными являются величины TREND и BASE, а также четыре сезонных фактора (SEASFAC).
ЦЕЛЕВАЯ ФУНКЦИЯ
Целевая функция состоит в минимизации суммы квадратов ошибок по всем восьми сезонам.
ОГРАНИЧЕНИЯ
Единственным ограничением в задаче является то, что в среднем сезонные факторы равны 1 (их сумма равна 4), что зафиксировано в строке 18.
SEASON.LNG FORECASTING SALES BY SEASON
Тип модели: нелинейная оптимизация
MODEL:
1]! Вычисляет сезонные факторы, тренд и базу
2]! Временного ряда;
3]SETS:
4] PERIODS /1..8/: OBSERVED, PREDICT, ERROR;
5] SEASONS /1..4/: SEASFAC;
6]ENDSETS
7]
8]DATA:
9]! Степень целевой функции;
10] N = 2;
11] OBSERVED = 10 14 12 19 14 21 19 26;
12]ENDDATA
13]
14]! Целевая функция;
15] [OBJ] MIN = @SUM(PERIODS: @ABS(ERROR) ^ N);
16]
17]! Сезонные факторы должны быть в среднем равны 1;
18] @SUM(SEASONS: SEASFAC) = 4;
19]
20]! Предсказанные продажи;
21] @FOR(PERIODS(P): PREDICT(P) =
22] SEASFAC(@WRAP(P, @SIZE(SEASONS)))
23] * (BASE + P * TREND));
24]
25]! Здесь вычисляются ошибки;
26] @FOR(PERIODS(P): ERROR(P) =
27] PREDICT(P) - OBSERVED(P));
28]
29]! Величина ошибок может быть как положительной, так и отрицательной;
30] @FOR(PERIODS: @FREE(ERROR));
31]
END
Получено следующее решение: TREND=1.55; BASE=9.72; для четырех сезонных факторов получены следующие значения: 0,83, 1.10, 0.89 и 1.18. А именно, весенний фактор равен 0.83 — другими словами весенние продажи составляют 083% от средней величины. Значение «тренда» получено равным 1.55. Это означает, что при учете сезонного фактора, продажи возрастают в среднем на $1550 за сезон.
Дата добавления: 2015-11-16; просмотров: 70 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
СЛОВЕСНАЯ ФОРМУЛИРОВКА ЗАДАЧИ | | | Complete these sentences. |