繁体   English   中英

整数上的线性代数包

[英]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是您所需要的。

LINPACK有什么吗?

http://en.wikipedia.org/wiki/LINPACK

在我的矢量/超级计算机时代,我们经常使用它,并且通常有特定于硬件的版本。

我所知道的最好的库是:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM