Programa
  1. Introducción
    1. ¿Qué son modelos basados en agentes?
    2. Ejemplos introductorios
    3.  ¿Qué es la programación?
    4. Los lenguajes de programación más populares y su uso
    5. El trabajo del programador: lenguaje, IDE, ejecución
  2. Modelos basados en agentes – primera parte
    1. Características y uso de modelos basados en agentes
    2. Elementos claves: agentes, reglas de comportamiento, entorno
    3. Conceptos claves: interacción, información, tiempo
    4. Ventajas e inconvenientes de modelos basados en agentes
  3. Programación con Java – primera parte
    1. Descripción e historia de Java y su uso hoy en día
    2. Entorno de programación: Eclipse, JVM, JDE
    3. Programación basada en objetos: clases, métodos y objetos
    4. Sintaxis básica: código, comentarios y JavaDoc
    5. Tipo de datos/variables: primitive types
    6. Control statements: if, else, else-if, while, for, do, etc
    7. Acceso a métodos: privado, público, protegido, etc
    8. Tipo de variables y métodos: static, dynamic, final
    9. Otros tipos de datos: vectores, listas, etc.
    10. Herencia & polimorfismo
  4. Modelos basados en agentes con Java/RePast
    1. Introducción a RePast: usar Java para modelos basados en agentes
    2. Validación de modelos basados en agentes
    3. Descripción de modelos: el protocolo ODD
  5. Programación con Java – segunda parte (si el tiempo lo permite)
    1. GUI básico
    2. Leer y escribir archivos
EvaluaciĆ³n

La evaluación se basa en tres elementos:

 

Examen parcial teórico

40%

En la segunda mitad del semestre hay un examen teórico de lo visto en clase. Es un examen escrito sin documentos. Se enfoca en los conceptos de ABM pero también en conceptos de la programación.

Proyecto final

60%

Durante todo el semestre los alumnos elaboran un modelo basado en agentes en grupos de 2-4 alumnos. Habrá 4 entregas durante el semestre:

  1. Definición del tema, lista de agentes y sus características.
  2. Plan de implementación en Java/RePast
  3. Primera versión del modelo en Java/RePast
  4. Documento final: artículo, modelo y ODD

Para algunas entregas organizamos pequeñas presentaciones en clase. Más detalles sobre las entregas se distribuyen durante el semestre.

Ejercicios prácticos

1 punto extra

Hasta un punto extra en la calificación. Promedio de los 4 mejores ejercicios.  

Objetivos

Tradicionalmente los modelos económicos se basan en técnicas matemáticas con soluciones analíticas que se derivan típicamente de condiciones de equilibrio. Aunque dichos métodos permitieron explicar muchos fenómenos económicos y sociales, están limitados en términos de soluciones fuera de equilibrio y cuando se trata de problemas complejos o multi-disciplinarios. Durante los últimos años el uso de modelos computacionales ha aumentado considerablemente y muy probablemente su importancia en varias ciencias sociales seguirá aumentando. Una familia de modelos computacionales son los modelos basados en agentes cuya idea general es modelar los fenómenos sociales desde el comportamiento de los agentes (individuos, empresas) y sus interacciones. Así es posible tomar en cuenta comportamientos heterogéneos, interacciones entre agentes y con el entorno. Asimismo, los modelos basados en agentes facilitan el enfoque multidisciplinario y toman en cuenta resultados de ciencia de la conducta, por ejemplo.

 

Mientras que los modelos tradicionales requieren un conocimiento avanzado de las matemáticas, los modelos computacionales requieren además habilidades de programación.

 

El objetivo de este curso es primero ofrecer una introducción a la programación para que los alumnos aprendan a programar modelos básicos y aplicaciones sencillas. El tiempo no permitirá entrar a todos los detalles de la programación, pero la introducción debe permitir a los alumnos entender la lógica general de la programación y saber cómo y en donde buscar información para mejorar sus conocimientos de programación. El segundo objetivo del curso es introducir el concepto de modelos basados en agentes e introducir paquetes de software que nos permitan desarrollar modelos basados en agentes.

 

Se hará un énfasis en habilidades más que en puro conocimiento. Así, no es el objetivo saber teóricamente cómo funciona la programación, sino ser capaz escribir un programa para tareas específicas y ser capaz de desarrollar un modelo basado en agentes.