J'ai récemment rencontré le problème suivant. Étant donné une liste de vecteurs (ici je veux dire tuple) tous avec des entrées entières, y at-il un paquet (la langue n'est pas trop un problème, le plus vite le mieux, donc je suppose C) pour déterminer très rapidement quand un autre vecteur entier est la durée de la liste d'origine? J'ai besoin de faire cette arithmétique sur les entiers (pas de division). Je suis sûr qu'il y en a un, mais je voulais contourner la longue revue de la littérature.Module d'algèbre linéaire sur les entiers
Répondre
Est-ce que LINPACK a quelque chose?
http://en.wikipedia.org/wiki/LINPACK
Nous avons utilisé l'utiliser beaucoup dans mes jours vecteur/supercalculateur, et il y a généralement des versions spécifiques du matériel.
Vous pouvez utiliser la fonction mathnf
dans PARI pour calculer le Hermite normal form de la matrice contenant vos vecteurs spanning comme des colonnes. Les colonnes de la matrice HNF couvrent le même treillis, et il est trivial de vérifier si un vecteur est dans ce treillis. Il y a beaucoup plus de bibliothèques capables de calculer le HNF - Google est votre ami.
Peut-être LinBox est ce que vous avez besoin.
CVXOPT peut être une option. En particulier, regardez cette fonction:
cvxopt.glpk.ilp = ilp(...)
Solves a mixed integer linear program using GLPK.
(status, x) = ilp(c, G, h, A, b, I, B)
PURPOSE
Solves the mixed integer linear programming problem
minimize c'*x
subject to G*x <= h
A*x = b
x[I] are all integer
x[B] are all binary
Regardez ce billet: binary linear programming solver in Python
Les meilleures bibliothèques que je connais pour cela sont:
Pari (non GP, mais la bibliothèque du pari lui-même): http://pari.math.u-bordeaux.fr/
NTL (C++): http://www.shoup.net/ntl/
IML: http://www.cs.uwaterloo.ca/~astorjoh/iml.html
Nous commençons à ajouter ce type de fonctionnalité dans flint2 (en particulier dans le module fmpz_mat):
https://github.com/fredrik-johansson/flint2
Le but de silex est le rendre absolument aussi vite que possible, bien que la substance de la matrice est encore fortement en développement.
- 1. SVG Graphique linéaire sur les axes connus
- 2. Trier les n premiers entiers en temps linéaire et en espace constant
- 3. Linechart linéaire non linéaire?
- 4. OU-multiplication sur les grands entiers
- 5. Modèle C++ pour les entiers entiers sûrs
- 6. Zoom sur le graphique linéaire
- 7. PHP validant les entiers
- 8. problème avec les entiers
- 9. Programmation linéaire en nombres entiers Java: Plusieurs outils Open Source et commerciaux sont disponibles. Lequel utiliser?
- 10. interpolation linéaire sur une matrice numpy
- 11. Plage sur les champs entiers dans Axapta/Dynamics Ax
- 12. Comment factoriser les entiers en utilisant Perl?
- 13. linéaire Sonder dans l'adressage ouvert
- 14. Algèbre linéaire pour les graphiques en C
- 15. Installation d'un module python sur les fenêtres
- 16. Création d'un graphique linéaire
- 17. linéaire question du programme
- 18. Convertir les noms de fichiers en entiers
- 19. arbre linéaire dans Flex
- 20. Algèbre linéaire Haskell?
- 21. Compteur non linéaire
- 22. Chrome toile dégradé linéaire = Firefox Toile dégradé linéaire
- 23. Bon paquet d'algèbre linéaire
- 24. gratter les tweets entiers d'un utilisateur
- 25. dictionnaire python, en comptant les nombres entiers
- 26. Tri du seau pour les entiers
- 27. Lettres dans les entiers. Que sont-ils?
- 28. Implémentations de hachage linéaire
- 29. sens inverse dégradé linéaire
- 30. WPF linéaire Remplissez
Le problème est que j'ai besoin de cela pour utiliser uniquement l'arithmétique intégrale non rationnelle. Je ne suis pas sûr que LINPACK puisse garantir que l'équation d'appartenance n'a que des coefficients entiers. –
@Lance: Il ne peut pas. –
@Stev Merci d'avoir vérifié cette hypothèse. –