Файл: Вдовин Суркова Валентинов Теория систем и системный анализ.pdf
Добавлен: 12.02.2019
Просмотров: 22648
Скачиваний: 340
524
525
Программа по организации основных процедур, имеет вид
Dim Skan() As Double, ResS() As Double, Res() As Double, THO()
As Double
Dim l1 As Integer, l2 As Integer, m1 As Integer, t As Double
tmods = Лист1.Cells(33, 3) ‘Интервал прогнозирования
dt = Лист1.Cells(34, 3) ‘Шаг моделирования
rop = Лист1.Cells(20, 2) ‘Средства на развитие основного про-
изводства
rwp = Лист1.Cells(21, 2) ‘Средства, выделяемые на развитие
вспомогательного производства
rrk = Лист1.Cells(22, 2) ‘Средства , выделяемые на поддержку
рынка, рекламу и повышение
‘качества продукции
upr = Лист1.Cells(23, 3): obes = Лист1.Cells(24, 3)
osb = Лист1.Cells(25, 3): zak = Лист1.Cells(26, 3)
pzi = Лист1.Cells(27, 3): dcb = Лист1.Cells(28, 3)
fnakn = Лист1.Cells(29, 2): fnak = Лист1.Cells(29, 3)
i = 0: tmod = 0: Оп = 0: prib = 0: ПРОИЗ = 5
Do
i = i + 1
tmod = tmod + dt
prib = prib + dp
Оп = Оп + ПРОИЗ * dt ‘Объем выпущенной продукции
fnakn = fnakn + ПРОИЗ * dt * Лист1.Cells(5, 2) * fnak ‘Величина
денежных средств в фонде накопления
Лист2.Cells(3, 1 + i) = Оп
Лист2.Cells(4, 1 + i) = fnakn
Loop While tmod <> tmods
End Sub
Примечания: 1. Производственные и другие функции не
привязаны к конкретному предприятию.
2. Ячейки, в которых вычисляются производственные и
другие функции, выбираются своим решением.
14.8. Разработка имитационных
экономических моделей в “Еxcel”
В изложенном выше материале были рассмотрены вопросы
имитационного моделирования отдельных элементов экономи-
ческих систем: моделирование пространственной динамики:
моделирование торгово-закупочных мероприятий; моделиро-
вание систем массового обслуживания и др. Это было сделано
для того, чтобы обучаемые получили первоначальные знания и
навыки по решению сложных экономических задач, используя
приемы имитационного моделирования.
Из теории систем известно, что реальная экономическая
система может быть декомпозирована на отдельные элементы.
При этом для каждого из элементов могут быть заблаговременно
разработаны специальные программы, реализующие опреде-
ленные функции, имеющие вход и выход. Задача разработчика
имитационной модели будет состоять в определении общей
конструкции модели, ее состава и структуры, подборе специ-
альных программ и конструировании с помощью этих программ
программного продукта имитационной модели в целом. Порядок
работы по реализации этой концепции с применением совре-
менных информационных технологий высокого уровня будет
рассмотрен ниже.
Здесь рассматривается порядок решения этих задач с по-
мощью программного продукта “Еxcel”, который широко ис-
пользуется экономистами различных специализаций По нашему
мнению, относительно несложные имитационные модели, раз-
работанные на базе данного программного продукта, по качеству
могут быть по крайней мере не хуже, чем модели, разработанные
с помощью специальных программных средств. Программы от-
дельных элементов экономической системы для использования
этого программного продукта могут быть подготовлены забла-
говременно и помещены в базы данных этой программы в виде
макросов и функций, созданных пользователем. Эти макросы и
функции могут решать следующие основные задачи:
•воспроизводить реальное и модельное время;
526
527
•генерировать случайные числа, подчиненные закону рав-
ной вероятности на интервале от 0 до 1;
•формировать массивы графиков целей, задач, процессов,
функций, мероприятий, работ, событий;
•моделировать поток транзактов (поток заявок, наделенных
определенными свойствами);
•выполнять различные операции с потоками транзактов
(объединять потоки, суммировать, разделять, делить, и т. д.);
•принимать на обслуживание и снимать с обслуживания
транзакты;
• моделировать случайные события (полную группу не-
совместных событий), величины (дискретные, непрерывные);
системы независимых и зависимых случайных величин и слу-
чайные процессы;
•определять ветви протекания процессов в зависимости от
значений величин;
•осуществлять обработку результатов реализаций с целью
получения статистических характеристик моделируемого про-
цесса;
•осуществлять инициализацию событий;
•осуществлять организацию квазипараллелизма различ-
ными методами;
• определять факт продолжения реализации функции,
процесса, мероприятия или работы по условиям надежности,
пропускной способности, времени выполнения и др.;
•определять пространственное положение объекта на те-
кущий момент времени;
•осуществлять верификацию результатов моделирования.
На основе реализации этих задач могут быть разработаны
имитационные модели различных элементов экономических
систем, например модели подсистем: закупок материалов и ком-
плектующих изделий; сбыта готовой продукции; вспомогатель-
ного производства; основного производства; видов обеспечения
предприятия (финансового, материально-технического, инже-
нерного, технологического и др); взаимодействия предприятия;
управления предпрятием и др.
Ниже приведены программы некоторых пользовательских
функций “Еxcel” для решения задач разработки имитационных
моделей.
1. Пользовательская функция моделирования времени в
имитационной модели.
Public Function ModT()
Dim i As Integer, n As Integer, m As Integer, l As Integer
Dim ТекПР As Variant, Тнач As Variant, DT As Double
Dim ТначМ As Variant, Tsek As Variant, ТекМ As Variant, ТекЧ
As Variant, TekS As Variant
i = 0
Do
i = i + 1
ТекМ = Minute(Time): ТекЧ = Hour(Time) * 60
TekS = Second(Time): ТекПР = ТекЧ + ТекМ
Tsek = ТекПР * 60 + TekS
Loop While ТекМ <> 59
End Function
2. Пользовательская функция для моделирования случай-
ного числа
Public Function СЧ()
Dim MyValue, CLS As Double
Randomize
CLS = Int((10000) * Rnd) / 10000
СЧ = CLS
End Function
3. Пользовательская функция для моделирования случай-
ного события
Public Function СОБ(Рап)
Dim MyValue, CLS As Double
Randomize
CLS = Int((10000) * Rnd) / 10000
СЧ1 = CLS
If Рап >= СЧ1 Then
P = 1
Else
526
527
•генерировать случайные числа, подчиненные закону рав-
ной вероятности на интервале от 0 до 1;
•формировать массивы графиков целей, задач, процессов,
функций, мероприятий, работ, событий;
•моделировать поток транзактов (поток заявок, наделенных
определенными свойствами);
•выполнять различные операции с потоками транзактов
(объединять потоки, суммировать, разделять, делить, и т. д.);
•принимать на обслуживание и снимать с обслуживания
транзакты;
• моделировать случайные события (полную группу не-
совместных событий), величины (дискретные, непрерывные);
системы независимых и зависимых случайных величин и слу-
чайные процессы;
•определять ветви протекания процессов в зависимости от
значений величин;
•осуществлять обработку результатов реализаций с целью
получения статистических характеристик моделируемого про-
цесса;
•осуществлять инициализацию событий;
•осуществлять организацию квазипараллелизма различ-
ными методами;
• определять факт продолжения реализации функции,
процесса, мероприятия или работы по условиям надежности,
пропускной способности, времени выполнения и др.;
•определять пространственное положение объекта на те-
кущий момент времени;
•осуществлять верификацию результатов моделирования.
На основе реализации этих задач могут быть разработаны
имитационные модели различных элементов экономических
систем, например модели подсистем: закупок материалов и ком-
плектующих изделий; сбыта готовой продукции; вспомогатель-
ного производства; основного производства; видов обеспечения
предприятия (финансового, материально-технического, инже-
нерного, технологического и др); взаимодействия предприятия;
управления предпрятием и др.
Ниже приведены программы некоторых пользовательских
функций “Еxcel” для решения задач разработки имитационных
моделей.
1. Пользовательская функция моделирования времени в
имитационной модели.
Public Function ModT()
Dim i As Integer, n As Integer, m As Integer, l As Integer
Dim ТекПР As Variant, Тнач As Variant, DT As Double
Dim ТначМ As Variant, Tsek As Variant, ТекМ As Variant, ТекЧ
As Variant, TekS As Variant
i = 0
Do
i = i + 1
ТекМ = Minute(Time): ТекЧ = Hour(Time) * 60
TekS = Second(Time): ТекПР = ТекЧ + ТекМ
Tsek = ТекПР * 60 + TekS
Loop While ТекМ <> 59
End Function
2. Пользовательская функция для моделирования случай-
ного числа
Public Function СЧ()
Dim MyValue, CLS As Double
Randomize
CLS = Int((10000) * Rnd) / 10000
СЧ = CLS
End Function
3. Пользовательская функция для моделирования случай-
ного события
Public Function СОБ(Рап)
Dim MyValue, CLS As Double
Randomize
CLS = Int((10000) * Rnd) / 10000
СЧ1 = CLS
If Рап >= СЧ1 Then
P = 1
Else
528
529
P = 0
End If
СОБ = P
End Function
4. Пользовательская функция для моделирования полной
группы несовместных событий
Public Function ПГС(Р1, Р2, Р3, Р4, Р5)
Dim MyValue, CLS As Double
Randomize
СЧ1 = 0
CLS = Int((10000) * Rnd) / 10000
СЧ1 = CLS
Р01 = Р1: Р02 = Р01 + Р2: Р03 = Р02 + Р3: Р04 = Р03 + Р4: Р05
= Р04 + Р5
If Р01 >= СЧ1 Then
PC = 1
Else
If СЧ1 <= Р02 And СЧ1 > Р01 Then
PC = 2
Else
If СЧ1 <= Р03 And СЧ1 > Р02 Then
PC = 3
Else
If СЧ1 <= Р04 And СЧ1 > Р03 Then
PC = 4
Else
If СЧ1 <= Р05 And СЧ1 > Р04 Then
PC = 5
End If
End If
End If
End If
End If
ПГС = PC
End Function
5. Пользовательская функция для моделирования случай-
ной величины дискретного типа
Public Function СВДТ(Р1, З1, Р2, З2, Р3, З3, Р4, З4, Р5, З5)
Dim MyValue, CLS As Double
Randomize
СЧ1 = 0
CLS = Int((10000) * Rnd) / 10000
СЧ1 = CLS
Р01 = Р1: Р02 = Р01 + Р2: Р03 = Р02 + Р3: Р04 = Р03 + Р4: Р05
= Р04 + Р5
If Р01 >= СЧ1 Then
PC = З1
Else
If СЧ1 <= Р02 And СЧ1 > Р01 Then
PC = З2
Else
If СЧ1 <= Р03 And СЧ1 > Р02 Then
PC = З3
Else
If СЧ1 <= Р04 And СЧ1 > Р03 Then
PC = З4
Else
If СЧ1 <= Р05 And СЧ1 > Р04 Then
PC = З5
End If
End If
End If
End If
End If
СВДТ = PC
End Function
6. Макет пользовательской функции для моделирования
системы массового обслуживания с отказами
Public Function ГТА(Время_моделирования, Шаг_моделирова-
ния, Количество_заявок_в_потоке, Среднее_время_между_за-
явками)
528
529
P = 0
End If
СОБ = P
End Function
4. Пользовательская функция для моделирования полной
группы несовместных событий
Public Function ПГС(Р1, Р2, Р3, Р4, Р5)
Dim MyValue, CLS As Double
Randomize
СЧ1 = 0
CLS = Int((10000) * Rnd) / 10000
СЧ1 = CLS
Р01 = Р1: Р02 = Р01 + Р2: Р03 = Р02 + Р3: Р04 = Р03 + Р4: Р05
= Р04 + Р5
If Р01 >= СЧ1 Then
PC = 1
Else
If СЧ1 <= Р02 And СЧ1 > Р01 Then
PC = 2
Else
If СЧ1 <= Р03 And СЧ1 > Р02 Then
PC = 3
Else
If СЧ1 <= Р04 And СЧ1 > Р03 Then
PC = 4
Else
If СЧ1 <= Р05 And СЧ1 > Р04 Then
PC = 5
End If
End If
End If
End If
End If
ПГС = PC
End Function
5. Пользовательская функция для моделирования случай-
ной величины дискретного типа
Public Function СВДТ(Р1, З1, Р2, З2, Р3, З3, Р4, З4, Р5, З5)
Dim MyValue, CLS As Double
Randomize
СЧ1 = 0
CLS = Int((10000) * Rnd) / 10000
СЧ1 = CLS
Р01 = Р1: Р02 = Р01 + Р2: Р03 = Р02 + Р3: Р04 = Р03 + Р4: Р05
= Р04 + Р5
If Р01 >= СЧ1 Then
PC = З1
Else
If СЧ1 <= Р02 And СЧ1 > Р01 Then
PC = З2
Else
If СЧ1 <= Р03 And СЧ1 > Р02 Then
PC = З3
Else
If СЧ1 <= Р04 And СЧ1 > Р03 Then
PC = З4
Else
If СЧ1 <= Р05 And СЧ1 > Р04 Then
PC = З5
End If
End If
End If
End If
End If
СВДТ = PC
End Function
6. Макет пользовательской функции для моделирования
системы массового обслуживания с отказами
Public Function ГТА(Время_моделирования, Шаг_моделирова-
ния, Количество_заявок_в_потоке, Среднее_время_между_за-
явками)