Я использую fmincon в Matlab для минимизации гладкой, но крайне нелинейной целевой функции.Моя проблема в n-размерности, с n> 250 в некоторых случаях.Я обнаружил, что использование разных начальных точек значительно улучшает решение, что можно ожидать от целевой функции с несколькими локальными минимумами.Я использовал haltonset для генерации квазислучайной начальной точки в n-мерном гиперкубе, который я затем масштабировал в n-мерное гиперпространство, определяемое нижней и верхней границами моей задачи.
Однако я не уверен, достаточно ли равномерно я покрываю пространство возможных решений (определяемое нижними и верхними границами).Это может быть связано с двумя проблемами: 1) начальная генерация квазислучайных точек недостаточно «плотная», 2) изменение масштаба может создать дыры в гиперпространстве из-за сильно отличающихся границ
Есть лиТаким образом, я могу убедиться, что мои начальные точки адекватно покрывают мое пространство (возможно, укажите максимальное расстояние между моими начальными точками в n-измерении).
Спасибо за вашу помощь
См. Код ниже, который я использую:
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