我在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 * http://www.mathworks.com/help/toolbox/optim/ug/fmincon.html可能會爲您的任務提供一些幫助。 – zellus 2011-01-10 07:51:31