Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 Как правильнее поступить
Привет, всем!

Я ищу глобальный минимум функции 6 переменных.
Изначально идея была в том, чтобы разыграть ~ 100 выборок разыгранных случайным образом значений входных параметров и использовать их как начальные точки для нахождения глобального минимума.
Но, стало известно, что для других целей будет нужно будет выполнить 10 000 расчетов кода с случайными выборками входных параметров.
Учитывая этот факт, у меня возникла идея из эти 10 000 вариантов отобрать ~100, которые дают наименьшие значения и их использовать в качестве начальных приближений для алгоритма поиска максимума.
У меня вопрос, насколько это будет правильным так делать? Потому что у меня сомнения так как не все те расчеты которые дали минимум могут быть близки к глобальному минимуму.

 Re: Как правильнее поступить
alexey007 в сообщении #1534813 писал(а):
из эти 10 000 вариантов отобрать ~100


Посмотрите эволюционные и роевые алгоритмы. И напишите мне в ЛС

 Re: Как правильнее поступить
В общем случае, как понимаю, невозможно предсказать ни того, что точка будет близка к минимуму, ни даже того, что, начав с этой точки, процесс вообще сойдётся к минимуму. Так что ваш способ, имхо, не хуже любого другого.

 Re: Как правильнее поступить
Аватара пользователя
Если функция гладкая и первые производные ограничены, то можно вдохновиться идеям Васильева "Методы оптимизации". В иных случаях может случиться невесть что.

 Re: Как правильнее поступить
Ну, по идее, надо брать не 100 минимальных точек, а 100 точек равномерно распределенных по области. И еще, при поиске минимума мы будем еще кучу раз считать эту функцию(будем ли?), и лишние 100 запросов могут не сыграть ни какой роли. Хотя, если они платные или считаются час, то да.

 Re: Как правильнее поступить
Аватара пользователя
Null в сообщении #1534835 писал(а):
Ну, по идее, надо брать не 100 минимальных точек, а 100 точек равномерно распределенных по области.
Он берет сначала 10000 равномерно распределенных, и из них топ-100 минимальных, которые затем использует в качестве начальных приближений для 100 итерационных процессов поиска минимума. Это меньше работы, чем запускать 10000 процессов поиска минимума, и более вероятно выйти на глобальный минимум, чем исходить из 100 равномерно распределенных точек. Кстати, я и сама так делала в подобной ситуации, только изначально там брала не 10000 точек, а миллион. Функция была очень плохая, не гладкая, со множеством изломов и локальных минимумов. Так что в смысле математической строгости нельзя утверждать, что нашли глобальный минимум. Хотя и обратное маловероятно.

 Re: Как правильнее поступить
Если есть узкая область $A$ с глобальным минимумом и широкая область $B$ с локальным, но не глобальным минимумом, то 100 минимальных точек могут оказаться в области $B$ и точку случайно попавшую на край области $A$ мы пропустим. Хотя если локальных минимумов много и они распределены равномерно, то ваш способ лучше.

 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group