Распределение вероятностей задержки ответа смс

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

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

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

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

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

Обновить

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

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

Спасибо еще раз много раз.

4 ответа

Решение

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

Основная идея заключается в следующем:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам