Методы решения задач оптимизации

Решение задачи оптимального распределения инвестиций методом динамического программирования (программная реализация). Результаты работы программы, сравнительный анализ, графики. Решение задачи линейного программирования, его анализ на чувствительность.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 08.03.2019
Размер файла 925,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Методы решения задач оптимизации

Список обозначений и сокращений

ДП - динамическое программирование;

ЦФ - целевая функция;

ОРИ - оптимальное распределение инвестиций;

ЗЛП - задача линейного программирования.

1.Постановка задачи, краткое описание метода решения

Решить задачу оптимального распределения инвестиций методом динамического программирования (программная реализация).

Как пример для решения используется следующая задача оптимального распределения ресурсов. Инвестиции общим объемом 600 млн. руб. необходимо распределить для вложения в 4 проекта, прибыль которых в результате различных вариантов вложений представлена в таблице 1.1. Шаг .

Таблица 1.1

Объем инвестиций (млн. руб)

Прибыль

0

0

0

0

0

100

120

110

130

170

200

310

280

320

290

300

430

310

420

390

400

650

450

620

490

500

720

590

690

650

600

760

690

780

810

Динамическое программирование или, что равносильно, динамическое планирование - это метод нахождения оптимальных решений в задачах с многошаговой (многоэтапной) структурой Кузнецов А. В. Высшая математика: Математическое программирование. - Минск: Вышэйшая школа, 2001 - С. 237. Так многие экономические процессы могут быть естественным образом разделены на шаги, на некий промежуток времени (год, месяц, декада и т.д.). Однако метод ДП применим не только к задачам, в которых фигурируют временные отрезки, напротив часто он используется для решения задач, в которых шаг вводится искусственно. Собственно, «динамика» подобных задач заключается в методе решения.

Существует несколько видов задач ДП, и задача оптимального распределения инвестиций (ресурсов) является одной из них. Смысл ее заключается в том, что планируется реализация группы из проектов . Каждый проект может принести свою определенную прибыль при определенном количестве инвестиций в этот проект. Инвестиции в каждый проект измеряются в одних и тех же единицах, причем инвестиции в любой из проектов не зависят от того, какое количество инвестиций было вложено в остальные проекты. На деятельность в рамках этой группы проектов выделены какие-то средства , которые должны быть распределены между ними таким образом, чтобы прибыль, полученная в конечном итоге, была максимальна, то есть распределить средства оптимально. Получаем задачу определения объема инвестиций в каждый проект.

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

Поэтому процесс решения разбивается на шаги и исследуется методом ДП. В основу алгоритма метода положен принцип оптимальности Р. Беллмана: оптимальная стратегия обладает таким свойством, что каковы бы ни были начальное состояние и начальное решение, последующие должны быть оптимальными относительно состояния, полученного в результате первоначального решения Кузнецов А. В., Сакович В. А., Холод Н. И. Высшая математика: Математическое программирование. - Минск: Вышэйшая школа, 2001 - С. 244; так же используется т.н. принцип погружения, согласно которому задача ДП не меняется от изменения количества шагов .

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

ЦФ в подобной задаче будет иметь вид:

Задача ОРИ появляется в силу наличия ограниченного ресурса :

Для решения задачи (1.1) - (1.2) применяется аппарат функциональных уравнений Р. Беллмана. Она погружается в семейство подобных задач распределения. Вместо решения одной задачи с заданным объемом инвестиций и фиксированным числом проектов рассматриваются их семейства, в которых объем ресурса меняется от 0 до , а число проектов - от 1 до . Таким образом статическая, по сути, задача ОРИ становится задачей ДП.

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

В двух случаях элемент последовательности имеют простой вид:

, , .

Пусть инвестиции распределяются между двумя проектами. Если - объем инвестиций, вложенных во второй проект, то его прибыль составит . Оставшиеся средства распределяется оптимально. Общая прибыль от двух проектов составит:

Исходя из (1.3) можно построить рекуррентное соотношение, связывающее и для произвольных .

Решением исходной задачи получается при , т.е. из соотношения:

При получении решения задачи, т.е. при нахождении ход решения разворачивается в обратную сторону - определяется , затем . Затем из соответствующего выражения находится и т.д. Теперь находятся уже не условно-оптимальные, а оптимальные значения ЦФ на каждом этапе и оптимальные инвестиции в один проект, два и более.

Вычислительный алгоритм решения задачи ОРИ методом ДП состоит в следующем. Т.к. при решении функциональных уравнений Р. Беллмана невозможно протабулировать все значения ЦФ для каждого проекта, то промежуток разбивается на определенное количество интервалов, допустим, с шагом и считается, что функции и определены лишь в точках , причем . Значение для , отличных от (), можно получить интерполяцией. Множества значений записываются в таблицу. На последнем этапе достигается максимальное значение ЦФ и оптимальный объем инвестиций, вкладываемый в -ный проект, т.е. . Затем, как упомянуто выше процесс решения идет в обратном направлении. Найденное дает возможность найти , а следовательно, из формулы 1.4 и затем из него . Процесс решения оканчивается с нахождением .

Принцип построения решения представлен на блок-схеме ниже.

Блок-схема

2.Программная реализация

Метод реализован на языке Visual Basic for Applications в MS Excel. Работа программы заключается в построении необходимых для вычислений таблиц. После их построения реализован поиск оптимальных вариантов с их помощью и дальнейший вывод ответа полученного в ходе выполнения программы на лист Excel.

Тело программы находится в модулях книги MS Excel.

Module NumbOfCells (содержит функции подсчета заполненных ячеек таблицы по вертикали и горизонтали для определения количества шагов и количества планируемых проектов соответственно):

Function schet_rows()

schet_rows = Cells(Rows.Count, 2).End(xlUp).Row - 2

End Function

Function schet_columns()

schet_columns = Cells(4,Columns.Count).End(xlToLeft).Column - 1

End Function

Module OptInvest (основное тело вычислительной программы):

Sub ori()

Dim I, j, n, m, k, h, c, p As Integer

Dim t As Long

m = schet_rows

n = schet_columns

For i = 1 To m

Cells(m + 10 + i, 1) = Cells(2 + i, 1)

Next i

For i = 1 To m

Cells(m + 10 + i, 2) = Cells(2 + i, 2)

Next i

For j = 3 To n + 1

For k = 1 To m

For h = 1 To m

Cells(2 * m + 19 + k + h, k) = Cells(2 + k, j) + Cells(m + 10 + h, j - 1)

Next h

Next k

For i = 1 To m

Cells(m + 10 + i, j) = Application.WorksheetFunction.Max(Range(Cells(2 * m + 20 + i, 1), Cells(2 * m + 20 + i, m)))

Next i

Next j

'поворот обратно

Range(Cells(2 * m + 19, 1), Cells(5 * m + 19, m)) = Empty

For j = n + 1 To 3 Step -1

c = 0

t = 0

For k = 1 To m

For h = 1 To m

Cells(2 * m + 19 + k + h, k) = Cells(2 + k, j) + Cells(m + 10 + h, j - 1)

Next h

Next k

If j = n + 1 Then

y = Application.WorksheetFunction.Max(Range(Cells(3 * m + 20, 1), Cells(3 * m + 20, m)))

Do Until t = y

c = c + 1

t = Cells(3 * m + 20, c)

Loop

Cells(2, n + 3) = y

Else:

y = Application.WorksheetFunction.Max(Range(Cells(3 * m + 20 - p, 1), Cells(3 * m + 20 - p, m)))

Do Until t = y

c = c + 1

t = Cells(3 * m + 20 - p, c)

Loop

End If

p = p + c - 1

Cells(2, n + 2 + j) = Cells(c + 2, 1)

Next j

Cells(2, n + 4) = Cells(n+2,1) - Application.WorksheetFunction.Sum( Range( Cells( 2, n+5 ), Cells( 2, 2*n+5 )))

Range(Cells(m + 10, 1), Cells(5 * m + 10, m)) = Empty

End Sub

3.Результаты работы программы, сравнительный анализ, графики, выводы

В результате описанных ранее вычислений, примененных к решаемой задаче ОРИ, получается таблица 1.2. Из нее становится ясно, что максимальное значение ЦФ .

Таблица 1.2

Инвестиции

Значение ЦФ на -ом шаге

0

0

0

0

0

100

120

120

130

170

200

310

310

320

320

300

430

430

440

490

400

650

650

650

650

500

720

760

780

820

600

760

930

970

970

В таблице 1.3, описывающей прибыль при различных вариантах инвестиций в Проект 4, в последней строке, соответствующей вложению всех средств значению ЦФ , соответствует инвестиция равная 0. Из этого следует, что .

Таблица 1.3

Инвестиций на этапе

Количество средств, инвестированных в Проект 4

0

100

200

300

400

500

600

0

0

100

130

170

200

320

300

290

300

440

490

420

390

400

650

610

610

520

490

500

780

820

730

710

620

650

600

970

950

940

830

810

780

810

Поскольку вложения в Проект 4 были нулевыми, в таблице 1.4, описывающей прибыль проектов 1 - 3 также рассматривается последняя строка. Значению ЦФ в этом случае соответствует вложение в размере . Таким образом новый остаток средств будет равен .

Соответствующая строка находится в таблице 1.5 и теперь в ней происходит поиск максимальное значение ЦФ . Затем находится соответствующая инвестиция .

Из полученных несложно вычисляется

Полученные результаты приведены в таблице 1.7.

Таблица 1.4

Инвестиций на этапе

Количество средств, инвестированных в Проект 3

0

100

200

300

400

500

600

0

0

100

120

130

200

310

250

320

300

430

440

440

420

400

650

560

630

540

620

500

760

780

750

730

740

690

600

930

890

970

850

930

810

780

Таблица 1.5

Инвестиций на этапе

Количество средств, инвестированных в Проект 2

0

100

200

300

400

500

600

0

0

100

120

110

200

310

230

280

300

430

420

400

310

400

650

540

590

430

450

500

720

760

710

620

570

590

600

760

830

930

740

760

710

690

Таблица 1.7 Результат решения задачи ОРИ

Получаемая прибыль

Инвестиции в каждый проект

1

2

3

4

970

400

0

200

0

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

.

Из этого можно сделать вывод, что размер инвестиций определен верно.

4.Задача 2

Постановка задачи, краткое описание метода решения

Решить задачу линейного программирования. Провести анализ чувствительности оптимального решения.

ЦФ:

Ограничения:

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

Далее рассматривается графический метод решения в общем виде. ЗЛП имеет вид

при ограничениях

На плоскости каждое из неравенств системы (2.8), (2.9) ограничений имеет вид полуплоскости, расположенной по одну из сторон соответствующей прямой. Для определения расположения этой полуплоскости подставляются координаты какой-либо точки в соответствующее неравенство (2.8) и проверяется его выполнение Гребенникова И. В. Методы оптимизации. Учебное пособие - Екатеринбург, 2017 - С. 120.

Так допустимое множество задачи (2.7) - (2.9) является пересечением первого квадранта и конечного числа полуплоскостей, соответствующих неравенствам (2.8). Поэтому множество может представлять собой 3 варианта:

1) пустое множество, тогда задача (2.7) - (2.9) не имеет решений, т.к. ограничения (2.8), (2.9) оказываются несовместимыми;

2) многоугольник;

3) неограниченное многоугольное множество.

Для решения заданной задачи целесообразно рассматривать случай
и семейство линий уровня ЦФ из (2.7):

являющихся параллельными прямыми. При параллельном переносе прямой (2.10) в положительном направлении вектора градиента линейная функция (2.7) будет возрастать, а при переноси в противоположном направлении - убывать Турчак Л.И. Основы численных методов. Учебное пособие - М. 1987 - С. 194. Последнее позволяет найти крайнее положение, в котором прямая (2.10) будет иметь хотя бы одну общую точку с множеством , в которой ЦФ и принимает свое минимальное значение.

В случае максимизации ЦФ закономерно перенос произвольной прямой (2.10) происходит в положительном направлении вектора градиента.

Решение

Решение заданной ЗЛП реализовано в двух вариантах - вручную с помощью таблиц Exсel (графический метод) и - в качестве проверки - с помощью надстройки Excel «Поиск решений», в которой оно осуществляется симплекс-методом.

Далее приводятся таблицы и график, использованные в решении.

Таблицы со значениями для построения прямых:

Прямая 2x1+5x2=10

x1

0

5

x2

2

0

Прямая 5x1+2x1=10

x1

0

2

x2

5

0

Прямая x1=6

x1

6

6

x2

0

7

Прямая x2=5

x1

0

7

x2

5

5

Градиент {7;6}

x1

0

7

x2

0

6

График целевой функции

x1

10,28571

0

x2

0

12

Максимум ЦФ

x1

6

x2

5

Цель

72

Графическое решение представлено на рис. 2.1:

Рис. 2.1

Оптимальным значением ЦФ стало при .

Решение с помощью надстройки «Поиск решений» получилось аналогичным, что дает основание полагать полученные значения ЦФ и переменных верными.

5.Анализ решения на чувствительность

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

При анализе решения на чувствительность ограничения ЗЛП классифицируются определенным образом:

1) связывающие ограничения - ограничения, проходящие через оптимальную точку;

2) несвязывающие - ограничения, не проходящие через оптимальную точку.

Ресурсы, представленные ограничениями, также подвергаются классификации:

1) дефицитный ресурс - ресурс, представленный связывающим ограничением;

2) недефицитный ресурс - ресурс, представленный несвязывающим ограничением.

Если исключение ограничения из модели ЗЛП никак не влияет на его решение, то такое ограничение называют избыточным Т.В. Аллесинская Учебное пособие по решению задач по курсу экономико-математические методы и модели - Таганрог, 2002 - С. 41. Также выделяют три вида анализа чувствительности:

1) анализ сокращения или увеличения ресурсов;

2) увеличение запаса какого из ресурсов наиболее выгодно;

3) анализ изменения коэффициентов ЦФ.

В заданной задаче ограничения будут следующими:

- избыточное;

- избыточное;

- связывающее, ресурс - дефицитный;

- связывающее, ресурс - дефицитный.

Увеличение двух последних ограничений очевидно невозможно, поскольку они не могут стать избыточными в отсутствие других подходящих ограничений. Анализ на то, увеличение какого ресурса наиболее выгодно, это тоже делает невозможным.

Однако, можно провести анализ изменения коэффициентов ЦФ. Для этого необходимо вначале найти тангенс угла наклона прямых ограничений (2.4) и (2.5), а затем приравнять тангенс угла наклона ЦФ поочередно к этим значениям и найти максимальное и минимальное изменения коэффициентов и .

Для связывающего ограничения (2.4):

Т. к. , не существует.

Для связывающего ограничения (2.5):

Для ЦФ (2.1):

Допустимое изменение :

Допустимое изменение найти невозможно, поскольку не существует. Следовательно можно принять .

Точно также вычисляются подобные значения для , только тангенс угла наклона определяется для другой координатной оси.

Для связывающего ограничения (2.4):

Для связывающего ограничения (2.5):

Т. к. , не существует.

Для ЦФ (2.1):

Допустимое изменение :

Допустимое изменение найти невозможно, поскольку не существует. Следовательно, можно принять .

Минимальные и максимальные значения и

Минимум

Максимум

0

7

0

6

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

динамический программирование линейный

1. Алесинская Т.В. Учебное пособие по решению задач по курсу "Экономико-математические методы и модели"/ Алесинская Т.В. - Таганрог: Изд-во ТРТУ, 2002 - 153 с.;

2. Бородина Т.А. Математическое программирование: учеб.-метод. пособие для организации самостоятельной работы и методические рекомендации для подготовки к тестированию/Бородина Т.А. - Минск.: БГЭУ, 2011. - 78 с.;

3. Гребенникова И. В. Методы оптимизации: учебное пособие/ Гребенникова И. В. - Екатеринбург: УрФУ, 2017 - 148 с.;

4. Кузнецов А. В. Высшая математика: Математическое программирование/ Кузнецов А. В., Сакович В. А., Холод Н. И. - Минск: Вышэйшая школа, 2001 - С. 286;

5. Турчак Л.И. Основы численных методов: Учебное пособие/ Турчак Л.И. - М.: Наука. Гл. ред. физ.-мат. лит., 1987 - 320 с.

Приложение

Решение задачи 1 (задачи ОРИ) с помощью представленной в работе программы.

Решение других задач ОРИ с помощью представленной в работе программы

Решение задачи 2 (ЗЛП) с помощью «Поиска решений» в MS Excel и отчеты об устойчивости, предоставляемые данным ПО.

Размещено на Allbest.ru


Подобные документы

  • Теоретическая основа линейного программирования. Задачи линейного программирования, методы решения. Анализ оптимального решения. Решение одноиндексной задачи линейного программирования. Постановка задачи и ввод данных. Построение модели и этапы решения.

    курсовая работа [132,0 K], добавлен 09.12.2008

  • Алгоритм решения задач линейного программирования симплекс-методом. Построение математической модели задачи линейного программирования. Решение задачи линейного программирования в Excel. Нахождение прибыли и оптимального плана выпуска продукции.

    курсовая работа [1,1 M], добавлен 21.03.2012

  • Решение задачи линейного программирования симплекс-методом: постановка задачи, построение экономико-математической модели. Решение транспортной задачи методом потенциалов: построение исходного опорного плана, определение его оптимального значения.

    контрольная работа [118,5 K], добавлен 11.04.2012

  • Анализ решения задачи линейного программирования. Симплексный метод с использованием симплекс-таблиц. Моделирование и решение задач ЛП на ЭВМ. Экономическая интерпретация оптимального решения задачи. Математическая формулировка транспортной задачи.

    контрольная работа [196,1 K], добавлен 15.01.2009

  • Методы решения задачи оптимального резервирования технической системы. Решение задачи методами неопределенных множителей Лагранжа и динамического программирования. Построение оптимальной схемы системы при нагруженном резервировании ее элементов.

    лабораторная работа [31,5 K], добавлен 10.06.2009

  • Общее понятие и характеристика задачи линейного программирования. Решение транспортной задачи с помощью программы MS Excel. Рекомендации по решению задач оптимизации с помощью надстройки "Поиск решения". Двойственная задача линейного программирования.

    дипломная работа [2,4 M], добавлен 20.11.2010

  • Методы решения задач линейного программирования: планирования производства, составления рациона, задачи о раскрое материалов и транспортной. Разработка экономико-математической модели и решение задачи с использованием компьютерного моделирования.

    курсовая работа [607,2 K], добавлен 13.03.2015

  • Решение задачи линейного программирования графическим методом, его проверка в MS Excel. Анализ внутренней структуры решения задачи в программе. Оптимизация плана производства. Решение задачи симплекс-методом. Многоканальная система массового обслуживания.

    контрольная работа [2,0 M], добавлен 02.05.2012

  • Построение математической модели. Выбор, обоснование и описание метода решений прямой задачи линейного программирования симплекс-методом, с использованием симплексной таблицы. Составление и решение двойственной задачи. Анализ модели на чувствительность.

    курсовая работа [100,0 K], добавлен 31.10.2014

  • Постановка задачи линейного программирования и формы ее записи. Понятие и методика нахождения оптимального решения. Порядок приведения задач к каноническому виду. Механизмы решения задач линейного программирования аналитическим и графическим способами.

    методичка [366,8 K], добавлен 16.01.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.