Saturday, November 17, 2018

Dithering: su fundamento


Hoy en día contamos con tarjetas gráficas que pueden mostrar luminosos colores en la pantalla de la computadora. Vamos, hasta los teléfonos ya tienen resoluciones de alta definición en muchos casos y pueden desplegar millones de diferentes colores. Considerando esto, resulta quizás para algún lector un poco absurdo que alguien quiera pasar una imagen en tonos de grises a blanco y negro, pero esto es un proceso que se hace continuamente cuando, por ejemplo, queremos imprimir una fotografía (en color o tonos de grises), teniendo solamente un dispositivo que imprime con tinta negra.

Es decir, tenemos dos posibles colores: puntos negros (tinta) y puntos blancos (sin tinta). Con ello debemos poder representar la imagen de la mejor manera, intentando no perder información o al menos, perder lo menos posible. Ya aquí hemos hablado de algunos procesos interesantes para hacer esto. Uno de ellos es el “dithering al azar” (o random), o bien, el usar la técnica de los semitonos. Los resultados con ambos procedimientos pueden ser mejores o peores, de acuerdo muchas veces a la imagen a procesar.

Sin embargo, el tema no se ha agotado. El dithering finalmente se basa en algo fundamental, que es la difusión del error de un punto al siguiente. Por ejemplo, consideremos que en una imagen en tonos de gris (donde cada punto tiene el mismo valor en rojo, verde y azul), en RGB, y veamos una de las coordenadas, por ejemplo el ROJO. Supongamos que en una línea de pixeles tenemos los valores 0, 96, 96, …, etcétera. Veamos cómo podemos hacer dithering usando esta difusión de error de punto a punto.

Si vemos el primer pixel, hallaremos que el primer valor es cero, que es negro, por lo que mandaremos a la impresora para que pinte en el papel un punto negro. Pasamos al siguiente y vemos que es un 96. ¿Este valor está más cerca o más lejos del negro? La respuesta es simple: si tenemos valores del 0 (negro) al 255 (blanco), entonces el 96 está más cerca del negro que del blanco. ¿Cuál es el error en este caso? 96 pasos, es decir, el tono de gris 96 está precisamente a 96 pasos del cero y esto es el error. Ahora tomemos el valor del siguiente ROJO. Hallamos que de nuevo es un tono de gris 96. Entonces vamos a hacer la difusión de error que acarreamos (96) al nuevo valor, que es 96. la suma de ambos da 192. Ahora nos preguntamos: ¿Este valor está más cerca o menos cerca del blanco? 192 está a 63 pasos del blanco. este es el error. Como es hacia el blanco, vamos a decir que está a -63 pasos. Pintaremos un punto blanco y el error se sumará al siguiente pixel.

Este elemental algoritmo, escrito en Delphi, se ve así:



Vayamos a las pruebas. Tomemos la foto de Ilse y pasémosla a tonos de gris:



Y procesémosla con este algoritmo. El resultado es éste:



Puede verse que el resultado no queda mal pero se ven algunos “artefactos”, es decir, ruido en la imagen o puntos indeseables. Tomemos ahora la imagen de Abraham Lincoln y observemos los resultados:



y el resultado:



Aquí las cosas mejoraron. La razón es que este método de difusión simple tiene dificultades cuando tiene que ir de blanco a negro y viceversa. Sin embargo, el asunto es que al hacer esta difusión del error, estamos aplicando le principio básico de todos estos mecanismos para hacer dithering.

En próximos artículo hablaremos de dithering más sofisticado, como el creado por Floyd-Steinberg.

Friday, November 09, 2018

¿Especulación correcta?



En un artículo pasado, dije que hay una diferencia entre el concepto ideal de probabilidad contra lo que se ve en la realidad. Por ejemplo, si tenemos que echar una moneda al aire, se supone que si tiramos dicha moneda millones y millones de veces, ésta saldrá la mitad de las veces de un lado y la otra mitad del otro. Pero estamos hablando de una moneda "ideal". Las monedas reales pueden tener "defectos" en la aleación, en que pudiese pesar unas centésimas de gramo más en una parte que en otra, que el hecho de que tuviese alguna rayadura o una pequeña marca, el resultado del 50% se distorsionara. Y es que la moneda que se tira al aire en un "volado" sigue las leyes de la física en un entorno que de hecho no es ideal, pues no hay muchas veces control de la temperatura, de la humedad, etcétera.

Obviamente y para colmo, cuando tiramos una moneda, no estamos haciendo millones de apuestas antes al respecto y de hecho, incluso así, en teoría se tienen 50% de probabilidades que salga un lado o el otro. Pero en principio, se supone que en las leyes de los grandes números, es decir, tirando muchos millones de veces estos volados, las cifras se irán acercando al 50% para el resultado de salir un lado o el otro de la moneda.

Considerando lo anterior, dije que en el Melate habría que analizar cuántas veces han salido los números y ver cuáles han salido con más frecuencia. Como el total de concursos del Melate no llega a más de 4000, no podemos hablar de ninguna ley de grandes números porque francamente son pocos concursos (tendría que haber millones). Y por ello, el análisis que podamos hacer tiene muchas dificultades para poder ser exacto. Sin embargo, asumí que si las pelotitas que tienen los números del Melate, que se ponen en una tómbola y se sacan de acuerdo a un procedimiento que siempre es el mismo para cada pelota que salga premiada, podría pasar que las pelotitas que han salido más veces, los números ganadores, sigan saliendo. Sugerí que las pelotitas no son perfectas e ideales, sino que son imperfectas, pesando quizás décimas de gramo (o centésimas de gramos), unas más que otras. Pero sin saber la razón por las cuales estas pelotitas reales salen más veces, pues deberían seguir tendiendo a este comportamiento. Nótese que las pelotitas siempre se sacan usando el mismo mecanismo.

Pues bien, si tomamos la lista de veces que han salido los más frecuentes (hallados con mi software), encontraremos que estos son los números más frecuentes:

507 veces - 32
505 veces - 12
503 veces - 37
497 veces - 13
495 veces - 20
492 veces - 5
488 veces - 36
487 veces - 16,33
485 veces - 2,7
484 veces - 15,28
483 veces - 11,19,25
482 veces - 30
481 veces - 1,18
475 veces - 14,29
473 veces - 9
471 veces - 8
470 veces - 6
469 veces - 17
466 veces - 3,27
464 veces - 4,39
463 veces - 21,38
462 veces - 22,24
458 veces - 26
456 veces - 31,34
451 veces - 10
444 veces - 35
432 veces - 23
406 veces - 40

Héctor Ugalde ("the infamous" Uch), me escribió y me dijo: "¿Ya viste que en el resultado del Melate de ayer (el mismo día de tu publicación) los 6 números están dentro de los que más frecuentemente han salido? 1, 7, 13, 14, 19 y 20".

Y revisando lo que me indicó Uch, hallé:

Resultados el concurso:

01           07           13           14           19           20           49

Frecuencia de estos números

49- 192 veces (adicional)
20 - 495 veces (natural)
19 - 483 veces (natural)
14 - 475 veces (natural)
13 - 497 veces (natural)
7 - 485 veces (natural)
1 - 481 veces (natural)

Nótese que fuera del adicional, los números naturales -todos- salieron al menos 475 veces. Esto me hace pensar que estamos ante un curioso asunto: podemos bajar la cantidad de números a los cuales apostar, considerando los que más veces han salido: 

32 12 37 13 20 5 36 16 33 2 7 15 28 11 19 25 30 1 18 14 29 9 8 6 17 3 27 4 39 21 38 22 24 26 31 34 10 35 23 40

Son 40 números contra 56 que se tienen originalmente, es decir, redujimos un 29% la cantidad de números a considerar. Cabe decir que esto no quiere decir que las apuestas sean más seguras. En el concurso al que se hace referencia hallamos que el adicional, el 49, salió menos de doscientas veces.

¿La conclusión? El tema de hablar de probabilidad en el mundo real bien puede tomar un enfoque diferente al que se tomaría en general cuando se habla de este tema y de nuevo, no hay garantías, pero tengo la impresión que la especulación del artículo anterior al respecto, no es tan errada.

Wednesday, November 07, 2018

Especulaciones privadas sobre la física



Quienes leen mi blog saben que soy físico por la UNAM, aunque en realidad me dedico a cómputo. Sin embargo, a pesar de que en realidad estoy alejado de la física per se, en ocasiones se me ocurren problemas que no sé si tengan solución. He aquí dos ideas que por años me han dado la vuelta en la cabeza:


  1. Considérese una pelota de radio r tal que por dentro es un espejo perfecto. Supongamos que en esta esfera, del material que sea, introduzco por una abertura (en la pelota) un rayo de luz e inmediatamente cierro la abertura de manera que se recupera el espejo perfecto internamente. La pregunta es: ¿Podría este rayo de luz rebotar internamente en la esfera por los siglos de los siglos? ¿Podría acaso ser una manera de transportar un rayo de luz?
  2. Piénsese en el tiempo y en la "flecha del tiempo", la cual parece tener una dirección determinada (escribí un libro sobre la naturaleza del tiempo. Escríbanme a quien le interese a morsa@la-morsa.com). Esta dirección, que es de ir del pasado al futuro, parece tener que ver con la entropía, que nunca disminuye y con eventos que no son reversibles, por ejemplo, la imposibilidad de re-pegar los fragmentos de una botella que se cayó al piso y se rompió, o el hecho de que el calor va de lo caliente a lo frío y no en sentido opuesto, por mencionar dos situaciones típicas. Vamos, que el tiempo y su dirección parece que tienen mucho que ver con la termodinámica. Pues bien, considérese ahora el concepto de campo: "En física, un campo representa la distribución espacio-temporal de una magnitud física; es decir, es una propiedad que puede medirse en el entorno de cada punto de una región del espacio para cada instante del tiempo", de acuerdo a la Wikipedia) y añade: Se dice que existe un campo asociado a una magnitud física, en una región del espacio, si se puede asignar un valor a dicha magnitud para todos los puntos de dicha región en cada instante".  Ahora bien, un campo gravitacional lo sienten los cuerpos punto a punto. Todos los objetos en la Tierra, por ejemplo, están bajo el campo gravitacional y es por eso que no vemos que cuando abrimos la regadera el agua se vaya hacia arriba. El agua "cae" debido precisamente a que la gravedad interactúa con cada objeto dentro del campo. Aquí una pregunta que se me ocurre es ¿cuál es la resolución del campo? Es decir, ¿cuál es la distancia de separación de los puntos del mismo? La respuesta parece ser esta: "La longitud de Planck (ℓP) u hodón (término acuñado en 1926 por Robert Lévi) es la distancia o escala de longitud por debajo de la cual se espera que el espacio deje de tener una geometría clásica. Una medida inferior previsiblemente no puede ser tratada adecuadamente en los modelos de física actuales debido a la aparición de efectos de gravedad cuántica" (también de la Wikipedia).  Pero lo que me inquieta y curiosamente, no sé si alguien ya lo ha trabajado (un físico y ajedrecista, argentino, Dante Paz, alguna vez me comentó que ya había pensado en esta idea), es el proponer que el tiempo se maneje como un campo. Todo lo que está dentro del "campo" del tiempo, interactúa con el mismo y hace que las cosas envejezcan. Si esto es así, podría especularse además en una partícula asociada al campo Tiempo, que podríamos bautizar como la "maldita partícula de Dios 2", "cronos" (parodiando al desaparecido hace poco León Lederman, quien bautizó así al bosón de Higgs). Cabe decir que no me siento capacitado en las matemáticas necesarias para desarrollar esta idea.

¿Comentarios? ¿Ideas? ¿Críticas? ¿Sugerencias?

¿Qué números jugar en el Melate para ganar?



Los concursos de azar en general -si efectivamente no hay influencia externa- son un ejemplo perfecto de lo que es la probabilidad. El ser humano se ha preguntado muchas veces sobre qué tan probable es que ocurra un evento en particular, por ejemplo, el tirar una moneda al aire y ver si cae de un lado o el otro. Y se supone que en el mundo de los grandes números, cuando se hacen millones y millones de intentos, la probabilidad de que caiga una moneda de un lado o del otro es del 50%.

Pero esto es el mundo ideal. Hoy, hablando con un par de estudiantes de mi curso de Proceso Digital de Imágenes, discutíamos una idea para hacer más eficiente el algoritmo de búsqueda de la mejor imagen para colocarla en el fotomosaico que tienen que crear. Un alumno de China, Yuguo (yo le digo "Hugo"), junto con Diego, en donde este último halló una idea interesante usando árboles k-dimensionales (), hablábamos de qué enfoque había que usar para la tarea mencionada. A Yuguo se le ocurrió usar un método en donde no encuentra necesariamente la mejor imagen en el fotomosaico, sino un aproximado. Su comentario fue: si hay en un salón tres alumnos de más de 1.80 m. ¿por qué tengo que revisar a cada uno de ellos en su estatura? Digamos que eso -como piensa mi estudiante- es perder el tiempo. Entonces nos indicó a Diego y a mí que busca "el más probable", lo que significa -de acuerdo al algoritmo que parece seguir- tiene alguna manera de buscar en una zona del espacio de búsqueda, ignorando lo demás. Así, encuentra una imagen aceptablemente buena aunque como el mismo Yuguo dijo, "no es la imagen óptima". Le pedí pues que documentara su algoritmo para estudiarlo.

Pues bien, todo lo anterior fue el preámbulo para cuando Yuguo me comentó: "yo creo que la probabilidad está en la cabeza nada más". Y en parte tiene razón. La realidad es que la probabilidad de que caiga una moneda en un intento es exactamente igual a la que tendrá aunque se hayan tirado antes mil millones de veces la moneda. Vamos, no importa que haya salido el mismo lado de la moneda en mil millones de tiros (poco probable, muy poco), el siguiente intento tiene la misma probabilidad de salir "sol" o "águila" (cara o cruz, pues).

Y entonces hablamos de los concursos donde el azar existe. Comentamos el problema del Melate y les comenté que la cantidad de concursos llega a apenas a menos de 4000. Estos no son los grandes números en donde, si es un concurso totalmente azaroso, el porcentaje de que salga un número es 1/56. Así de simple. Pero resulta que hay muchos números que han salido con frecuencias diversas. Este es el resultado que me entrega el software:

Frecuencias/Números (de mayor a menor) con 7 números.

507 veces - 32
505 veces - 12
503 veces - 37
497 veces - 13
495 veces - 20
492 veces - 5
488 veces - 36
487 veces - 16,33
485 veces - 2,7
484 veces - 15,28
483 veces - 11,19,25
482 veces - 30
481 veces - 1,18
475 veces - 14,29
473 veces - 9
471 veces - 8
470 veces - 6
469 veces - 17
466 veces - 3,27
464 veces - 4,39
463 veces - 21,38
462 veces - 22,24
458 veces - 26
456 veces - 31,34
451 veces - 10
444 veces - 35
432 veces - 23
406 veces - 40
385 veces - 43
380 veces - 44
373 veces - 42
350 veces - 41
229 veces - 45
228 veces - 47
212 veces - 46
192 veces - 49
189 veces - 48
175 veces - 51
173 veces - 50
161 veces - 56
154 veces - 52
151 veces - 55
150 veces - 54
135 veces - 53

Si consideramos esta tabla, veremos que números como el 32, el 12, el 37, el 13, el 20 y el 5 han salido con mucho más frecuencia que el 53, 54, 55, 52, 51, 48, 10 entre otros.

¿Por qué ocurre esto? Hay dos posibles razones: la primera es que la ley de la probabilidad, en este caso 1/56, se aplica a los grandes números, a hacer estos sorteos millones y millones de veces y aún así, no sé qué signifique exactamente "los grandes números", es decir, en qué momento llego a esa cifra... La segunda es que efectivamente, como Yuguo me decía, la probabilidad es un constructo humano y es una observación que queremos suponer que en general es cierta, aunque esto ocurre en el mundo ideal y no en el mundo real, en el que vivimos y en donde la diferencia de pesos (aunque sean décimas de gramo) de las bolitas que se ponen en el sorteo, puede hacer la diferencia que muestre las razones por qué el 10 sale una tercera parte de lo que sale el 12, por ejemplo.

Entonces, si hay que establecer un criterio, si pensamos que en estos "grandes números", las probabilidades eventualmente se igualarán, podemos pensar que menos de 4000 concursos (desde 1984), no caen ni remotamente en esta ley de los grandes números y por ende, pensar que los números que no han salido ahora sí saldrán con más frecuencia, es simplemente creer que estamos en el mundo ideal de la probabilidad.


Así pues, ¿quiere ganar el Melate? Desde luego que tendrá que tener un golpe de suerte porque como indicamos al principio del artículo, si es al azar realmente cada número debería tener 1/56 de posibilidades de salir (aunque pensándolo bien, el primer número tiene 1/56 chances de salir, el segundo 1/55, el tercero 1/54, etcétera). Pero en términos generales, los concursos ocurren en el mundo real y aunque sí, los números por salir son "igualmente probables" (en el mundo ideal), en el real se notan preferencias debido a la "imperfección de la realidad". Consecuentemente, la mejor apuesta debe ser a los números más frecuentes.

Desde luego -y antes de que alguien venga a reclamarle que no ganó el Melate- esto es meramente una especulación que busca ser educada, es decir, basándose en hechos. Y vuelvo a elaborar: las pelotitas del concurso real pueden no tener estrictamente el mismo peso y una diferencia de décimas de gramo entre una y otra pudiese hacer que una esfera saliese más veces que las otras, aunque evidentemente, no puedo afirmar que esto ocurra por esta razón.

Monday, November 05, 2018

Una realidad sobre los internautas en México




Todos sabemos que Internet tiene muchas cosas gratis. Los programadores, por ejemplo, sabemos que en muchos casos hay una buena cantidad de código abierto casi para cualquier tarea que uno quiera realizar, lo que permite que podamos implementar nuestros algoritmos mas rápidamente y además, que aprendamos algo en el camino. Cabe sin embargo decir que hay casos en el que el código fuente (es decir cómo está escrito un programa), o incuso el código objeto (o ejecutable), tiene un costo. Hay la modalidad de Shareware, en donde a quien le interese usar un programa en particular, tenga que pagar por éste. La cuota es en general simbólica, pero el programador, o quienes escribieron el software, buscan cierta retribución de parte de quien lo usa.

En los teléfonos y dispositivos móviles, muchas apps son gratuitas, pero incluyen publicidad para así solventar los gastos. Hay apps notables, como Waze, que no cuesta, y que permite al usuario guiarse en el laberinto que son las ciudades, incluso la CDMX, que es gigantesca y en donde la app hace una gran tarea guiándonos por toda clase de calles para llegar a nuestro destino.

Y si reflexiono sobre esto es porque hace unos años escribí un programa para analizar los datos del Melate, con la idea de tratar de ver qué números salieron más en los concursos pasados, cuáles menos y así de pronto, tener más datos para tomar una decisión informada sobre qué números son los más idóneos a apostar. Hice un video el 3 de julio del 2013 (ver más abajo), explicando lo que hacía mi software, el cual regalaba y sigo regalando. Los datos de los sorteos los saqué de la página de Pronósticos Deportivos y con ellos probé mi app. Hay que decir que en algún momento quise ver si los sorteos del Melate cumplían con el azar y mi conclusión es que sí, estos concursos son totalmente azarosos. De hecho, que unos números salgan más que otros puede deberse a que las pelotitas que se usan (que parecen de Ping Pong), tienen en promedio todas el mismo peso, pero diferencias en un par de gramos quizás hace que unas salgan más que otras. No lo sé, nada más especulo al respecto.



Pues bien, la comunidad de UnoCero acogió con agrado mi software y me lo pidieron. Mucha gente lo recibió de forma gratuita en sus correos. En el video correspondiente decía que si alguien -usando mi software- se ganaba un premio, estaba obligado moralmente a hacerme un donativo sino, podría pudrirse en el infierno. A la fecha nadie se ha sacado nada o nadie de los que se han sacado algo me ha dicho que ha tenido éxito. La cuestión es que aún no hay ningún generoso donativo a la causa.

En las instrucciones que pongo en el software explico cómo modificar el histórico de pronósticos deportivos. Indico que no tengo ni tiempo ni ganas para dedicarme a andar actualizando la base de datos. Sin embargo, por temporadas recibo peticiones de mi software lo que me indica, sin lugar a dudas, que la bolsa del Melate es muy jugosa. Entonces mando el programa a todos los que me lo piden con la base de datos histórica hasta el 2013.

Considerando que más de mil personas me lo han pedido (calculo que la cuenta va en unos 5000 personas), me di a la tarea de actualizar la base de datos a octubre del 2018, es decir, 5 años más que el archivo de datos que usé originalmente. Pero en este caso pedí a quienes me han pedido el software (a los que les he mandado un correo), en donde este es el texto que les mando:

"Hola,

He visto que tienes interés en el software que escribí para analizar los datos del Melate. Yo saqué los datos del sitio de pronósticos deportivos para realizar mi análisis de los números, cuáles se repiten, cuáles no, etcétera. Desde luego -y lo he aclarado muchas veces- el software que escribí no hace magia, ni lee el futuro, por lo que no es posible que le diga al usuario del software cuáles son los números ganadores. Mi software es simplemente una herramienta de análisis.

Ahora bien, los datos están desde el concurso 1 hasta el 2658, que data del 26/05/2013. Han pasado pues unos 5 años que no he actualizado la tabla de datos. Como mucha gente me ha pedido el software gratuito y hablo de más de mil personas, he decidido trabajar sobre la tabla actual del histórico completo de Melate hasta fines de octubre del 2018 (31/10/2018). Si quieres este archivo, he decidido cobrar 25 pesos por el mismo (depositando esa cantidad en mi cuenta de paypal (morsa@la-morsa.com)). Quizás te parezca injusto, quizás te parezca mal y hasta despreciable que pida semejante cantidad por el archivo de datos actualizado. Si no quieres pagarlo, lo entiendo y además, en el correo original donde te mandé el software están las instrucciones para que tú mismo hagas ese cambio para que el software que escribí pueda leerlo.

Así pues, la cosa es simple: si quieres el archivo actualizado a octubre 2018, me tienes que pagar 25 pesos a mi cuenta de paypal, la cual es morsa@la-morsa.com. Si no tienes PayPal, te pudo dar mi cuenta para que deposites. Si te interesa pues, me depositas y te mando el archivo así como las instrucciones para cargarlo (que son muy simples). Vamos, que con eso puede ser que le dedique entonces más tiempo al software para hacerlo más poderoso, para que dé más herramientas de análisis, asunto que tengo que siempre dejar para otra oportunidad porque tengo que trabajar en otras cosas para vivir. Pienso de hecho corregir una dificultad con la rutina del melático, que parece que en ocasiones se congela el sistema, pro lo haré cuando llegue una cantidad mínima de pagos (100 mínimo).

Cabe advertir que mi software no te hará ganador del Melate ni asumo ninguna responsabilidad sobre esto. Si me pagas los 25 pesos es por los datos que te estoy mandando, pero esto no garantiza ningún éxito ni ningún triunfo en estos concursos de pronósticos deportivos. No hay reembolso tampoco por ello. Una vez pagado, te mando el archivo y listo, ya es cosa tuya si te funciona o no.

El punto es apoyar al desarrollo. Creo que la cuota es muy razonable. Gracias"

Ayer mandé este correo a las últimas 70 personas que me pidieron el software. De esas, unas cinco me respondieron indicando que con gusto me pagarían por el archivo. Uno de ellos, sin embargo, me dijo que la modificación era muy fácil de hacer y por ende, la conclusión fue que no me depositaría los 25 pesotes.

Y entonces esta es la conclusión: hay mucha gente que sí, dice estar dispuesta a donar una cantidad generosa si se saca el Melate, pero aparentemente no está dispuesta a depositarme 25 pesos  (que es el equivalente a 5 boletos del Metro o a casi 4 del Metrobus), ya no por el trabajo de actualizar la base de datos, sino de apoyar el desarrollo. Esto me recuerda el siguiente relato en donde el periodista comunista le pregunta a un granjero:

Periodista: Oiga, ¿Si tuviese otra granja, le daría una a su vecino?
Granjero: Desde luego, en caso de tener otra granja le daría sin problemas una al vecino
Periodista: Y si tuviese dos tractores, ¿le daría uno al vecino?
Granjero: Claro, si tuviese dos tractores, con gusto le daría uno al vecino
Periodista: Y si tuviese dos caballos, ¿le daría uno a su vecino?
Granjero: No.
El periodista sorprendido preguntó: ¿Por qué no?
Granjero: Porque tengo dos caballos.

El chiste se cuenta solo.


Post Scriptum

Estuve pensando en todo este asunto de las personas que dicen me darían un donativo si sacasen el Melate. Nunca realmente lo he tomado muy en serio pero su aceptación de darme un donativo parte del supuesto de que se sacaran una cifra mayor en dicho concurso. Por ejemplo, creo que si se sacaran diez millones de pesos, probablemente no me darían ni el 1%. A la hora de tener el dinero contante y sonante estoy seguro que cambiarían de opinión o bien, pensarían para sí mismos que el software que les mandé no les ayudó en nada, etcétera.

De hecho, a quien le interese ver la poca respuesta a iniciativas como la que planteé, revise aquí, que hablo de un experimento de poner a disposición pública un libro mío bajo la política de "paga lo que quieras (o puedas) y el resultado de este experimento, que puede leerse aquí.



Saturday, November 03, 2018

Nuevo reto lúdico: el juego de la vida de Conway



Hoy en día estamos acostumbrados a luminosos videojuegos que emociona, excitan a los jugadores y en ocasiones incluso pueden jugarse por muchas personas al mismo tiempo en servidores dedicados a ello. Muchos videojuegos hacen énfasis en las habilidades manuales del jugador y sus reflejos, los cuales bien pueden convertirse en juegos populares e incluso adictivos.

Pero también hay juegos que caen en categorías que resultan hasta curiosas. Este es el caso del juego de, la vida de Conway, un juego de cero-personas, inventado por el matemático John Conway, cuando éste trabajaba en la Universidad de Cambridge. El juego se conoció ampliamente a partir del artículo de Martin Gardner en Scientific American, de octubre de 1970 e inmediatamente se volvió un ejercicio adictivo en cómputo.


John Conway con la Morsa, en la plática que dio el primero en la Facultad de Ciencias

El juego se desarrolla en una malla cuadriculada, en donde en los casilleros de la misma (llamadas celdas), se colocan células o bien se dejan vacíos. Las reglas son sencillas, cuando hay una configuración de celdas ocupadas y vacías, se tiene que:


  1. Cada célula con una o sin células vecinas se muere, por soledad.
  2. Cada célula con cuatro o más células vecinas mueren, por sobrepoblación.
  3. Cada células con dos o tres vecinas, sobrevive.


Así, el juego consiste en que el usuario genere una configuración de células y aplique las reglas mencionadas en paralelo para cada celda. Eso hará la siguiente generación, a la cual se le aplicará el mismo algoritmo. Un ejemplo del juego de la vida de Conway puede verse aquí, en donde el lector podrá generar las configuración que quiera y ver cómo evoluciona en el tiempo. En eso, de hecho, consiste el juego. No hay que interactuar de ninguna manera una vez que se ha generado una configuración de celdas.

Conway y mucha gente dedicó muchas horas al juego de la vida tratando de encontrar las propiedades de las diferentes configuraciones y se tienen conclusiones fantásticas, por ejemplo, que el juego de la vida es "Turing completo", es decir, se puede crear una máquina de Turing que pueda hacer cualquier cálculo. Tal vez por ello la importancia de este "juego". Cabe decir que además, Conway redujo la idea de los autómatas celulares que en un principio von Neumann había estudiado y en donde -según él- su diseño requería de 29 propiedades y reglas, a algo mucho más escueto pero igualmente poderoso.

Pues bien, el juego de la vida de Conway eventualmente fue programado infinidad de meses y se tienen reiteradas sospechas de que usó mucho "tiempo de máquina" en computadoras grandes, en aquellas máquinas que solamente las podían tener en esos tiempos las instituciones académicas y las instancias gubernamentales. Sin embargo, el juego -como ya dijimos- es mucho más que un simple juego, y quizás sea un interesante modelo teórico para desarrollar ideas en matemáticas e inclusive, en la biología.

Pues bien, considerando eso, el reto consiste en desarrollar un programa que juegue al juego de la vida de Conway. Se puede desarrollar en cualquier lenguaje y sería interesante (puntos extras), a quien lo desarrolle en algún lenguaje que no haya sido ya escrito en Rosetta Code. Es cierto que en este sitio pueden verse ya mucho código fuente que resuelve el problema pero aquí el reto es que usted lector/lectora, lo resuelva.

Para ser más claros, el juego de la vida se representa así:

Una célula C se representa por 1 cuando está viva y 0 cuando está muerta, en una matriz cuadrada de m x m casilleros o celdas. Calculamos N, la suma de las células vidas en las ocho celdas en la vecindad de cada célula C, y entonces tenemos a una célula que sobrevive o que muere en la siguiente generación basándose en lo siguiente:


  • Si una célula está en 1  y tiene 0 o 1 vecino (una célula en 1), entonces en la posición de la célula se pinta un 0 (muerte por soledad).
  • Si una célula está en 1 y hay una vecindad con 4, 5, 6, 7 y 8 celdas vecinas ocupadas, entonces se pinta un 0 en la siguiente generación (muerte por sobrepoblación)
  • Si la célula de interés tiene un 1 y la vecindad de la misma tiene 2 o 3 células en 1, entonces sobrevive con un 1 en la siguiente generación.
  • Si la célula tiene 0 en el punto de interés y hay 3 células alrededor, se pondrá un 1 en la siguiente generación (tres células dan el nacimiento de una nueva).
  • Si la célula es 0 y hay  0, 1, 2, 4, 5, 6, 7, 8  entonces en la siguiente generación se pondrá un 0.


El programa a escribir debe hacerse en cualquier lenguaje que se deseé. Puede ser compilado o interpretado y tiene puntos extras si el lenguaje usado no está en las implementaciones hechas ya en el sitio de Rosetta Code. Desde luego, se puede hacer en un algún lenguaje ya usado, por ejemplo C, C#, Haskell incluso, pero si alguien me va a mandar el código le suplico que no lo copie y que busque ser original. Si detecto copia lo descalifico.

La idea es pues aprender y este es un ejercicio simple pero interesante, además de que puede ser muy útil para probar una serie de teorías al respecto de los patrones, de ciertas configuraciones, de la estabilidad de algunas de estas células, etcétera. En Conway Life hay mucha información interesante.



Al ganador (si es de la Ciudad de México), le daré una taza con el logotipo de la Morsa. Si es de otro país o de provincia, le mandaré un USB de al menos 8 GB. La razón de esto es que mandar una taza por mensajería es estúpidamente caro.

Las soluciones me las pueden mandar a morsa@la-morsa.com.

Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas satisfactorias, ganará quien la haya mandado primero o que cumpla con más características que le den mejores resultados. El ganador es inapelable y cede su código fuente a la comunidad. Es decir, se promueve el código abierto.


Monday, October 29, 2018

De la consulta del aeropuerto de Texcoco o Santa Lucía




El presidente electo, el "Peje", Andrés Manuel López Obrador, inició una consulta que todo parece indicar que ni legal es, porque ni siquiera ha entrado en funciones el nuevo gobierno, en donde pregunta si se debe continuar con el NAIM en Texcoco o iniciar la construcción de un aeropuerto en Santa Lucía.

La consulta tuvo todos los visos de informal, de mal hecha, en donde la tinta indeleble no lo era y hubo quien votó hasta cinco veces, en donde no se instalaron casillas en muchas colonias, en donde se manipuló tanto como se pudo el resultado. El Peje apostaba a Santa Lucía y ahora los resultados finales indican que ganó esta opción. Según Animal Político: 310 mil 463 personas votaron por continuar el aeropuerto de Texcoco (el 29%), y 747 mil votaron a favor de Santa Lucía (69%), de acuerdo con los registros de 98.18% de las casillas instaladas; 2 mil 722 votos fueron anulados.

Aquí hay un sinfín de problemas: 
  1.  La consulta fue fallida en muchos sentidos. Hubo problemas como los que votaron muchas veces, o bien, los que quisieron votar mediante una app que no funcionó, o bien, el hecho de que muchas casillas no se instalaron donde supuestamente iban a instalarse, etcétera. Vamos, que si hubiesen sido elecciones para elegir presidente, el Peje se habría quejado de cuanta irregularidad ahora se vio.
  2. No entiendo para qué elegimos a alguien como Presidente si va a hacer una consulta sobre un tema tan importante. Es decir, ¿hacer una consulta a quiénes? ¿a ciudadanos comune que ni idea tienen de nada? ¿No sería mejor contratar a unos ingenieros que decidieran, con criterios técnicos, la viabilidad de las obras tanto en Santa Lucía como en Texcoco. Pero no, se consulta a los ciudadanos porque "el pueblo es sabio", una frase por demás demagógica. 
  3. El NAIM en Texcoco lleva, según Animal Político, el 30% de avance. Es decir, que el dinero que se haya gastado en la obra se tirará si eas que se cancela la misma. 
  4. Al cancelar esta obra, el nuevo gobierno tendrá que pagar indemnizaciones por no haberse cumplido los contratos ya firmados. Se calcula en 200 mil millones pesos las pérdidas del gobierno por cancelar este nuevo aeropuerto. 
  5. Santa Lucía queda a 105 kms de la ciudad de México mientras que Texcoco a 5 kms. Saquen sus propias conclusiones.

Así las cosas. Se supone que el Peje "no nos iba a fallar". Empezar su gobierno con semejante clausura de Texcoco implicará un boquete de 200 mil millones de pesos. Vamos a ver qué medidas va a tomar.

Sunday, October 21, 2018

El infinito ajedrez y sus combinaciones



Los domingos tengo una serie de clases con unos buenos amigos que quieren progresar en el juego. Uno de ellos lleva a sus dos hijos, Alex, que es el más grande y a David, que una vez viene de hombre araña, otra de Capitán América y hoy, por ejemplo, llegó disfrazado de Batman. David d epronto dice cosas como: "usa el cerebro, que pensar no duele", sobre todo cuando analizamos posiciones donde supuestamente debe haber táctica.

De hecho, hoy analizábamos la posición 69 del libro "Combinations, The Heart of Chess", de Irving Chernev, Ed. Dover. Esta es la posición de interés:


Lexandrovich - Krumhauser
Berlín 1951
Juegan las blancas

Analizamos esta posición con cuidado y observamos la siguiente línea:

1. Dxc8+! Txc8 2. Txc8+ Rh7 (2... Tf8 3. Cg6 Db4 4. Txf8+ Rh7 5. Txe6 ganando) 3. Rh8+ Kxh8 4. Ng6+ y Cxe7 ganando pieza.

Curiosamente la solución del libro es: 1. Cg6 Df6 2. Ce7+! Dxe7 3. Dxf5 ganando calidad y en términos prácticos, la partida.

Komodo (64 bits) indica la siguiente variante:

1. Qxc8+Rxc8 2. Rxc8+ Rf8 3. Ng6 Qe8 4. Rxe8 Rxe8 5. Rc1 ganando.

En cualquier caso, el sacrificio de la dama deja a las negras con una pieza menos y la variante que se dio en la partida gana solamente la calidad.

Eso habla de la dificultad del ajedrez y del que siempre se pueden hallar nuevas ideas. Curiosamente, la posición del sacrificio de dama con el caballo en g6 blanco dando jaque, es un tema ya visto. Por ejemplo, en la partida de Susan Polgar contra Vassily Smyslov, del match mujeres contra veteranos de 1993, se dio la siguiente posición:


Susan Polgar - Vassily Smyslov
Mujeres vs. Veteranos 1993
Juegan las blancas


Susan Polgar remató con: 39. Dxa2! Cxa2 40. Tc8+ Rh7 41. Th8+! Rxh8 42. Cg6+ Rh7 43. Cxh4 y ganó el final poco después... Una vez más, ¡el poder de los patrones!

Saturday, October 20, 2018

La caravana migrante y la doble moral del mexicano




"Cientos de hondureños, entre ellos niños y mujeres, partieron de San Pedro Sula, y otros puntos de su país e ingresaron este lunes a Guatemala con la intención de llegar a la frontera norte de México", dice una nota noticiosa al respecto de este movimiento al que se le ha llamado "caravana migrante".

Aparentemente quienes han salido de Honduras no buscan el sueño estadounidense, sino huir de la delincuencia y las amenazas de vida de su país. Pero parece ser que poco menos de 5 mil personas están dispuestas a llegar a la frontera norte de México y pasar a los Estados Unidos. La tarea parece absurda considerando que el presidente Trump simplemente dará la orden de evitar que entren esta cantidad de hondureños a su país.

Con este asunto las redes sociales en masa ya han dado su opinión y han despreciado la actitud del gobierno mexicano de -al menos- no apoyar a los migrantes. Y entonces se dan argumentos sobre humanismo, sobre la tradición mexicana de permitir que llegue de otros países y que rehagan su vida acaso en el nuestro. Sin embargo, todos estos argumentos aunque muy bonitos en la forma, no hablan del fondo. Es fácil decir: "permitan la entrada a los migrantes". Muy bien, y entonces ¿qué se hará con ellos? ¿Dónde vivirán? ¿Pondrán albergues mientras se analiza su situación legal? ¿Cómo se les ayudará? ¿De dónde saldrán los recursos para que esos 5 mil hondureños vivan mientras tanto?

El asunto tiene muchas aristas y una complejidad que sobrepasa las bonitas intenciones de que apoyan a los migrantes, pero pasemos a la vida real y veamos qué se debe hacer con estas personas. La realidad es que no se trata si estas personas deciden o pueden quedarse a vivir en México, sino de su futuro inmediato: ¿de qué van a vivir? ¿En qué van a trabajar? etcétera. No es fácil contestar estas preguntas iniciales. Para colmo, un grupo humano de esas dimensiones requiere de agua, higiene, alimentos, lugar para dormir, servicios médicos básicos, etcétera. ¿Se los va a proveer el gobierno mexica? No sé ni qué se pueda hacer.

Pero vamos a suponer que somos muy humanitarios todos los mexicanos. Pregunto: ¿Cuántos de los que apoyan a los migrantes están dispuestos a meterlos en sus casas al menos temporalmente? Y es aquí donde la puerca tuerce el rabo, para decirlo coloquialmente. La mayoría de los que hablan de ser humanitarios no son capaces de ceder parte de sus casas para acomodar a ningún migrante. Y para ello pueden tener muchos motivos, pero claramente la naturaleza humana se debate en esta doble moral: "sí, hay que ayudarlos, pero a mí no me corresponde hacerlo, para eso tenemos un gobierno".

¿Entonces? ¿No que muy leales y humanitarios? Porque hay que pasar de las palabras a los hechos o como dice la máxima latina "res non verba" (hechos, no palabras). ¿O no?

Wednesday, October 17, 2018

El examen de candidatura para el doctorado



Mis amigos, esos cuatro que me siguen fielmente en este blog, deben ya saber mis peripecias desde que decidí hacer el doctorado en ciencias de la computación (circa 2014). Tengo tres tutores estupendos, el Dr. Jorge Luis Ortega-Arjona (asesor principal), el Dr. Héctor Benítez (director del IIMAS) y el Dr. Vladislav Khartchenko, los cuales cada semestre me evalúan y obsrvan mis avances.

Debo reconocer que el rigor académico ha sido enorme. Aquí todo va más allá de cualquier propuesta. Está uno obligado como estudiante a mostrar algo original como propuesta para contribuir al conocimiento. Sea ésta una contribución pequeña o grande, uno termina de darse cuenta que la ciencia es un "negocio" complicado, por decirlo de forma coloquial. Además, sirve todo esto para darnos cuenta de las grandes contribuciones de algunos científicos como bien podrían ser Newton, Hawking o Einstein. Vamos, que me veo tan lejos de estas grandes contribuciones...

Hace tiempo fui a saludar al Dr. Fernando Magaña, que me dio Física Teórica III - Electromagnetismo, una de las asignaturas más importantes que recuerde y cuando le dije que mis asesores probablemente tenían unos 10 años menos que yo, me dijo: "se puede aprender de mucha gente". Y me dio ánimos. Me dijo: "puede ser que sufras el doctorado, pero aún así, disfruta el sufrimiento".

Ahora haré mi examen de candidatura correspondiente, lo cual -quiero creer- me acerca al la meta trazada. Vamos a ver cómo se dan las cosas. Mientras tanto, debo agradecer a todos los que han apoyado, empezando por mis tres tutores, al Dr. Jorge Luis Ortega-Arjona, que ha puesto orden y confianza en mi trabajo, al Dr. Benítez, que su rigor académico me asombra y siempre me pone en problemas, y por supuesto, al Dr. Khartchenko, que hace pocas indicaciones, pero cuando lo hace es puntual y al grano. Debo agradecer al posgrado, que siempre apoya y a la UNAM misma, que la verdad, como me dijo una vez el Dr. Rafael Fernández: "La institución (la UNAM), es muy generosa con quien trabaja para ella".

Seguiremos informando. Gracias.

Tuesday, October 09, 2018

El país de la retórica


México, da siempre la impresión, "se cuece aparte". Basta con ver los procesos electorales mexicanos, del pasado y actuales. Basta ver cómo un día un político piensa que López Obrador es casi el mismísimo diablo para que al ser éste elegido presidente entonces cambie su opinión y lo considere el más apto para el puesto, por decir lo menos. Las cámaras de diputados y senadores son recintos en donde la palabra tiene su máxima expresión y las frases retóricas siempre justifican cualquier acción (muchas veces en contra de la ciudadanía), como ésta: "es por el bien de México".

Y si hago referencia a esto es porque la designación de Paco Ignacio Taibo II como director del Fondo de Cultura Económica, ha despertado toda clase de opiniones. Por ejemplo, hay quien piensa que es bueno que llegue un escritor a este puesto, aunque no sepa nada de la administración, y esto ocurre porque en este país siempre hemos creído que en cualquier rama del saber humano, los mejores exponentes son aquellos que saben del tema y por ende, son los idóneos para ser los que dirijan a las instituciones correspondientes. Y así, tuvimos a un futbolista, Carlos Hermosillo, en la CoNaDe. Era un deportista ¿no? Debería entender las necesidades de los de este gremio pues lo vivió en carne propia cuando era deportista él también. Pero ¿qué pasó? De acuerdo con este enlace, el futbolista ejerció más dinero, "por servicios personales", que el que le correspondía. ¿La suma? nada más 6 milloncitos de pesos.

Y entonces ahora se dividen las opiniones en torno al futuro director del FCE. Por ejemplo, Víctor Manuel Torres, que escribe para Excélsior, dice: "En una esquina están los opinadores (multitemáticos) que muestran su cabal desprecio hacia el narrador: que si es un radical rojillo que sólo publicará a sus cuates y marginará a sus enemigos, y que en sus manos el sello de 84 años de vida fenecerá irremediablemente. En la otra están los opinadores (multitemáticos) que están convencidos de que Taibo le dará un giro total, y para bien, a la “política institucional del libro” (). Para los primeros es prácticamente un troglodita. Para los segundos, el prolífico autor tiene todas las posibilidades de convertirse en un renovador institucional". Esto último es un ejemplo de la retórica que se ejerce en este país.

Yo nunca he estado muy seguro de que los profesionales en un campo son los mejores para dirigir las instituciones de los temas que dominan. Por ejemplo, en ajedrez, los Estados Unidos tienen como director ejecutivo de su federación a Michael Hoffpaulr, el cual ni siquiera tiene rating internacional. Probablemente sabe mover las piezas pero la realidad es que en el vecino país piensan que lo que requieren es un buen administrador como cabeza que un estupendo ajedrecista.

Y paso a ejemplos sencillos: si yo tengo una fuga de agua ¿a quién llamo? ¿A mi amigo que es dicharachero pero que no entiende ni la o por redonda en el tema de plomería o precisamente a un plomero? Y voy más lejos, ¿si se trata de elegir al Presidente de la República a quién elijo? ¿Al que lleva más de 15 años recorriendo al país y prometiendo que la honestidad valiente, la república amorosa, el desprecio por las instituciones, etcétera, o a un administrador? En el ambiente mexicano de la política la mayoría de los presidentes han sido licenciados en derecho. ¿Por qué? Misterio.

Y ese es el punto: el cantante/actor del grupo Garibaldi es ahora diputado y lo quieren (o ya lo comisionaron) para la Comisión de Cultura. Y las voces en contra no se han hecho esperar. La razón es que Mayer no parece el más avezado para lidiar con la cultura y digamos que su carrera actoral en televisa, ¿donde más? no le da muy buenas cartas credenciales. Pero es aquí donde entra de nuevo la retórica, aunque ahora no se dice que Mayer podría ser más que una cara bonita, más que un galán de telenovela, porque quizás este país necesite a alguien con ideas frescas, etcétera. Pero claramente esto es otro argumento retórico.

Así entonces, vivimos en este país retórico, en donde un día el Peje es un -peligro para México y un día después es el Mesías que iniciará la cuarta transformación nacional y por fin México será el país que todos queremos. Y lo mismo ocurre con Elena Alvarez-Buylla, que presidirá Conacyt, pero que antes de empezar ya ha sido criticada por sus acciones y peticiones para con el director anterior de la institución. Y en esta retórica ya todos expertos en políticas públicas, ciencia, el nuevo aeropuerto o el tema que quieran. Aquí podemos argumentar y contra-argumentar porque nos han acostumbrado a eso. Y el problema no está ahí, sino al hecho de que no hay más que puntos de vista pero cero acciones. Y entonces, cuando se hacen las acciones se realizan desde las rodillas, sin pensar, por mis huevos o la parte que más les guste citar.

Esta es pues otra razón de que este país, como dice Guil Russek, no sirve.

Wednesday, September 26, 2018

De la envidia



Dice la Wikipedia (2012): La envidia (del latín invidia) es aquel sentimiento o estado mental en el cual existe dolor o desdicha por no poseer uno mismo lo que tiene el otro, sea en bienes, cualidades superiores u otra clase de cosas. Y si hablo de esto es porque estoy notando que por alguna razón, ahora parece que hay mucha gente que me es hostil, que me insulta, que busca difamarme incluso. Me explico.

Estoy en Facebook y recibo el mensaje del usuario Armando Castro, que vive en Mérida aparentemente. A eso de las 12 de la noche, quizás un poco más tarde, me dice: "Hola", para continuar con un "eres un fanfarrón". Me sorprendo un poco y le pregunto por qué me dice eso. Me contesta con un mensaje poco claro sobre que he jugado varias veces en el Carlos Torre, un torneo de ajedrez que se hace en diciembre cada año y que se llena de grandes maestros. Le indico que siempre he jugado el Torre mal y que, efectivamente, nunca he sacado premio. Le aclaro que no soy un profesional del ajedrez y que juego y estudio porque me gusta, pero que no me dedico a eso (claro, si me dedicara y nunca sacara un premio pues sería poco menos que lamentable y tal vez hasta criticable). Y entonces el Sr. Castro me dice: "Todos en Mérida saben que eres un fanfarrón" y remata: "todos en la República lo saben". Vaya, parece que el Sr. Castro ha hecho una encuesta a nivel nacional para saber si soy o no un fanfarrón. Le pregunto qué le molesta, si le he hecho algo. Me contesta que no, pero eso no me quita lo fanfarrón. Decido entonces bloquearlo. No puedo creer que alguien se haya molestado en querer platicar conmigo por Facebook para insultarme. Le digo que voy a bloquearlo y me contesta con un "fanfarrón".

Y esto lo achaco al canal de YouTube que ha empezado a tener éxito. Estamos acercándonos a los 100 mil suscriptores, una meta que hace un tiempo parecía imposible para un canal de ajedrez pero sorprendentemente, parece que ha caído bien en el gusto de los amantes del juego ciencia. José Antonio Pontón, con quien grabo, hace mucho trabajo de edición y apoya para que todo esto empiece a funcionar, pero parece que la envidia de algunos es inevitable y entonces expresan su molestia como el siguiente mensaje que me llegó a uno de los videos:


Este mensaje no lo entiendo. Si yo veo un contenido pésimo no sigo más ese canal. ¿Por qué alguien se molesta en escribirme eso? La respuesta es simple: por alguna razón le da envidia. Y les diré algo, quizás sea justificable envidiar algo queuno no puede tener, por ejemplo, imaginemos que yo quisiera un Lambourghini (cosa que no quiero en el mundo real). Claramente no puedo hacerme en esta vida de un coche de ese precio porque quizás ni siquiera lograse juntar ese dinero en mi vida. Pero envidiarme porque tengo un canal en YouTube cuando cualquiera puede hacer lo mismo, me parece sorprendentemente raro.

Cuando veo estas muestras de molestia y enojo me doy cuenta que si yo, que tengo un canal con apenas 100 mil suscriptores, soy blanco de toda clase de insultos, no sé qué sentirán los "influencers" o los "youtubers" con millones de suscriptores, ya sea el Werevertomorro, Yosstop o Luisito Comunica, entre otros.

Creo que la envidia es uno de los peores sentimientos de los seres humanos. Envidiamos lo que no podemos ser porque no queremos hacer el mínimo esfuerzo para hacerlo. Si hablamos de ajedrez, apuntamos las fallas de los grandes maestros en sus partidas porque eso nos da un sentimiento de superioridad tal vez, mostrando los fatídicos errores de los que nadie se salva y que -desde luego- los "engines" de ajedrez muestran casi al instante. Pero eso nos hace feliz, disminuye a lo mejor nuestra envidia que es de pena ajena.

En fin, no quería dejar pasar esta reflexión. Así las cosas en este mundo de la comunicación instantánea y del Internet.

Monday, September 24, 2018

¡Me saqué un premio en Twitter!





Forward Chess es un programa, una app como se dice ahora, que bien puede catalogarse como un lector de libros elctrónicos para dispositivos móviles, iOS y Android, así como para Mac OS y Windows. La idea de la plataforma es involucrar a las editoriales de manera que pasen sus libros en papel a este nuevo formato, buscando así que los lectores comiencen a entender que este tipo de libros interactivo es tal vez la mejor manera de estudiar ajedrez. La app -hay que decirlo- permite al usuario mover las piezas en el tablero electrónico, intentar sus propias variantes e incluso, analizar con Stockfish, probablemente el programa de ajedrez de código abierto más fuerte del planeta.

Pues bien, si hablo de esto no es por la idea de la app, que ya de por sí es buena, sino porque me he ganado un libro de Dvoretsky llamado "la tragicomedia en el final", el cual ya está en el formato de la app de Forward Chess. Debo agregar que la app es gratuita, pues el chiste es que la gente compre sus libros en este formato realmente.




Así que ya me he comunicado con estos amigos de Forward Chess y pronto hablaré de la app ya cuando me ponga a trabajar y estudiar con ella. Me siento contento, porque en general nunca me saco nada en rifas, sorteos y concursos.

Saturday, September 22, 2018

Cosas que no entiendo (II)



Este país es kafkiano en un sinfín de situaciones y me parece que la mayoría de los que vivimos en México ya asumimos muchos comportamientos y no nos preguntamos nada, aceptando incluso injusticias evidentes.

Por ejemplo, acabo de ir a Playa del Carmen, el cual es un sitio con unas playas paradisiacas, con el tradicional azul del mar de Cancún y una arena blanquecina fina e impresionante. Sin embargo, debido al sargazo las playas están llenas en la costa por esta alga y nadar incluso en el mar así no parece ser una buena idea. Sin embargo, se tienen kilómetros de playa y bien que mal uno puede tomar el Sol cual lagartija por algún tiempo (bloqueador incluido).

El problema es que al llegar a la playa, encontramos que sí, hay kilómetros de ésta, pero está concesionada a los hoteles de la zona. En la mayoría de ellos tienen camastros y sombrillas, las cuales son para uso de los clientes de dichos hoteles. Si usted osa acostarse en alguno de esos camastros notará que no pasa mucho tiempo hasta que llega un empleado y les indica que ahí es propiedad del hotel y por ende, no puede uno estar ahí. La única solución es alquilar una sombrilla, por unos 300 pesos (todo el día), y acostarse en la arena (o encima de la toalla que un lleve).

Y la realidad es que esto es un comportamiento por demás injusto para cualquier turista. Si las playas son de México y no pueden ser propiedad privada, entonces el gobierno da permiso (y seguro cobra por ello), para que los hoteles puedan disponer de esos espacios en beneficio de sus negocios. Muy bien, pero ¿por qué el gobierno no exige a estos hoteles que aparten una zona para los turistas aunque no sean del hotel y desde luego, provean de camastros y sombrillas? Misterio. Porque en el régimen de las cosas, las playas no son de los mexicanos, sino de los hoteles que han logrado que el gobierno en turno les concesione esos espacios. Así, la única manera de usar esos espacios es -hoy por hoy- el alojarse en esos hoteles que tienen la concesión de las playas.

La pregunta obligada es: ¿Qué se puede hacer ante esto que es un abuso en contra de los turistas en general?

Wednesday, September 19, 2018

Cosas que no entiendo



Recientemente fui a Playa del Carmen a dar una plática en el Planetario Sayán, dirigido por Roberto Rojo. La visita fue fenomenal. Nos trataremos muy bien y todos terminamos muy contentos. El regreso, sin embargo, tuvo algunos detalles, uno de ellos fue que por ser 16 de septiembre, cerraron el aeropuerto de las CDMX por 5 horas, de las 9 am a las 2 pm. Así, nuestro vuelo se retrasó unos 50 minutos. Nada grave quizás, pero finalmente ¿qué necesidad del gobierno de hacer esto?

Pero más allá de esto, en el vuelo de la empresa "Volaris", que es una línea aérea de bajo costo, ya no sirven el mínimo refrigerio . Ni cacahuates, ni refrescos ni jugos. ¡Nada! Y realmente no entiendo la razón. Digamos que para ahorrarse costos la empresa de aviones decide no dar comida. Muy bien, que no dé nada y listo, total es un vuelo corto. Con eso se ahorran toda la logística de los alimentos en los aviones. Pero lo curioso es que en el avión puedes comprar diversos alimentos y bebidas y se pagan dentro del avión. Más aún, Volaris "vende" dentro del avión asientos "Premium"(que son un poco más amplios), por trescientos pesos. Todo esto me parece lamentable pues por una parte, las aeromozas se convierten en "tenderos" pero a 20 mil pies y por otra parte, no se evita la logística de la comida en el avión.

Más aún, pienso que toda esta idea de no dar ni siquiera refrescos y un "snack" es ridícula. Vamos, mi lógica es simple: tengo un vuelo lleno (260 personas). Si les cobro 100 pesos de más en el boleto de avión le incluyo un refresco y unos cacahuates minúsculos que me salen como empresa como en 20 pesos máximo. ¿Ganancia neta? 5 veces el costo... Bueno, quitemos otros 10 pesos para quien provee a Volaris de este servicio. La cuestión es: ¿Por qué no aprovechar que se tienen 260 personas cautivas y cobrarles estas bebidas y cacahuates?  Y es que además, aparte de no dar nada y querer cobrar a precios exagerados en la "tiendita en el aire", uno siente el abuso y la comercialización de todo, los asientos, un refresco, un cuernito relleno de chocolate, una sopa ramen o una baguette. Y en el fondo uno percibe que sólo importa el negocio y no la satisfacción del cliente pues total, el servicio siempre está lleno.


Otro asunto que me ha tocado vivir últimamente (se ha repetido un par de veces) es el llegar al banco (particularmente Santander), para informarme "que no hay sistema". Y entonces rematan con: "pudiese llegar en unos 10 a 15 minutos". O sea, de acuerdo al empleado del banco, aunque no haya gente en el banco y no tenga que hacer cola, debo esperarme 10 o 15 minutos al menos a ver si regresa el sistema... ¿Y si no regresa? Problema del cliente. Y de nuevo, ¿cómo se compensa al cliente? De ninguna manera y vamos, ni una disculpa. Eso me pasó en el Banco Santander que está dentro de la Tienda UNAM, frente al Instituto de Investigaciones Antropológicas. Cabe decir que si, por ejemplo, se va la luz, es la CFE la culpable -la cual tampoco hace nada en favor de sus clientes- pero en ese caso el banco no tiene manera de corregir la dificultad. Pero que falle su sistema y no haya ningún tipo de sistema de respaldo, de backup, me parece poco menos que absurdo.

Y no sé qué se pueda pedir a modo de satisfacción del cliente o en compensación por el pésimo servicio o porque se les cae el sistema pero es claro que el Banco no siente tener ninguna obligación para con los clientes. Y como nota personal apunto que en el Internet Chess Club, cuando fallan los servidores, aunque sea un par de horas, los administradores compensan a los usuarios con una semana gratuita en este club virtual de ajedrez.  Y esto finalmente es entender que los negocios funcionan precisamente por la existencia de los clientes y no es buena idea no tenerlos contentos.

En fin, dos ejemplos de cómo se le trata a los consumidores en México. Lo dejo para el registro.

Tuesday, September 11, 2018

De sistemas de desempates en ajedrez y una idea interesante



En los torneos de ajedrez muchas veces es necesario desempatar cuando dos o más jugadores hacen, por ejemplo, la misma puntuación. La manera más justa quizás sería que jugaran entre ellos, pero claramente esto en ocasiones no es posible simplemente por tiempo, porque se acabo la competencia, etcétera.

Lo más justo sería el que los que han empatado jugaran entre sí, pero esto tiene sus propios inconvenientes. Por ejemplo, si empatan los jugadores A, B y C en primer lugar, entonces podrían jugar un desempate. Supongamos que A le gana a B y B le gana a C. Podríamos pensar que lo lógico es que A le gane a C, pero ocurre muchas veces que C le gana a A. Entonces ¿Quién es el mejor?

Por esto, se han creado una serie de sistemas de desempate, en donde hay algunos que son muy populares y se aplican en torneos cerrados de round robin, es decir, de todos contra todos. Uno de los mas usados se le denomina "sonneborn-berger" y consiste en sumar todos los puntos que hicieron los rivales de un jugador a los que éste les ganó, la mitad de los puntos de los jugadores con los que empató y ningún punto de los jugadores con los que perdió. Así, si por ejemplo, el jugador A le ganó al jugador B, que hizo 5 puntos, empató con el jugador C que hizo 5 puntos (se le da la mitad, es decir 2.5), entonces su desempate será de 7.5. Si el jugador B le ganó al jugador C, que hizo 5 puntos, pero perdió contra alguien que hizo 4 puntos, entonces su desempate sería de 5 puntos.

Desde luego que este esquema tampoco es infalible. Por ejemplo, muchas veces en los torneos abiertos, en las primeras rondas, los jugadores que ganan esas competencias enfrentan jugadores débiles o irregulares. Entonces en un desempate llamado "harkness", se quitan los puntos del rival que hizo más y el jugador que hizo menos. De esta manera digamos que se toma un promedio más justo.

Otro esquema que se usó en México es el acumulativo Topete, en honor a su inventor, el Ing. Topete, que por muchos años fue el dirigente de la Federación de Ajedrez de nuestro país y que era un gran tipo. En este caso, Topete decidió aplicar la siguiente idea. Supongamos que el jugador A gana la primera partida, la segunda partida y pierde a tercera. El jugador B, en cambio, pierde la primera partida y gana las dos siguientes. En este esquema acumulativo, el jugador A tendría 1 punto después de la primera ronda, 2 puntos en la segunda ronda y se quedaría con 2 puntos en la tercera ronda. Esto se suma y daría 1 + 2 + 2 = 5. En cambio, el jugador B tendría 0 puntos después de la primera ronda, 1 punto al ganar la segunda partida y 2 puntos al ganar la 3a partida. Y si sumamos sus scores acumulados tenemos: 0 + 1 + 2 = 3. Dicho de otra manera, valdría más ganar las dos primeras partidas que empezar con una derrota. El problema de este esquema de desempate es que beneficia a los jugadores más fuertes.

Pero algo es claro, no existe un sistema de desempate justo y en ocasiones en las competencias se utilizan diferentes criterios, por ejemplo, si jugaron dos rivales entre sí, que hubiesen empatado entre ellos, entonces se podría aplicar quién le ganó a quién. Y si empataron se podría aplicar un criterio para favorecer al que empató con negras.

Lo interesante entonces viene aquí. El ajedrecista Darío Muñoz me platicó su sistema de desempates. Para ello tomó los resultados de la Copa Sinquefield, que se llevó a cabo en Estados Unidos hace unos días y en donde Caruana, Carlsen y Aronian, empataron en el primer puesto. De acuerdo a unas extrañas reglas de ese torneo, si empataban tres el primer lugar, iban a eliminar ¿por sorteo? a uno de los tres para que los dos restantes jugaran un desempate. Carlsen se quejó e impuso su opinión como Campeón Mundial. Eventualmente no hubo desempates y se declaró campeón de la copa a los tres jugadores.

Pero de acuerdo a la idea de Darío, pudo haberse desempatado usando su curioso procedimiento. Lo que hace Darío Muñoz es ver cada partida de cada jugador y contar cuantas casillas dominó l blanco en toda la partida, así como cuantas casillas dominó en total el negro en toda la partida. Al final saca un promedio dividiendo el resultado final entre el número de jugadas. Su sistema llamado IDE (Índice de Domino de Espacio). Si la partida la ganó alguien -digamos el blanco, se le suman todos los puntos del dominio de casillas de blancas y negras. Si hubiesen empatado, cada jugador se queda con sus casillas dominadas. Si se pierde, toda la puntuación del jugador que perdió pasa al que ganó.

Muñoz confeccionó esta tabla:


Dar click para hacerla más grande

(los colores indican: VERDE es triunfo; ROJO es derrota y AMARILLO es empate).

En este esquema de desempate, Carlsen hubiese ganado por menos de 4 décimas. Sin embargo, aquí los jugadores no podrían buscar llegar a un resultado específico (como ocurre con otros sistemqas de desempate), porque éste se basa en un índice de dominio de casillas y todo esto está fuera de las posibilidades de los jugadores de calcular.

A Darío le dije que revisaría su idea. Sin embargo le mencioné que hiciese el ejercicio de los desempates por los métodos comentados y que son los tradicionales. ¿Llegará al mismo resultado?

Monday, August 27, 2018

Gigachess: bases de datos y búsquedas regulares



El software que he escrito para parte del desarrollo de mi tesis de doctorado no es lo rápido que quisiera y en ocasiones me he puesto a pensar si es el  enfoque correcto. La idea va así: de mi base de partidas de ajedrez, estoy tomando 1 millón de ellas y las estoy procesando de forma que cada una contenga dos campos: el encabezado de la partida: quién contra quién jugó y en qué torneo (incluyendo fecha). Los demás datos como rating no me interesan realmente. El segundo campo contiene una imagen de cada posición que se dio en cada partida. La posición la represento como una línea de caracteres Forsyth, que es un formato en modo texto para representar posiciones de ajedrez. Por ejemplo, la posición:



se representa como: "4t1r1/p1p2pp1/1d1p3p/1P3P2/1P6 /2c1D3/PA4PP/4T1R1/". La posición en modo texto se representa leyendo el tablero de izquierda a derecha y de arriba a abajo. Las piezas blancas se representan con sus iniciales en mayúsculas y las negras con minúsculas. Así, "4t1r1" significa que en la octava fila (la primera del negro), hay 4 casillas vacías, una torre negra, otra casilla vacía, un rey negro y una casilla vacía más. Las diagonales "/" simplemente sirven para denotar que pasamos a la siguiente fila, pero pueden omitirse. Si se omiten tengo exactamente 64 letras o números máximo. Obviamente puedo poner "4t1r1" como "1111t1r1", pero poniendo la cifra de casillas vacías me ahorro espacios.

Imaginemos que tenemos ya una base de datos armada así y que quiero buscar si en alguna posición se tuvo un caballo  blanco en f6 y un rey negro en g8. Mi busqueda buscaría esta posición: "6r1/8/5C2/8/8/8/8/8". Evidentemente ignoro (o debería ignorar) si hay otras piezas en donde yo estoy diciendo que hay casillas vacías. Debo -pienso- definir si es vacía o no con alg{un símbolo en la búsqueda. Se me ocurre entonces que si busco que exista un caballo blanco en f6 y cualquier pieza en g8, debería poder buscar algo así: "6?1/*/5C??/...", donde el símbolo "?" es un comodín que sustituye al símbolo "?" por cualquier pieza o casilla vacía en el tablero. Esto, de hecho, no es un invento mío, sino que se ha definido hace muchos años en cómputo. Hablamos de las búsquedas regulares, las cuales buscan "patrones" en cadenas de caracteres. Es un sistema que es muy versátil y pienso que podría ser muy útil en lo que estoy trabajando.

Mi problema básicamente es que si proceso un millón de partidas tendré aproximadamente 80 millones de posiciones. ¿Cómo puedo buscar sobre una base de datos con expresiones regulares que sea muy rápido? La idea de generar todas las posiciones que es las búsquedas sean muy rápidas. Por ejemplo, Chessbase permite buscar posiciones, pero el sistema lee cada partida y hace la búsqueda sobre la base de datos de referencia que se le dé y esto puede llevarle minutos. No es mucho, lo sé, pero pienso que mi enfoque podría hacer que con búsquedas de expresiones regulares, en mucho menos tiempo que Chessbase, debería saber en qué partida ocurrió una posición determinada.

Hay que decir que tampoco etoy pidiendo algo imposible, porque por ejemplo, si se le piude a Google que busque "regular search", entrega el siguiente resultado:

Cerca de 1,260,000,000 resultados (0.45 segundos) 

Es decir, en su gigantesca base de datos halla 1,260 millones de resultados en menos de medio segundo. Sí, sé que Google usa cómputo distribuido y que tiene montones de algoritmos refinados para sus complejas bases de datos, por lo que me queda claro que lo que quiero hacer tampoco pretende ser algo del otro mundo.

Hay un sistema RegEx, que permite hacer más fácil el asunto de definir las búsquedas de expresiones regulares y hay muchas aplicaciones que permiten crear estas búsquedas casi visualmente.


Entiendo que Oracle permite hacer búsquedas de expresiones regulares en sus bases de datos, pero no tengo más información y no tengo idea de cómo hacerlo en esa plataforma de base de datos. ¿Alguna idea de mis cuatro lectores?

Wednesday, August 22, 2018

GigaChess: una base de datos de posiciones de ajedrez


Llevo tres años trabajando en el doctorado y parece ser que ya las cosas se están aclarando. Tengo un lenguaje de descripción de patrones y ahora el plan -entre otros- es hallar los patrones comunes en la base de partidas que hoy en día tiene más de 7 millones de estas.

Una idea que llevaba hace tiempo trabajando era la de buscar patrones en una base de datos de posiciones, lo cual debe ser mucho más rápido que el tener que buscar el patrón jugando cada partida. Además, si cambio de patrón, tendría que volver a "jugar" partida tras partida para ver si el patrón que busco existe.

Por otra parte, pienso que si guardo cada partida como "fotografías" de cada posición que se dio, puedo hacer las búsquedas más rápidamente. La primera pregunta es cuánto espacio necesito. Hagamos uns imple cálculo: 7 millones de partidas por 80 posiciones (asumiendo que en promedio una partida tiene 40 jugadas, 80 movimientos de blancas y negras). Esto da: 560,000,000 posiciones en total. Si necesito un registro de al menos 64 casillas para guardar una posición (en formato Forsyth), esto nos dará 35,840,000,000 bytes, es decir, unos 35 gigabytes de almacenamiento. Hay que guardar, desde luego, el encabezado de cada partida y hacer el sistema que buisque los patrones. Vamos, hay trabajo por hacer.

35 Gigabytes no parece mucho espacio hoy en día, en donde tenemos discos con 1 o 2 terabytes de almacenamiento.


Así pues, el primer problema es generar las posiciones y ya escribí hace tiempo un programa que hace esta tarea. Cada partida, en la máquina que tengo, se procesa en promedio, en 5 segundos (veces menos).  Eso da, para 7 millones de partidas un total de 35,000,000 segundos, lo cual en días es equivalente a 405 días, como un año y tres meses...

Denasiado tiempo. Así que he reeducido a un millón de partidas, quizás menos. Por otra parte, AMD me donó una computadora mucho más rápida que la que uso normalmente y espero que esto baje el tiempo de procesamiento aún más. Con un millón de partidas, más o menos tardaré: 57 días, unos 2 meses...

Pronto seguiré dando avances sobre esta idea, la cual -después de mucho pensarlo- me parece más útil para la cuestión de programación de computadoras que para el ajedrecista que usa programas para apoyar su estudio.



Monday, August 20, 2018

Cuando el descaro no tiene límite



Hace unos seis años, quizás un poco menos, el entrante gobierno de Peña pretendía hacer un sinfín de reformas: la energética, la educativa, etcétera y se supone entonces que eso "movería a México". Para implementar la reforma educativa, con un supuesto nuevo modelo con el cual -ahora sí- los alumnos aprenderían, tenía el gobierno mexicano que hacer a un lado a la lideresa a perpetuidad del Sindicato de Maestros, la "maestra Elba Esther Gordillo". Y para ello, no se les ocurrió mejor idea que detenerla, fincarle cargos por lavado de dinero, por delincuencia organizada, por fraude al fisco, etcétera. La cosa era que una vez muerto el perro se acabaría la rabia.

Pero la reforma educativa tuvo otros inconvenientes. Una facción de Oaxaca no se sometió a la misma y hubo muchos conflictos. Finalmente la reforma -a seis años de gobierno- parece haber fracasado y hora que se va este gobierno por demás fallido, están haciendo como que nadie vio, nadie dijo nada, para salir lo menos raspados posibles. Fue claro que no es tan fácil oponerse a inercias del pasado, muy antiguas, que hacen que los cambios simplemente no se puedan hacer.

Pero regresando a la señora Gordillo, hay que decir que la llevaron presa y entonces comenzó el largo trámite de abogados defensores y acusadores. Curiosamente la maestra Gordillo de pronto enfermó y fue trasladada a algun hospital privado, en donde es mejor que a cualquier cárcel de este país. Ante argumentos como su edad, por ejemplo, eventualmente se le dictó prisión en su casa. y bueno, la ley a veces hace este tipo de cosas por compasión ante una edad avanzada.

Parecía pues que la maestra Gordillo, bien que mal, había sido eliminada de la política mexicana. Cabe señalar que nadie en su sano juicio podría defender a esta señora por los cargos que el imputaban. Una maestra de primaria, como ella, tenía una casa en San Diego, otra propiedad en Polanco, una zona costosa en la Ciudad de México y además, la sra. hacía gala de sus vestidos costosísimos y de sus bolsas de marca de más de 30 mil pesos. Así pues, es evidente para todos que esa señora tiene que haber hecho algo que no parece muy legal para poder tener esas propiedades lujosas y ese trebn de vida.

Pero algo pasó: la Procuraduría General de la República, después de seis años, no pudo acreditar los cargos que le imputaban a la sra. Gordillo y ésta fue puesta en libertad, aunque de nuevo, ya estaba de alguna manera libre pues no estaba físicamente en la cárcel, sino en prisión domiciliaria.

Y entonces, ahora que fue liberada, la maestra, la exlideresa del poderoso sindicato magisterial, se fue de vacaciones para hoy salir públicamente y decir todo lo que piensa. Y he aquí el discurso de una mujer que no tiene vergüenza, que ha vivido robando al magisterio, que ha sobornado a sus líderes locales regalándoles Hummers o más bien, dizque rifándolos.

Pero vean el descaro de la sra. Gordillo, que ahora le ha regresado la fuerza, se le acabarons sus múltiples enfermedades y está dispuesta "esta guerrera", como se autonombra, a regresar a la política mexicana. Triste asunto, triste país y lamentable política.


Lo dejo aquí. No tengo ya calificativos para ver que este país no ha cambido ni cambiará.