Я использую fminsearch Метод Matlab для минимизации функции:Как разрешить fminsearch искать только целые числа?
c = cvpartition(200,'KFold',10);
minfn = @(z)kfoldLoss(fitcsvm(cdata,grp,'CVPartition',c,...
'KernelFunction','rbf','BoxConstraint',exp(z(2)),...
'KernelScale',exp(z(1))));
opts = optimset('TolX',5e-4,'TolFun',5e-4);
[searchmin fval] = fminsearch(minfn,randn(2,1),opts)
Минимизация по двум параметрам.
Теперь я хотел бы, чтобы минимизировать третий параметр, но этот параметр может принимать только целые положительные значения, то есть 1,2,3, ...
Как я могу сказать, fminsearch рассматривать только целые положительные числа?
Во-вторых, если мой третий параметр инициализируется до 10, но его фактическое лучшее значение равно 100, fminsearch быстро сходится в таких случаях?
Отделить целое число от непрерывной задачи оптимизации кажется большим. Знаете ли вы другие процедуры дискретной оптимизации 1D или nD? – machinery
Есть много. Независимо от того, будут ли они соответствовать вашим конкретным потребностям, я не знаю. Вы можете начать с, скажем, страницы [Wikipedia] (https://en.wikipedia.org/wiki/Discrete_optimization) по дискретной оптимизации. –