![]() |
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Глава 2 Линейное и целочисленное программированиеСтр 1 из 4Следующая ⇒
Глава 2 Линейное и целочисленное программирование Постановка задачи линейного программирования
Пусть дана система т линейныхуравнений и неравенств с п переменными:
и линейная функция:
Требуется найти решение системы Такая задача называется задачей линейного программирования (ЗЛП) в общем виде. Система (1) называется системой ограничений; функция (2) называется целевой функцией (функцией цели). Таким образом, задачи линейного программирования (ЛП) – это задачи, в которых линейны как целевая функция, так и ограничения в виде равенств или неравенств и для которых методы математического анализа оказываются непригодными. Задачи ЛП представляет собой наиболее часто используемый метод оптимизации. К их числу относятся задачи: - рациональное использование сырья и материалов; задачи оптимизации раскроя; - рациональное использование сырья и материалов; задачи оптимизации раскроя; - оптимизации производственной программы предприятий; - оптимального размещения и концентрации производства; - на составление оптимального плана перевозок, работы транспорта; - управления производственными запасами и многие другие, принадлежащие сфере оптимального планирования. Около 75% от общего числа применяемых оптимизационных методов приходится на задачи ЛП. Около четверти машинного времени, затраченного в последние годы на проведение научных исследований, было отведено решению задач ЛП и их многочисленных модификаций. ЗЛП можно записать в сокращенном виде:
Оптимальным решением (планом) ЗЛП называется решение Если система ограничений (1) состоит из одних неравенств (не нарушая общности, будем говорить, что ограничения имеют вид « Если все ограничения системы (1) - уравнения (вида «=»), то такую задачу называют задачей линейного программирования в каноническом виде (в канонической форме). Справедливо утверждение. Любая ЗЛП может быть приведена к каноническому виду. Приведем ограничения (1) к каноническом виду:
Теорема. Любому решению
Примеры задач линейного программирования
Задача об использовании ресурсов. Для изготовления двух видов продукции
Прибыль, получаемая от единиц продукции Решение. Составим экономико-математическую модель задачи. Пусть
По смыслу задачи переменные:
Суммарная прибыль
Таким образом, получили экономико-математическую модель задачи: найти такой план выпуска продукции Задача составления рациона (задача о диете, задача о смесях). Имеются два вида корма I и II, содержащие питательные вещества (витамины)
Стоимость 1 кг корма I и II соответственно равна 4 и 6 руб. Необходимо составить такой дневной рацион, имеющий минимальную стоимость, в котором содержание каждого вида питательных веществ было бы не меньше установленного предела. Решение. Составим экономико-математическую модель задачи. Пусть
По смыслу задачи переменные:
Общая стоимость рациона z составит в руб.:
Таким образом, получили экономико-математическую модель задачи: составить дневной рацион
Алгоритм симплекс-метода I. После введения добавочных переменных, система уравнений записывается в виде, который называется расширенной системой (11). Предполагается, что все добавочные переменные имеют тот же знак, что и свободные члены. II Исходную расширенную систему заносим в первую симплекс таблицу. Последняя строка, в которой приведено уравнение для линейной функции цели, называется оценочной. В ней указываются коэффициенты функции цели с противоположным знаком. В левом столбце таблицы записываем базисные переменные (на первом шаге за базисные переменные берутся дополнительные переменные), в первой строке - все переменные, во втором столбце - свободные члены расширенной системы III. Проверяем выполнение критерия оптимальности (при решении задачи на максимум критерий оптимальности состоит в отсутствии отрицательных коэффициентов в оценочной строке). Если критерий оптимальности выполнен, то следовательно, максимум достигнут и оптимальное значение IV. По оценочной строке выбираем переменную, вводимую в базис. Находим наибольший по модулю отрицательный коэффициент в оценочной строке. Соответствующая этомустолбцу переменная V. Находим переменную, выводимую из базиса. Для этого составляем оценочные отношения (они заносятся в столбец для оценочных отношений) по следующим правилам: 1) 2) 3) 4) 0, если 5) Определяем VI. Переходим к следующей таблице по правилам (преобразования Гаусса-Жордана): 1) В левом столбце записываем новый базис: вместо основной переменной 2) В столбцах, соответствующих базисным переменным, проставляем нули и единицы: 1 - на пересечении строки и столбца, соответствующих одной и той же базисной переменной; 0 - во всех других позициях столбцов базисных переменных. 3) Новую строку 4) Все остальные элементы
Далее переходим к шагу III. Пример. Решить задачу: Приведем систему ограничений к каноническому виду. Получим расширенную систему: Целевую функцию представим в виде Базисными переменными будут являться дополнительные переменные Заполняем первую симплекс-таблицу:
Проверяем критерий оптимальности задачи. В последней оценочной строке имеются отрицательные коэффициенты. Выбираем из них наибольший по модулю - (-3). Следовательно, Находим оценочные отношения и выбираем из них минимальное (5). Следовательно, Переходим к новой симплекс-таблице: а) в новом базисе основные переменные б) расставляем 0 и 1; например, на пересечении столбца и строки, соответствующих переменной
Получаем вторую симплекс-таблицу:
Критерий оптимальности вновь не выполнен. Теперь разрешающий первый столбец и Переходим к новой симплекс-таблице:
и на этот раз критерий оптимальности не выполнен. Выводимая переменная
Критерий оптимальности выполнен. Следовательно,
Пример. Вектор Преобразуем систему ограничений, умножив первое и второе уравнение на Т -функция имеет вид:
Последняя строка таблицы -это (-М-функция), т.е.
Последняя строка показывает, что критерий оптимальности выполнен:
Пример.
Приведем ограничения к виду « Составим расширенную матрицу Транспонируем матрицу и сформулируем двойственную задачу:
Метод отсечения. Суть метода состоит в том, что сначала решается задача линейного программирования без условия целочисленности. Если полученный ответ удовлетворяет условию целочисленности, то задача решена. В противном случае к ограничениям задачи добавляется новое ограничение, обладающее следующими свойствами: - оно должно быть линейным; - оно должно отсекать найденный оптимальный нецелочисленный план; - оно не должно отсекать ни одного целочисленного плана. Такие ограничения называются правильными отсечениями. После введения нового ограничения вновь решается задача линейного программирования. Если вновь полученный план целочисленный то задача решена. Если это не так, то к задаче добавляется новое ограничение. Процесс повторяется до тех пор, пока полученный оптимальный план не будет полностью целочисленным. Геометрический смысл добавления каждого нового линейного ограничения состоит в проведении дополнительной прямой (гиперплоскости), которая отсекает от многоугольника (многогранника) допустимых решений его часть вместе с оптимальной точкой с нецелыми координатами. В отсекаемую часть не должна попасть ни одна точка с целыми координатами. В результате новый многогранник решений содержит все точки с целыми координатами, содержавшиеся в первоначальном многограннике решений. Следовательно, полученное при этом многограннике оптимальное решение будет целочисленным. Пример.
Построим область допустимых решений задачи. Это многоугольник АВСДЕ. Построим вектор градиент целевой функции Метод Гомори. Пусть задача линейного программирования имеет оптимальное решение. Не нарушая общности задачи предположим, что Оптимальное решение задачи Пусть в этом оптимальном решении
Алгоритм метода Гомори 1. Решаем задачу симплекс методом. Если найденное решение целочисленно, то задача решена. Если задача не разрешима, то она не имеет решений и в целых числах. 2. Если среди компонент оптимального решения есть не целые, то надо выбрать компоненту с оптимальной целой частью и сформулировать правильное отсечение из условия 3. Вводим дополнительную неотрицательную целую переменную 4. Полученную расширенную задачу решаем симплекс-методом. Если новый найденный план целочисленный, то задача решена, если нет то повторяем процедуру. Замечание . Если задача разрешима в целых числах, то после конечного числа шагов (итераций) оптимальный целочисленный план будет найден. Если в процессе решения появится уравнение, выражающее основную переменную через неосновные, в котором свободный член не целый, а все остальные коэффициенты целые, то задача в целых числах решений не имеет. В симплекс таблице это условие соответствует тому, что в строке с нецелым свободным членом все остальные коэффициенты целые. Пример. Решить задачу в целых числах. Приведем задачу к каноническому виду: Построим симплекс-таблицу
Данный план не оптимален, так как в оценочной строке есть отрицательные элементы. Наибольший по модулю находится в столбце
Полученное решение не является оптимальным.
Полученное решение численным Построим правильное отсечение из условия: Найдем дробные части от чисел стоящих в фигурных скобках: Получим неравенство Введем дополнительную целую переменную Популярное:
|
Последнее изменение этой страницы: 2016-03-17; Просмотров: 1081; Нарушение авторского права страницы