Xreferat.com » Рефераты по математике » Линейное и нелинейное программирование

Линейное и нелинейное программирование

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

Севастопольский национальный технический университет

Кафедра кибернетики и вычислительной техники


Пояснительная записка

к курсовому проекту

по дисциплине

«Прикладная математика»


Выполнил: ст. гр. М-21д

Ткаченко К. С.

зач. книжка № 040xxx

вариант № 22

Проверил: ст. преп.

Балакирева И. А.


Севастополь – 2006

Содержание

Введение

1 Общая формулировка задания на курсовой проект

2 Линейное программирование

2.1 Задача линейного программирования

2.1.1 Постановка задачи линейного программирования

2.1.2 Математическая модель задачи линейного программирования

2.1.3 Графический метод

2.1.4 Алгебраический метод

2.1.5 Метод симплекс-таблицы

2.1.6 Метод допустимого базиса

2.1.7 Решение двойственной задачи

2.2 Задача целочисленного линейного программирования

2.2.1 Постановка задачи целочисленного линейного программирования

2.2.2 Метод Гомори

2.2.3 Метод ветвей и границ

2.3 Задача целочисленного линейного программирования с булевскими переменными

2.3.1 Постановка задачи целочисленного линейного программирования с булевскими переменными

2.3.2 Метод Баллаша

2.3.3 Определение снижения трудоемкости вычислений

3 Нелинейное программирование

3.1 Задача поиска глобального экстремума функции

3.1.1 Постановка задачи поиска глобального экстремума функции

3.1.2 Метод поиска по координатной сетке с постоянным шагом и метод случайного поиска. Сравнение результатов вычислений

3.2 Задача одномерной оптимизации функции

3.2.1 Постановка задачи одномерной оптимизации функции

3.2.2 Метод дихотомии

3.2.3 Метод Фибоначчи

3.2.4 Метод кубической аппроксимации

3.3 Задача многомерной оптимизации функции

3.3.1 Постановка задачи многомерной оптимизации функции

3.3.2 Метод Хука – Дживса

3.3.3 Метод наискорейшего спуска (метод Коши)

3.3.4 Метод Ньютона

3.3.5 Сравнение результатов вычислений

Заключение

Библиографический список

ПРИЛОЖЕНИЕ

А Текст программы глобальной многомерной оптимизации

Б. Результаты работы программы


Введение

Современный этап развития человечества отличается тем, что на смену века энергетики приходит век информатики. Происходит интенсивное внедрение новых технологий во все сферы человеческой деятельности. Встает реальная проблема перехода в информационное общество, для которого приоритетным должно стать развитие образования. Изменяется и структура знаний в обществе. Все большее значение для практической жизни приобретают фундаментальные знания, способствующие творческому развитию личности. Важна и конструктивность приобретаемых знаний, умение их структурировать в соответствии с поставленной целью. На базе знаний формируются новые информационные ресурсы общества. Формирование и получение новых знаний должно базироваться на строгой методологии системного подхода, в рамках которого отдельное место занимает модельный подход. Возможности модельного подхода крайне многообразны как по используемым формальным моделям, так и по способам реализации методов моделирования. Физическое моделирование позволяет получить достоверные результаты для достаточно простых систем.

В настоящее время нельзя назвать область человеческой деятельности, в которой в той или иной степени не использовались бы методы моделирования. Особенно это относится к сфере управления различными системами, где основными являются процессы принятия решений на основе получаемой информации.


1 Общая формулировка задания на курсовой проект

Вариант задания для задачи линейного программирования (ЗЛП) представляет собой область допустимых решений ЗЛП и целевую функцию. Для того чтобы определить, какое значение должна достигать целевая функция – минимальное или максимальное, необходимо найти градиент целевой функции. Если направление градиента совпадает с направлением стрелки у целевой функции в варианте задания, то в задаче определяется максимальное значение целевой функции, иначе – минимальное.

Итак, задание по решению ЗЛП состоит в следующем: построить математическую модель ЗЛП согласно варианту; получить решение ЗЛП графическим методом; решить ЗЛП алгебраическим методом; решить ЗЛП методом симплекс-таблицы; определить допустимое решение ЗЛП методом введения искусственного базиса; построить ЗЛП, двойственную данной, решить эту задачу и исследовать взаимосвязь между решениями взаимодвойственных задач.

Вариант для задачи целочисленного линейного программирования (ЗЦЛП) представляет собой область допустимых решений ЗЛП и целевую функцию. Задание состоит в следующем: решить ЗЦЛП, при условии целочисленности всех переменных, входящих в задачу методом ветвей и границ и методом отсекающих плоскостей (методом Гомори).

Вариант для задачи целочисленного линейного программирования с булевскими переменными составляется студентом самостоятельно с учетом следующих правил: в задаче используется не менее 5 переменных, не менее 4 ограничений, коэффициенты ограничений и целевой функции выбираются произвольно, но таким образом, чтобы система ограничений была совместна. Задание состоит в том, чтобы решить ЗЦЛП с булевскими переменными, используя алгоритм Баллаша и определить снижение трудоемкости вычислений по отношению к решению задачи методом полного перебора.

Задание на поиск глобального экстремума функции состоит в написании программы. Программа для поиска экстремума функции может быть разработана на любом алгоритмическом языке. Задание состоит в следующем: 1) найти точку глобального экстремума функции f(X) методом поиска по координатной сетке с постоянным шагом; 2) найти точку глобального экстремума функции f(X) методом случайного поиска; 3)сравнить результаты вычислений.

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

Задание для нахождения многомерного локального экстремума функции (многомерная оптимизация) состоит в том, чтобы минимизировать функцию, применяя следующие методы: нулевого порядка – Хука-Дживса, первого порядка – наискорейшего спуска (Коши), второго порядка – Ньютона, и провести сравнительный анализ методов оптимизации по количеству итераций, необходимых для поиска экстремума при фиксированной точности и начальных координатах поиска X(0)=[-1,-1]T.


2 Линейное программирование

2.1 Задача линейного программирования

2.1.1 Постановка задачи линейного программирования

Построить математическую модель ЗЛП согласно варианту. Получить решение ЗЛП графическим методом. Решить ЗЛП алгебраическим методом. Решить ЗЛП методом симплекс-таблицы. Определить допустимое решение ЗЛП методом введения искусственного базиса. Построить ЗЛП, двойственную данной, решить эту задачу и исследовать взаимосвязь между решениями взаимодвойственных задач.


2.1.2 Математическая модель задачи линейного программирования

AB: Линейное и нелинейное программирование; Линейное и нелинейное программирование; Линейное и нелинейное программирование

Линейное и нелинейное программирование

BC: Линейное и нелинейное программирование; Линейное и нелинейное программирование; Линейное и нелинейное программирование

Линейное и нелинейное программирование

CD: Линейное и нелинейное программирование; Линейное и нелинейное программирование; Линейное и нелинейное программирование

Линейное и нелинейное программирование

DE: Линейное и нелинейное программирование; Линейное и нелинейное программирование; Линейное и нелинейное программирование

Линейное и нелинейное программирование

F: Линейное и нелинейное программирование; Линейное и нелинейное программирование; Линейное и нелинейное программирование

Линейное и нелинейное программирование


Математическая модель:

Линейное и нелинейное программирование

2.1.3 Графический метод

Вычисляем значение целевой функции во всех вершинах симплекса и выбираем из них наименьшее. Это и будет оптимальное решение.

FA = 1

FB = -8

FC = -14

FD = 0

FE = 3

C(2, 4)

Линейное и нелинейное программирование

F = -14


2.1.4 Алгебраический метод

Линейное и нелинейное программирование


Линейное и нелинейное программирование

x2, x4, x5, x6 – базисные переменные, x1, x3 – свободные переменные

Линейное и нелинейное программирование

x1↑F↑ x3↑F↓ Выбираем x3 ↔ x4

x2, x3, x5, x6 – базисные переменные, x1, x4 – свободные переменные

Линейное и нелинейное программирование

x1↑F↓ x4↑F↑ Выбираем x1 ↔ x5


x1, x2, x3, x6 - базисные переменные, x4, x5 – свободные переменные

Линейное и нелинейное программирование

x1↑F↑ x4↑F↑


X=(2, 4, 7, 0, 0, 5)

F = -14

Линейное и нелинейное программирование

2.1.5 Метод симплекс-таблицы

Линейное и нелинейное программирование

Линейное и нелинейное программирование

Приведем к каноническому виду:

x2, x4, x5, x6 – базисные переменные, x1, x3 – свободные переменные

Линейное и нелинейное программирование








b x1 x3

x2 1
2
-1




1
-3
1
x4 1
-3
1
1



1
-3
1

x5 12
-1
2
6



-2
6
-2

x6 4
3
-1




1
-3
1

F -4
-9
4




-4 12

-4








b x1 x4

x2 2
-1
1




2
1/5
-2/5

x3 1
-3
1




6
3/5
-6/5
x5 10
5
-2
2



2
1/5
-2/5

x6 5
0
1




0
0
0

F -8
3
-4




-6
-3/5
6/5



b x5 x4

x2 4
1/5
3/5











x3 7
3/5
-1/5











x1 2
1/5
-2/5











x6 5
0
1











F -14
-3/5
-14/5











X = (2, 4, 7, 0, 0, 5)

F = -14 Линейное и нелинейное программирование

2.1.6 Метод допустимого базиса

Линейное и нелинейное программирование


Линейное и нелинейное программирование


Линейное и нелинейное программирование


Линейное и нелинейное программирование


Линейное и нелинейное программирование

Линейное и нелинейное программирование













b x1 x2 x3 x4 x5 x6

F 0
-1
4
0
0
0
0




1/2
1/2
1/2
-1/2
0
0
0
ξ1 1
2
1
-1
0
0
0
1/2



1/2
1/2
1/2
-1/2
0
0
0

ξ2 2
-1
1
0
1
0
0
14/3



1/2
1/2
1/2
-1/2
0
0
0

ξ3 14
3
2
0
0
1
0
3



-3/2
-3/2
-3/2
3/2
0
0
0

ξ4 3
1
-1
0
0
0
1




-1/2
-1/2
-1/2
1/2
0
0
0

f 20
5
3
-1
1
1
1




-5/2
-5/2
-5/2
5/2
0
0
0












b ξ1 x2 x3 x4 x5 x6

F 1/2
1/2
9/2
-1/2
0
0
0




5/2
-1/2
-3/2
1
0
0
1

x1 1/2
1/2
1/2
-1/2
0
0
0




5/2
-1/2
-3/2
1
0
0
1

ξ2 5/2
1/2
3/2
-1/2
1
0
0




5/2
-1/2
-3/2
1
0
0
1

ξ3 25/2
-3/2
1/2
3/2
0
1
0
25/3



-15/2
3/2
9/2
-3
0
0
-3
ξ4 5/2
-1/2
-3/2
1/2
0
0
1
5



5
-1
-3
2
0
0
2

f 35/2
-5/2
1/2
3/2
1
1
1




-15/2
3/2
9/2
-3
0
0
-3












b ξ1 x2 ξ4 x4 x5 x6

F 3
0
3
1
0
0
1




-3
0
-3/5
9/5
0
-3/5
9/5

x1 3
0
-1
1
0
0
1




1
0
1/5
-3/5
0
1/5
-3/5

ξ2 5
0
0
1
1
0
1




0
0
0
0
0
0
0
ξ3 5
0
5
-3
0
1
-3
1



1
0
1/5
-3/5
0
1/5
-3/5

x3 5
-1
-3
2
0
0
2




3
0
3/5
-9/5
0
3/5
-9/5

f 10
-1
5
-3
1
1
-2




-5
0
-1
3
0
-1
3












b ξ1 ξ3 ξ4 x4 x5 x6

F 0
0
-3/5
14/5
0
-3/5
14/5




-14
0
0
-14/5
-14/5
0
-14/5

x1 4
0
1/2
2/5
0
1/5
2/5
10



-2
0
0
-2/5
-2/5
0
-2/5
ξ2 5
0
0
1
1
0
1
5



5
0
0
1
1
0
1

x2 1
0
1/5
-3/5
0
1/5
-3/5




3
0
0
3/5
3/5
0
3/5

x3 8
-1
3/5
1/5
0
3/5
1/5
40



-1
0
0
-1/5
-1/5
0
-1/5

f 5
-1
-1
0
1
0
1




-5
0
0
-1
-1
0
-1





Линейное и нелинейное программирование

Линейное и нелинейное программирование



Линейное и нелинейное программирование




b

Линейное и нелинейное программированиеξ1

ξ3 ξ4 x4 x5 ξ2

F -14
0
-3/5
0
-14/5
-3/5
-14/5



















x1 2
0
1/5
0
-2/5
1/5
-2/5



















x6 5
0
0
1
1
0
1



















x2 4
0
1/5
0
3/5
1/5
-3/5



















x3 7
-1
3/5
0
-1/5
3/5
-1/5


















Линейное и нелинейное программирование

f 0
-1
-1
-1
0
0
-1




















b x4 x5

F


-14


-14/5 -3/5
x6

5


1 0
x2

4


3/5 1/5
x3

7


-1/5 3/5
x1

2


-2/5


1/5

Допустимое базисное оптимальное решение:

X = (2, 4, 7, 0, 0, 5)

F = -14 Линейное и нелинейное программирование

2.1.7 Решение двойственной задачи

Прямая задача:

Линейное и нелинейное программирование

Двойственная задача:

Линейное и нелинейное программирование

Приводим к каноническому виду:

Линейное и нелинейное программирование

y1, y3 – базисные переменные, y2, y4, y5, y6 – свободные переменные

Линейное и нелинейное программирование











b y2 y4 y5 y6
y1 14
5
-5
2
-3
14/5



14/5
1/5
-1
2/5
-3/5

y3 9
3
-3
1
-2
3



-42/5
-3/5
3
-6/5
9/5

Ф’ 112
35
-40
12
-25




-98
-7
35
-14
21











b y2 y4 y5 y6

y1 14/5
1/5
-1
2/5
-3/5















y3 3/5
-3/5
0
-1/5
-1/5















Ф’ 14
-7
-5
-2
-4















x1 x2 x3 x4 x5 x6
y5 y6 y1 y2 y3 y4
2 4 7 0 0 5

F’ = Ф’ = 14

X = (2,4,7,0,0,5)

F= -F’ = -14 Линейное и нелинейное программирование

2.2 Задача целочисленного линейного программирования

2.2.1 Постановка задачи целочисленного линейного программирования

Решить ЗЦЛП, при условии целочисленности всех переменных, входящих в задачу, методом ветвей и границ и методом отсекающих плоскостей (методом Гомори).

Линейное и нелинейное программирование


2.2.2 Метод Гомори

Линейное и нелинейное программирование

Линейное и нелинейное программирование

Линейное и нелинейное программирование

x3, x4 – базисные переменные, x1, x2 – свободные переменные

Линейное и нелинейное программирование








b x1 x2

x3 11
2
3
11/2



-5
-1/2
-1/2
x4 10
4
1
10/4



5/2
1/4
1/4

F’ 0
2
1




-5
-1/2
-1/2








b x4 x2
x3 6
-1/2
5/2
12/5



12/5
-1/5
2/5

x1 5/2
1/4
1/4
10



-3/5
1/20
-1/10

F’ -5
-1/2
1/2




-6/5
1/10
-1/5



b x1 x2

x3 12/5
-1/5
2/5











x4 19/10
3/10
-1/10











F’ -31/5
-2/5
-1/5











X = (19/10, 12/5, 0, 0)

F = -F’ = 31/5

Составляем неравенство Гомори:

Линейное и нелинейное программирование








b x4 x3

F’ -31/5
-2/5
-1/5




1/5
1/10
-1/2

x2 12/5
-1/5
2/5




-2/5
-1/5
1

x1 19/10
3/10
-1/10




1/10


-1/4
u2 -2/5
-1/5
-2/5




1
1/2
-5/2



b x4 u2

F’ -6
-3/10
-1/2











x2 2
-2/5
1











x1 2
7/20
-1/4











x3 1
1/2
-5/2











X = (2, 2, 1, 0)

F = -F’ = 6 Линейное и нелинейное программирование

2.2.3 Метод ветвей и границ

Линейное и нелинейное программирование

b x1 x2
x3

12/5


-1/5 2/5
x4

19/10


3/10 -1/10
F’

-31/5


-2/5 -1/5

Задача № 1

Линейное и нелинейное программирование

Линейное и нелинейное программирование

Приводим к каноническому виду:

x3, x4, x5 – базисные переменные, x1, x2 – свободные переменные

Линейное и нелинейное программирование








b x1 x2

x3 11
2
3
11/2



-5
-1/2
-1/2
x4 10
4
1
5/2



5/2
1/4
1/4

x5 2
0
1




0
0
0

F’ 0
2
1




-5
-1/2
-1/2








b x4 x2

x3 6
-1/2
5/2
12/5



-5
0
-5/2

x1 5/2
1/4
1/4
10



-1/2
0
-1/4
x5 2
0
1
2



2
0
1

F’ -5
-1/2
1/2




-1
0
-1/2



b x4 x5

x3 1
-1/2
-5/2











x1 2
1/4
-1/4











x2 2
0
1











F’ -6
-1/2
-1/2











X = (2, 2, 1, 0, 0)

F’ = -6

F = -F’ = 6 Линейное и нелинейное программирование


Задача № 2

Решаем задачу с x2 ≥ 3 в подсистеме «Поиск решения» системы Excel. Получаем допустимое не оптимальное решение F = 5, X = (1, 3)


=2*$B$1+$B$2 1 =2*$B$1+3*$B$2 11

3 =4*$B$1+$B$2 10


=$B$2 3

5 1 11 11

3 7 10


3 3

Ограничения




Ячейка

Имя

Значение

Формула

Статус

Разница


$C$1
11 $C$1<=$D$1 связанное 0

$C$2
7 $C$2<=$D$2 не связан. 3

$C$3
3 $C$3>=$D$3 связанное 0

2.3 Задача целочисленного линейного программирования с булевскими переменными

2.3.1 Постановка задачи целочисленного линейного программирования с булевскими переменными

Составить самостоятельно вариант для задачи целочисленного линейного программирования с булевскими переменными с учетом следующих правил: в задаче используется не менее 5 переменных, не менее 4 ограничений, коэффициенты ограничений и целевой функции выбираются произвольно, но таким образом, чтобы система ограничений была совместна. Задание состоит в том, чтобы решить ЗЦЛП с булевскими переменными, используя алгоритм Баллаша и определить снижение трудоемкости вычислений по отношению к решению задачи методом полного перебора.


Линейное и нелинейное программирование


2.3.2 Метод Баллаша

x4 x3 x2 x1 x5 Выполнение ограничений Значение F






0 1 2 3 4 5
1 0 0 0 0 0 0




Fф=0
2 0 0 0 0 1 44





3 0 0 0 1 0 17





4 0 0 0 1 1 61





5 0 0 1 0 0 13





6 0 0 1 0 1 57





7 0 0 1 1 0 30





8 0 0 1 1 1 74





9 0 1 0 0 0 -10 + + + + + Fф=-10
10 0 1 0 0 1 34





11 0 1 0 1 0 7





12 0 1 0 1 1 51





13 0 1 1 0 0 3





14 0 1 1 0 1 47





15 0 1 1 1 0 20





16 0 1 1 1 1 64





17 1 0 0 0 0 -49 + + + + + Fф=-49
18 1 0 0 0 1 -5





19 1 0 0 1 0 -32





20 1 0 0 1 1 12





21 1 0 1 0 0 -36





22 1 0 1 0 1 8





23 1 0 1 1 0 -19





24 1 0 1 1 1 25





25 1 1 0 0 0 -59 + + + + + Fф=-59
26 1 1 0 0 1 -15





27 1 1 0 1 0 -42





28 1 1 0 1 1 2





29 1 1 1 0 0 -46





30 1 1 1 0 1 -2





31 1 1 1 1 0 -29





32 1 1 1 1 1 15






Фильтрующее ограничение:

Линейное и нелинейное программирование

2.3.3 Определение снижения трудоемкости вычислений

Решение задачи методом полного перебора составляет 6*25=192 вычисленных выражения. Решение задачи методом Баллаша составляет 3*6+(25-3)=47 вычисленных выражений. Итого снижение трудоемкости вычислений по отношению к решению задачи методом полного перебора составляет Линейное и нелинейное программирование.


3 Нелинейное программирование

3.1 Задача поиска глобального экстремума функции

3.1.1 Постановка задачи поиска глобального экстремума функции

Необходимо написать программа для поиска экстремума функции. Задание состоит в следующем: 1) найти точку глобального экстремума функции f(X) методом поиска по координатной сетке с постоянным шагом; 2) найти точку глобального экстремума функции f(X) методом случайного поиска; 3)сравнить результаты вычислений.

Линейное и нелинейное программирование


3.1.2 Метод поиска по координатной сетке с постоянным шагом и метод случайного поиска. Сравнение результатов вычислений

Метод поиска глобального минимума, называемый методом поиска по координатной сетке, является надежным, но применим только для задач малой размерности (n<4). Неправильный выбор начального шага сетки может привести к тому, что в действительности один из локальных минимумов может быть принят как глобальный. Из всех значений целевой функции, вычисленных в узлах координатной сетки, выбирается минимальное. Результат: число испытаний 905, f(X*) = -2.500, X*=(-0.500; 2.000)

Метод случайного поиска характеризуется намеренным введением элемента случайности в алгоритм поиска. Этот метод предполагает наличие генератора случайных чисел, обращаясь к которому, в любой нужный момент времени можно получить реализацию случайного вектора с заданным законом распределения. Результат: число испытаний 299, f(X*) = -2.469, X*=(-0.677; 2.173).

Расчет в системе MathCAD: f(X*) = -2.500, X*=(-0.500; 2.000)

Линейное и нелинейное программирование Линейное и нелинейное программирование

Как видим, метод случайного поиска сократил число испытаний на 66%, при этом относительная погрешность составляет 1%. Т.е. мы достигли значительного сокращения вычислений с небольшой относительной погрешностью.


3.2 Задача одномерной оптимизации функции

3.2.1 Постановка задачи одномерной оптимизации функции

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

Линейное и нелинейное программирование


3.2.2 Метод дихотомии

Линейное и нелинейное программирование

Итерация 1

Линейное и нелинейное программирование

Линейное и нелинейное программирование

Линейное и нелинейное программирование

Линейное и нелинейное программирование

Линейное и нелинейное программирование

Линейное и нелинейное программирование

Итерация 2

Линейное и нелинейное программирование

Линейное и нелинейное программирование

Линейное
    <div class=

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.
Подробнее

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: