Распределение вероятностей задержки ответа смс - PullRequest
6 голосов
/ 24 мая 2010

Я пишу приложение, используя смс как общение. Я решил подписаться на смс-шлюз, который предоставляет мне API для этого.

API имеет функции для отправки , а также извлечения новых сообщений. Однако он не имеет никакой функциональности push .

Чтобы сделать мои запросы наиболее эффективными, я ищу данные о том, как долго люди ждут ответа на текстовое сообщение - как функция вероятности.

Дополнительная информация:

  • Приложение является интерактивным (как может быть), поэтому я полагаю, что время будет очень похоже на реальное общение между людьми.
  • Я не верю, что различия в личном стиле будут сильно влиять на правильное время и частоты запросов, поэтому средние данные должны быть хорошими.

Обновление

На меня произвели большое впечатление полученные ответы. Я пришел к выводу, что моим лучшим выстрелом будет несколько адаптируемых эвристик, включая экспоненциальный (или, возможно, полиномиальный) откат.

Все время я буду собирать статистику для последующего анализа. Может быть, что-то появится. Я думаю, что я начну с алгоритма генерации частот опроса по вероятностному распределению. Это будет весело.

Еще раз большое спасибо.

Ответы [ 4 ]

2 голосов
/ 27 мая 2010

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

Основная идея выглядит следующим образом:

Шаг 1: Установите начальную частоту вытягивания один раз каждые x секунд.

Шаг 2: извлекать сообщения с указанной частотой в течение продолжительности y.

Шаг 3: Если вы обнаружите, что сообщения всегда ждут, пока вы нажмете, уменьшите x, иначе увеличьте x.

Несколько конструктивных соображений:

  1. Отрегулируйте навсегда или остановитесь через некоторое время

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

  2. Критерии корректировки: для каждого клиента или для всех клиентов

    Вы можете выполнить настройку на шаге 3 для каждого клиента или для всех клиентов.

Я считаю, что служба smtp GMAIL работает в том же духе.

1 голос
/ 27 мая 2010

SMS - это служба обмена сообщениями с сохранением и пересылкой, поэтому необходимо добавить задержку, которая может быть добавлена ​​различными SMSC (центрами обслуживания коротких сообщений).Если вы подключаетесь к одному из крупных провайдеров агрегации (Sybase, TNS, mBlox и т. Д.), Которые предоставляют массовые SMS-сервисы (Clickatel и т. Д.), Вам необходимо разрешить, чтобы сообщение проходило через их сеть, а также сеть операторов.Если вы используете магазин меньшего размера, то, скорее всего, они используют модем GSM (или модемы), и существует ограничение пропускной способности для сообщения, которое можно получать и обрабатывать (а также отправлять)

Все, что сказано, если вы используете прямое соединение или одно из сообщений больших парней MO (с мобильного телефона), приходящих к вам в качестве CP (контент-провайдера), должно занять менее 5 секунд.Добавьте к этому время, которое требуется мобильным подписчикам для ответа.

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

Если вы запрашиваете конкретные ответы, я опрашиваю вас через 5 и 10 секунд, а затем применяю экспоненциальное откат.

Все это из североамериканской точкиПосмотреть.Европа будет довольно близко, но такие места, как Африка, Азия будет немного медленнее, так как сети немного медленнее.(если вы не подключены напрямую к оператору, и даже тогда некоторые из них работают медленно).

1 голос
/ 27 мая 2010

Хороший вопрос.

Учтите, что у людей может быть несколько задач, и что ответ на текстовое сообщение может быть одной из этих задач.Если для каждой из этих задач требуется экспоненциально распределенное время, то время, необходимое для ответа на текстовое сообщение, представляет собой сумму времени выполнения этой задачи.Сумма n iid случайных величин имеет гамма-распределение.

Количество задач перед возвратом текста также имеет дискретное распределение - скажем, это Пуассон.У меня нет времени, чтобы получить полученный дистрибутив, но, имитируя его с помощью @Risk, я получаю дистрибутив Weibull или Gamma.

1 голос
/ 25 мая 2010

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

...