Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Решение задач линейного программирования в среде wxMaxima. Практикум. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
09.08.2026
Размер:
433 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ

ФГБОУ ВО «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ»

Л. А. КОРОБОВА, С. Н. ЧЕРНЯЕВА, Ю. А. САФОНОВА, В. В. ДЕНИСЕНКО

РЕШЕНИЕ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ

В СРЕДЕ wxMAXIMA

Утверждено редакционно-издательским советом университета

в качестве учебного пособия

ВОРОНЕЖ

2020

УДК 519.2 ББК З973.2-018я7

Р47

Научный редактор профессор Д. С. САЙКО

Р е ц е н з е н т ы:

кафедра систем управления и информационных технологий в строительстве Воронежского государственного технического университета;

д-р техн. наук В. В. ЛАВЛИНСКИЙ (Воронежский лесотехнический университет им. Д.С. Морозова)

Печатается по решению редакционно-издательского совета

Воронежского государственного университета инженерных технологий

 

Решение задач линейного программирования в среде

Р47

wxMaxima. Практикум [Текст] : учеб. пособие / Л. А. Коробова,

 

С. Н. Черняева, Ю. А. Сафонова, В. В. Денисенко; Воронеж. гос.

 

ун-т инж. технол. - Воронеж : ВГУИТ, 2020. – 55 с.

ISBN 978-5-00032- 452-3

Учебное пособие разработано в соответствии с требованиями ФГОС ВО подготовки выпускников по направлениям09.03.02 - «Информационные системы и технологии», 09.03.03 - «Прикладная информатика», 27.03.01 - «Стандартизация и метрология», 27.03.02 - «Управление качеством», 15.03.02 - «Технологические машины и оборудование», 15.03.03 - «Прикладная механика», 19.03.01 - «Биотехнология». В пособии рассматривается решение типовых задач линейного программирования с использованием системы компьютерной математики wxMAXIMA.

Может использоваться для направлений 09.04.02 - «Информационные системы и технологии», 09.04.03 - «Прикладная информатика», 27.04.01 - «Стандартизация и метрология», 27.04.02 - «Управление качеством» 15.04.02 - «Технологические машины и оборудование».

 

1602090000-02

УДК 519.2

Р

Без объявл.

ББК З973.2-018я1

 

ОК2(03) – 2020

 

ISBN 978-5-00032-452-3

© Коробова Л. А., Черняева С. Н.,

Сафонова Ю. А., Денисенко В. В., 2020

© ФГБОУ ВО «Воронеж. гос. ун-т инж. технол.», 2020

Оригинал-макет данного издания является собственностью Воронежского государственного университета инженерных технологий, его репродуцирование (воспроизведение) любым способом без согласия университета запрещается.

Практическая работа № 1.

Графическое решение задачи линейного программирования

Цель работы: изучить графический способ решения задач линейного программирования.

Справка. Линейное программирование (ЛП) – раздел математики, посвященный методам нахождения оптимума линейной функции нескольких переменных при линейных ограничениях типа равенства и неравенства.

Если число входных параметров(искомых переменных) равно двум, то задача линейного программирования имеет -на глядное графическое решение.

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

q = x1 - x2 ® min

 

ì x1 - 2 × x2 £ 1

(1)

ï

 

(2)

ï- 2 × x1 + x2 £ 2

D : í

£ 3

(3)

ï3 × x1 + x2

ï

³ 0

(4)

îx1 ³ 0, x2

где D – область допустимых значений переменных x1, x2. Построим систему координат Х1ОХ2, так как xj ≥ 0 (4), то вся область D принадлежит первому координатному углу.

1 этап. Изображение области D на плоскости. Обозначим D1 – множество точек (х1, х2), удовлетворяющих неравенству (1). Вся плоскость разбивается на множество точек, принадлежащих D1 (условие выполняется) и не принадлежащих D1 (условие не выполняется). Построим границу областиD1. На плоскости это будет прямая x1 - 2×x2 = 1 или x1 =1 + 2×x2. Ее можно построить по двум точкам: (0; -0,5), (1; 0). Полученная прямая делит плоскость на две полуплоскости. Одна из них удовлетворят условию, а вторая – нет. Чтобы проверить, какая полуплоскость удовлетворяет условию, надо взять любую точку плоскости и подставить ее координаты в условие(1). Если условие выполняется, то точка находится в полуплоскости, принадлежащей D1. Например, подставим

3

точку (0, 0) - неравенство выполняется, следовательно, D1 находится выше прямой.

Аналогичным образом строим для неравенств (2) и (3). Область D – точки, которые одновременно принадлежат D1, D2 и D3

(рис. 1).

Рис. 1. Область допустимых значений

 

Справка. Если условие имеет вид равенства, то

множество

точек, удовлетворяющих ему – это прямая.

 

Пример:

 

 

ì x1+ x2 £ 2,

(5)

ï

- x2 = 0,

(6)

íx1

ï

³ 0, x2 ³ 0.

(7)

î x1

Условия (5) и (7) дают треугольник ОАВ. Второе условие (6) дает прямую х1 = х2. Так как условия должны выполняться одновременно, то областью D будет отрезок ОС внутри D1 (рис. 2).

Рис. 2. Область - отрезок

4

2 этап. Изображение целевой функции. Целевая функция

– это функция, для которой нужно найти min или max. Если она зависит от двух переменных, то ее изображают в виде линий рав-

ного уровня – таких

линий, в

каждой

точке которых функция

имеет одинаковое значение.

 

 

Способ построения линий равного уровня. Зафиксируем

любое значение q,

например,

q =

0. Получим уравнение

- это будет линия q = 0. Зафиксируем другое значение, например, q = -1. Получим две линии уровня – параллельные прямые. При переходе от линииq = 0 к линии q = -1 целевая функция уменьшается, и т. к. нужно найти минимум, то она “улучшается”, т. е. при перемещении линии уровня в направлении, указанном стрелкой (рис. 3), целевая функция уменьшается.

Для решения задачи ЛП надо найти такую точку, чтобы она лежала на границе области D и через нее проходила линия равного уровня с минимальным q. Очевидно, что линия q = -1 не является оптимумом. Этим свойством будет обладать линия, проходящая через точку b.

Рис. 3. Линии равного уровня

Так как точка b находится на пересечении прямых 2 и 3, то для того чтобы определить ее координаты, необходимо решить

5

систему уравнений: íì- 2 × x1

+ x2

= 2

(2) . В результате получим

î 3× x1

+ x2

= 3

(3)

координаты b(0.2; 2.4).

Подставив координаты точки b в целевую функцию, найдем ее значение в этой точке: q = 0.2 – 2.4 = -2.2.

Справка. Иногда линия уровня параллельна какой-либо линии ограничения. В этом случае оптимальным решением будет являться целый отрезок.

Пример:

ì x1 + x2 £ 2,

ï

í x1 - x2 = 0,

ïîx1 ³ 0, x2 ³ 0.

В данном случае решением будет отрезок [a, b] (рис. 4).

Рис. 4. Решение - отрезок

В целевую функцию можно подставлять координаты любой точки, принадлежащей этому отрезку.

Задание. Исходные данные - в приложении 1.

1.Построить область допустимых значений.

2.Построить линии равного уровня.

3.Записать результат.

Оформление отчета

Отчет должен быть оформлен грамотно, аккуратно, написан разборчиво. Все этапы выполнения работы необходимо пояснить в отчете.

6

Отчет должен содержать название лабораторной работы, задание в соответствии с вариантом, выданным преподавателем,

атакже следующие пункты:

1)условие задачи;

2)обозначения переменных;

3)целевую функцию;

3)ограничения в виде равенств и неравенств;

4)при решении с помощью программы wxMaxima в отчет необходимо включить:

распечатку фрагмента программы wxMaxima с исходными данными, промежуточными расчетами и обращением к функции поиска решения;

распечатку результатов.

Защита работ проводится по контрольным вопросам и -за даниям. Оформление отчета одинаково для всех практических работ.

Контрольные вопросы

1.Что такое линейное программирование?

2.Каков алгоритм построения области допустимых значений?

3.Что такое линии равного уровня?

4.Всегда ли линии равного уровня в задаче ЛП параллельные прямые?

Практическая работа № 2.

Симплекс-метод

Цель работы: изучить способ решения задач линейного программирования симплекс-методом.

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

Пусть имеем задачу линейного программирования в канонической форме:

7

ì a1,1 x1 + a1,2 x2

+ ... + a1,n xn

= b1;

ï a

 

x

+ a

2,2

x

2

+ ... + a

2,n

x

n

= b ;

ï

 

2,1 1

 

 

 

 

 

 

2

í

 

 

 

 

 

 

.........

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

ïa

m,1

x

+ a

m,2

x

2

+ ... + a

m,n

x

n

= b ;

î

1

 

 

 

 

 

m

q(x) = c1x1 + c2 x2 + ... + cn xn ® min.

Решение системы называется базисным, если n-m переменных равны нулю. Переменные, которые равны нулю в базисной точке, называются небазисными переменными, остальные - базисными.

Симплекс-метод заключается в целенаправленном переборе допустимых базисных решений канонической задачи линейного программирования:

-ищется начальная базисная точка;

-на последующих шагах переход от одного базисного -ре шения к другому осуществляется по правилам.

Правило 1. В базис переводится переменная xj, которая имеет в целевой функции коэффициент, максимальный по модулю среди отрицательных.

Правило 2. Из базиса исключается переменнаяxj, для кото-

рой выполняется условие: bi ® min, (ai, j > 0) ,

ai, j

где ai,j – коэффициент при хj; bi – свободный коэффициент, правая часть уравнения.

Правило 3. Если целевая функция не содержит отрицательных коэффициентов при х, то оптимальное решение найдено.

Правило 4. Если при сj не существует ai,j > 0, то задача не имеет решения.

Пример.

Решить задачу симплекс-методом: q = x1- x2 ® min

ì x1 - 2x2 £ 1,

ïï- 2x1 + x2 £ 2,

í

ï 3x1 + x2 £ 3,

ïî x1, x2 ³ 0.

8

1. Приводим задачу к каноническому виду: если знак «≤», то добавляем xj; если знак «≥», то вычитаем xj. Если ищется максимум целевой функции, то коэффициенты при xj умножаем на (-1) и устремляем функцию к минимуму.

q = x1 - x2 ® min

 

ì x1 - 2x2 + x3 = 1,

(1)

ï

(2)

í- 2x1 + x2 + x4 = 2,

ï

(3)

î 3x1 + x2 + x5 = 3.

У нас получилось пять переменных: х1, х2, х3, х4, х5. Разбиваем переменные на два вида: базисные и небазисные. Количество базисных переменных равно числу ограничении, т.е. равно трем. Остальные переменные – небазисные.

2. Составляем начальную симплекс-таблицу, т. е. выражаем базисные переменные через небазисные, так чтобы свободные члены в уравнении были неотрицательные.

Выразим переменную x1 из уравнения (1) и подставим в уравнения (2) и (3). Тогда из уравнения(2) легко найти x4, из уравнения (3) найдем x5. Подставив х1 в целевую функцию, получим:

q = 1 + 2x2 - x3 - x2 = 1 + x2 - x3 ® min;

ì x1 = 1 + 2x2 - x3;

(1' )

ï

= 4 + 3x2 - 2x3;

(2' )

í x4

ï

= 3x3 - 7 x2 .

(3' )

îx5

Получили, что х1, х4 и х5 – базисные переменные, а х2 и х3 - небазисные. Затем небазисные переменные х2 и х3 приравниваем к нулю, подставляем в получившиеся уравнения и находим значения базисных переменных и целевой функции. Таким образом, получили симплекс-таблицу для первой базисной точки:

х1

х2

 

х3

 

х4

 

х5

q

 

1

0

 

0

 

4

 

0

1

 

Полученная

базисная

точка

соответствует

координатам

точки С(1;0) (см. рис. 1, с. 4).

Так как в полученной целевой функции есть отрицательные коэффициент при х3, то оптимальное решение еще не найдено, поэтому переходим к новому базису.

9

3. В соответствии с правилом 1 в базис переводим переменную х3, так как она имеет отрицательный знак в целевой функ-

ции. В соответствии с правилом 2:

a13

= 1

b1 = 1

b1/a13 = 1 – min;

a43 = 2

b4 = 4

b4/a43 = 2;

a53 = -3 b5 = 0

a53 < 0.

Из базиса исключаемх1, т. к. ему соответствует минимальное значение.

Выражаем переменную x3 из уравнения (1’)

и подставляем

в уравнения (2’), (3’) и целевую функцию.

 

q = x1 - x2 ® min;

 

ìx3 =1 + 2x2 - x1;

(1'')

ï

= 2 + 2x1 - x2;

(2'')

íx4

ï

= 3 - 3x1 - x2.

(3'')

îx5

Небазисные переменные х1 и х2 приравниваем к нулю, подставляем в получившиеся уравнения и находим значения базисных переменных и целевой функции. Таким образом, получили симплекс-таблицу для второй базисной точки:

х1

х2

 

х3

 

х4

 

х5

q

 

0

0

 

1

 

2

 

3

0

 

Полученная

базисная

точка

соответствует

координатам

точки О(0; 0) (см. рис. 1, с. 5).

Так как в полученной целевой функции есть отрицательные коэффициент при х2, то оптимальное решение еще не найдено, поэтому переходим к новому базису.

4. В соответствии с правилом 1 в базис переводим переменную х2, так как она имеет отрицательный знак в целевой функции. В соответствии с правилом 2:

a32 = -2 b3 = 1

a32 < 0;

a42 = 1

b4 = 2

b4/a42 = 2 – min;

a52 = 1

b5 = 3

b5/a52 = 3.

Из базиса исключаемх4, т. к. ему соответствует минимальное значение.

Выражаем переменную x2 из уравнения (2”) и подставляем в уравнения (1”), (3”) и целевую функцию.

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]