[英]Linear algebra package over the integers
我最近遇到了以下问题。 给定一个带有整数条目的向量列表(在这里我指的是元组),是否有一个程序包(语言不是太大的问题,越快越好,所以我猜是C)可以非常快速地确定何时有另一个整数向量原始列表的范围? 我需要对整数(无除法)进行这种算术运算。 我敢肯定有一个,但是想避开冗长的文献综述。
您可以在PARI中使用mathnf
函数来计算矩阵的Hermite法线形式 ,该矩阵将跨越向量作为列。 HNF矩阵的列跨越相同的网格,并且检查向量是否在此网格中很简单。 还有更多能够计算HNF的库-Google是您的朋友。
可以选择CVXOPT 。 特别是看一下这个函数:
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
还请看这篇文章: Python中的二进制线性编程求解器
也许LinBox是您所需要的。
我所知道的最好的库是:
Pari(不是GP,而是Pari库本身): http : //pari.math.u-bordeaux.fr/
NTL(C ++): http : //www.shoup.net/ntl/
IML: http : //www.cs.uwaterloo.ca/~astorjoh/iml.html
我们开始在flint2中添加这种功能(尤其是在fmpz_mat模块中):
https://github.com/fredrik-johansson/flint2
火石的目的是使它尽可能快地完成,尽管基质材料仍在大量开发中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.