2014 dxdy logo

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

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


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


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



Начать новую тему Ответить на тему
 
 Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 17:31 


28/12/10
20
Емкость отстойника для жидких отходов должна составлять 40 000 л. Изготовляется отстойник из железобетона толщиной 10 см. Определить геометрические параметры отстойника, при которых на его изготовление пойдет минимальное количество бетона. Учесть, что отстойник имеет крышку.

Изображение

Формулы для рассчета примерно такие:

$S = 0.1$

$A = (w/2 - \sqrt{h^2+(w/2)^2} \cdot S/h)(h-2 \cdot \sqrt{h^2+(w/2)^2} \cdot S/w)(l-2S) = 40000 $

$f=S(hw+(l-2S)(2 \cdot \sqrt{h^2+(w/2)^2} -2hS/w-wS/2h))$

$f$ -- это целевая функция, которую надо минимизировать.
$A$ -- это объем бетона, за который нельзя вылезти.
$S$ -- 10 сантиметровая стенка.

Очевидно что в данном случае это задача с нелинейными ограничениями.
Есть ли какая-нибудь библиотека под c или cpp которая бы могла это рассчитать?

Может быть существует некий волшебный способ(простой в реализации) чтобы её лианеризовать и потом использовать какое-нибудь злп?

Короче говоря как лучше это решить в данном случае? То что я смотрел(nlopt например) вроде бы использует градиенты,
информации о которых у меня вроде как нет, ещё смотрел Levenberg-Marquardt, он как я понял для реализации ограничений
для переменных вида $x_1 \in [a \ldots b]$ вместо того что требуется тут(выражение, которое зависит от переменных).

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 17:37 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Оптимизировать один раз одну простенькую функцию? Сишечка (да и вообще любой язык программирования) здесь - это из пушки по воробьям.

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 17:50 


28/12/10
20
Цитата:
>Оптимизировать один раз одну простенькую функцию? Сишечка (да и вообще любой язык программирования) здесь - это из пушки по воробьям.


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

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 17:57 
Аватара пользователя


26/05/12
1700
приходит весна?
Отстойник в виде сферы был бы повместительней. На крайняк в виде цилиндра. Задача не является нелинейной. Форма и объём тела заданы, необходимо найти такие размеры тела, чтобы поверхность была минимальна. Тут, правда, не учтутся края, но после качественного решения можно будет уточнить задачу и решить её точно.

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 18:05 
Супермодератор
Аватара пользователя


20/11/12
5728
 ! 
e7z0x1 в сообщении #906304 писал(а):
>Оптимизировать один раз одну простенькую функцию? Сишечка (да и вообще любой язык программирования) здесь - это из пушки по воробьям.
e7z0x1, цитаты оформляйте тегом quote, пользуйтесь кнопками Изображение и Изображение

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 19:08 


28/12/10
20
B@R5uk в сообщении #906310 писал(а):
Отстойник в виде сферы был бы повместительней. На крайняк в виде цилиндра. Задача не является нелинейной. Форма и объём тела заданы, необходимо найти такие размеры тела, чтобы поверхность была минимальна. Тут, правда, не учтутся края, но после качественного решения можно будет уточнить задачу и решить её точно.


А как привести её к линейной? "Благодаря" теореме Пифагора в данном случае создается сумма квадратов под корнем, которую нельзя убрать преобразованиями выражения.
Может быть есть какой-то другой способ решения? Я как бы не совсем компетентен в этом вопросе, а сдавать задачу как-то надо. Задача оптимизации нелинейной функции с нелинейным ограничением меня угнетает. К тому же в данном случае не понятно какой алгоритм лучше для решения. Может есть какой-то кодогенератор? Я смотрел матлаб, но coder не поддерживает функции для оптимизации, а достать math code у меня пока не получилось

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 19:56 
Аватара пользователя


26/05/12
1700
приходит весна?
Алгоритм решения прост: есть ограничение, из него выражаем одну из варьируемых величин и подставляем в формулу целевого значения. Затем оставшиеся величины варьируем для получения оптимального целевого значения. Поиск минимума/максимума функции одной/нескольких переменных представляет какие-либо трудности?

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 20:02 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Пренебрегите толщиной стенок. Это крохоборство. Очевидно же, что она ничтожна в сравнении с размерами.

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 20:47 


28/12/10
20
B@R5uk в сообщении #906387 писал(а):
Алгоритм решения прост: есть ограничение, из него выражаем одну из варьируемых величин и подставляем в формулу целевого значения. Затем оставшиеся величины варьируем для получения оптимального целевого значения. Поиск минимума/максимума функции одной/нескольких переменных представляет какие-либо трудности?


Эм, можете показать что вы имеете в виду?
Ограничение на объем без учета стенок вроде бы $whl/2 = 40$
Целевая функция без учета стенок $f = 2l \cdot \sqrt{h^2+(w/2)^2}+h \cdot w$

Если подставить вместо $l~ \rightarrow 80/wh$ то получается, что функция $f$ без ограничений. А как смешать ограничения объема в минимизацией площади я при таком подходе не понял.

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 20:51 
Аватара пользователя


26/05/12
1700
приходит весна?
Вы сначала подставьте, а там видно будет.

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 21:16 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
e7z0x1 в сообщении #906421 писал(а):
Если подставить вместо $l~ \rightarrow 80/wh$ то получается, что функция $f$ без ограничений
Ну да. Умеете находить экстремумы функции без ограничений? Там просто.
Или цель - не ответ, а демонстрация метода, причём именно этого?

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 21:31 


28/12/10
20
ИСН в сообщении #906437 писал(а):
e7z0x1 в сообщении #906421 писал(а):
Если подставить вместо $l~ \rightarrow 80/wh$ то получается, что функция $f$ без ограничений
Ну да. Умеете находить экстремумы функции без ограничений? Там просто.
Или цель - не ответ, а демонстрация метода, причём именно этого?


Экстремум найти и правда просто. Собсно я так понимаю имеется в виду взять градиент и по нему посчитать. Там прога ну 50 строк где-то, к тому же она у меня есть.

Ну подставлю я значения, тогда получается полный маразм типа того что при каких-нибудь $h = 0.001000 w = 0.101000 f = 0.080117$ то есть не надо иметь 7 пядей во лбу, чтобы понять, что чем меньше ей даешь тем больше она тому радуется, никакого намека на пресловутые 40 кубов тут нет.

Допустим это уравнение. В mathematica оно не считается. Одну переменную мы выбросили, а надо 3. При чем тут ограничения я не понял.

$h w + (160 h \sqrt{h^2 + w^2/4})/w == 0$

Выдает оно следующее
Код:
NMinimize::nnum: The function value False is not a number at {h,w} = {0.918621,0.716689}. >>


Либо я как-то не так понял вашу идею и вообще что-то не то делаю.

Цель я так думаю получить правильный ответ, каким методом дело десятое.

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 21:39 
Аватара пользователя


26/05/12
1700
приходит весна?
Перепроверьте формулы.

Для поиска экстремума данной функции численные методы не нужны.

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 22:00 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
e7z0x1 в сообщении #906446 писал(а):
Экстремум найти и правда просто. Собсно я так понимаю имеется в виду взять градиент и по нему посчитать.
Имеется в виду с помощью пальцев рук. Без компа. Ну, как в седой древности делали, знаете же? Производная там, уравнения, вот это всё.

 Профиль  
                  
 
 Re: Нелинейная оптимизация с ограничениями
Сообщение10.09.2014, 23:19 


10/09/14
171
Во-первых, в задаче указаны лишние (зависимые параметры). $W$ зависит от альфа и $H$.
Во-вторых, по-моему, проще всего применить метод Лагранжа для условного экстремума.

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

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



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

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


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

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