Оптимизация одномерных функций

advertisement
Оптимизация одномерных
функций
Авторы: Ашмарина Татьяна, Блохин Олег,
Кутлаев Максим, Юданов Вячеслав
Руководитель: Сысоев Александр Владимирович
ITLab, 2009
1
Содержание
Постановка задачи
 Предметная область
 Архитектура
 Реализация
 Демонстрация

ITLab, 2009
2
Постановка задачи
ITLab, 2009
3
Постановка задачи
Есть функция f(x) заданная на отрезке
[a ; b]
 Найти минимальное значение функции
на заданной области

ITLab, 2009
4
Постановка задачи

Разработать программный комплекс
для численного решения задач
одномерной оптимизации
◦ Локальные методы оптимизации:
 Ньютона
 Золотое сечение
◦ Глобальные:
 Стронгина
 Пиявского
◦ Построение графика и отображение
результатов
ITLab, 2009
5
Локальные методы
ITLab, 2009
6
Локальные методы
Метод Ньютона
Принцип работы: Находит ближайший
корень производной f '(x0) = 0
f ' ( xi )
xi  1  xi 
f " ( xi )
ITLab, 2009
7
Локальные методы
Золотое сечение
[
a
c
]
b
d
x
| AC | | CB | 1  5


| CB | | AB |
2
ITLab, 2009
8
Глобальные методы
ITLab, 2009
9
Глобальные методы
Характеристически представимые
[
a
]
b
x
R – характеристика интервала
1. Выбирается интервал с максимальной характеристикой
2. Выбирается точка на этом интервале
3. Проводится следующее испытание
Оценка минимума – это наименьшее значение из всех найденных
ITLab, 2009
10
Глобальные методы
Метод полного перебора
x
a
R(i )  xi  xi  1
b
- характеристика – длина интервала
xk  1  0.5 * ( xt  1  xt )
– следующая точка – середина интервала
ITLab, 2009
11
Глобальные методы
Метод ломаных
z1
z2
x
x1
M – оценка константы Липшица
x2
| F ( x)  F ( y ) | L | x  y |
Характеристика интервала – оценка минимально возможного
значения на нём
Правило выбора точки:
0.5 * ( zt  zt  1)
xk  1  0.5 * ( xt  1  xt ) 
M
ITLab, 2009
12
Глобальные методы
Метод Стронгина
zb
za
x
a
b
r – множитель для оценки константы Липшица
( zi  zi  1)
M r
( xi  xi  1)
Если
M 0
то
M 1
Характеристика интервала – величина, пропорциональная
вероятности, расположения минимума на нём
ITLab, 2009
13
Разработанное ПО
ITLab, 2009
14
Архитектура комплекса
UI Part
DLL
Data
Solver
Function
+GetEstimation()
+Begin()
+End()
+Initialize(*Function, *Data)
+Optimize()
+operation(double x)
ITLab, 2009
15
Function
ITLab, 2009
16
Реализация
Функция
Function
+operation(double x)
FormulFunction
TableFunction
ITLab, 2009
17
Реализация
Class FormulFunction
 Функция задается строкой
 Функция может быть параметрической
 Для разбора используется обратная
польская нотация
http://en.wikipedia.org/wiki/Reverse_Polish_notation
ITLab, 2009
18
Реализация
Class TableFunction
 Таблица задается из файла специального
вида
 Для интерполяции функции по таблице
значений используется кубический
сплайн
http://mathworld.wolfram.com/CubicSpline.html
ITLab, 2009
19
Solver
ITLab, 2009
20
Реализация
Решатель
Solver
+Initialize(*Function, *Data)
+Optimize()
Newton
+Optimize()
BruteForce
GoldSection
+Optimize()
CharacterSolver
+Optimize()
#R()
#NextPoint()
#ForEachInterval()
Pyavsky
Strongin
ITLab, 2009
21
GUI
ITLab, 2009
22
Реализация
GUI
ITLab, 2009
23
Реализация
GUI
Для построения графиков функций
используется библиотека ZedGraph,
написанная на С#.
 Демонстрация

http://zedgraph.org
ITLab, 2009
24
Заключение
Разработан программный комплекс
одномерной оптимизации
 Получен опыт работы в команде

ITLab, 2009
25
Вопросы
???
ITLab, 2009
26
Контакты
Ашмарина Татьяна
ashmarina.tatiana@yandex.ru
 Блохин Олег
blohin.o.d@gmail.com
 Кутлаев Максим
kutlaev.m@gmail.com
 Юданов Вячеслав
judanov.v@gmail.com

ITLab, 2009
27
Download