2014 dxdy logo

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

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




 
 Численные методы опт-ции. Метод штрафных функций. Алгоритм
Сообщение26.12.2011, 14:19 
Доброе время суток.
Достаточно давно, для решения данной задачи была написана программа на языке Object Pascal (Delphi)
Сейчас потребовалось заново реализовать этот алгоритм, но, к сожалению исходники были частично утрачены.
Ввод и проверка данных уже реализована, остался, собственно, сам алгоритм метода.
В предыдущей реализации был дополнительно использован метод Хука-Дживса, но как сейчас его связать с основным методом - я не представляю.
На этот раз решил реализовать методы штрафных и барьерных функций в одном приложении (предыдущая реализация была в разных).

сейчас алгоритм работы приложения построен следующим образом:

1. Указание метода (барьерных или штрафных функций)
2. Ввод выражения целевой функции
3. Ввод ограничений
4. Ввод начальных значений
5. Ввод значений параметров
--- точность алгоритма, E (E > 0)
--- параметры метода штрафов
--- - параметр R (R > 0)
--- - параметр C (C > 1)
--- параметры метода Хука-Дживса
--- - параметр D (D >= E)
--- - параметр L (L > 0)
--- - параметр A (A > 1)

(назначение некоторых параметров я уже, к сожалению, не помню)

Собственно, алгоритм расчета, по шагам (как оно у меня было раньше расписано в исходниках, но без комментариев):

1. какое-то действие (???)
2. опять какое-то действие (???)
3. сравнение значения целевой функции [F(n)] с ее же значением, но на предыдущей итерации [F(n-1)].
если F(n) < F(n-1) {и выполняются ограничения} то к шагу 4, иначе - к шагу 5
4. принимаем значения X(i)=X(i-1)
5. если D <= E, то конец алгоритма, иначе D=D/A и переход к шагу 2

Отсюда вопрос, какие действия происходят на шагах 1, 2 и где нужно применять алгоритм Хука-Дживса?

Заранее благодарен.

 
 
 
 Re: Численные методы опт-ции. Метод штрафных функций. Алгоритм
Сообщение27.12.2011, 14:00 
Используй вместо Хука любой другой метод вычисления минимума функции, метод штрафных функций не привязан к конкретному методу вычисления минимума на текущей итерации. Возьми метод Ньютона или градиентный с дроблением - довольно легко программируются, если есть модули аналитического вычисления производных(если нужно могу кинуть ссылку).

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group