![]() |
|
|
![]()
|
|
| Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: нет Всего: 2 |
Есть страшная (на первый взгляд) функция.
Надо найти ее максимум при заданных ограничениях методом наискорейшего спуска. Функция описывает доходность портфеля акций - т.е. неизвестные в уравнении обозначают доли того или иного пакета акций в портфеле. Скажу честно, что с универа уже почти ничего не помню об этом методе, кроме его сути, поэтому реализацию скопипастил из Вики. Примерно разобрался. Насколько я понимаю - решаем так: находим частные производные функции и пропорционально им изменяем переменные с уменьшающимся шагом в течении заданного кол-ва итераций. Поправьте, если что. Собственно, где я застрял... Предполагается, что пользователь задает в том числе и количество пакетов акций. Я получаю неизвестное количество неизвестных. Это было непритно, но я поборол (кажется). Проблема в ограничениях функции. Как изменять переменные с учетом ограничений? Конкретно меня смущает вот такое ограничение:
В этот момент написания поста меня посетила мысль - находить соотношение частных производных и менять х-ы так, чтоб они оказывались в таком же соотошении... это похоже на правильную мысль? В любом случае, буду признателен за комментарии по теме ограничений функции в этом методе... При получении новых значений тупо проверять их на соответствие ограничениям или есть иные методы? Например как-то отсекать значения еще до вычисления функции... --------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Коллекция или массив неизвестных - вполне нормальное решение... и циклы. Ну вообще если появилась переменная, то появились и границы для неё... как бы. Наличие ТАКОГО ограничения просто решается выбрасыванием одной переменной. Т.е. если у тебя 4 пакета и соответственно 4 переменных, то ты строишь итерационное уравнение от трёх переменных и решаешь именно его. Четвёртая переменная зависима и однозначно определяется значениями первых трёх. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: нет Всего: 2 |
Ага... спасибо.
--------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
| IBS |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 29.7.2008 Где: Белоруссия Репутация: нет Всего: 6 |
Прочитал суть метода на википедии(да и вообще дофига где)
http://ru.wikipedia.org/wiki/%D0%93%D1%80%...%83%D1%81%D0%BA Не могу понять как найти шаг в методе наискорейшего спуска. Согласно указанной там формуле я должен искать шаг отталкиваясь от него же??? О_о |
|||
|
||||
| VictorTsaregorodtsev |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 28.7.2006 Репутация: 3 Всего: 8 |
Математическая запись такая математическая Хотя не понимаю, что может быть не понятно программисту. Аргмин - "функция", в неё передали некоторый стартовый вариант значения лямбды, из неё получили окончательное значение (может, и не совпадающее с начальным приближением) шага для итерации j. "Телом" функции аргмин будет тот или иной метод одномерной оптимизации (золотое сечение, квадратичная или параболическая аппроксимация,...). |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |