【发布时间】:2011-01-11 00:15:36
【问题描述】:
我曾在 Math SE 询问过this question,但答复不是很令人满意。于是我又在这里问了一遍:
我有一个线性不等式和等式约束的优化问题:
A*x<=b
Aeq*x=beq
问题是目标函数是由一系列Heaviside阶跃函数的总和组成的,
这是目标函数的伪代码:
function f(k, c, x)
ffunction =0;
for i=0;i<k.row.length;i++
smallF=0
for j=0; j<k.column.length; j++
smallF+= k.row[i]*k.column[j]*x[j]+c[j]
end
ffunction += u(smallF)
end
f=ffunction
end
function u(x)
if(x>0)
return 1
else
return 0
end
end
我得到的建议是将阶跃函数近似为平滑函数,并为此使用非线性优化。但是 MATLAB 工具箱中有什么东西可以让我在不进行平滑函数转换的情况下解决这个问题吗?
【问题讨论】:
-
优化工具箱中的fmincon mathworks.com/help/toolbox/optim/ug/fmincon.html 可能会为您的任务提供一些帮助。
标签: matlab mathematical-optimization