27-08-2008 06:11 Помощь зала!
Пусть у нас есть непрерывная функция многих переменных, типа, 10

Все переменные лежат в [0..1]

Че за функция -- нам не известно, но мы можем посчитать её значение в любой точке (путем запуска сложной процедуры, которую в математическом виде хрен представишь). Известно что функция ограничена, и принимает значения (0..0.3).

У этой функции на [0..1]^10 есть много экстремумов. Надо найти её глобальный минимум, или хотя бы подойти близко. Идеи?

Понятно, что можно тупо порезать пространство [0..1]^10 на маленькие 10-мерные кубики, подставить центр каждого кубика в функцию, и посчитать. И оно даже сработает. Лет этак через 500. Короче, нужен численный метод нахождения экстремума функции многих переменных. Есть такой?

Упдате:
Gradient Descent
И еще Newton's
Но это все локальные минимумы. А глобальный?

Упдате:
Simulated Annealing
Но это нифига не численный метод, а совсем даже технология поиска. К математике имеет мало отношения.
Комментарии:
27-08-2008 15:27
флудер-неудачник
В такой формулировке вообще не вижу решения. Есть N^10 точек, каждая из которых равновероятно может быть максимумом. На поиск одной требуется t сек. Вот и получаем время обхода t N^10 = 500 лет.
27-08-2008 20:59
Камрад
В этих условиях - только метод Монте-Карло, те самые маленькие кубики. Но достоверность значения минимума не рассчитаешь без дополнительной информации о самой функции. Можно только дать раскладку по достоверности аргументов экстремума. Какая она нужна, и при какой точности - считай исходя из своих возможностей.

Любой метод поиска экстремума завязан на вид функции, на наличие/отсутствие ее свойств. Без них - только так.
добавить комментарий
Закрыть