I am using fmincon in Matlab to minimize a smooth yet highly nonlinear objective function. My problem is in ndimension, with n>250 in some instances.
I have found that using different starting points improves dramatically the solution, as can be expected from an objective function with multiple local minima.
I have used haltonset to generate quasi random starting point in the n dimensional hypercube, which I then rescale into the ndimensional hyperspace defined by the lower and upper bounds of my problem.
I am however unsure of whether I am covering the space of possible solutions (defined by lower and upper bounds) in a sufficiently uniform manner. It could come from 2 issues: 1) the initial generation of the quasi random points is not "dense" enough, 2) the rescaling could create holes in the hyperspace because of bounds that are highly different
Is there a way that I can ensure that my starting points cover my space adequately (maybe specify the maximum distance between my starting points in ndimension).
Thank you for your help
See below code I am using:
objective_list = containers.Map('KeyType','int32','ValueType','any');
initial_pt_list = containers.Map('KeyType','int32','ValueType','any');
optimal_pt_list = containers.Map('KeyType','int32','ValueType','any');
net_size=100;
[variable_size, ~]=size(initial_pt);
p=haltonset(variable_size,'Skip',1e3,'Leap',1e2);
p = scramble(p,'RR2');
X0 = net(p,net_size);
for net0 = 1:1:net_size
temp_unit_vector= X0(net0,:);
temp_initial_pt = lower_b + temp_unit_vector'.*(upper_b  lower_b);
initial_pt_list(net0)=temp_initial_pt;
end
