我想解决以下优化问题,其目标函数独立于x:
最小化t
受制于a_i * x + b_i< = t
over x表示所有i从1到n = 100
如果我将分段线性优化问题重写为线性优化问题,就会出现这个问题。
问题:
如何使用linprog
在matlab中实现这一点。在linprog
中,我被要求将目标函数f作为矩阵与x相乘。是否有可能具有独立于x的目标函数?如果没有,我将如何实现这一目标?
编辑: Here是来自Matlab的linprog
的官方文档。其中声称最小化函数具有f ^ Tx的形状。我的问题只是我的最小化功能没有采取这种形状,并且没有x。我怎样才能在Matlab中实现它?
答案 0 :(得分:0)
您需要将问题重新表述为标准LP,即根据MATLAB函数f
的要求找到名义上的A
,b
和linprog
。
这是重新制定。从您的问题来看,似乎x
和t
是两个标量。
假设给定的a_i
和b_i
分别存储在列向量a
和b
中,然后是原始问题:
min t
,s.t。 a * x + b <= t * ones(n,1)
相当于:
min [0; 1]' * [x; t]
,s.t。 [a, ones(n,1)] * [x; t] <= -b
。
因此,只需使用linprog([0; 1], [a, ones(n,1)], -b)
,解决方案为[x; t]
。