2014 dxdy logo

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

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


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


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



Начать новую тему Ответить на тему
 
 Задача на оптимизацию
Сообщение21.11.2010, 15:33 


21/11/10
2
Добрый день уважаемые участники форума.

Есть набор чисел(массив) b - 0..n. Известно, что, к примеру b[5]>b[4]. Есть упорядоченный(по убыванию) массив c. Есть несколько опорных точек, вида b[4]*c[4] = X, X заранее известно. Так же, для всех b и c выполняется неравенство b[i]*c[i]>b[i+1]*c[i+1]. Стоит задача, минимизировать числа из массива b, причем желательно, чтобы отклонение элементов массива c от начальных было минимально.
Для того чтобы все стало понятно приведу график.
Изображение

Синим обозначен график построенный на основе элементов b
Красным - на основе c
И желтым обозначено произведение c[i]*b[i]
(Все с домножением на некоторые коэффициенты, чтобы можно было увидеть все 3 графика)

Необходимо максимально опустить синий график, при этом должен соблюдаться ряд условий, которые я указал выше, но еще раз скажу, другими словами.
Нам точно известен ряд точек на желтом графике, так же нам известно, что желтый график должен быть убывающим, т.е. b[i]*c[i]>b[i+1]*c[i+1] для всех i.
Начальное неравенство для всех b должно соблюдаться, т.е. к примеру b[1]<b[2]. Отклонение точек красного графика от начальных нежелательно, но, как видим при i = 8 и 9 без этого не обойтись, поскольку тогда не выполнится неравенство b[7]*c[7]>b[8]*c[8]>b[9]*c[9].

Симплекс, как я понимаю, тут неприменим, если воспользоваться метод градиентного спуска, то велика вероятность, что он где-нибудь застрянет.
Как лучше решить эту задачу?

 Профиль  
                  
 
 Re: Задача на оптимизацию
Сообщение21.11.2010, 18:27 
Заслуженный участник
Аватара пользователя


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

 Профиль  
                  
 
 Re: Задача на оптимизацию
Сообщение21.11.2010, 18:44 


21/11/10
2
мат-ламер в сообщении #378638 писал(а):
Во-первых, симплекс-метод тут не причём, поскольку это не задача линейного программирования (ввиду нелинейных ограничений). Во-вторых, для задачи нелинейного программирования трудно дать гарантию, что какой-то метод не будет застревать (если, конечно, эта задача не является выпуклой). На первых шагах можно использовать градиентный метод (без гарантии). Смотрите книги по оптимизации (Практическая оптимизация - Гилла и Мюррея).


Наверняка задача вроде моей является типовой и для нее уже есть библиотеки\пакеты. Например маткад или что-то типа того, может мне помочь? Что насчет полного перебора(точность должна быть до сотых).

 Профиль  
                  
 
 Re: Задача на оптимизацию
Сообщение21.11.2010, 18:49 
Заслуженный участник
Аватара пользователя


30/01/09
7068
Цитата:
Наверняка задача вроде моей является типовой и для нее уже есть библиотеки\пакеты
Не факт. Насчёт полного перебора также сомнительно.

 Профиль  
                  
 
 Re: Задача на оптимизацию
Сообщение22.11.2010, 17:04 


02/11/08
1193
Начните, например, с функции "поиск решения" в Excel - только сначала четкую постановку напишите - желательно не словами, а нормальными формулами.

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

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



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

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


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

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