Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основные методы решения ЗЛП_Методичка.doc
Скачиваний:
169
Добавлен:
19.05.2015
Размер:
3.26 Mб
Скачать

III. Построение линии уровня

  1. Получите уравнение линии уровня, выраженное через переменную x2.

Для этого:

- введите уравнение прямой x1+2x2=C;

- выделите x2;

- выберите команду Symbolics-Variable – Solve;

- получите выражение ;

- присвойте функции L(x1,C) значение данного выражения;

  1. Присвойте любое значение параметру C, например, ;

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

  3. Постройте линию уровня на том же графике при заданном значении С (рис. 2).

Рис. 2. Построение уровня

IV. Нахождение оптимального плана и оптимального значения целевой функции

  1. Изменяйте значение С до тех пор, пока не определите точку выхода линии уровня из области допустимых решений.

  2. Задайте различные параметры С для линии уровня L(x1,C), например, С:=3, С:=4, С:=6, следите за перемещением линии уровня относительно области допустимых решений.

  3. Определите точку максимума или точку «выхода», т.е. последнюю точку, через которую линия уровня выйдет из области допустимых решений (рис. 3).

Рис. 3. Построение уровня при С:=7.

  1. Выберите прямые, пересечение которых определяет искомую точку. В данном случае это прямые, заданные функциями y1(x) и y2(x).

  2. Решите систему двух линейных уравнений относительно найденных прямых.

Команда Given … Find

  1. Найдите оптимальное значение функции.

.

Ознакомиться с полным вариантом решения задачи ЛП геометрическим методом в пакете MathCad можно в приложении 1.

Лабораторная работа №2. Геометрическое решение задачи лп при помощи математического пакета Maple

Задание. Выполните предложенный набор действий в математическом пакете Maple, необходимый для решения задачи ЛП.

Работа в пакете Maple происходит в режиме сессии (session). Пользователю предоставляется возможность вводить предложения (команды, выражения, процедуры и др.), которые определенным образом воспринимаются системой. Нажатие клавиши <Enter> запускает выполнение предложения. Если ввод предложения завершается разделителем ";", то в строке под предложением появляется результат выполненной команды или сообщение об ошибке. Разделитель ":" используется для «отложенного» ввода, это знак фиксации конца предложения, предотвращающий вывод результата на экран.

Рассмотрим реализацию геометрического метода средствами математического пакета Maple на примере задачи, рассмотренной в лабораторной 1 согласно алгоритму.

Рассмотрим задачу в стандартной форме с двумя переменными.

Задача. Найти значения переменных x1 и x2, при которых

при ограничениях

Порядок выполнения работы:

I. Оформление заголовка.

  1. Запустите программу Maple и введите заголовок Геометрический метод решения задачи ЛП, используя команду Insert – Text.

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

  1. Постройте первую полуплоскость в пакете Maple.

Для этого:

-воспользуйтесь возможностями библиотеки plots, которая предназначена для построения различных типов графиков;

-подключите функцию inequal, которая позволяет осуществлять построение полуплоскостей, соответствующих заданным линейным неравенствам, введя нижеприведенную систему предложений;

> plots[inequal]( {-3*x1+14*x2<=1}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),

optionsclosed=(color=black, thickness=2),

optionsexcluded=(color=white) );

-нажмите клавишу <Enter>;

-получите первую полуплоскость (рис. 4).

Рис.4. Первая полуплоскость.

Замечание: Формат подключения функции следующий: plots[функция] (параметры). В качестве параметров при подключении функции указывается выводимый объект, интервал изменения переменных, опции вывода. После выполнения команды система Maple переходит в меню графики.

Параметры перечисляются в форме <имя параметра>=<значение>. В нашем случае используются такие имена параметров, как color – цвет, принимающий значения, указанные в таблице 2, а также thickness – толщина линий, принимающий значения 0, 1, 2, 3. В качестве выводимого объекта используется заданная система ограничений. Интервал переменных позволяет управлять границами визуализации полуплоскостей относительно координатных осей. Для изменения цвета полуплоскости и ее границы, задаваемой тем или иным неравенством, применяются определенные опции (таблица 3):

Таблица 3

Опции для изменения цвета полуплоскостей

optionsfeasible

для областей, которые удовлетворяют всем неравенствам;

optionsexcluded

для областей, которые нарушают хотя бы одно неравенство;

optionsopen

для линий, которые являются границами областей, описываемых строгими неравенствами;

optionsclosed

для линий, которые являются границами областей, описываемых нестрогими неравенствами или равенствами;

Цвет полуплоскости устанавливается параметром color=c, где c – это цвета из  таблицы 4.

Таблица 4

Основные цвета

black

черный

blue

синий

brown

коричневый

green

зеленый

grey

серый

white

белый

yellow

желтый

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

> plots[inequal]( {x1+x2<=6}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),

optionsclosed=(color=black, thickness=2),

optionsexcluded=(color=white) );

Рис. 5. Вторая полуплоскость.

> plots[inequal]( {x1-x2>=3}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),

optionsclosed=(color=black, thickness=2),

optionsexcluded=(color=white) );

Рис. 6. Третья полуплоскость.

> plots[inequal]( { x1+4*x2>=4}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),

optionsclosed=(color=black, thickness=2),

optionsexcluded=(color=white) );

Рис. 7. Четвертая полуплоскость.

  1. Постройте полуплоскости в одном окне, добавляя каждый раз по одной, поочередно набрав следующие предложения, нажимая клавишу <Enter> после каждого.

> plots[inequal]( {-3*x1+14*x2<=1, x1+x2<=6}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),

optionsclosed=(color=black, thickness=2),

optionsexcluded=(color=white) );

Рис. 8. Первая и вторая полуплоскости.

> plots[inequal]( {-3*x1+14*x2<=1, x1+x2<=6, x1-x2>=3}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),

optionsclosed=(color=black, thickness=2),

optionsexcluded=(color=white) );

Рис. 9. Первая, вторая и третья полуплоскости.

> plots[inequal]( {-3*x1+14*x2<=1, x1+x2<=6, x1-x2>=3, x1+4*x2>=4,x1>=0,x2>=0}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),

optionsclosed=(color=black, thickness=2),

optionsexcluded=(color=white) );

Рис. 10. Область допустимых решений.

  1. Присвойте построенной ОДР имя syst_ogr и не выводите изображение на экран.

> syst_ogr:=plots[inequal]( {-3*x1+14*x2<=1, x1+x2<=6, x1-x2>=3, x1+4*x2>=4,x1>=0,x2>=0}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),

optionsclosed=(color=black, thickness=2),

optionsexcluded=(color=white) ):