Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Лабораторная работа № 2Симплекс-метод Цель работы: изучить способ решения задач линейного программирования симплекс-методом. Теоретические сведения. Пусть имеем задачу линейного программирования в канонической форме:
Решение системы называется базисным, если n-m переменных равны нулю. Переменные, которые равны нулю в базисной точке называются небазисными переменными, остальные - базисными. Симплекс-метод заключается в целенаправленном переборе допустимых базисных решений канонической задачи линейного программирования: 1. Ищется начальная базисная точка. 2. На последующих шагах переход от одного базисного решения к другому осуществляется по правилам. Правило 1. В базис переводится переменная xj, которая имеет в целевой функции коэффициент, максимальный по модулю среди отрицательных. Правило 2. Из базиса исключается переменная xj, для которой выполняется условие: , где ai,j – коэффициент при хj; bi – свободный коэффициент, правая часть уравнения. Правило 3. Если целевая функция не содержит отрицательных коэффициентов при х, то оптимальное решение найдено. Правило 4. Если при с j не существует a i ,j > 0, то задача не имеет решения Задание. Исходные данные в приложении 2. 1. Привести задачу к каноническому виду. 2. Решить задачу симплекс-методом. 3. Записать результат. Пример расчета. Решить задачу симплекс-методом:
Решение. 1. Приводим задачу к каноническому виду: если знак «≤», то добавляем xj; если знак «≥», то вычитаем xj. Если ищется максимум целевой функции, то коэффициенты при xj умножаем на (-1) и устремляем функцию к минимуму. У нас получилось 5 переменных: х 1, х 2, х 3, х 4, х 5. Разбиваем переменные на 2 вида: базисные и небазисные. Количество базисных переменных равно числу ограничении, т.е. равно трем. Остальные переменные – небазисные.
2. Составляем начальную симплекс таблицу, т. е. выражаем базисные переменные через небазисные, так чтобы свободные члены в уравнении были неотрицательные. Выразим переменную x 1 из (1) и подставим в (2) и (3). Тогда из (2) легко найти x 4, из (3) найдем x 5. Подставив х 1 в целевую функцию, получим: Получили, что х 1, х 4 и х 5 – базисные переменные, а х 2 и х 3 - небазисные. Затем небазисные переменные х 2 и х 3 приравниваем к нулю, подставляем в получившиеся уравнения и находим значения базисных переменных и целевой функции. Таким образом, получили симплекс-таблицу для первой базисной точки:
Полученная базисная точка соответствует координатам точки С (1;0) (см. стр. 4, рис. 1). Так как в полученной целевой функции есть отрицательные коэффициент при х 3, то оптимальное решение еще не найдено, поэтому переходим к новому базису.
3. В соответствии с правилом 1 в базис переводим переменную х 3, так как она имеет отрицательный знак в целевой функции. В соответствии с правилом 2: a 13=1 b 1=1 b 1/ a 13=1 - min a 43=2 b 4=4 b 4/ a 43=2 a 53=-3 b 5=0 a 53 < 0 из базиса исключаем х 1 , т. к. ему соответствует минимальное значение. Выражаем переменную x 3 из уравнения (1’) и подставляем в остальные уравнения и целевую функцию. Небазисные переменные х 1 и х 2 приравниваем к нулю, подставляем в получившиеся уравнения и находим значения базисных переменных и целевой функции. Таким образом, получили симплекс-таблицу для второй базисной точки:
Полученная базисная точка соответствует координатам точки О (0; 0) (см. стр. 4, рис. 1). Так как в полученной целевой функции есть отрицательные коэффициент при х 2, то оптимальное решение еще не найдено, поэтому переходим к новому базису.
4. В соответствии с правилом 1 в базис переводим переменную х 2, так как она имеет отрицательный знак в целевой функции. В соответствии с правилом 2: a 32=-2 b 3=1 a 32 < 0 a 42=1 b 4=2 b 4/ a 42=2 - min a 52=1 b 5=3 b 5/ a 52=3 из базиса исключаем х 4 , т. к. ему соответствует минимальное значение. Выражаем переменную x 2 из уравнения (2’’) и подставляем в остальные уравнения и целевую функцию. Небазисные переменные х 1 и х 4 приравниваем к нулю, подставляем в получившиеся уравнения и находим значения базисных переменных и целевой функции. Таким образом, получили симплекс-таблицу для третьей базисной точки:
Полученная базисная точка соответствует координатам точки А (0; 2) (см. стр. 4, рис. 1). Так как в полученной целевой функции есть отрицательные коэффициент при х 1, то оптимальное решение еще не найдено, поэтому переходим к новому базису.
5. В соответствии с правилом 1 в базис переводим переменную х 1, так как она имеет отрицательный знак в целевой функции. В соответствии с правилом 2: a31=2 b3=5 b3/a31=5/2 a21=1 b2=2 b2/a21=2 a51=5 b5=1 b5/a51=1/5 - min из базиса исключаем х 5, т. к. ему соответствует минимальное значение. Выражаем переменную x 1 из уравнения (3’’’) и подставляем в остальные уравнения и целевую функцию. Небазисные переменные х 4 и х 5 приравниваем к нулю, подставляем в получившиеся уравнения и находим значения базисных переменных и целевой функции. Таким образом, получили симплекс-таблицу для четвертой базисной точки:
Полученная базисная точка соответствует координатам точки В (0,2; 2,4) (см. стр. 4, рис. 1). Так как в полученная целевая функция не содержит отрицательных коэффициентов при хj, то оптимальное решение найдено. Ответ: x 1=0,2; x 2=2,4; q =-2,2.
Контрольные вопросы и задания 1.Как записывается каноническая форма задачи линейного программирования? 2. Какие переменные называются базисными? 3. В каком случае решение считается найденным? 4. Всегда ли существует решение задачи линейного программирования? В каком случае у задачи нет решения? 5.Какие значения принимают небазисные переменные в базисной точке?
|