Plus un système de contrôle est complexe, plus il devient également complexe de trouver ses erreurs et de les corriger : c’est le constat auquel est arrivée l’équipe d’ingénieurs du MIT (Massachusetts Institute of Technology) lorsqu’elle a décidé de concevoir un algorithme dont la tâche est de « se tromper ». « faire des erreurs »..
Cette approche peut être utilisée avec n’importe quel système autonome, pour identifier rapidement un certain nombre de défauts potentiels dans un logiciel donné, avant qu’il ne soit mis en œuvre dans le monde réel. En outre, l’algorithme propose des solutions et des réparations possibles pour éviter les défaillances du système.
L’équipe a testé la validité de son programme sur plusieurs systèmes autonomes simulés, dont un réseau électrique de taille moyenne, un système anticollision aéroporté, une équipe de drones de sauvetage et un manipulateur robotisé.. Dans chacun des systèmes, l’algorithme d’échantillonnage automatisé s’est avéré capable d’identifier rapidement un certain nombre de défaillances probables et de proposer des solutions pour les éviter.
Le nouvel algorithme adopte une stratégie différente de celle des autres recherches automatisées conçues pour détecter les failles les plus graves d’un système. Selon l’équipe, ces approches risquent de ne pas détecter les vulnérabilités plus subtiles (mais importantes) que le nouvel algorithme est en mesure de détecter.
« En fait, il y a toute une série de perturbations qui peuvent se produire pour ces systèmes plus complexes.explique Charles Dawson, étudiant diplômé du département d’aéronautique et d’astronautique du MIT. « Nous voulons pouvoir faire confiance à ces systèmes pour nous déplacer, piloter un avion ou gérer un réseau électrique. Il est très important de connaître ses limites et de savoir où ils sont susceptibles d’échouer. ».
Les concepteurs testent souvent la sécurité des systèmes autonomes en identifiant leurs défaillances les plus probables et les plus graves. Cette approche implique la mise en place d’une simulation informatique du système qui représente sa physique sous-jacente et toutes les variables susceptibles d’influencer le comportement du programme.
Les informaticiens exécutent désormais la simulation à l’aide d’un type d’algorithme qui effectue les opérations suivantes« optimisation contradictoire ».une approche qui optimise automatiquement le scénario le plus défavorable en apportant de petites modifications au système, encore et encore, jusqu’à ce qu’elle parvienne à réduire le champ aux modifications qui sont associées aux défaillances les plus graves.
« En condensant tous ces changements dans la défaillance la plus grave ou la plus probable, on perd une grande partie de la complexité du comportement que l’on pourrait observer.Dawson observe. « (Nous) voulions au contraire donner la priorité à l’identification d’une variété de défaillances »..
Pour ce faire, l’équipe a choisi une méthode plus « sensible » ce qui a conduit à l’émergence d’un algorithme qui génère automatiquement des changements aléatoires au sein d’un système et évalue la sensibilité, ou la défaillance potentielle du système, en réponse à ces changements..
Plus un système est sensible à un certain changement, plus la probabilité que ce changement soit associé à une défaillance éventuelle est grande.
Ce faisant, les chercheurs sont également en mesure d’identifier d’éventuelles corrections, retracer la chaîne des changements qui a conduit à une erreur particulière.
Nous avons dû reconnaître la dualité du problèmea déclaré Fan. « Les deux faces d’une même pièce » : si l’on peut prédire un échec, on devrait pouvoir savoir ce qu’il faut faire pour l’éviter. Notre méthode permet aujourd’hui de boucler la boucle..
Pour plus d’informations, vous pouvez visiter la page officielle du MIT consacrée au projet.