Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск минимума при ограничениях, constrained optimization 
:(
    Опции темы
kamre
Дата 24.3.2006, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: нет
Всего: 13



Задача: есть нелинейная система уравнений и целевая фунция, нужно найти ее минимум на решениях системы.
Особенности задачи таковы: размер системы нелинейных уравнений очень большой (>= 1000 уравнений), система почти всегда недоопределенная (переменных больше, чем уравнений), сами уравнения обычно квадратичные и не очень сложные, т.е. можно считать, что в каждое уравнение входит не более k переменных (k<=10 - типичный случай), целевая функция очень проста и имеет вид: (x1-x10)^2 + .. + (xk-xk0)^2, где xi0 - константы и в типичном случае k <= 10.
Какие есть способы решения такой задачи? И какие из них будут наиболее эффективными, учитывая особенности задачи?
PM MAIL   Вверх
Reptor
Дата 24.3.2006, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



Смотри нелинейное программирование. Вообще такие задачи (нелинейные) решаются с помощью диф. уравнений.
PM MAIL ICQ   Вверх
podval
Дата 24.3.2006, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Попробуй взять MATLAB и решить хотя бы частный пример. Там можно задать вывод всей диагностической информации по ходу решения. По ней будет видно, какой алгоритм выбирается (исходя из размерности). Для больших размерностей там могут использоваться сопряженные градиенты, последовательное квадратичное программирование (SQP) и еще что-то.
PM WWW ICQ   Вверх
kamre
Дата 26.3.2006, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: нет
Всего: 13



Цитата(Reptor @ 24.3.2006, 20:29)
Вообще такие задачи (нелинейные) решаются с помощью диф. уравнений.

А можно поподробнее, пожалуйста, про то, как задачи минимизации при ограничениях решаются с помощью диф. уравнений?
Добавлено @ 12:37
podval, честно говоря в MatLab я не силен. Идея ваша показалась интресной, попробую поставить и поразбираться.
А все-таки, как вы это себе представляете ввод системы из 1000 уравнений в MatLab? Или это можно будет делать через простой текстовый файл (собственно все данные о системе и целевой функции хранятся у меня в файле, но в своем тесктовом формате)?
PM MAIL   Вверх
podval
Дата 27.3.2006, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Естественно, ввод через файл. В Матлабе всё делается в матричном виде и он справится с размерностями более 1000.
Ничего сложного там нет, язык - почти что С.
PM WWW ICQ   Вверх
KarboFos
Дата 27.3.2006, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 1.11.2005

Репутация: нет
Всего: нет



а это не методы оптимизации нужны случайно ? там функция Лагранжа и все такое ?
PM MAIL   Вверх
kamre
Дата 27.3.2006, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: нет
Всего: 13



Цитата(KarboFos @ 27.3.2006, 23:01)
а это не методы оптимизации нужны случайно ? там функция Лагранжа и все такое ?

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

Это сообщение отредактировал(а) kamre - 31.3.2006, 09:12
PM MAIL   Вверх
kamre
Дата 31.3.2006, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: нет
Всего: 13



podval, опять обращаюсь к вам. Установил MatLab7, более или менее разобрался с m-файлами. У меня теперь есть вопросы по запуску оптимизации с ограничениями. Создаю файл с целевой функцией:
Код

function f = myObj(x)
 f = ...;

"..." - это целевая функция из моего файла.
Правильно ли я понимаю (после прочтения help), что при такой реализации MatLab в методах оптимизации не использует аналитические производные функции myObj?
Аналогичная ситуация с ограничениями. Файл:
Код

function [c, ceq] = myConstr(x)
  c = [];
  ceq = [...,...,...];

"...,...,..."-уравнения (обычно квадратичные) из моего файла.
В этом случае также получается, что MatLab при оптимизации не использует аналитические производные для этих уравнений?
Такие вопросы появились от того, что MatLab7 не смог решить мою задачу (3 m-файла в attachment, запускать myOpt).
Что можно сделать, чтобы в процессе оптимизации использовались аналитические производные в myObj и myConstr (если они уже не используются)? Можно ли их как-то автоматически, с помощью MatLab, добавить в функции myObj и myConstr?

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  myMatLabMinimization.zip 2,13 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1050 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.