Файл: А. А. Мицель математическое и имитационное.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 29.11.2023

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

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

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

118
Упала по сравнению с (
n
— 2) - м днем
1 4
1 4
1 2
Прежде чем начинать процесс имитационного моделирования, необходима генерация случайных событий, которые с соответствующими вероятностями их реализаций представлены в табл. 10.1. Не располагая ни вычислительной техникой, ни соответствующим программным обеспечением, наш игрок решил воспользоваться простейшим способом, который заключается в бросании двух монет. Соответствие между возможными исходами этого случайного испытания
и генерируемыми случайными событиями он отразил в табл. 10.2.
Таблица 10.2
Цена одной акции в (
n
1)-й день
Цена одной акции в
n
- й день
Возрастает Остается без изменения
Падает
Возросла по сравнению с
(
n
2)-м днем
Герб и решка
Два герба
Две решки
Осталась такой же, как и в (
n
— 2) - й день
Два герба
Герб и решка
Две решки
Упала по сравнению с (
n

2) - м днем
Два герба
Две решки
Герб и решка
10.2. Прогон модели
Предположим, что игрок решил ограничить длительность периода имитации
20 днями и каждому дню поставил в соответствие номер
k
=
1, 20. Эти номера, расположенные в порядке возрастания, образуют столбец 1 в табл. 3, отражающей результаты имитирования изменения цен на акции. Столбец 2 в табл. 3 он заполнил после 20-кратного подбрасывания двух монет, воспользовавшись следующими обозначениями: ГГ -— выпали два герба; ГР — выпали один герб и одна решка; РР — выпали две решки. Для определения изменения цен на акции необходимо задать начальные условия: цену одной акции в день с номером
k
= 0 и направление изменения вчерашней цены. В соответствии с исходными предположениями начальная цена одной акции равнялась 10 денежным единицам и совпадала с ценой в предшествующий день. Это нашло свое отражение в первой строке столбца 3 табл. 10.3, в котором игрок фиксиро- вал направления изменения вчерашней цены акции. В столбце IV он фиксировал сегодняшнюю цену одной акции.
Таблица 10.3 1 2 3
4 1 2 3
4 1
ГР Без изменения 10 11 РР
Рост
12 2
РР Без изменения
9 12
ГР
Падение
11 3
ГГ
Падение
10 13
РР
Падение
11 4
ГГ
Рост
10 14
ГГ Без изменения 12

119 5
ГГ Без изменения 11 15 ГР
Рост
13 6
ГР
Рост
12 16
ГР
Рост
14 7
ГГ
Рост
12 17
РР
Рост
13 8
РР Без изменения 11 18 ГР
Падение
12 9
ГГ
Падение
12 19
ГР
Падение
11 10
ГР
Рост
13 20
РР
Падение
11
Согласно табл. 10.2, при рассматриваемых начальных условиях выпадение герба и решки при первом бросании двух монет означает, что в первый день цена акции не изменяется (первая строка, столбец 3) и остается равной 10 денежным единицам (первая строка, столбец 4). Поскольку цены акций в первый день имитирования равны 10 денежным единицам, то выпадение двух решек при втором бросании двух монет (вторая строка, столбец 2) означает падение цены до 9 денежных единиц за акцию (вторая строка, столбец 4). Аналогично проверяется правильность заполнения игроком двух последних столбцов табл.
10.3.
10.3. Результаты моделирования
Воспользовавшись данными об изменении цены акции за двадцатидневный период, представленными в табл.10.3, наш игрок составил табл. 10.4, в которой отразил результаты имитационного моделирования своей стратегии купли и продажи акций на бирже. Прочерки в третьем столбце этой таблицы означают отсутствие сделок, что может быть обусловлено как выбранной стратегией поведения игрока (дни имитации 1, 4, 7, 13, 20), так и отсутствием у него либо наличных денег (дни имитации 5, 6, 10, 15, 16), либо акций (дни имитации 12, 18,
19). При определении наличных денег учитывались комиссионные с каждой сделки. Так, например, на девятый день имитации игрок, располагая наличностью в размере 931,88 денежных единиц, купил 76 акций по цене 12 денежных единиц за акцию, заплатил комиссионные в размере 0,02 • 12 • 76 = 18,24 денежных единиц иу него осталось в наличии 931,88 — 12 • 76 — 0.02 • 12 • 76 = 1,64 денежных единиц.
Проанализировав результаты имитационного моделирования, записанные в табл. 4, можно сразу отметить, что, придерживаясь своей стратегии, биржевой игрок останется в проигрыше. Но это лишь первое впечатление.
Действительно, если процесс имитирования оборвать на шестой или шестна- дцатый день, то он выиграет. А что будет, если повторить имитационный эксперимент или увеличить длительность периода имитирования?
Даже этот простейший пример имитационного моделирования игры на фондовой бирже порождает ряд весьма сложных вопросов относительно меры эффективности выбираемой стратегии и метода проектирования научно обоснованного эксперимента по проверке этой эффективности. Кроме того, становится очевидным, что, несмотря на простоту вычислительных процедур при имитационном моделировании, их объем весьма значителен. Поэтому конструктивное использование имитационного моделирования практически невозможно без использования быстродействующей вычислительной техники.
Таблица 10.4


120
День имитаци и
Цена акции
Решение
Количество акций у игрока
Стоимость пакета акций
Наличные деньги
1 10

100 1000 0,00 2
9
Продать
0 0
882,00 3
10
Купить
86 860 4,80 4
10

86 860 4,80 5
11

86 946 4,80 6
12

86 1032 4,80 7
12

86 1032 4,80 8
11
Продать
0 0
931,88 9
12
Купить
76 912 1,64 10 13

76 988 1,64 11 12
Продать
0 0
895,40 12 11

0 0
895,40 13 11

0 0
895,40 14 12
Купить
73 876 1,88 15 13

73 949 1,88 16 14

73 1022 1,88 17 13
Продать
0 0
931,90 18 12

0 0
931,90 19 11

0 0
931,90 20 11

0 0
931,90
10.4. Задание на лаб. работу №10
1.
Выполнить имитационное моделирование биржевой игры с помощью равномерного датчика случайных чисел, распределенных в интервале
(0,1).
2.
Проанализировать результаты моделирования для 20 дней: а) для одной реализации случайных чисел; б) для 10 реализаций случайных чисел
3.
Написать программу в пакете Mathcad.
Примечание. Первые два задания можно выполнить с помощью встроенных функций Mathcad.
Рекомендации по заполнению таблицы 10.5. Пусть имеется два несовместных события
1
A
и
2
A
с вероятностями
1 1/ 2
P

и
2 1/ 2
P

. Делим интервал [0,1] на две части — [0,0.5] и (0.5, 1]. Если случайное число, генерированное датчиком случайных чисел, попадает в интервал [0,0.5], то это означает, что произошло событие
1
A
; если же случайное число попадает в интервал (0.5, 1], то имеем событие
2
A
. Используя датчик случайных чисел дважды, мы можем составить следующую таблицу 2а.
Таблица 10.5а
Цена одной акции в (
n
1)-й день
Цена одной акции в
n
- й день
Возрастает Остается без изменения
Падает

121
Возросла по сравнению с
(
n
2)-м днем
1 2
,
A A
1 1
,
A A
2 2
,
A A
Осталась такой же, как и в (
n
— 2) - й день
1 1
,
A A
1 2
,
A A
2 2
,
A A
Упала по сравнению с (
n

2) - м днем
1 1
,
A A
2 2
,
A A
1 2
,
A A
Можно использовать другой способ заполнения таблицы 10.5. Для
i
- ой строки имеется три несовместных события
,1
,2
,3
,
,
i
i
i
A
A
A
с вероятностями
,1
,2
,3
,
, ,
i
i
i
P
P
P
соответственно (причем,
,1
,2
,3 1
i
i
i
P
P
P



). Делим интервал
[0,1] на три части —
,1
[0,
]
i
P
,
,1
,1
,2
(
,
]
i
i
i
P
P
P

и
,1
,2
(
,1]
i
i
P
P

. Если случайное число, генерированное равномерным датчиком случайных чисел, попадает в интервал
,1
[0,
]
i
P
, то это означает, что произошло событие
,1
i
A
; если же случайное число попадает в интервал
,1
,1
,2
(
,
]
i
i
i
P
P
P

, то имеем событие
,2
i
A
, если же случайное число попадает в интервал
,1
,2
(
,1]
i
i
P
P

, то имеем событие
,3
i
A
. Используя датчик случайных чисел для каждой строки, мы можем составить следующую таблицу 10.5б.
Таблица 10.5б
Цена одной акции в (
n
1)-й день
Цена одной акции в
n
- й день
Возрастает Остается без изменения
Падает
Возросла по сравнению с
(
n
2)-м днем
1,1
A
1,2
A
1,3
A
Осталась такой же, как и в (
n
— 2) - й день
2,1
A
2,2
A
2,3
A
Упала по сравнению с (
n

2) - м днем
3,1
A
3,2
A
3,3
A
Рекомендации по заданию начальных условий. Для определения изменения цен на акции необходимо задать начальные условия: цену одной акции в день с номером
k
= 0 и направление изменения вчерашней цены. Направление изменения вчерашней цены можно взять либо по первой строке таблицы 2а, либо по второй строке, либо по третьей строке.
1   ...   6   7   8   9   10   11   12   13   14

10.5. Варианты заданий лабораторной работы №10
Вариант 1

122
Цена одной акции в
(
n
— 1)-й день
Цена одной акции в
n
- й день
Возрастает
Остается без изменения
Падает
Возросла по сравнению с
(
n
— 2)-м днем
1 2
1 4
1 4
Осталась такой же, как и в (
n
2)-й день
1 4
1 2
1 4
Упала по сравнению с (
n
— 2) - м днем
1 4
1 4
1 2
Вариант 2
Цена одной акции в
(
n
— 1)-й день
Цена одной акции в
n
- й день
Возрастает
Остается без изменения
Падает
Возросла по сравнению с
(
n
— 2)-м днем
1 4
1 2
1 4
Осталась такой же, как и в (
n
2)-й день
1 4
1 4
1 2
Упала по сравнению с (
n
— 2) - м днем
1 2
1 4
1 4
Вариант 3
Цена одной акции в
(
n
— 1)-й день
Цена одной акции в
n
- й день
Возрастает
Остается без изменения
Падает
Возросла по сравнению с
(
n
— 2)-м днем
1 3
1 3
1 3
Осталась такой же, как и в (
n
2)-й день
1 3
1 3
1 3
Упала по сравнению с (
n
— 2) - м днем
1 3
1 3
1 3
Примечание. Для варианта 3 необходимо рассматривать три несовместных события
1
A
,
2
A
,
3
A
и с учетом этого строить таблицу 2.
Вариант 4
Цена одной акции в
(
n
— 1)-й день
Цена одной акции в
n
- й день
Возрастает
Остается без изменения
Падает

123
Возросла по сравнению с
(
n
— 2)-м днем
1 2
1 5
3 10
Осталась такой же, как и в (
n
2)-й день
3 10 1
5 1
2
Упала по сравнению с (
n
— 2) - м днем
1 5
3 10 1
2
Вариант 5
Цена одной акции в
(
n
— 1)-й день
Цена одной акции в
n
- й день
Возрастает
Остается без изменения
Падает
Возросла по сравнению с
(
n
— 2)-м днем
1 4
1 4
1 2
Осталась такой же, как и в (
n
2)-й день
1 4
1 2
1 4
Упала по сравнению с (
n
— 2) - м днем
1 4
1 4
1 2
Вариант 6
Цена одной акции в
(
n
— 1)-й день
Цена одной акции в
n
- й день
Возрастает
Остается без изменения
Падает
Возросла по сравнению с
(
n
— 2)-м днем
1 4
1 4
1 2
Осталась такой же, как и в (
n
2)-й день
1 4
1 2
1 4
Упала по сравнению с (
n
— 2) - м днем
1 4
1 2
1 4
Вариант 7
Цена одной акции в
(
n
— 1)-й день
Цена одной акции в
n
- й день
Возрастает
Остается без изменения
Падает
Возросла по сравнению с
(
n
— 2)-м днем
1 4
1 4
1 2

124
Осталась такой же, как и в (
n
2)-й день
1 4
1 4
1 2
Упала по сравнению с (
n
— 2) - м днем
1 4
1 2
1 4
Вариант 8
Цена одной акции в
(
n
— 1)-й день
Цена одной акции в
n
- й день
Возрастает
Остается без изменения
Падает
Возросла по сравнению с
(
n
— 2)-м днем
1 4
1 2
1 4
Осталась такой же, как и в (
n
2)-й день
1 4
1 4
1 2
Упала по сравнению с (
n
— 2) - м днем
1 4
1 2
1 4


125
11.
Лабораторная работа № 11. Способы построения
моделирующих алгоритмов систем массового
обслуживания
Существуют следующие способы (или принципы) построения моделирующих алгоритмов:

способ повременного моделирования неперекрывающихся заявок;

способ последовательной проводки перекрывающихся заявок без приоритета;

способ последовательной проводки перекрывающихся заявок с приоритетом
В первом методе осуществляется пошаговый способ продвижения модельного времени, во втором и третьем – пособытийный.
11.1. Поток неперекрывающихся заявок
Процесс функционирования системы можно рассматривать как последовательную смену ее состояний. Пусть, например, в одноканальной системе массового обслуживания происходит процесс обслуживания поступающих заявок (рис. 1).
Рис. 11.1. Моделирование способом
T

Введем следующие обозначения:
1

- момент начала обслуживания 1-й заявки;
2

- момент конца обслуживания 1-й заявки;
3

- момент начала обслуживания 2-й заявки;
4

- момент конца обслуживания 2-й заявки;
5

- момент начала обслуживания 3-й заявки;
6

- момент конца обслуживания 3-й заявки;
7

— момент начала обслуживания 4-й заявки;
8

- момент конца обслуживания 4-й заявки.
Выберем шаг
T

и будем анализировать состояние системы через промежутки времени
1 2 3
, , ,...,
t t t
отстоящие друг от друга на
T

. Этот способ иногда называют способом
T

В момент
1
t
будет обнаружено, что в системе началось обслуживание 1-й заявки.
В момент
2 1
t
t
T
  
будет установлено, что обслуживание 1 -и заявки завершено.

126
В момент
3 2
t
t
T
  
будет обнаружено, что в системе началось обслуживание 2-й заявки. В момент
4 3
t
t
T
  
будет установлено, что обслуживание 2-й заявки завершено. В момент
5 4
t
t
T
  
будет обнаружено, что в системе началось обслуживание 3-й заявки. В момент
6 5
t
t
T
  
будет установлено, что обслуживание 3-й заявки завершено. Факт поступления 4-й заявки и факт окончания ее обслуживания не будут обнаружены.
Для предотвращения потерь информации и повышения точности работы модели нужно уменьшить шаг
T

. При малом
T

можно достаточно точно описать процесс функционирования системы.
11.2. Поток перекрывающихся заявок
При моделировании процессов обслуживания заявок в системах массового обслуживания иногда удобно строить моделирующий алгоритм по способу
последовательной проводки заявок. Этот способ может быть осуществлен, если события, происходящие в системе, не зависят друг от друга.
Моделирующий алгоритм последовательно воспроизводит истории отдельных заявок в порядке их поступления в систему. Алгоритм обращается к сведениям о других заявках лишь в том случае, если это необходимо для решения вопроса о дальнейшем порядке обслуживания данной заявки.
Существуют две разновидности способа последовательной проводки:

проводка заявок без приоритета;

проводка заявок с приоритетом.
11.2.1. Проводка заявок без приоритета
Рассмотрим вначале первый вариант. Пусть, например, в одноканальную систему массового обслуживания в одной случайной реализации процесса поступили четыре однородные заявки (с одинаковым приоритетом), как показано на рис. 11.2.
Рис. 11.2. Последовательная проводка заявок
В случайный момент времени
1
t
в систему поступила 1-я заявка. Поскольку канал свободен, ее обслуживание начинается в момент времени
1 1
н
t
t

.
Если распределение времени обслуживания известно, то с помощью ДСЧ можно


127 определить случайную величину времени обслуживания
1

. Тогда момент окончания обслуживания 1-й заявки будет равен:
1 1
1
к
н
t
t



. При этом к счетчику числа обслуженных заявок прибавляется единица
Далее определяется время поступления 2-й заявки. Если распределение случайной величины времени между соседними заявками известно, то с помощью ДСЧ можно определить интервал между 1-й и 2-й заявками и найти момент времени поступления 2-й заявки
2
t
. Поскольку канал занят, для 2-й заявки начинается период ожидания продолжительностью
1 1
ож
к
н
T
t
t



Обслуживание этой заявки начинается в момент
2 1
н
к
t
t

. Далее с помощью
ДСЧ определяется случайная величина времени обслуживания 2-й заявки
2

Тогда момент окончания обслуживания 2-й заявки будет равен:
2 2
2
к
н
t
t



К счетчику числа обслуженных заявок прибавляется единица.
Аналогичным образом обслуживаются 3-я и 4-я заявки.
11.2.2. Проводка заявок с приоритетом
Рассмотрим систему, предназначенную для обслуживания заявок двух различных приоритетов. Сделаем следующие допущения:

все заявки независимы;

при обслуживании используется абсолютный приоритет, т. е. поступающая заявка высшего приоритета немедленно вытесняет обслуживаемую заявку низшего приоритета;

после освобождения канала может производиться
«дообслу- живание» той заявки второго приоритета, которая была вытеснена заявкой первого приоритета.
При этих допущениях для построения моделирующего алгоритма может быть применен усовершенствованный способ последовательной проводки, который можно назвать способом поэтапной последовательной проводки.
Рассмотрим пример использования этого способа. Пусть в канал системы обслуживания поступают два потока заявок: первого (высшего) приоритета и второго (низшего) приоритета.
Первый этап моделирования
Распределение случайных величин интервалов между соседними заявками первого приоритета будем считать известным (например, показательным). Если задать интенсивность потока, то с помощью датчика случайных чисел можно определить случайные моменты поступления заявок
1.1 1.2 1.3
,
,
T
T
T
и т. д.
Распределение случайного времени обслуживания будем также считать извест- ным (например, показательным). Если задать среднее время обслуживания, то с помощью датчика случайных чисел можно заранее определить случайные интервалы обслуживания (рис. 11.3).