Exploiter les sous-expressions communes dans les CSP numériques
Abstract
Il est bien connu que la forme des équations est déterminante pour l'efficacité de la résolution de systèmes d'équations et d'inégalités sur les réels par des techniques par intervalles. Peu de transformations automatiques de ces systèmes ont pourtant été proposées jusqu'ici. L'Elimination des Sous-expressions Communes (CSE) est une technique largement utilisée en optimisation de code. En analyse par intervalles, Vu, Schichl, Sam-Haroud et Neumaier exploitent des sous-expressions communes en transformant le système d'(in)équations en un unique graphe sans circuits. Ils estiment que l'impact des sous-expressions communes sur les performances serait uniquement dû à une réduction du nombre des opérations. Cet article apporte deux contributions principales. Premièrement, en raison de propriétés liées à l'arithmétique par intervalles, nous démontrons théoriquement et expérimentalement que l'exploitation de certaines sous-expressions communes aux équations non seulement réduit le nombre d'opérations, mais aussi apporte des filtrages additionnels lors de la propagation. Deuxièmement, contrairement aux approches existantes, en nous basant sur une meilleure exploitation des opérateurs naires d'addition et multiplication, nous proposons un nouvel algorithme I-CSE qui identifie et exploite toutes les sous-expressions communes “utiles”. Nous montrons sur un échantillon de problèmes tests que I-CSE détecte plus de sous-expressions communes utiles que les approches traditionnelles et conduit généralement à d'importants gains de performance (de parfois plusieurs ordres de grandeur).
Domains
Programming Languages [cs.PL]Origin | Files produced by the author(s) |
---|
Loading...