Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Случайные целые числа





Функции ceil, fix, floor и round, вмести с rand порождают случайные целые числа.

Здесь ceil(x) есть наименьшее целое ³ x, floor(x) – наименьшее целое £ x и round(x) ближайшее к x целое. Команда fix совпадает либо с ceil, либо с floor в зависимости от знака числа, поскольку она округляет числа до целого, ближайшего к нулю.

ceil(1.2)=2; ceil(-1.6)=-1

fix(1.9)=1; fix(-1.6)=-1

floor(1.2)=1; floor(1.9)=1

round(1.2)=1; round(1.9)=2

x=rand(n,1); floor((k+1)*x) – порождает n чисел, которые принимают значения 0,1,…,k с равной вероятностью

ceil(k*x) – порождает n чисел, которые принимают значения 1,…,k с равной вероятностью

round(k*x) – порождает n чисел, которые принимают значения 0,1,…,k с неравной вероятностью

Если нужно произвести случайную перестановку из k целых чисел 1,2,…,k следует воспользоваться командой randperm.

Например, переставим строки матрицы случайным образом:

r=randperm(5)

A=ceil(rand(5)*3)

B=A(r,:)

Моделирование распределений

 

unirand(a,b,n,k) – равномерное распределение матрицы размером n x k из (a,b)

normrand(mu,sigma,n,k) – нормальное распределение матрицы размером n x k с средним mu и стандартным отклонением sigma

exprand(mu,n,k) – экспоненциальное распределение матрицы размером n x k со среднем отклонением mu

 

Имитация очередей

Имитация осуществляется в виде последовательности событий двух типов:

· Поступление. Объект поступает в службу обслуживания и при­соединяется к очереди. Если очередь до этого была пуста и об­служивание не проводилось, то для поступившего объекта оно начинается немедленно, а в противном случае объект становится в конец очереди и ждет обслуживания.

· Конец обслуживания. Объект движется к конечной стадии. Если перед ним уже нет других объектов, то его обслуживание начинается немедленно и до своего окончания не фиксируется как отдельное событие. Конечно, если очередь пуста, то обслу­живание не начинается до следующего поступления.

Все объекты различаются по некоторым признакам. В случае од­ной очереди и одного устройства обслуживания нам обычно нужны:

· Вектор 1 – последовательность интервалов времени между по­ступлениями;

· Вектор 2 - последовательность интервалов времени обслуживания

Команда cumsum преобразует интервал времени между поступлениями в момент времени поступлений. Необходимо обращать внимание и на объект, и на общую рентабельность обслуживания, чтобы сделать лежащую в основе коммерческую деятельность удобной и квалифицированной и в тоже время экономически выгодной. Два указанных выше вектора могут быть использованы для получения требуемой информации – с этой целью был создан M-файл queue.m.

 

M-файл queue.m

Заранее подготовленный М-файл queue.m создан, чтобы вычислять время ожидания и время окончания обслуживания для заданных времени поступления и времени обслуживания. Обращение к М-файлу имеет вид:

[Mean_q Serv_u Wait_t Stop_t]=queue(Arr_t, Ser_t)

2 входных вектора:

· Arr_t – вектор времен поступления

· Ser_t – вектор времен обслуживания

4 выходных вектора:

· Mean_q – скаляр, показывающий среднюю длину очереди за время имитации

· Serv_u – скаляр, показывающий долю общего времени, когда обслуживание было востребовано

· Wait_t – вектор времен ожидания обслуживания в очереди без учета времени обслуживания

· Stop_t – вектор времен окончания обслуживания

Например, для двух поступлений Arr=[2 8] и соответствующих времен обслуживания Ser=[7 4] (в минутах) будем иметь

[Mean_q Serv_u Wait_t Stop_t]=queue(Arr_t, Ser_t)

Mean_q=0.9231

Serv_u=0.8462

Wait_t= 0 1 – первый не ждет, а ждет только второй

Stop_t= 9 13 – время окончания обслуживания

Супермаркет

Покупатели встают в очередь к кассе супермаркета в соответствии с экспоненциальным распределением времен поступления со средним значением L — 50 сек. Каждый делает I = 10 или меньше покупок, а время обслуживания покупки кассой есть S = 10 сек. Здесь время между поступлениями клиентов может быть имитировано посред­ством IT=exprand(L,5,1) для пяти покупателей, а число их поку­пок имитируется с помощью N=ceil(unirand(0,10,1,5)).

Время поступления AT может быть вычислено командой cumsum по времени между поступлениями IT. Далее, мы можем вычислить времена того, когда посетитель отходит от кассы супермаркета, как долго каждый посетитель должен стоять в очереди, а также сред­нее время ожидания и процент времени, когда касса работает. Вся эта информация может быть получена всего одним обращением к М-файлу queue.m следующим образом:

L=50;S=10;

IT1=exprand(L,5,1)

IT=round(IT1)

N=ceil(unirand(0,10,1,5))

ST=S*N

AT=cumsum(IT)

[Mean_Q, Ser_U, Wait_t, Stop_t]=queue(AT,ST)

Решение, найденное МАТLАВ'ом, будет

IT =

N = 8 5 1 9 5 ST = 80 50 10 90 50

AT =

Mean_Q = 1.1395 Ser_U = 0.6512

Wait_t = Stop_t =

0 230

67 280

70 290

47 380

26 430

 

Время между поступлениями IT   Число покупок N     Время обслуживания ST=S*N  
     
     
     
     
     

 

Табл.1. Имитация данных по кассовой очере­ди супермаркета

Таблица событий

После окончания имитации можно построить таблицу событий на основе полученной информации. Таблица событий представляет каждый из объектов во всех подробностях: время поступления, де­тали атрибутов, длина очереди и время окончания обслуживания. Таким образом, мы имеем возможность отслеживать ход событий, чтобы обеспечить эффективное функционирование и управление обслуживанием.

В рассмотренном выше примере о покупках большая часть ре­зультатов наблюдений над очередью может быть отражена в табли­це событий (см. табл. 2), содержащей время поступления, время ожидания, время окончания обслуживания и т.д., где N обозначает число покупок, QL – длина очереди и Stop_t время окончания обслуживания.

Событие Время (сек.) N ST QL Следующее поступление Stop_t
Начало           Свободно
1 поступление            
2 поступление            
3 поступление            
4 поступление            
5 поступление            

 

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

 

Date: 2016-07-18; view: 165; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию