2

我最近遇到以下問題。給定一個向量列表(這裏我指的是元組),所有的整數都是整數項,是否有一個包(語言不是太多的問題,越快越好,所以我猜C)能夠很快確定何時另一個整數向量處於原始列表的跨度?我需要對整數進行這種算術運算(沒有劃分)。我確信有一個,但想要規避冗長的文獻評論。整數上的線性代數包

回答

0

LINPACK有什麼嗎?

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

我們曾經使用了很多在我的矢量/超級天,通常有硬件的特定版本。

+0

問題是我需要這個只使用積分算術不合理。我不確定LINPACK可以保證成員的公式只有整數係數。 – 2010-11-12 00:38:18

+0

@禮物:它不能。 – 2010-11-12 00:40:37

+0

@Stev謝謝你驗證這個假設。 – 2010-11-12 01:06:24

2

您可以使用PARI中的mathnf函數來計算包含作爲列的跨越向量的矩陣的Hermite normal form。 HNF矩陣的列跨越相同的格,並且檢查矢量是否在該格中是微不足道的。還有更多的圖書館能夠計算HNF - Google是你的朋友。

2

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 

看看這個帖子也:binary linear programming solver in Python