Fernando Sancho Caparrini
  • Inicio
  • Docencia
    • Inteligencia Artificial 2022-23
    • Lógica Informática 2022-23
    • SVRAI 2022-23 (MULCIA)
    • Inteligencia Artificial 2021-22
    • Lógica Informática 2021-22
    • MCVA (Máster MULCIA)
    • SVRAI (Máster MULCIA)
    • Trabajos Fin de Grado Dirigidos
    • Trabajos Fin de Máster Dirigidos
    • Docencia Actual
    • Docencia Anterior
  • Cursos
    • Inteligencia Artificial
    • Teoría de la Computabilidad
    • Programación con NetLogo
    • Modelado y Análisis de la Complejidad
    • Deep Learning
  • Investigación
    • Sistemas Complejos
    • Aprendizaje Automático
    • Modelado Cultural
    • Teoría Algorítmica de la Información
    • Computación Natural
    • Seminario (I+A)A
    • Tesis Doctorales Dirigidas
  • Proyectos
    • IAI Lab
    • Participación en Proyectos de Investigación
    • CulturePlex Lab
    • Análisis del Patrimonio Cultural Ecuatoriano
    • Hispanic Baroque Project
    • Modelos de NetLogo
  • Publicaciones
    • Artículos
    • Comunicaciones
    • Libros
    • Otros
  •  
  • Últimas Entradas
    • Nuevo Lab: IAI-Lab
    • Sistemas Deductivos Proposicionales
    • Formas Prenex, de Skolem y Teorema de...
    • Formas Normales, Cláusulas y...
    • Construir un buscador desde cero
    • Tableros Semánticos en Lógica de...
    • Tableros Semánticos en Lógica...
    • Sintaxis y Semántica de la Lógica...
    • Sintaxis y Semántica de la Lógica...
    • Lua: La Elegancia de un Buen Diseño
    • NetLogo Wishlist
    • Variational AutoEncoder
    • Algoritmos de Clustering
    • Planificación: Fundamentos (y NetLogo)
    • NetLogo: Grafos
    • Lógica de Primer Orden: una...
    • Introducción a la Lógica
    • Brevísima historia de la Lógica
    • Breve Historia de la Inteligencia...
    • Monte Carlo Tree Search in NetLogo
  • Por Temas
    • Inteligencia Artificial
      • Construir un buscador desde cero
      • Lua: La Elegancia de un Buen Diseño
      • Variational AutoEncoder
      • Algoritmos de Clustering
      • Planificación: Fundamentos (y NetLogo)
      • Lógica de Primer Orden: una...
      • Breve Historia de la Inteligencia...
      • Monte Carlo Tree Search in NetLogo
      • PageRank y el Surfista Aleatorio
      • Teoría de la Probabilidad: Lo Mínimo
      • Medir la eficacia de un aprendizaje
      • Metaheurísticas: Búsqueda y...
      • Metaheurísticas
      • Descubrimiento de Conocimiento en...
      • Modelado de Sistemas Dinámicos con...
      • Algoritmo de Monte Carlo aplicado a...
      • Resolviendo Problemas de...
      • Nuevo Bloque de Cursos
      • Introducción a la Lógica Difusa
      • Simulated Annealing in NetLogo
      • Búsquedas Estocásticas: Templado...
      • Introducción a Prover9 y Mace4
      • Representación del Conocimiento
      • Fundamentos Matemáticos del Machine...
      • Entrenamiento de Redes Neuronales:...
      • Usando Patches de NetLogo para...
      • Problemas de Satisfacción de...
      • Self Organizing Maps (SOM) in NetLogo
      • Artificial Neural Networks in NetLogo
      • Local Search Algorithms in NetLogo
      • A General A* Solver in NetLogo
      • A general BFS Solver in NetLogo
      • Curso acelerado de Lógica Proposicional
      • Aprendizaje por refuerzo: algoritmo Q...
      • Minimax: Juegos con adversario
      • Métodos combinados de aprendizaje
      • Aprendizaje Inductivo: Árboles de...
      • Sistemas Basados en Reglas
      • Análisis Formal de Conceptos
      • Mapas Auto-Organizados
      • Aprendizaje Supervisado y No Supervisado
      • Introducción al Aprendizaje Automático
      • Optimización en el espacio de...
      • Redes Neuronales: una visión...
      • Algoritmos de hormigas y el problema...
      • PSO: Optimización por enjambres de...
      • Fractales
      • Autómatas Celulares
      • Introducción a las redes complejas
      • Sistemas Complejos, Sistemas...
      • Sistemas Colectivos. Inteligencia...
      • Algoritmos Genéticos
      • Búsquedas Locales
      • Búsquedas Informadas
      • Búsquedas No Informadas
      • Problemas de Búsqueda y Planificación
      • Sistemas Multiagente y Simulación
      • El modelado de problemas
      • Sobre la Inteligencia Artificial...
    • Programación Funcional
      • Lua: La Elegancia de un Buen Diseño
      • ¿Se puede liberar la programación...
      • Cómo se demuestra que un programa es...
      • Programación Funcional Reactiva
      • Haskell: el Lenguaje Funcional
      • Programación Funcional: Una mirada...
      • Refactorización Funcional
    • Modelos NetLogo
      • Construir un buscador desde cero
      • NetLogo Wishlist
      • Algoritmos de Clustering
      • Planificación: Fundamentos (y NetLogo)
      • NetLogo: Grafos
      • Monte Carlo Tree Search in NetLogo
      • Algoritmo de Monte Carlo aplicado a...
      • Nuevo Bloque de Cursos
      • Simulated Annealing in NetLogo
      • Complex Networks Toolbox (NetLogo)
      • NetLogo: Interfaz Gráfica
      • NetLogo: Procedimientos
      • NetLogo: Estructuras del lenguaje
      • Usando Patches de NetLogo para...
      • NetLogo: Fundamentos
      • Cuadernos del CIS: Simulación basada...
      • NetLogo: Listas
      • NetLogo: Experimentos
      • Programming Mathematical Models ......
      • Classical elements in NetLogo: Fire
    • Lógica
      • Sistemas Deductivos Proposicionales
      • Formas Prenex, de Skolem y Teorema de...
      • Formas Normales, Cláusulas y...
      • Tableros Semánticos en Lógica de...
      • Tableros Semánticos en Lógica...
      • Sintaxis y Semántica de la Lógica...
      • Sintaxis y Semántica de la Lógica...
    • Opinión
      • NetLogo Wishlist
      • No me enseñes más postales ... dame...
      • ¿Qué Hay Detrás de los Dobles Grados?
      • La Tiranía de las Publicaciones
      • Emprendimiento descabezado
      • ¿Puede existir Matemática sin...
      • Un secreto de pasillo
      • Opinión 141 de Doron Zeilberger
      • Sobre el modelado usando ecuaciones...
      • El auge de un joven paradigma...
      • «Estamos entregando nuestra calidad...
      • The Crisis in Higher Education
      • El imparable ascenso de la educación...
      • Cuando la religión pisa el césped...
      • Algunos comentarios sobre la...
      • ¿Por qué falla el capitalismo?
      • Objetivos de i-Math
  •  
  • Twitter
Buscar palabras usadas en entradas y páginas de este sitio

Temas

agentes, algoritmos, aprendizaje automático, busqueda, complejidad, inteligencia artificial, investigación, lógica, machine learning, matemáticas, modelado, netlogo, opinión, simulacion, universidad(todas)

Libro de NetLogo

En inglés y español, el libro para aprender a programar y modelar con NetLogo.
Un recorrido a lo largo de 16 capítulos que va desde los fundamentos básicos de programación hasta los usos más avanzados.
Con ejercicios propuestos en cada capítulo y ejemplos completamente resueltos.

Enlaces

Computación

  • GMSC-UCE
  • A.I.T.

Programación

  • NetLogo
  • Elm
  • Haskell
  • Julia

Machine Learning

  • GIDTEC
  • Datrik Intel.
  • Cambrian Intel.

Humanidades Digitales

  • CulturePlex
  • BaroqueArt
  • ExpoFinder

Grupos de C.C.I.A.

  • R.G.N.C.
  • Lóg. Computacional
  • Lóg. Matemática

Cursos: Programación con NetLogo

Modificado el 2 de Octubre de 2020
  • Objetivos
  • Introducción
  • Contenido
  • Recursos Bibliográficos

Objetivos

El objetivo de este minicurso es el de proporcionar una aproximación rápida a la programación con NetLogo. Puede usarse como un primer paso para comprender desde un punto de vista técnico los ejemplos que se distribuyen en la Biblioteca de Modelos de la herramienta, así como la elaboración de pequeñas modificaciones para experimentar con ellos y adaptarlos a las necesidades del usuario. Debe tenerse presente que está más centrado en el uso de NetLogo como herramienta de programación que en la explicación de cómo funciona conceptualmente el modelado con sistemas multiagente.

En la bibliografía se pueden encontrar otros cursos y material similar con un nivel de detalle superior, se recomienda acudir a ellos en caso de necesitar un aproximación más profunda u orientada más al problema del modelado.

Introducción

NetLogo es un lenguaje de programación simple y adaptado al modelado/simulación de fenómenos en los que aparecen muchos individuos (agentes) interactuando, por ejemplo, en los fenómenos habituales que se dan en la naturaleza, las sociedades, o muchas áreas de las ciencias.

Entre sus características más destacadas están:

  • es adecuado para modelar sistemas que evolucionan en el tiempo (especialmente, los denominados sistemas complejos),
  • es adecuado para modelar las interacciones de centenares, o miles, de individuos y su entorno (personas, bacterias, insectos, organizaciones, nodos de un grafo, etc.),
  • permite explorar la conexión existente entre las interacciones locales a nivel de individuo y los patrones globales que emergen de dichas interacciones y que se pueden medir como propiedades del sistema como unidad.

Es también un ambiente de programación fácil e intuitivo de usar para crear y probar nuevos modelos:

  • Permite abrir y experimentar por medio de simulaciones.
  • Permite crear modelos rápidamente para comprobar hipótesis sobre sistemas descentralizados.
  • Viene con una gran biblioteca de simulaciones en ciencias naturales y sociales, que pueden ser usadas y modificadas.
  • Los modelos se constryuen usando un lenguaje muy simple, que incluso es adecuado como primer lenguaje de programación, y que tiene inspiración en el paradigma funcional/declarativo (basado en el primitivo Logo).
  • Posee una interfaz gráfica intuitiva y fácil de usar, donde es posible crear entornos interactivos para experimentar con los modelos.
  • Dispone de un sistema de extensiones (plugins) que permiten ampliar las capacidades de la herramienta en diversas direcciones: desde ampliaciones del lenguaje con librerías matemáticas, de GIS, estadísticas o de estructuras de datos o de programación, hasta conexiones con otros lenguajes (R, Python, Matlab,...).

A pesar de todas las ventajas, no debe olvidarse que tiene ciertas limitaciones. El objetivo de NetLogo es proporcionar una herramienta de prototipado y desarrollo rápido de modelos de simulación, no de aplicaciones finales, por lo que está más cerca de una herramienta de exploración científica que de un lenguaje de programación estándar. Estas limitaciones se traducen, por ejemplo, en:

  • No genera aplicaciones independientes, sino que los modelos creados deben ser ejecutados dentro del mismo entorno de desarrollo de NetLogo (o por línea de comandos desde la versión no gráfica).
  • La generación de proyectos de cierta envergadura es una tarea incómoda en NetLogo, porque proporciona herramientas muy básicas para la división de código en módulos independientes.
  • El usuario (ya programador) ha de superar una pequeña barrera inicial para resolver problemas con NetLogo, porque presenta algunas características conceptuales que lo diferencian ligeramente de los lenguajes de programación más comunes.

Contenido

El contenido del curso que se propone (que es dinámico e irá creciendo según sean las necesidades observadas en los estudiantes) se divide en dos bloques:

  1. Por una parte, encontramos los temas generales, que revisan las partes centrales del lenguaje de programación (algunas características serán similares a las que podemos encontrar en otros lenguajes de programación, mientras que otras serán específicas de este lenguaje).
  2. Por otra parte, hay un conjunto de temas específicos que contemplan particularidades que pueden ser de interés para algunos usos concretos.
  3. Finalmente, también se proporcionan enlaces a documentación de extensiones del lenguaje que pueden ser especialmente interesantes para el tipo de problemas que abordamos en estas entradas.
Generales  Específicos  Extensiones 
Fundamentos
Interfaz
CSV
Estructuras
Experimentos
Matrices
Procedimientos
Ratón
Arrays
Listas    
Table
Grafos    
Networks
       
Python
       
R

Recursos Bibliográficos

  • García Vázquez, J.C. y Sancho Caparrini, F. NetLogo: Una herramienta de Modelado . 2016.
  • Wilensky, U y Rand, B. Introduction to Agent-Based Modeling: Modeling Natural, Social and Engineered Complex Systems with NetLogo, 2015.
  • Izquierdo, L. NetLogo 6.0 Quick Guide, 2017.
  • Quesada, F. Introducción al Lenguaje NetLogo y la programación basada en agentes, 2018.

Lo más leído

1. Aprendizaje Supervisado y No Supervisado (87308 vistas)
2. Introducción a la Lógica Difusa (41835 vistas)
3. Aprendizaje Inductivo: Árboles de Decisión (39885 vistas)
4. Redes Neuronales: una visión superficial (38066 vistas)
5. Algoritmos de hormigas y el problema del viajante (35514 vistas)
6. Sistemas Complejos, Sistemas Dinámicos y Redes Complejas (31216 vistas)
7. Entrenamiento de Redes Neuronales: mejorando el Gradiente Descendente (29578 vistas)
8. Sistemas Basados en Reglas (29444 vistas)
9. Introducción al Aprendizaje Automático (29286 vistas)
10. Representación del Conocimiento (28296 vistas)

Contacto

Dpto. Ciencias de la Computación e Inteligencia Artificial, Universidad de Sevilla.

Dirección:E.T.S.I.I.
Av. Reina Mercedes, s/n. 41012, Sevilla

Tfno: (+ 34) 954556979,
Fax: (+34) 954556599
Despacho: H1.48
e-mail: fsancho en us(.)es

Magazine Theme for PivotX by Windmill Web Work in 2009, released under the Simple Public License.