asm
Class ASMObserverSwarm

asm.ASMObserverSwarm

public class ASMObserverSwarm

Title: ASMObserverSwarm

Description: El ASMObserverSwarm es un Swarm con una interfaz gráfica para el usuario (GUI). Existe una única instancia de esta clase. Se sigue el mismo patrón de todas las simulaciones en Swarm, en el sentido de que el objeto observador es una entidad que describe e informa sobre el estado de la simulación, pero no interacciona con ella.

El Observador crea y contiene en su interior al Modelo. Además, realiza diversas tareas para comprobar la integridad de diversas variables de la simulación y monitoriza muchas de ellas.

Como es habitual en todas las simulaciones Swarm, el Observador responde a los mensajes buildObjects() (Crea Objetos), buildActions() (Crea Acciones) y activateIn() (Actívate en determinada zona). Además, el Observador se encarga de comunicar los mismos mensajes al siguiente nivel en la jerarquía de la simulación: el Modelo (ModelSwarm).

Actualmente, sólo es posible correr la simulación en modo gráfico

Copyright:

Depto. de Organización y Gestión de Empresas. Universidad de Valladolid

Version:
1.0
Author:
José Manuel Galán & Luis R. Izquierdo

Field Summary
 Parameters arguments
          Recoge el objeto que contiene los parámetros de la simulación, creado en la función main()
 ASMModelSwarm asmModelSwarm
          El Modelo.
 BarChart charts
          Objeto que contiene los gráficos de barras de la riqueza relativa y la posición de los agentes
 swarm.activity.ActionGroup displayActions
          El grupo de acciones (ActionGroup) que contiene la secuencia de eventos de la interfaz gráfica (GUI).
 int displayFrequency
          Frecuencia de actualización de los gráficos y de escritura a los ficheros.
 swarm.activity.Schedule displaySchedule
          El programa de acciones que debe llevar a cabo el observador.
 Output output
          Objeto que gestiona la escritura en ficheros de los parámetros y de los resultados de la simulación.
 swarm.analysis.EZGraph priceGraph
          Gráfico en el que se representa el precio fundamental y el de mercado
 swarm.analysis.EZGraph volumeGraph
          Gráfico en el que se representa el volumen de negociación
 boolean writeData
          Indica al objeto Output si debe escribir los resultados de la simulación a fichero o no
 boolean writeParams
          Indica al objeto Output si debe escribir los parámetros a fichero o no
 
Constructor Summary
(package private) ASMObserverSwarm(swarm.defobj.Zone aZone, Parameters arg)
          Constructor: Construye la sonda (probe) que nos permite modificar la frecuencia de actualización de los gráficos y de escritura a los ficheros (debe modificarse antes de comenzar la simulación).
 
Method Summary
 java.lang.Object _priceGraphDeath_(java.lang.Object caller)
          Libera la memoria ocupada por el gráfico priceGraph
 java.lang.Object _volumeGraphDeath_(java.lang.Object caller)
          Libera la memoria ocupada por el gráfico volumeGraph
 java.lang.Object _writeRawData_()
          En el caso de que se haya solicitado escribir los resultados de la simulación a fichero, éste es el método que se encarga de llevar a cabo esa tarea.
 swarm.activity.Activity activateIn(swarm.objectbase.Swarm swarmContext)
          Este método, vital en toda simulación Swarm, activa la simulación en el contexto del Observador, después activa el modelo en el mismo contexto y finalmente activa los programas de acciones (schedules) del propio observador.
 java.lang.Object buildActions()
          Crea las acciones y los programas (schedules) que contienen las acciones.
 java.lang.Object buildObjects()
          Este método crea el objeto Modelo (asmModelSwarm, instancia de ASMModelSwarm), los gráficos que representan los precios y el volumen de negociación y los diagramas de barras que representan la riqueza relativa y la posición de los agentes.
 void drop()
          Este mensaje es llamado desde la función main() y se propaga a lo largo de todos los niveles inferiores de la jerarquía de la simulación.
 java.lang.Object expostParamWrite()
          Si la variable writeParams vale "true", este método ordena al objeto Output crear un fichero con los parámetros de la simulación después de que ésta haya concluido.
 boolean ifParamWrite()
          Devuelve la variable writeParams, que indica si deben escribirse los parámetros a fichero o no.
 boolean toggleDataWrite()
          Pone en marcha el proceso de escritura de los resultados de la simulación a fichero.
 java.lang.Object writeSimulationParams()
          Este método ordena al objeto Output crear un fichero con los parámetros de la simulación.
 

Field Detail

displayFrequency

public int displayFrequency
Frecuencia de actualización de los gráficos y de escritura a los ficheros. Puede modificarse fácilmente desde la sonda del Observador

displayActions

public swarm.activity.ActionGroup displayActions
El grupo de acciones (ActionGroup) que contiene la secuencia de eventos de la interfaz gráfica (GUI).

displaySchedule

public swarm.activity.Schedule displaySchedule
El programa de acciones que debe llevar a cabo el observador. Se lleva a cabo cada "displayFrequency" periodos de simulación.

output

public Output output
Objeto que gestiona la escritura en ficheros de los parámetros y de los resultados de la simulación.

asmModelSwarm

public ASMModelSwarm asmModelSwarm
El Modelo. Contiene a los agentes, al mundo, al market-maker o especialista y al proceso de generación de dividendos, entre otros.

writeParams

public boolean writeParams
Indica al objeto Output si debe escribir los parámetros a fichero o no

writeData

public boolean writeData
Indica al objeto Output si debe escribir los resultados de la simulación a fichero o no

priceGraph

public swarm.analysis.EZGraph priceGraph
Gráfico en el que se representa el precio fundamental y el de mercado

volumeGraph

public swarm.analysis.EZGraph volumeGraph
Gráfico en el que se representa el volumen de negociación

charts

public BarChart charts
Objeto que contiene los gráficos de barras de la riqueza relativa y la posición de los agentes

arguments

public Parameters arguments
Recoge el objeto que contiene los parámetros de la simulación, creado en la función main()
Constructor Detail

ASMObserverSwarm

ASMObserverSwarm(swarm.defobj.Zone aZone,
                 Parameters arg)
Constructor: Construye la sonda (probe) que nos permite modificar la frecuencia de actualización de los gráficos y de escritura a los ficheros (debe modificarse antes de comenzar la simulación). También nos permite escribir a fichero los resultados de la simulación (puede hacerse en cualquier momento) y los parámetros (puede hacerse en cualquier momento).
Parameters:
aZone - Zona de memoria Swarm en la que se aloja el objeto Swarm
arg - Recoge el objeto que contiene los parámetros de la simulación
Method Detail

_priceGraphDeath_

public java.lang.Object _priceGraphDeath_(java.lang.Object caller)
Libera la memoria ocupada por el gráfico priceGraph
Parameters:
caller -  
Returns:
this

_volumeGraphDeath_

public java.lang.Object _volumeGraphDeath_(java.lang.Object caller)
Libera la memoria ocupada por el gráfico volumeGraph
Parameters:
caller -  
Returns:
this

buildObjects

public java.lang.Object buildObjects()

Este método crea el objeto Modelo (asmModelSwarm, instancia de ASMModelSwarm), los gráficos que representan los precios y el volumen de negociación y los diagramas de barras que representan la riqueza relativa y la posición de los agentes. Los diagramas de barras requieren bibliotecas adicionales (import com.jrefinery.chart.JFreeChart)

Es en este método en el que el programa espera a que el usuario pulse el botón "Start" del panel de control. Una vez pulsado, recoge los parámetros (que el usuario puede haber modificado) y le ordena al objeto asmModelSwarm que proceda a construir todos los objetos restantes en la simulación (los agentes, el mundo, el market-maker o especialista y el proceso de generación de dividendos, entre otros).

Returns:
this

writeSimulationParams

public java.lang.Object writeSimulationParams()
Este método ordena al objeto Output crear un fichero con los parámetros de la simulación. Puede pulsarse antes o durante la simulación.
Returns:
this

expostParamWrite

public java.lang.Object expostParamWrite()
Si la variable writeParams vale "true", este método ordena al objeto Output crear un fichero con los parámetros de la simulación después de que ésta haya concluido. Este método sólo se llama en el modo batch, luego en esta primera versión nunca se ejecuta.
Returns:
this

ifParamWrite

public boolean ifParamWrite()
Devuelve la variable writeParams, que indica si deben escribirse los parámetros a fichero o no.
Returns:
writeParams indica si deben escribirse los parámetros a fichero o no.

toggleDataWrite

public boolean toggleDataWrite()
Pone en marcha el proceso de escritura de los resultados de la simulación a fichero. Se puede acceder a este método a través de la sonda antes o durante la simulación.
Returns:
writeData Indica al objeto Output si debe escribir los resultados de la simulación a fichero o no.

_writeRawData_

public java.lang.Object _writeRawData_()
En el caso de que se haya solicitado escribir los resultados de la simulación a fichero, éste es el método que se encarga de llevar a cabo esa tarea. Forma parte del grupo de acciones (ActionGroup) displayActions. Por tanto, se ejecuta cada "displayFrequency" periodos de simulación.
Returns:
this

buildActions

public java.lang.Object buildActions()
Crea las acciones y los programas (schedules) que contienen las acciones. Puesto que es un método del observador, las acciones que aquí se crean son básicamente las de actualización de gráficos y escritura a ficheros.
Returns:
this

activateIn

public swarm.activity.Activity activateIn(swarm.objectbase.Swarm swarmContext)
Este método, vital en toda simulación Swarm, activa la simulación en el contexto del Observador, después activa el modelo en el mismo contexto y finalmente activa los programas de acciones (schedules) del propio observador. De esta forma, las acciones del modelo se colocan en el programa general de la simulación antes de las acciones del observador encaminadas a monitorizar las acciones del modelo, como es natural.
Parameters:
swarmContext - El entorno de nuestro Observador. (en esta primera llamada: null)
Returns:
getActivity() La actividad de nuestro Swarm

drop

public void drop()
Este mensaje es llamado desde la función main() y se propaga a lo largo de todos los niveles inferiores de la jerarquía de la simulación. Esto nos permite avisar a los ficheros de que la simulación ha terminado y así poder cerrarlos sin problemas.