Saturday, August 23, 2014

De captahuellas, supermercados y teoría de colas


Hace unos años, cuando las captahuellas aparecieron en el contexto de las elecciones, me di a la tarea de estudiar un poco la parte de la modelización del sistema (ver aquí y aquí). En aquel entonces, sin tener mucha información sobre la arquitectura de comunicaciones pensada por el gobierno, llegué de todas maneras a la conclusión de que tal sistema de verificación no podría funcionar a nivel nacional. La teoría de colas indicaba que si el sistema se implementaba a gran escala sería un sistema inestable. Mi conclusión era que el sistema, a lo sumo, podía implementarse localmente, y, aún así, dependiendo del comportamiento de los usuarios, podría generar retrasos significativos o caer en inestabilidad.

Las "papahuellas", como la chispa venezolana ya ha bautizado al sistema propuesto para racionar o controlar los insumos, es incluso más crítico que el de las captahuellas en termino de teoría de colas, ya que el sistema debe no sólo verificar si la persona está en la base de datos, sino chequear, en una serie de productos, si se llegó o no a los máximos establecidos por el gobierno.

Ahora bien, qué significa la estabilidad y porqué es tan importante en el estudio de un sistema de colas.

Una cola es simplemente un sistema en el que entran usuarios y salen usuarios. Los usuarios salen del sistema, después de haber pasado por un servidor. En sistemas de banco, los servidores son los cajeros (humanos o automáticos), en sistemas de supermercados son también los cajeros, en las redes de tránsito, es la vía misma, en sistemas de comunicaciones, son las cartas o los modems, en sistemas de acceso a la información, son los servers donde esté localizada la información, etc. etc. Los servidores tienen una tasa de servicio (por ejemplo, usuarios/minuto) que, conjuntamente con la tasa de llegada de usuarios, definen el comportamiento del sistema.


Para que el sistema sea estable, la tasa de servicio debe ser mayor que la tasa de llegada. Es decir, el servidor debe tener suficiente capacidad como para poder tratar a los usuarios que van llegando. Si tal no es el caso, el sistema se vuelve inestable y no hay garantía que la cola que se forma pueda ser absorbida. Ahora bien, el hecho de que el sistema sea estable, es decir, que la tasa de llegada sea inferior que la de servicio, no implica que no se forme cola, todo depende del comportamiento de las llegadas, la forma del servicio y la cantidad de usuarios que se tengan.

Analicemos ahora el sistema propuesto. Supongamos que cada caja de supermercado tenga una captahuella asignada. La tasa de llegada están constituida por los usuarios que llegan a la caja con sus carritos de mercado. La tasa de servicio, por su parte, dependerá del número de artículos que el usuario tenga en el carrito y de la rapidez de la cajera, además, en este caso, hay que considerar el tiempo de verificación de la huella en la base de datos y el tiempo de verificación y aceptación de las compras del usuario cuando se evalúa la tasa de servicio.

No hay que hacer un curso para darse cuenta que cualquier búsqueda suplementaria engendra un retraso. Ahora bien, inmagínense que la búsqueda sea general. Es decir, que para cada usuario haya que evaluar todos los productos de la compra en todos los supermercados del país. Estamos hablando, de cientos de productos, de millones de personas y de una búsqueda en tiempo real. Claramente, a menos de tener sistemas altamente distribuidos con algorithmos ultra-especializados como los que utilizan ciertas companías de Internet, el tiempo de búsqueda sería demasiado elevado y llevaría a una inestabilidad del sistema.

Lo que es importante retener es que, incluso si la búsqueda es local y rápida, el sistema puede de todas maneras caer en inestabilidad o crear retrasos inaceptables. De hecho, no se trata simplemente de adicionar el tiempo de búsqueda al tiempo de espera promedio como muchos podrían pensar. La razón es que el comportamiento de las colas es no-lineal y, a medida que el tráfico se acerca a la capacidad del sistema, incluso dentro de la estabilidad, el tiempo de espera crece exponencialmente.

Para ilustrar, les pongo un ejemplo del tipo de cola más sencillo que existe, el llamado sistema M/M/1. En este sitio web, se pueden hacer evaluaciones en línea del estado
del sistema.


Para todos los casos, consideraré una tasa de llegada promedio de 30 clientes por hora. Al principio considero una tasa de servicio de 40 clientes por hora.
El resultado en tiempo promedio de estancia en el sistema es de 6 minutos.
Ahora consideremos que la tasa de servicio, debido a las captahuellas, baja a 35 clientes por hora
El resultado es que el tiempo promedio de estancia en el sistema doblará a 12 minutos.

Supongamos ahora que la tasa de servicio baja aún más, esta vez a 31 clientes por hora (siempre dentro del límite de estabilidad)

El nuevo resultado de tiempo de estancia promedio será multiplicado por 10, a 60 minutos
Llevemos ahora el sistema casi al límite de la estabilidad, con un sistema que es capaz de darle servicio a 30.1 clientes por hora

Tenemos ahora que el tiempo promedio del sistema es de nada menos y nada más que 600 minutos!!!!

El ejemplo les demuestra el comportamiento fuertemente no-lineal del sistema cuando está cargado: pasamos de 35 a 31clientes servidos, tan solo 4 clientes menos por hora y el tiempo en el sistema fue multiplicado por 10. Luego pasamos de 31 clientes  a 30.1 clientes servidos por hora. Parece una tontería...un promedio de 0.9 clientes menos, sin embargo el tiempo de estancia en el sistema, que ya era alto, se multiplica de nuevo por 10. Noten, que en términos de tiempo, pasar de 31 clientes por hora, a 30.1 clientes por hora significa pasar de 116 segundos a, a penas, 119 segundos por cliente.

Tan solo 3 segundos pueden hacer la diferencia entre esperar 1 hora y esperar 10 horas en una línea de supermercado!

Repito que el ejemplo de modelo que escogí es el más sencillo que existe en relación a las propiedades de la llegada y el servicio. Casos más apegados a la realidad (por ejemplo, llegadas en ráfagas) crean mayores problemas en el sistema.

En conclusión, en un supermercado medianamente ocupado, cualquier retardo suplementario introducido sistemáticamente por las captahuellas, puede significar una explosión en el tiempo de espera.

Me pregunto si el gobierno entiende de teoría de colas....









5 comments:

Daniel said...

¡Es que el gobierno lo entiende muy, pero muy bien!

Es que intuitivamente, con solo ver los retrasos que se crean pagando por tarjetas de débitos (el valor de la moneda habiendo caído tanto con la inflación, hasta un refresco pagan con tarjeta de débito) ya se sabe que es IMPOSIBLE un sistema de "papahuellas" en Venezuela, y mas con un gobierno tan pirata como el nuestro.

O sea que no tenemos que verificar tu explicación (muy buena), YA esta ocurriendo cuando uno se limita solo a pagar en el cajero. Y ni hablemos de la fortuna colosal a gastar, que no tenemos, poniendo "papahuellas" hasta en las recónditas bodegas.

El asunto es otro. Esto es lo que llamamos un pote de humo, una cobertura creada con un escándalo sin pies ni cabeza mientras el gobierno va a implementar lo que en verdad quiere implementar. Hay varias opciones:

- crear una red de tiendas exclusivas para conseguir los productos de cesta basica. Habrá que hacer cola para entrar pero con "papahuellas" puede ser que una vez adentro la cosa sea mas fluida (1 en cada 10 tiendas?)

- crear tarjetas de racionamiento para uso exclusivo de la base chavista en PDVAL, Mercal y Bicentenario? Dejando caer el peso de la inflación y del desabastecimiento sobre la oposición. Eso llevaría claro a una nueva lista de Tascon que solo podría terminar en una guerra civil.

- limitar la distribución de harina PAN y aceite a ferias del gobierno donde el que vaya tendrá que calarse sendo discurso político. Seria una manera perfecta de obligar los habitantes de, digamos, el cafetal a hacer cola en su propia urbanización para escuchar el mensaje del gobierno, lo quieran o no.

etc... que para eso si son creativos los cubanos asesorando.

LS73 said...

En efecto hay otros problemas técnicos y práctico que hacen inviable el sistema de las "papahuellas":

- Cada cadena de supermercados, tienda o bodega maneja nombres diferentes para cada producto. Ej "Atún 150gr" y "Atún 0,15kg"

- Habría que integrar _todos_ los sistemas de _todas_ estas cadenas, tiendas y bodegas con el sistema de las captahuella.

- En buena parte de las zonas rurales ni siquiera hay conexión a internet.

En fin, como ni siquiera en el gobierno de Maduro pueden ser tan idiotas como para no reconocer lo inviable de su propuesta, está claro de que la propuesta como tal se trata de un pote de humo.

Mi pronóstico: Se va a implementar el sistema para una lista seleccionada de productos (cesta básica) y en un grupo limitado de locales (Mercal, PDVAL, una que otra cadena de supermercados enchufada), y dejarán que el resto de los productos y tiendas trabajen con precios liberados, obviamente entre 5 y 10 veces más caros que los regulados.

Pedro said...

La verdad no estoy seguro que el gobierno no sepa que esto esta condenado a fracasar. El hecho que tenga duda ya es mala señal.

Mi apuesta es a que los captahuellas se van a limitar a indicar cuando fue la última vez que la persona compró. Se podrían usar para garantizar que la persona no vaya de compras mas de una vez a la semana.

Miguel said...

Segun Mendez, eres tu la que no sabe de Teoria de Colas.

http://www.noticierodigital.com/2014/08/andres-eloy-mendez-registrar-la-huella-toma-40-segundos/

Caribdis said...

Espectacular analisis, mis felicitaciones, colega.
Cristian