Тема: "павутиноподібної" МОДЕЛЬ ФІРМИ
1. ВСТУП
Нехай підприємець збирається вкласти кошти в створення фірми, яка буде випускати товар і реалізовувати його на ринку. Його цікавить, як буде вести себе ціна на товар при зміні обсягу виробництва. Досвід підказує, що при збільшенні виробництва відбувається падіння попиту і доводиться знижувати ціну. Йому хотілося б знати, за яких умов піна буде стабільною. Чи можна дати відповідь на це питання за допомогою математичної моделі?
Консультант пояснює, що в літературі описано декілька варіантів такої моделі. Всі вони володіють певними однаковими властивостями. Зазвичай в них передбачається, що попит на певний продукт (найчастіше розглядається сільськогосподарська продукція) на заданому відрізку часу залежить від ціни (та інших факторів) на цьому відрізку. Що ж стосується пропозиції, то воно визначається цінами попереднього періоду часу (тижня, місяця, кварталу і т. д). Крім того, передбачається, що ринок завжди знаходиться в умовах локального рівноваги. Історично така модель отримала назву "павутиноподібної", ймовірно, тому, що такого ж принципу "обліку попереднього кроку" дотримується павук, коли він тче павутину.
Існують чотири варіанти цієї моделі: детермінована, імовірнісна, модель з навчанням і модель з запасами,
Підприємець цікавиться, чим вони відрізняються один від одного?
Консультант відповідає, що в детермінованої моделі відсутній облік випадкових факторів. У ймовірнісної моделі враховуються вплив на попит непередбачених коливань переваг і доходів споживачів, а також інші випадкові чинники, що впливають на величину попиту. Пропозиція на попередньому відрізку часу також вважається підданим наявності випадкових факторів. Вони відображають вплив коливань технології та ефективності виробничого процесу і т д. Нарешті, умова локального рівноваги означає збіг попиту і пропозиції з точністю до деякої випадкової величини.
У моделі з навчанням передбачається, що постачальники враховують сформовану тенденцію зміни цін і з урахуванням цього планують випуск продукції на черговий відрізок часу.
У ймовірнісної моделі і в моделі з навчанням ціни встановлюються на такому рівні, щоб забезпечити локальне рівновагу ринку тільки за рахунок поточного виробництва, і ніяких запасів продукції не створюється (наприклад, тому, що продуті швидко псуються).
У модель із запасами вводиться додаткова група учасників ринкового механізму, яких можна назвати "комерсантами". Вони тримають запаси і організують торгівлю.
Підприємець вважає, що для його випадку, напевно, більше підійде імовірнісна модель з навчанням. Його цікавить, за яких припущеннях вона складена? Як виглядає залежність для визначення поточного попиту?
Консультант відповідає: "Передбачається, що попит на Т-м відрізку часу лінійно залежить від поточної ціни і, крім того, попит піддається випадковим розкиду. Таким чином, для опису попиту потрібно задати коефіцієнти лінійного рівняння: (наприклад А і В) і випадкову величину (наприклад. U Т), що має заданий розподіл. "
У результаті виходить розрахункова формула такого вигляду:
D T = A - B * P T + U T, | (1) |
де: D T - Попит на Т-м відрізку;
А, В - коефіцієнти лінійного рівняння;
Р Т - що підлягає визначенню ціна на Т-м відрізку часу;
U T - випадкова величина з заданим законом розподілу.
Підприємець цікавиться, що означає знак "мінус"?
Консультант відповідає, що з підвищенням ціни попит на продукцію знижується.
Підприємця цікавить, яке саме розподіл слід вибрати в цьому випадку?
Логічно припустити, що попит симетрично коливається щодо середнього значення, яке визначається постійними коефіцієнтами лінійного рівняння. Тому можна вибрати нормальний розподіл з нульовим математичним очікуванням і заданим середнім квадратичним відхиленням (СКВ) - σ u.
Як визначається пропозиція?
Передбачається, що пропозиція на поточному відрізку також лінійно залежить від ціни, але не поточною, а представляє собою деяку комбінацію цін на двох попередніх відрізках часу. У найпростішому випадку це може бути середня ціна. Тому, для розрахунку пропозиції використовується наступна залежність:
S Т = С + Е * Р ( ) + V T | (2) |
де S Т - пропозиція на Т-м відрізку часу;
С, Е - коефіцієнти лінійного рівняння;
Р ( ) - Середня (точніше, середньозважене) значення ціни на двох попередніх відрізках часу;
V т - випадкова величина з заданим законом розподілу.
Підприємець цікавиться: "І знову нормальний розподіл?"
Так, звичайно, з тими ж підставами. Тільки з іншим СКО - σ v.
А як визначається середня ціна за попередній період?
Середньозважена ціна визначається за формулою:
Р ( ) = Р Т-1 - (Р Т-1 - Р Т-2). | (3) |
Неважко переконатися в тому, чт o при = 0 середньозважена ціна Р (р) = Р Т-1. Це означає, що навчання в модель не закладено. Для іншого крайнього випадку (при = 1) середньозважена ціна Р ( ) = Р Т-2. Це також означає, що навчання в моделі відсутній, але для визначення пропозиції використовується більш віддалена ціна, Нарешті, при = 0,5 середньозважена ціна Р ( ) Дорівнює середньому арифметичному значенню з цін Р Т-1 і Р Т-2.
Ще додати рівняння локального рівноваги ринку, яке можна записати так:
s t = d t + w t, | (4) |
де S Т - пропозиція на Т-м відрізку часу;
D T - попит на Т-м відрізку часу;
W Т - випадкова величина з заданим розподілом.
Приймемо знову нормальний розподіл. Для вибору інших розподілів немає особливих підстав. Можна було б взяти усічене нормальний розподіл, але не ясно, якою повинна бути величина скорочення. Випадкова величина W Т характеризується нульовим математичним очікуванням н середнім квадратичним відхиленням σ w.
А як же все-таки в моделі визначається закон зміни ціни на продукт у часі?
Система рівнянь (1), (2), (З) н (4) після перетворень зводиться до вираження виду:
Р Т = F (P T-1, P T-2) | (5) |
Спочатку необхідно яким-небудь наближеним способом визначити ціну для перших двох відрізків часу. Після цього можна робити обчислення по залежності (5) необмежену кількість разів. Результати розрахунків найзручніше представити у вигляді графіка.
2. КОНЦЕПТУАЛЬНА МОДЕЛЬ
Нехай є торгова фірма, що реалізує певний товар на ринку.
Попит на товар на Т-м відрізку часу лінійно залежить від поточної ціни Р Т і випадкової змінної U Т, що враховує вплив випадкових факторів на величину попиту. Змінна U T має нормальний розподіл з нульовим математичним очікуванням М u і заданим СКО - σ u. Таким чином, залежність для попиту на товар має наступний вигляд:
D T = A - B * P T + U T.
Пропозиція на Т-м відрізку часу розраховується з урахуванням навчання системи. Тому воно залежить від ціни на попередніх (Т-1)-м і (Т-2)-му відрізках часу і випадкової змінної V T, яка враховує вплив випадкових факторів на величину пропозиції. Змінна V T має нормальний розподіл з нульовим математичним очікуванням M v і заданим СКО σ v. Таким чином, залежно для пропозиції мають такий вигляд:
S Т = С + Е * Р ( ) + V T,
Р ( ) = Р Т-1 - (Р Т-1 - Р Т-2),
де - Ваговий коефіцієнт, що задається в діапазоні (0 <= <= 1).
Умова локальної рівноваги ринку означає збіг попиту і пропозиції з точністю до випадкової величини W Т. Передбачається, що змінна W T має нормальний розподіл з нульовим математичним очікуванням М w і заданим СКО σ w. Залежність, враховує рівновагу ринку, має вигляд:
S T = D T + W T. | (6) |
Підставляючи вирази для D T, P (p) і S T в (6) і дозволяючи рівняння відносно Р T, отримуємо:
P T = [A - C - E * [P T-1 - * (P T-1 - P T-2)] + U T - V T + W T] / B | (7) |
Оскільки для визначення величини Р T необхідно знати значення Р T -1 і Р Т-2 для двох попередніх відрізків часу, то проводити розрахунки за формулою (7) можна тільки, починаючи з 3-го відрізка, за умови, що Р 1 і Р 2 відомі.
Для їх знаходження зробимо додаткове допущення про те, що на перших двох відрізках навчання відсутня, тобто ваговий коефіцієнт = 0. Без урахування випадковостей ціна на 2-му відрізку визначиться за формулою
Р 2 = (А - С - Е * Р 1) / В. | (8) |
Якщо припустити, що перед початком роботи фірми вихідна ціна збігається з ціною на 1-му відрізку, то величина P 1 визначиться за формулою
Р 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 для розрахунку можливих значень випадкових змінних U T, V T, W T з заданими СКО.
Оператор 5 здійсню щ ествляет розрахунок вихідної змінної Р Т за формулою (7), Оператор 6 готує нові значення змінних Р Т-1 і Р Т-2 для розрахунку Р Т на наступному часовому відрізку (наступному витку циклу).
4. ПРИКЛАД РІШЕННЯ ЗАДАЧ І МОДЕЛЮВАННЯ
Приймемо наступні вхідні дані:
T K = 30; A = 10; В = 5; З = 3; = 0.2; σ u = 0.1; σ v = = 0.1; σ w = 0.1; М u = 0; M v = 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
Модуль загального призначення Model 1
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