Лабораторные работы №1,2,4,6 по курсу Системный анализ и машинное моделирование.
- Построить (написать программу) генератор последовательности равномерно распределенных случайных чисел на основе алгоритма Лемера. Предусмотреть при этом возможность ввода параметров a, R0, m с клавиатуры.
- Для полученной выборки чисел построить гистограмму (20 интервалов), рассчитать значения оценок для математического ожидания m, дисперсии D и среднего квадратичного отклонении σ.
- Оценить равномерность последовательности по косвенным признакам.
- Найти длину периода и участка апериодичности. Варьируя значениями параметров a, R0, m, добиться длины периода не менее 50000 чисел.
- Построить (написать программу) для генерации последовательностей случайных чисел с описанными выше распределениями. Предусмотреть возможность ввода параметров распределений с клавиатуры.
- Для полученных выборок чисел построить гистограммы (20 интервалов), рассчитать значения оценок для математического ожидания m, дисперсии D и среднего квадратичного отклонения σ.
В сооответствии с заданным вариантом построить граф состояний P-схемы. Смысл кодировки состояний раскрыть (время до выдачи заявки, число заявок в накопителе и т.д.). По графу построить аналитическую модель и, решив ее, определить вероятности состояний. Рассчитать теоретические значения показателей эффективности: Ротк – вероятность отказа; Рбл – вероятность блокировки; Lоч – средняя длина очереди; Lc – среднее число заявок, находящихся в системе; Q – относительная пропускная способность; А – абсолютная пропускная способность; Wоч – среднее время пребывания заявки в очереди; Wc – среднее время пребывания заявки в системе, Kкан – коэффициент загрузки канала (вероятность занятости канала).
Попытка написать универсальную программу, которая считает все варианты. Однако данных для провекри не было, поэтому в работоспособности не на 10 и 18 варинатах не уверен. Буду рад пулам с фиксами, если таковые нужны.
Как запустить на своем варианте:
- В LabForm для 3 лабораторной найти:
var source = new SourceWithBlockingDiscipline(0, system, 0, 0.5);
var queue = new Queue(1, 1, 2);
var pi1 = new ChannelWithDiscardingDiscipline(2, 2, 0.48);
var pi2 = new Channel(3, 3, 0.5);
- Заменить на то, что необходимо вам.
Компоненты:
- Channel - завершающий канал (только он делает заявки обработанными системой);
- ChannelWithBlockingDiscipline - канал с дисциплиной блокировки;
- ChannelWithDiscardingDiscipline - канал с дисциплиной отбрасывания заявки;
- Queue - очередь (накопитель);
- SourceWithBlockingDiscipline - источник с дисциплиной блокировкки;
- SourceWithDiscardingDiscipline - источник с дисциплиной отбрасывания заявки.
Важно!
- PositionInStruct в компонентах создавалась для систем с параллельными компонентами, в них это свойство, у параллельных компонентов, должно быть равно.
- Id используется только при выводе на экран статистики, для того чтобы различить компоненты с одинаковыми параметрами, поэтому желательно делать их разными.
Построить имитационную модель. На вход 2 – канальной СМО с отказами поступает простейший поток заявок с интенсивностью λ = 4 заявки в час. Среднее время обслуживания одной заявки 0.8 часа. Каждая обслуженная заявка приносит доход 4у.е. Содержание одного канала обходится 2 у.е./час. Определить,что экономически целесообразнее – увеличение числа каналов до 3, или введение мест ожидания, если содержание одного места обходится в 0.3 у.е./час.
Количество каналов и длина очереди может быть любой, так что, В ТЕОРИИ! НЕ ПРОВЕРЯЛ, программу можно использовать и для других вариантов.