• Aucun résultat trouvé

En nous basant sur le mod`ele d´efini en 3.2, nous proposons parall`element deux transcrip- tions en contraintes du probl`eme de d´eploiement d’antennes : l’une n’utilise que les contraintes disponibles originellement dans Eclair, l’autre fait intervenir la coop´eration avec un algorithme g´en´erique de r´esolution de contraintes continues d´evelopp´e en Claire.

La premi`ere approche montre la faisabilit´e d’un prototype industriel en contraintes et nous sert de mod`ele de r´ef´erence. Bien que la nature du probl`eme de positionnement soit fonci`erement continue, puisque les sites doivent ˆetre plac´es dans des zones de R2, nous proposons d’abord une mod´elisation du probl`eme dans le sous-espace Z2. Elle am`ene `a sacrifier l’ensemble des solutions

de d´eploiement dans R2\Z2, et lorsque nous parlons de la position du site S

i = (xi, yi) dans

ce mod`ele, xi et yi sont des entiers et les optima atteints sont ceux que l’on obtient dans cet

espace. En revanche, cette restriction rend possible la transcription du probl`eme dans la plupart des solveurs de contraintes commercialis´es, sans exiger de d´eveloppements suppl´ementaires. En particulier, c’est l’approche la plus imm´ediate pour Thales, dont le solveur Eclair c impl´emente toutes les contraintes en jeu, pour r´esoudre le probl`eme sur les entiers. La mod´elisation discr`ete se fait donc `a l’aide de ce solveur.

Le mod`ele math´ematique, d´efini pour le probl`eme de d´eploiement d’antennes, nous autorise `a proposer au mˆeme titre un mod`ele hybride et autorisant d’appr´ehender des solutions dans tout R2 plutˆot que de se restreindre `a des solutions de d´eploiement dans Z2. Parce que la restriction

`a des positions enti`eres peut causer la perte de solutions optimales localis´ees sur des positions r´eelles, nous levons cette contrainte d’int´egralit´e et ´etudions la pertinence d’une mod´elisation hybridant des contraintes discr`etes pour l’allocation de fr´equences, continues pour le d´eploiement et mixtes pour la compatibilit´e distante. Nous rempla¸cons dans cet autre mod`ele les variables donnant la position des sites et la distance entre sites par des variables continues. Nous avons d´evelopp´e dans Eclair c un module de propagation de contraintes par intervalles impl´ementant l’algorithme HC4 ; cet algorithme g´en´erique nous donne en particulier les moyens d’exprimer les contraintes de distance euclidienne intervenant dans notre application. Les contraintes discr`etes d’allocation de fr´equence restent inchang´ees dans le mod`ele hybride. Le solveur coordonne la propagation de contraintes discr`etes pour l’allocation de fr´equences et de contraintes continues

pour le d´eploiement, en garantissant la coh´erence des disjonctions entre contraintes discr`etes et continues.

Nous distinguons dans notre pr´esentation les contraintes discr`etes simples des contraintes de type non-lin´eaire discr`etes et continues, puis nous introduisons celles posant une disjonction entre les premi`eres et ces deux derni`eres. Enfin nous abordons la mod´elisation en contraintes du crit`ere d’optimisation.

3.3.1

Mod´elisation des contraintes discr`etes logiques et lin´eaires

Les contraintes discr`etes du LocRLFAP s’expriment fonci`erement toutes comme des com- binaisons logiques de contraintes arithm´etiques. Elles ont cependant chacune un m´ecanisme de propagation qui leur est propre, afin d’assurer une plus grande efficacit´e dans la r´esolution. Elles s’expriment comme suit.

3.3.1.1 Contraintes unaires

Les contraintes unaires d’(in)´egalit´e ou de diff´erence s’expriment comme : (u : Var) Rel (c : integer) v´erifi´ee ssi u Rel c.

o`u Rel ∈ {=, 6=, >, ≥, <, ≤}. Ceci nous permet d’exprimer les contraintes de mat´eriel ou d’op´e- rateur.

3.3.1.2 Contraintes lin´eaires

Les contraintes ternaires d’inter-modulation s’expriment `a l’aide de la contrainte lin´eaire (terme g) Rel (terme d) v´erifi´ee ssi terme g Rel terme d

o`u Rel ∈ {=, 6=, >, ≥, <, ≤} et o`u un terme gauche (resp. droit) terme_g (resp. terme_d) est une formule obtenue `a partir de variables enti`eres et de constantes avec les op´erateurs + et −.

3.3.1.3 Contraintes de valeur absolue

Les contraintes d’´ecart entre fr´equences s’expriment `a l’aide d’une contrainte de distance en une dimension

distxyc(u : Var , v : Var , c : integer , Rel : symbol) v´erifi´ee ssi |u − v| Rel c. o`u Rel ∈ {=, 6=, >, ≥, <, ≤}. Ceci nous permet d’exprimer les contraintes co-site d’interf´erence et les contraintes d’´ecart duplexe ou harmonique.

3.3.1.4 Contraintes bool´eennes

Le solveur fournit en outre des contraintes bool´eennes pour poser la n´egation ou la conjonc- tion de contraintes :

or(c1 : Constraint , c2 : Constraint) v´erifi´ee ssi c1∨ c2, and(c1 : Constraint , c2 : Constraint) v´erifi´ee ssi c1∧ c2.

Ces constructeurs permettent ainsi d’exprimer les contraintes d’appartenance `a une zone valide de d´eploiement. Une ZI s’´ecrit comme une disjonction entre des contraintes d’in´equations li- n´eaires et les limites d’une ZP I s’expriment par une conjonction de contraintes d’in´equations lin´eaires.

3.3.2

Mod´elisation discr`ete des contraintes non-lin´eaires

La prise en compte de la distance euclidienne dans le LocRLFAP suppose la mod´elisation de contraintes non-lin´eaires dans le solveur. La contrainte de carr´e est en fait suffisante pour obtenir une impl´ementation « m´eta-programm´ee » de la distance euclidienne.

3.3.2.1 Contrainte de carr´e

Les contraintes non-lin´eaires de distance euclidienne du LocRLFAP s’expriment `a l’aide de la contrainte square, contraignant le carr´e d’une variable :

square(x : Var , xs : Var) v´erifi´ee ssi x2 = xs

On notera que cette contrainte fournit un meilleur filtrage que la contrainte plus g´en´erale de produit de deux variables, comme elle permet de prendre en compte le probl`eme de d´ependance (cf. p. 18) que l’on aurait entre les deux variables du produit.

3.3.2.2 Contrainte de distance euclidienne

On obtient la contrainte de distance euclidienne par d´ecomposition, en introduisant des variables interm´ediaires et en utilisant la contrainte square() et des contraintes lin´eaires.

(dx : Var) = ((xi : Var)− (xj : Var)) v´erifi´ee ssi dx = xi− xj (dy : Var) = ((yi : Var)− (yj : Var)) v´erifi´ee ssi dy = yi− yj square(dx, dxs) v´erifi´ee ssi (dx)2 = dxs square(dy, dys) v´erifi´ee ssi (dy)2= dys dist(xi : Var, xj : Var, yi : Var, yj : Var, Rel : symbol, c : integer) v´erifi´ee ssi dxs + dys Rel c2. Nous utiliserons par commodit´e d’´ecriture la formule

dist(Si : Site , Sj : Site , Rel : symbol , c : integer) v´erifi´ee ssi dist(Si, Sj)2Rel c2.

3.3.3

Mod´elisation continue des contraintes non-lin´eaires

Le module de propagation de contrainte permet d’exprimer des contraintes respectant la grammaire suivante : cts constraint ::= f = f | f >= f | f <= f f ::= f + f | f − f | f ∗ f | f/f | sqr(f )| sqrt(f) | f entier | (f )| −f | +f | nombre| intervalle | RV ar | log(f )| exp(f) | trigo(f )

o`u trigo est une fonction trigonom´etrique quelconque. Les contraintes de distance peuvent donc ˆetre fournies directement au solveur par l’expression de la formule donnant la fonction distance euclidienne.

cts dist((xi : RVar, yi : RVar), (xj : RVar, yj : RVar), Rel : symbol, c : float) := sqr(xi − xj) + sqr(yi − yj) Rel sqr(c) v´erifi´ee ssi (xi− xj)2+ (yi− yj)2 ≥ c2.

L’algorithme de propagation garantit alors pour tout point de choix la consistance aux bornes de la contrainte et par cons´equent la validit´e de la contrainte en chaque point solution dans l’espace continu.

3.3.4

Mod´elisation des disjonctions

Le passage du mod`ele de RLFAP `a celui de LocRLFAP introduit des contraintes de compa- tibilit´e distante qui posent un choix entre

• une contrainte sur la position relative des sites, soit des contraintes non-lin´eaires (Sec- tion 3.3.2) et

• une contrainte sur les valeurs que peuvent prendre les fr´equences des antennes sur ces sites, soit une combinaison de contraintes logiques et lin´eaires (Section 3.3.1).

On a donc des disjonctions de nature hybride, la nature des premi`eres ´etant essentiellement continue et celle des secondes fonci`erement discr`ete. Bien que cette appellation soit quelque peu impropre, consid´erant que les deux types de contraintes restent discr`etes, nous l’utilisons par anticipation de la suite de notre pr´esentation o`u les disjonctions seront entre des contraintes portant sur des variables discr`etes et continues.

3.3.4.1 Disjonctions du LocRLFAP discret

Dans le mod`ele discret du LocRLFAP, les disjonctions dans les contraintes de compatibilit´e distante en port´ee ou `a mi-port´ee s’expriment sous la forme suivante :

or(dist?(Si, Sj,≥, dl) , distxyc?(fil, fjk,≥, ∆l)

v´erifi´ee ssi dist(Si, Sj)2 ≥ dl2 ∨ |fil− fjk| ≥ ∆l

Pour le RLFAP, les positions des sites sont fix´ees a priori, et les disjonctions sont trivialement r´esolues `a la pose du probl`eme. Pour le LocRLFAP ceci n’est plus vrai et n´ecessite une mod´eli- sation plus fine.

3.3.4.2 Disjonctions du LocRLFAP hybride

Dans le mod`ele hybride du LocRLFAP, le solveur coordonne la propagation de contraintes discr`etes pour l’allocation de fr´equences et de contraintes continues pour le d´eploiement, en garantissant la coh´erence des disjonctions hybrides

or(cts dist?(Si, Sj,≥, dl) , distxyc?(fil, fjk,≥, ∆l)

L’algorithme suivant garantit la coh´erence des deux syst`emes de contraintes (discrets et conti- nus) `a tout moment : lorsque la branche continue d’une disjonction hybride devient fausse, la contrainte discr`ete est propag´ee suivant la mani`ere usuelle dans le solveur discret. Lorsque la branche discr`ete d’une disjonction hybride devient fausse, la contrainte continue est ajout´ee au store des contraintes continues, et la propagation de l’ensemble des contraintes continues s’effec- tue jusqu’`a l’obtention d’un point fixe ; toutes les disjonctions hybrides sont alors r´evis´ees afin de v´erifier si aucune de leurs branches continues n’a ´et´e viol´ee au cours de la propagation du store de contraintes continues. Ce sch´ema s’inscrit dans le cadre introduit `a la Section 1.4.2.

3.3.4.3 Factorisation des disjonctions du LocRLFAP

Si l’on veut ´eviter d’obtenir un mod`ele trop lourd, il vaut mieux factoriser les disjonctions hybrides du RLFAP. L’objectif qui nous int´eresse alors est d’´ecrire une contrainte qui regroupe l’ensemble des contraintes sur les fr´equences des antennes. On d´efinit ainsi :

Compat freq(Si : Site , Sj : Site , ∆ : integer) (3.1)

v´erifi´ee ssi (

∀(k, l) / k 6= j ∨ l 6= i, (|fik− flj| > ∆)

∀(k, l) / k 6= j ∨ l 6= i, (|fjk− fli| > ∆)

Cette contrainte est donn´ee au solveur par une conjonction sur l’ensemble des contraintes ´el´emen- taires. Les deux types contraintes de compatibilit´e distante s’expriment alors par les expressions :

Compat h(i, j) = (or(dist?(Sites[i], Sites[j],≥, dh),

Compat freq?(Sites[i], Sites[j], i, j, ∆h, T) (3.2)

v´erifi´ee ssi

(

∀(k, l) / k 6= j ∨ l 6= i, (|fik− flj| > ∆h)∨ ((dist(Si, Sj)≥ dh)

∀(k, l) / k 6= j ∨ l 6= i, (|fjk− fli| > ∆h)∨ ((dist(Si, Sj)≥ dh)

et Compat l(i, j) = (or(dist?(Sites[i], Sites[j],≥, dl),

Compat freq?(Sites[i], Sites[j], i, j, ∆l, T) (3.3)

v´erifi´ee ssi

(

∀(k, l) / k 6= j ∨ l 6= i, (|fik− flj| > ∆l)∨ (dist(Si, Sj)≥ dl)

∀(k, l) / k 6= j ∨ l 6= i, (|fjk− fli| > ∆l)∨ (dist(Si, Sj)≥ dl)

. On peut cependant remarquer que, si par exemple chacun des termes gauches de la disjonction est viol´e, alors le terme droit le moins contraignant sera pos´e inutilement. Il semble donc pr´ef´erable de poser cette disjonction ternaire sur deux niveaux :

Compat lh(i, j) = (or(dist?(Sites[i], Sites[j],≥, dh),

or?(and?(dist?(Sites[i], Sites[j],≥, dl),

Compat freq?(Sites[i], Sites[j], i, j, ∆l)),

Compat freq?(Sites[i], Sites[j], i, j, ∆h)))) (3.4)

v´erifi´ee ssi            ( ∀(k, l) / k 6= j ∨ l 6= i, (|fik− flj| > ∆l)∨ (dist(Si, Sj)≥ dl) ∀(k, l) / k 6= j ∨ l 6= i, (|fjk− fli| > ∆l)∨ (dist(Si, Sj)≥ dl) ( ∀(k, l) / k 6= j ∨ l 6= i, (|fik− flj| > ∆h)∨ ((dh ≥ dist(Si, Sj)≥ dl) ∀(k, l) / k 6= j ∨ l 6= i, (|fjk− fli| > ∆h)∨ ((dh ≥ dist(Si, Sj)≥ dl)

Bien que cette forme permet de gagner en performance sur quelques exemples, elle en rend d’autres beaucoup plus difficiles `a r´esoudre. Nous pr´ef´erons donc utiliser la premi`ere forme dans nos mod`eles.

3.3.5

Mod´elisation en contraintes du crit`ere d’optimisation

La r´esolution du probl`eme d’optimisation se fait grˆace `a l’introduction dans le mod`ele d’une contrainte reliant les variables de d´ecision du probl`eme `a une variable donnant la valeur de la fonction objectif. La contrainte maxlist ´etablit le lien entre les variables donnant les fr´equences allou´ees aux diff´erents trajets et une variable contrainte au maximum d’entre elles. On pose :

maxlist(LF : list[Var] , Fmax : Var) v´erifi´ee ssi max

f∈LF (f ) = F max

L’obtention d’une valeur minimale de la variable Fmax donne alors une preuve d’optimalit´e pour

une solution.