Showing posts with label programas de computadora. Show all posts
Showing posts with label programas de computadora. Show all posts

Sunday, August 27, 2023

El crecimiento de las plantas es una gramática

 


Wolfram, en su libro "A New Kind of Science", hace un trabajo exhaustivo sobre los autómatas celulares en una dimensión. Después de leer en diversas ocasiones algunos de los capítulos de dicho libro, empiezo a sospechar que Stephen Wolfram nos sabe llevar de la mano para poder presentar los resultados de sus investigaciones. Vamos, no llega a conclusiones de la nada, sino que va armando el tema hasta que llega donde él quiere.

Por ejemplo, se inventa unos autómatas, a los que llama "móviles", para así pasar eventualmente a la discusión de si los autómatas en una dimensión son máquinas de Turing, que cabe decir, es un concepto. Alan Turing afirmaba que podía plantearse una máquina capaz de realizar cualquier cálculo. A esto eventualmente se llamaría la máquina universal de Turing.

Pero el punto aquí es que Wolfram demuestra que los autómatas son máquinas de Turing y entonces pasa a un tema por demás curioso: los sistemas de substitución. Por ejemplo, veamos la siguiente imagen:

Lo que aparece en los círculos rojos representan el sistema de substitución de dos diferentes autómatas celulares. Lo que aparece en verde es el inicio de un autómata. Por ejemplo, en la imagen izquierda, el sistema de substitución dice que un punto negro se substituye en un punto negro y uno gris; mientras que un punto gris se substituye por un punto gris y un punto negro.  Si empezamos con el punto negro, al inicio del autómata, vemos que crece (si contamos los números de cuadros nuevos), en dos, cuatro, ocho, dieciseis, etcétera. Este autómata hace un cálculo, el duplicar el valor anterior. En la parte derecha de la gráfica, vems que el sistema de substitución pone un punto negro en un punto gris; un punto gris lo convuerte en un punto gris y un punto negro. Si procesamos el autómata con un solo cuadro gris como generación inicial, tenemos (en cuadros nuevos en total, por generación): 1, 2, 3, 5, 8, 13, etcétera, es decir, la serie de Fibonacci. La imagen anterior entonces muestra dos autómatas que, de acuerdo a las reglas de substitución, o calculan el doble de un número o calculan la serie de Fibonacci.

Si abstraemos un poco la idea, veremos entonces que lo que hemos encirculado en rojo son el software, el programa que se ejecuta en una máquina, en este caso, el autómata celular. Pero podemos ir más lejos, y es expresar ya no con dibujitos, sino simbólicamente estas reglas. Así, para el valor que duplica el autómata podríamos escribir estas reglas de substitución: A --> AB y B -->BA. Esto dará entonces:


A --> AB --> ABBA --> ABBABAAB ...


Lo que tenemos aquí es una gramática, cuyos elementos son A y B, con las reglas de dicha gramática (A --> AB y B -->BA), las cuales permiten generar "todas las oraciones válidas" de acuerdo a las reglas de substitución planteadas. Esto lleva a darnos cuenta que los programas de computadora son reglas de substitución, que generan una gramática y ésta a su vez, al procesarse, es lo que llamamos la ejecución de un programa. 

Pero vayamos más lejos: Si vemos la figura siguiente (ver más abajo), encontraremos el software (los esquemas de substitución), pero como dibujos de lo que asemejarían árboles. Por ejemplo, en la imagen de la izquierda, vemos que una barra oscura se convierte en una barra oscura,con una subrama a la izquierda, oscura también y una subrama derecha gris. Y la segunda regla de substitución nos dirá que una barra (rama) gris, se convertirá en una barra gris con subrama a la derecha gris y a la izquierda negra.



Y esto genera imágenes que sin duda se asemejan a los árboles. Desde luego aquí puede ser que hablemos de cierta simetría que no se llega a ver en los árboles reales, pero estamos ilustrando esto nada más. De hecho, la simetría en los árboles quizás no se da por el ambiente externo donde están, si tienen más acceso a agua y nutrientes, etcétera.

El otro día fui a los viveros de Coyoacán. Paseé por los diferentes negocios y me di cuenta de algo, lo cual es una conclusión que me parece asombrosa: el crecimiento de las plantas es una gramática.

Thursday, October 02, 2014

Piratería, modelos de negocios y contenidos digitales


El mundo cambió cuando apareció Internet. De pronto empezamos a tener acceso a información que antes se nos daba a cuentagotas. Hoy en día la explosión de datos, cifras, información digital, es gigantesca y tan grande es que ahora tenemos que ver cómo limitamos nuestras búsquedas para poder trabajar en esta enmarañada red de tanta información.

Pero con este nuevo elemento digital, aparecieron los piratas de los contenidos, en particular de aquellos que tenían que ver con la música, que probablemente fue la primera víctima. Con la aparición del Walkman primero, y más adelante con los iPods y reproductores digitales de audio, se inició un intercambio indiscriminado de música digital, que para colmo, se pudo hacer cada vez más víable cuando salieron los esquemas de compresión de datos como mp3.

Luego llegaron los contenidos en video, que de nuevo fueron el nuevo blanco de los piratas digitales. Aparecieron entonces quienes copiaban DVDs o incluso series completas. Hoy ni siquiera requieren de un medio físico. Hay sitios en la red, “torrents”, que contienen una cantidad innumerable de películas, incluso las de estreno, que se pueden descargar a las computadoras propias y verlas cuando lo queramos y sin pagar un peso por ello.

Desde luego que antes de estos dos tipos de contenidos digitales, ya los piratas copiaban indiscriminadamente software, programas para diferentes plataformas, cuyo costo en general era prohibitivo. Por ejemplo, 3D Studio costaba unos 3 mil dólares, obvio candidato de los piratas.

Pero el último botín de los piratas son los que comparten libros en formatos digitales, PDF o ePub, por ejemplo. Al inicio de este pirateo de libros, los que se dedicaban a estas cuestiones, escaneaban los libros con sus dispositivos caseros y con un programa determinado, pegaban cada foto y armaban un archivo en format PDF, que pónían en sitios web o depósitos de contenidos digitales.

Las respectivas industrias: de música, de programas de computadora, de películas y las editoriales, de pronto están enfrentando a un monstruo de mil cabezas, a una batalla perdida. Por ejemplo, la industria disquera profirió amenazas, castigos severos, etcétera. Con el tiempo se ha demostrado que todas estas acciones han sido inútiles. La piratería de música es incontrolable.

Pero entonces… ¿qué hacer? Quizás la solución esté en cambiar el modelo de negocios. Por ejemplo, Apple, cuando sacó su concepto de iTunes, vendió el primer día (en el 2003), un millón de canciones. No vendía ya discos completos, sino la unidad era la canción. Diez años después, Apple ha vendido unas 25 mil millones de canciones (a dólar). Y fíjense, no parece importarles si la canción es de un famoso tenor o de Gloria Trevi. No hace distinciones en calidad. Simplemente la canción cuesta un dólar… Y venden, y venden mucho.

Y este modelo parece ser mucho más funcional que el que trabajó la industria disquera por muchos años. Por ello, se me ocurre que bien podría extenderse a los libros. Por ejemplo, los programas, las apps para la plataforma móvil de Apple cuestan entre 3 y 10 dólares, siendo el promedio de unos 4 dólares (y sí, hay apps muy costosas, pero estoy hablando de las apps más usadas y las más comunes). Y venden, y las proyecciones de ventas de apps para los siguientes años hablan de que venderán tantas apps como música digital. Así pues, la idea sería vender libros entre 7 y 10 dólares por ejemplo (en versión digital). Hoy en día las diferencias entre la versión de papel no son tan extremas. Por ejemplo, un libro en papel puede costar 30 dólares y su versión electrónica 27 dólares. 3 dólares de diferencia no parece ser una oferta atractiva. Quien quiera su libro en papel, pues que lo compre, pero quien quiera la versión digital, ésta cuesta tan poco que es probable que otros no dudarían en comprarla también.

En pocas palabras, ¿qué es más fácil, vender algo de mil o pesos o mil de a peso? Parece ser mejor idea la segunda, porque si no vendo 1000, a lo mejor vendo 850 y vamos, tampoco estaríamos hablando de un fracaso de ventas, ¿verdad? Este modelo parece ser mucho más efectivo y factible en este mundo inmerso en la compartición de contenidos digitales con pocas o ninguna traba. Podría hacer levantar el negocio de las editoriales, de las películas. ¿O me equivoco?

Tuesday, June 11, 2013

El protocolo PGN está en inglés


Hace una semana, aproximadamente, me embarqué en un programa cuyo objetivo era el generar partidas de ajedrez aleatorias. Esto es parte de un proyecto que intenta asociar algunas leyes de la termodinámica al tablero de ajedrez y bueno, me compreometí a escribir un programita que pudiese generar partidas completas de manera azarosa.

Trabajé con bastante rapidez en el tema, y ya tenía finalmente como resultado, un texto con las partidas en PGN (Portable Game Notation), que es una descripción clara y clásica, de cómo anotar una partida de ajedrez en formato algebraico. De hecho, en este formato, hay dos partes, un encabezado, que contiene los datos fundamentales de la partida en cuestión: nombre de los jugadores, torneos, fecha, ronda, quién ganó, etcétera, y después de ello, la partida en sí, por ejemplo:

[Event "Paris m2"]
[Site "Paris"]
[Date "1858.??.??"]
[Round "9"]
[White "Morphy, Paul"]
[Black "Anderssen, Adolf"]
[Result "1-0"]
[ECO "B32"]
[PlyCount "33"]
[EventDate "1858.12.20"]

1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 e6 5. Nb5 d6 6. Bf4 e5 7. Be3 f5 8. N1c3 f4 9. Nd5 fxe3 10. Nbc7+ Kf7 11. Qf3+ Nf6 12. Bc4 Nd4 13. Nxf6+ d5 14. Bxd5+ Kg6 15. Qh5+ Kxf6 16. fxe3 Nxc2+ 17. Ke2 1-0


Aparentemente se pueden agregar más "tags" como [commentator "La_Morsa"], por ejemplo.

La cuestión es que a pesar de que mi programa generaba -según creía- los archivos PGN correctos, a la hora de quererlos leer conChessbase o Rybka, por ejemplo, algo le pasaba al formato. Desaparecióan los números de jugadas en ocasiones, o bien, después se repetían fragmentos del la partida.

Pasó un rato y muchas pruebas sobre el por qué de esta situación hasta que encontré que la dificultad es que la descripción PGN funciona en inglés. Así, yo ponía, -por ejemplo- 1. Ch3 y lo que en realidad tenía que poner erta 1. Nh3, es decir, el problema es que las partdas PGN se deben escribir usando las iniciales de las piezas en inglés (R,N,B,Q,K y P) para (T,C,A,D,R y P), respectivamente.

Siempre se aprende algo nuevo, pero este detalle me quitó dos días de trabajo porque no hallaba la fuente del error.