Задачи нелинейного программирования
Решение задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях. Компьютерная реализация выбранных задач нелинейного программирования в среде пакетов Excel и Matlab.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 25.01.2013 |
Размер файла | 2,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Также для поиска глобального экстремума используют случайный поиск, в частности, методы Мон-те-Карло. Здесь экстремум находится с какой-то вероятностью.
В заключение следует отметить, что большое разнообразие методов нелинейного программирования свидетельствует, прежде всего, о сложности проблемы поиска и трудностях в оценке эффективности использования того или иного метода при решении конкретной задачи. Следует сопоставлять практическую эффективность вычислительных возможностей разных методов.
Методы нелинейного программирования служат не только для решения специфических задач, но являются также необходимым средством, к которому обращаются при решении оптимальных задач, а также задач вычислительной математики.
По мере развития математического моделирования роль этих методов будет несомненно вырастать, что приведет к более глубокой разработке существующих и созданию новых алгоритмов поиска экстремума в задачах нелинейного программирования.
3. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
3.1 Графический метод решения задач нелинейного программирования
Рассмотрим задачу нелинейного программирования, содержащую только две переменные, записанную в виде
,
…………….
(x)<, x = () .
Как уже отмечалось, функция f(x) называется целевой функцией, а неравенства , i= 1, ...,m называются ограничениями задачи. Множество точек, удовлетворяющих ограничениям задачи, называется допустимым множеством задачи.
Решить задачу нелинейного программирования графически -- значит найти такую точку из допустимого множества, через которую проходит линия уровня f(,) = С, имеющая максимальное значение величины С из всех линий уровня, проходящих через допустимые точки задачи.
Как и в случае задач линейного программирования, для задач нелинейного программирования, содержащих только две переменные, возможна графическая интерпретация.
Наиболее существенное отличие задачи нелинейного программирования от линейных задач заключается в том, что оптимальное решение может находиться как на границе допустимого множества, так и являться его внутренней точкой.
Этапы графического решения задач нелинейного программирования можно сформулировать следующим образом.
Этап 1. На плоскости наносятся геометрические места точек, соответствующих каждому уравнению из ограничений задачи (x) =,
i= 1, ...,m. Строится допустимое множество задачи. Если допустимое множество задачи пусто, то задача не имеет решения.
Этап 2. Строятся линии уровня целевой функции f(,) = С при различных значениях параметра С.
Этап 3. Определяется направление возрастания (для задачи максимизации) или убывания (для задачи минимизации) линий уровня целевой функции.
Этап 4. Определяется точка допустимого множества, через которую проходит линия уровня с максимальным (для задачи максимизации) или минимальным (для задачи минимизации) значением параметра С. Если целевая функция не ограничена сверху (для задачи максимизации) или не ограничена снизу (для задачи минимизации) на допустимом множестве, то задача не имеет решения.
Этап 5. Для найденной точки определяют ее координаты
=(,) и значение целевой функции в данной точке f=(,)
Решим следующую задачу нелинейного программирования, используя геометрическую интерпретацию
,
.
Построим линии, соответствующие ограничениям задачи и вычислим область определения функции (рис. 3.1).
Рисунок 3.1 - Область определения функции
Рисунок 3.2 - Линия уровня функции
Линия уровня, соответствующая максимальному параметру С и проходящая через какую-либо точку допустимого множества, изображена на рисунке 3.2 АА'. Координаты оптимальной точки находятся из системы уравнений откуда .
3.2 Метод множителей Лагранжа
Пусть требуется решить задачу нелинейного программирования следующего вида:
F(,
,
где функции f и , i= непрерывны, и непрерывны их частные производные по , l=.
Для решения поставленной задачи может быть применен метод множителей Лагранжа. Объясним идею метода на примере задачи нелинейного программирования, зависящей от двух переменных и имеющие только одно ограничение:
g=b.
Будем исходить из геометрической интерпретации задачи. А именно, заметим, что линия уровня с максимальным значением параметра С будет касаться линии границы в точке, являющейся оптимальным решением задачи (рис. 3.3).
Рисунок 3.3 - Геометрическая интерпретация задачи
Поскольку две гладкие линии (имеющие непрерывные частные производные) касаются друг друга в точке , то их векторы-нормали сонаправлены. Поскольку вектор-нормаль есть градиенты функций (вектор частных производных), то справедливо векторное соотношение f'()=лg'(), где л есть некоторый коэффициент пропорциональности. Координаторами векторов f'() и g'(), являются значения частных производных функций f и g соответственно в точке.
f'()=
g'()=
Из условия пропорциональности в точке имеем
;
.
Для определения значений и в которых функция f достигает максимума, к этим уравнениям надо добавить условие принадлежности точки графику функции g(,)=b.
Окончательно получаем систему уравнений, определяющую оптимальное решение поставленной задачи
Введем новую функцию
F
Тогда последняя система перепишется в виде
Функцию F назьюают функцией Лагранжа.
Приведем ниже алгоритм метода множителей Лагранжа решения задач нелинейного программирования.
Этап 1. Составляют функцию Лагранжа
F()=f(.
Этап 2. Находят частные производные функции Лагранжа по и
i=1,n; j=1,m и приравнивают их к нулю
.
Этап З. Решают систему и определяют точки, в которых функция может иметь экстремум.
Этап 4. Проверяют полученные на этапе 3 точки на экстремум и определяют экстремальное значение функции f найденной точки.
Рассмотрим применение изученных методов на примере решения задачи оптимальной реализации продукции, в частности для расчета экономико-математической модели при нелинейных затратах на производство. Фирма реализует автомобили двумя способами: через магазин и через торговых агентов. При реализации автомобилей через магазин расходы на реализацию составляют 4усл. ед., а при продаже автомобилей через торговых агентов расходы составляют усл. ед. Найти оптимальный способ реализации автомобилей, минимизирующий суммарные расходы, если общее число предназначенных для продажи автомобилей составляет 200 шт.
Составим математическую модель задачи. Целью является минимизация суммарных расходов R =4.
Управляющие переменные- это число автомобилей, реализуемых первым и вторым способом: и соответственно (200 шт.).
Окончательно математическая модель имеет следующий вид:
R =4,
Для ее расчета применим метод множителей Лагранжа. Функция Лагранжа имеет вид
F( 4+л(200-.
Найдем частные производные функции F по , и л и приравняем их к нулю.
Получим следующую систему уравнений:
Решая систему, найдем 99, = 101, = 202, f() = 20 398.
Таким образом, для получения минимальных расходов, нужно реализовать 99 автомобилей через магазин и 101 автомобиль через торговых агентов. При этом расходы на реализацию составят 20 398 усл. ед.
3.3 Компьютерная реализация решений задач нелинейного программирования
3.3.1 Решение задач нелинейного программирования в среде приложения Excel
Рассмотрим примеры нелинейной оптимизационной экономической задачи, её экономико-математическую модель и метод компьютерной реализации в среде пакета Excel.
Особенности компьютерной реализации
Задача (модель) нелинейного программирования формулируется так же, как и общая задача оптимального программирования со следующими требованиями к целевой функции и допустимой области:
целевой функции f(, ..., ) и (или) одна из функций (, ..., ) являются нелинейными:
min(max) f (, ..., ),
(, ..., ) {.
У произвольной задачи нелинейного программирования некоторые или все свойства, характерные для задач линейного программирования, отсутствуют. Вследствие этого задачи нелинейного программирования несравнимо сложнее задач линейного программирования, и для них не существует общего универсального метода их решения (аналогично симплексному методу).
Есть целый ряд методов решения задач нелинейного программирования. В пакете Excel реализован метод множителей Лагранжа, идея которого заключается в преобразовании задачи условной оптимизации в задачу безусловной оптимизации, решение которой производится методами поиска - градиентными методами (методы первого порядка) или методами Ньютона (методы второго порядка). Наиболее распространенными являются градиентные методы.
Необходимо помнить, что существующие методы дают возможность находить только локальные оптимумы (помимо случаев, когда задачи обладают соответствующими свойствами выпуклости и вогнутости). Если же есть подозрение, что в допустимой области целевой функции может иметь несколько оптимумов, то эту область следует разбить на ряд областей и в каждой из них определить свои локальные оптимумы, а затем из всех локальных оптимумов выбрать глобальный. В таком практическом подходе задача поиска глобального оптимума сводится к решению ряда задач, в которых ищется свой (локальный) оптимум.
Следует отметить, что в подавляющем большинстве практических задач оптимизации существует только один оптимум.
Решение задачи нелинейного программирования (реализация модели нелинейной оптимизации) средствами Excel отличается от решения линейного программирования следующим:
- назначаются начальные значения искомых переменных так, чтобы ЦФ в начальной точке не была равна нулю,
- в диалоговом окне Поиск решения в режиме Параметры не надо вводить Линейная модель.
В Excel признаком достижения оптимума является величина относительного приращения целевой функции на каждой итерации . Оптимум считается достигнутым, если выполняется условие , где точность, назначаемая при решении задачи (Параметры).
Примером задачи нелинейного программирования является модель оптимального формирования портфеля ценных бумаг (модель Марковица минимального риска).
В этой модели приняты следующие обозначения :
, - доля капитала, потраченная на покупку ценных бумагу j-го вида (весь выделенный капитал принимается за 1);
-- средняя ожидаемая доходность j-й ценной бумаги, (mj называют эффективностью j-й ценной бумаги);
- дисперсия случайной доходности j-й ценной бумаги, ( называют риском j-й ценной бумаги).
В предположении о некоррелированности ценных бумаг (их независимости) модель Марковица имеет вид:
Найти ,j=1,…,n , минимизирующие риск портфеля ценных бумаг
при условии, что обеспечивается заданное значение эффективности портфеля mp, т.е.
.
Нелинейной является целевой функции.
Задачи оптимизации, в результате решения которых искомые значения переменных должны быть целыми числами, называются задачами (моделями) целочисленного (дискретного) программирования:
min(max) f (, ..., )
(, ..., ) {
Если множество индексов ={1,2,...,n}, то задачу называют полностью целочисленной, если, то - частично целочисленной.
Рассмотрим задачу оптимального формирования портфеля ценных бумаг. Необходимо сформировать оптимальный портфель Марковица (минимального риска) трех ценных бумаг с эффективностями и рисками: (4, 10), (10, 40), (40, 80). Нижняя граница доходности портфеля задана равной 15.
Построим экономико-математическая модель
Введем необходимые обозначения, пусть хj (j =1, 2, 3) - число предметов j-го типа, которое следует погрузить на баржу. Тогда математическая модель задачи о подборе для баржи допустимого груза максимальной ценности запишется следующим образом:
4x1 + 10x2 + 40х3 ? 15
x1 + x2 + x3 = 1
xj ? 0, j = 1, 2, 3.
Заполняем рабочий лист данными.
Рисунок 3.4 - Рабочий лист программы
Рабочий лист может быть подготовлен в виде, представленном на рис.3.5, формулы этого листа приведены в ячейках.
Рисунок 3.5 - Рабочий лист
Диалоговое окно, отвечающее приведенному выше рабочему листу, представлено на рис.3.6.
Рис. 3.6 - Диалоговое окно
Реализуя приведенную модель средствами пакета Excel (рис. 2.9), будем иметь оптимальный портфель Марковица:
x1 = 0,5213, х2 = 0,2078, х3 = 0,2709,
т.е. доли ценных бумаг оказались равными 52,13 %; 20,78 % и 27,09 %. При этом минимальный риск - 23,79, доходность портфеля оказалась равной заданной - 15.
Рисунок 3.7 - Результаты решения
Проиллюстрируем результаты с помощью Мастера диаграмм
Рисунок 3.8 - Графическая иллюстрация результатов
3.3.2 Решение задач нелинейного программирования в среде приложения Matlab
Метод покоординатного спуска (Гаусса - Зейделя)
На каждом шаге метод «приближается» к решению последовательно по каждой из координат. Переход от точки к точке +1 назовем «внешней» итерацией. Внутри каждой «внешней» итерации находятся n «внутренних» для последовательного вычисления координат точки +1.
.
,
,
,
…………………………………………………………,
.
,
.
Блок-схема алгоритма метода покоординатного спуска с постоянным шагом и программа приведены в Приложении 1. Графическая иллюстрация решения приведена на Рис.3.9.
Рисунок 3.9 - Графическая иллюстрация движения к максимуму методом покоординатного спуска.
Градиентный метод с постоянным шагом.
На каждой итерации метод «приближается» к решению, вычисляя новое значение каждой координаты в соответствии с формулой. Блок-схема алгоритма метода с постоянным шагом и программа приведены в Приложении. Графическая иллюстрация решения приведена на Рис. 3.10.
Рисунок 3.10 - Движение к максимуму с постоянным шагом.
В примере Рис.3.11 происходит дробление шага на первой итерации алгоритма. В этом можно убедиться, поставив точку останова на строке 56.
Рисунок 3.11 - Графическая иллюстрация метода с дроблением шага
Градиентный метод наискорейшего спуска.
На каждой итерации вычисляется значение шага г, максимизирующее значение целевой функции:
.
Новые координаты вычисляются с помощью этого значения:
Скалярное произведение векторов-градиентов на двух смежных итерациях равно нулю:
Это означает, что движение от точки к точке происходит по взаимно-ортогональным направлениям. (Рис.3.12).
Рис.3.12 - Движение к экстремуму по взаимно-ортогональным направлениям в методе наискорейшего спуска.
Сравнение методов.
Для сравнения точности и быстродействия методов в данной работе используется следующий простой прием. В вышеприведенных примерах решалась простейшая задача, точное решение которой находится из системы линейных уравнений.
f(
В таблице 3.1 для каждого метода приводится число итераций к, за которое из одной и той же начальной точки алгоритм приходит в точку хк, норма вектора-градиента в которой становится меньше заданного числа д =0,01 -точности метода.
Точка хк является решением задачи. Методы сравниваются по значению отклонения этой точки от точки х*=0 - точного безусловного максимума .
Таблица 3.1 - Сравнения точности и быстродействия методов
Метод |
Отклонение |
Число итераций |
|
Покоординатный спуск |
0.0030555 |
20 |
|
«По всем координатам сразу» с постоянным шагом |
0.0035189 |
22 |
|
«По всем координатам сразу» с дроблением шага |
0.0040109 |
14 |
|
Метод наискорейшего спуска |
0.0013446 |
12 |
ВЫВОДЫ
В данном дипломном проекте я представила решение задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях нелинейного программирования.
Для достижения поставленной цели были выполнены следующие действия:
-решены выбранные задачи нелинейного программирования графическим методом;
-решены выбранные задачи нелинейного программирования методом множителей Лагранжа
-представлена компьютерная реализация выбранных задач нелинейного программирования в среде пакетов Excel и Matlab
ПЕРЕЧЕНЬ ССЫЛОК
1. Акулич И.Л. Математическое программирование в примерах и задачах. Изд. «Высшая школа», 1986.
2. Гершкович Ю.Б. Методы оптимизации и их применение для управления процессами в нефтяной промышленности. М.МИНГ им. И.М. Губкина, 1988.
3. Моисеев Н.Н., Иванилов Ю.П. Методы оптимизации. М.Наука, 1978.
4. Новгородцев А. Расчет электрических цепей в “MATLAB”. Изд. Питер, 2004.
5. В.И. Бодров, Т.Я. Лазарева, Ю.Ф. Мартемьянов « Математические методы принятия решений».
6. Косоруков О.А, Мищенко А.В. «Исследование операций».
ПРИЛОЖЕНИЕ А
Блок-схемы методов
Размещено на Allbest.ru
Подобные документы
Особенности решения задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях нелинейного программирования. Общая характеристика классических и числовых методов решения.
дипломная работа [2,4 M], добавлен 20.01.2013Решение задачи нелинейного программирования с определением экстремумов функции. Этапы процесса нахождения решения задачи нелинейного программирования с использованием ее геометрической интерпретации. Определение гиперповерхности уровней функции.
курсовая работа [1,5 M], добавлен 25.09.2010Оптимизационные исследования задач линейного и нелинейного программирования при заданных математических моделях. Решение задач линейного программирования и использование геометрической интерпретации и табличного симплекс-метода, транспортная задача.
курсовая работа [408,7 K], добавлен 13.06.2019Восстановление математической модели задачи нелинейного программирования. Решение уравнений прямых. Метод линеаризации: понятие, особенности применения при решении задач. Нахождение точки максимума заданной функции. Решение задачи графическим методом.
задача [472,9 K], добавлен 01.06.2013Постановка задачи нелинейного программирования. Определение стационарных точек и их типа. Построение линий уровней, трехмерного графика целевой функции и ограничения. Графическое и аналитическое решение задачи. Руководство пользователя и схема алгоритма.
курсовая работа [2,5 M], добавлен 17.12.2012Формулировка общей задачи математического программирования. Классификация задач нелинейного программирования. Понятие о функции Лагранжа. Задача теоремы Куна-Таккера. Экономическая интерпретация множителей Лагранжа, формулирование условий оптимальности.
презентация [669,1 K], добавлен 25.07.2014Обзор и сравнительный анализ современных математических пакетов. Вычислительные и графические возможности системы MATLAB, а также средства программирования в среде MATLAB. Основные возможности решения задач оптимизации в табличном процессоре MS Excel.
дипломная работа [6,6 M], добавлен 04.09.2014Понятие графика функции и его представление на ЭВМ. Алгоритм реализации, блок-схема и функциональные тесты графического метода решения частного случая задачи нелинейного программирования, его математическая модель. Диалог программы с пользователем.
курсовая работа [1,6 M], добавлен 15.05.2012Виды и оценка различных численных методов нелинейного программирования. Разработка способов вычисления оптимальных решений. Целевая функция метода проекции антиградиента. Решение тестовых задач в MS Excel. Определение направления проекции антиградиента.
курсовая работа [216,1 K], добавлен 22.01.2015Принципы решения задач линейного программирования в среде электронных таблиц Excel, в среде пакета Mathcad. Порядок решения задачи о назначении в среде электронных таблиц Excel. Анализ экономических данных с помощью диаграмм Парето, оценка результатов.
лабораторная работа [2,0 M], добавлен 26.10.2013