À la recherche de la planification optimale
Comment utiliser de façon plus efficace un nombre fini de machines dans une usine pour fabriquer différents produits? Telle était la question qui a motivé les recherches entreprises dans le cadre du projet AMETIST. Autre problème du même ordre: l'attribution de canaux dans un réseau de télécommunications ou d'accès à la CPU (unité centrale de traitement) et aux périphériques dans un système d'exploitation multitâches. Un programme doit être établi pour résoudre les conflits entre deux tâches, voire plus, qui concourent pour les mêmes ressources. La diversité des problèmes de planification, pourtant similaires, traités par différentes communautés de scientifiques et d'ingénieurs a souvent conduit à toujours réinventer des méthodes ad-hoc sans jamais aboutir à une méthodologie indépendante de l'application. Inspiré de la méthodologie de vérification formelle, un cadre commun de création de modèles mathématiques pour un grand nombre de problèmes et domaines d'applications a été proposé par les partenaires du projet AMETIST. L'objectif final était de montrer que des systèmes réactifs ouverts étaient capables de réagir correctement dans tous les contextes envisageables. Les chercheurs ont utilisé des automates programmables en tant que modèles sous-jacents de systèmes distribués en temps réel dans lesquels l'état suivant est fonction de l'état au moment considéré. En outre, pour traiter l'incertitude sur l'évolution future des systèmes, en ce qui concerne les demandes ainsi que les ressources disponibles, ils ont cherché une alternative aux abstractions dites «zonales». Au lieu des matrices de constantes auxquelles les horloges de l'automate programmable sont traditionnellement comparées et qui proviennent des méthodologies de vérification, on a utilisé des vecteurs de variables d'horloges. L'automate était perçu comme proposant un «jeu» entre le programmateur d'un système réactif ouvert et son environnement. D'autre part, le programmateur contrôlait l'attribution de ressources aux différentes tâches. Parmi les différentes sources d'incertitudes, la durée de chaque tâche a été définie en tant que variable aléatoire continue. Comme dans une situation déterministe, l'identification de la planification optimale des tâches a alors simplement consisté à définir le chemin le plus court sur des graphiques de jeu à pondération entière. Ce type d'approche n'a pas modifié la complexité de calcul inhérente au problème. Cependant, il a fourni une plus grande liberté dans le choix d'une méthode présentant le meilleur rapport entre complexité de calcul et qualité de la solution obtenue.