2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Задача нелинейной оптимизации, какими методами лучше решать?
Сообщение14.05.2013, 15:18 


14/05/13
2
Здравствуйте!
Помогите, пожалуйста, методическими рекомендациями по оптимизационным методам.

Суть проблемы такова:
При переходе от задачи из сферы теории вероятности в сферу оптимизационных задач
формируется следующая оптимизационная задача:

Целевая функция многих переменных - линейная, вида $f(x) =a_1\cdot x_1 + ...+ a_k\cdot x_k$
Ограничения задачи:
1) линейные равенства $g_i(x)=a $(или неравенства $g_i(x) \leq a $, $a$ - число от 0 до 1 ):
$g_i(x) = c_i_1\cdot x_1 + ... +c_i_k\cdot x_k$
2) квадратичные, представимые в виде суммы квадратичной формы, линейной функции и вектора констант:
$h_i(x) =x \cdot A \cdot x^T + b \cdot x + d $

К сожалению, матрица $A$ (проверено по всем критериям) в общем случае не позволяет функции
$x \cdot A \cdot x^T + b \cdot x + d $ быть выпуклой, поэтому методы выпуклой оптимизации не годятся для решения (кстати, верно ли это?)
3) стандартные ограничения на переменные $x_i $: $ x_i $ принадлежит $[0,1] $

Размерность задачи большая (при заданном $n$ - $ 2^n$ переменных, соизмеримое с $2^n$ количество ограничений.

Подскажите, пожалуйста,
1) существуют ли прямые методы решения данной задачи?
2) если нет, то какие из итерационных методов, по вашему мнению, будут наиболее эффективными при ее решении (критерий качества - например, скорость схождения алгоритма или работа на задачах большой размерности)

P.s. Я пробовал применять такие методы, как секвенционное квадратическое программирование (SQP) и генетические алгоритмы (GA's) (и в принципе, задачи размерности $n =12$ я приближенно ими решал, но время хорошо так "кушалось")

Заранее спасибо!

 Профиль  
                  
 
 Re: Задача нелинейной оптимизации, какими методами лучше решать?
Сообщение14.05.2013, 19:45 
Заслуженный участник
Аватара пользователя


30/01/09
7068
1. Если ограничения в виде равенств, то выпуклость может быть только в случае их линейности. Поэтому выпуклость тут не причём. 2. Какие методы считать прямыми, а какие - итерационнными, сказать сложно. Они все итерационные. Другое дело, если на промежуточном этапе надо решить, допустим, систему лин. уравнений, то её можно решать по-разному. 3. Какие методы будут более эфективны - сказать трудно, всё зависит от специфики задачи, и о того как данный метод использует эту специфику. Причём на разных размерностях вперёд могут выходить то один, то другой метод. 4. Какой метод Вам использовать зависит от того, каким ПО Вы пользуетесь.

 Профиль  
                  
 
 Re: Задача нелинейной оптимизации, какими методами лучше решать?
Сообщение14.05.2013, 23:15 


14/05/13
2
Простите, неправильно выразился, прямые (сходящиеся к глобальному экстремуму) и приближенные (гарантирующие нахождение решения с наперед заданной точностью) методы.
ПО: пользуюсь математическими средами MATLAB (R2012a), Wolfram Mathematica (8).

Может быть кто-то сможет дать ссылку на литературу, в которой описаны методы решения оптимизационных задач с линейной целевой функцией и квадратичными функциями-ограничениями?

 Профиль  
                  
 
 Re: Задача нелинейной оптимизации, какими методами лучше решать?
Сообщение15.05.2013, 20:50 
Заслуженный участник
Аватара пользователя


30/01/09
7068
Если используете МатЛаб, то учтите, что там методы делятся на три категории в зависимости от размера задачи. Надо явно указать, что решаются задачи большого размера. Также надо использовать разреженные матрицы. Если захотите сами чего-нибудь запрограммировать, то можете использовать метод модифицированной функции Лагранжа. Он прост для программирования. Вначале можно использовать метод штрафных функций и вы получите хорошее приближение для метода МФЛ (в том числе и по двойственным переменным). На каждм шаге придётся решать задачу оптимизации без ограничений. Если размерность задачи большая, то можно использовать метод сопряжённых градиентов или попробовать использовать станартную функцию МатЛаба.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group