• Aucun résultat trouvé

1.4 Recherche opérationnelle

1.4.3 Application à des problèmes de gestion de matériel

Toutes ces méthodes (optimales ou approchées) peuvent nous aider à trouver le meilleur filtrage possible. Il faudra être capable de reformuler ou d’adapter notre re- cherche au formalisme spécifique des différentes méthodes mais cela nous permettra de chercher plus efficacement une solution optimale (ou sous-optimale) que si on devait faire un parcours exhaustif.

Comme nous avons pu le constater, la conception d’un filtre peut être assimilée à un problème d’optimisation. À ce titre, il est donc possible d’utiliser des outils classiques de la recherche opérationnelle pour trouver une solution optimale ou proche de l’optimale. Cependant, on peut constater qu’il existe d’autres situations où il est possible de faire appel à de tels outils pour résoudre des problèmes matériels.

On peut citer le cas des micro-usines [22, 30]. Il s’agit d’optimiser la chaîne de produc- tion d’une micro-usine tout en tenant compte des pannes qui peuvent survenir. L’enjeu majeur est donc d’être capable d’adapter une solution optimale (la chaîne de production au départ) quand un certain nombre d’étapes de cette chaîne sont dysfonctionnels. On peut donc faire une analyse abstraite de la chaîne de traitement et la représenter sous la forme d’un graphe. On connaît toutes les connexions possibles entre les différents nœuds (les tâches), il est donc possible de trouver un nouveau chemin quand l’un des nœuds devient inaccessible (tombe en panne).

Dans cette thèse, nous allons aussi résoudre un problème d’optimisation matérielle avec des outils informatiques plus abstraits. Nous voulons également développer une mé- thodologie qui permettrait d’optimiser n’importe quelle chaîne de traitement numérique. Pour créer et valider notre approche, nous allons ré-étudier le problème des filtres en cascade. En effet, dans [59, 96, 60] les auteurs avaient déjà conclu qu’il était préférable de concevoir des filtres discrets en cascade pour obtenir de meilleures performances et diminuer la consommation de ressources. Ainsi, si avec notre méthode nous arrivons aux mêmes conclusions, nous prouverons que cette approche est juste et qu’elle pourra être adaptée à d’autres traitements et/ou à d’autres contextes. Dans le chapitre 2 nous détaillerons notre méthode, dans le chapitre 3 nous l’appliquerons à un cas concret, les cascades de filtres. Pour finir dans le chapitre 4 nous générons et analyserons des données expérimentales issues de nos résultats abstraits.

Deuxième partie

Méthodologie

Chapitre 2

Méthodologie générique pour

l’optimisation de flux de traitement

Dans le chapitre précédent, nous avons défini les notions et le vocabulaire nécessaires pour bien comprendre ces travaux de recherche. Nous avons également passé en revue les travaux scientifiques relatifs à notre sujet pluridisciplinaire. Nous avons abordé le coté électronique, que cela soit l’aspect métrologie du signal numérique ou l’aspect traitement sur FPGA, ainsi que le coté informatique sur l’optimisation de flux de traitement et de recherche de solutions optimales.

Ce chapitre sera consacré à la présentation et à l’explication de notre méthodologie. Elle consiste à créer un modèle abstrait d’un traitement sur FPGA concret. À partir de cette abstraction, on peut utiliser des outils issus de la recherche opérationnelle pour trouver une solution optimale. Nous détaillerons cette approche dans la section 2.1.

Afin de pouvoir construire notre modèle abstrait, nous expliquerons comment on peut définir un bloc de traitement dans la section 2.2. Dans la section 2.3, nous verrons com- ment représenter toute une chaîne de traitement et les différentes relations entre les blocs. Dans la section 2.4, nous détaillerons la modélisation générique d’un filtre FIR.

2.1

Description du principe général

Le but de cette thèse est de transposer des outils informatiques d’optimisation dans un contexte électronique. Comme nous l’avons vu dans le chapitre précédent dans la section 1.3, de nombreux travaux s’inscrivent dans cette optique.

Dans notre cas, nous proposons une approche nouvelle visant à optimiser n’importe quel traitement numérique. Pour créer cette méthode générique il nous faut impérati- vement une abstraction très forte. Ainsi, nous visons à ne pas être restreint par une technologie, un constructeur de FPGA ou un logiciel de synthèse propriétaire spécifique. Néanmoins, nous nous efforcerons de démontrer la pertinence de l’approche sur des solu-

tions concrètes.

Notre méthodologie se décompose en quatre étapes :

1. définir une modélisation d’un problème de traitement numérique concret 2. trouver une solution optimale à ce modèle

3. transformer et appliquer la solution abstraite dans un cas concret

4. comparer les résultats concrets avec les résultats abstraits pour s’assurer que le modèle est cohérent.

La première étape est spécifique à chaque problème et le niveau d’abstraction est un paramètre crucial.

Avoir une abstraction trop forte risque de nous éloigner grandement de la réalité et cela nous empêcherait d’obtenir des résultats concrets. En effet, avec une modélisation trop abstraite du problème, nous pourrons toujours trouver des solutions abstraites mais qui ne seraient pas forcément réalisables dans la pratique.

En revanche, si nous optons pour une abstraction trop faible, nous risquons de perdre des degrés de liberté lors de la recherche optimale, car nous aurons à tenir compte de trop de contraintes liées au cas traité. Par conséquent, les solutions optimales trouvées seraient trop prévisibles car les contraintes seraient trop nombreuses et / ou trop fortes. Il est donc important de définir un niveau d’abstraction suffisant pour avoir des solu- tions intéressantes mais en restant proche du cas réel pour que la solution optimale puisse être exploitée dans une application concrète.

Une fois que le modèle est conçu, la deuxième étape consiste à définir un critère d’optimisation (ou plusieurs si on veut faire de l’optimisation multi-objectif) et de trouver la solution optimale qui va maximiser ou minimiser l’objectif souhaité.

Selon la complexité du modèle et les contraintes, on va recourir à différents moyens. Si le problème est simple (peu de contraintes et peu de paramètres), il est probablement possible d’écrire un algorithme pour donner la solution optimale. En revanche si le pro- blème est trop compliqué, on va avoir recours à des outils de la recherche opérationnelle pour trouver une solution optimale (nous avons présenté une partie des techniques pos- sibles dans la section 1.4 du chapitre précédent). Cette étape peut prendre beaucoup de temps (de l’ordre du mois ou plus) pour fournir une solution, c’est pourquoi dans cer- tains cas il peut être utile d’avoir recours à des méthodes sous-optimales (heuristiques et méta-heuristiques).

Une fois la solution trouvée, la troisième étape consiste, dans un premier temps, à la transformer en application réelle. Autrement dit, on doit générer une application matérielle (un design FPGA par exemple) à partir de la solution optimale. Dans un second temps, il faut faire l’expérimentation et à récupérer des données concrètes.

Pour finir, la quatrième et dernière étape consiste à analyser les résultats expérimen- taux pour voir s’ils sont cohérents avec ceux attendus (d’après la solution abstraite). Si c’est le cas, la modélisation est suffisamment cohérente et on peut décliner le problème

Figure 2.1 – Schéma de la chaîne de traitement type pour rejeter du bruit initial en changeant les paramètres du système pour étudier plus en détail le traitement. Si en revanche, les résultats sont trop éloignés de nos attentes, cela veut dire que notre modèle n’est pas bon. Il faut alors l’adapter, et recommencer à l’étape 1.

Dans la suite de ce chapitre, nous allons nous attacher à expliquer par l’exemple le déroulement de la première étape. Les autres étapes quant à elle seront détaillées dans le chapitre suivant.

Documents relatifs