2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

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

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Минимизация кусочно-квадратичной функции многих переменных
Сообщение29.09.2011, 15:17 


03/11/10
5
Стоит задача в минимизации кусочно-квадратичной функции многих переменных.
Функция имеет вид:

$F(x) = b^Tx - \frac {1} {2} |(A^T x - c)|^2 $,

здесь A - сильно разреженная матрица размера m на n, m << n; x, b - вектор размера m; c - вектор размера n.

Сейчас используется метод Ньютона, однако, из-за того что функция кусочно-квадратичная, он сходится не за одну итерацию, и на каждой итерации приходится решать систему линейных уравнений. Для решения разреженных СЛАУ используется метод Холецкого и не удается хорошо распараллелить задачу. Использование итерационных методов для решения СЛАУ медленнее на 1-2 порядка по сравнению с методов Холецкого, их также неудается распараллелить из-за необходимости вычисления предобуславливателя. Метод сопряженных градиентов без предобуславливателя работает на несколько порядков медленнее.

Хотелось бы найти какой-нибудь альтернативный метод, который бы работал возможно не так быстро, но хорошо бы параллелился.

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

Есть ли какие-то альтернативные методы поиска минимумов?

 Профиль  
                  
 
 Re: Минимизация кусочно-квадратичной функции многих переменных
Сообщение29.09.2011, 19:30 
Заслуженный участник


12/08/10
1677
А можно узнать по подробнее ограничения на функцию:
Непрерывность, выпуклость, ограничение на количество кусков, способ задания кусков?

По идее надо найти минимум в каждой области и на каждой границе всех размерностей и взять общий минимум.

 Профиль  
                  
 
 Re: Минимизация кусочно-квадратичной функции многих переменных
Сообщение29.09.2011, 19:34 
Заслуженный участник
Аватара пользователя


30/01/09
7068
Nik0las в сообщении #487666 писал(а):
Сейчас используется метод Ньютона, однако, из-за того что функция кусочно-квадратичная, он сходится не за одну итерацию

А за сколько?
Nik0las в сообщении #487666 писал(а):
Хотелось бы найти какой-нибудь альтернативный метод, который бы работал возможно не так быстро, но хорошо бы параллелился

Метод альтернативный какому? Методу Ньютона? Методу Холецкого?

 Профиль  
                  
 
 Re: Минимизация кусочно-квадратичной функции многих переменных
Сообщение30.09.2011, 08:12 


03/11/10
5
Null
Прошу прощенья, описался в задании функции, вид функции такой:

$F(x) = b^T x - \frac {1} {2} |(A^T x - c)_+|^2$

Оператор "+" означает что если значение больше нуля, оно остается без изменений, а если меньше - зануляется.
Соответственно функция непрерывна, всюду имеет первую производную, ограничения на количество кусков нет, способ задания - через нелинейный оператор "+", модуль означает норму вектора L2.

Области в которых ищется минимум неизвестны, да и когда число строк в матрице порядка 10e6-10e7 перебор всех координат очень дорогое занятие.

мат-ламер
Цитата:
А за сколько?

В зависимости от размерности задачи по-разному. Для одних и тех же матриц сильно зависит от параметра c.
Например сейчас взял тестовую задачу с матрицей 41x136, 691 ненулевой элемент, сходится где-то за 10-30 итераций (зависит от некоторых параметров в методе Ньютона). Эта же задача используя скорейший спуск и сопряженные градиенты вообще практически несходится, что-то близкое к решению возникает где-то на 10e5 -10e6 итерациях.

Цитата:
Метод альтернативный какому? Методу Ньютона? Методу Холецкого?

Вообще, Ньютону.

С решением СЛАУ уже перекопал все что только можно, сейчас уже опробовано порядка 10 библиотек с разными методами. Холецкий пока быстрее всех на 1-2 порядка. Даже распараллеливание не спасает.

 Профиль  
                  
 
 Re: Минимизация кусочно-квадратичной функции многих переменных
Сообщение30.09.2011, 10:03 


03/11/10
5
Еще хотел добавить, что при такой записи функции необходимо найти максимум.

 Профиль  
                  
 
 Re: Минимизация кусочно-квадратичной функции многих переменных
Сообщение30.09.2011, 19:57 
Заслуженный участник
Аватара пользователя


30/01/09
7068
Во-первых, можно ознакомиться с трудами Н.З.Шора. У него была книга "Методы минимизации недифференцируемых функций и их приложения". Киев. 1979. Но вряд ли эта книга Вас удовлетворит, поскольку методы из этой книги не приспособлены для задач с разреженными матрицами. Но после этой книги у него были статьи как раз для таких задач. Подозреваю, что его методы используются в пакете http://www.openopt.org. Там, кстати, есть форум. Можете и там свой вопрос задать.
Во-вторых, посмотрите книгу http://www.math.kemsu.ru/kmk/subsites/Krutikov_RelaxMeth/index.htm (третью и четвёртую главу).
В-третьих, почитайте вот эту статью http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=zvmmf&paperid=775&option_lang=rus. Они исходят из задачи линейного программирования. Строят для неё модифицированную функцию Лагранжа, которая выглядит как и Ваша целевая функция. Затем минимизируют её методом Ньютона. Там внизу есть статьи, ссылающиеся на эту статью. См. статью Гаранжа и др. Там рассмотрена параллельная реализация этого метода. Но в сети (на http://www.mathnet.ru) её пока нет.
В-четвёртых, посмотрите книгу Бертсекаса "Convex Analysis and Optimization" последнюю главу.

 Профиль  
                  
 
 Re: Минимизация кусочно-квадратичной функции многих переменных
Сообщение03.10.2011, 08:03 


03/11/10
5
Спасибо за ссылки, посмотрю, может что-то получится.

 Профиль  
                  
 
 Re: Минимизация кусочно-квадратичной функции многих переменных
Сообщение03.10.2011, 09:58 


17/10/08

1313
А кто в этой задаче «куски»?
Видимо, еще имеет смысл посмотреть метод внутренней точки. Разработан в 80-х годах, хорошо себя зарекомендовал на громоздких задачах. Если задача не учебная, то имеет смысл читать аннотации к готовым программам (например, IPOPT)
Никак не могу сообразить, имеет ли место выпуклость …

 Профиль  
                  
 
 Re: Минимизация кусочно-квадратичной функции многих переменных
Сообщение05.05.2012, 11:28 


05/05/12
11
Nik0las в сообщении #487952 писал(а):
Null
Прошу прощенья, описался в задании функции, вид функции такой:

$F(x) = b^T x - \frac {1} {2} |(A^T x - c)_+|^2$

Насколько я понял c - это вектор, основное слагаемое -квадрат нормы вектора с положительными компонентами: $|(A^T x - c)_+|^2$

Идея:
0. $A_1 = A, c_1 = c; i=1;
1. Минимизируем $F(x) = b^T x - \frac {1} {2} |(A_i^T x - c_i)|^2$.
Получаем x_i

2. Выбрасываем из A строки (столбцы?), из c - компоненты с номерами, которым соответствуют отрицательные компоненты в $(A^T x_i - c)$.
Получаем $A_{i+1}, c__{i+1} = c;
i=i+1;

3. Если нашлось, что выбрасывать, то переходим к 1.
Иначе стоп.

Идея №2: использовать сглаживание функции $(y)_+$ с праметром $\varepsilon > 0$, решать сглаженные задачи, устремлять $\varepsilon$ к нулю.

 Профиль  
                  
 
 Re: Минимизация кусочно-квадратичной функции многих переменных
Сообщение19.10.2012, 05:09 


05/12/11
18
Задачу можно привести к обычному квадратичному виду (без оператора $+$):

maximize $b^Tx-y^Ty$
s.t.
$Ax-c \leq y$
$0 \leq y$

а дальше батарея обычных методов для QP

 Профиль  
                  
 
 Re: Минимизация кусочно-квадратичной функции многих переменных
Сообщение27.10.2012, 15:54 
Аватара пользователя


01/06/11
19
Если еще нужны параллельные версии некоторых алгоритмов решения СЛАУ, то можете посмотреть их тут

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

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



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

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


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

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