Proyectos: Modelos de NetLogo
En esta colección presento algunos de los modelos que se han ido desarrollando para diversos proyectos de investigación o como apoyo para algunas de las clases en las que hago uso de NetLogo.
Construir un buscador desde cero
En esta entrada vemos cómo se pueden implementar de forma muy sencilla buscadores en Espacios de Estados en un lenguaje con características funcionales. La idea no es presentar implementaciones muy eficientes, sino únicamente encontrar patrones comunes y flexibles que permiten estas representaciones y posibles ampliaciones y adaptaciones futuras.
NetLogo Wishlist
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.
Read MoreAlgoritmos de Clustering
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.
Planificación: Fundamentos (y NetLogo)
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*).
NetLogo: Grafos
A pesar de que ya con anterioridad hemos hablado de los enlaces (links) como el tercer tipo de agentes que se puede manipular en Netlogo, hasta ahora no hemos trabajado con ellos, principalmente por el hecho de que necesitábamos conocer algunas técnicas de programación para poder sacarles todo el partido que nos puedan dar. En esta entrada haremos un breve repaso a cómo se modelan redes/grafos en NetLogo, usando tortugas como nodos y links como enlaces.
Monte Carlo Tree Search in NetLogo
In this post we present a complete implementation of Monte Carlo Tree Search in NetLogo. It is based on a previous post about the fundamentals of this algorithm for solving Adversarial Searchs and also shows some examples about how to use it to create computer adversarial players for real games.
Interacción con el ratón
En esta entrada mostramos cómo hacer uso de los reports que trae NetLogo para generar procedimientos que permiten interactuar con el modelo haciendo uso del ratón.
Algoritmo de Monte Carlo aplicado a Búsquedas en Espacios de Estados
Cuando se trata el tema de la IA aplicada a juegos normalmente se comienza hablando de los llamados Juegos con Información Perfecta (3 en raya, Conecta 4, Damas, Reversi, Ajedrez, y Go), generalmente basados en turnos, en los que todos los jugadores pueden acceder a toda la información disponible de los demás jugadores y donde no hay elementos de azar en la mecánica del juego (como podría ser el uso de dados). Aunque hay metodologías teóricas desarrolladas para generar jugadores artificiales para este tipo de juegos, como Minimax, resultan claramente insuficientes cuando la complejidad del juego es no trivial. En esta entrada analizaremos cómo se puede aplicar el algoritmo de Monte Carlo para obtener jugadores artificiales asintóticamente óptimos en una variedad de juegos que se han resistido a otro tipo de aproximaciones más clásicas.
Nuevo Bloque de Cursos
Se ha añadido un apartado de cursos completos al que puedes acceder por medio del nuevo enlace "Cursos" en el menú principal de esta página. El objetivo es ir colgando cursos enteros de forma que estén disponibles independientemente de si se corresponden o no con una asignatura reglada actualmente.
Simulated Annealing in NetLogo
In this post we will see implementations of Simulated Annealing algorithm.
Complex Networks Toolbox (NetLogo)
This NetLogo model is a toy tool to launch experiments for Complex Networks.
It provides some basic commands to generate and analyze small networks by using the most common and famous algorithms (random graphs, scale free networks, small world, etc). Also, it provides some methods to test dynamics on networks (spreading processes, page rank, cellular automata,...).
All the funtionalities have been designed to be used as extended NetLogo commands. In this way, it is possible to create small scripts to automate the generating and analyzing process in an easier way. Of course, they can be used in more complex and longer NetLogo procedures, but the main aim in their design is to be used by users with no previous experience on this language (although, if you know how to program in NetLogo, you can probably obtain stronger results).
Read MoreNetLogo: Interfaz Gráfica
En esta entrada veremos los widgets que proporciona NetLogo para la creación rápida de interfaces. Veremos que se agrupan según su finalidad (entrada, información o ejecución), y cómo algunos de ellos se pueden asociar a variables que jugarían el mismo papel que las variables globales definidas por medio de código.
NetLogo: Procedimientos
NetLogo: Estructuras del lenguaje
Usando Patches de NetLogo para modelar Autómatas Celulares
Gracias a la similitud existente entre la distribución topológica de los patches que forman el mundo bidimensional de NetLogo y la distribución de las celdas de un autómata celular 2D, nos centraremos en esta entrada en analizar la forma más sencilla y directa de modelar un autómata celular 2D haciendo uso de patches.
NetLogo: Fundamentos
Cuadernos del CIS: Simulación basada en agentes. Introducción a Netlogo
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.
NetLogo: Listas
NetLogo: Experimentos
Programming Mathematical Models ... with NetLogo
This post has the goal to serve as guide for the session "Programming Mathematical Models ... with NetLogo" from the 5th International Summer School of Mathematics in Seville, between July 15th and 31st 2016.
For this reason, this post is more like a set of notes to focus our achievements that something to read from outside... sorry for those coming from outside the Summer School, as it can be of little interest for them. We will build a model to experiment with totallistic 2D Cellular Automata from scratch (and provide some optimizations for the Game of Life case).
Read More