Ressource
Enseignement supérieur . Ressources et supports scolaires . Article ou présentation . dynamique . programmation dynamique . TIPE . organisation . complexité« Structures : organisation, complexité, dynamique » des mot-clés au sens inattendu
Ces quatre mots-clés forment donc le thème des travaux d’initiative personnelle encadrés (TIPE 2015-2016) que les futurs ingénieur-e-s vont réaliser cette année 2015-2016 en classes préparatoires aux grandes écoles.
Au niveau des sciences informatiques et mathématiques, ces sciences qui ont fait le numérique, ces mots ont des sens précis, et peut-être inattendus.
Complexité: Ainsi si le terme de complexité a un sens très précisément défini. En science informatique, il y a :
-
une théorie de la complexité qui étudie la quantité de ressources (en temps et en espace) nécessaire pour la résolution de problèmes au moyen de l’exécution d’un algorithme ; Ainsi, on dira d’un algorithme qu’il a une “complexité élevée” non pas parce qu’il est compliqué à comprendre, mais parce qu’il demande un grand nombre d’opérations quand il s’exécute sur une machine pour une instance du problème.
-
une mesure de complexité d’un message ou d’une information qui est complètement formalisée.
C’est la forme “algorithmique”, de cette mesure de l’information, dite de Kolmogorov, plus liées aux sciences informatiques.
Il y aussi une forme “probabiliste”, de Shannon, qui fonde une théorie de l’information plus mathématique.
On voit donc que la notion de complexité s’applique à la fois aux données et aux traitements sur ces données. Beaucoup d’idées de sujets peuvent être liées à ce volet du thème, considérer un problème, proposer un algorithme et regarder comment étudier sa complexité. Ou encore trouver ou étudier des applications, elles sont nombreuses à la mesure de complexité algorithmique ou probabiliste.
Dynamique: De même, le terme de dynamique a certes des sens multiples, mais il se rapporte aussi à des notions pointues et passionnantes.
-
Celle de système dynamique, où des systèmes complètement différents (biologiques, mécaniques, sociaux, …) vont être étudiés du point de vue de leur évolution pour révéler leur comportement général (stable, cyclique, chaotique, …), y compris pour étudier le cerveau.
Notons que l’expression « dynamique des systèmes » n’a pas le même sens pour un automaticien que cette notion de « théorie des systèmes dynamiques », issue de la physique : en automatique, on parle bien de « théorie des systèmes », ce qui désigne effectivement autre chose.
-
Celle de la programmation dynamique, qui est une des méthodes les plus fructueuses pour résoudre des problèmes d’optimisation, dès que le problème est composé de plusieurs sous-problèmes de même nature qui se cumulent. Elle s’utilise aussi au niveau des jeux dynamiques (à la croisée de la théorie des jeux et de la recherche opérationnelle). Ce sont des expressions assez bien circonscrites.
-
Il y a aussi, dans un domaine complètement différent, les langages de programmation dynamique, qui vont au cours de leur propre exécution permettre d’analyse le code informatique en train de s’exécuter : étendre le code initial, modifier le type des données, bref faire l’introspection du programme lui-même. C’est essentiel : ce qui fait la puissance des ordinateurs et qui en fait des calculateurs universels est justement cette capacité à faire évoluer son propre programme. Donc : attention à ne pas confondre tous ces termes, si proches !
Ce volet du sujet permet d’aborder la modélisation, l’étude et la simulation de toute sorte de systèmes, dynamiques justement, que ce soit au cœur des humains, ou avec des bactéries, les interactions proies/prédateurs des populations animales, ou la modélisation des procédés biologiques de dépollution. On pourra y utiliser des équations différentielles, et plusieurs autres points du programme.
Organisation: L‘organisation est aussi une notion très naturellement liée aux sciences du numérique, sans être un terme technique fixé. Cette omniprésence de la notion d’organisation s’explique par un besoin de structuration pour créer des machines, des systèmes et des logiciels.
Mettre en place un réseau de communication, par exemple, fait appel à la théorie des graphes pour optimiser les connexions ou pour éviter qu’une panne sur une partie du réseau ne le mette en danger dans sa globalité.
De même au niveau des machines, leur architecture et l’organisation du système d’exploitation sont de grands exemples d’organisation permettant de contrôler la complexité du système à faire fonctionner.
À un autre niveau, les langages de programmation orientés objets sont des paradigmes qui permettent de proposer une organisation du code informatique particulièrement performante pour développer de manière stable et robuste de grands logiciels.
De la dynamique à l’organisation : on peut évoquer les automates cellulaires. Ce sont à la fois des modèles de systèmes dynamiques discrets et un modèle de calcul complètement distribué, à partir duquel des comportements macroscopiques émergent de l’interaction à une bien plus petite échelle d’un grand nombre de cellules de calcul élémentaire. L’intelligence de notre cerveau est en soi un phénomène d’émergence issu de l’interaction entre nos neurones.
Au niveau informatique, l’organisation d’un ensemble de données permet d’accéder rapidement avec des langages de requêtes structurés (SQL = Structured Query Language), ce qui offre aux bases de données la capacité de représenter une partie du monde de manière cohérente. Ce sont les ontologies informatiques à la base du Web sémantique les constructions les plus abouties sur ce volet.
Cette volonté d’organisation a-priori ne se retrouve évidemment pas partout. Par exemple, sur les réseaux sociaux, les ressources se multiplient et les groupes (comme les groupes d’amis) se constituent sans être planifiés. Mais cela n’empêche pas de traiter cette masse d’information et l’algorithme edge-rank permet à facebook d’organiser automatiquement ce qui nous est présenté. Au-delà, les sciences du numériques se mettent alors à considérer ce conglomérat de donnés comme un sujet d’étude. Et à observer l’auto-organisation de ces systèmes distribués. Ce sont des recherches pluridisciplinaires, qui permettent par exemple d’étudier les bassins culturels géographiques ou sociaux. Dans l’exemple en lien, le gangnam-style ou le harlem-shake deviennent, oui, des sujets de modélisation tout à fait sérieux.
Vient alors le mouvement récent des Big Data, ce déluge de données bien défini et expliqué dans le document en lien. Ce sont des données aux sources variées et non structurées (par exemple, le « quantified self » concerne les données produites par tout le monde avec des objets communicants, les réseaux sociaux créent des données réparties sur les réseaux et dans différents environnements, l’open-data permet d’accéder aux données publiques sans qu’elles soient structurées de manière particulière).
Avec des méthodes d’analyse de données (ou fouille de données) on peut trouver des groupes non explicites sur un réseau social (par exemple des utilisateurs qui partagent des messages et des contacts sans le savoir) ou bien trouver une organisation dans les Big Data (par exemple en montrant qu’un ensemble de pages sur le Web suivent la même structure, le même « plan »).
Structures a également plusieurs sens en informatique:
- Pour les bio-informaticiens, un modèle géométrique et un affichage des molécules biologiques permettent d’en déterminer la structure et donc quelle est leur fonction biologique.
- Pour tous, les structures de données sont nécessaires pour représenter de façon judicieuse des données. Ainsi, certains algorithmes seront plus ou moins adaptés selon la façon dont on représente (ou structure) les même données.Ces choix de structures font partie de la pensée informatique car ce sont des ingrédients importants des algorithmes.
On peut donc se plaindre que le sujet est très vague, mais il recèle beaucoup de niches scientifiques passionnantes à étudier très précisément.
Éléments recueillis grâce à Sylvie Boldo, Florent Masseglia et Pierre Bernhard.
article en lien : Pistes pour le TIPE 2015-2016 «Structures : organisation, complexité, dynamique»
Dernière modification : novembre 2016.