Lua: La Elegancia de un Buen Diseño

21 de Abril de 2020, 283 vistas

Hay lenguajes que motivan el descubrimiento y la experimentación (cada cual encuentra los suyos... en mi caso, Logo, Haskell, Scheme, Elm, NetLogo, Julia), y otros que me llevan al hartazgo (como C, C++, Java, Python, R, Javascript,...). Así que la sorpresa de encontrarse con un lenguaje antiguo (ya casi 30 años), pero tan bien construido que a uno le da la sensación de que mucho de lo que ha llegado después ha sido como un retroceso de ideas, deja la sensación de que se abre un nuevo camino que merece la pena ser explorado.

Lua, un lenguaje del que se oye hablar desde hace años, pero que hasta ahora no tuve la ocasión de explorar, ha sido capaz de despertar mi interés por caminos que pensaba cerrados hace tiempo, y más cuando además se descubre que llega desde Brasil y no desde los megacentros habituales.

Etiquetas utilizadas: , ,

Leer más »

NetLogo Wishlist

17 de Abril de 2020, 117 vistas

Como bien saben todos los que me rodean (o han pasado por la experiencia de recibir clases mías), no oculto mi predilección por NetLogo, a pesar de que se aleja de los circuitos profesionales (ni informáticos ni científicos).  

En esta entrada hago un listado de las cosas que echo en falta en NetLogo y que me llevarían a no desprenderme de él para tareas en las que, hasta ahora, ha funcionado mejor que la mayoría, como es ser el lenguaje base en el que doy el curso de introducción a la Inteligencia Artificial.

Etiquetas utilizadas: ,

Variational AutoEncoder

1 de Marzo de 2020, 366 vistas

Los Variational AutoEncoders (VAE) son modelos de aprendizaje que mezclan las redes neuronales con distribuciones de probabilidad. Su principal uso es el de construir modelos generativos que son capaces de producir datos sintéticos que siguen los mismos patrones que los grandes conjuntos de datos de los que se alimentan. Normalmente, se han usado para generar imágenes que asemejan, por ejemplo, características conocidas tales como caras, vehículos, habitáculos, etc. aunque en teoría podrían usarse para la generación de cualquier tipo de dato, siempre y cuando el conjunto de entrenamiento de datos reales sea adecuado (en tamaño y contenido).

Etiquetas utilizadas: , , ,

Algoritmos de Clustering

28 de Noviembre de 2019, 2285 vistas

Un algoritmo de clustering tiene como objetivo agrupar los objetos de un dataset según su similaridad, de forma que los objetos que hay dentro de un grupo (cluster) sean más similares que aquellos que caen en grupos distintos. Para resolver este problema se han desarrollado muchos algoritmos que se diferencian entre sí según qué se entiende por cluster (que, en esencia, viene dado por cómo definimos que dos objetos son más o menos similares) y por la eficiencia computacional a la hora de conseguir la agrupación final. En esta entrada haremos un recorrido por los más habituales de estos algoritmos.

Etiquetas utilizadas: , , , ,

Planificación: Fundamentos (y NetLogo)

13 de Octubre de 2019, 282 vistas

En esta entrada completamos el uso de procedimientos de búsqueda en Espacios de Estados para resolver problemas de Planificación Automática. Veremos algunas generalidades acerca del tipo de problemas que podemos resolver y de las aproximaciones formales que se han creado. También podremos ver cómo se puede implementar en NetLogo un algoritmo sencillo de conversión de un problema de planificación en uno de búsqueda (para usar, por ejemplo, BFS o A*).

Etiquetas utilizadas: , , , , , ,


ALGUNAS ENTRADAS ANTERIORES ... AL AZAR

Cuadernos del CIS: Simulación basada en agentes. Introducción a Netlogo

12 de Octubre de 2016, 1038 vistas

Ha salido ya el nuevo libro en español sobre NetLogo, de García-Valdecasas, orientado a disciplinas relacionadas con Ciencias Sociales. Se ha publicado dentro de la seria Cuadernos Metodológicos del CIS, y ofrece un punto de partida a aquellos que quieran empezar a utilizar herramientas de simulación multiagente en el análisis de problemas derivados de estas disciplinas. Aunque las aplicaciones prácticas las hace utilizando NetLogo, proporciona unas bases conceptuales suficientes para adentrarse en el mundo de la simulación de forma general.

Etiquetas utilizadas: , , ,

PageRank y el Surfista Aleatorio

5 de Mayo de 2019, 438 vistas

De forma genérica, se denomina PageRank a las diversas versiones de un algoritmo de ranking de páginas web que fue diseñado por Larry Page y Sergey Brin cuando ambos estaban en la Universidad de Stanford. De hecho, además de la importancia computacional que este algoritmo tiene por el problema que resuelve, tiene una gran importancia histórica, tecnológica y social porque la creación de este algoritmo fue lo que dio origen a la creación del buscador Google. En esta entrada veremos la relación existente entre el algoritmo para calcular PageRank y el modelo del surfista aleatorio, analizando las bondades distribuidas y de extensión que tiene este modelo.

Etiquetas utilizadas: , , , ,