Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Моделирование систем управления


Автор: Formula 30.12.2007, 20:59
Задание следующее. Кто возьмётся?




Задание 

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

Описание системы

Время между поступлениями заказов на приемники распределено экспоненциально* с математическим ожиданием 0,2 недели.

Если покупателю нужен приемник, когда его нет в запасе, он в 80% случаев отправляется в другое место (несостоявшаяся продажа). В 20% случаев делается повторный заказ (покупатель ждет следующей партии груза). 

Каждые 4 недели запас приемников просматривается. Текущее состояние запаса: наличный запас + заказанные ранее приемники -   неудовлетворенный спрос. Если текущее состояние запасов <= 18 приемников, осуществляется размещение заказа, доводящего запас до 72 приемников.

Время доставки (между размещением и получением заказа) 3 недели.

Начальные условия: состояние запаса – 72 приемника, неудовлетворенного спроса нет.

Цель работы

Промоделировать систему в течение 6 лет (312 недель), определить:
1.    Среднее число приемников в запасе.
2.    Число проданных приемников.
3.    Число несостоявшихся продаж.
4.    Количество заказов.
5.    Количество покупателей.

*Экспоненциальное распределение с математическим ожиданием m
x = -m*ln®, где  r равномерно** распределено в интервале [0,1].

**Конгруэнтный метод генерации равномерно распределенных псевдослучайных чисел интервале [0,1]
Конгруэнтный метод использует следующее рекурсивное уравнение: 
zi = (a*zi-1+b)(mod c), i = 1, 2, 3, …,
ri = zi/(c-1),
где z0 – базовое число, ri - i-ое псевдослучайное число, b – простое число относительно c, a = 4*k+1, где k – целое (z0 = 3, k = 5, b = 7, c = 65536)

_________________________________________________________

Пример 

Описание системы  работы аэропорта

      Грузы прибывают для отправки в аэропорт в контейнерах со скоростью 2 контейнера в 1 мин. В грузовом  аэропорту нет фиксированного расписания, самолеты отправляются по мере их загрузки. Есть два типа самолетов: 3 с грузоподъемностью 80 контейнеров, 2 с грузоподъемностью 140 контейнеров. Время полета каждого самолета туда и обратно распределено нормально * с математическим ожиданием 3 ч. и среднеквадратичным отклонением 1 ч.: min = 2 ч., max = 4 ч. Чаще стараются использовать самолеты меньшей грузоподъемности. Самолеты большей грузоподъемности используются, когда других нет в наличии. 
      Промоделировать систему для получения оценок времени ожидания контейнеров с грузами и загрузки самолетов обоих типов в течение 100 ч. (временем погрузки пренебречь).

*Нормальное распределение с математическим ожиданием m , дисперсией s

Нормальные выборки генерируются парами. Пусть a = 2*r1-1 и b = 2*r2-1, где r1  и r2 – независимые псевдослучайные числа, равномерно** распределенные в интервале [0,1].
Пусть w =  a*a+b*b. Если w>1.0, повторить процедуру, если w<=1.0, тогда x1 = (a*sqrt(-0.2*ln(w)/w))*m+s, x2 = (b*sqrt(-0.2*ln(w)/w))*m+s.

Алгоритм 

1.    Пока модельное время < 6000 мин., перейти к п.2, иначе к п.16.
2.    Сгенерировать 2 контейнера, увеличить модельное время на 1 мин. Прилетевшие самолеты, если такие есть, поставить в очередь на обслуживание. 
3.    Пока очередь на обслуживание не пуста, перейти к п.4, иначе к п.1.
4.    Взять самолет из очереди с заданным приоритетом.
5.    Пока  самолет не загружен, перейти к п.6, иначе к п.12.
6.    Если контейнеров нет на складе, перейти к п.7, иначе к п.9.
7.    Сгенерировать 2 контейнера, увеличить модельное время на 1 мин. Прилетевшие самолеты, если такие есть, поставить в очередь на обслуживание. 
8.    Если модельное время > 6000 мин., перейти к п.16, иначе к п.13.
9.    Взять контейнер со склада.
10.    Погрузить контейнер на обслуживаемый самолет.
11.    Перейти к п.5.
12.    Если модельное время > 6000 мин., перейти к п.16, иначе к п.13.
13.     Приравнять время полета самолета к нормальному случайному числу с заданными параметрами.
14.    Рассчитать время прилета и простоя, увеличить количество вылетов на 1.
15.    Перейти к п.3.
16.    Конец алгоритма.

Текст программы

Программа математического моделирования работы аэропорта написана на языке Borland C++ 3.1.





примеры могу выложить дополнительно,если они понадобятся.



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)