R´esolution de syst`emes lin´eaires d’´equations diophantiennes
Evelyne Contejean et Herv´e Devie
Resume -Nous pr´esentons ici un algorithme pour r´esoudre les syst`emes lin´eaires homog`enes
d’´equations diophantiennes de fa¸con directe, `a l’aide d’une interpr´etation g´eom´etrique.
Solving linear systems of Diophantine equations
Abstract -An algorithm for solving directly homogeneous linear systems of Diophantine
equations is presented, which is based on a geometrical interpretation.
Our aim is to get the set Sof all solutions of a linear homogeneous system Ax = 0.
qis the number of unknowns and pis the number of equations of this system. Since S
is an additive mono¨ıd, we actually need a set of generators of S, for example the set of
all minimal tuples of Swith respect to the ordering >q. (See the notations in the main
text.)
The idea of our algorithm is to search the space INqstarting from the vectors in
its canonical basis. Suppose that we have obtained a q-tuple x= (x1, . . . , xq). If xis
equal to or greater than a solution, the search is stopped. Otherwise, xcan be non
deterministically incremented yielding qdistinct new q-tuples (x1+ 1, x2, . . . , xq),
(x1, x2+ 1, . . . , xq),...,(x1, x2, . . . , xq+ 1). The key point is that a constraint may be
added without loosing completeness, which can drastically decrease the search space.
Fortenbacher gave a constraint for the case of one equation [5]. By using a geometrical
interpretation (see the figures in the main text) we generalize Fortenbacher’s idea to
arbitrary many equations. Formally, xcan be incremented on its jth component if
and only if Ax +Aejlies in the half-space containing the origin and limited by the
affin hyperplan which is orthogonal to the vector Ax and contains the extremity of
Ax. Mathematically, this constraint can be expressed by the following very simple
condition :
Ax ·Aej<0
This algorithm is correct and complete, i.e. it computes only elements in Sand all
the elements in S. The termination proof is quite delicate and works by contradiction.
Suppose that an infinite sequence (vn)n1exists, such that each vn+1 is obtained from
vnby adding some ejnunder the above condition Avn·Aejn<0. We consider the
sequence (v0
n)n1defined by v0
n=vn
n. Using some subsequences and compacity of the
real interval [0,1], we can deduce that there exists a tuple lin [0,1]qsuch that Al = 0.
A continuity argument provides from la tuple in lQq, hence a tuple l00 in INqsuch that
Al00 = 0. Hence, l00 is a solution. Moreover, l00 can be chosen in such a way that vnis
greater than l00 with respect to >qfor some large enough n. Hence, this infinite sequence
cannot be computed by the algorithm.
Since the termination proof is not constructive, it does not provide any complexity
result for the algorithm. We explain how to minimize space computation and how
1
to improve time computation, and we give several benchmarks. As a conclusion, this
method is, in most cases, much more efficient than the previously available ones.
Introduction et notations.- Les algorithmes connus jusqu’`a pr´esent s’attachent
`a r´esoudre une seule ´equation et proc`edent par r´ecurrence sur le nombre d’´equations
pour r´esoudre les syst`emes [1][2][3][4]. Fortenbacher en particulier a d´ecrit un algorithme
pour une seule ´equation [5]. Nous nous proposons ici d’´etendre cet algorithme aux
syst`emes, par le biais d’une interpr´etation g´eom´etrique. Les preuves de compl´etude et
de correction de l’algorithme ´etendu sont calqu´ees sur celles de Fortenbacher ; seule
celle de terminaison est d´elicate.
Soit le syst`eme
(1) Ax = 0,
o`u Aest une matrice `a plignes et qcolonnes d’entiers relatifs. On cherche toutes les
solutions x= (x1, . . . , xq) `a coefficients entiers naturels. On munit INqde l’ordre partiel
>qsuivant, qui ´etend l’ordre naturel >sur les entiers :
(2) (s1, . . . , sq)>q(t1, . . . , tq)`a pour tout jdans {1, ..., q}, sjtjet
il existe jdans {1, ..., q}tel que sj> tj.
L’ensemble Sdes solutions formant un mono¨ıde additif, on s’int´eresse uniquement aux
solutions autres que la solution triviale et minimales pour l’ordre >q, car elles con-
stituent une partie g´en´eratrice minimale de Sque l’on note M.
Dans la suite, ej(j∈ {1, ..., q}) d´esigne le ji`eme vecteur de la base canonique de
INq, ‘·’ le produit scalaire usuel et k k la norme euclidienne. De plus, afin de faciliter
l’exposition du fonctionnement de l’algorithme, nous identifions, pour les arbres, les
forˆets ou les graphes acycliques orient´es, les notions de nœud et d’´etiquette de nœud.
En cons´equence, nous confondons deux nœuds de mˆeme ´etiquette et nous parlons de
successeur d’une ´etiquette.
Description de l’algorithme.- L’algorithme consiste `a d´evelopper en largeur
d’abord un graphe acyclique oriene ´etiquet´e par des vecteurs de INq. Pour jdans
{1, ..., q}, le vecteur ej´etiqu`ete la ji`eme racine du graphe. Pour une ´etiquette v, on
distingue trois cas :
vest une solution non nulle de Ax = 0 ; alors vest ajout´ee `a l’ensemble de
solutions minimales d´ej`a calcul´ees et n’a pas de successeur.
vest plus grande vis-`a-vis de >qqu’une solution minimale d´ej`a calcul´ee ; alors v
n’a pas de successeur.
sinon, vn’est pas solution de Ax = 0, donc Av 6= 0 ; alors va pour successeurs
les seuls vecteurs v+ejtels que le point A(v+ej) soit situ´e dans le demi-espace
ouvert contenant l’origine et d´elimit´e par l’hyperplan affine orthogonal au vecteur
Av et passant par le point de coordonn´ees celles de Av, condition qui s’´ecrit :
(3) Av ·Aej<0.
Remarque. - Dans les deux premiers cas, on ne d´eveloppe pas davantage le graphe
2
car on n’obtiendrait dans les parties tronqu´ees que des solutions non minimales.
Cas particulier d’une ´equation
O
AejA(v+ej)
-Av
(Fortenbacher)
Cas g´en´eral
P
P
PP
P
PPPPPP
P
PPPP
P
hyperplan d’´equation
interdit
demi-espace
PP
P
PPPPPPPPP
Pq
Av ·x=Av ·Av
PPP
P
PPP
P
6
Aej
Av
-OA(v+ej)
Pour n1, on d´esignera par Pnl’ensemble des ´etiquettes de la forˆet situ´ees `a la
profondeur (n1) et par Mncelui des ´etiquettes situ´ees `a une profondeur inf´erieure
ou ´egale `a (n1) qui sont solutions de S. On a donc formellement :
P1={ej|j∈ {1, ..., q}};
M1={v∈ P1|Av = 0};
n1, Pn+1 ={v+ej|v∈ Pn\Mn,u∈ Mnv6>qu, Av ·Aej<0};
Mn+1 =Mn∪ {v∈ Pn+1 |Av = 0}.
L’algorithme retourne le premier Mntel que Pn+1 est vide.
Remarque. - Il est en outre possible de r´eduire les ensembles Pnen imposant une
contrainte suppl´ementaire (C) de non redondance portant sur les indices j: la ji`eme
composante d’un vecteur est dite gel´ee si l’on s’interdit de l’incr´ementer lorsque l’on
d´eveloppe tous les descendants de ce vecteur. Si va au moins deux successeurs v+ej1
et v+ej2, avec j1< j2, on g`ele la ji`eme
2composante de v+ej1. Cette contrainte r´eduit
le graphe `a une forˆet.
Exemple. - L’algorithme d´eveloppe l’arbre ci-dessous pour r´esoudre le syst`eme
suivant : x3z+ 2t= 0
2x3y+t= 0
1n
(1000)
2
n
n n
n
n
n-1
-1
(0010)
(1010)
(1110)
?
?
-2
-2
2
-3
0
(0100)
(1100)
(2100)
1
?
?
2
1
0
-3
n
n
n
n
n
n
nn
n
n
n
nn
+
?
HHH
Hj
+
?
HHH
Hj
+
?
+
?
(0001)
(0101) (0011)
(1101) (0111) (0012)
(0112)
(1112) (0122)
(1122)
2
1
-1
-1
-1
1
-2 2
1
12
-2
-2
-1
> s2
> s2
s2
-2
0
3
(3210)
(2210)
(2110)
s1
?
?
-1
-2
?
-1
1
(2200)
(3200)
0
?
3
-2
?
2(0022)
HHH
Hj
2
(1111)
n
HHH
Hj
?
(0023)
(0123)
0
3
s3
A gauche de chaque vecteur vfigure le vecteur Av. Les composantes soulign´ees sont
gel´ees `a cause de la contrainte (C). Le signe signifie qu’un nœud n’a pas de successeurs
3
`a cause des contraintes (C) et (3).
Propri´
et´
es de l’algorithme.- Proposition 1. - (Compl´etude) L’algorithme
calcule l’ensemble de toutes les solutions minimales M, c’est `a dire que Mest inclus
dans l’union des Mn, pour n1.
Proposition 2. - (Correction) L’algorithme ne calcule que des solutions mini-
males, c’est `a dire que Mnest inclus dans Mpour tout n1.
Theoreme 1. - (Terminaison) L’algorithme termine, c’est `a dire qu’il existe
n01tel que Pn0est vide.
D´emonstration. - Si l’algorithme termine sans la contrainte (C), alors il termine
´egalement si l’on en tient compte. On va donc prouver que l’algorithme termine sans
imposer la contrainte (C). La d´emonstration repose sur le lemme suivant :
Lemme 1. - Soit vnun vecteur de Pn. Alors kAvnk ≤ Cn,
o`u C=Max{kAejk | j∈ {1, ..., q}}.
D´emonstration. - La d´emonstration se fait par r´ecurrence sur n. Le cas n= 1 est
trivial. Supposons le r´esultat vrai pour n1 et soit vn+1 ∈ Pn+1.vn+1 s’´ecrit vn+ej
avec vn∈ Pnet j∈ {1, ..., q}tel que Avn·Aej<0. On a donc :
kAvn+1k2=kAvnk2+kAejk2+ 2 Avn·Aej(n+ 1) C2.
Supposons que l’algorithme ne termine pas. Alors il existe une suite (vn)n1infinie
telle que, pour tout n1, vnappartient `a Pnet vn+1 =vn+ejpour un certain
jdans {1, ..., q}. Le vecteur vns’´ecrit (v1n, . . . , vqn) o`u, pour tout jdans {1, ..., q},
vjn est un entier naturel, et Pq
j=1 vjn =n. Consid´erons alors la suite (v0
n)n1d´efinie
par : v0
n=vn
n. La suite (v0
n)n1prend ses valeurs dans l’ensemble [0,1]q(o`u [0,1]
est l’intervalle r´eel). Cet ensemble ´etant compact, elle admet une valeur d’adh´erence
(l1, . . . , lq). Soit (v0
φ(n))n1une suite extraite de (v0
n) de limite (l1, . . . , lq) et (vφ(n))n1
la suite extraite de (vn) correspondante :
q
X
j=1
ljAej=
q
X
j=1
( lim
n→∞ v0
jφ(n))Aej= lim
n→∞
1
φ(n)(
q
X
j=1
vjφ(n)Aej),
et donc, d’apr`es le lemme pr´ec´edent, il vient :
k
q
X
j=1
ljAejk= lim
n→∞
1
φ(n)k
q
X
j=1
vjφ(n)Aejk= lim
n→∞
1
φ(n)kAvφ(n)k ≤ lim
n→∞
C
pφ(n)= 0.
On a donc :
q
X
j=1
ljAej= 0.
Tous les ljne sont pas nuls (car, par passage `a la limite, Pq
j=1 lj= 1) et, sans perte de
g´en´eralit´e, on peut supposer qu’aucun d’entre eux n’est nul (sinon, on ne consid`ere que
ceux qui ne le sont pas). Remarquons qu’alors, la suite (vjφ(n))n1prend pour tout j
dans {1, ..., q}des valeurs arbitrairement grandes.
La famille de r´eels (lj)1jqengendre un espace vectoriel sur lQ de dimension m, o`u
1mq. Soit (l1, . . . , lm) (`a renum´erotation des ljpr`es) une base de cet espace
vectoriel. Les vecteurs lk,m+ 1 kq, se d´ecomposent dans cette base :
4
k∈ {m+ 1, ..., q},j∈ {1, ..., m},αjk lQ, lk=
m
X
j=1
αjklj.
Il vient alors :
0 =
q
X
j=1
ljAej=
m
X
j=1
lj(Aej+
q
X
k=m+1
αjk Aek).
Pour tout jdans {1..., m},Aej+Pq
k=m+1 αjk Aekest un vecteur `a coefficients ra-
tionnels. La famille (lj)1jm´etant libre sur lQ, on a donc n´ecessairement :
j∈ {1, ..., m}, Aej+
q
X
k=m+1
αjk Aek= 0.
Par cons´equent :
(z1, . . . , zm)IRm,0 =
m
X
j=1
zj(Aej+
q
X
k=m+1
αjk Aek) =
m
X
j=1
zjAej+
q
X
k=m+1
(
m
X
j=1
αjkzj)Aek.
Or, pour tout kdans {m+ 1, ..., q}, on a Pm
j=1 αjklj=lk>0 ; donc, par un argument
de continuit´e, il existe des nombres rj, (1 jm) rationnels et strictement positifs,
suffisamment voisins des ljrespectifs de fa¸con `a avoir :
k∈ {m+ 1, ..., q},
m
X
j=1
αjkrj>0.
Pour de tels rj, on a donc exhib´e une combinaison lin´eaire nulle `a coefficients rationnels
positifs des vecteurs Aej(1 jq).
En multipliant cette combinaison lin´eaire par le plus petit commun multiple des d´e-
nominateurs de ses coefficients, on obtient une combinaison lin´eaire nulle `a coefficients
entiers naturels des vecteurs Aej(1 jq), c’est-`a-dire une solution s(peut-ˆetre
pas minimale) de S. D’apr`es une remarque faite pr´ec´edemment, chacune des suites
(vjφ(n))n1pour tout jdans {1, ..., q}tend vers +; donc il existe n0plus petit entier
de IN tel que vn0>qs. L’algorithme n’engendrera donc pas de vecteur vn0+1 : la suite
(vn)n1est finie.
Corollaire 1. - Il existe n0tel que M=Mn0.
Performances.- La preuve de terminaison n’est pas constructive, puisqu’elle utilise
de l’analyse r´eelle : elle ne permet pas de d´eterminer la complexit´e en temps de l’algo-
rithme.
De fa¸con pratique, la forˆet d´evelopp´ee par l’algorithme peut ˆetre parcourue en pro-
fondeur d’abord. On ne perd pas la propri´et´e de terminaison, car les solutions situ´ees
`a droite d’un q-uplet dans la forˆet ne sont jamais plus petites que ce dernier en raison
de la condition (C). En cons´equence, on peut implanter l’algorithme `a l’aide d’une pile
de vecteurs de INq, de hauteur born´ee par le nombre qde variables. Ainsi, l’algorithme
est quadratique en espace dans le nombre de variables du syst`eme, `a la place occup´ee
par les solutions pr`es.
5
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !