Задача про вероятность длины очереди заявок

 

Давно не обсуждались на форуме разные математические задачки, думаю эта тема позволит участникам форума блеснуть умом!

Дано:

У нас есть сервер, который получает заявки клиентов, регистрирует их и ставит в очередь на исполнение. Клиентов 10000 человек, и в теории, каждый может в любой момент отправить свою заявку. Заявки регистрируются и исполняются последовательно, по мере поступления. Скорость исполнения одной заявки составляет 7 мс. В начале предположим, что длина очереди не влияет на скорость исполнения одной заявки.

Вопрос:

Если у одного клиента время исполнения заявки колеблется в пределах 1500 мс при отправке 100 (ста) заявок в разные временные интервалы, то какая вероятность, что перед ним уже исполняется примерно 214 (1500/7) заявок для каждого из 100 заявок? Изменяется ли шанс (вероятность) попадания в очередь от количества попыток?

Прикладное применение - форекс-дилер утверждает, что очереди большие на исполнение ордеров (заявок), а я не могу понять, почему очередь всегда примерно одинакова - хочется математическое обоснование получить.

Прошу писать свои мысли по решению задачи, в том числе можно и мысли "ИИ" всех сортов.

 
Aleksey Vyazmikin:
Изменяется ли шанс (вероятность) попадания в очередь от количества попыток?

Думаю, что каждый раунд постановки в очередь имеет одинаковую вероятность встать 214 в очередь, т.е. эти события не связаны, но вот тогда интересна вероятность 100 раз подряд попасть в примерно одной длины очередь.

 

ещё из древних времён помнится что при реальной 70% нагрузке сеть становится раком. близкое к соточке значение можно прогнать только в синтетических тестах, иначе клятый рандом лютует и всё лагает

"теория массового обслуживания в приложениях сетей передачи данных" :-)

---

если заявка обслуживается 6-8 мск, а в очередь поступают они с темпом 7, то попасть на время ожидания в очереди в 1000мск легко и просто. Очередь вообще будет неограниченно расти и время ожидания тоже. 

ровно такая-же фигня как со случайной торговлей - отыграться не получится, помнится что даже формулы схожие, только слова другие

 
GPSS в помощь.
 

Можно вспомнить про эффект переполненных автобусов. Суть в том, что в переполненных автобусах ездит больше людей и если считать среднее по их данным, то в среднем автобусы переполнены. Если же считать среднее по автобусам, то оно будет меньше.

Например, 2 автобуса, в одном 99 человек, а в другом - один. Если считать среднее по автобусам, то оно равно (99+1)/2=50. Если считать среднее по людям, то оно равно (99*99+1*1)/100=98.02, что почти в два раза больше.

 
Maxim Kuznetsov #:

ещё из древних времён помнится что при реальной 70% нагрузке сеть становится раком. близкое к соточке значение можно прогнать только в синтетических тестах, иначе клятый рандом лютует и всё лагает

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

Maxim Kuznetsov #:

если заявка обслуживается 6-8 мск, а в очередь поступают они с темпом 7, то попасть на время ожидания в очереди в 1000мск легко и просто. Очередь вообще будет неограниченно расти и время ожидания тоже. 

Вот, хотелось бы получить некую числовую оценку, что бы потом покрутить исходные данные и оценить их влияние на вероятность.

 
JRandomTrader #:
GPSS в помощь.

Это,  конечно весьма интересный инструмент, но тратить кучу времени для его освоения ради одной задачи, кажется расточительным.

Вы им умеете пользоваться?

 
Aleksey Nikolayev #:

Можно вспомнить про эффект переполненных автобусов. Суть в том, что в переполненных автобусах ездит больше людей и если считать среднее по их данным, то в среднем автобусы переполнены. Если же считать среднее по автобусам, то оно будет меньше.

Например, 2 автобуса, в одном 99 человек, а в другом - один. Если считать среднее по автобусам, то оно равно (99+1)/2=50. Если считать среднее по людям, то оно равно (99*99+1*1)/100=98.02, что почти в два раза больше.

Как я понимаю, вероятность попасть в переполненный автобус зависит от времени его использования. Утром и вечером, в определённый временной интервал люди едут на работу и с работы - отсюда переполненность, т.е. есть эффект пиковой нагрузки. В нашем случае, думаю, правильней считать "среднее по людям", так как оценивается вероятность попадания в переполненный автобус. Т.е. должно получится в итоге некое распределение, из которого можно получить вероятность попадания в очередь разной длины, и распределение, допустим из которого видна вероятность за сутки попасть в очередь заданной длины.

 
Aleksey Vyazmikin #:

Как я понимаю, вероятность попасть в переполненный автобус зависит от времени его использования. Утром и вечером, в определённый временной интервал люди едут на работу и с работы - отсюда переполненность, т.е. есть эффект пиковой нагрузки. В нашем случае, думаю, правильней считать "среднее по людям", так как оценивается вероятность попадания в переполненный автобус. Т.е. должно получится в итоге некое распределение, из которого можно получить вероятность попадания в очередь разной длины, и распределение, допустим из которого видна вероятность за сутки попасть в очередь заданной длины.

Мы, как пользователи, всегда будем считать "среднее по людям", а автобусный парк всегда будет считать "среднее по автобусам".

Ну и в нашем случае вряд ли будет возможность у "автобусного парка" менять "интервалы между автобусами" (пропускную способность серверов) в разные часы суток.

 
Aleksey Vyazmikin #:

Это,  конечно весьма интересный инструмент, но тратить кучу времени для его освоения ради одной задачи, кажется расточительным.

Вы им умеете пользоваться?

Немного касался на лабах в институте, в начале 90-х ))

 
Aleksey Nikolayev #:

Мы, как пользователи, всегда будем считать "среднее по людям", а автобусный парк всегда будет считать "среднее по автобусам".

Ну и в нашем случае вряд ли будет возможность у "автобусного парка" менять "интервалы между автобусами" (пропускную способность серверов) в разные часы суток.

Вот и нужно понять, есть ли вообще эта разная нагрузка. Как так может быть, что я всегда сажусь в автобус "средней" наполненности, независимо от времени торговли.

А особенно, куда, после определённой даты делось 70% автобусов.