Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Задача оптимизации.

307
15 февраля 2009 года
Artem_3A
863 / / 11.04.2008
Есть задача,оптимизировать функцию вида f(x)+f1(x1)+f2(x2)+....+fn(xn) = A
таким образом что (x+x1+x2+...+xn)/n = Xср(задано) и А минимально. Функции f1...fn отличются только известными коэффицентами. n ориентировачно 58. Какие методы оптимизации и алгоритмы вы можете предложить, дабы решить поставленную задачу??? Начал копать в сторону генетических алгоритмов но пока не очень успешно. Буду очень благодарен если вы подскажите ресурсы где размещены примеры решения подобных программ или подробно описаны алгоритмы и методы.
1.9K
15 февраля 2009 года
GreenRiver
451 / / 20.07.2008
В чем проблема в генетических алгоритмах? Сложность может быть в кодировании в хромосому, а так все по теории вроде получается...

UPD: кажется понял ... сложность получается в кроссовере, потому что надо соблюсти условие (x+x1+x2+...+xn)/n = Xср.
Верно?
505
15 февраля 2009 года
vAC
343 / / 28.02.2006
Как-то нечетко задача сформулирована...
Я правильно понимаю:
найти X = (x, x1, x2, ..., xn), такое что A(X) = f(x) + f1(x1) + f2(x2) + ... +fn(xn) -> min при условии (x+x1+x2+...+xn)/n = Xср, (Xср = const)?
Если так, то для начала надо избавиться от одного из x, используя определяющее соотношение, задающее область ограничения в виде гиперплоскости. Получаем функцию, зависящую уже от n переменных. Для этой функции применяем один из многочисленных методов оптимизации. Если функции f - линейны, то насколько я помню, это задача линейного программирования, решаемая симплекс-методом.
505
15 февраля 2009 года
vAC
343 / / 28.02.2006
Цитата: GreenRiver
Как вариант: можно создать таблицу вычислений функции f() - памяти съест прилично, но выполняться будет очень быстро ... с определенной степенью точности конечно.


Зачем таблицу? Ты говоришь про метод оптимизации нулевого порядка, в котором никаких таблиц не надо, просто перебираем точки пространства (их выбором и определяется метод) и берем ту, которая дает экстремум целевой функции.

307
15 февраля 2009 года
Artem_3A
863 / / 11.04.2008
Функция многопараметрная, но при расчете данной системы параметры представлены набором в 58 штук. Фактически функция может быть представлена как
f(x, l...)=A
f1(x1, l1...)=A1
...................
fn(xn, ln...)=An (n=58) где x - оптимизируемый параметр, остальные известны.
условия для оптимизации в таком случае (А1+...+An) - минимальна, а (x1+...+xn) = Xср заданна. Функция давольно массивна содержит возведение в степень, интегрирование и логарифмирование, но упрощена более чем сейчас не может быть.

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

Знаю что подобные задачи довольно часто имеют место на транспорте, к примеру при состаленни расписаний поездов, трамваев, в судоходтсве. но к сожалению более подробной информации не смог найти...
505
15 февраля 2009 года
vAC
343 / / 28.02.2006
Ну все, что я уже сказал справедливо для решения твоей задачи. Если вычисления производной вызывают сложности, то используй методы нулевого порядка, если же нет, то можно воспользоваться, например, методом Ньютона (http://ru.wikipedia.org/wiki/Метод_Ньютона).

З.Ы.
см. еще http://ru.wikipedia.org/wiki/Методы_оптимизации
1.9K
15 февраля 2009 года
GreenRiver
451 / / 20.07.2008
Цитата: Artem_3A
...


Я так и не понял толком условие :) Но тем не менее: в тех задачах идеально использовать генетику, и если эта типична то, и в ней тоже!
Правда сложность с реализацией кроссовера остается...

P.S. результат задачи найти X = (x, x1, x2, ..., xn)? А то в последнем посте, снова немного неопределенно с этим.

307
16 февраля 2009 года
Artem_3A
863 / / 11.04.2008
Цитата: GreenRiver
Я так и не понял толком условие :) Но тем не менее: в тех задачах идеально использовать генетику, и если эта типична то, и в ней тоже!
Правда сложность с реализацией кроссовера остается...

P.S. результат задачи найти X = (x, x1, x2, ..., xn)? А то в последнем посте, снова немного неопределенно с этим.



Попробую сформулировать понятней, а общем есть некоторая функция f(x, l...) где все параметры кроме х известны, данная функция допустим, для проведения аналогии, описывает расход энергии при движении трамвая, пусть х скорость, а остальные параметры описывают длинну пути, сопротивление движения и так далее. Пусть стоит задача минимизировать расход инергии суммарный на маршрут, для чего делят маршрут на отрезки с одинаковым сопротивлением движению, расход на каждом участки описывает выражение вида f(x,l....) где х скорость l и прочие параметры есть характеристики данного участка маршрута. Чем меньше скорость тем меньше расход энергии, однако трамвай должен укладывать в график, а следовательно средняя скорость движения должна оставать постоянно и равной определенному значению Хср. Так же существует нюанс, на каждом участке пути есть минимально и максимально допустимые скорости по правилам безопасности. В таком случае моя задача в данной модели формулируется следующим образом: подобрать такие значения скоростей на каждом из участков пути что бы расход энергии был минимален, соблюдалась средняя скорость движения маршрута, и значение скорости на каждом участке не выходило за пределы допустимых значений. :):):)

задача примет вид в таком случае
f(x1, l1,...)+...+f(xn, ln,...)=A - min
(x1+...+xn)/n=Xcp
Xmin1<x1<Xmax1
.......................
Xminn<xn<Xmaxn

1.9K
16 февраля 2009 года
GreenRiver
451 / / 20.07.2008
Ясно! Генетический алгоритм вполне подойдет, только нужно поломать голову над кодирование в хромосому и кроссовером.

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

Написать кроссовер, который будет удовлетворять условию (x1+..+xn)/n = Xcp ... думаю чрезвычайно сложно.
Поэтому предлагаю взять любой классический кроссовер - например двухточечный. И к основной функции полезности (минимазация А, расхода электричества) добавить ещё одну (увеличение средней скорости)... И в итоге общая функция полезности , определяющая выживет ли особь - будет определяться комбинацией этих функций...

Ссылками особо поделиться не могу ибо сам хороших ресурсов не знаю :(
276
16 февраля 2009 года
Rebbit
1.1K / / 01.08.2005
Цитата: Artem_3A
Функция давольно массивна содержит возведение в степень, интегрирование и логарифмирование, но упрощена более чем сейчас не может быть.


Позвольте еще раз уточнить. Зависимость значения функции от х линейная ? Или ето х возведение в степень и т.д. и т.п. ?

1.9K
16 февраля 2009 года
GreenRiver
451 / / 20.07.2008
Цитата: Rebbit
Позвольте еще раз уточнить. Зависимость значения функции от х линейная ? Или ето х возведение в степень и т.д. и т.п. ?


Судя по всему: нелинейная, к тому же многопараметрическая - не только от х зависит.

276
16 февраля 2009 года
Rebbit
1.1K / / 01.08.2005
В любом случае я бы 10 раз подумал прежде чем использовать генетический алгоритм да еще с таким ограничением на среднюю скорость. Знания мои в методах оптимизацыи совсем невелики, но насколько помню и с того что сказал vAC можно ефективно решыть задачу с помощю производних. Если взять производные с етих сложных функцый тяжело то можно попробовать апроксимировать их в виде полиномов. Тем более что у нас есть ограничения по х с обех сторон. Значит область апроксимацыи будет не такой уж большой.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог