Автор работы: Пользователь скрыл имя, 08 Декабря 2013 в 15:14, курсовая работа
В данной работе рассмотрены различные классы задач математического программирования и методы их решения:
- первая группа – задачи нелинейного программирования, решаемые различными методами (методом Куна-Таккера, методом наискорейшего спуска, методами Ньютона и Нелдера-Мида);
- ко второй группе задач относятся – транспортная задача на сети, метод Дворника-Стеклоочистителя.
ВВЕДЕНИЕ 4
1 Методы нелинейного программирования 5
1.1 Конусы возможных направлений в угловых точках допустимого множества задачи ЛП 5
5
1.2 Конусы, сопряженные к конусам возможных направлений в угловых точках допустимого множества задачи ЛП 6
1.3 Проверка условия оптимальности Куна – Таккера в угловых точках допустимого множества задачи ЛП 6
1.4 Найти точку безусловного экстремума (минимума) методом наискорейшего спуска и методом Ньютона 7
1.5 Метод Нелдера-Мида 11
ОБЩИЙ ВЫВОД 18
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 19
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 4
1 Методы нелинейного программирования 5
1.1 Конусы возможных направлений в угловых точках допустимого множества задачи ЛП 5
5
1.2 Конусы, сопряженные к конусам возможных направлений в угловых точках допустимого множества задачи ЛП 6
1.3 Проверка условия оптимальности Куна – Таккера в угловых точках допустимого множества задачи ЛП 6
1.4 Найти точку безусловного экстремума (минимума) методом наискорейшего спуска и методом Ньютона 7
1.5 Метод Нелдера-Мида 11
ОБЩИЙ ВЫВОД 18
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 19
ВВЕДЕНИЕ
В данной работе рассмотрены различные классы задач математического программирования и методы их решения:
- первая группа – задачи нелинейного программирования, решаемые различными методами (методом Куна-Таккера, методом наискорейшего спуска, методами Ньютона и Нелдера-Мида);
- ко второй группе задач относятся – транспортная задача на сети, метод Дворника-Стеклоочистителя.
Расход определенных видов сырья и ресурсов происходит не линейно, а скачкообразно (в зависимости от объема производства). Попытки учесть эти факторы приводят к формулировке более общих и сложных оптимизационных задач. Изучение методов их решения составляет предмет научной области, получившей названия нелинейного программирования.
Общая задача нелинейного программирования (ОЗНП) определяется как задача нахождения максимума (или минимума) целевой функции f(x{, х2,…, хп) на множестве D, определяемом системой ограничений где хотя бы одна из функций f или gi является нелинейной.
Исходные данные к выполнению курсовой работы:
f=(x1-10)2+(x2-12)2+(x1-10)*(x
Начальная точка x(0) =(2;5)
Безусловный минимум х* =(10;12)
13x1+16x2≤208
x2≤10
x1≥0; x2≥0
2
4
6
8
10
12
14
2
4
6
8
10
12
14
y1
у2
х2
х1
Рисунок 1.1.1
2
4
6
8
10
12
14
2
4
6
8
10
12
14
y1
у2
х2
х1
Конусы, сопряженные к конусам возможных направлений в угловых точках допустимого множества задачи ЛП
Рисунок 1.1.2
Докажем, что существует такая точка λ≥0, при которой в точке х* = (10;12) выполняется условие Куна – Таккера.
Экстремум ЦФ находится в точке (48/13;10), *1=-7,68, *2=1,124.
Условие Куна-Таккера
Проверяем точки: (0;0), (16;0), (0;10), (48/13;10), (2;5),(10;12).
Таблица 1.3.1
(0;0) |
(0;10) |
(16;0) |
(48/13;10) |
(2;5) |
(10;12) | |
- |
+ |
- |
+ |
- |
+ | |
- |
- |
+ |
+ |
- |
+ | |
+ |
+ |
- |
+ |
+ |
- | |
+ |
+ |
+ |
+ |
+ |
- |
Условие Куна – Таккера выполняется в одной точке (48/13;10).
Метод наискорейшего спуска
Таблица 1.4.1
Номер шага |
Координаты |
Значение функции |
Решение |
1 |
(2;5) |
169 |
|
2 |
(3;6) |
127 |
|
3 |
(5;8) |
61 |
|
4 |
(9;12) |
1 |
|
5 |
(17;20) |
169 |
Оценим точность полученного решения с помощью метода Золотого сечения. Точка содержится на отрезке заменяем на Точка а0 имеет координаты (3;6), b0 имеет координаты (17;20).
Шаг 1:
Для оптимального решения задачи, * должна находится в интервалах 0≤*≤0,5 или 0,5<*≤1, но так как *=1,124, то:
Пусть *=0,6
Т.к. , то минимум функции находятся не на данном отрезке.
Шаг 2:
Т.к. , то минимум функции находятся не на данном отрезке.
Шаг 3:
Т.к. , то минимум функции находятся не на данном отрезке.
Шаг 4:
Т.к. , то минимум функции находятся не на данном отрезке.
Шаг 5:
Т.к. , то минимум функции находятся не на данном отрезке.
Шаг 6:
Т.к. , то минимум функции находятся не на данном отрезке.
Шаг 7:
Т.к. , то минимум функции находятся на данном отрезке.
Найдем точку безусловного экстремума (минимума) методом Ньютона.
Для решения берем вторые частные производные.
С помощью метода Ньютона мы получили точку (10;12), которая совпадает с точкой безусловного минимума.
Идея метода состоит в
сравнении значений функции в (n +
1) вершинах симплекса и перемещении
симплекса в направлении
В методе симплекс перемещается с помощью трех основных операций: отражения, растяжения и сжатия.
Шаг 1: Найдем значения функции f1=f(x1),f2=f(x2) ... fn+1=f(хn+1) в вершинах симплекса.
Шаг 2: Найдем наибольшее значение функции fh, следующее за наибольшим значением функции fg наименьшее значение функции fl и соответствующие им точки xh, xg, xl.
Шаг 3: Найдем центр тяжести всех точек, за исключением точки хh. Пусть центром тяжести будет
и вычислим f(x0)=f0.
Шаг 4: Удобнее всего начать перемещение от точки xh. Отразив точку xh относительно точки х0, получим точку хr и найдем f(xr) = fr.
Рисунок 1.5.1
Шаг 5: Сравним значения функций fr и fl.
а. Если fr < fl, то мы получили наименьшее значение функции. Направление из точки x0 в точку xr наиболее удобно для перемещения. Таким образом, мы производим растяжение в этом направлении и находим точку xe и значение функции fe = f(xe).
Рисунок 1.5.2
Если fe < fl, то заменяем точку xh на точку xe и проверяем (n + 1) -ую точку симплекса на сходимость к минимуму (см. шаг 8). Если сходимость достигнута, то процесс останавливается; в противном случае возвращаемся на шаг 2.
Если fe > fl, то отбрасываем точку xe. Очевидно, мы переместились слишком далеко от точки x0 к точке xr. Поэтому следует заменить точку xh на точку xr, в которой было получено улучшение (шаг 5, а), проверить сходимость и, если она не достигнута, вернуться на шаг 2.
б. Если fr > fl, но fr < fg, то xr является лучшей точкой по сравнению с другими двумя точками симплекса и мы заменяем точку xh на точку xr и, если сходимость не достигнута, возвращаемся на шаг 2, т.е. выполняем пункт описанный выше.
в. Если fr > fl и fr > fg, перейдем на шаг 6.
Коэффициенты в процедуре являются соответственно коэффициентами отражения, сжатия и растяжения.
Шаг 6: Сравним значения функций fr и fh.
а. Если fr > fh, то переходим непосредственно к шагу сжатия (ниже).
Если fr < fh, то заменяем точку xh на точку xr и значение функции fh на значение функции fr. Запоминаем значение fr > fg из шага 4,б, приведенного выше. Затем переходим на шаг 5,б.
б. В этом случае fr > fh, поэтому ясно, что мы переместились слишком далеко от точки xh к точке x0. Попытаемся исправить это, найдя точку xc (а затем fc ) с помощью шага сжатия, показанного на рисунке ниже. Если fr > fh, то сразу переходим к шагу сжатия и находим точку xc из соотношения
Рисунок 1.5.3
Если fr < fh, то сначала заменим точку xh на точку xr, а затем произведем сжатие. Тогда точку xc найдем из соотношения
Рисунок 1.5.4
Шаг 7: Сравним значения функций fc и fh.
а. Если fc < fh, то заменяем точку xh на точку xc и если сходимость не достигнута, то возвращаемся на шаг 2.
б. Если fc > fh, то очевидно, что все наши попытки найти значение меньшее fh закончились неудачей, поэтому мы переходим на шаг 3.
в. На этом шаге мы уменьшаем размерность симплекса делением пополам расстояния от каждой точки симплекса до x1 - точки, определяющей наименьшее значение функции.
Таким образом, точка xj заменяется на точку
Затем вычисляем fi для i = 1, 2, ...,(n+1), проверяем сходимость и, если она не достигнута, возвращаемся на шаг 3.
8. Проверка сходимости
основана на том, чтобы
, где
Если , то все значения функции очень близки друг к другу, и поэтому они, возможно, лежат вблизи точки минимума функции xl. Исходя из этого, такой критерий сходимости является разумным.
Итерация 1
Шаг 1. В качестве вершины многогранника выбираем точки (0;10), (0;10), (16;0). Отражение α=1, сжатие β=0,5, растяжение γ=2.
Шаг 2. Считаем значение функции в выбранных точках и по значениям определяем «наилучшую», «наихудшею» и среднюю:
(0; 10) f(x1)=(0-10)2+(10-12)2+(0-10)(
(0; 0) f(x2)=(0-10)2+(0-12)2+(0-10)(
(16; 0) f(x3)=(16-10)2+(0-12)2+(16-10)
Шаг 3. Определяем центр тяжести x0:
х0 =0,5(xl+xg)=0,5(x3+x1)=(8;5)
f(x0)=67
Шаг 4. Выполняем отражение xh:
xr= (1+α)x0-αxh=(16;10)
f(xr)= 28
Шаг 5. Т. к. f(xr)< f(xl), то выполняем растяжение
xe= =(24;15)
f(xe)=247, т.к. f(xe)≥f(xl), то xr=xh.
Дальнейшие вычисления будут занесены в таблицы 1.5.1 – 1.5.9
Таблица 1.5.1
Координаты |
Значение функции |
Итерация 2 |
f= |
56,4 | |
xh |
(0;10) |
124 |
sigma= |
1335 | |
xg |
(16;0) |
108 |
|||
xl |
(16;10) |
28 |
|||
х0= |
(16;5) |
43 |
|||
хr= |
(32;0) |
364 |
|||
xc= |
(8;7,5) |
33,25 |