Решение оптимизационных задач
Министерство образования и науки РФ
Федеральное государственное
бюджетное образовательное
высшего профессионального образования
«Южно-Уральский
(Научно-исследовательский университет)
Горно-керамический колледж
филиала ЮУрГУ в г. Сатке
Решение оптимизационных задач
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К КУРСОВОМУ ПРОЕКТУ
по дисциплине: «Математические методы»
ГКК - 230105.51.2012.18.ПЗ КП
Нормоконтролер, преподаватель |
Руководитель, преподаватель | ||
_______________О.И.Шибанова |
_____________О.И. Шибанова | ||
______________________2012 г. |
____________________2012 г. | ||
Автор проекта | |||
студент группы 305 | |||
______________ И.А. Савинков | |||
_____________________2012 г. | |||
Проект защищен | |||
с оценкой (прописью, цифрой) | |||
___________________ | |||
___________________2012 г. | |||
Сатка 2012
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Южно-Уральский
(Научно-исследовательский университет)
Горно-керамический колледж
филиала ЮУрГУ в г. Сатке
Специальность 230105.51 «Программное обеспечение вычислительной
техники и автоматизированных систем»_______________
УТВЕРЖДАЮ
Председатель ПЦК
_________/Шибанова О.И.
___________ 2012 г.
ЗАДАНИЕ
на курсовой проект студента
Савинкова Ильи Александровича
Группа 305
- Дисциплина (специализация) Математические методы
- Тема работы (проект) Решение оптимизационных задач
Вариант - 18
- Срок сдачи студентом законченной работы 16 мая 2012 г.
- Перечень вопросов, подлежащих разработке:
Задача 1: Сформулировать двойственную задачу и решить её.
при условиях
где , , .
Задача 2: На базы: А1, А2 ... A4 поступил однородный груз в количествах: а1, а2, а3, а4 соответственно. Груз требуется перевезти в пять пунктов: b1 в пункт В1, b2 в пункт В2, b 3 в пункт В3, b 4 в пункт В4, b 5 в пункт В5.
Спланировать перевозки так, чтобы общая их стоимость была минимальной.
Матрица тарифов cij перевозок между пунктами отправления (базами) и пунктами назначения, а также запасы аi и потребности bj задаются в соответствии с таблицей.
Найти опорный план задачи методом северо-западного угла и методом минимального элемента. Оптимальный план определить с помощью MS Excel, MathCAD.
Пункт отправления |
Пункты назначения |
Запасы, ai (тонн) | ||||
В1 |
B2 |
В3 |
B 4 |
B 5 | ||
|
A1 |
11 |
28 |
15 |
12 |
17 |
4 |
A2 |
32 |
27 |
26 |
10 |
3 |
6 |
Aз |
12 |
4 |
22 |
3 |
1 |
10 |
A4 |
4 |
1 |
5 |
4 |
24 |
10 |
Потребности, bj (тонн) |
7 |
7 |
7 |
7 |
2 |
|
- Календарный план:
Наименование разделов курсового проекта |
Срок выполнения разделов проекта |
Отметка о выполнении руководителя |
Разработка графического метода решения задачи линейного программирования |
27.12.2012г. |
|
Разработка симплекс-метода решения задачи линейного программирования |
15.03.2013г. |
|
Решение транспортной задачи |
4.04.2013г. |
|
Оформление курсовой работы |
12.05.2013г. |
Руководитель работы (проекта) __________________ /О. И. Шибанова /
Студент _____________ /И.А. Савинков/
АННОТАЦИЯ
Савинков И.А. Решение оптимизационных задач. - Сатка: Горно- керамический колледж филиала ЮУрГУ, 305; 2012, 24 с., 10 ил., библиографический список - 8 наим., 1 прил.
В курсовом проекте
рассмотрены решения
Каждый раздел состоит из теоретической и практической части.
В теоретической части приводится алгоритм решения задач на поиск оптимального решения, в практической части - решение конкретных задач.
Первая задача решена графическим
методом с помощью
Алгоритм симплекс-метода использован при решении первой задачи. Подтверждение правильного решения осуществлено при помощи функции Поиск решения в MS Excel, программного кода в MathCAD 14 Professional.
Опорный план второй задачи – транспортной, определён методом северо-западного угла, а также методом минимального элемента. Оптимальный план перевозок получен с помощью метода потенциалов.
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
Задачи оптимального планирования,
задачи линейного программирования
методами линейного программирования.
1 ИСТОРИЧЕСКАЯ СПРАВКА
Первые задачи геометрического содержания, связанные с отысканием наименьших и наибольших величин, появились ещё в древние времена. Развитие промышленности в 17-18 веках привело к необходимости исследования более сложных задач на экстремум и к появлению вариационного исчисления. Однако лишь в 20 веке при огромном размахе производства и осознанию ограниченности ресурсов Земли во весь рост встала задача оптимального использования энергии, материалов, рабочего времени, большую актуальность приобрели вопросы наилучшего в том или ином смысле управления различными процессами физики, техники, экономики и др.
Временем рождения линейного программирования принято считать 1939г., когда была напечатана брошюра Леонида Витальевича Канторовича «Математические методы организации и планирования производства». Поскольку методы, изложенные Л.В.Канторовичем, были малопригодны для ручного счета, а быстродействующих вычислительных машин в то время не существовало, работа Л.В.Канторовича осталась почти незамеченной.
Свое второе рождение линейное программирование получило в начале пятидесятых годов с появлением ЭВМ. Тогда началось всеобщее увлечение линейным программированием, вызвавшее в свою очередь развитие других разделов математического программирования. В 1975 году академик Л.В.Канторович и американец профессор Т. Купманс получили Нобелевскую премию по экономическим наукам за «вклад в разработку теории и оптимального использования ресурсов в экономике».
2 ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ ТЕОРИИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Линейное программирование
— раздел математического программирован
Особенностью
задач линейного
Таблица 1 – Общая задача линейного программирования
Каноническая (основная) форма |
Стандартная (симметрическая) форма |
Общая форма |
1) ограничения | ||
Уравнения |
Неравенства |
Уравнения, неравенства |
2) условия неотрицательности | ||
Все переменные |
Все переменные |
Часть переменных |
3) целевая функция | ||
|
max или min F(x) |
max или min F(x) | |
Планом или допустимым решением задачи линейного программирования называется вектор , удовлетворяющий условиям 1) и 2).
Оптимальным планом (решением) задачи линейного программирования называется план, доставляющий линейной форме наибольшее или наименьшее значение.
3 СИМПЛЕКС МЕТОД
3.1 Теоретическая часть
Симплексный метод решения задачи линейного программирования основан на переходе от одного опорного плана к другому, при котором значение целевой функции возрастает (при условии, что данная задача имеет оптимальный план и каждый ее опорный план является невырожденным). Указанный переход возможен, если известен какой-нибудь исходный опорный план. Рассмотрим задачу, для которой этот план можно непосредственно записать.
Пусть требуется найти максимальное значение функции
при условиях
.
Здесь аij, bi, и cj (i=1,…, m; j=1,…, n) – заданные постоянные числа (m<n и bi>0).
Векторная форма данной задачи имеет следующий вид: найти максимум функции
при условиях
.
где ; ; …; ; …; ; .
Так как b1P1+ b2P2 +…+ bmPm = P0, то по определению опорного плана Х=(b1; b2; …; bm; 0; …; 0) является опорным планом данной задачи (последние n–m компонент вектора Х равны нулю). Этот план определяется системой единичных векторов Р1, Р2, …, Рm, которые образуют базис m–мерного пространства. Поэтому каждый из векторов Р1, Р2, …, Рm, а так же вектор Р0 могут быть представлены в виде линейной комбинации векторов данного базиса. Пусть
Положим ; .
Так как векторы Р1, Р2, …, Рm, единичные, то и , а
Теорема 1 (признак оптимальности опорного плана):
Опорный план является оптимальным, если ∆j > 0 для любого .
Теорема 2: Если ∆k < 0 для некоторого j=k и среди чисел aik нет положительных (aik < 0), то целевая функция не ограничена на множестве ее планов.
Теорема 3: Если опорный план Х задачи не вырожден и ∆k < 0, но среди чисел aik есть положительные (не все aik < 0), то существует опорный план Х′ такой, что F(X′)>F(X). Сформулированные теоремы позволяют проверить, является ли найденный опорный план оптимальным, и выявить целесообразность перехода к новому опорному плану.
Исследование опорного плана на оптимальность, а так же дальнейший вычислительный процесс удобнее вести, если условия задачи и первоначальные данные, полученные после определения исходного опорного плана, записать так, как показано в таблице 2.
В столбце Сб этой таблицы записывают коэффициенты при неизвестных целевой функции, имеющие те же индексы, что и векторы данного базиса.
В столбце Р0 записывают положительные компоненты исходного опорного плана, в нем же в результате вычислений получают положительные компоненты оптимального плана. Столбцы векторов Рj представляют собой коэффициенты разложения этих векторов по векторам данного базиса.
В таблице 2 первые m строк определяются исходными планами задачи, а показатели (m+1)-й строки вычисляют. В этой строке в столбце вектора Р0 записывают значение целевой функции, которое она принимает при данном опорном плане, а в столбце вектора Рj-значение ∆j = zj – cj.
Значение zj находится как скалярное произведение вектора Рj на вектор .
Значение F0 равно скалярному произведению вектора Р0 на вектор Сб:
(10)
Таблица 2–Итерация 1
|
Базис |
Сб |
|
… |
… |
… |
… |
||||||||
|
|
… |
… |
… |
… |
||||||||||
|
1 |
1 |
0 |
… |
0 |
… |
0 |
… |
… |
||||||
|
2 |
0 |
1 |
… |
0 |
… |
0 |
… |
… |
||||||
|
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
r |
0 |
0 |
… |
1 |
… |
0 |
… |
… |
||||||
|
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
m |
0 |
0 |
… |
0 |
… |
1 |
… |
… |
||||||
|
m+1 |
0 |
0 |
… |
0 |
… |
0 |
… |
… |
После заполнения таблицы 2 исходный опорный план проверяют на оптимальность. Для этого просматривают элементы (m+1)-й строки таблицы. В результате может иметь место одна из приведённых выше теорем.
В первом случае на основании признака оптимальности исходный опорный план является оптимальным. Во втором случае целевая функция неограниченна сверху на множестве планов, а в третьем случае можно перейти от исходного плана к новому опорному плану, при котором значение целевой функции увеличится. Этот переход от одного опорного плана к другому осуществляется исключительно из исходного базиса какого-нибудь из векторов и введением в него нового вектора. В качестве вектора, вводимого в базис, можно взять любой из векторов Р, имеющих индекс j, для которого ∆j <0 . Пусть, например, ∆k<0 и решено ввести в базис вектор Рk.
Для определения вектора, подлежащего исключению из базиса, находят для всех аik > 0. Пусть этот минимум достигается при i = r. Тогда из базиса исключают вектор Рr , а число аrk называют разрешающим элементом.
Столбец и строку, на пересечении которых находится разрешающий элемент, называют направляющим.
После выделения направляющей строки и направляющего столбца находят новый опорный план и коэффициенты разложения векторов Рj через векторы нового базиса, соответствующего новому опорному плану. Положительные компоненты нового опорного плана вычисляются по формулам:
а коэффициенты разложения векторов Рi через векторы нового базиса,
После вычисления и согласно формулам (11) и (12) их значения заносят в следующую симплекс-таблицу. Элементы (m+1)-й строки этой таблицы могут быть вычислены либо по формулам:
, (13)
либо на основании их определения.
Наличие двух способов нахождения элементов (m+1)-й строки позволяет осуществлять контроль правильности проводимых вычислений.
Из формулы (13) следует, что при переходе от одного опорного плана к другому наиболее целесообразно ввести в базис вектор Рj , имеющий индекс j, при котором максимальным по абсолютной величине является число (∆j<0, аj>0). Однако с целью упрощения вычислительного процесса в дальнейшем будет вектор, вводимый в базис, определять, исходя из максимальной абсолютной величины отрицательных чисел ∆j. Если же таких чисел несколько, то в базис будем вводить вектор, имеющий такой же индекс, как максимальное из чисел Сj , определяемых данными числами ∆j (∆j <0).
Итак, переход от одного опорного плана к другому сводится к переходу от одной симплекс-таблицы к другой. Элементы новой симплекс-таблицы можно вычислить как с помощью рекуррентных формул (11)–(12) так и правилам, непосредственно вытекающих из них. Эти правила состоят в следующем.
В столбцах векторов, входящих в базис на пересечении строк и столбцов одноименных векторов проставляются единицы, а все остальные элементы данных столбцов полагают равными нулю.
Элементы векторов Р0 и Рj в строке новой симплекс-таблицы, в которой записан вектор, вводимый в базис, получают из элементов этой же строки исходной таблицы делением их на величину разрешающего элемента. В столбце Сб в строке вводимого вектора проставляют величину Сk , где к- индекс вводимого вектора.
Остальные элементы столбцов вектора Р0 и Рj новой симплекс-таблицы вычисляют по правилу треугольника. Для вычисления, какого-нибудь из этих элементов находят три числа:
- число, стоящее в исходной симплекс-таблице на месте искомого элемента новой симплекс-таблицы;
– число, стоящее в исходной симплекс-таблице на пересечении строки, в которой находится искомый элемент новой симплекс-таблицы, и столбца, соответствующего вектору, вводимому в базис;
- число, стоящее в новой симплекс-табли
це на пересечении столбца, в котором стоит искомый элемент, и строки вновь вводимого в базис вектора (как отмечено выше, эта строка получается из строки исходной симплекс-таблицы делением ее элементов на разрешающий элемент). Эти три числа образуют своеобразный треугольник, две вершины которого соответствуют числам, находящимся в исходной симплекс-таблице, а третье – числу, находящемуся в новой симплекс-таблице. Для определения искомого элемента новой симплекс-таблицы из первого числа вычитают произведение второго и третьего.
После заполнения
новой симплекс-таблицы
Этапы решения задач симплексным методом:
- находят опорный план;
- составляют симплекс-таблицу;
- выясняют, имеется ли хотя бы одно отрицательное число ∆j. Если нет, то найденный опорный план оптимален. Если же среди чисел ∆j имеются отрицательные, то либо устанавливают неразрешимость задачи, либо переходят к новому опорному плану;
- находят направляющий столбец и строку;
– по формулам (11)–(12) определяют, положительные компоненты нового опорного плана, коэффициенты разложения векторов Рj по векторам нового базиса и числа , . Все эти числа записываются в новой симплекс-таблице;
– проверяют новый опорный план на оптимальность. Если план не оптимальный переходят к следующей симплекс-таблице, если оптимальный – записывают ответ.
3.2 Практическая часть
Задача 1: Решить задачу симплекс-методом:
при условиях
,
где , , .
Решение:
Запишем задачу в каноническом виде:
при условиях
где , , , , , .
Запишем задачу в векторной форме:
P1x1+ P2x2+ P3x3+ P4x4+ P5x5+ P6x6 =P0
где , , , , , , .
P4, P5 , P6 – единичные базисные вектора.
Таблица 3 – Итерация 1
i |
Базис |
Сб |
Ро |
3 |
2 |
-5 |
0 |
0 |
0 |
P1 |
Р2 |
Р3 |
Р4 |
P5 |
Р6 | ||||
|
1 |
Р4 |
0 |
30 |
2 |
-3 |
5 |
1 |
0 |
0 |
2 |
Р5 |
0 |
24 |
-3 |
-3 |
6 |
0 |
1 |
0 |
3 |
Р6 |
0 |
28 |
2 |
-4 |
0 |
0 |
1 | |
0 |
-3 |
-2 |
5 |
0 |
0 |
0 |
Опорный план X1=(0;0;0;30;24;28) не является оптимальным т.к. <0, <0 mах( |-3| , |-2| )=3 направляющий столбец P1.
направляющая строка третья
Разрешающий элемент равен 4. Исключим из базиса вектор Р6 и введем в базис вектор P1. Составим новую симплекс-таблицу.
Таблица 4 – Итерация 2
i |
Базис |
Сб |
Ро |
3 |
2 |
-5 |
0 |
0 |
0 |
P1 |
Р2 |
Р3 |
Р4 |
P5 |
Р6 | ||||
|
1 |
Р4 |
0 |
16 |
0 |
-4 |
7 |
1 |
0 |
0 |
2 |
Р5 |
0 |
45 |
0 |
-3/2 |
3 |
0 |
1 |
0 |
3 |
Р1 |
3 |
7 |
1 |
-1 |
0 |
0 |
||
|
|
21 |
0 |
2 |
0 |
0 |
Опорный план X2=(7; 0; 0;16; 45; 0) не является оптимальным т.к. <0.
Направляющий столбец P2.
, направляющая строка третья
Разрешающий элемент равен . Исключим из базиса вектор Р1 и введем в базис вектор P2. Составим новую симплекс-таблицу.
Таблица 5 – Итерация 3
i |
Базис |
Сб |
Ро |
3 |
2 |
-5 |
0 |
0 |
0 |
P1 |
Р2 |
Р3 |
Р4 |
P5 |
Р6 | ||||
|
1 |
Р4 |
0 |
72 |
8 |
0 |
-1 |
1 |
0 |
|
|
2 |
Р5 |
0 |
66 |
3 |
0 |
0 |
0 |
1 |
|
|
3 |
Р2 |
2 |
14 |
2 |
1 |
-2 |
0 |
0 |
|
|
|
28 |
1 |
0 |
1 |
0 |
0 |
1 |