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