2016-07-13 10 views
-2

Мой вопрос:Рождения Смерть Код

При институте экспериментальной математики есть компьютер, который помогает решать проблемы.

Задачи Приходят к компьютеру при пуассонном процессе с интенсивностью «Ланда» в час.

Время решения каждой проблемы можно рассматривать как экспоненциальное распределение с параметром «mu».

В нашем мире у нас есть четыре разных состояния. S = (0,1,2,3)

государственные 0 = 0 проблемы пришли к компьютеру

состояние 1 = компьютер решает 1 вопрос

Государственных 2 = компьютер решение- вопрос + 1 в очереди.

Состояние 3 = компьютер разрешает 1 вопрос + 2 в очереди.

Если вопрос возникает, когда мы находимся в состоянии 3, отправитель получает сообщение об ошибке и повторяет попытку позже. Учреждение решило, что максимум 5% отправителей должны получить это сообщение об ошибке.

Чтобы решить, кто должен иметь доступ к компьютеру, мы предлагаем 3 разных предложения.

  1. Только профессора допускаемые отправить вопросы (Ланда = 2, Mu = 10)
  2. Профессора и студенты допускаемые отправить вопросы (Ланда = 6, Му = 10)
  3. Любой является допускаемые к (Landa = 10, Mu = 10)

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

У меня есть две вещи, мне нужно помочь с

Первая вещь: решить вопрос я дал эту структуру кода (код под). Мне нужна помощь, если кто-то может кратко объяснить мне цель следующего параграфа кода, где я написал «#?».

Так что мне действительно нужна помощь, это some1, чтобы объяснить части кода.

Обо мне: В двух местах я написал «...», там мне нужна помощь, чтобы заполнить какой-то код.

bd_process <- function(lambda, mu, initial_state = 0, steps = 100) { 
    time_now <- 0 
    state_now <- initial_state 
    time <- 0 
    state <- initial_state 

    for (i in 1:steps) { 

     if (state_now == 3) { 
      lambda_now <- 0 
     } else { 
      lambda_now <- lambda 
     } 

     if (state_now == 0) { 
      mu_now <- 0 
     } else { 
      mu_now <- mu 
     } 

     #? 
     time_to_transition <- ... 

     #? 
     if (...) { 
      state_now <- state_now - 1 
     } else { 
      state_now <- state_now + 1 
     } 

     #? 
     time_now <- time_now + time_to_transition 
     #? 
     time <- c(time, time_now) 
     #? 
     state <- c(state, state_now) #WHAT DOE THIS VECTOR CONSIST OF? 
    } 
    list(time = time, state = state) 
} 
+1

Ого, это уже вопрос. Можете ли вы свести к [mcve] легкость ответа? – Stedy

+2

У вас, похоже, есть копия/вставка заявления о проблеме. Вы понимаете проблему? Вы понимаете цель функции 'bd_process'? В конце он возвращает 'tid' и' state', но у вас есть вопросительный знак при обновлении 'state' и пишите' '#WHAT DOE THIS VECTOR CONSIST OF?' ". Непонимание возврата заставляет меня думать, что вы не понимаете цели функции – Gregor

+1

Возможно, вы могли бы также объяснить, что вы знаете. Например, у вас есть вопросительный знак о строке 'time_now <- time_now + time_to_transition'. Это простое дополнение. Он добавляет текущее значение 'time_now' к текущему значению' time_to_transition' и вызывает результат 'time_now', следовательно, обновляя переменную' time_now'. Это необходимый вам уровень объяснения? – Gregor

ответ

0

Код по-видимому, написано с неявным предположением, что распределение interarrival и обслуживания без памяти, то есть, либо экспоненциальное или геометрические. Без без памяти недействительно отключить обработку, установив скорости до нуля.

С имуществом без памяти вы можете определить time_to_transition как superposition of the two Poisson processes и определить, было ли это прибытие или вылет, рандомизировав пропорционально ratio of one of the rates to the combined rate.Это также справедливо для нуля одной из скоростей, потому что, когда вы отключаете ее, прошедшее время, когда скорость равна нулю, не имеет значения из-за свойства без памяти.

+0

Здравствуйте, pjs. Я думаю, что time_to_transition - это время, чтобы оставить одно состояние и что его можно рассматривать как Exp (mu) + Exp (лямбда). Есть ли какой-нибудь код для этого? Когда я пишу его, я получаю «Exp» не найден. – PeterNiklas

+0

@PeterNiklas Предполагая, что вы имеете в виду экспоненциально распределенный со скоростью mu при написании 'Exp (mu)', следующий переход не является 'Exp (mu) + Exp (лямбда)'. Он находится на меньшем из двух - 'min (Exp (mu), Exp (лямбда))', который имеет распределение 'Exp (mu + lambda)'. – pjs