Тема: "ПАУТИНООБРАЗНАЯ" МОДЕЛЬ ФИРМЫ
1. ВВЕДЕНИЕ
Пусть предприниматель собирается вложить средства в создание фирмы, которая будет выпускать товар и реализовывать его на рынке. Его интересует, как будет вести себя цена на товар при изменении объема производства. Опыт подсказывает, что при увеличении производства происходит падение спроса и приходится снижать цену. Ему хотелось бы знать, при каких условиях пена будет стабильной. Можно ли дать ответ на этот вопрос с помощью математической модели?
Консультант объясняет, что в литературе описано несколько вариантов такой модели. Все они обладают определенными одинаковыми свойствами. Обычно в них предполагается, что спрос на некоторый продукт (чаще всего рассматривается сельскохозяйственная продукция) на заданном отрезке времени зависит от цены (и других факторов) на этом отрезке. Что же касается предложения, то оно определяется ценами предыдущего периода времени (недели, месяца, квартала и т. д). Кроме того, предполагается, что рынок всегда находится в условиях локального равновесия. Исторически такая модель получила название "Паутинообразной", вероятно, потому, что такого же принципа "учета предыдущего шага" придерживается паук, когда он ткет паутину.
Существуют четыре варианта этой модели: детерминированная, вероятностная, модель с обучением и модель с запасами,
Предприниматель интересуется, чем они отличаются друг от друга?
Консультант отвечает, что в детерминированной модели отсутствует учет случайных факторов. В вероятностной модели учитываются влияние на спрос непредвиденных колебаний предпочтений и доходов потребителей, а также другие случайные факторы, влияющие на величину спроса. Предложение на предыдущем отрезке времени также считается подверженным наличию случайных факторов. Они отражают влияние колебаний технологии и эффективности производственного процесса и т д. Наконец, условие локального равновесия означает совпадение спроса и предложения с точностью до некоторой случайной величины.
В модели с обучением предполагается, что поставщики учитывают сложившуюся тенденцию изменения цен и с учетом этого планируют выпуск продукции на очередной отрезок времени.
В вероятностной модели и в модели с обучением цены устанавливаются на таком уровне, чтобы обеспечить локальное равновесие рынка только за счет текущего производства, и никаких запасов продукции не создается (например, потому, что продуты быстро портятся).
В модель с запасами вводится дополнительная группа участников рыночного механизма, которых можно назвать "коммерсантами". Они держат запасы и организуют торговлю.
Предприниматель считает, что для его случая, наверное, больше подойдет вероятностная модель с обучением. Его интересует, при каких допущениях она составлена? Как выглядит зависимость для определения текущего спроса?
Консультант отвечает: "Предполагается, что спрос на Т-м отрезке времени линейно зависит от текущей цены и, кроме того, спрос подвержен случайному разбросу. Таким образом, для описания спроса нужно задать коэффициенты линейного уравнения: (например А и В) и случайную величину (например. UТ), имеющую заданное распределение."
В результате получается расчетная формула следующего вида:
D T= A – B*PT + UT, | (1) |
где: D T – спрос на Т-м отрезке;
А, В - коэффициенты линейного уравнения;
РТ - подлежащая определению цена на Т-м отрезке времени;
UT - случайная величина с заданным законом распределения.
Предприниматель интересуется, что означает знак "минус"?
Консультант отвечает, что с повышением цены спрос на продукцию снижается.
Предпринимателя интересует, какое именно распределение следует выбрать в этом случае?
Логично предположить, что спрос симметрично колеблется относительно среднего значения, которое определяется постоянными коэффициентами линейного уравнения. Поэтому можно выбрать нормальное распределение с нулевым математическим ожиданием и заданным средним квадратическим отклонением (СКО) – σu.
Как определяется предложение?
Предполагается, что предложение на текущем отрезке также линейно зависит от цены, но не текущей, а представляющей собой некоторую комбинацию цен на двух предыдущих отрезках времени. В простейшем случае это может быть средняя цена. Поэтому, для расчета предложения используется следующая зависимость:
SТ=С+Е*Р()+VT |
(2) |
где SТ – предложение на Т-м отрезке времени;
С, Е – коэффициенты линейного уравнения;
Р() – среднее (точнее, средневзвешенное) значение цены на двух предыдущих отрезках времени;
VТ - случайная величина с заданным законом распределения.
Предприниматель интересуется: "И опять нормальное распределение?"
Да, конечно, с теми же основаниями. Только с другим СКО –σv.
А как определяется средняя цена за предшествующий период?
Средневзвешенная цена определяется по формуле:
Р()= РТ-1 – (РТ-1 – РТ-2). |
(3) |
Нетрудно убедиться в том, чтo при = 0 средневзвешенная цена Р(р) = РТ-1 . Это означает, что обучение в модель не заложено. Для другого крайнего случая (при = 1) средневзвешенная цена Р() = РТ-2. Это также означает, что обучение в модели отсутствует, но для определения предложения используется более удаленная цена, Наконец, при = 0,5 средневзвешенная цена Р() равна среднему арифметическому значению из цен РТ-1 и РТ-2.
Еще добавить уравнение локального равновесия рынка, которое можно записать так:
st = dt+wt, | (4) |
где SТ — предложение на Т-м отрезке времени;
DT — спрос на Т-м отрезке времени;
WТ — случайная величина с заданным распределением.
Примем опять нормальное распределение. Для выбора других распределений нет особых оснований. Можно было бы взять усеченное нормальное распределение, но не ясно, какова должна быть величина усечений. Случайная величина WТ характеризуется нулевым математическим ожиданием н средним квадратическим отклонением σw.
А как же все-таки в модели определяется закон изменения цены на продукт во времени?
Система уравнений (1), (2), (З) н (4) после преобразований сводится к выражению вида:
РТ = F(PT-1, PT-2) | (5) |
Вначале необходимо каким-либо приближенным способом определить цену для первых двух отрезков времени. После этого можно производить вычисления по зависимости (5) неограниченное число раз. Результаты расчетов удобнее всего представить в виде графика.
2. КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ
Пусть имеется торговая фирма, реализующая некоторый товар на рынке.
Спрос на товар на Т-м отрезке времени линейно зависит от текущей цены РТ и случайной переменной UТ, учитывающей влияние случайных факторов на величину спроса. Переменная UT имеет нормальное распределение с нулевым математическим ожиданием Мu и заданным СКО - σu. Таким образом, зависимость для спроса на товар имеет следующий вид:
DT = A - B*PT + UT.
Предложение на Т-м отрезке времени рассчитывается с учетом обучения системы. Поэтому оно зависит от цены на предыдущих (Т-1)-м и (Т-2)-м отрезках времени и случайной переменной VT, которая учитывает влияние случайных факторов на величину предложения. Переменная VT имеет нормальное распределение с нулевым математическим ожиданием Mv и заданным СКО σv. Таким образом, зависимости для предложения имеют следующий вид:
SТ=С+Е*Р()+VT,
Р()= РТ-1 – (РТ-1 – РТ-2),
где – весовой коэффициент, задаваемый в диапазоне (0<=<=1).
Условие локального равновесия рынка означает совпадение спроса и предложения с точностью до случайной величины WТ. Предполагается, что переменная WT имеет нормальное распределение с нулевым математическим ожиданием Мw и заданным СКО σw. Зависимость, учитывающая равновесие рынка, имеет вид:
ST = DT + WT. | (6) |
Подставляя выражения для DT , P(p) и ST в (6) и разрешая уравнение относительно РT, получаем:
PT= [A - C - E*[ PT-1 – *( PT-1 – PT-2 )] + UT – VT + WT] / B |
(7) |
Поскольку для определения величины РT необходимо знать значения РT-1 и РТ-2 для двух предыдущих отрезков времени, то проводить расчеты по формуле (7) можно только, начиная с 3-го отрезка, при условии, что Р1 и Р2 известны.
Для их нахождения сделаем дополнительное допущение о том, что на первых двух отрезках обучение отсутствует, т. е. весовой коэффициент = 0. Без учета случайностей цена на 2-м отрезке определится по формуле
Р2 = (А - С - Е * Р1) / В. |
(8) |
Если предположить, что перед началом работы фирмы исходная цена совпадает с ценой на 1-м отрезке, то величина P1 определится по формуле
Р1 = (А – С) / (В + Е). | (9) |
Задача моделирования заключается в исследовании влияния параметров системы на характер зависимости цены от времени.
3. СХЕМЫ АЛГОРИТМОВ МОДЕЛИ
В качестве языка программирования для разработки компьютерной модели рассматриваемого процесса можно выбрать Visual Basic. Один из возможных вариантов общего вида (макета) стартовой формы состоит из 8 текстовых полей для ввода и корректировки исходных данных (параметров А, В, С, Е, Ro, SigU, SigV и SigW) в верхней части окна. В нижней части окна располагаются три командные кнопки. Кнопка "Расчет" предназначена для проведения расчетов. Кнопка "График" служит для построения в центральной части окна графика зависимости цены от времени. Кнопка "Выход" используется при окончании работы с программой.
Схема алгоритма процедур обработки прерываний показана на рис. 1. После подачи команды Start на экране появляется активная стартовая форма. С этого момента программа находится в режиме ожидания действий пользователя.
Рисунок1
Цифрой 1 на схеме обозначено действие пользователя, которое заключается в корректировке исходных данных. Измененные данные заносятся в соответствующие текстовые поля. При этом они фиксируются в памяти не как числа, а как значения символьных переменных. Цифрой 2 на схеме обозначено действие пользователя, которое заключается в нажатии командной кнопки "Расчет". В результате вызывается одна из так называемых процедур прерываний. Внутри этой процедуры оператор 3 производит преобразование символьных данных в числовые.
Затем оператор 4 обращается к программному модулю общего назначения "Model 1", который производит расчет массива значений цен как функций времени. После окончания работы программного модуля оператор 5 делает кнопку "Расчет" неактивной, а оператор 6 активизирует кнопку "График". Одновременно производится очистка части стартовой формы, которая отведена для построения графика.
Цифрой 7 на схеме обозначено действие пользователя, которое заключается в нажатии кнопки "График" (если она активна). В результате группа операторов 8 обеспечивает построение в центре стартовой формы графика зависимости текущей цены на продукт от времени. Затем оператор 9 делает кнопку "График" неактивной, а оператор 10 вновь активизирует кнопку "Расчет".
Числом 11 на схеме обозначено действие пользователя, которое заключается в нажатии кнопки "Выход". В этом случае работа программы заканчивается.
Схема алгоритма модуля "Model 1" показана на рис. 2.
4
1
5
2
3
6
Рис. 2. Схема алгоритма модуля "Modell"
Внутри этого модуля группа операторов 1 определяет цены для 1-го и 2-го отрезков времени по формулам (8) и (9). Оператор 2 является началом циклического перебора временных отрезков, начиная с 3-го и заканчивая последним ТК-М
Группа операторов 3 вырабатывает три возможных значения эталонной (нормированной и центрированной) случайной величины ή с нормальным распределением, которые используются группой операторов 4 для расчета возможных значений случайных переменных UT, VT, WT с заданными СКО.
Оператор 5 осуществляет расчет выходной переменной РТ по формуле (7), Оператор 6 подготавливает новые значения переменных РТ-1 и РТ-2 для расчета РТ на следующем временном отрезке (следующем витке цикла).
4. ПРИМЕР РЕШЕНИЯ ЗАДАЧИ МОДЕЛИРОВАНИЯ
Примем следующие входные данные:
TK = 30; A = 10; В =5; С = 3; = 0.2; σu = 0.1; σv== 0.1; σw = 0.1; Мu = 0; Mv = 0; Мw. =0,
Для варьируемой переменной Е выберем значения: 4; 5; 5,5. Результаты моделирования представлены графиком:
Рис.6. Зависимость цены от времени при Е=6 и В = 5
Анализ результатов моделирования показывает, что зависимость цены товара Р от времени имеет колебательный характер и зависит от соотношения параметров Е и В.
Если Е < В, то колебания незначительны, если Е = B, то колебания имеют постоянную амплитуду, а если Е > В, то амплитуда колебаний имеет тенденцию к безграничному возрастанию. Однако по физическим соображениям цена не может быть отрицательной, С учетом этого ограничения возрастание амплитуды происходит до тех пор, пока не начнут появляться нулевые значения цены. После этого колебания стабилизируются.
5. ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
Для рассматриваемой модели целесообразно совместить табличное представление исходных данных с графическим представлением результатов расчетов.
Задание
Создайте программу для "Паутинообразной модели фирмы".
Произведите проверку программы расчетом. Подставьте те же исходные данные, которые были выбраны в приведенном выше примере. Убедитесь в том, что результаты расчетов практически совпадают.
Произведите самостоятельное исследование закономерностей функционирования фирмы с помощью алгоритмической модели. Самостоятельно выберите исходные данные, проведите расчеты и проанализируйте результаты моделирования.
ПРОГРАММА "ПАУТИНООБРАЗНОЙ" МОДЕЛИ НА ЯЗЫКЕ VISUAL BASIC 5.0 и выше.
Таблица свойств
Объект | Свойства | Установки |
Форма | Name Caption | frmForm 1 Паутинообразная модель |
Метка 1 | Name Caption | IbllnputDat Измените исходные данные и нажмите кнопку <Расчет> |
Командная кнопка 1 | Name Caption | cmdRashet Расчет |
Командная кнопка 2 | Name Caption Enabled |
CmdGrafic График False |
Командная кнопка 3 | Name Caption | CmdExit Выход |
Процедуры обработки прерываний
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdGrafic_Click()
Line (600, 3500)-(6600, 3500)
Line (600, 3500)-(600, 1500)
My = 1000
X1 = 600: Y1 = 3500 - P(1) * My
Dx = 100
S = 0: For j = 1 To Tk: S = S + P(j): Next
Pcp = S / Tk
CurrentX = 500: CurrentY = 1500: Print "P"
CurrentX = 6500: CurrentY = 3500: Print "T"
CurrentX = 650: CurrentY = 3300 - Pcp * My
Print "Pcp"
Xk = 600 + Tk * Dx: Ycp = 3500 - Pcp * My
'Form1.ForeColor = 98765
Line (X1, Ycp)-(Xk, Ycp)
For j = 1 To Tk - 1
X2 = X1 + Dx: Y2 = 3500 - P(j) * My
Line (X1, Y1)-(X2, Y2)
X1 = X2: Y1 = Y2
Next j
End Sub
Private Sub cmdRashet_Click()
A = Val(Text1): B = Val(Text2): C = Val(Text3)
E = Val(Text4): Ro = Val(Text5): Su = Val(Text6)
Sv = Val(Text7): Sw = Val(Text8)
Mu = 0: Mv = 0: Mw = 0
Call Model1
Cls
End Sub
Private Sub Form_Load()
frmForm.Show: Cls
End Sub
Модуль общего назначения Model1
Public Const Tk = 30
Public P(Tk) As Single
Public T As Integer, i As Integer, j As Integer
Public A, B, C, E, Ro, Su, Sv, Sw, Mu, Mv, Mw, Et
Public Sub Model1()
P(l) = (A - C) / (B + E)
P(2) = (A - C) / B - E / B * P(1)
For T = 3 To Tk
For j = 1 To 3
Et = 0
For i = 1 To 12
Et = Et + Rnd
Next
If j = 1 Then Ut = Mu + (Et - 6) * Su
If j = 2 Then Vt = Mv + (Et - 6) * Sv
If j = 3 Then Wt = Mw + (Et - 6) * Sw
Next
DP = P(T - 1) - P(T - 2)
P(T) = (A - C - E * (P(T - 1) - Ro * DP) + Ut + Wt - Vt) / B
If P(T) < 0 Then P(T) = 0
P(T - 2) = P(T - 1): P(T - 1) = P(T)
Next
End Sub