S-CUBE LP: The Chemical Computing model and HOCL Programming
-
Upload
virtual-campus -
Category
Technology
-
view
484 -
download
3
description
Transcript of S-CUBE LP: The Chemical Computing model and HOCL Programming
www.s-cube-network.eu
S-Cube Learning Package
The Chemical Computing model and HOCL Programming
INRIA, CNR, SZTAKI
Zsolt Németh, SZTAKI
Learning Package Categorization
S-Cube
Service Infrastructure
Multi-level and self-adaptation
Supporting adaptation of
service-based applications
Learning Package Overview
The vision of chemical computing
Gamma
The γ-calculus
The Higher Order Chemical Language
Problem statement and motivation
Most algorithms are sequential even if the problem solving is
inherently parallel
Many algorithms are expressed in a cumbersome way
Declarative vs. imperative style of programming
Clear mathematical model for defining semantics
mxset: m:=a[1]
i:=1
*{i<n →
i:= i+1
m:=max(m, a[i])}
mxset: if tail(l)=nil
then head(l)
else max(head(l),mxset(tail(l)))
Notion of chemical computing
Solution
Data
Procedure
Notion of chemical computing
Why chemical
Concise problem description
Locality
– decisions on actual and timely conditions
– decisions on partial information
Self-evolving, autonomic, adaptive behaviour
Inherently parallel and concurrent
Highly dynamic
Coordinating problems
– large number of entities
– changing conditions
Beware! This model is not computational chemistry!
A large class of problems in SOA require unconventional approaches
– service composition, service coordination, service adaptation, workflow, etc.
Learning Package Overview
The vision of chemical computing
Gamma
The γ-calculus
The Higher Order Chemical Language
GAMMA
GAMMA (General Abstract Model for Multiset Manipulation)
multiset M
R(x1, x2,…xn) guard
A(x1, x2,…xn) action
(Ri, Ai) reaction
replace (x1, x2,…xn) in M
if R(x1, x2,…xn)
by A(x1, x2,…xn)
a large set of problems expressed in a concise way
– prime search, sorting, string processing, geometric problems, graph
algorithms, process control, etc.
GAMMA
The first language to capture the notion of chemical
programming
Now of merely historic value
Based on the idea of GAMMA
– the γ-calculus
- different of GAMMA
- higher order
- reaction rules = active molecules, part of the solution
- active molecules vanish in reactions
– Higher Order Chemical Language
- a language based on the γ-calculus
Learning Package Overview
The vision of chemical computing
Gamma
The γ-calculus
The Higher Order Chemical Language
The -calculus
captures the chemical notion
a declarative, functional formalism
inherently concurrent, indeterministic model of computation
shows similarities to the λ-calculus
1 2
7
5
8
γx,y.x+y
The -calculus
basic data structure: multiset (chemical solution)
– passive molecules: booleans, integers, tuples, naming molecules
– active molecules: -abstraction
reaction: an active molecule captures others and transforms
execution: perform reactions until a stable (inert) chemical solution is resulted
reactions are independent concurrent and indeterministic
1 2
7
5
8
2
7 8
6
2
7 8
γx,y.x+y
γx,y.x+y
1 5
Active molecules: -abstraction
P.M
– P is a pattern that selects elements for the reaction (head)
– M is the action (body)
– capture x and replace by its square: x . x*x
Conditional reactions: PC.M
– C is a condition; the reaction takes place if C is true
– capture x and if positive, replace by its square root: x x>0 . sqr(x)
Active molecules: -abstraction
Atomic capture: x1,x2,…xn.M
– a single reaction may capture multiple molecules
– capture x,y and replace them by their sum: x,y . x+y
Reaction: active molecules capture other molecules
– formal parameters are substituted in the body
– notion of free and bound variables
– x.M, N → M[x:=N]
– x,y . x+y, 2, 3 → 2+3
– 2, x,y . x+y, 3 → 2+3
– 3, 2, x,y . x+y → 2+3
– x,y . x.x+y, 2, 3 → x.x+2
– x,y . x.x+y, 2, 3 → x.x+3
The -calculus
-terms are
– Commutative: M1,M2≡M2,M1
– Associative: (M1,M2),M3≡M1,(M2,M3)
– Realize Brownian motion
Reactions
– Locality: if M1→M2, then M,M1→M,M2
– Solution: if M1→M2, then <M1>→<M2>
1 2
7
5
8
γx,y.x+y
1
2 7
5
8 γx,y.x+y
1
2 7
5
8 γx,y.x+y
5 7
3 γx.x*x
6
Learning Package Overview
The vision of chemical computing
Gamma
The γ-calculus
The Higher Order Chemical Language
A chemical language: HOCL
• Higher Order Chemical Language (HOCL)
• Higher order: active molecules (procedures)
– capture other active molecules
– produce other active molecules
• Multiset rewriting
• Program: solution of atoms
• < A1, A2, …An>
HOCL
• replace P by M if C in <>
– P: pattern, captured molecules
– M: action, produced molecules
– C: condition
max = replace x,y by x if x ≥ y in
<1, 2, 3, 4, 5, 6, 7, 8, 9, max>
primes = replace x,y by y if x div y in
<1, 2, 3, 4, 5, 6, 7, 8, 9, primes>
HOCL execution
max = replace x,y by x if x ≥ y in <1, 2, 3, 4, 5, 6, 7, 8, 9, max>
<1, 2, 3, 4, 5, 6, 7, 8, 9, max>
<1, 3, 4, 5, 6, 7, 8, 9, max>
<1, 3, 4, 5, 6, 8, 9, max>
<1, 4, 5, 6, 8, 9, max>
<4, 5, 6, 8, 9, max>
<4, 6, 8, 9, max>
<6, 8, 9, max>
<8, 9, max>
<9, max>
The Dutch flag example
let r = replace <i,red>,<j,white> by <i,white>,<j,red> if i>j in
let w = replace <i,white>,<j, blue> by <i, blue>,<j,white> if i>j in
let b = replace <i,red>,<j,blue> by <i,blue>,<j,red> if i>j in
<<1,blue>,<2,white>,<3,white>,<4,red>,<5,blue>,<6,white>,r,w,b>
blue
white
red 3
6
2
5
4
1
white
blue
white
b w
r
References
Jean-Pierre Banatre and Daniel LeMetayer. Programming by multiset transformation. Commun. ACM,
36(1):98–111, 1993.
Jean-Pierre Banatre, Pascal Fradet, and Yann Radenac. Generalized multisets for chemical programming.
Math. Struct. in Comp. Science, 16:557–580, 2006.
Jean-Pierre Banatre, Pascal Fradet, and Yann Radenac. Programming self-organizing systems with the
higher-order chemical language. International Journal of Unconventional Computing, 3(3):161–177, 2007
Acknowledgements
The research leading to these results has
received funding from the European
Community’s Seventh Framework
Programme [FP7/2007-2013] under grant
agreement 215483 (S-Cube).