Résolution de problèmes par émergence








télécharger 0.83 Mb.
titreRésolution de problèmes par émergence
page3/31
date de publication01.07.2017
taille0.83 Mb.
typeSolution
ar.21-bal.com > documents > Solution
1   2   3   4   5   6   7   8   9   ...   31

Description de l'idée de "programmation émergente"


Dans son concept le plus général, la programmation émergente est l'assemblage d'instructions d'un langage de programmation via des mécanismes non explicitement informés du programme à créer. Si l'on considère que, pour un programmeur, produire un programme revient à trouver quelles instructions assembler, et dans quel ordre précis, alors il s'agit en fait de parcourir l'espace de recherche constitué par l'ensemble des programmes possibles jusqu'à obtenir le bon. Or si ce parcours est aisé quand le programmeur a une connaissance précise du programme qu'il souhaite obtenir, il devient de plus en plus difficile au fur et à mesure que la complexité du programme croît, ou que sa connaissance de la tâche à réaliser par le programme devient imprécise ou incomplète.

Ne sommes-nous pas alors capables de réaliser un système informatique effectuant le parcours dans l'espace des programmes possibles à la place du programmeur ?
      1. Un système multi-agent pour la programmation émergente


Le problème est ici abordé concrètement par un système multi-agent adaptatif, basé sur les mécanismes d'auto-organisation coopératifs décrits par la théorie AMAS (Adaptive Multi-Agent System). Cette théorie en cours de développement par l'équipe de recherche au sein de laquelle s'est déroulée cette thèse (et à laquelle elle contribue) est décrite dans ce document et se présente comme un guide permettant de donner aux agents la capacité de se réorganiser afin de tendre à tout moment vers des interactions coopératives entre eux et avec l'environnement. Elle indique alors qu'un état coopératif pour l'intégralité du système implique l'adéquation fonctionnelle de ce système, i.e. qu'il produit un comportement qui satisfait les contraintes imposées par les parties du système, comme par l'environnement.

Dans ce contexte, nous définissons un agent comme une instruction du langage de programmation. En fonction du type de l'instruction qu'il représente, l'agent possède des compétences spécifiques qu'il va utiliser pour interagir avec d'autres agents-instructions. Un programme complet est alors représenté par une organisation donnée des agents-instructions au sein de laquelle chaque agent possède des partenaires dont il reçoit des données et à qui il en envoie. Le pendant de l'exécution d'un programme classique est ici l'activité du système multi-agent lors de l'échange de données entre agents.

Dès lors nous voyons apparaître toute la puissance de l'idée : une organisation donnée code un programme donné, et de fait, changer l'organisation modifie le programme final. Il s'agit alors pour les agents de se réorganiser en fonction des nécessités de l'environnement pour tendre à tout moment vers le programme adéquat, la fonction globale adéquate. Dans le principe, nous obtenons un système capable de parcourir l'espace des programmes possibles à la place du programmeur. Tout repose sur l'efficacité du parcours à atteindre l'organisation produisant la fonction adéquate.

Une partie importante de ce travail de thèse se concentre donc sur l'exploration des mécanismes d'auto-organisation qui permettent aux agents, en fonction de contraintes mais sans pour autant connaître l'organisation à atteindre (puisqu'inconnue, justement, pour les problèmes traités), de progresser vers elle.
      1. Un environnement de néo-programmation


Le système ne peut se constituer ex nihilo, d'autant plus que nous voulons obtenir des fonctionnalités de haut niveau. A l'image du programmeur au travers de son environnement de programmation classique, le néo-programmeur influera sur le système en devenir, dans un premier temps, au travers d'un environnement de néo-programmation. Il s'agit simplement de lui fournir les outils lui permettant de modeler l'environnement du système multi-agent afin que cet environnement contraigne le système vers la fonction souhaitée. On peut alors considérer que le néo-programmeur sera lui-même l'environnement du système.

Mais l'environnement de néo-programmation aura certainement besoin d'être plus qu'une simple enveloppe pour le système en devenir. Il faudra certainement lui intégrer des outils d'observation de l'évolution du système, des moyens d'influencer cette évolution, d'influer sur les types d'agents, sur les proportions, sur certains aspects de la structure. De plus, un programme complexe peut généralement être vu comme un ensemble modulaire, et le néo-programmeur pourra être amené à vouloir influencer la structure modulaire du système, soit en manipulant des sortes de "briques", chacune étant constituée par un système de programmation émergente, soit en laissant ces "briques" s'auto-organiser à l'image de leurs constituants.
      1. Le néo-système produit


Au final, nous obtiendrions un système capable non seulement de "trouver" le moyen de réaliser la fonction adéquate, mais également de s'adapter continuellement à l'environnement au sein duquel il est plongé, de répondre à la nature fortement dynamique et imprévisible des environnements réels, et tout ceci en présentant une grande robustesse. En effet, le système serait capable de changer à tout moment sa structure interne et donc la fonction produite, ou même se rajouter des instructions pour pallier une destruction partielle de son intégrité, ou pour se doter de nouvelles compétences.
      1. Ma contribution à la programmation émergente


Le travail présenté dans ce document montre la faisabilité du concept de programmation émergente en spécifiant un noyau consacré à un sous-ensemble du calcul mathématique, puis en le soumettant à expérimentation. Pour cela, un environnement a été implémenté : EPE (Emergent Programming Environment ou Environnement de Programmation Emergente). Les expérimentations sont alors analysées et viennent enrichir les mécanismes d'auto-organisation des agents-instructions. La description détaillée de ces mécanismes qui permettent l'émergence de la fonction adéquate constitue une part importante de ce document.
1   2   3   4   5   6   7   8   9   ...   31

similaire:

Résolution de problèmes par émergence iconRésolution de problèmes

Résolution de problèmes par émergence iconRésolution des problèmes techniques liés au chantier

Résolution de problèmes par émergence iconInstallation logiciels et résolution des problèmes
«Exception e convert error dans le module sismolog exe à 00008 e 19/12/1990 n’est pas une date correcte»

Résolution de problèmes par émergence iconBibliographie La pédagogie par situations-problèmes est aujourd'hui...

Résolution de problèmes par émergence iconDe beaubourg à la république, en passant par le temple; L’Émergence de "la sociale"

Résolution de problèmes par émergence iconPar delà les industries culturelles, l’émergence du capitalisme culturel

Résolution de problèmes par émergence iconMéthodologie de mise en œuvre et problèmes posés par la première application de la réforme 2005

Résolution de problèmes par émergence iconI. presentation de l'homme
«d'avoir des problèmes sur le chantier», ce qui peut se résumer par le tableau suivant

Résolution de problèmes par émergence iconRésumé Le vote par Internet est aujourd’hui une réalité en cours...

Résolution de problèmes par émergence iconEssai sur L’Esprit de l’Azerbaïdjan
«dépassés» par les océans et ceux-ci par l’espace interplanétaire et bientôt intersidéral a donné lieu à l’émergence d’une civilisation...








Tous droits réservés. Copyright © 2016
contacts
ar.21-bal.com