Résolution de systèmes linéaires en entiers naturels 1 L`algorithme

publicité
Université de Nice Sophia Antipolis
Préparation à l’ Agrégation de Mathématiques
2010-2011
Résolution de systèmes linéaires en entiers naturels
On appelle poids d’un vecteur de Nq la somme de ses composantes.
Deux remarques :
• À chaque étape on construit une liste L0 de nouveaux vecteurs à tester tous de même
poids et de poids un de plus que ceux des vecteurs en cours de test de L.
• Dans le test il n’existe pas ν ∈ M ∪ [L\ {x}] tel que ν = x ou x >> ν l’ensemble
[L\ {x}] est sans intérêt puisque x ∈
/ [L\ {x}] car L est sans répétition, c’est un ensemble,
et x ne peut pas dominer strictement un élément de [L\ {x}], ils sont tous de même
poids. Sa suppression a l’avantage de simplifier la programmation et la compréhension
de l’algorithme A.
1
1.1
L’algorithme A sans la contrainte géomètrique (C)
Correction et Complétude par récurrence sur le poids
Il est clair qu’au poids 1 l’algorithme est correct et complet : on examine tout le monde et si
l’on trouve une solution elle est minimale.
Supposons que ceci soit vrai au poids p : M contient toutes et seulement les solutions minimales
de poids ≤ p.
À l’étape suivante, en poids p + 1, si on ajoute une solution à M elle ne domine aucune solution
minimale de poids ≤ p. Elle est donc minimale (correction).
D’autre part si x est une solution de poids p + 1 non examinée par l’algorithme alors x est un
successeur d’une solution minimale x0 de poids ≤ p, donc x n’est pas une solution minimale
(complétude).
1.2
Terminaison ?
Il est clair que cet algorithme sans contrainte ne termine pas sur un système qui n’a pas de
solution minimale, par exemple (S3 ) ou tout système ayant une forme linéaire toujours > 0
ou toujours < 0 sur Nq \ {0}. On est lancé dans une quête désespérée et sans limite dans tout
Nq \ {0}. La contrainte géomètrique est essentielle à la terminaison.
2
L’algorithme A avec la contrainte géomètrique (C)
En ce qui concerne la correction le raisonnement précédent est toujours valable. Il faut examiner la complétude et la terminaison.
La complétude : à partir d’un x qui n’est pas solution on explore moins de directions que
précédemment, c’est l’intérêt de la contrainte. Il faut s’assurer qu’on ne manquera pas une
solution minimale.
Si a(x) < 0 etPx + x0 est une solution
minimale alors a(x + x0 ) = a(x) + a(x0 ) = 0 donc a(x0 ) > 0.
P
q
q
Posons x0 = j=1 nj ej , on a j=1 nj a(ej ) > 0 donc il existe au moins un j tel que nj 6= 0 et
a(ej ) > 0. En partant de x dans cette direction ej on peut arriver à x + x0 .
La terminaison : à vous de jouer (euh, je sèche lamentablement) , ça n’a pas l’air facile : voir la remarque du paragraphe 8.
Deux idées dans le cas d’une seule équation :
• s’il n’y a pas de solution non nulle à l’équation, la famille génératrice minimale est vide,
c’était un très mauvais cas pour la terminaison de l’algorithme sans la contrainte (C).
On voit facilement qu’on a tous les a(ej ) de même signe donc, dans l’algorithme avec la
contrainte (C), dès la deuxième étape on a L = ∅ et c’est terminé.
• La stratégie de construction de L nous fait construire les vecteurs de L au plus près de
l’hyperplan a1 x1 + · · · + aj xj + · · · + aq xq = 0. Au bout d’un certain nombre d’itérations
on tombe sur une solution, si elle est minimale elle va dans M sinon on ne s’en occupe
plus, de toute façon ce vecteur est éliminé de L. Faites un dessin avec q = 2.
Téléchargement