SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
SAPERE Self-aware Pervasive Service Ecosystems
From Engineer to Alchemist, There and Back Again: An
Alchemist Tale
Danilo Pianini – danilo.pianini@unibo.it
Alma Mater Studiorum—Universit`a di Bologna
Cesena, May 8th, 2012
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 1 / 46
Outline Do or do not, there is no try.
1 Simulation
Definitions
Models
When it’s useful?
2 Alchemist
SAPERE background
Computational model
Engine and architecture
Case studies
Performance
3 Development
Development model
Contributors
Future activities
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 2 / 46
Simulation
Simulation
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 3 / 46
Simulation Definitions
Scientific Method
Traditional science workflow [Parisi, 2001]
Traditional scientific method
identification
direct observation
theories / hypothesis
empirical observation
quantitative analysis
validation / invalidation
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 4 / 46
Simulation Definitions
Definition of Simulation
A new way for describing scientific theories
[Parisi, 2001]
Simulation is the process with which we can study the dynamic
evolution of a model system, usually through computational tools
[Banks, 1999]
Simulation is the imitation of the operation of a real-world process or
system over time
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 5 / 46
Simulation Models
Simulation Requires a Model
M. Minsky – Models, Minds, Machines
A model (M) for a system (S), and an experiment (E) is anything to which
E can be applied in order to answer questions about S.
Representation / abstraction
Formalisation
Aggregation, Simplification, Omission
Building a model...
How complex should be the model?
Which assumptions should be done?
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 6 / 46
Simulation Models
From Model to Simulation. . .
Computer simulation
Models are designed runnable processes
Simulation creates a virtual laboratory
controlled conditions
it’s easy to modify the experiment (variables, parameters, etc.)
Simulations imitate the operations of the modelled process
generation of an artificial evolution of the system
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 7 / 46
Simulation Models
. . . and Back
Deductions on the real system represented
Evaluation of theories about the model
Model validation [Klugl and Norling, 2006]
if the data is reliable;
if prediction doesn’t match the observed behaviour do not match
⇒ the model must be revised
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 8 / 46
Simulation When it’s useful?
Why do we Need Simulations?
[Parisi, 2001, Klugl and Norling, 2006]
The real system cannot actually be observed
The time scale of the real system is too small or too large for
observation
The original system doesn’t yet exist (or not anymore)
The system is too complex
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 9 / 46
Alchemist
Alchemist
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 10 / 46
Alchemist SAPERE background
The SAPERE Project
http://www.sapere-project.eu/
SAPERE (Self-aware Pervasive Service Ecosystems) is an EU STREP
project under the FP7 FET Proactive Initiative: Self-Awareness in
Autonomic Systems (AWARENESS)
The objective of SAPERE is the development of a highly-innovative
theoretical and practical framework for the decentralized deployment
and execution of self-aware and adaptive services for future and
emerging pervasive network scenarios
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 11 / 46
Alchemist SAPERE background
SAPERE World
LSA Space
LSA
LSALSA
LSA
eco-law
Engine
Software services
SAPERE Node
eco-law activation
SAPERE
Node
SAPERE
Node
SAPERE
Node
SAPERE
Node
SAPERE
Node
SAPERE
Node
SAPERE
Node
SAPERE
Node
SAPERE
Node
SAPERE
Node
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 12 / 46
Alchemist SAPERE background
Simulation of a SAPERE environment
The role of simulation
Emergence cannot be fully designed
It’s crazy to deploy a whole ecosystem without any test
Fist class abstractions
Dynamic environment
Different, mobile, communicating nodes
Programmability through a set of chemical-like laws
Continuous Time Markov Chain (CTMC) model
Autonomous agents
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 13 / 46
Alchemist SAPERE background
Two approaches
Classic ABM modelling
High flexibility
Topology as first-class abstraction
Dynamics explicitly modelled
No native support for CTMC model
Chemical inspired modelling
Natively CTMC
Very fast and reliable algorithms exist in literature
Very limited topology: multicompartment at best
Only classic reactions can change the world status: limited flexibility
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 14 / 46
Alchemist Computational model
Alchemist simulation approach
Base idea
Start from the existing work with stochastic chemical systems
simulation
Extend it as needed to reach desired flexibility
Goals
Full support for Continuous Time Markov Chains (CTMC)
Support for differently distributed events (e.g. Triggers)
Rich environments, with obstacles, mobile nodes, etc.
More expressive reactions
Fast and flexible SSA engine
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 15 / 46
Alchemist Computational model
Enriching the environment description
Environment
Node
Reactions
Molecules
Alchemist world
The Environment contains and links together Nodes
Each Node is programmed with a set of Reactions
Nodes contain Molecules
Each Molecule in a node is described with a Concentration
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 16 / 46
Alchemist Computational model
Extending the concept of reaction
From a set of reactants that combine themselves in a set of products to:
Number of
neighbors<3
Node
contains
something
Any other
condition
about this
environment
Rate equation: how conditions
influence the execution speed
Conditions Probability distribution Actions
Any other
action
on this
environment
Move a node
towards...
Change
concentration
of something
Reaction
In Alchemist, every event is an occurrence of a Reaction
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 17 / 46
Alchemist Engine and architecture
SSA Algorithms
Several SSA exist, they follow the same base schema [Gillespie, 1977]:
1 Select next reaction using markovian rates
2 Execute it
3 Update the rates which may have changed
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 18 / 46
Alchemist Engine and architecture
Do the math: reaction speed
Consider a chemical reaction in the form:
A + B
µ
−→ C
The probability that this reaction will trigger depends on:
1 Number of molecules A and B: the higher, the higher the probability
those molecule will encounter and react
2 µ, a speed coefficient for the reaction
We define the propensity of a reaction as its speed in a precise instant of
time as
aµ = µ[A][B]
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 19 / 46
Alchemist Engine and architecture
Do the math: next reaction choice
If we assume every reaction is a Poisson process, the probability for it to
be the next one is:
P(next = µ) =
∞
0
P(µ, τ)dτ =
∞
0
aµe−τ j aj
dτ =
aµ
j aj
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 20 / 46
Alchemist Engine and architecture
Do the math: next reaction time
We can also compute the next time of occurrence:
P(τ)dτ =
j
P(µ, τ)dτ =


j
aj

 e−τ j aj
dτ
j
aj = λ −→ λe−λx
F(x ≤ t) =
t
−∞
λe−λx
dx = −e−λt
t
−∞
= e−λt
Now, given a uniformly distributed random r, it’s possible to compute it’s
equivalent for the desired distribution:
e−λt
= r ⇒ t =
− ln (r)
λ
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 21 / 46
Alchemist Engine and architecture
Existing algorithms
Direct method
1 Compute propensity for each reaction
2 Select next reaction probabilistically
3 Execute it
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 22 / 46
Alchemist Engine and architecture
Existing algorithms
A+B→C
B+C→D E+G→A
D+E→E+F F→D+G
Direct method + Dependency graph
1 Compute the dependencies among reactions
2 Compute propensity for each reaction
3 Select next reaction probabilistically
4 Execute it
5 Update propensities only for potentially involved reactions
6 Goto 3
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 23 / 46
Alchemist Engine and architecture
Existing algorithms
Next Reaction
1 Compute a putative execution time for each reaction
2 Store reactions in a binary heap
3 Pick the next reaction
4 Execute it
5 Compute putative times only for potentially involved reactions
6 Goto 3
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 24 / 46
Alchemist Engine and architecture
Existing algorithms
[Slepoy et al., 2008]
1 Compute propensities
2 Split the reactions in groups by their propensity
3 Throw randoms until a reaction in a group is selected
4 Execute it
5 Update propensities only for potentially involved reactions
6 Goto 3
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 25 / 46
Alchemist Engine and architecture
More flexibility!
What they miss is what we added
Support for instantaneus events (∞ Markovian rate)
Reactions can be added and removed during the simulation
Support for non-exponential time distributed events (e.g. triggers)
Dependencies among reactions are evaluated considering their
“context”, speeding up the update phase
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 26 / 46
Alchemist Engine and architecture
Smart data structures ⇒ bleeding edge performances
2.0
4 4
3.7
1
7.3
2 1
5.5
1 0
2
8.9
1 0
4.2
0 0
9.1
0 0
10.1
0 0
inf
0 0
A+B→C
B+C→D E+G→A
D+E→E+F F→D+G
Next Reaction efficient structures made dynamic
Dynamic Indexed Priority Queue
Allow to access the next reaction to execute in O(1) time
Worst case update in log2 (N) (average case a lot better)
Extended to ensure balancing with insertion and removal
Dynamic Dependency Graph
Allows to smartly update only a subset of all the reaction
Extended with the concept of input and output context
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 27 / 46
Alchemist Engine and architecture
Modular structure
Environment
User Interface
Alchemist language
Application-specific Alchemist Bytecode Compiler
Environment description in application-specific language
Incarnation-specific language
Reporting System
Interactive UI
Reaction Manager
Dependency Graph
Core Engine
Simulation Flow Language Parser
Environment Instantiator
XML Bytecode
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 28 / 46
Alchemist Engine and architecture
Some Features in short
Parallel executor
Approximate Stochastic Model Checker
Parallelised engine
Alchemist2Blender
PVeStA integration
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 29 / 46
Alchemist Case studies
Crowd evacuation
EXIT 1
EXIT 2
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 30 / 46
Alchemist Case studies
Crowd steering
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 31 / 46
Alchemist Case studies
Adaptive Displays
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 32 / 46
Alchemist Case studies
Simple Morphogenesis proof of concept
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 33 / 46
Alchemist Case studies
Morphogenesis of a Drosophila Melanogaster
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 34 / 46
Alchemist Case studies
Anticipative adaptation
0
5
10
15
20
25
30
35
40
45 0
5
10
15
20
25
30
35
40
45
0
10
20
30
40
50
60
'datald.log' using 2:3:4
0
10
20
30
40
50
60
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 35 / 46
Alchemist Case studies
Realistic pedestrians
see the video...
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 36 / 46
Alchemist Performance
Testbed
We realised the same crowd-steering application for both Alchemist
and RePast, in order to evaluate the performance gap (if any)
Source code for RePast and standalone Alchemist application
available at
http://www.apice.unibo.it/xwiki/bin/view/Alchemist/JOS
We choose a simplified use case which allows simulation in RePast
without any change in its engine
This actually cripples out the most important Alchemist optimization
for complex environment (the dependency graph)
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 37 / 46
Alchemist Performance
Results
0
50
100
150
200
250
300
350
400
450
500
50 100 150 200 250 300 350 400 450 500
Executiontime[s]
Number of agents
Performance comparison with Repast
Repast Alchemist
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 38 / 46
Development
Development
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 39 / 46
Development Development model
Distributed development
Alchemist is a training ground for some good team development practices
Linux kernel-like development model
Java
XText
Mercurial DCVS
Bitbucket web-based code hosting
Maven
JUnit
Source is released under GPL
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 40 / 46
Development Contributors
People involved
Michele Bombardi (Done)
Realistic pedestrians
Chiara Casalboni (Done)
Realistic pedestrians
Francesca Cioffi (Done)
Further experiments with Alchemist-SAPERE
Davide Ensini (Done)
Approximate Stochastic Model Checker improvement
Enrico Galassi (Done)
Alchemist-SAPERE high level language
Enrico Gualandi (Ongoing)
Alchemist-SAPERE languages review
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 41 / 46
Development Contributors
People involved
Luca Mella (Done)
Tools for social network analysis
Alessandro Montalti (Done)
MS-BioNet to AlchemistXML translator
Luca Nenni (Done)
Alchemist2Blender
Enrico Polverelli (Done)
Gradient based patterns
Michele Pratiffi (Done)
Image importer for Alchemist
Giacomo Pronti (Done)
SAPERE incarnation main author
Luca Ricci (Ongoing)
Map importer for Alchemist
Andrea Vandin (IMT Lucca)
PVeStA integration
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 42 / 46
Development Future activities
There is a lot of work to do!
MS-Bionet compatibility layer
AlcheGRID
Alchemist2Blender improvement
OpenStreet Map importer and Google Map importer
Blender Integration improvement
Gnuplot integration
CellML / SBML to AlchemistXML
Chemistry Incarnation review
Alchemist for Bio DSL
Realistic biological gradients
GPX tracks loader
RDF to Alchemist-SAPERE translator
These are examples, if you have something in mind, be proactive!
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 43 / 46
Development Future activities
Bibliography I
Banks, J. (1999).
Introduction to simulation.
In Farrington, P., Nembhard, H. B., Sturrock, D. T., and Evans,
G. W., editors, Proceedings of the 1999 Winter Simulation
Conference, pages 7–13.
Gillespie, D. T. (1977).
Exact stochastic simulation of coupled chemical reactions.
Journal of Physical Chemistry, 81(25):2340–2361.
Klugl, F. and Norling, E. (2006).
Agent-based simulation: Social science simulation and beyond.
Technical report, The Eighth European Agent Systems Summer
School (EASSS 2006), Annecy.
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 44 / 46
Development Future activities
Bibliography II
Parisi, D. (2001).
Simulazioni - La realt`a rifatta al computer.
Societ`a editrice il Mulino.
Slepoy, A., Thompson, A. P., and Plimpton, S. J. (2008).
A constant-time kinetic Monte Carlo algorithm for simulation of large
biochemical reaction networks.
The Journal of Chemical Physics, 128(20):205101+.
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 45 / 46
SAPERE Self-aware Pervasive Service Ecosystems
From Engineer to Alchemist, There and Back Again: An
Alchemist Tale
Danilo Pianini – danilo.pianini@unibo.it
Alma Mater Studiorum—Universit`a di Bologna
Cesena, May 8th, 2012
Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 46 / 46

Mais conteúdo relacionado

Destaque

Gradient-based Self-organisation Patterns of Anticipative Adaptation
Gradient-based Self-organisation Patterns of Anticipative AdaptationGradient-based Self-organisation Patterns of Anticipative Adaptation
Gradient-based Self-organisation Patterns of Anticipative AdaptationDanilo Pianini
 
Software development made serious
Software development made seriousSoftware development made serious
Software development made seriousDanilo Pianini
 
Engineering computational ecosystems (2nd year PhD seminar)
Engineering computational ecosystems (2nd year PhD seminar)Engineering computational ecosystems (2nd year PhD seminar)
Engineering computational ecosystems (2nd year PhD seminar)Danilo Pianini
 
Towards a comprehensive approach to spontaneous self-composition in pervasive...
Towards a comprehensive approach to spontaneous self-composition in pervasive...Towards a comprehensive approach to spontaneous self-composition in pervasive...
Towards a comprehensive approach to spontaneous self-composition in pervasive...Danilo Pianini
 
A Framework to Specify and Verify Computational Fields for Pervasive Computin...
A Framework to Specify and Verify Computational Fields for Pervasive Computin...A Framework to Specify and Verify Computational Fields for Pervasive Computin...
A Framework to Specify and Verify Computational Fields for Pervasive Computin...Danilo Pianini
 
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...Danilo Pianini
 
Engineering Complex Computational Ecosystems (PhD defense)
Engineering Complex Computational Ecosystems (PhD defense)Engineering Complex Computational Ecosystems (PhD defense)
Engineering Complex Computational Ecosystems (PhD defense)Danilo Pianini
 
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...Danilo Pianini
 

Destaque (9)

Gradient-based Self-organisation Patterns of Anticipative Adaptation
Gradient-based Self-organisation Patterns of Anticipative AdaptationGradient-based Self-organisation Patterns of Anticipative Adaptation
Gradient-based Self-organisation Patterns of Anticipative Adaptation
 
Software development made serious
Software development made seriousSoftware development made serious
Software development made serious
 
Engineering computational ecosystems (2nd year PhD seminar)
Engineering computational ecosystems (2nd year PhD seminar)Engineering computational ecosystems (2nd year PhD seminar)
Engineering computational ecosystems (2nd year PhD seminar)
 
Towards a comprehensive approach to spontaneous self-composition in pervasive...
Towards a comprehensive approach to spontaneous self-composition in pervasive...Towards a comprehensive approach to spontaneous self-composition in pervasive...
Towards a comprehensive approach to spontaneous self-composition in pervasive...
 
A Framework to Specify and Verify Computational Fields for Pervasive Computin...
A Framework to Specify and Verify Computational Fields for Pervasive Computin...A Framework to Specify and Verify Computational Fields for Pervasive Computin...
A Framework to Specify and Verify Computational Fields for Pervasive Computin...
 
SAPERE Analysis tools
SAPERE Analysis toolsSAPERE Analysis tools
SAPERE Analysis tools
 
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
Protelis: Practical Aggregate Programming - Symposium on Applied Computing (S...
 
Engineering Complex Computational Ecosystems (PhD defense)
Engineering Complex Computational Ecosystems (PhD defense)Engineering Complex Computational Ecosystems (PhD defense)
Engineering Complex Computational Ecosystems (PhD defense)
 
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...
 

Semelhante a From Engineer to Alchemist, There and Back Again: An Alchemist Tale

Open Source Pharma: Crowd computing: A new approach to predictive modeling
Open Source Pharma: Crowd computing: A new approach to predictive modelingOpen Source Pharma: Crowd computing: A new approach to predictive modeling
Open Source Pharma: Crowd computing: A new approach to predictive modelingOpen Source Pharma
 
Power and sample size calculations for survival analysis webinar Slides
Power and sample size calculations for survival analysis webinar SlidesPower and sample size calculations for survival analysis webinar Slides
Power and sample size calculations for survival analysis webinar SlidesnQuery
 
Evolutionary Symbolic Discovery for Bioinformatics, Systems and Synthetic Bi...
Evolutionary Symbolic Discovery for Bioinformatics,  Systems and Synthetic Bi...Evolutionary Symbolic Discovery for Bioinformatics,  Systems and Synthetic Bi...
Evolutionary Symbolic Discovery for Bioinformatics, Systems and Synthetic Bi...Natalio Krasnogor
 
Bio-cryptoeconomy: Smart Contract Blockchain-based Bio-Nano Repair DACs
Bio-cryptoeconomy: Smart Contract Blockchain-based Bio-Nano Repair DACsBio-cryptoeconomy: Smart Contract Blockchain-based Bio-Nano Repair DACs
Bio-cryptoeconomy: Smart Contract Blockchain-based Bio-Nano Repair DACsMelanie Swan
 
Monte Carlo And Ct Interface For Medical Treatment Plans
Monte Carlo And Ct Interface For Medical Treatment PlansMonte Carlo And Ct Interface For Medical Treatment Plans
Monte Carlo And Ct Interface For Medical Treatment Plansfondas vakalis
 
Modeling MAPK with ODEs and Petri Nets
Modeling MAPK with ODEs and Petri NetsModeling MAPK with ODEs and Petri Nets
Modeling MAPK with ODEs and Petri NetsBiafra Ahanonu
 
Towards the Analysis & Prediction of Complex System Behaviour in SAPERE
Towards the Analysis & Prediction of Complex System Behaviour in SAPERETowards the Analysis & Prediction of Complex System Behaviour in SAPERE
Towards the Analysis & Prediction of Complex System Behaviour in SAPEREAndrea Omicini
 
The Algorithms of Life - Scientific Computing for Systems Biology
The Algorithms of Life - Scientific Computing for Systems BiologyThe Algorithms of Life - Scientific Computing for Systems Biology
The Algorithms of Life - Scientific Computing for Systems Biologyinside-BigData.com
 
Reproducibility in computer-assisted research
Reproducibility in computer-assisted researchReproducibility in computer-assisted research
Reproducibility in computer-assisted researchkhinsen
 
Selecting the best stochastic systems for large scale engineering problems
Selecting the best stochastic systems for large scale engineering problemsSelecting the best stochastic systems for large scale engineering problems
Selecting the best stochastic systems for large scale engineering problemsIJECEIAES
 
Agent-based and Chemical-inspired Approaches for Multicellular Models
Agent-based and Chemical-inspired Approaches for Multicellular ModelsAgent-based and Chemical-inspired Approaches for Multicellular Models
Agent-based and Chemical-inspired Approaches for Multicellular ModelsAndrea Omicini
 
Statistical Mechanics Methods for Discovering Knowledge from Production-Scale...
Statistical Mechanics Methods for Discovering Knowledge from Production-Scale...Statistical Mechanics Methods for Discovering Knowledge from Production-Scale...
Statistical Mechanics Methods for Discovering Knowledge from Production-Scale...Charles Martin
 
Max Welling ChemAI 231116.pptx
Max Welling ChemAI 231116.pptxMax Welling ChemAI 231116.pptx
Max Welling ChemAI 231116.pptxMarco Tibaldi
 
Online learning in estimation of distribution algorithms for dynamic environm...
Online learning in estimation of distribution algorithms for dynamic environm...Online learning in estimation of distribution algorithms for dynamic environm...
Online learning in estimation of distribution algorithms for dynamic environm...André Gonçalves
 
A Systems Approach to the Modeling and Control of Molecular, Microparticle, a...
A Systems Approach to the Modeling and Control of Molecular, Microparticle, a...A Systems Approach to the Modeling and Control of Molecular, Microparticle, a...
A Systems Approach to the Modeling and Control of Molecular, Microparticle, a...ejhukkanen
 
Optimization of Economic Load Dispatch Problem by GA and PSO - A Comparison
Optimization of Economic Load Dispatch Problem by GA and PSO - A ComparisonOptimization of Economic Load Dispatch Problem by GA and PSO - A Comparison
Optimization of Economic Load Dispatch Problem by GA and PSO - A ComparisonIRJET Journal
 

Semelhante a From Engineer to Alchemist, There and Back Again: An Alchemist Tale (20)

Open Source Pharma: Crowd computing: A new approach to predictive modeling
Open Source Pharma: Crowd computing: A new approach to predictive modelingOpen Source Pharma: Crowd computing: A new approach to predictive modeling
Open Source Pharma: Crowd computing: A new approach to predictive modeling
 
Power and sample size calculations for survival analysis webinar Slides
Power and sample size calculations for survival analysis webinar SlidesPower and sample size calculations for survival analysis webinar Slides
Power and sample size calculations for survival analysis webinar Slides
 
Evolutionary Symbolic Discovery for Bioinformatics, Systems and Synthetic Bi...
Evolutionary Symbolic Discovery for Bioinformatics,  Systems and Synthetic Bi...Evolutionary Symbolic Discovery for Bioinformatics,  Systems and Synthetic Bi...
Evolutionary Symbolic Discovery for Bioinformatics, Systems and Synthetic Bi...
 
DEFENSE
DEFENSEDEFENSE
DEFENSE
 
Bio-cryptoeconomy: Smart Contract Blockchain-based Bio-Nano Repair DACs
Bio-cryptoeconomy: Smart Contract Blockchain-based Bio-Nano Repair DACsBio-cryptoeconomy: Smart Contract Blockchain-based Bio-Nano Repair DACs
Bio-cryptoeconomy: Smart Contract Blockchain-based Bio-Nano Repair DACs
 
Monte Carlo And Ct Interface For Medical Treatment Plans
Monte Carlo And Ct Interface For Medical Treatment PlansMonte Carlo And Ct Interface For Medical Treatment Plans
Monte Carlo And Ct Interface For Medical Treatment Plans
 
FinalReport
FinalReportFinalReport
FinalReport
 
Modeling MAPK with ODEs and Petri Nets
Modeling MAPK with ODEs and Petri NetsModeling MAPK with ODEs and Petri Nets
Modeling MAPK with ODEs and Petri Nets
 
Towards the Analysis & Prediction of Complex System Behaviour in SAPERE
Towards the Analysis & Prediction of Complex System Behaviour in SAPERETowards the Analysis & Prediction of Complex System Behaviour in SAPERE
Towards the Analysis & Prediction of Complex System Behaviour in SAPERE
 
The Algorithms of Life - Scientific Computing for Systems Biology
The Algorithms of Life - Scientific Computing for Systems BiologyThe Algorithms of Life - Scientific Computing for Systems Biology
The Algorithms of Life - Scientific Computing for Systems Biology
 
Reproducibility in computer-assisted research
Reproducibility in computer-assisted researchReproducibility in computer-assisted research
Reproducibility in computer-assisted research
 
Selecting the best stochastic systems for large scale engineering problems
Selecting the best stochastic systems for large scale engineering problemsSelecting the best stochastic systems for large scale engineering problems
Selecting the best stochastic systems for large scale engineering problems
 
Agent-based and Chemical-inspired Approaches for Multicellular Models
Agent-based and Chemical-inspired Approaches for Multicellular ModelsAgent-based and Chemical-inspired Approaches for Multicellular Models
Agent-based and Chemical-inspired Approaches for Multicellular Models
 
Statistical Mechanics Methods for Discovering Knowledge from Production-Scale...
Statistical Mechanics Methods for Discovering Knowledge from Production-Scale...Statistical Mechanics Methods for Discovering Knowledge from Production-Scale...
Statistical Mechanics Methods for Discovering Knowledge from Production-Scale...
 
Max Welling ChemAI 231116.pptx
Max Welling ChemAI 231116.pptxMax Welling ChemAI 231116.pptx
Max Welling ChemAI 231116.pptx
 
Retrosynth
RetrosynthRetrosynth
Retrosynth
 
Online learning in estimation of distribution algorithms for dynamic environm...
Online learning in estimation of distribution algorithms for dynamic environm...Online learning in estimation of distribution algorithms for dynamic environm...
Online learning in estimation of distribution algorithms for dynamic environm...
 
hdr-cucugrosjean
hdr-cucugrosjeanhdr-cucugrosjean
hdr-cucugrosjean
 
A Systems Approach to the Modeling and Control of Molecular, Microparticle, a...
A Systems Approach to the Modeling and Control of Molecular, Microparticle, a...A Systems Approach to the Modeling and Control of Molecular, Microparticle, a...
A Systems Approach to the Modeling and Control of Molecular, Microparticle, a...
 
Optimization of Economic Load Dispatch Problem by GA and PSO - A Comparison
Optimization of Economic Load Dispatch Problem by GA and PSO - A ComparisonOptimization of Economic Load Dispatch Problem by GA and PSO - A Comparison
Optimization of Economic Load Dispatch Problem by GA and PSO - A Comparison
 

Mais de Danilo Pianini

Time fluid field-based Coordination
Time fluid field-based CoordinationTime fluid field-based Coordination
Time fluid field-based CoordinationDanilo Pianini
 
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...Danilo Pianini
 
Versioning and License selection
Versioning and License selectionVersioning and License selection
Versioning and License selectionDanilo Pianini
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationDanilo Pianini
 
Enforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automationEnforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automationDanilo Pianini
 
Productive parallel teamwork: Decentralized Version Control Systems
Productive parallel teamwork: Decentralized Version Control SystemsProductive parallel teamwork: Decentralized Version Control Systems
Productive parallel teamwork: Decentralized Version Control SystemsDanilo Pianini
 
Computational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and ChallengesComputational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and ChallengesDanilo Pianini
 
Practical Aggregate Programming with Protelis @ SASO2017
Practical Aggregate Programming with Protelis @ SASO2017Practical Aggregate Programming with Protelis @ SASO2017
Practical Aggregate Programming with Protelis @ SASO2017Danilo Pianini
 
Towards a Foundational API for Resilient Distributed Systems Design
Towards a Foundational API for Resilient Distributed Systems DesignTowards a Foundational API for Resilient Distributed Systems Design
Towards a Foundational API for Resilient Distributed Systems DesignDanilo Pianini
 
Continuous integration and delivery
Continuous integration and deliveryContinuous integration and delivery
Continuous integration and deliveryDanilo Pianini
 

Mais de Danilo Pianini (10)

Time fluid field-based Coordination
Time fluid field-based CoordinationTime fluid field-based Coordination
Time fluid field-based Coordination
 
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...
 
Versioning and License selection
Versioning and License selectionVersioning and License selection
Versioning and License selection
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Enforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automationEnforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automation
 
Productive parallel teamwork: Decentralized Version Control Systems
Productive parallel teamwork: Decentralized Version Control SystemsProductive parallel teamwork: Decentralized Version Control Systems
Productive parallel teamwork: Decentralized Version Control Systems
 
Computational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and ChallengesComputational Fields meet Augmented Reality: Perspectives and Challenges
Computational Fields meet Augmented Reality: Perspectives and Challenges
 
Practical Aggregate Programming with Protelis @ SASO2017
Practical Aggregate Programming with Protelis @ SASO2017Practical Aggregate Programming with Protelis @ SASO2017
Practical Aggregate Programming with Protelis @ SASO2017
 
Towards a Foundational API for Resilient Distributed Systems Design
Towards a Foundational API for Resilient Distributed Systems DesignTowards a Foundational API for Resilient Distributed Systems Design
Towards a Foundational API for Resilient Distributed Systems Design
 
Continuous integration and delivery
Continuous integration and deliveryContinuous integration and delivery
Continuous integration and delivery
 

Último

(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 

Último (20)

(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 

From Engineer to Alchemist, There and Back Again: An Alchemist Tale

  • 1. SAPERE Self-aware Pervasive Service Ecosystems From Engineer to Alchemist, There and Back Again: An Alchemist Tale Danilo Pianini – danilo.pianini@unibo.it Alma Mater Studiorum—Universit`a di Bologna Cesena, May 8th, 2012 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 1 / 46
  • 2. Outline Do or do not, there is no try. 1 Simulation Definitions Models When it’s useful? 2 Alchemist SAPERE background Computational model Engine and architecture Case studies Performance 3 Development Development model Contributors Future activities Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 2 / 46
  • 3. Simulation Simulation Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 3 / 46
  • 4. Simulation Definitions Scientific Method Traditional science workflow [Parisi, 2001] Traditional scientific method identification direct observation theories / hypothesis empirical observation quantitative analysis validation / invalidation Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 4 / 46
  • 5. Simulation Definitions Definition of Simulation A new way for describing scientific theories [Parisi, 2001] Simulation is the process with which we can study the dynamic evolution of a model system, usually through computational tools [Banks, 1999] Simulation is the imitation of the operation of a real-world process or system over time Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 5 / 46
  • 6. Simulation Models Simulation Requires a Model M. Minsky – Models, Minds, Machines A model (M) for a system (S), and an experiment (E) is anything to which E can be applied in order to answer questions about S. Representation / abstraction Formalisation Aggregation, Simplification, Omission Building a model... How complex should be the model? Which assumptions should be done? Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 6 / 46
  • 7. Simulation Models From Model to Simulation. . . Computer simulation Models are designed runnable processes Simulation creates a virtual laboratory controlled conditions it’s easy to modify the experiment (variables, parameters, etc.) Simulations imitate the operations of the modelled process generation of an artificial evolution of the system Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 7 / 46
  • 8. Simulation Models . . . and Back Deductions on the real system represented Evaluation of theories about the model Model validation [Klugl and Norling, 2006] if the data is reliable; if prediction doesn’t match the observed behaviour do not match ⇒ the model must be revised Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 8 / 46
  • 9. Simulation When it’s useful? Why do we Need Simulations? [Parisi, 2001, Klugl and Norling, 2006] The real system cannot actually be observed The time scale of the real system is too small or too large for observation The original system doesn’t yet exist (or not anymore) The system is too complex Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 9 / 46
  • 10. Alchemist Alchemist Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 10 / 46
  • 11. Alchemist SAPERE background The SAPERE Project http://www.sapere-project.eu/ SAPERE (Self-aware Pervasive Service Ecosystems) is an EU STREP project under the FP7 FET Proactive Initiative: Self-Awareness in Autonomic Systems (AWARENESS) The objective of SAPERE is the development of a highly-innovative theoretical and practical framework for the decentralized deployment and execution of self-aware and adaptive services for future and emerging pervasive network scenarios Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 11 / 46
  • 12. Alchemist SAPERE background SAPERE World LSA Space LSA LSALSA LSA eco-law Engine Software services SAPERE Node eco-law activation SAPERE Node SAPERE Node SAPERE Node SAPERE Node SAPERE Node SAPERE Node SAPERE Node SAPERE Node SAPERE Node SAPERE Node Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 12 / 46
  • 13. Alchemist SAPERE background Simulation of a SAPERE environment The role of simulation Emergence cannot be fully designed It’s crazy to deploy a whole ecosystem without any test Fist class abstractions Dynamic environment Different, mobile, communicating nodes Programmability through a set of chemical-like laws Continuous Time Markov Chain (CTMC) model Autonomous agents Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 13 / 46
  • 14. Alchemist SAPERE background Two approaches Classic ABM modelling High flexibility Topology as first-class abstraction Dynamics explicitly modelled No native support for CTMC model Chemical inspired modelling Natively CTMC Very fast and reliable algorithms exist in literature Very limited topology: multicompartment at best Only classic reactions can change the world status: limited flexibility Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 14 / 46
  • 15. Alchemist Computational model Alchemist simulation approach Base idea Start from the existing work with stochastic chemical systems simulation Extend it as needed to reach desired flexibility Goals Full support for Continuous Time Markov Chains (CTMC) Support for differently distributed events (e.g. Triggers) Rich environments, with obstacles, mobile nodes, etc. More expressive reactions Fast and flexible SSA engine Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 15 / 46
  • 16. Alchemist Computational model Enriching the environment description Environment Node Reactions Molecules Alchemist world The Environment contains and links together Nodes Each Node is programmed with a set of Reactions Nodes contain Molecules Each Molecule in a node is described with a Concentration Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 16 / 46
  • 17. Alchemist Computational model Extending the concept of reaction From a set of reactants that combine themselves in a set of products to: Number of neighbors<3 Node contains something Any other condition about this environment Rate equation: how conditions influence the execution speed Conditions Probability distribution Actions Any other action on this environment Move a node towards... Change concentration of something Reaction In Alchemist, every event is an occurrence of a Reaction Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 17 / 46
  • 18. Alchemist Engine and architecture SSA Algorithms Several SSA exist, they follow the same base schema [Gillespie, 1977]: 1 Select next reaction using markovian rates 2 Execute it 3 Update the rates which may have changed Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 18 / 46
  • 19. Alchemist Engine and architecture Do the math: reaction speed Consider a chemical reaction in the form: A + B µ −→ C The probability that this reaction will trigger depends on: 1 Number of molecules A and B: the higher, the higher the probability those molecule will encounter and react 2 µ, a speed coefficient for the reaction We define the propensity of a reaction as its speed in a precise instant of time as aµ = µ[A][B] Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 19 / 46
  • 20. Alchemist Engine and architecture Do the math: next reaction choice If we assume every reaction is a Poisson process, the probability for it to be the next one is: P(next = µ) = ∞ 0 P(µ, τ)dτ = ∞ 0 aµe−τ j aj dτ = aµ j aj Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 20 / 46
  • 21. Alchemist Engine and architecture Do the math: next reaction time We can also compute the next time of occurrence: P(τ)dτ = j P(µ, τ)dτ =   j aj   e−τ j aj dτ j aj = λ −→ λe−λx F(x ≤ t) = t −∞ λe−λx dx = −e−λt t −∞ = e−λt Now, given a uniformly distributed random r, it’s possible to compute it’s equivalent for the desired distribution: e−λt = r ⇒ t = − ln (r) λ Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 21 / 46
  • 22. Alchemist Engine and architecture Existing algorithms Direct method 1 Compute propensity for each reaction 2 Select next reaction probabilistically 3 Execute it Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 22 / 46
  • 23. Alchemist Engine and architecture Existing algorithms A+B→C B+C→D E+G→A D+E→E+F F→D+G Direct method + Dependency graph 1 Compute the dependencies among reactions 2 Compute propensity for each reaction 3 Select next reaction probabilistically 4 Execute it 5 Update propensities only for potentially involved reactions 6 Goto 3 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 23 / 46
  • 24. Alchemist Engine and architecture Existing algorithms Next Reaction 1 Compute a putative execution time for each reaction 2 Store reactions in a binary heap 3 Pick the next reaction 4 Execute it 5 Compute putative times only for potentially involved reactions 6 Goto 3 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 24 / 46
  • 25. Alchemist Engine and architecture Existing algorithms [Slepoy et al., 2008] 1 Compute propensities 2 Split the reactions in groups by their propensity 3 Throw randoms until a reaction in a group is selected 4 Execute it 5 Update propensities only for potentially involved reactions 6 Goto 3 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 25 / 46
  • 26. Alchemist Engine and architecture More flexibility! What they miss is what we added Support for instantaneus events (∞ Markovian rate) Reactions can be added and removed during the simulation Support for non-exponential time distributed events (e.g. triggers) Dependencies among reactions are evaluated considering their “context”, speeding up the update phase Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 26 / 46
  • 27. Alchemist Engine and architecture Smart data structures ⇒ bleeding edge performances 2.0 4 4 3.7 1 7.3 2 1 5.5 1 0 2 8.9 1 0 4.2 0 0 9.1 0 0 10.1 0 0 inf 0 0 A+B→C B+C→D E+G→A D+E→E+F F→D+G Next Reaction efficient structures made dynamic Dynamic Indexed Priority Queue Allow to access the next reaction to execute in O(1) time Worst case update in log2 (N) (average case a lot better) Extended to ensure balancing with insertion and removal Dynamic Dependency Graph Allows to smartly update only a subset of all the reaction Extended with the concept of input and output context Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 27 / 46
  • 28. Alchemist Engine and architecture Modular structure Environment User Interface Alchemist language Application-specific Alchemist Bytecode Compiler Environment description in application-specific language Incarnation-specific language Reporting System Interactive UI Reaction Manager Dependency Graph Core Engine Simulation Flow Language Parser Environment Instantiator XML Bytecode Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 28 / 46
  • 29. Alchemist Engine and architecture Some Features in short Parallel executor Approximate Stochastic Model Checker Parallelised engine Alchemist2Blender PVeStA integration Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 29 / 46
  • 30. Alchemist Case studies Crowd evacuation EXIT 1 EXIT 2 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 30 / 46
  • 31. Alchemist Case studies Crowd steering Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 31 / 46
  • 32. Alchemist Case studies Adaptive Displays Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 32 / 46
  • 33. Alchemist Case studies Simple Morphogenesis proof of concept Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 33 / 46
  • 34. Alchemist Case studies Morphogenesis of a Drosophila Melanogaster Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 34 / 46
  • 35. Alchemist Case studies Anticipative adaptation 0 5 10 15 20 25 30 35 40 45 0 5 10 15 20 25 30 35 40 45 0 10 20 30 40 50 60 'datald.log' using 2:3:4 0 10 20 30 40 50 60 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 35 / 46
  • 36. Alchemist Case studies Realistic pedestrians see the video... Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 36 / 46
  • 37. Alchemist Performance Testbed We realised the same crowd-steering application for both Alchemist and RePast, in order to evaluate the performance gap (if any) Source code for RePast and standalone Alchemist application available at http://www.apice.unibo.it/xwiki/bin/view/Alchemist/JOS We choose a simplified use case which allows simulation in RePast without any change in its engine This actually cripples out the most important Alchemist optimization for complex environment (the dependency graph) Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 37 / 46
  • 38. Alchemist Performance Results 0 50 100 150 200 250 300 350 400 450 500 50 100 150 200 250 300 350 400 450 500 Executiontime[s] Number of agents Performance comparison with Repast Repast Alchemist Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 38 / 46
  • 39. Development Development Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 39 / 46
  • 40. Development Development model Distributed development Alchemist is a training ground for some good team development practices Linux kernel-like development model Java XText Mercurial DCVS Bitbucket web-based code hosting Maven JUnit Source is released under GPL Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 40 / 46
  • 41. Development Contributors People involved Michele Bombardi (Done) Realistic pedestrians Chiara Casalboni (Done) Realistic pedestrians Francesca Cioffi (Done) Further experiments with Alchemist-SAPERE Davide Ensini (Done) Approximate Stochastic Model Checker improvement Enrico Galassi (Done) Alchemist-SAPERE high level language Enrico Gualandi (Ongoing) Alchemist-SAPERE languages review Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 41 / 46
  • 42. Development Contributors People involved Luca Mella (Done) Tools for social network analysis Alessandro Montalti (Done) MS-BioNet to AlchemistXML translator Luca Nenni (Done) Alchemist2Blender Enrico Polverelli (Done) Gradient based patterns Michele Pratiffi (Done) Image importer for Alchemist Giacomo Pronti (Done) SAPERE incarnation main author Luca Ricci (Ongoing) Map importer for Alchemist Andrea Vandin (IMT Lucca) PVeStA integration Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 42 / 46
  • 43. Development Future activities There is a lot of work to do! MS-Bionet compatibility layer AlcheGRID Alchemist2Blender improvement OpenStreet Map importer and Google Map importer Blender Integration improvement Gnuplot integration CellML / SBML to AlchemistXML Chemistry Incarnation review Alchemist for Bio DSL Realistic biological gradients GPX tracks loader RDF to Alchemist-SAPERE translator These are examples, if you have something in mind, be proactive! Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 43 / 46
  • 44. Development Future activities Bibliography I Banks, J. (1999). Introduction to simulation. In Farrington, P., Nembhard, H. B., Sturrock, D. T., and Evans, G. W., editors, Proceedings of the 1999 Winter Simulation Conference, pages 7–13. Gillespie, D. T. (1977). Exact stochastic simulation of coupled chemical reactions. Journal of Physical Chemistry, 81(25):2340–2361. Klugl, F. and Norling, E. (2006). Agent-based simulation: Social science simulation and beyond. Technical report, The Eighth European Agent Systems Summer School (EASSS 2006), Annecy. Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 44 / 46
  • 45. Development Future activities Bibliography II Parisi, D. (2001). Simulazioni - La realt`a rifatta al computer. Societ`a editrice il Mulino. Slepoy, A., Thompson, A. P., and Plimpton, S. J. (2008). A constant-time kinetic Monte Carlo algorithm for simulation of large biochemical reaction networks. The Journal of Chemical Physics, 128(20):205101+. Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 45 / 46
  • 46. SAPERE Self-aware Pervasive Service Ecosystems From Engineer to Alchemist, There and Back Again: An Alchemist Tale Danilo Pianini – danilo.pianini@unibo.it Alma Mater Studiorum—Universit`a di Bologna Cesena, May 8th, 2012 Danilo Pianini (UniBo) An Alchemist Tale Cesena, May 8th, 2012 46 / 46