3

我工作的這歸結爲一組方程和不等式的規劃問題的不等式:求解最小值

x[0]*a[0] + x[1]*a[1] + ... x[n]*a[n] >= D 
x[0]*b[0] + x[1]*b[1] + ... x[n]*b[n] = C 

我想解決的X這將使絕對的值給定輸入D和列表以及AB的最小值C,其由a[0 - n]b[0 - n ]組成。

我現在正在用Python做這個問題,但總的來說問題是語言不可知的。

CLARIFICATION UPDATE:係數x[0 - n]限於非負整數集合。

+0

有X [0] ... X [N]爲大於或等於零? – 2008-10-22 20:48:52

回答

11

這看起來像一個linear programming問題。 Simplex algorithm通常會給出好的結果。它基本上走過了由不等式劃定的子空間的邊界,尋找最佳的。

想象一下,每個不等式都表示一個半空間,它必須位於n維空間的右側。你的效用函數就是你想要優化的東西。如果空間關閉,最佳狀態將在封閉空間的頂點之一;如果它是開放的,那麼最優化可能是無限的。

1

您可能想要使用Matlab或Mathematica或查看Numerical Recipes in C的代碼,以獲取有關如何實現最小化函數的想法。所提供的鏈接是該書的1992版本。亞馬遜提供更新版本。

3

看看wikipedia條目的線性規劃。整數編程部分是你正在尋找的(x [i]是整數的約束不是一件容易的事)。

搜索python庫的分支&綁定,分支&剪切之類的(我不認爲它們已經在scipy中實現)。

其他相關鏈接: