2010-05-24 10 views
6

Estoy escribiendo una aplicación usando sms como comunicación. He elegido suscribirme a un sms-gateway, que me proporciona una API para hacerlo.Distribución de probabilidad para retrasos de respuesta de sms

La API tiene funciones para el envío de , así como tirando nuevos mensajes. Sin embargo, no tiene ningún tipo de push funcionalidad.

Para hacer mis consultas más eficientes, estoy buscando información sobre cuánto tiempo la gente espera antes de contestar un mensaje de texto, como una función de probabilidad.

Información adicional:

  • La aplicación es interactiva (como puede ser), así que supongo que los tiempos serán muy similar a la comunicación humano-humano de la vida real.
  • No creo que las diferencias en el estilo personal tengan un gran impacto en los tiempos y frecuencias correctos para consultar, por lo que el promedio de datos debería estar bien.

actualización

Estoy impresionado y honered por las muchas respuestas recibido. He llegado a la conclusión de que mi mejor opción será una heurística adaptable, incluida una reducción exponencial (o tal vez polinómica).

Todo el tiempo voy a reunir estadísticas para un análisis posterior. Tal vez algo aparecerá. Creo que voy a hacer trampa en el algoritmo para generar encuestas frquenzies a partir de una distribución de probabilidad. Eso será divertido.

Gracias de nuevo muchas veces.

+0

No sé ... Sería mucho más rápido responder a un amigo de lo que respondería a una aplicación interactiva que me envía un mensaje de texto. Podría ser la diferencia entre dejar el teléfono en el cargador mientras salgo a hacer w/e y enviar una respuesta rápida antes de salir. – Cam

+0

Si eso ayuda, el tiempo de espera para un evento de un proceso de Poisson, sigue la distribución exponencial (http://en.wikipedia.org/wiki/Exponential_distribution) con el parámetro λ, que es el número esperado de "eventos" de ese proceso, que ocurre por unidad de tiempo –

+0

Pregunta interesante. Asegúrate de publicar lo que sea que se te ocurra como respuesta. La única respuesta hasta ahora me recuerda al jefe de Dilbert: "Intenta identificar el problema y luego resuélvelo". :) – dreeves

Respuesta

2

En ausencia de datos reales, la mejor solución puede ser escribir el código para que la aplicación ajuste el tiempo de espera según el historial actual de tiempos de respuesta.

idea básica de la siguiente manera:

Paso 1: Establecer la frecuencia inicial de tirar una vez cada x segundos.

Paso 2: Extraiga los mensajes a la frecuencia anterior para la duración y.

Paso 3: Si descubre que los mensajes están siempre esperando a que tire de disminuir x de lo contrario aumentar x.

Varias consideraciones de diseño:

  1. Ajuste para siempre o se detienen después de algún tiempo

    Puede repetir los pasos 2 y 3 para siempre en cuyo caso la solicitud se ajusta dinámicamente de acuerdo con los patrones de texto. Alternativamente, puede detenerse después de un tiempo para reducir la sobrecarga de la aplicación.

  2. criterios de ajuste: por cliente o clientes a través de todos

    Se puede elegir hacer el ajuste en el paso 3 en función de cada cliente o entre todos los clientes.

Creo que el servicio smtp de GMAIL funciona en la misma línea.

1

Bueno, yo sugeriría encontrar algunas estadísticas sobre el uso diario de SMS/mensajes de texto por ubicación geográfica y grupos de edad y llegar a un promedio diario, aunque no será una medida exacta para todos.

+1

Esa es la cantidad de mensajes por día; Creo que está pidiendo la distribución del retraso entre recibir un mensaje y responder a él, de modo que pueda minimizar la cantidad de consultas que realiza a su puerta de enlace SMS mientras responde de manera oportuna. –

1

Buena pregunta.

Considere que las personas pueden tener varias tareas y que responder a un mensaje de texto podría ser una de esas tareas. Si cada una de esas tareas lleva una cantidad de tiempo que se distribuye de forma exponencial, el tiempo para responder al mensaje de texto es la suma de esos tiempos de finalización de tareas. La suma de n iid variables aleatorias tiene una distribución Gamma.

El número de tareas antes del retorno del texto también tiene una distribución dicrete, digamos que es Poisson. No tengo tiempo para derivar la distribución resultante, pero al simularla usando @Risk, obtengo una distribución Weibull o Gamma.

1

SMS es un servicio de mensajería de almacenamiento y reenvío, por lo que debe agregar el retraso que pueden agregar los diversos SMSC (Centros de servicio de mensajes cortos) a lo largo del camino. Si se está conectando a una de las grandes casas de agregación (Sybase, TNS, mBlox, etc.) proveedores comerciales de SMS a granel (Clickatel, etc.), entonces debe permitir que el mensaje transmita su red, así como la red de operadores. Si está utilizando una tienda más pequeña, lo más probable es que esté utilizando un módem GSM (o módems) y hay un límite de rendimiento en el mensaje que puede recibir y procesar (así como expulsar)

Todo lo dicho, si está utilizando una conexión directa o uno de los mensajes de MO grandes (originado en el móvil) que llega a usted como CP (proveedor de contenido) debería tomar menos de 5 segundos. Agregue a eso el tiempo que le lleva a los suscriptores móviles responder.

Yo diría que la evidencia anecdótica de los servicios en los que he trabajado antes, donde el suscriptor móvil necesita proporcionar una respuesta simple, es generalmente dentro de los 10 segundos o no aparece en absoluto.

Si está sondeando para respuestas específicas, yo sondearía a los 5 y 10 segundos y luego aplicaría un retroceso exponencial.

Todo esto es desde un punto de vista de América del Norte. Europa estará bastante cerca, pero lugares como África y Asia serán un poco más lentos ya que las redes son un poco más lentas. (a menos que esté conectado directamente con el operador e incluso algunos de ellos sean lentos).

+0

+1 por enseñarme mucho sobre el sistema de sms :) –

Cuestiones relacionadas