Файл: Вдовин Суркова Валентинов Теория систем и системный анализ.pdf

Добавлен: 12.02.2019

Просмотров: 22624

Скачиваний: 340

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

600

601

Рис. 3.89. Ввод данных по различным оценкам задач (работ)

•

получается случайное число и определяется, какое зна-

чение приняла случайная величина — производительность вы-

полнения работы (задачи);

•

определяется объем выполнения работы для текущего

 

шага моделирования.

4. На каждом шаге моделирования проверяется соответствие

 

выполненного объема работ заданному. При равенстве работ

 

процесс моделирования заканчивается.

Для решения задачи имитации хода реализации бизнес-

процесса необходимо разработать макросы, осуществляющие: 

моделирование времени реализации процесса; моделирование 

линейки (в программе обозначается линией черного цвета) и ее 

перемещения в зависимости от скорости выполнения работы.

Решение задач хода реализации бизнес-процесса на основе 

имитационного моделирования осуществляется с использовани-

ем инструментов VBA в последовательности:

1. Открыть файл проекта “Иммодел”.

2. Выполнить операцию “Сервис” — “Макрос” — “VBA”.

3. Сформировать форму и модуль управления формой.

4. Для удобства управления программой в режиме имитаци-

онного моделирования разработать новое меню “Ход проекта”.

5. Разработать код формы. В коде формы предусматрива-

ются следующие основные операции:

•

моделирование случайного числа, подчиненного закону 

равной вероятности на интервале 0–1;

•

моделирование времени;

•

моделирование динамки выполнения работ(задач).

Программный код моделирования динамики работ проекта 

имеет вид

Private Sub CommandButton3_Click()

Dim ТначМ As Double, ТначЧ As Double, Тнач As Double

Dim ТекЧ As Double, ТекМ As Double, ТекПР As Double, 

пп As Double

Dim MyValue, CLS As Double

Randomize

tpr = TextBox1: sag = TextBox2: m = TextBox3


background image

600

601

Рис. 3.89. 

Ввод данных по различным оценкам задач (работ)

•получается случайное число и определяется, какое зна-

чение приняла случайная величина — производительность вы-
полнения работы (задачи);

• определяется объем выполнения работы для текущего 

шага моделирования.

4. На каждом шаге моделирования проверяется соответствие 

выполненного объема работ заданному. При равенстве работ 
процесс моделирования заканчивается.

Для решения задачи имитации хода реализации бизнес-

процесса необходимо разработать макросы, осуществляющие: 
моделирование времени реализации процесса; моделирование 
линейки (в программе обозначается линией черного цвета) и ее 
перемещения в зависимости от скорости выполнения работы.

Решение задач хода реализации бизнес-процесса на основе 

имитационного моделирования осуществляется с использовани-
ем инструментов VBA в последовательности:

1. Открыть файл проекта “Иммодел”.
2. Выполнить операцию “Сервис” — “Макрос” — “VBA”.
3. Сформировать форму и модуль управления формой.
4. Для удобства управления программой в режиме имитаци-

онного моделирования разработать новое меню “Ход проекта”.

5. Разработать код формы. В коде формы предусматрива-

ются следующие основные операции:

•моделирование случайного числа, подчиненного закону 

равной вероятности на интервале 0–1;

•моделирование времени;

•моделирование динамки выполнения работ(задач).
Программный код моделирования динамики работ проекта 

имеет вид

Private Sub CommandButton3_Click()
Dim ТначМ As Double, ТначЧ As Double, Тнач As Double
Dim ТекЧ As Double, ТекМ As Double, ТекПР As Double, 

пп As Double

Dim MyValue, CLS As Double
Randomize

tpr = TextBox1: sag = TextBox2: m = TextBox3


background image

602

603

а = TextBox4: б = TextBox5: с = TextBox6: д = TextBox7
n = tpr / sag ‘Количество шагов имитации процесса
For i = 1 To m ‘Количество работ(задач)
ТЕКВР = Now
пт = 0
For j = 1 To n
CLS = Int((10000) * Rnd) / 10000
пр=-(1/с)*Ln(CLS)
пт = пт + пр* sag’ Процент выполнения заданного объе-

ма работы(задачи)

If j = 1 Then
 пп = 0
 Else
 пп = TextBox8
 End If

 ТначМ = Minute(Time): ТначЧ = Hour(Time) * 60: Тнач 

= (ТначЧ + ТначМ) + пп

 Do
 ТекМ = Minute(Time): ТекЧ = Hour(Time) * 60: ТекПР = 

ТекЧ + ТекМ
 If ТекПР = Тнач Then Exit Do’Выход из цикла осуществля-
ется через интервалы времени кратные интервалу вывода ре-
зультатов

 Loop
If m = 1 Then
 k = а
 Else
 k = i
 End If
SelectRow Row:=k, RowRelative:=False

SetTaskField Field:=”% завершения”, Value:=пт, 

AllSelectedTasks:=True’ Передача данных о процентах выпол-
ненной работы в поле диаграммы Ганта

    Next j
 Next i
End Sub

Private Sub TextBox1_Change() 'Ввод периода модели-

рования

End Sub
Private Sub TextBox2_Change() 'Ввод шага моделирова-

ния

End Sub
Private Sub TextBox3_Change() 'Ввод количества работ 

(задач)

End Sub

Private Sub TextBox4_Change() ‘Нмер работы (задачи) для 

которой моделируется динамика

End Sub
Private Sub TextBox5_Change() 'Время начала работы 

(задачи)

End Sub

Private Sub TextBox6_Change() ‘Производительность(доля 
объема работ/шаг моделировпания)

End Sub
Private Sub TextBox7_Change() ‘Объем работ в услов-

ных единицах

End Sub
Private Sub TextBox8_Change()’ Временной интервал 

вывода результатов

End Sub

Имитационное моделирование динамики выполнения про-

екта выполняется в такой последовательности:

1. В дополнительном меню “Ход проекта” нажать кнопку 

“Ввести данные”.

2. В появившемся диалоговом окне “Имитация хода проек-

та” ввести исходные данные (рис. 3.90). Для условий примера: 
период моделирования — 8 сут.; шаг моделирования — 1 сут.; 
количество работ, для которых осуществляется имитация дина-
мики, — 1 работа; интервал вывода результата — 1 мин; номер 
работы(задачи) — 6; время начала работы — 05.04.07; объем 
работ — 800 усл. ед.; производительность выполнения рабо-
ты — 10% в сутки. 


background image

602

603

а = TextBox4: б = TextBox5: с = TextBox6: д = TextBox7
n = tpr / sag ‘Количество шагов имитации процесса
For i = 1 To m ‘Количество работ(задач)
ТЕКВР = Now
пт = 0
For j = 1 To n
CLS = Int((10000) * Rnd) / 10000
пр=-(1/с)*Ln(CLS)
пт = пт + пр* sag’ Процент выполнения заданного объе-

ма работы(задачи)

If j = 1 Then
 пп = 0
 Else
 пп = TextBox8
 End If

 ТначМ = Minute(Time): ТначЧ = Hour(Time) * 60: Тнач 

= (ТначЧ + ТначМ) + пп

 Do
 ТекМ = Minute(Time): ТекЧ = Hour(Time) * 60: ТекПР = 

ТекЧ + ТекМ
 If ТекПР = Тнач Then Exit Do’Выход из цикла осуществля-
ется через интервалы времени кратные интервалу вывода ре-
зультатов

 Loop
If m = 1 Then
 k = а
 Else
 k = i
 End If
SelectRow Row:=k, RowRelative:=False

SetTaskField Field:=”% завершения”, Value:=пт, 

AllSelectedTasks:=True’ Передача данных о процентах выпол-
ненной работы в поле диаграммы Ганта

    Next j
 Next i
End Sub

Private Sub TextBox1_Change() 'Ввод периода модели-

рования

End Sub
Private Sub TextBox2_Change() 'Ввод шага моделирова-

ния

End Sub
Private Sub TextBox3_Change() 'Ввод количества работ 

(задач)

End Sub

Private Sub TextBox4_Change() ‘Нмер работы (задачи) для 

которой моделируется динамика

End Sub
Private Sub TextBox5_Change() 'Время начала работы 

(задачи)

End Sub

Private Sub TextBox6_Change() ‘Производительность(доля 
объема работ/шаг моделировпания)

End Sub
Private Sub TextBox7_Change() ‘Объем работ в услов-

ных единицах

End Sub
Private Sub TextBox8_Change()’ Временной интервал 

вывода результатов

End Sub

Имитационное моделирование динамики выполнения про-

екта выполняется в такой последовательности:

1. В дополнительном меню “Ход проекта” нажать кнопку 

“Ввести данные”.

2. В появившемся диалоговом окне “Имитация хода проек-

та” ввести исходные данные (рис. 3.90). Для условий примера: 
период моделирования — 8 сут.; шаг моделирования — 1 сут.; 
количество работ, для которых осуществляется имитация дина-
мики, — 1 работа; интервал вывода результата — 1 мин; номер 
работы(задачи) — 6; время начала работы — 05.04.07; объем 
работ — 800 усл. ед.; производительность выполнения рабо-
ты — 10% в сутки. 


background image

604

605

Рис. 3.90. Ввод данных для моделирования динамики 

выполнения проекта (работа 6)

3. Нажать кнопку “Выполнить моделирование”.

При нажатии кнопки “Выполнить моделирование” будет 

запущен макрос 

CommandButton3_Click()

 и для работы с но-

мером 6 будет выполнено моделирование динамики выполнения 

проекта. Линейка хода выполнения работы (выделена черной 

утолщенной линией) через интервал времени 1 мин будет из-

менять свою длину (сутки за одну минуту).

Результат моделирования динамики выполнения работ

 

проекта (для работы 6) показан на рис. 3.91.

Выполнив оценку имитационных задач, решаемых в “Micro-

soft Projeсt”, нетрудно заметить, что для реализации функций 

каждой из работ (задач) может быть разработана имитационная 

или же аналитическая подмодель. Например, модель принятия 

решения, модель основного производства и т. д. При имитации 

хода реализации бизнес-процесса каждая из подмоделей вклю-

чается в работу в моменты времени, определенные графиком 

процесса. По такому принципу построены многие из программ, 

предназначенных для решения задач моделирования экономи-

ческих процессов. 

Глава 15. Оптимизационные модели 

экономических систем

15.1. Основные понятия оптимизации и классификация методов 

решения оптимизационных задач

 П

оиск оптимального решения

 — нахождение таких усло-

вий организации системы (процесса), при которых достигается 

экстремум некоторой функции или функционала. Примерами 

оптимизационных задач могут выступать:

•

выбор дороги из дома на работу таким образом, чтобы за-

тратить меньше времени и выполнить определенные условия;

•

определение неизвестных параметров модели, обеспечи-

вающих минимальное отклонение выходных координат, полу-

ченных экспериментальным путем, от рассчитанных по модели. 

Это задача идентификации;