domingo, 22 de marzo de 2020

3ª PARTE. ADELGAZAMIENTO DE QM


3ª PARTE.  ADELGAZAMIENTO DE QM

La inacabada de PHP

Si en la  1ª PARTE lo importante fueron las aplicaciones, y en la 2ª PARTE fueron los procedimientos, en la TERCERA lo importante es la Tecnología, y pongo un ejemplo para que se entienda mejor.

Supongamos que N QM nos propone para la próxima Jornada una QM con 11 triples y 3 dobles, que al coste actual de 0,75€ por apuesta son 132.860,25€. No la despreciamos ya que no alcanza el M.€, pero evidentemente hay que adelgazarla, que quiere decir en primer lugar descomponerla en sus 177.147 apuestas simples.

Imaginemos una fila con 15 signos separados por comas. Los catorce primeros pueden ser indistintamente 1, X, o 2, el signo nº 15 puede ser uno cualquiera entre : M-M, M-2, M-1, M-0, 2-M, 2-2, 2-1, 1-M, 1-2, 1-1, 1-0, 0-M, 0-2, 0-1, 0-0. Ahora imaginemos que repetimos esta fila debajo de la primera 177.147 veces, variando cada vez solo uno de los 15 signos, y que esta variación sea distinta cada vez, de modo que las 177.147 sean distintas entre sí.

Podemos ser generosos y decir que  hemos conseguido poner 100 de estos conjuntos de 15 signos en un folio. Vamos a necesitar un libro de 1.771,5 folios para "guardar " el resultado de la descomposición de QM (y varios días de trabajo). Y ahora empezamos con los filtros.

El proceso es secuencial. Todas las QS van al primer filtro, las que no lo superan quedan apartadas, las que sí, van al segundo filtro, y así sucesivamente, hasta terminar los filtros que hayamos puesto.

Volviendo al ejemplo. Si el primer filtro es "que no haya más de cinco variantes seguidas", tendremos que hacer esta comprobación, que supone coger una QS, comprobar si el primer signo es una variante, si ls respuesta es NO, pasar al segundo signo y volver a empezar con la misma pregunta. Cuando la respuesta sea SÍ poner un contador en marcha que se irá incrementando mientras las respuestas sean SÍ, y volverá a cero cuando la respuesta sea NO, etc... si en algún momento de la comprobación el contador de variantes superaba el valor 5, esta QS pasaría a la carpeta de  NO CUMPLEN, en caso contrario pasaría a la carpeta de QS que SÍ CUMPLEN. Tan solo esta quiniela simple de una apuesta puede necesitar 14 comprobaciones y dos decisiones de archivo en este filtro. Eso hemos de multiplicarlo por 177.147, y después por el nº de filtros. Es muy fácil ponerse en 10 millones de operaciones por QM.  La primera vez que lo intenté colapsé mi ordenador, y trabajo tuve para recuperarlo

La realidad es más compleja porque no podemos saber a priori que reducción conseguirá cada filtro, y tampoco podemos esperar a saberlo. Hay que marcarle unas condiciones a la aplicación para que consiga reducir la propuesta inicial hasta unos determinados límites, o por debajo de unos determinados límites. 

Poner filtros muy finos hará que se queden apuestas ganadoras por el camino, y eso no interesa. La técnica correcta con los filtros es poner varios de forma que cada uno se lleve una pocas apuestas poco verosímiles en algún sentido. El conjunto de filtros tamizará solo los apuestas mas inverosímiles, o raras, sin afectar a las más "normales". No confundir normales con fáciles, Una quiniela con 14 signos X es rara, no es normal, ni fácil. Una quiniela con catorce signos 1 no es rara. Tradicionalmente ha habido jugadores que han apostado con muchos signos 1, esperando tener tres o cuatr fallos, pero cobrar algún premio menor. Se suele buscar eliminar las composiciones de signos caprichosas, como 1-1-x-x-2-2-1-1-x-x-2-2-.. ,   1-x-2--1-x-2-1-x-2-..., o muchos signos iguales seguidos, etc..

Construir filtros es fácil y divertido. Imaginemos que tenemos 5 cajas.

En la primera solo hay etiquetas, y todas iguales:   Filtro nº .......   : que el Nº de 
En la segunda hay una infinidad de chapitas con uno de los siguientes textos: 1, X, 2, variables, cambios de signo, 11, 1X, 12, XX, X2, 21, 2X, 22, 111, 11X, ...... 
La tercera deja escoger entre dos opciones: consecutivos o totales
En la cuarta hay que escoger uno de estos signos: >, >=, =, =<, <, distinto de
En la quinta y última caja hay números que van desde el o hasta el catorce

Se trata de coger una pieza, y solo una, de cada caja, siguiendo el orden de las cajas, y concatenar el contenido de las cinco piezas. Volviendo al juego propuesto:

(Filtro nº ....1...   : que el Nº de)(variables)(totales)sea(<)que(9)     y así sucesivamente.

Con un poco de imaginación es fácil pasar de los 1.000 filtros. Es mejor hacerlo de forma ordenada claro, ya que necesitaremos luego identificar cada filtro por su número, cuando vayamos a utilizarlo. He puesto el ejemplo de las cinco cajas porque es justamente el algoritmo que he utilizado para construir los 800 filtros que tengo preparados en mi aplicación.

Después de construidos los filtros el jugador descubre una nueva necesidad. Hay que poder anidar o agrupar los filtros. Cuando la aplicación termina su trabajo nos presenta dos ficheros, el archivo de las Qs que pasan el filtro, y el de las que no lo pasan. Pero este archivo plano ya no es operativo. O lo llevas a la Agencia a sellar o lo borras. Hay que encadenar la salida del primer filtro con la entrada al segundo y así sucesivamente. Aquí el orden de los filtros no altera el resultado, si hay que superar cinco filtros, el resultado será el mismo cualquiera que sea el orden de pase. Conviene también reservarse la opción de guardar las Qs que NO pasan.

Si sabemos que un filtro de los que vamos a usar va a ser muy exigente, mejor usarlo en primer lugar, nos dejará una cantidad de candidatos menor para los pases siguientes, y el proceso será mucho más rápido.

Del mismo modo que en la 1ª PARTE he resaltado la importancia de poder jugar con las herramientas para poder comprobar que no se han cometido errores, o machaques, y poder intercambiar información entre las distintas hoja, aquí es muy importante familiarizarse con la utilización de los filtros, calibrar el grosor o finura de las condiciones que ponemos, acostumbrarse a concatenar filtros, 
 etc.

Para eso hay que utilizar la aplicación con QM caras, y para ello (ya hemos visto el enorme volumen de operaciones que hay que realizar) es necesario disponer de un equipo o equipos, potente. Tengo la suerte de poder usar (sin abusar) los medios potentes de una empresa que se dedica a crear y desarrollar soluciones tecnológicas a medida de las necesidades de sus clientes. Estos productos muchas veces son residentes en los servidores de esta empresa, a fin de poder actuar sobre ellos y modificarlos en el momento que los clientes lo necesita, y por lo tanto dispone de una capacidad sobrada para atender sus propias necesidades y las de sus clientes. En este caso soy un parásito consentido, y agradecido, porque lo que para esta empresa supone una "pequeña" utilización de sus recursos, para mi ha supuesto poder culminar un camino de 40 años. Es a esta capacidad informática, en la utilización de lenguajes de programación y equipos muy potentes, a lo que me refería al decir que en esta 3ª PARTE lo importante rea la tecnología.

Y he puesto culminar porque ya he cerrado el ciclo, a pesar del título de este capítulo. El proceso se ha completado. Lo que falta es tiempo para probar la infinita cantidad de opciones que he dejado abiertas en el camino, y en esta forzosamente abreviada exposición.

Cada uno los capítulos desarrollados en el blog hasta ahora comporta un dossier de documentación que obviamente no puedo insertar en este contenido. Debería colgar del blog un montón de videos ilustrativos del uso de las aplicaciones, tanto públicas como privadas que yo utilizo, así como explicaciones, detalles, fórmulas, archivos...y esto es imposible. Lo que sí haré, en la medida que el tiempo me lo permita es ir ampliando cada uno de los capítulos anteriores con una anexo que titularé: Detalle de ..(nombre del tema)...........para los que quieran saber más.

Me comprometo a empezar estos anexos, y a irlos completando, pero no puedo comprometerme a terminarlos porque soy consciente que requeriría el trabajo de editar un libro, de contenido técnico, de más de cuatrocientas páginas, como mi dossier.  En la presentación he puesto mi correo electrónico para poder contactar conmigo, y me comprometo igualmente a colaborar con quien esté interesado en profundizar en el conocimiento de SGQL, mi hobby desde hace cuarenta años.





No hay comentarios:

Publicar un comentario