Mostrando entradas con la etiqueta algoritmo. Mostrar todas las entradas
Mostrando entradas con la etiqueta algoritmo. Mostrar todas las entradas

El algoritmo de Dios

El algoritmo de Dios 
Seguramente Ernő Rubik no imaginó “la que se iba a montar” con su juguete. Si ahora miramos hacia atrás, podemos comprobar que el cubo de Rubik, el rompecabezas que este profesor húngaro inventó en 1974 para ayudar a sus estudiantes a comprender ciertos problemas en tres dimensiones. Pero el Cubo de Rubik es el juguete más vendido de la historia

¿Cuál es el máximo número de movimientos que necesitaríamos para resolver un cubo de Rubik, sea cual sea la posición inicial?  Esto ha mantenido entretenidos a investigadores prácticamente desde la aparición de este rompecabezas. Existen, como ya hemos dicho, muchos tutoriales y manuales para resolver el cubo de Rubik comenzando desde cualquier posición, pero muchos de ellos nos “obligan” a realizar más movimientos de los que quizás podríamos haber hecho partiendo de la posición inicial que tengamos entre manos. 

La cosa es que Dios, si existiera, seguro que dispondría de un algoritmo de resolución (es decir, una secuencia de pasos para resolver el cubo) totalmente eficiente, un algoritmo que resolviera el cubo de Rubik en el menor número de pasos posibles. A este algoritmo se le llamó Algoritmo de Dios, y al número máximo de movimientos necesarios para resolver cualquier cubo de Rubik se le denomina el Número de Dios.

Este número de Dios, que en 1981 estaba acotado entre 18 y 52, era el Santo Grial del cubo de Rubik, el número deseado por todos los amantes del estudio de la resolución de este rompecabezas. En 1990 ya lo teníamos acotado entre 18 y 42; en 1995 entre 20 y 29; en 2008 Tomas Rokicki lo reduce a entre 20 y 22; y, por fin, en 2010 Tomas Rokicki, Herbert Kociemba, Morley Davidson y John Dethridge demostraron que el Número de Dios es exactamente 20

Esto significa que todo cubo de Rubik, sea cual sea la posición inicial de sus piezas, se puede resolver en, como mucho, 20 movimientos. Habrá posiciones iniciales que necesiten menos de 20 movimientos, pero no hay ninguna para la que estemos obligados a realizar más de 20. Y, además, está demostrado que este número no se puede mejorar, ya que se sabe que hay posiciones concretas que necesitan de exactamente 20 movimientos. Por tanto, esta búsqueda está completamente cerrada: el número de Dios es 20. Si queréis más información sobre esto, vale la pena acudir a Cube20.
El algoritmo de Dios
El Algoritmo de Dios (God's algorithm, AI) es un concepto originado en discusiones sobre formas de resolver el rompecabezas del Cubo de Rubik, pero que también se puede aplicar a otros rompecabezas combinatorios y juegos matemáticos. Se refiere a cualquier algoritmo que produzca una solución con la menor cantidad de movimientos posibles, siendo la idea que solo un ser omnisciente conocería un paso óptimo de cualquier configuración dada.

La noción se aplica a los rompecabezas que pueden disponer de un número finito de "configuraciones", con un arsenal relativamente pequeño y bien definido de "movimientos" que pueden ser aplicables a configuraciones y luego conducir a una nueva configuración. Resolver el rompecabezas significa llegar a una "configuración final" designada, una configuración singular o una de una colección de configuraciones. Para resolver el rompecabezas se aplica una secuencia de movimientos, partiendo de alguna configuración inicial arbitraria.

Se puede considerar que un algoritmo resuelve tal rompecabezas si toma como entrada una configuración inicial arbitraria y produce como salida una secuencia de movimientos que conducen a una configuración final (si el rompecabezas se puede resolver a partir de esa configuración inicial, de lo contrario, indica la imposibilidad de una solución). Una solución es óptima si la secuencia de movimientos es lo más corta posible. Este recuento se conoce como el Número de Dios, o, más formalmente, el valor minimax.​ El algoritmo de Dios, entonces, para un rompecabezas dado, es un algoritmo que resuelve el rompecabezas y produce solo soluciones óptimas.

Algunos escritores, como David Joyner, consideran que para que un algoritmo se denomine correctamente "Algoritmo de Dios", también debería ser práctico, lo que significa que el algoritmo no requiere cantidades extraordinarias de memoria o tiempo. Por ejemplo, el uso de una tabla de búsqueda gigante indexada por configuraciones iniciales permitiría encontrar soluciones muy rápidamente, pero requeriría una cantidad extraordinaria de memoria.
Algunos juegos bien conocidos con un conjunto muy limitado de reglas y movimientos simples y bien definidos nunca han tenido el Algoritmo de Dios para una estrategia ganadora determinada. Algunos ejemplos son los juegos de mesa ajedrez y go. Ambos juegos tienen un número de posiciones que aumenta rápidamente con cada movimiento. El número total de todas las posiciones posibles, aproximadamente 10^154 para el ajedrez y 10^180 (en un tablero de 19 × 19) para el go, es demasiado grande para permitir una solución de fuerza bruta con la tecnología informática actual (compare el ahora resuelto, con gran dificultad, el cubo de Rubik en solo aproximadamente 4.3×10^19 posiciones, es decir más de 43 trillones de posiciones). 


El algoritmo de Dios
En consecuencia, no es posible una determinación de fuerza bruta del algoritmo de Dios para estos juegos. Si bien se han construido computadoras de ajedrez que son capaces de vencer incluso a los mejores jugadores humanos, no calculan el juego hasta el final. El IBM Deep Blue, por ejemplo, buscaba solo 11 movimientos hacia adelante (contando un movimiento de cada jugador como dos movimientos), reduciendo el espacio de búsqueda a solo 10^17. Después de esto, evaluó la ventaja de cada posición de acuerdo con las reglas derivadas del juego y la experiencia humanos.

Por otro lado, las damas, con similitudes superficiales con el ajedrez, han sido sospechadas durante mucho tiempo de ser "jugadas" por sus expertos practicantes. En 2007, se demostró que esto era así calculando una base de datos de todas las posiciones con diez o menos piezas. Por lo tanto, tiene un Algoritmo de Dios para todos los juegos finales de damas y lo utilizó para demostrar que todos los juegos de damas perfectamente jugados terminarán en empate. Sin embargo, las damas con sólo 5×10^20 posiciones​ e incluso menos, 3.9×10^13, es un problema mucho más fácil de descifrar y es del mismo orden que el cubo de Rubik.

Transformada de coseno discreta (DCT), de Nasir Ahmed


Vía la IP Community y Twitter del guionista y director Dan Fogelmanhemos accedido a esta maravillosa historia. Nasir Ahmed era, hasta hace muy poco, un ingeniero desconocido y el hombre detrás del descubrimiento que permitió a la sociedad moderna enviar transmisiones de imágenes y vídeos a través de Internet. Desde 1975 su creación ha sido clave para que el mundo evolucione, pero solo en 2020 fue reconocido gracias al octavo episodio de la quinta temporada del programa "This is Us / Episode: In the Room".

Aparece acompañado por Esther Pariente, Queli, una tucumana que conoció en Estados Unidos. El algoritmo de Nasir Ahmed está siendo utilizado por miles de millones de cámaras todos los días, pero esta es la primera vez que Nasir y Queli, su esposa y su mayor apoyo, cuentan su historia a una cámara con sus propias palabras.

Nasir Ahmed (nacido en 1940 en Bangalore, India) es un ingeniero eléctrico e informático indio-estadounidense. Es profesor emérito de Ingeniería Eléctrica e Informática en la Universidad de Nuevo México (UNM). Es mejor conocido por inventar la Transformada de coseno discreta (DCT) a principios de la década de 1970. 
El Algoritmo DCT es la transformación de compresión de datos más utilizada, la base de la mayoría de los estándares de medios digitales (imagen, video y audio ). Hoy día todavía se utiliza en las imágenes JPG y en las videoconferencias de Zoom y Whatsapp que todos seguimos utilizando durante la pandemia. También describió la transformada sinusoidal discreta (DST), que está relacionado con el DCT.

La Transformada de coseno discreta fue concebido por primera vez por Ahmed mientras trabajaba en la Universidad Estatal de Kansas, y propuso la técnica a la National Science Foundation en 1972. Originalmente pretendía la DCT para la compresión de imágenes. Nasir Ahmed desarrolló un algoritmo DCT funcional con su estudiante de doctorado T. Natarajan y su amigo KR Rao en 1973, y presentaron sus resultados en un artículo de enero de 1974. 

El vídeo destaca a qué desafíos debieron enfrentarse ambos protagonistas en aquellos años. “El trabajo académico fue publicado en 1974, y desde entonces este algoritmo se convirtió en el recurso más eficiente para transferir una imagen o video comprimido para que lo puedas enviar a todo el mundo”, dijo Ahmed sobre su investigación.