- •Н.А. Курганова
- •Тема 1. Постановка задачи линейного программирования. Геометрический метод решения задач линейного программирования. Основные понятия, теоремы, следствия. 6
- •Тема 2. Симплекс-метод. 45
- •Введение
- •Тема 1. Постановка задачи линейного программирования. Геометрический метод решения задач линейного программирования. Основные понятия, теоремы, следствия.
- •1.1. Постановка задачи линейного программирования
- •Виды задач лп:
- •Постановка задачи линейного программирования (лп).
- •1.2. Геометрический метод решения задач лп
- •Варианты одр:
- •Теоретические вопросы
- •Лабораторная работа №1. Геометрическое решение задачи лп при помощи математического пакета MathCad
- •I. Оформление исходных данных.
- •II. Определение области допустимых решений
- •III. Построение линии уровня
- •IV. Нахождение оптимального плана и оптимального значения целевой функции
- •Лабораторная работа №2. Геометрическое решение задачи лп при помощи математического пакета Maple
- •I. Оформление заголовка.
- •II. Определение области допустимых решений.
- •III. Построение линии уровня.
- •IV. Нахождение оптимального плана и оптимального значения целевой функции
- •Задания для самостоятельной работы
- •Задачи о составлении плана производства
- •Задачи о пищевом рационе
- •Лабораторная работа №3. Решение оптимизационных задач в системах MathCad, Maple, Excel, в специализированном пакете SimplexWin.
- •I. Оформление исходных данных.
- •II. Нахождение оптимального плана и оптимального значения целевой функции.
- •Решение оптимизационных задач в специализированном пакете SimplexWin. Http://www.Simplexwin.Narod.Ru/
- •I. Оформление исходных данных.
- •II. Нахождение оптимального плана и оптимального значения целевой функции.
- •I. Оформление исходных данных.
- •II. Нахождение оптимального плана и оптимального значения целевой функции.
- •Задания для самостоятельной работы
- •Тема 2. Симплекс-метод.
- •Для реализации симплекс-метода необходимо освоить
- •3 Основных момента [7]:
- •2.1. Табличный симплекс-метод (в чистом виде)
- •2.2. Табличный симплекс метод. Метод искусственного базиса (м-метод)
- •Общий алгоритм решения задачи м-методом.
- •Теоретические вопросы
- •Лабораторная работа №4. Реализация пошагового алгоритма решения задачи линейного программирования табличным симплекс-методом средствами Excel при выполнении всех условий
- •I. Проверка выполнения условий, необходимых для решения задачи табличным симплекс-методом в чистом виде.
- •II. Оформление исходных данных.
- •III. Нахождение оптимального плана и оптимального значения целевой функции.
- •Лабораторная работа №5. Реализация пошагового алгоритма решения задачи линейного программирование методом искусственного базиса (м-методом) средствами Excel
- •I. Проверка выполнения условий, необходимых для решения задачи табличным симплекс-методом.
- •II. Оформление исходных данных.
- •III. Нахождение оптимального плана и оптимального значения целевой функции.
- •Задания для самостоятельной работы
- •Приложение 1
- •Приложение 2
- •Библиографический список
III. Построение линии уровня.
Замечание:
В связи с тем, что Maple является интерпретатором, следует учитывать, что после ввода и выполнения некоторой команды (группы) можно в любой момент времени вернуться на соответствующую строку, после чего по нажатию на <Enter> команда будет выполнена вновь. При этом в ряде случаев результат будет отличен от предыдущего, так как переменные и прочие конструкции (функции и т.д.) могут иметь уже другое значение.
Для того чтобы очистить значение переменной, необходимо присвоить ей свое собственное имя, записанное в одинарных кавычках.
Для моделирования движения семейства линий уровня выполняется построение множества параллельных прямых при различных значениях параметра с. Изменение параметра с возможно при помощи команды subs(<выражение 1>=<выражение 2>, <выражение 3>), которая позволяет подставлять в выражение 3 вместо выражения 1 выражение2.
Очистите значение переменной;
> c:='c':
Задайте целевую функцию, присвоив ей имя f1.
> f1:=x1+2*x2=c;
Введите уравнение одной линии из семейства линий.
> L:=subs(c=2,f1);
Постройте линию уровня, являющейся неявной функцией используя функцию implicitplot, входящую в библиотеку plots.
Для этого:
-графику первой линии уровня присвойте имя gr;
-построенный график не выводите на экран;
-используйте параметр linestyle, который используется для указания типа выводимой линии. Тип линии задается следующим образом linestyle=n, где n – целое число, по умолчанию – непрерывная линия при n=1.
> gr:=plots[implicitplot](L,x1=-2..8,x2=-2..8, color=black,thickness=2,linestyle=4):
Визуализируйте область допустимых решений syst_ogr и линию уровня gr на одном чертеже (рис. 11) при помощи предложения.
> plots[display]({syst_ogr,gr});
Замечание:
Одним из преимуществ системы Maple по сравнению с другими математическими пакетами является возможность помещать в одну область построения разнотипные графики, используя функцию display библиотеки plots.
Рис. 11. Область допустимых решений, линия уровня при значении параметра c=2.
Очистите значение переменной;
> c:='c':
IV. Нахождение оптимального плана и оптимального значения целевой функции
Постройте другие линии уровня при различных параметрах. Выполняйте построение до тех пор, пока не найдется точка на многоугольнике решений, через которую проходит линия уровня функции f с наибольшим (если целевая функция максимизируется) или наименьшим (если она минимизируется) уровнем.
> f1:=x1+2*x2=c;
> L:=subs(c=7,f1);
> gr:=plots[implicitplot](L,x1=-2..8,x2=-2..8, color=black,thickness=2,linestyle=4):
> plots[display]({syst_ogr,gr});
Рис. 12. Область допустимых решений линия уровня при значении параметра c=7.
Найдите прямые, пересечение которых соответствует точке выхода.
В данном случае линия уровня достигла наибольшего значения в точке, являющейся пересечением первой и второй прямой.
Определите оптимальный план.
Для этого:
-очистите начения переменных x1 и x2;
> x1:='x1':x2:='x2':
-запишите целевую функцию, заданную по условию;
> f:=x1+2*x2;
-системе уравнений прямых, пересекающихся в точке оптимума, то есть системе уравнений первой и второй прямой, присвойте имя syst;
> syst:={-3*x1+14*x2=1, x1+x2=6};
-решите эту систему уравнений прямых, а полученное оптимальное решение запишите в переменную optimum.
Замечание:
Для аналитического решения системы алгебраических уравнений в Maple используется команда solve(<система уравнений>, <переменные>). Система уравнений записывается в фигурных скобках, при этом каждое уравнение разделяется запятыми. Результатом решения является множество, каждый элемент которого доступен определенным образом. В нашем случае система уравнений имеет имя syst и две переменных с именами x1, x2. и оптимальное значение целевой функции.
> optimum:=solve(syst,{x1,x2});
-отделите первую и вторую переменную из множества, используя команду subs.
> x1:=subs(optimum,x1);
> x2:=subs(optimum,x2);
Найдите оптимальное значение целевой функции.
> fmax:=subs({x1=83/17,x2=19/17},f);