Оптимальное значение целевой функции называется. Методы оптимизации и исследование операций

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

Рассмотрим задачу линейного программирования с двумя переменными и :
(1.1) ;
(1.2)
Здесь , есть произвольные числа. Задача может быть как на нахождение максимума (max), так и на нахождение минимума (min). В системе ограничений могут присутствовать как знаки , так и знаки .

Построение области допустимых решений

Графический метод решения задачи (1) следующий.
Вначале мы проводим оси координат и и выбираем масштаб. Каждое из неравенств системы ограничений (1.2) определяет полуплоскость, ограниченную соответствующей прямой.

Так, первое неравенство
(1.2.1)
определяет полуплоскость, ограниченную прямой . С одной стороны от этой прямой , а с другой стороны . На самой прямой . Чтобы узнать, с какой стороны выполняется неравенство (1.2.1), мы выбираем произвольную точку, не лежащую на прямой. Далее подставляем координаты этой точки в (1.2.1). Если неравенство выполняется, то полуплоскость содержит выбранную точку. Если неравенство не выполняется, то полуплоскость расположена с другой стороны (не содержит выбранную точку). Заштриховываем полуплоскость, для которой выполняется неравенство (1.2.1).

Тоже самое выполняем для остальных неравенств системы (1.2). Так мы получим заштрихованных полуплоскостей. Точки области допустимых решений удовлетворяют всем неравенствам (1.2). Поэтому, графически, область допустимых решений (ОДР) является пересечением всех построенных полуплоскостей. Заштриховываем ОДР. Она представляет собой выпуклый многоугольник, грани которого принадлежат построенным прямым. Также ОДР может быть неограниченной выпуклой фигурой, отрезком, лучом или прямой.

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

Можно упростить метод. Можно не заштриховывать каждую полуплоскость, а вначале построить все прямые
(2)
Далее выбрать произвольную точку, не принадлежащую ни одной из этих прямых. Подставить координаты этой точки в систему неравенств (1.2). Если все неравенства выполняются, то область допустимых решений ограничена построенными прямыми и включает в себя выбранную точку. Заштриховываем область допустимых решений по границам прямых так, чтобы оно включало в себя выбранную точку.

Если хотя бы одно неравенство не выполняется, то выбираем другую точку. И так далее, пока не будет найдены одна точка, координаты которой удовлетворяют системе (1.2).

Нахождение экстремума целевой функции

Итак, мы имеем заштрихованную область допустимых решений (ОДР). Она ограничена ломаной, состоящей из отрезков и лучей, принадлежащих построенным прямым (2). ОДР всегда является выпуклым множеством. Оно может быть как ограниченным множеством, так и не ограниченным вдоль некоторых направлений.

Теперь мы можем искать экстремум целевой функции
(1.1) .

Для этого выбираем любое число и строим прямую
(3) .
Для удобства дальнейшего изложения считаем, что эта прямая проходит через ОДР. На этой прямой целевая функция постоянна и равна . такая прямая называется линией уровня функции . Эта прямая разбивает плоскость на две полуплоскости. На одной полуплоскости
.
На другой полуплоскости
.
То есть с одной стороны от прямой (3) целевая функция возрастает. И чем дальше мы отодвинем точку от прямой (3), тем больше будет значение . С другой стороны от прямой (3) целевая функция убывает. И чем дальше мы отодвинем точку от прямой (3) в другую сторону, тем меньше будет значение . Если мы проведем прямую, параллельную прямой (3), то новая прямая также будет линией уровня целевой функции, но с другим значением .

Таким образом, чтобы найти максимальное значение целевой функции, надо провести прямую, параллельную прямой (3), максимально удаленную от нее в сторону возрастания значений , и проходящую хотя бы через одну точку ОДР. Чтобы найти минимальное значение целевой функции, надо провести прямую, параллельную прямой (3) и максимально удаленную от нее в сторону убывания значений , и проходящую хотя бы через одну точку ОДР.

Если ОДР неограниченна, то может возникнуть случай, когда такую прямую провести нельзя. То есть как бы мы ни удаляли прямую от линии уровня (3) в сторону возрастания (убывания) , то прямая всегда будет проходить через ОДР. В этом случае может быть сколь угодно большим (малым). Поэтому максимального (минимального) значения нет. Задача решений не имеет.

Рассмотрим случай, когда крайняя прямая, параллельная произвольной прямой вида (3), проходит через одну вершину многоугольника ОДР. Из графика определяем координаты этой вершины. Тогда максимальное (минимальное) значение целевой функции определяется по формуле:
.
Решением задачи является
.

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

Пример решения задачи линейного программирования графическим методом

Условие задачи

Фирма выпускает платья двух моделей А и В. При этом используется ткань трех видов. На изготовление одного платья модели А требуется 2 м ткани первого вида, 1 м ткани второго вида, 2 м ткани третьего вида. На изготовление одного платья модели В требуется 3 м ткани первого вида, 1 м ткани второго вида, 2 м ткани третьего вида. Запасы ткани первого вида составляют 21 м, второго вида - 10 м, третьего вида - 16 м. Выпуск одного изделия типа А приносит доход 400 ден. ед., одного изделия типа В - 300 ден. ед.

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

Решение

Пусть переменные и означают количество произведенных платьев моделей А и В, соответственно. Тогда количество израсходованной ткани первого вида составит:
(м)
Количество израсходованной ткани второго вида составит:
(м)
Количество израсходованной ткани третьего вида составит:
(м)
Поскольку произведенное количество платьев не может быть отрицательным, то
и .
Доход от произведенных платьев составит:
(ден. ед.)

Тогда экономико-математическая модель задачи имеет вид:


Решаем графическим методом.
Проводим оси координат и .

Строим прямую .
При .
При .
Проводим прямую через точки (0; 7) и (10,5; 0).

Строим прямую .
При .
При .
Проводим прямую через точки (0; 10) и (10; 0).

Строим прямую .
При .
При .
Проводим прямую через точки (0; 8) и (8; 0).



Заштриховываем область, чтобы точка (2; 2) попала в заштрихованную часть. Получаем четырехугольник OABC.


(П1.1) .
При .
При .
Проводим прямую через точки (0; 4) и (3; 0).

Далее замечаем, что поскольку коэффициенты при и целевой функции положительны (400 и 300), то она возрастает при увеличении и . Проводим прямую, параллельную прямой (П1.1), максимально удаленную от нее в сторону возрастания , и проходящую хотя бы через одну точку четырехугольника OABC. Такая прямая проходит через точку C. Из построения определяем ее координаты.
.

Решение задачи: ;

Ответ

.
То есть, для получения наибольшего дохода, необходимо изготовить 8 платьев модели А. Доход при этом составит 3200 ден. ед.

Пример 2

Условие задачи

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

Решение

Решаем графическим методом.
Проводим оси координат и .

Строим прямую .
При .
При .
Проводим прямую через точки (0; 6) и (6; 0).

Строим прямую .
Отсюда .
При .
При .
Проводим прямую через точки (3; 0) и (7; 2).

Строим прямую .
Строим прямую (ось абсцисс).

Область допустимых решений (ОДР) ограничена построенными прямыми. Чтобы узнать, с какой стороны, замечаем, что точка принадлежит ОДР, поскольку удовлетворяет системе неравенств:

Заштриховываем область по границам построенных прямых, чтобы точка (4; 1) попала в заштрихованную часть. Получаем треугольник ABC.

Строим произвольную линию уровня целевой функции, например,
.
При .
При .
Проводим прямую линию уровня через точки (0; 6) и (4; 0).
Поскольку целевая функция увеличивается при увеличении и , то проводим прямую, параллельную линии уровня и максимально удаленную от нее в сторону возрастания , и проходящую хотя бы через одну точку треугольника АВC. Такая прямая проходит через точку C. Из построения определяем ее координаты.
.

Решение задачи: ;

Ответ

Пример отсутствия решения

Условие задачи

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

Решение

Решаем задачу графическим методом.
Проводим оси координат и .

Строим прямую .
При .
При .
Проводим прямую через точки (0; 8) и (2,667; 0).

Строим прямую .
При .
При .
Проводим прямую через точки (0; 3) и (6; 0).

Строим прямую .
При .
При .
Проводим прямую через точки (3; 0) и (6; 3).

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

Область допустимых решений (ОДР) ограничена построенными прямыми и осями координат. Чтобы узнать, с какой стороны, замечаем, что точка принадлежит ОДР, поскольку удовлетворяет системе неравенств:

Заштриховываем область, чтобы точка (3; 3) попала в заштрихованную часть. Получаем неограниченную область, ограниченную ломаной ABCDE.

Строим произвольную линию уровня целевой функции, например,
(П3.1) .
При .
При .
Проводим прямую через точки (0; 7) и (7; 0).
Поскольку коэффициенты при и положительны, то возрастает при увеличении и .

Чтобы найти максимум, нужно провести параллельную прямую, максимально удаленную в сторону возрастания , и проходящую хотя бы через одну точку области ABCDE. Однако, поскольку область неограниченна со стороны больших значений и , то такую прямую провести нельзя. Какую бы прямую мы не провели, всегда найдутся точки области, более удаленные в сторону увеличения и . Поэтому максимума не существует. можно сделать сколь угодно большой.

Ищем минимум. Проводим прямую, параллельную прямой (П3.1) и максимально удаленную от нее в сторону убывания , и проходящую хотя бы через одну точку области ABCDE. Такая прямая проходит через точку C. Из построения определяем ее координаты.
.
Минимальное значение целевой функции:

Ответ

Максимального значения не существует.
Минимальное значение
.

Лабораторная работа № 1. Решение задач линейного программирования

Цель работы Получение навыка решения задач линейного программирования графическим, симплексным методом и средствамиExcel.

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

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

Пример . Найти максимальное значение целевой функцииL =2x 1 +2x 2 при заданных ограничениях

Решение. Построим область решений системы ограничений, меняя знаки неравенств на знаки точных равенств:

l 1: 3x 1 -2x 2 +6=0,

l 2: 3x 1 +x 2 -3=0,

l 3:x 1 -3=0.

D С

2 0 1 3 х 1

(l 1) (l 3)

Прямая l 1 делит плоскостьх Оу на две полуплоскости, из которых нужно выбрать одну, удовлетворяющую первому неравенству в системе (3). Для этого возьмем т.О (0; 0) и подставим в неравенство. Если оно верно, то нужно заштриховать ту полуплоскость от прямой, в которой находится т.О (0; 0). Аналогично поступают с прямымиl 2 иl 3 . Областью решений неравенств (3) является многоугольникАВС D . Для каждой точки плоскости функцияL принимает фиксированное значениеL =L 1 . Множество всех токах точек есть прямаяL =c 1 x 1 +c 2 x 2 (в нашем случаеL =2x 1 +2x 2), перпендикулярная векторуС (с 1 ;с 2) (С (2; 2)), выходящему из начала координат. Если эту прямую передвигать в положительном направлении векторас , то целевая функцияL будет возрастать, в противоположном случае будет убывать. Таким образом, в нашем случае, прямая при выходе из многоугольникаАВС D решений пройдет через т.В (3; 7,5), а потому в т.В целевая функция принимает максимальное значение, т.е.L max =2ּ3+2ּ7,5=21. Аналогично определяется, что минимальное значение функция принимает в т.D (1; 0) иL min =2ּ1+2ּ0=2.

Алгоритм симплексного метода решения задачи линейного программирования состоит в следующем.

1. Общая задача линейного программирования сводится к канонической задаче (в ограничениях стоят знаки равенства) введением стольких вспомогательных переменных, сколько неравенств содержит система ограничений.

2. Функция цели выражается через базисные и вспомогательные переменные.

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

4. Каждая симплекс-таблица дает решение задачи линейного программирования: свободные переменные равны нулю, базисные переменные равны соответственно свободным членам.

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

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

7. Заполнение следующей симплекс-таблицы начинаем с заполнения базиса: из базиса выводится переменная, соответствующая ключевой строке, и на ее место вводится переменная, соответствующая ключевому столбцу. Элементы бывшей ключевой строки получаются делением прежнего элемента на ключевой. Элементы бывшего ключевого столбца становятся нулями, кроме ключевого элемента, который равен единицы. Все остальные элементы вычисляются по правилу прямоугольника:

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

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

Решение. 1. Вводим новые переменные
, с помощью которых неравенства системы преобразуем в уравнения:

У коэффициентов целевой функции меняем знак или записываем ее в виде
. Заполняем первую симплексную таблицу, в нулевой строке записываемх 1 ,х 2 и(свободные коэффициенты). В нулевом столбце –х 3 ,х 4 ,х 5 иF . Заполняем эту таблицу по полученной системе уравнений и преобразованной целевой функции.

Проверяем критерий оптимальности на нахождение максимального значения: в последней строке все коэффициенты должны быть положительными. Этот критерий не выполняется, переходим к составлению второй таблицы.

2. Находим разрешающий элемент первой таблицы следующим образом. Среди элементов последней строки выбираем наибольший по модулю отрицательный коэффициент (это -3) и второй столбец принимаем как разрешающий. Если же все коэффициенты столбца неположительные, то
.

Для определения разрешающей строки свободные коэффициенты делим на соответствующие элементы разрешающего столбца и выбираем минимальное отношение, при этом отрицательные коэффициенты не берем. Имеем
, вторая строка является разрешающей. Пересечение разрешающей строки и столбца дает разрешающий элемент – это 3.

3. Заполняем вторую симплексную таблицу. Переменные на пересечении которых получаем разрешающий элемент, меняем местами, т.е. и. Разрешающий элемент заменяем ему обратным, т.е. на. Элементы разрешающей строки и столбца (кроме разрешающего элемента) делим на разрешающий элемент. При этом у коэффициентов разрешающего столбца меняем знак.

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

.

Заполнение таблиц по таким правилам продолжаем до тех пор, пока не будет выполнен критерий. Имеем для нашей задачи еще две таблицы.

х 1

х 4

х 3

х 2

х 3

х 1

х 2

х 2

х 5

х 5

4. Результат выполнения этого алгоритма записывают следующим образом. В заключительной таблице элемент, стоящий на пересечении строки
и столбцаb , дает максимальное значение целевой функции. В нашем случае
. Значения переменных по строкам равны свободным коэффициентам. Для нашей задачи имеем
.

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

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

Решение задач линейного программирования средствами Excelвыполняется следующим образом.

Для решения задач линейного программирования используется надстройка Поиск решения. Сначала необходимо убедиться, что эта надстройка присутствует на вкладке Данные в группе Анализ (для 2003 года смотреть Сервис). Если команда Поиск решения или группа Анализ отсутствует, необходимо загрузить эту надстройку.

Для этого щелкните Файл Microsoft Office (2010), далее щелкните кнопку Параметры Excel. В появившемся окне Параметры Excel выберите слева поле Надстройки. В правой части окна должно быть установлено значения поля Управление равным Надстройки Excel, нажмите кнопку «Перейти», которая находится рядом с этим полем. В окне Надстройки установите флажок рядом с пунктом Поиск решения и нажмите кнопку ОК. Далее можно работать с установленной надстройкой Поиск Решения.

До вызова Поиск Решения необходимо подготовить данные для решения задачи линейного программирования (из математической модели) на рабочем листе:

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

2) Ввести зависимость от изменяемых ячеек для целевой функции и зависимости от изменяемых ячеек для левых частей системы ограничений в оставленные свободные ячейки. Для введения формул зависимостей удобно пользоваться математической функцией СУММПРОИЗВ.

Далее необходимо воспользоваться надстройкой Поиск решения. На вкладке Данные в группе Анализ выберите команду Поиск решения. Появится диалоговое окно Поиск решения, которое необходимо заполнить следующим образом:

1) Указать ячейку, содержащую целевую функцию в поле «Оптимизировать целевую функцию» (эта ячейка должна содержать формулу для целевой функции). Выбираем вариант оптимизации значения целевой ячейки (максимизация, минимизация):

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

3) Ставим флажок в поле «Сделать переменные без ограничений неотрицательными». Выбрать метод решения «Поиск решения линейных задач симплекс-методом». После нажатия кнопки «Найти решение» запускается процесс решения задачи. В итоге появляется диалоговое окно «Результаты поиска решения» и исходная таблица с заполненными ячейками для значений переменных и оптимальным значением целевой функции.

Пример. Решить, используя надстройку «Поиск решения» Excel задачу линейного программирования: найти максимальное значение функции
при ограничениях

,

;

,
.

Решение. Для решения нашей задачи на рабочем листе Excel выполним указанный алгоритм. Вводим исходные данные в виде таблицы

Вводим зависимости для целевой функции и системы ограничений. Для этого в ячейку С2 вводим формулу =СУММПРОИЗВ(A2:B2;A3:B3). В ячейки С4 и С5 соответственно формулы: =СУММПРОИЗВ(A2:B2;A4:B4) и =СУММПРОИЗВ(A2:B2;A5:B5). В результате получаем таблицу.

Запускаем команду «Поиск решения» и заполняем появившееся окно Поиск решения следующим образом. В поле «Оптимизировать целевую функцию» вводим ячейку С2. Выбираем оптимизации значения целевой ячейки «Максимум».

В поле «Изменяя ячейки переменных» вводим изменяемые ячейки A2:B2. В поле «В соответствии с ограничениями» вводим заданные ограничения с помощью кнопки «Добавить». Ссылки на ячейку $C$4:$C$5 Ссылки на ограничения =$D$4:$D$5 между ними знак <= затем кнопку «ОК».

Ставим флажок в поле «Сделать переменные без ограничений неотрицательными». Выбрать метод решения «Поиск решения линейных задач симплекс-методом».

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

В диалоговом окне «Результаты поиска решения» сохраняем результат x1=0,75, x2=0,75 , F=1,5-равный максимальному значению целевой функции.

Задания для самостоятельной работы

Задание 1. Графическим, симплексным методами и средствами Excel найти максимальное и минимальное значение функцииF (x ) при заданной системе ограничений.

1. F (x )=10x 1 +5x 2 2. F (x )=3x 1 -2x 2


3. F (x )=3x 1 +5x 2 4. F (x )=3x 1 +3x 2


5. F (x )=4x 1 -3x 2 6. F (x )=2x 1 -x 2


7. F (x )=-2x 1 +4x 2 8. F (x )=4x 1 -3x 2


9. F (x )=5x 1 +10x 2 10. F (x )=2x 1 +x 2


11. F (x )=x 1 +x 2 12. F (x )=3x 1 +x 2


13. F (x )=4x 1 +5x 2 14. F (x )=3x 1 +2x 2


15. F (x )=-x 1 -x 2 16. F (x )=-3x 1 -5x 2


17. F (x )=2x 1 +3x 2 18. F (x )=4x 1 +3x 2


19. F (x )=-3x 1 -2x 2 20. F (x )=-3x 1 +4x 2


21. F (x )=5x 1 -2x 2 22. F (x )=-2x 1 +3x 3


23. F (x )=2x 1 +3x 2 24. F (x )=4x 1 +3x 2


25. F (x )=-3x 1 -2x 2 26. F (x )=-3x 1 +4x 2


27. F (x )=-2x 1 +4x 2 28. F (x )=4x 1 -3x 2


29. F (x )=-x 1 -x 2 30. F (x )=-3x 1 -5x 2


Контрольные вопросы.

1. Какие задачи называются задачами линейного программирования?

2. Приведите примеры задач линейного программирования.

3. Как решается задача линейного программирования графическим методом?

4. Опишите алгоритм симплекс-метода решения задач линейного программирования.

5. Опишите алгоритм решения задач линейного программирования средствами Excel.

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

Примеры

Гладкие функции и системы уравнений

Задача решения любой системы уравнений

{ F 1 (x 1 , x 2 , … , x M) = 0 F 2 (x 1 , x 2 , … , x M) = 0 … F N (x 1 , x 2 , … , x M) = 0 {\displaystyle \left\{{\begin{matrix}F_{1}(x_{1},x_{2},\ldots ,x_{M})=0\\F_{2}(x_{1},x_{2},\ldots ,x_{M})=0\\\ldots \\F_{N}(x_{1},x_{2},\ldots ,x_{M})=0\end{matrix}}\right.}

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

S = ∑ j = 1 N F j 2 (x 1 , x 2 , … , x M) (1) {\displaystyle S=\sum _{j=1}^{N}F_{j}^{2}(x_{1},x_{2},\ldots ,x_{M})\qquad (1)}

Если функции гладкие, то задачу минимизации можно решать градиентными методами.

Для всякой гладкой целевой функции можно приравнять к 0 {\displaystyle 0} частные производные по всем переменным. Оптимум целевой функции будет одним из решений такой системы уравнений. В случае функции (1) {\displaystyle (1)} это будет система уравнений метода наименьших квадратов (МНК). Всякое решение исходной системы является решением системы МНК. Если исходная система несовместна, то всегда имеющая решение система МНК позволяет получить приближённое решение исходной системы. Число уравнений системы МНК совпадает с числом неизвестных, что иногда облегчает и решение совместных исходных систем.

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

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

Комбинаторная оптимизация

Типичным примером комбинаторной целевой функции является целевая функция задачи коммивояжёра. Эта функция равна длине гамильтонова цикла на графе. Она задана на множестве перестановок n − 1 {\displaystyle n-1} вершины графа и определяется матрицей длин рёбер графа. Точное решение подобных задач часто сводится к перебору вариантов.

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

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

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

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

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

    задача об оптимальном использовании ресурсов при производственном планировании;

    задача о смесях (планирование состава продукции);

    задача о нахождении оптимальной комбинации различных видов продукции для хранения на складах (управление товарно-материальными запасами или);

    транспортные задачи (анализ размещения предприятия, перемещение грузов).

Линейное программирование – наиболее разработанный и широко применяемый раздел математического программирования (кроме того, сюда относят: целочисленное, динамическое, нелинейное, параметрическое программирование). Это объясняется следующим:

    математические модели большого числа экономических задач линейны относительно искомых переменных;

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

    многие задачи линейного программирования, будучи решенными, нашли широкое применение;

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

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

В общем виде модель записывается следующим образом:

целевая функция

(1.1) при ограничениях

(1.2) требования неотрицательности

(1.3) где x j – переменные (неизвестные);

- коэффициенты задачи линейного программирования.

Задача состоит в нахождении оптимального значения функции (1.1) при соблюдении ограничений (1.2) и (1.3).

Систему ограничений (1.2) называют функциональными ограничениями задачи, а ограничения (1.3) - прямыми.

Вектор, удовлетворяющий ограничениям (1.2) и (1.3), называется допустимым решением (планом) задачи линейного программирования. План, при котором функция (1.1) достигает своего максимального (минимального) значения, называется оптимальным.

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

Симплекс-метод был разработан и впервые применен для решения задач в 1947 г. американским математиком Дж. Данцигом.

Двумерные задачи линейного программирования решаются графически. Для случая N=3 можно рассмотреть трехмерное пространство и целевая функция будет достигать своё оптимальное значение в одной из вершин многогранника.

Допустимым решением (допустимым планом) задачи ЛП, данной в стандартной форме, называется упорядоченное множество чисел (х1, х2, …, хn), удовлетворяющих ограничениям; это точка в n-мерном пространстве.

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

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

Базисным называется решение, при котором все свободные переменные равны нулю.

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

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

Решить данные задачи графически, когда количество переменных более 3 весьма затруднительно. Существует универсальный способ решения задач линейного программирования, называемый симплекс-методом.

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

С его помощью можно решить любую задачу линейного программирования.

В основу симплексного метода положена идея последовательного улучшения получаемого решения.

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

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

Процесс применения симплексного метода предполагает реализацию трех его основных элементов:

    способ определения какого-либо первоначального допустимого базисного решения задачи;

    правило перехода к лучшему (точнее, не худшему) решению;

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

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

6.1.Введение

Оптимизация. Часть 1

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

6.2.Основы теории оптимизации

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

Рассматривая некоторую произвольную систему, описываемую m уравнениями с n неизвестными, можно выделить три основных типа задач. Если m=n , задачу называют алгебраической. Такая задача обычно имеет одно решение. Если m>n, то задача переопределена и, как правило, не имеет решения. Наконец, при m

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

Проектные параметры

Этим термином обозначают независимые переменные параметры, которые полностью и однозначно определяют решаемую задачу проектирования. Проектные параметры - неизвестные величины, значения которых вычисляются в процессе оптимизации. В качестве проектных параметров могут служить любые основные или произ-водные величины, служащие для количественного описания системы. Так, это могут быть неизвестные значения длины, массы, време-ни, температуры. Число проектных параметров характеризует сте-пень сложности данной задачи проектирования. Обычно число проектных параметров обозначают через n, а сами проектные пара-метры через х с соответствующими индексами. Таким образом n проектных параметров данной задачи будем обозначать через

X1, x2, x3,...,xn.

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

Это - выражение, значение которого инженер стремится сделать максимальным или минимальным. Целевая функция позволяет количественно сравнить два альтернативных решения. С мате-матической точки зрения целевая функция описывает некоторую (n+1) - мерную поверхность. Ее значение определяется проектными параметрами

M=M(x 1 , x 2 ,...,x n).

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

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

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

Рис.1.Одномерная целевая функция.

Рис.6.2.Двумерная целевая функция.

замкнутой математической форме, в других случаях она может

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

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

Поиск минимума и максимума

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

Пространство проектирования

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

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

Рис.6.3.Изменением знака целевой функции на противоположный

задача на максимум превращается в задачу на минимум.

удовлетворительного решения. Ограничения делятся на две группы: ограничения - равенства и ограничения - неравенства.

Ограничения - равенства

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

C 1 (x 1 , x 2 ,...,x n)=0,

C 2 (x 1 , x 2 ,...,x n)=0,

..................

C j (x 1 , x 2 ,...,x n)=0.

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

Ограничения - неравенства

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

z 1 r 1 (x 1 , x 2 ,...,x n) Z 1

z 2 r 2 (x 1 , x 2 ,...,x n) Z 2

.......................

z k r k (x 1 , x 2 ,...,x n) Z k

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

Локальный оптимум

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

Рис.6.4.Произвольная целевая функция может иметь несколько

локальных оптимумов.

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

Глобальный оптимум

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

Пример 6.1

Пусть требуется спроектировать прямоугольный контейнер объемом 1м , предназначенный для перевозки неупакованного волокна. Желательно, чтобы на изготовление таких контейнеров затрачивалось как можно меньше материала (при условии посто-янства толщины стенок это означает, что площадь поверхности должна быть минимальной), так как при этом он будет дешевле. Чтобы контейнер удобно было брать автопогрузчиком, его ширина должна быть не менее 1,5м.

Сформулируем эту задачу в виде, удобном для применения алгоритма оптимизации.

Проектные параметры: x 1 , x 2 , x 3 .

Целевая функция (которую требуется минимизировать) - площадь боковой поверхности контейнера:

A=2(x 1 x 2 +x 2 x 3 +x 1 x 3), м2.

Ограничение - равенство:

Объем = x 1 x 2 x 3 =1м3.

Ограничение - неравенство:

Задачи линейного программирования

Линейное программирование (ЛП) является одним из разделов математического программирования – дисциплины, изучающей экстремальные (оптимизационные) задачи и разработкой методов их решения.

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

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

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

В общем виде задача ЛП имеет следующий вид:

, (5.1)

, , (5.2)

, , (5.3)

где , , – заданные постоянные величины.

Функцию (5.1) называют целевой функцией; системы (5.2), (5.3) – системой ограничений; условие (5.4) – условием неотрицательности проектных параметров.

Совокупность проектных параметров , удовлетворяющих ограничениям (5.2), (5.3) и (5.4), называют допустимым решением или планом .

Оптимальным решением или оптимальным планом задачи ЛП называется допустимое решение , при котором целевая функция (5.1) принимает оптимальное (максимальное или минимальное) значение.

Стандартной задачей ЛП называют задачу нахождения максимального (минимального) значения целевой функции (5.1) при условии (5.2) и (5.4), где , , т.е. т.е. ограничения только в виде неравенств (5.2) и все проектные параметры удовлетворяют условию неотрицательности, а условия в виде равенств отсутствуют:

,

, , (5.5)

.

Канонической (основной) задачей ЛП называют задачу нахождения максимального (минимального) значения целевой функции (5.1) при условии (5.3) и (5.4), где , , т.е. т.е. ограничения только в виде равенств (5.3) и все проектные параметры удовлетворяют условию неотрицательности, а условия в виде неравенств отсутствуют:

,

.

Каноническую задачу ЛП можно также записать в матричной и векторной форме.

Матричная форма канонической задачи ЛП имеет следующий вид:

Векторная форма канонической задачи ЛП.

Тесты для текущего контроля знаний

1. Любая экономико – математическая модель задачи линейного программирования состоит из:

A. целевой функции и системы ограничений

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

C. системы ограничений и условия неотрицательности переменных

D. целевой функции и условия неотрицательности переменных

A. целевая функция

B. система уравнений

C. система неравенств

D. условие неотрицательности переменных

3. Оптимальное решение задачи математического программирования – это

A. допустимое решение системы ограничений

B. любое решение системы ограничений

C. допустимое решение системы ограничений, приводящее к максимуму или минимуму целевой функции

D. максимальное или минимальное решение системы ограничений

4. Система ограничений называется стандартной, если она содержит

A. все знаки

B. все знаки

C. все знаки

D. все знаки

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

A. одна переменная

B. две переменные

C. три переменные

D. четыре переменные

6. Неравенство вида описывает

B. окружность

C. полуплоскость

D. плоскость

7. Максимум или минимум целевой функции находится

A. в начале координат

B. на сторонах выпуклого многоугольника решений

C. внутри выпуклого многоугольника решений

D. в вершинах выпуклого многоугольника решений

8. Каноническим видом ЗЛП называется такой ее вид, в котором система ограничений содержит знаки

A. все знаки

B. все знаки

C. все знаки

D. все знаки

9. Если ограничение задано со знаком «>=», то дополнительная переменная вводится в это ограничение с коэффициентом

B. -1

10. В целевую функцию дополнительные переменные вводятся с коэффициентами

C. 0

A. количество ресурса с номером i, необходимого для изготовления 1 единицы продукции j – го вида

B. неиспользованные ресурсы i - го вида

C. прибыль от реализации 1 единицы продукции j – го вида

D. количество продукции j – го вида

12. Разрешающий столбец при решении ЗЛП на max целевой функции выбирается исходя из условия

A. наибольшее положительное значение коэффициента Cj целевой функции

B. наименьшее положительное значение коэффициента Cj целевой функции

C. наибольшее отрицательное значение коэффициента Cj целевой функции

D. любой столбец коэффициентов при неизвестных

13. Значение целевой функции в таблице с оптимальным планом находится

A. на пересечении строки коэффициентов целевой функции со столбцом коэффициентов при х1

B. на пересечении строки коэффициентов целевой функции со столбцом b

C. в столбце коэффициентов при хn

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

14. Искусственные переменные в систему ограничений в каноническом виде вводятся с коэффициентом

A. 1

15. Оптимальность плана в симплексной таблице определяется

A. по столбцу b

B. по строке значений целевой функции

C. по разрешающей строке

D. по разрешающему столбцу

16. Дана задача линейного программирования

B. 1

17. Дана задача линейного программирования

Количество искусственных переменных для этой задачи равно

C. 2

18. Если исходная ЗЛП имеет вид

тогда ограничения двойственной задачи

A. имеют вид

B. имеют вид

C. имеют вид

D. имеют вид

19. Если исходная ЗЛП имеет вид

A. имеют вид

B. имеют вид

C. имеют вид

D. имеют вид

20. Коэффициентами при неизвестных целевой функции двойственной задачи являются

A. коэффициенты при неизвестных целевой функции исходной задачи

B. свободные члены системы ограничений исходной задачи

C. неизвестные исходной задачи

D. коэффициенты при неизвестных системы ограничений исходной задачи

21. Если исходная ЗЛП была на максимум целевой функции, то двойственная задача будет

A. тоже на максимум

B. либо на максимум, либо на минимум

C. и на максимум, и на минимум

D. на минимум

22. Связь исходной и двойственной задач заключается в том, что

A. надо решать обе задачи

B. решение одной из них получается из решения другой

C. из решения двойственной задачи нельзя получить решения исходной

D. обе имеют одинаковые решения

23. Если исходная ЗЛП имеет вид

тогда целевая функция двойственной задачи

A. имеют вид

B. имеют вид

C. имеют вид

D. имеют вид

24. Если исходная ЗЛП имеет вид

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

B. 2

25. Модель транспортной задачи закрытая,

A. если

26. Цикл в транспортной задаче – это

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

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

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

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

27. Потенциалами транспортной задачи размерности (m*n) называются m+n чисел ui и vj, для которых выполняются условия

A. ui+vj=cij для занятых клеток

B. ui+vj=cij для свободных клеток

C. ui+vj=cij для первых двух столбцов распределительной таблицы

D. ui+vj=cij для первых двух строк распределительной таблицы

28. Оценками транспортной задачи размерности (m+n) называются числа

yij=cij-ui-vj, которые вычисляются

A. для занятых клеток

B. для свободных клеток

C. для первых двух строк распределительной таблицы

D. для первых двух столбцов распределительной таблицы

29. При решении транспортной задачи значение целевой функции должно от итерации к итерации

A. увеличиваться

B. увеличиваться или не меняться

C. увеличиваться на величину любой оценки

D. уменьшаться или не меняться

30. Число занятых клеток невырожденного плана транспортной задачи должно быть равно

C. m+n-1

31. Экономический смысл целевой функции транспортной задачи

A. суммарный объем перевозок

B. суммарная стоимость перевозок

C. суммарные поставки

D. суммарные потребности