C'est marrant, il y a pas mal d'idée que j'ai défini il y a quelques temps, suite à mon histoire de sous-marin.
Je l'avais à l'époque conçu comme une extension à lisaac (et j'en cherchais les axiomes pour savoir comment modifier le compilo) mais j'ai envie de travailler un peu moin superficiellement dedans et de voir un plus loin et profondément sa conception pour intégrer des choses radicalement nouvelles comme le fait de dépasser les grammaires LR, LL pour inégrer un embryon d'analyse grammatical un peu plus proche des langages naturels avec un espèce de pigdin (un parler "petit nègre") ou un agent demande aux autres "Toi donner moi pièce d'or".
Il s'agirai de construire le graphe grammatical de la phrase et ensuite d'en interpréter le sens.
Je recopie les spécifs que j'avais couche sur le papier à l'époque (il y a 2 mois) :
- Envoi de messages point à multipoints. Les messages peuvent être envoyés nominativement par leur adresse email ou par des conditions sur leur propriétés ontologiques (voir ontologie, arborescence de données). La syntaxe de l'entête message est le même qu'une entête de fonction lisaac. On propose un mécanisme à la XSL qui permet de définir des conditions fines d'agents éligibles à la reception du message.
- Arborescence de données, non explicitement ontologique au début, mais changera un jour. Il s'agit de définir une arborescence de données, un cousin syntaxique de XML. On pourra lancer des requêtes de calcul sur ces données.
- Possibilité de choisir entre asynchronisme et synchronie.
- Possibilité de choisir entre message express et message ordinaire, le premier permettant d'interrompre une tâche de l'agent à n'importe quel moment pour traiter le message.
L'agent peut posséder quelques fonctions qui définissent l'entretien de la tâche de l'agent. Une sorte de trigger, autonome, s'exécutant régulièrement ou tout le temps pour maintenir l'« organisme » de l'agent. On pourra définir une politique d'exécution spécifiant par exemple que tel fonction s'exécute 16 fois par secondes, ou que tel message doit être envoyé si un paramètre de l'arborescence est modifié, atteint une certaine valeur, ensemble de valeur, etc... L'agent « Bateau ennemi », si sa position s'approche d'un certain rayon de 30 pixels, envoi un message à la base pour demander procédure réparation, l'agent modifie son comportement en tâche de fond vers un processus d'amarage à la base. On peut définir une IA. On peut définir plusieurs comportement et même réinitialiser les agent pour marquer un nouveau comportement, une nouvelle nature (agents transformer par exemple... *joke)
- On défini le « ring » qui est un groupe de systèmes multi-agent (SMA) ayant la faculté de s'échanger un message. On peut définir n ring. A creuser : Est-ce qu'on autorise l'échange de messages inter ring et là je vois pas l'intérêt du ring, ou alors habiller le concept, ou est-ce qu'on limite à l'appel objet classique ? Ou à la limite on interdit l'envoi de messages express. C'est l'idée que les communautés doivent négocier entre elles, sans s'interrompre. Un ring est l'association de toutes les arborescences de ses agents, il est lui même un agent qui peut trouver sa place dans un autre ring. C'est le principes des SMA dans lesquel un SMA peut être lui même un agent d'un autre SMA récursivement.
- Un service de mail avec adresses du type « identite@typeagent.ring ». Gère la file d'attente des messages ordinaires et express(on vide la file d'attente des express en priorité, puis celle des messages ordinaires), la gestion de l'historique (c'est l'idée que les messages peuvent consituer une database dans laquelle on peut puiser), l'horodatage. Voir feuille
section INIT pour gérer les != réinitialisations si changement de comportement
- Concurrence : possibilité de contraindre l'exécution d'un block à une limite de temps.
Pour gérer les messages express, il faut une gestion de thread temps réel, c'est mieux. Et on aimerai l'intégrer dans l'IsaacOS.
Après il faut que j'y réfléchisse, et il faut que j'en discutte avec des linguistes.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Système multi-agents (SMA)
Posté par Ontologia (site web personnel) . En réponse au journal Repenser les langages et le développement logiciel. Évalué à 1.
Je l'avais à l'époque conçu comme une extension à lisaac (et j'en cherchais les axiomes pour savoir comment modifier le compilo) mais j'ai envie de travailler un peu moin superficiellement dedans et de voir un plus loin et profondément sa conception pour intégrer des choses radicalement nouvelles comme le fait de dépasser les grammaires LR, LL pour inégrer un embryon d'analyse grammatical un peu plus proche des langages naturels avec un espèce de pigdin (un parler "petit nègre") ou un agent demande aux autres "Toi donner moi pièce d'or".
Il s'agirai de construire le graphe grammatical de la phrase et ensuite d'en interpréter le sens.
Je recopie les spécifs que j'avais couche sur le papier à l'époque (il y a 2 mois) :
- Envoi de messages point à multipoints. Les messages peuvent être envoyés nominativement par leur adresse email ou par des conditions sur leur propriétés ontologiques (voir ontologie, arborescence de données). La syntaxe de l'entête message est le même qu'une entête de fonction lisaac. On propose un mécanisme à la XSL qui permet de définir des conditions fines d'agents éligibles à la reception du message.
- Arborescence de données, non explicitement ontologique au début, mais changera un jour. Il s'agit de définir une arborescence de données, un cousin syntaxique de XML. On pourra lancer des requêtes de calcul sur ces données.
- Possibilité de choisir entre asynchronisme et synchronie.
- Possibilité de choisir entre message express et message ordinaire, le premier permettant d'interrompre une tâche de l'agent à n'importe quel moment pour traiter le message.
L'agent peut posséder quelques fonctions qui définissent l'entretien de la tâche de l'agent. Une sorte de trigger, autonome, s'exécutant régulièrement ou tout le temps pour maintenir l'« organisme » de l'agent. On pourra définir une politique d'exécution spécifiant par exemple que tel fonction s'exécute 16 fois par secondes, ou que tel message doit être envoyé si un paramètre de l'arborescence est modifié, atteint une certaine valeur, ensemble de valeur, etc... L'agent « Bateau ennemi », si sa position s'approche d'un certain rayon de 30 pixels, envoi un message à la base pour demander procédure réparation, l'agent modifie son comportement en tâche de fond vers un processus d'amarage à la base. On peut définir une IA. On peut définir plusieurs comportement et même réinitialiser les agent pour marquer un nouveau comportement, une nouvelle nature (agents transformer par exemple... *joke)
- On défini le « ring » qui est un groupe de systèmes multi-agent (SMA) ayant la faculté de s'échanger un message. On peut définir n ring. A creuser : Est-ce qu'on autorise l'échange de messages inter ring et là je vois pas l'intérêt du ring, ou alors habiller le concept, ou est-ce qu'on limite à l'appel objet classique ? Ou à la limite on interdit l'envoi de messages express. C'est l'idée que les communautés doivent négocier entre elles, sans s'interrompre. Un ring est l'association de toutes les arborescences de ses agents, il est lui même un agent qui peut trouver sa place dans un autre ring. C'est le principes des SMA dans lesquel un SMA peut être lui même un agent d'un autre SMA récursivement.
- Un service de mail avec adresses du type « identite@typeagent.ring ». Gère la file d'attente des messages ordinaires et express(on vide la file d'attente des express en priorité, puis celle des messages ordinaires), la gestion de l'historique (c'est l'idée que les messages peuvent consituer une database dans laquelle on peut puiser), l'horodatage. Voir feuille
section INIT pour gérer les != réinitialisations si changement de comportement
- Concurrence : possibilité de contraindre l'exécution d'un block à une limite de temps.
Pour gérer les messages express, il faut une gestion de thread temps réel, c'est mieux. Et on aimerai l'intégrer dans l'IsaacOS.
Après il faut que j'y réfléchisse, et il faut que j'en discutte avec des linguistes.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker