Linda - Université de Montréal

Transcription

Linda - Université de Montréal
Langages de coordination
Etude de cas : Linda et CoLa
Béat Hirsbrunner, prof. invité
IRO, Université de Montréal,Canada
[email protected]
Adresse permanente:
Béat Hirsbrunner, prof.
DIUF, Université de Fribourg, Suisse
[email protected]
www-iiuf.unifr.ch/pai
Contenu
♦ 1. Linda
♦ 2. CoLa
♦ Références:
♦ Linda: David Gelernter, Nicolas Carriero: “Coordination Languages and
their Significance” . Communications of the ACM, vol. 35, n° 2, February
1992, pp. 97-107.
♦ CoLa: Marc Aguilar, Michèle Courant, Béat Hirsbrunner: “Le défi des
architectures parallèles à l’IA: La dimension collective de l’intelligence”; in
Series in Computer Science, University of Fribourg, vol 3, 1994.
2
Linda - Opérations
♦ Rajout d’un tuple
♦ out(t)
♦ eval(t)
♦ Retrait d’un tuple
♦ in(a)
♦ inp(a)
♦ Lecture d’un tuple
♦ rd(a)
♦ rdp(a)
3
Exemple 1: Calcul des nombres premiers
n
♦
♦
♦
♦
♦
♦
♦
♦
♦
% création de n-1 tuples de processus,
% un par nombre entier ≤ n
for i := 2 to n do
eval("nombre premier", i, est_premier(i));
end for;
% lecture des nombres premiers ≤ n
for i := 2 to n do
rd("nombre premier", i, ? ok);
end for;
4
Exemple 1: Calcul des nombres premiers
n
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
% définition de la procédure est_premier
procedure est_premier(i:integer) : boolean;
var j: integer;
begin
for j := 2 to sqrt(i) do
rd("nombre premier", j, ? ok);
if ok and (i mod j = 0) then
return false
end if;
end for;
return true;
end est_premier;
5
Exemple 2 : Problème des philosophes
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
♦
% création de n baguettes, n philosophes et
% n-1 tickets
for i := 1 to n do
out("baguette", i);
eval(philosophe(i));
if i < n then out("ticket") end if;
end for;
% définition d'un philosophe
procedure philosophe(i:integer);
begin
loop forever
penser;
in("ticket");
in("baguette", i);
in("baguette", (i+1) div n);
manger;
out("baguette", i);
out("baguette", (i+1) div n);
out("ticket");
end loop;
6
CoLa : Champs de vision
♦
Agent A
champ de vision
points de vue
correspondants
7
CoLa : Structure d’un message
diffuseur, filtre
descripteur
corps
8
CoLa : exemple de communication
♦ Par courrier électronique le professeur X souhaite le
bonjour à ses deux assistants Ax et Ay et leur demande
d'informer oralement tous les étudiants de s'annoncer
chez lui.
9
CoLa : exemple de communication
♦ Par courrier électronique le professeur X souhaite le
bonjour à ses deux assistants Ax et Ay et leur demande
d'informer oralement tous les étudiants de s'annoncer
chez lui.
♦ Diffuseur 1 :
♦ Diffuseur 2 :
courrier électronique
oralement
10
CoLa : exemple de communication
♦ Par courrier électronique le professeur X souhaite le
bonjour à ses deux assistants Ax et Ay et leur demande
d'informer oralement tous les étudiants de s'annoncer
chez lui.
♦
♦
♦
♦
Descripteur 1
"de qui"
"à qui" (point de vue direct)
"méthode de traitement du corps 1"
professeur X
{Assistant Ax, Assistant Ay}
lire l'information du corps 1
♦
♦
♦
♦
Descripteur 2
"de qui"
"à qui" (point de vue indirect)
"méthode de traitement du corps 2"
{Assistant Ax, Assistant Ay}
Etudiants
envoyer le corps 2 aux étudiants
11
La boucle est bouclée et le cours est fini !
♦ Protocoles XYZ, sans oublier ZYX
♦
♦
♦
♦
Ubiquitous computing
Systèmes multi-agents
KQML
Structures multi-niveaux:
♦ PCAM
♦ Calcul + Contrôle
♦ Calcul + Coordination
♦ Localité + Semi-localité (local + glocal)
♦…
♦ Quant sera-t-il à l’aire des ordinateurs organiques ?
12