Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde...

19
Introducción a la programación en Netlogo Francisco J. Romero Campero http://www.cs.us.es/~fran/ Dpt. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla

Transcript of Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde...

Page 1: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Introducción a la programación en

Netlogo

Francisco J. Romero Camperohttp://www.cs.us.es/~fran/

Dpt. de Ciencias de la Computación e Inteligencia ArtificialUniversidad de Sevilla

Page 2: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

El Método Ciéntifico como Metodología Docente

Observaciones

Teoría

Predicción

Experimentación

Diseño y desarrollo de experimentos

Formulación de hipótesis y teorías

Generación de predicciones

Verificación y testeo de predicciones

Page 3: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Definición de Agente● Un agente es una entidad capaz de percibir las condiciones

exteriores del entorno donde habita e interiores a sí mismo

para realizar acciones de forma independiente y autónoma. ● Un agente presenta la siguientes características:

– Autonomía: capaz de operar sin intervención directa de un ente externo

– Reactividad: capaz de responder a cambios que ocurren en el entorno

– Pro-actividad: capaz de iniciar acciones como respuesta a estados internos

– Habilidad social: capaz de interactuar con otros agentes.

(Wooldridge and Jennings, 1995)

Page 4: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Entorno

● El concepto de entorno es clave para la definición de agente.

● El entorno puede presentar las siguientes características:

– Accesibilidad / Inaccesibilidad

– Periódico / No periódico

– Estático / Dinámico

– Abierto / Cerrado

Agente

Entorno

SensoresEntrada

AcciónSalida

Page 5: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Netlogo

● Netlogo es una plataforma para el desarrollo y estudio de sistemas multiagentes.

● Netlogo es software libre.

● Netlogo está mantenido y desarrollado por una comunidad de modelizadores.

http://ccl.northwestern.edu/netlogo/

Page 6: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Interfaz de Netlogo

Page 7: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Primitivas Básicas ● Los agentes en Netlogo por cuestiones históricas se denominan turtles y

el entorno patches.

● Para crear un número de tortugas usamos la primitiva:create-turtles número_tortugas

● Para hacer que un agente realice una instrucción usamos la primitiva:ask turtles [“comandos”]ask patches [“comandos”]

● Podemos realizar instrucciones básicas con las siguiente primitivas:

– forward ;; (fd) avanzar

– back ;; (bk) retroceder

– left ;; (lt) giro a la izquierda

– right ;; (rt) giro a la derecha

● Para eliminar todos los agentes usamos la primitiva:clear-all

Page 8: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Procedimientos

● Los procedimientos son nuevos comandos definidos por el programador.

● Los procedimientos se definen utilizando las palabras claves to y end:

to setup

clear-all create-turtles 3 ask turtles [set xcor random-pxcor set ycor random-pycor]

end

Page 9: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Botones en Netlogo

Page 10: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Propiedades de turtles● Las turtles tienen las siguientes propiedades predefinidas:

who ;; identificador (no se puede modificar)color ;; colorheading ;; orientaciónxcor ;; coordenada xycor ;; coordenada yshape ;; formalabel ;; etiquetalabel-color ;; color de la etiquetabreed ;;razahidden? ;; ¿visible o no visible?size ;; tamañopen-size ;; tamaño del trazo al desplazarse (cuando pen-

mode=down)pen-mode ;; ¿dejar trazo al desplazarse o no?

Page 11: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Propiedades de patches● Los patches tienen las siguientes propiedades predefinidas:

pxcor ;; coordenada x del patchpycor ;; coordenada y del patchpcolor ;; color del patchplabel ;; etiqueta del patchplabel-color ;; color de la etiqueta del patch

● Estas propiedades puede modificarse utilizando la primitiva set.

ask turtles [ set color red ] ask patches [ set color blue ]

Page 12: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Variables Globales y Barras de Desplazamiento

Page 13: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Definir nuevos agentes

● Podemos definir nuevos agentes utilizando la función breed:

breed [predators predator ]

● Para definir propiedades asociadas a nuevos agentes utilizamos la extensión -own:

predators-own [ velocity ]

● Al igual que para turtles y patches podemos usar las primitivas create y set.

Page 14: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Manos a la Obra

Page 15: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Agentes del Sistema

● Crea dos nuevos tipos de agentes:

● Preys con singular prey.● Predators con singular predator.

● Crea una nueva propiedad para los entornos (patches) llamada chemical.

Page 16: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Procedimiento de Inicialización (setup)

● Define el procedimiento básico setup para inicializar el mundo virtual:

● Limpia el mundo de todo previo agente● Crea un numero de predadores de acuerdo a una variable

definida en una barra de desplazamiento en la interfaz gráfica llamada numero_predadores.

● Pide a los predadtores que fijen su color a rojo y sus coordenadas xcor e ycor a random-pxcor y random-ycor respectivamente.

● De forma similar a los dos puntos anteriores crea un número de presas, fija su color a azul y sus posiciones hazlas aleatorias.

● Pides a los entornos (patches) que fije chemical a 0.

Page 17: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Procedimiento de simulación (go)

● Define el procedimiento básico go para realizar la simulación:

● Pide a los depredadores que avancen una posición, giren un angulo a la derecha, otro a la izquierda (según variables definidas por barras de desplazamiento) y que incrementen en 10 unidades el chemical del entorno (patch) actual.

● Difundir el chemical 1 veces tres veces consecutivas. ● Pedir a los entornos (patches) que degraden el chemical

fijándolo al producto de chemical por 0.9 y que fijen su color según un scale-color basado en rojo que vaya desde 0.1 a 3

● Pedir a las presas que si detectan chemical por encima de 0.01 huyan de él.

Page 18: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Procedimiento de turn-against-chemical

● Define el procedimiento específico para presas turn-against_chemical:

● Define variables locales n_chemical, e_chemical, s_chemical y w_chemical que almacenen los valores de chemical en los entornos (patch-ahead) en los posiciones norte, este, sur y oeste respectivamente.

● Utilizando sentencias if hacer que la presa se mueva a la posición donde el chemical es menor.

Page 19: Introducción a la programación en Netlogofran/varios/maes.pdf · exteriores del entorno donde habita e interiores a sí mismo para realizar acciones de forma ... El concepto de

Referencias

● Mitchel Resnick: Turtles, Termites, and Traffic Jams, The MIT Press, 1997

● Vanessa Stevens Colella, Eric Klopfer, Mitchel Resnick: Adventures in Modeling: Exploring Complex, Dynamic Systems with StarLogo, Teachers College Press, 2001

● John Maynard Smith: Evolution and the Theory of Games, Cambridge University Press, 1982