En réponse à une question précédente , j'ai mentionné la croyance commune mais fausse selon laquelle l' élimination «gaussienne» se fait dans le temps . Bien qu'il soit évident que l'algorithme utilise des opérations arithmétiques , une mise en œuvre négligente peut créer des nombres avec un nombre exponentiel de bits. Comme exemple simple, supposons que nous voulions diagonaliser la matrice suivante:
Si nous utilisons une version de l’algorithme d’élimination sans division, qui n’ajoute que des multiples entiers d’une ligne à une autre, et que nous pivotons toujours sur une entrée diagonale de la matrice, la matrice de sortie possède le vecteur long de la diagonale.
Mais quelle est la complexité temporelle réelle de l'élimination gaussienne? La plupart des auteurs d'optimisation combinatoire semblent satisfaits du terme «fortement polynomial», mais je suis curieux de savoir ce qu'est réellement le polynôme.
Est-ce toujours la meilleure analyse connue? Existe-t-il une référence standard qui donne une meilleure limite de temps explicite, ou du moins une meilleure limite de précision?
Plus généralement: Quel est le temps d'exécution (sur la RAM entière) de l'algorithme le plus rapide connu pour résoudre des systèmes arbitraires d'équations linéaires?
Réponses:
la source
Je pense que la réponse à votre première question est aussi raison des arguments suivants: Le document de Edmonds ne décrit pas une variante de l'élimination gaussienne mais cela prouve que tout nombre calculé dans une étape de l'algorithme est un facteur déterminant de la sous-matrice de A. Dans le livre de Schrijver sur la théorie de la programmation linéaire et en nombres entiers, nous savons que si le codage de A nécessite b bits (b devrait être dansO˜(n3log(∥A∥+∥b∥)) O˜(log(∥A∥) ) alors n'importe lequel de ses sous-déterminants a besoin d'au plus 2b bits (théorème 3.2). Afin de faire de l’élimination gaussienne un algorithme polynomial, nous devons nous soucier des quotients calculés: nous devons annuler les facteurs communs de chaque fraction calculée à n’importe quelle étape intermédiaire, puis tous les nombres ont une longueur de codage linéaire dans la longueur de codage de A.
la source