Методы квадратичного программирования
Постановка задачи квадратичного программирования функций в векторно-матричной форме, построение конечного алгоритма решения задачи и особенности его практического применения. Определение экстремальных и стационарных точек системы линейных уравнений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 04.06.2015 |
Размер файла | 975,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. ПОСТАНОВКА ЗАДАЧИ КВАДРАТИЧНОГО ПРОГРАММИРОВАНИЯ
2. КОНЕЧНЫЙ АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ КВАДРАТИЧНОГО ПРОГРАММИРОВАНИЯ
3. ПРИМЕНЕНИЕ АЛГОРИТМА КВАДРАТИЧНОГО ПРОГРАММИРОВАНИЯ НА ПРАКТИКЕ
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
квадратичный программирование линейный матричный
ВВЕДЕНИЕ
Квадратичное программирование - область математического программирования, посвященная теории решения задач, характеризующихся квадратичной зависимостью между переменными.
Программирование в управлении можно представить как процесс распределения ресурсов. Существует ряд различных методов, основанных на идеях математического программирования, среди которых широкое применение нашел метод квадратичного программирования.
Применение метода квадратичного программирования актуально в сегодняшнее время, так как использование математических моделей является важным направлением совершенствования планирования и анализа деятельности компании. Представление данных в виде математической модели позволяет конкретизировать информацию, создавать и моделировать варианты, выбирать оптимальные решения.
Целью курсовой работы является изучение метода квадратичного программирования.
Для того чтобы достичь данной цели необходимо решить следующие задачи:
1) определить задачу квадратичного программирования;
2) проанализировать конечный алгоритм решения задачи квадратичного программирования;
3) применить конечный алгоритм на практике.
Объектом исследования является метод квадратичного программирования.
Предметом исследования является пример, рассмотренный в третьей главе данной курсовой работы.
1. ПОСТАНОВКА ЗАДАЧИ КВАДРАТИЧНОГО ПРОГРАММИРОВАНИЯ
Пусть задана квадратичная функция
(1.1)
или в векторно-матричной форме
(1.2)
и линейные неравенства
, (1.3)
которые в векторно-матричной форме запишем так:
(1.4)
и пусть неравенства (1.4) определяют некоторую область ?, содержащую внутренние точки. Будем предполагать, что матрица симметричная и положительно определенная, так что - выпуклая функция. Задача квадратичного программирования формулируется так: отыскать точку , для которой достигается минимум функции (1.1) при ограничениях (1.4):
(1.5)
При этом задача квадратичного программирования является просто задачей нелинейного программирования с квадратичной целевой функцией и линейными ограничениями. И может формулироваться следующим образом: найти
,
где --мерный вектор, - симметричная матрица , - -мерный вектор и - матрица .
Из всех задач нелинейного программирования задача квадратичного программирования является самой легкой для решения и лишь немного сложнее, чем задача линейного программирования. Рассмотрим на примере.
Пример
Финансист обдумывает, как распределить свои фонды между возможными инвестициями. Предположим, что инвестиция имеет ожидаемую прибыль на каждый вложенный доллар. Тогда, если - количество вклада в -ю инвестицию, то ожидаемая прибыль выражается, как . Кроме того, портфель вкладов должен удовлетворять определенным ограничениям , где - матрица и - - мерный вектор. Эти математические ограничения отражают реальные ограничения финансиста, такие как суммарные фонды, лимиты на количества фондов, вложенных в данную категорию инвестиций и т.д.
Подход к решению задачи с позиций линейного программирования
Первым приближением к задаче финансиста было бы решить задачу линейного программирования максимизации ожидаемой прибыли при наличии ограничений
.
Формулировка квадратичного программирования
Может оказаться, что прибыль имеет довольно большую дисперсию. Приведенная выше модель линейного программирования не учитывает дисперсию и может привести к плохому решению о размещении вкладов.
Чтобы включить дисперсию в наш анализ, предположим, - ковариация между вкладами и на каждый доллар, вложенный в соответствующую категорию инвестиций. Тогда матрица ковариации имеет вид и дисперсия для любого портфеля равна .
Другая формулировка задачи финансиста заключается в выборе портфеля вкладов, который минимизирует дисперсию и ещё обеспечивает ожидаемую прибыль не менее некоторого фиксированного количества . В итоге мы приходим к задаче квадратичного программирования:
,
Таким образом, мы видим, что задача квадратичного программирования достаточно проста в решении и лишь немного сложнее, чем задача линейного программирования.
2. КОНЕЧНЫЙ АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ КВАДРАТИЧНОГО ПРОГРАММИРОВАНИЯ
Приведем теперь изложение одного конечного алгоритма для решения задачи (1.1) - (1.5) квадратичного программирования.
1) Составим таблицу из ограничений (1.3) и частных производных минимизируемой функции (1.1):
Найдем единственную точку , в которой достигает минимума. Если , то , и задача решена.
Если же , то выберем произвольную точку (исходная точка) и вектор , вдоль которого будем двигаться к точке до встречи с границей многогранника в некоторой точке , которую будем считать первым приближением, т.е. будем увеличивать в формуле
.
до значений , равного наименьшему положительному среди значений
Пусть для удобства значение достигается при т.е.
.
При помощи соответствующего числа последовательных шагов жордановых исключений с произвольно выбранными разрешающими элементами перебрасываем на верх таблицы столько из аннулировавшихся сколько окажется возможным. При этом каждый шаг жорданова исключения дополняется следующей операцией (реализующей правило дифференцирования сложной функции); если в результате жорданова исключения меняются местами и (т.е. - разрешающий элемент), то в полученной таблице к элементам каждой новой строки при прибавляются соответствующие элементы новой строки , умноженные на новое значение элемента (т.е. на значение - ). Полученная строка снова обозначается через . Элементы новой строки умножаются лишь на новое значение , т.е. на , и строка переименовывается в .
Действительно, если мы меняем местами и (разрешающий элемент ), то
,
следовательно,
,
где - новая строка и - также новая строка;
.
В дальнейшем под шагом жорданова исключения будем понимать обычный шаг жорданова исключения с указанными дополнениями.
Пусть после последовательных шагов жордановых исключений пришли к таблице
2) Определим единственную точку , в которой функция достигает относительного минимума при условии . Для этого решаем систему линейных уравнений
В качестве направления спуска из точки выбираем вектор и двигаемся вдоль этого направления, т.е. увеличиваем в формуле до тех пор, пока не достигнем , равного наименьшему положительному среди значений
Если , то и . Такую точку будем называть стационарной.
Если , то стационарная точка является решением.
Действительно, в этом случае градиент функции ортогонален лишь одной грани, например , в которой лежит точка , и направлен вне , так как гиперплоскость отделяет от . Поэтому нет направления из , не выводящего из , вдоль которого функция убывает.
Если же , то стационарная точка может не являться решением.
Действительно, в этом случае градиент функции ортогонален линейному многообразию, полученному в пересечении нескольких гиперплоскостей , т.е. ортогонален плоскости, размерности меньшей чем , не отделяющей от . Поэтому из точки возможно существование направления убывания , не выводящего из .
Если же , то не более чем через шагов либо получим стационарную точку, либо получим точку - вершину, т.е. принадлежащую граничным плоскостям, среди которых есть линейно независимых, т.е. на верху таблицы не остается ни одного . Точку будем также называть стационарной.
3) Определим направление движения из стационарной точки. Пусть стационарная точка принадлежит плоскостям (в соответствии с таблицей (*)) . Тогда, если , то точка - решение задачи.
Если же , то найдем направление спуска из точки , т.е. направление , не выводящее из , вдоль которого убывает функция , так что если и выводит из плоскостей , то лишь в .
Для получения направления наискорейшего спуска решаем следующую задачу линейного программирования: минимизировать функцию
при ограничениях
Но - независимые переменные, поэтому (в соответствии с таблицей (*))
Далее, точка стационарная, т.е.
,
.
В итоге мы пришли к следующей задаче линейного программирования: минимизировать функцию
при ограничениях
(так как не участвуют в нашей задаче линейного программирования, то их можно считать нулями).
Если , то , и задача решена. Если же , то двигаемся из точки в направлении решения нашей задачи линейного программирования, т.е. увеличиваем в формуле до значения , равного наименьшему положительному среди чисел
где - значение , минимизирующее функцию .
После получения точки
перебрасываем на верх таблицы столько аннулировавшихся из числа , сколько окажется возможным, и с полученной таблицей производим действия п. 2). Вычисления продолжаем до получения новой стационарной точки, с которой производим действия п. 3), и т.д.
Так как алгоритм монотонный, а стационарных точек - конечное число, то после конечного числа шагов получим решение .
3. ПРИМЕНЕНИЕ АЛГОРИТМА КВАДРАТИЧНОГО ПРОГРАММИРОВАНИЯ НА ПРАКТИКЕ
Применение алгоритма квадратичного программирования рассмотрим на конкретном примере.
Пример:
Задана функция
.
Необходимо минимизировать заданную функцию при ограничениях:
Решение:
Предварительный шаг. Составляем таблицу:
Первый шаг
1) Определение точки минимума.
Решив систему линейных уравнений
получим точку , в которой достигается .
Находим какую-нибудь точку , например . Действительно,
2) Определение .
3)Определение . Двигаемся вдоль луча
,
В итоге для шага получим: .
4) Определение новой точки и новых уклонений.
Второй шаг
1) Определение точки условного минимума функции.
Производим шаг жорданова исключения в таблице с разрешающим элементом . Получим таблицу
Решив систему линейных уравнений
найдем условную экстремальную точку функции (при условии ) в новых координатах :
2) Определение .
3) Определение .
Двигаемся вдоль луча
,
Для шага получим: .
4) Определение новой точки и новых отклонений.
Третий шаг
1) Определение точки условного минимума функции. Производим шаг жорданова исключения в таблице с разрешающим элементом . Получим таблицу
Решив уравнение , найдем условную экстремальную точку функции (при условии ) в новых координатах :
так что - стационарная точка.
Получив стационарную точку, опускаем операции 2) и 3).
4) Определение новых уклонений.
Четвертый шаг
Опускаем операцию 1).
2) Определение .
Для выхода из стационарной точки решаем следующую задачу линейного программирования: минимизировать форму
при ограничениях
Для получим: .
3) Определение .
Двигаемся вдоль луча
,
Для шага получим: где минимизирует функцию
4) Определение новой точки и новых уклонений.
причем
Пятый шаг
1) Определение точки условного минимума функции .
Решив систему линейных уравнений
найдем условную экстремальную точку функции (при условии ) в новых координатах :
так что - стационарная точка.
Так как , то и будет являться решением, т.е. функция
в точке будет принимать своё минимальное значение.
ЗАКЛЮЧЕНИЕ
Проведенное исследование позволяет сделать вывод, что метод квадратичного программирования заключается в нахождении такого решения, поставленной задачи, при котором достигается минимальное влияние отрицательных факторов на исходный процесс и осуществляется получение ожидаемого результата исходного процесса не менее некоторого фиксированного количества.
В рамках данной работы была рассмотрена одна из задач квадратичного программирования, при решении которой мы применили и изучили на практике конечный алгоритм решения задачи квадратичного программирования.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Математическое программирование в примерах и задачах: учеб. пособие / под. ред. И.Л. Акулич. - М.: Высшая школа, 2003. - 320 с.
2. Ашманов, С.А. Линейное программирование / С.А. Ашманов. - М.: Наука, 1981 - 340 с.
3. Венцель, Е.С. Исследование операций / Е.С. Венцель. - М.: Советское Радио, 2004. - 550 с.
4. Зангвилл, У. И. Нелинейное программирование. Единый подход / У.И. Зангвилл. - М.: Советское Радио, 1973.- 312 с.
5. Зуховицкий, С.И. Линейное и выпуклое программирование / С.И. Зуховицкий, П.И. Авдеева. - М.: Наука, 1967.- 460 с.
6. Солодовников, A. C. Задача квадратичного программирования / А.С. Солодовников. - М.: Финансовая Академия, 2004. - 397 с.
Размещено на Allbest.ru
...Подобные документы
Постановка задачи нелинейного программирования. Определение стационарных точек и их типа. Построение линий уровней, трехмерного графика целевой функции и ограничения. Графическое и аналитическое решение задачи. Руководство пользователя и схема алгоритма.
курсовая работа [2,5 M], добавлен 17.12.2012Использование конечного двойственного метода для корректировки решений близких задач линейно-квадратичного программирования. Разработка программы на языке С для решения и корректировки решений. Двойственная задача. Основные понятия и утверждения.
курсовая работа [165,9 K], добавлен 01.06.2014Теоретическая основа линейного программирования. Задачи линейного программирования, методы решения. Анализ оптимального решения. Решение одноиндексной задачи линейного программирования. Постановка задачи и ввод данных. Построение модели и этапы решения.
курсовая работа [132,0 K], добавлен 09.12.2008Сущность и особенности языка программирования Си. Основные этапы алгоритма решения системы линейных алгебраических уравнений методом Гаусса, реализация программы для их расчета. Инструкции пользователя и программиста. Тестирование функции решения.
курсовая работа [153,9 K], добавлен 18.02.2013Выполнение арифметических операций, этапы решения задач с помощью ЭВМ - постановка задачи, составление алгоритма решения, программная реализация алгоритма в среде Qbasic. Решение систем линейных уравнений по формулам Крамера. Графический режим Qbasic.
курсовая работа [101,7 K], добавлен 29.09.2009Определение оптимальной программы управления динамической системой, обеспечивающей минимум квадратичного критерия. Алгоритм решения краевой задачи для канонической системы уравнений с привлечением численных методов математического программирования.
курсовая работа [331,5 K], добавлен 27.11.2012Математическое программирование. Линейное программирование. Задачи линейного программирования. Графический метод решения задачи линейного программирования. Экономическая постановка задачи линейного программирования. Построение математической модели.
курсовая работа [581,5 K], добавлен 13.10.2008Интерполирование рабочих точек в пакете Mathcad с помощью полиномов (канонического, Лагранжа и Ньютона) и сплайнов (линейного, квадратичного, кубического). Реализация программы для решения системы линейных алгебраических уравнений на языке Pascal.
лабораторная работа [202,8 K], добавлен 15.11.2012Решение задачи линейного программирования симплекс-методом: постановка задачи, построение экономико-математической модели. Решение транспортной задачи методом потенциалов: построение исходного опорного плана, определение его оптимального значения.
контрольная работа [118,5 K], добавлен 11.04.2012Критерий эффективности и функции в системе ограничений. Общая постановка задачи линейного программирования. Составление математической модели задачи. Алгоритмы решения задачи симплексным методом. Построение начального опорного решения методом Гаусса.
курсовая работа [232,4 K], добавлен 01.06.2009Постановка задачи линейного программирования и формы ее записи. Понятие и методика нахождения оптимального решения. Порядок приведения задач к каноническому виду. Механизмы решения задач линейного программирования аналитическим и графическим способами.
методичка [366,8 K], добавлен 16.01.2010Применение методов линейного программирования для решения оптимизационных задач. Основные понятия линейного программирования, свойства транспортной задачи и теоремы, применяемые для ее решения. Построение первичного опорного плана и системы потенциалов.
курсовая работа [280,8 K], добавлен 17.11.2011Преобразование матрицы системы линейных алгебраических уравнений (СЛАУ) с помощью алгоритма Гаусса. Решение задачи методом простой итерации. Создание блок-схемы и текста программы для решения СЛАУ, реализованной на языке программирования Turbo Pascal.
курсовая работа [1,2 M], добавлен 15.06.2013Численные методы решения нелинейных уравнений, систем линейных и нелинейных алгебраических уравнений, дифференциальных уравнений, определенных интегралов. Методы аппроксимации дискретных функций и методы решения задач линейного программирования.
методичка [185,7 K], добавлен 18.12.2014Системы линейных алгебраических уравнений. Матричный метод решения систем линейных уравнений. Решение задачи математическим методом. Блок-схема алгоритма и листинг программы. Расчет трудоемкости разработки программы. Расчет себестоимости и цены программы.
дипломная работа [144,8 K], добавлен 25.04.2012Методы решения задачи оптимального резервирования технической системы. Решение задачи методами неопределенных множителей Лагранжа и динамического программирования. Построение оптимальной схемы системы при нагруженном резервировании ее элементов.
лабораторная работа [31,5 K], добавлен 10.06.2009Постановка задачи, математические и алгоритмические основы решения системы линейных алгебраических уравнений. Решение системы данных уравнений методом Гаусса с выбором главного элемента по столбцу. Функциональные модели и блок-схемы решения задачи.
курсовая работа [428,9 K], добавлен 25.01.2010Задачи, решаемые методом динамического программирования. Основные этапы нахождения деревянного алгоритма решения задачи. Выполнение алгоритма Прима. Построение Эйлерового цикла. Решение задач средствами Excel. Алгоритм основной программы - Derevo.
курсовая работа [586,3 K], добавлен 04.04.2015Изучение теоретических положений, раскрывающих структуру линейных и нелинейных стационарных и динамических объектов. Математическое описание и решение задачи анализа такого рода объектов. Анализ линейных стационарных объектов. Средства матричной алгебры.
контрольная работа [1,4 M], добавлен 14.02.2009Особенности задач линейного программирования. Симплексный метод решения задач линейного программирования. Обоснование выбора языка, инструментария программирования, перечень идентификаторов и блок-схема алгоритма. Логическая схема работы программы.
дипломная работа [2,4 M], добавлен 13.08.2011