Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы оптимизации.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
261.92 Кб
Скачать

МЕТОДЫ ОПТИМИЗАЦИИ Горлова Светлана Николаевна

06.09.2012 Лекция

Курс: домашние работы, контрольная работа, зачёт.

§1. Общая поставнока задач

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

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

Определение:

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

Задача имеет следующий внешний вид:

Это система линейного ограничения.

где:

– целевая функция или критерий оптимальности

– любой знак

Целевая функция чаще всего имеет вид:

Определение:

Задача линейного программирования называется стандартной, если:

  1. на

  2. для любых

  3. Ограничения имеют вид неравенств (СЭЛП)

Определение:

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

Определение:

Множество называется множеством планов или допустимых решений. Иными словами, если ’ы удовлетворяют решениям задачи, то множество будет планом допустимых решений задачи.

Определение:

План называется оптимальным в задаче на , (или на ) если (или ) для любых .

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

Задача о пищевом рационе.

Имеется три вида продуктов: , , . Из этих продуктов требуется составить пищевой рацион, который должен содержать:

белков не менее ед.

углеводов – не менее ед.

жиров – не менее ед.

Содержание белков, углеводов и жиров в одной единице продукции каждого вида указано в таблице:

Вид продукции

белки

жиры

углеводы

Стоимость единицы продукции

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

Cоставим задачу.

– это количество единиц той или иной продукции.

Составим ограничения.

Белков в продукции будет , т. к. – это количество продукции , а – это количество белков в одной единице продукции. Тогда:

Определим целевую функцию. По условию задачи она стремится к минимуму:

И положим следующее ограничение: количество товаров не может быть отрицательным, т. е. .

Таким образом, задача имеет следующий вид:

Задача о загрузке оборудования.

Предприятие располагает двумя видами станков: штук первого вида, штук – второго вида. Станки могут производить три вида ткани, но с различной производительностью, которая указана в таблице:

Вид станка

1

2

Доход от реализации ткани

Производительность и стоимость указаны на одну единицу ткани.

План:

не менее , но не более

не менее , но не более

не менее , но не более

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

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

Необходимо произвести , , единиц ткани типа , , так, чтобы максимизировать выручку. Получаем функцию:

Ограничения по выпуску тканей определённого типа:

,

Но теперь не ясно, как определить загрузку станков, ведь они оба должны работать одновременно. Получается, что в качестве переменных у нас будет количество станков -го вида, занятых производством ткани -го типа.

Теперь узнаем, сколько ткани разного типа вида мы выпустим. Здесь пригодится информация о производительности станков.

– это количество ткани 1-го типа, выпущенной 1-м станком,

– это количество ткани 2-го типа, выпущенной 1-м станком,

– это количество ткани 3-го типа, выпущенной 1-м станком,

– это количество ткани 1-го типа, выпущенной 2-м станком,

– это количество ткани 2-го типа, выпущенной 2-м станком,

– это количество ткани 3-го типа, выпущенной 2-м станком.

Тогда ограничения по количеству выпущенной ткани будут выглядеть так:

Целевая функция получается следующая:

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

Количество работающих станков не может быть нулевым и должно быть целым, т. е.:

Таким образом, мы составили задачу.

ГЕОМЕТРИЧСЕКАЯ ИНТЕРПРЕТАЦИЯ

ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ.

Задание: решить геометрически.

Построим область на координатной плоскости, зная, что , . Для этого найдём точки, через которые проходит каждая из пяти прямых.

Первая прямая , очевидно, проходит через точки и : , .

Вторая прямая проходит через точки и .

Остальные прямые совпадают с координатными осями.

Построим ограниченную данными прямыми область :

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

По условию целевая функция имеет вид . Найдём её первые частные производные:

Таким образом, вектор-градиент направлен из начала координат в точку .

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

Подставим найденную точку в уравнение целевой функции, чтобы найти максимальное значение функции в данной области:

.

13.09.2012 Лекция

Запишем задачу линейного программирования в векторной форме. Вспомним вид обычной записи задачи линейного программирования:

Видим, что правая часть целевой функции напоминает скалярное произведение векторов. Таким образом, целевая функция представима в виде скалярного произведения векторов и :

Ограничения же – это уравнения, которые в векторной форме можно представить так:

где

для любых

План из называется опорным, базисным, если он либо нулевой вектор, либо если система вектор-столбцов, соответствующих ненулевым координатам вектора х, является линейно независимой.

Пример:

Является ли вектор базисным (опорным)?

Но прежде чем проверять опорность плана , следует сначала удостовериться, что является планом, т. е. принадлежит множеству . Для этого подставим вектор в ограничения:

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

Теперь проверим, является ли план базисным, для этого воспользуемся определением. Т. к. вектор не является нулевым, построим систему вектор-столбцов:

Из вектора только третья и четвёртая координаты является ненулевыми.

Установим наличие или отсутствие линейной зависимости этих двух векторов. Помним, что система векторов является линейно зависимой, если существуют такие , не все равные нулю, при которых .

Следовательно, система векторов не является линейно зависимой. Таким образом, можем сделать заключение: план является базисным (опорным).

Определение:

Точка множетсва называется угловой точкой множества , если она не является внутренней точкой никакого отрезка.

Определение:

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

Запишем условие принадлежности отрезка всему множеству:

, ,

Теорема:

Каждый базисный план является угловой точкой множества допустимых планов.

Доказательство:

Существует некий , являющийся планом, т. е. . Кроме того, по условию – базис. Докажем, что – угловая точка.

Поскольку базисный, у него есть как нулевые, так и ненулевые координаты. Допустим, . Из этого следует, что система линейно независима.

Докажем от противного, т. е. пусть не является угловой точкой, другими словами, – внутренняя точка некоторого отрезка. Отсюда следует, что , где , . Запишем это равенство в координатном виде:

, .

,

По условию задачи линейного программирования, координаты у допустимых планов неотрицательны, т. е. и .

Т. к. , то в правой части последнего равенства стоит сумма неотрицательных слагаемых. Это происходит тогда, когда все члены равенства равны нулю, т. е. , . Т. е. у векторов и нулю равны одни и те же координаты.

Т. к. , , они удовлетвряют ограничениям задачи: . Для . Т. е. система вектор-столбцов – линейно зависима <дописать здесь>.

Теорема:

Если целевая функция принимает наибольшее значение в некоторой точке множества D, то она принимает это же значение и в некоторой угловой точке этого множества.

Доказательство:

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

где

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

Пусть для любых принимает наибольшее значение в точке (скалярное произведение линейно по каждому сомножителю) .

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

<дописать здесь>

.

Итак, .

Но с другой стороны, : – наибольшее, т. е. для любого из следует .

Из этого следует, что . Что и требовалось доказать.

Задача 1.

Решить нужно графически.

Построим область, ограниченную нашими прямыми и осями координат:

Найдём координаты вектора-градиента:

Прямую, перпендикулярную вектору-градиенту, параллельно переносим до пересечения с самой последней точкой, у нас это точка пересечения прямой с осью координат . Составим и решим систему:

, – это и есть точка, в которой целевая функция принимает наибольшее значение.

Найдём значение целевой функции в этой точке:

.

Задача 2.

Построим область

Как видно на графике, область не ограничена. Следовательно, наибольшего значения у функции нет, задача решения не имеет. Целевая функция не ограничена сверху на непустом множестве планов.

14.09.2012 Лекция

Задача 3.

Продолжаем решать графически:

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

Как мы помним, градиент показывает направление возрастания функции. Поэтому в задачах со стремящейся к минимуму целевой функцией мы переносим перпендикуляр градиента в ту сторону, которая противоположна его направлению. В этой задаче перпендикуляр градиента параллелен 3-ей прямой, а значит, при параллельном переносе он полностью накладывается на эту прямую. Это можно увидеть также по коэффициентам при аргументах целевой функции и третьего уравнения – они пропорциональны. Ответом к задаче будет множество точек, расположенных на том отрезке прямой , который сходит в область . Другими словами, это будут точки, расположенные на отрезке с координатами концов ( ) и ( ).

Наш будет записан в виде: .

Подставим координаты концов отрезка и в целевую функцию:

Таким образом, наименьшее значение целевой функции: .

Задача 4.

<При желании решить эту задачу дома>

Задача 5.

Замечаем, что у нас больше двух переменных. Нам нужно выразить их все через и . Тогда целевая функция примет вот такой вид:

Упростим:

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

Уберём из левой части весь последний столбец ’ов:

Таким образом, мы не только создали неравенства, но и избавились от столбца лишних переменных, и теперь сможем построить область.

Находим:

19.09.2012 Лекция