Co model Usage comodel_simple

Julien Mazars edited this page May 20, 2016 · 2 revisions

Simple syntax demonstration of Comodeling

Author : HUYNH Quang Nghi

This is a simple comodel serve to demonstrate the importation and instatiation of micro-model without using the couplings

Imported models :

model M2


global
{
	int n <- 4;
	init
	{
		create B number: n;
	}

}

species B skills: [moving]
{
	int IQ <- rnd(100);
	reflex dolive
	{
		write "" + "i'm alive !!";
		do wander;
	}

	aspect default
	{
		draw square(1) color: # red;
	}

}

experiment M2_exp type: gui
{
	output
	{
		display "m2_disp"
		{
			species B aspect: default;
		}

	}

}


model M1


global
{
	int n <- 8;
	init
	{
		create A number: n;
	}

}

species A skills: [moving]
{
	int IQ <- rnd(100);
	reflex dolive
	{
		write "" + "i'm alive !!";
		do wander;
	}

	aspect default
	{
		draw square(1) color: # green;
	}

}

experiment M1_exp type: gui
{
	output
	{
		display "m1_disp"
		{
			species A aspect: default;
		}

	}

}


Code of the model :

model Comodel_simple

import "m1.gaml" as micro_model_1
import "m2.gaml" as micro_model_2


global
{
	init
	{
	//micro_model must be instantiated by create statement. We create an experiment inside the micro-model and the simulation will be created implicitly (1 experiment have only 1 simulation).
		create micro_model_1.M1_exp number: 5;
		create micro_model_2.M2_exp;
	}

	reflex simulate_micro_models
	{

	//tell the first experiment of micro_model_1 do 1 step;
		ask first(micro_model_1.M1_exp).simulation
		{
			do _step_;
		}

		//tell the  experiment at 3 of micro_model_1 do 1 step;
		ask (micro_model_1.M1_exp at 3).simulation
		{
			do _step_;
		}

		//tell all experiments of micro_model_1 do 1 step;
		ask (micro_model_1.M1_exp collect each.simulation)
		{
			do _step_;
		}

		//tell all experiments of micro_model_2 do 1 step;
		ask (micro_model_2.M2_exp collect each.simulation)
		{
			do _step_;
		}
		
		//kill simulation  of micro_model and recreate then
		ask  (micro_model_2.M2_exp collect each.simulation){
			do die;
		}
		ask (micro_model_2.M2_exp){
			create simulation{do _init_;}
		}
	}
}

experiment Comodel_simple_exp type: gui
{
}

Home

Introduction

Changes from 1.6.1 to 1.8

Platform

  1. Installation and Launching
  2. Installation
  3. Launching GAMA
  4. Headless Mode
  5. Updating GAMA
  6. Installing Plugins
  7. Troubleshooting
  8. Workspace, Projects and Models
  9. Navigating in the Workspace
  10. Changing Workspace
  11. Importing Models
  12. Editing Models
  13. GAML Editor (Generalities)
  14. GAML Editor Toolbar
  15. Validation of Models
  16. Running Experiments
  17. Launching Experiments
  18. Experiments User interface
  19. Menus and commands
  20. Parameters view
  21. Inspectors and monitors
  22. Displays
  23. Batch Specific UI
  24. Errors View
  25. Preferences

Learn GAML step by step

  1. Introduction
  2. Start with GAML
  3. Organization of a Model
  4. Basic programming concepts in GAML
  5. Manipulate basic Species
  6. Global Species
  7. Regular Species
  8. Defining Actions and Behaviors
  9. Interaction between Agents
  10. Attaching Skills
  11. Inheritance
  12. Defining Advanced Species
  13. Grid Species
  14. Graph Species
  15. Mirror Species
  16. Multi-Level Architecture
  17. Defining GUI Experiment
  18. Defining Parameters
  19. Defining Displays Generalities
  20. Defining Charts
  21. Defining 3D Displays
  22. Defining Monitors and Inspectors
  23. Defining Export files
  24. Defining User Interaction
  25. Exploring Models
  26. Run Several Simulations
  27. Batch Experiments
  28. Exploration Methods
  29. Optimizing Model Section
  30. Runtime Concepts
  31. Optimizing Models
  32. Multi-Paradigm Modeling
  33. Control Architecture
  34. Defining Equations

Recipes

  1. Manipulate OSM Datas
  2. Diffusion
  3. Using Database
  4. Calling R
  5. Using FIPA ACL
  6. Using GamAnalyzer
  7. Using BDI
  8. Using Driving Skill
  9. Manipulate dates
  10. Manipulate lights
  11. Using comodel
  12. Save and restore Simulations
  13. Using network
  14. Headless mode
  15. FAQ
  16. Known Issues

GAML References

  1. Built-in Species
  2. Agent Built-in
  3. Model Built-in
  4. Experiment Built-in
  5. Built-in Skills
  6. Built-in Architecture
  7. Statements
  8. Data Type
  9. File Type
  10. Expressions
  11. Literals
  12. Units and Constants
  13. Pseudo Variables
  14. Variables And Attributes
  15. Operators [A-A]
  16. Operators [B-C]
  17. Operators [D-H]
  18. Operators [I-M]
  19. Operators [N-R]
  20. Operators [S-Z]
  21. Index

Tutorials

  1. Predator Prey
  2. Road Traffic
  3. 3D Tutorial
  4. Incremental Model
  5. Luneray's flu
  6. Co-modeling
  7. BDI Agents

Pedagogical materials

Developing Extensions

  1. Installing the GIT version
  2. Architecture of GAMA
  3. Developing a Plugin
  4. Developing a Skill
  5. Developing a Statement
  6. Developing an Operator
  7. Developing a Type
  8. Developing a Species
  9. Developing a Control Architecture
  10. Index of annotations
  11. IScope
  12. Creating a release of GAMA
  13. Documentation generation
  14. Website generation

Scientific References

Projects using GAMA

Training Session

Events

Older versions

Coding Camp

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.