
- •Элементы математического программирования
- •Цели и задачи дисциплины, ее место в учебном процессе
- •Содержание дисциплины
- •Практические занятия
- •Лабораторные занятия
- •Общие рекомендации студенту-заочнику по работе над курсом «Математическое программирование»
- •Введение
- •Основные формы и задачи линейного программирования
- •Типовые задачи линейного программирования Задача о планировании производства
- •Задачи для самостоятельного решения
- •Задача о рационе
- •Задачи для самостоятельного решения
- •Задача прикрепления потребителей к поставщикам (транспортная задача)
- •Задачи для самостоятельного решения
- •Задача о рациональном раскрое
- •Задачи для самостоятельного решения
- •Графический метод решения задач
- •Задачи для самостоятельного решения
- •Симплекс - алгоритм
- •Составление начального опорного плана.
- •Пример использования симплекс-метода (без таблиц)
- •Задачи для самостоятельного решения
- •Метод искусственного базиса
- •Задачи для самостоятельного решения
- •Двойственная задача
- •Задачи для самостоятельного решения
- •Двойственный симплексный метод
- •Транспортная задача
- •Пример решения задачи линейного программирования в ms Excel.
- •Метод решения задачи об оптимальных перевозках средствами Ms Excel
- •Задания для домашней контрольной работы
- •1. Математическая модель задачи Составить (не решать) математические модели приведенных задач
- •2. Виды задач линейного программирования, геометрический метод решения
- •3 . Двойственные задачи
- •4. Транспортная задача
- •5. Симплексный метод решения задач
- •Библиографический список.
Пример использования симплекс-метода (без таблиц)
Рассмотрим следующую задачу линейного программирования:
Решение. Приведем задачу к каноническому виду. Обратим имеющуюся систему функциональных неравенств в равенства, вводя для этого в каждое из них соответствующую неотрицательную переменную:
Все дополнительные переменные введены со знаком «+», так как рассматриваемые неравенства имеют знак «<=».
Для нахождения первоначального базисного решения разобьем переменные на две группы: основные и неосновные. (напомним, что базисным решением системы m линейных уравнений с n переменными называют решение, в котором все (n-m) неосновных переменных равны нулю.)
В качестве основных переменных на первом шаге нужно выбрать такие переменные, каждая из которых входит только в одно уравнение системы ограничений, и при этом нет таких уравнений системы, в которые не входит ни одна из этих переменных. Количество основных переменных равно m.
Если выбранные по этому правилу переменные имеют те же знаки, что и соответствующие им свободные члены в правых частях уравнений, то полученное таким образом базисное решение будет допустимым.
Шаг 1. определим состав основных и неосновных переменных.
В соответствии с вышеизложенным правилом:
основные
переменные:
;
неосновные
переменные:
.
Шаг 2. Теперь, используя систему равенств, выразим основные переменные через неосновные:
.
Шаг 3. Положив неосновные переменные равными нулю, получим первое базисное решение:
Шаг 4. Выразим целевую функцию через неосновные переменные и определим ее значение при выбранном базисном решении:
Шаг 5. Проверим, доставляет ли выбранное базисное решение оптимум целевой функции F. Для этого воспользуемся критерием оптимальности решения при нахождении максимума функции: если в выражении линейной функции через неосновные переменные отсутствуют положительные коэффициенты при неосновных переменных, то решение является оптимальным.
В соответствии с данным критерием исследуемое базисное решение не является оптимальным, следовательно, необходимо перейти к другому базисному решению.
Шаг 6. Сформулируем основное правило перехода к лучшему (не худшему) решению: в новый состав основных переменных вводится та из неосновных, которая имеет наибольший положительный коэффициент в целевой функции.
В данном случае это коэффициент при х2.
Чтобы новое опорное решение, с одной стороны, улучшало (или, по крайней мере, не ухудшало) значение функционала, а с другой – было бы опорным, необходимо определить:
Как должна измениться (увеличиться) переменная х2, вошедшая в новый состав основных переменных;
какая переменная из «бывших основных» должна перейти в новый состав неосновных переменных при переходе от одного (старого) базисного решения к другому — новому.
Чтобы оценить, в каких пределах возможно изменение переменной х2, необходимо определить:
при каких значениях х2 каждая из «старых» основных переменных останется неотрицательной (соблюдение этого условия и делает новое искомое решение допустимым).
Очевидно, что для этого должны выполняться следующие неравенства:
Каждое из неравенств системы определяет возможные границы изменения переменной х2. В частности, из последнего неравенства системы следует, что переводимая переменная может возрастать неограниченно, т.е. ее граница может быть обозначена как ∞.
Очевидно, что допустимость решения будет обеспечена только в том случае, если будут выполнены все ограничения системы. В свою очередь, это условие будет соблюдаться, если:
x2=min{18:3; 16:1; 5:1; ∞}=5.
При х2=5 переменная х5 обращается в 0 и переходит в разряд не основных. Уравнение, где достигается наибольшее возможное значение переменной х2, называется разрешающим. После проделанных преобразований вновь возвращаемся к первому шагу.
Шаг 1. Определяем состав основных и неосновных переменных:
основные
переменные:
;
неосновные
переменные:
.
Шаг 2. Выразим основные переменные через неосновные, воспользовавшись соотношением из разрешающего уравнения:
Ш
аг
3. Положив неосновные переменные равными
нулю,
получим новое базисное решение :
.
Шаг 4. Выразим целевую функцию через неосновные переменные и определим ее значение при данном базисном решении:
Шаг 5. Проверим, доставляет ли выбранное базисное решение оптимум целевой функции. Коэффициент при х1 в выражении целевой функции положителен, следовательно, данное базисное решение не доставляет оптимума целевой функции и необходимо искать новое базисное решение, которое улучшило бы (или, по крайней мере, не ухудшило бы) значение функционала.
Шаг 6. Используя сформулированное выше правило перехода к лучшему решению, введем в новый состав основных переменных х1.
Определим допустимое значение х1 и разрешающее уравнение.
x1=min{∞; 3:1; 11:2; 21:3}=3.
Из разрешающего уравнения следует, что если x1=3, то хз=0, следовательно, можно опять вернуться к первому шагу.
Шаг 1. Определим новый состав основных и неосновных переменных:
основные
переменные:
,
не
основные переменные:
.
Шаг 2. Выразим основные переменные через неосновные:
Шаг 3. Положив неосновные переменные равными нулю, получим новое базисное решение:
Шаг 4. Выразим целевую функцию через неосновные переменные и определим ее значение при данном базисном решении:
.
Шаг 5. Проверим критерий оптимальности: он опять не выполняется, так как коэффициент при х5 положителен.
Ш
аг
6. Вновь используя сформированное выше
правило перехода
к лучшему решению, введем в новый состав
переменных
х5.
Из разрешающего уравнения следует, что при х5=1 х4=0, следовательно, х4 переходит в состав неосновных переменных. Вновь возвращаемся к первому шагу.
Шаг 1. Определяем новый состав переменных:
основные
переменные:
неосновные
переменные:
.
Шаг 2. Выразим основные переменные через неосновные. Воспользовавшись разрешающим уравнением, получаем:
Шаг 3. Положив неосновные переменные равными нулю, получим новое базисное решение:
Шаг 4. Выразим целевую функцию через неосновные переменные и определим ее значение при данном базисном решении:
.
Шаг 5. Используя критерий оптимальности, приходим к выводу, что на этот раз он выполняется и что исследуемое базисное решение является оптимальным.
Данный пример показывает, что за определенное количество итераций, каждая из которых содержит определенное число шагов, в задаче линейного программирования может быть найдено оптимальное решение.