• Aucun résultat trouvé

Sch´ ema de r´ esolution des syst` emes d’´ equations

La premi`ere motivation des m´ethodes `a intervalles est lafiabilit´edes calculs sur les r´eels `a l’aide d’un ordinateur, c’est-`a-dire le contrˆole des erreurs d’arrondis dues aux calculs sur les flottants.

Par exemple, pour ´evaluer la circonf´erence d’un cercle, on calcule l’expression 2×[3.14,3.15]× [1.9,2.1] = [11.932,13.230]. Cet exemple simple illustre les deux principales origines des approxi-mations par des intervalles : un nombre Π qui n’est pas repr´esentable sur un ordinateur et un rayon qui est connu approximativement `a cause d’une erreur de mesure ou de fabrication.

La deuxi`eme motivation des m´ethodes `a intervalles, un peu moins connue, est le traitement complet des syst`emes de contraintes (´equations, in´egalit´es) non-lin´eaires, o`u chaque inconnue a un intervalle initial de valeurs possibles. Par compl´etude, nous entendons la capacit´e de trouver toutes les solutions (sans perte) ou de prouver qu’il n’y en a pas. C’est bien le traitement des syst`emes de contraintes qui nous int´eresse dans ce m´emoire.

Le processus de r´esolution na¨ıf suivant permet de trouver l’ensemble des solutions r´eelles `a un syst`eme d’´equations F(X) = 0 (F est un vecteur de fonctions) dans un espace de recherche initial qui est une boˆıte [X] de taille quelconque. Il est bas´e sur un principe debranch and prune (brancher et ´elaguer) qui enchaˆıne les deux op´erations suivantes `a partir de [X] :

– Elaguer : On calcule l’image de [X] parF. S’il existe une fonctionf deF telle que 0∈/[f]([X]), cela signifie bien que l’´equation correspondante, et donc le syst`eme entier, n’a pas de solution dans [X]. On d´esigne souvent cette proc´edure par test d’existence.

– Brancher : Dans le cas contraire, si∀f ∈F,0∈f([X]), l’intervalle de l’une des variables deX est coup´e en deux parties, typiquement en son milieu, pour lancer r´ecursivement la recherche de solution sur la boˆıte de gauche et sur la boˆıte de droite. Cette op´eration de bissection rend bien le processus de r´esolution combinatoire.

La r´esolution se termine quand la boˆıte courante devient atomique, c’est-`a-dire quand le diam`etre de la boˆıte est inf´erieur `a une pr´ecision ω donn´ee.

Ce principe de r´esolution est malheureusement inefficace en pratique, mˆeme quand le nombre d’inconnues est tr`es petit. Les outils de r´esolution actuels remplacent ainsi le sch´ema “brancher et ´elaguer” par un sch´ema “brancher et contracter” (branch and contract) o`u des algorithmes de contraction, appel´es aussi contracteurs, au lieu de simplement d´eduire qu’une boˆıte ne contient pas de solution, sont en plus capables de r´eduire aux bornes les intervalles de la boˆıte courante sans perte de solution. Nous d´ecrivons ci-dessous `a des fins didactiques un sch´ema assez fr´equemment utilis´e par les outils existants pour trouver l’ensemble des solutions du syst`eme.

L’algorithme RechercheSolutions (cf. Algorithm 1) d´eveloppe un arbre de recherche en pro-fondeur d’abord (en utilisant une file dans cette version it´erative). Il effectue une exploration combinatoire exhaustive de l’espace de recherche afin d’encadrer au plus pr`es l’ensemble des solutions. L’algorithme d´ebute avec une boˆıte [X] initiale, c’est-`a-dire avec un intervalle de recherche pour chaque variable du syst`eme. L’algorithme termine avec un ensemble de boˆıtes atomiques stock´ees dans deux ensembles :solutionsNonCertifieesetsolutionsCertifiees.

L’algorithme de r´esolution renonce `a couper une boˆıte atomique qui est susceptible de contenir une solution.

2.3. Sch´ema de r´esolution des syst`emes d’´equations 23 Algorithm 1 RechercheSolutions (in F, X, ; out solutionsNonCertifiees, solutionsCertifiees)

L← {[X]} /* On part d’une boˆıte initiale [X] */

while L6=∅ do

[B]←L.front() ; L.remove([B]) /* S´election d’une boˆıte */

/* Contraction de [B] : */

[B]←ContractICP([B],...)

if[B]6=∅ then[B]← ContractRelax([B],...)end if

if[B]6=∅ then([B], certified ?) ←ContractNewton([B],...)end if if [B]6=∅ then

if Diam([B])< then if certified ?then

solutionsCertifiees← solutionsCertifiees ∪ {[B]}

else

solutionsNonCertifiees← solutionsNonCertifiees ∪ {[B]}

end if else

/* Branchement : */

([Bg],[Bd])←Bisect([B], X, F) L←L∪ {[Bg]} ∪ {[Bd]}

end if end if end while

Les proc´edures principales de cet algorithme sont :

– ContractICP : les contracteurs de programmation par contraintes sur intervalles ont un rˆole de filtrage ou contraction qui permet de r´eduire la boˆıte [B] sur les bornes sans perte de solution.

Dans le cas id´eal, une contraction peut mener `a un intervalle vide (cas o`u [B] devient vide), d´emontrant l’absence de solution dans la boˆıte.

– ContractRelax : les contracteurs de relaxation lin´eaire approximent le syst`eme par un en-semble de fonctions lin´eaires (ou convexes) et contractent la boˆıte [B] `a l’aide d’un algorithme du simplexe ou autre.

– ContractNewton : les op´erateurs d’analyse num´erique, comme les op´erateurs de programma-tion par contraintes, ont un rˆole de filtrage.

Si certaines conditions sont respect´ees, ces op´erateurs sont en plus capables de certifier que la boˆıte [B] contient une solution unique (certified ? devient vrai). Dans ce cas, quelques it´erations de l’algorithme de point-fixe (Newton intervalles) permettent de converger tr`es rapidement vers une boˆıte atomique contenant la solution certifi´ee.

– Bisect : quand les op´erateurs ci-dessus n’ont plus d’effet de contraction sur [B], l’intervalle de l’une des variables de Xest coup´e en deux parties, typiquement en son milieu, pour lancer r´ecursivement la recherche de solution sur la boˆıte de gauche [Bg] et sur la boˆıte de droite [Bd].

Ce dernier op´erateur de bissection rend bien le processus combinatoire, mais l’explosion combi-natoire se produit seulement si les autres op´erateurs algorithmiques sont inefficaces.

Remarque 1 : diff´erents degr´es de fiabilit´e

On peut classer les outils de r´esolution qui parcourent l’espace de recherche de mani`ere exhaustive en trois cat´egories selon le choix des op´erateurs de contraction et selon leur fiabilit´e :

1. Outils exhaustifs, non complets :

Si l’outil n’utilise pas une implantation fiable de ses contracteurs, alors il peut perdre des solutions, tout en pouvant retourner des solutions parasites (boˆıtes atomiques sans solution). C’est le cas deBaron[250] qui n’utilise pas d’op´erateur ContractNewtonet qui utilise des op´erateurs de typeContractRelaxnon fiables.

2. Outils complets :

Si l’outil utilise des implantations fiables de ContractRelax et de ContractICP, alors aucune solution n’est perdue. En revanche, s’il n’utilise pas d’op´erateur ContractNewton (c’est-`a-dire si aucune distinction n’est faite entre les ensemblessolutionsNonCertifiees etsolutionCertifiees), alors il peut retourner des solutions parasites.

3. Outils complets et fiables :

Si, en plus, l’outil utilise un op´erateur ContractNewton, alors toutes les solutions sont trouv´ees et certaines solutions parasites sont ´elimin´ees.

Malheureusement,ContractNewtonne peut en th´eorie pas toujours ´eliminer toutes les solutions parasites, c’est-`a-dire ne peut pas certifier toutes les solutions. Ainsi, il n’y a pas de diff´erence th´eorique entre les deux derniers cas. En pratique n´eanmoins, on peut dire que l’utilisation de ContractNewton permet de calculer un sur-ensemble plus fin de l’ensemble des solutions.

On peut bien-sˆur ranger dans la cat´egorie des outils non exhaustifs/complets tous les autres outils qui ne parcourent pas l’espace de recherche de mani`ere exhaustive : m´ethodes num´eriques classiques (locales), recherche locale, algorithmes g´en´etiques, `a particules, etc.

Remarque 2 : optimisation globale

Le sch´ema ci-dessus est sensiblement complexifi´e pour minimiser une fonction objectif sous contraintes. Sans d´etailler, en plus des contracteurs, l’algorithme de branch and bound met `a jour au cours de la recherche un minorant l et un majorant u de l’objectif jusqu’`a ce que u−l < :

– Un majorant est souvent obtenu par recherche locale. Sa certification par une variante de ContractNewton est alors une op´eration coˆuteuse.

– Un minorant est obtenu par une approximation lin´eaire (ou convexe) conservative de la fonc-tion objectif (cf. secfonc-tion 2.4.2). La meilleure solufonc-tion de l’approximafonc-tion fournit en effet une borne inf´erieure de l’objectif.