2012-12-13 6 views
0

Я пытаюсь свести к минимуму функцию, используя один из scipy minimizers. К сожалению, моя функция имеет плато равного значения, поэтому в нем застряли минимизаторы. Мне было интересно, кто из скудных оптимизаторов будет наименее чувствителен к этому и почему?Какой scipy.optimize.minimize менее чувствителен к исходному местоположению?

Я знаю, что я мог бы начать несколько раз в случайных местах, но я не могу сделать это с тем, над чем я сейчас работаю, и должен использовать эти мини-римеры из коробки.

+0

Вы пробовали отжиг? –

ответ

0

Добавить линейную функцию координат в вашу функцию, чтобы дать отличную от нуля, но очень небольшую уклон к плоским областям. Если ваш минимум/максимум находится в плоской области, вам нужно решить, какую часть площади выбрать в качестве окончательного ответа, чтобы вы могли уклониться от всего поиска. После этого вы достигнете минимума/максимума, повторите оптимизацию, используя это как отправную точку и не добавив смещения.

Если есть способ определить границы пространства поиска, вы можете попробовать большое количество стартовых местоположений, которые равномерно проецируют пространство поиска.

Смежные вопросы