Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы решения задач оптимизации. Учебное пособие
.pdf
3. Примеры решения задач построения математических моделей
31
Это задача линейного программирования.
Пример 3.3. (ММ транспортной задачи)
Имеется n поставщиков (предприятия или пункты отправления с
определенными изделиями), m потребителей (m пунктов назначения).
Максимальное число изделий, которое может отгрузить i-е предприятие,
равно ai, а требуемое в j-м пункте назначения – bj. Затраты на перевозку
груза из пункта i в пункт j равны cij. ЦФ – выбор плана перевозок, минимизирующего общие транспортные расходы.
Ответ. Найти
11
min
mn
ij ij
ij
cx
при наличии ресурсов пунктов отправки
1
m
ij i
j
xa
спрос пунктов назначения
1
n
ij j
i
xb
объем перевозок положителен xij 0 для всех i и j.
Пример 3.4. (ММ задачи о назначениях)
Имеется n вакантных видов работ, на которые претендуют n работников. На каждой работе – один работник. Эффективность использования
i-го работника на j-й работе cij. Можно построить квадратную матрицу
,
ij n nC
в которой каждый элемент i-й строки – это эффективность
использования i-го работника на каждой из n работ, j-й столбец – это эффективность использования каждого из n работников на j-м виде работ.
Требуется так распределить n работников на n работах, чтобы суммарная
эффективность их использования была максимальной.
Решение. Определим некоторую матрицу X =
ij
nnx
причем xij =
= 1, если j-й вид работ выполняет i-й работник, xij = 0, в противном случае.

3. Примеры решения задач построения математических моделей
32
Максимизировать
11
mn
ij ij
ij
cx
при ограничениях
1
1
n
ij
ix
, на
каждом j-м виде работ может использоваться только один работник;
1
1
n
ij
jx
, за каждым i-м работником может быть закреплено только
одно место xij= 0 или 1 для всех i и j.
Пример 3.5. (ММ задачи о раскрое материалов)
На раскрой поступает m различных материалов. Требуется изгото-
вить k различных комплектующих изделий в пропорциональных количествах b1, b2, ..., bk – условие комплектности. Пусть каждая единица j-го
материала (j = 1, m) может быть раскроена n различными способами, так
что при использовании i-го способа раскроя (i = 1, n) получится a
ij
(k)
еди-
ниц k-го изделия. Определить план раскроя, обеспечивающий максимальное количество комплектов, если известно, что объем запаса j-го материала равен aj единиц. Обозначим:
xij – количество единиц j-го материала, раскраиваемых i-м спосо-
бом;
x – количество комплектов изделий;
1
n
ij j
i
xa
– ограничение запаса j-го материала;
()
11
nn
k
ij ij
ij
x a b
– условие комплектности.
Пример 3.6. (ММ задачи о кратчайшем пути через n точек (задача
коммивояжера))
Коммивояжер, выезжающий из некоторого города, должен посе-
тить каждый из n–1 других городов только один раз и вернуться в исходный город. Матрица расстояний D =
ij n nd
известна. Найти такую
последовательность обхода городов, при которой общее расстояние,
пройденное коммивояжером, будет минимальным.

3. Примеры решения задач построения математических моделей
33
Определим некоторую матрицу X =
ij
nnx
, в которой xij = 1,
если в маршрут входит путь из i-го в j-й город, xij = 0, в противном случае.
При этом любой план однозначно определяет матрицу X. Математическую модель можно представить следующим образом:
найти
11
min
dn
ij ij
ij
dx
,
при
1
1
n
ij
ix
,
1
1
n
ij
jx
.
Каждый из городов можно посетить один раз: xij = [0, 1] для всех i, j.
(n – 1)xij + ui – uj n – 2,
i<>j; j = 1, (n – 1) – условия односвязности маршрута;
uij – некоторые вспомогательные неотрицательные числа. Послед-
нее ограничение накладывает требование цикличности матрицы X, т.е. x =
= 1, где i – единичная матрица.
x
(k)
<> 1, где x
(k)
– подматрица x при выборе некоторых k < n диаго-
нальных элементов.
В противном случае будем иметь не один, а два и более замкнутых
маршрутов, каждый из которых проходит лишь через часть городов.
Пример 3.7. (ММ задачи о ранце)
Турист должен упаковать в ранец разные предметы. Причем n
наименований могут быть одинаковыми. Имеется m ограничений (вес,
объем, линейные размеры и т.д.) Пусть aij – i-я характеристика j-го наименования i = 1, …, m; j = 1, …, n; bi – ограничения по весу, объему и т.д.
Обозначим:
xj – количество предметов j-го наименования запланированного к
загрузке в ранец. Известна полезность предмета cj. Математическую модель можно записать следующим образом:

3. Примеры решения задач построения математических моделей
34
найти
1
max
n
jj
j
cx
1
n
ij j j
j
a x b
,
i = 1, …, m; xj 0 – целое, j = 1, …, n.
Пример 3.8. (ММ задачи о структуре сети электросвязи)
Задана матрица расстояний D =
ij n nd
между n пунктами
данного региона. Необходимо определить такую структуру сети, которая
обеспечивала бы связь между всеми пунктами региона по критерию минимальной стоимости. Будем считать, что стоимость канала связи между
пунктами i, j пропорциональна расстоянию между ними.
Введем псевдобулевые переменные:
xij = 1, если есть прямой канал связи между пунктами i, j;
xij = 0, в противном случае.
Математическую модель можно записать следующим образом:
минимизировать
11
nn
ij ij
ij
dx
.
Эту задачу удобно решать методом ветвей и границ.

4. Графическое решение задачи линейного программирования
35
4. ГРАФИЧЕСКОЕ РЕШЕНИЕ ЗАДАЧИ
ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Для решения задач линейного программирования с двумя пере-
менными можно использовать графический метод. Графический метод
основан на том, что каждое ограничение задачи линейного программирования может быть интерпретировано как полуплоскость в двумерном
пространстве [5].
Уравнение, соответствующее ограничению задачи, позволяет по-
строить прямую линию, которая делит плоскость на две полуплоскости, в
одной из которых располагаются допустимые решения, а в другой – недопустимые. Геометрическая фигура, соответствующая пересечению всех
полуплоскостей (ограничений), если она существует, является областью
допустимых решений исследуемой задачи. Далее, используя математическое выражение, соответствующее целевой функции задачи, мы можем
определить направление возрастания (убывания). Передвигая, мысленно,
воображаемую линию, соответствующую целевой функции задачи по
направлению возрастания (убывания), мы можем найти оптимальное решение задачи.
Поскольку оптимальное решение задачи линейного программиро-
вания всегда ассоциируется с угловой точкой области допустимых решений, то оптимальное решение задачи будет представлять точку, являющуюся пересечением двух прямых. Решив полученную систему из двух
уравнений с двумя неизвестными, мы определим координаты этой точки
(значения переменных) и значение целевой функции задачи.
Итак, графический способ решения задачи линейного программи-
рования состоит из двух этапов [5].
1. Определение области допустимых решений, удовлетворяющих
всем ограничениям задачи.
2. Нахождение оптимального решения среди всех точек, принадле-
жащих области допустимых решений.
Рассмотрим описанный алгоритм на примере.
Пример 4.1. Пусть задана следующая задача линейного програм-
мирования.

4. Графическое решение задачи линейного программирования
36
Максимизировать целевую функцию f = 7x1 + 2x2 при выполнении
следующих ограничений:
3x1 + 2x2 24,
x1 + 2x2 12,
x1 – x2 –3,
–4x1 + 3x2 –24,
х1 0, х2 0.
В соответствии с приведенным алгоритмом вначале мы должны по-
строить область допустимых решений задачи. Строим систему координат,
где горизонтальная ось будет соответствовать значениям переменной x1, а
вертикальная – соответственно значениям переменной х2 (рис. 4.1). Поскольку в условиях задачи оговорено, что переменные x1 и х2 – неотрицательные
(x1 0, х2 0), то мы будем рассматривать только правый верхний угол (квадрант) системы координат (т.е. пространство выше оси x1 и правее оси х2).
В рассматриваемой задаче имеет четыре ограничения. Для того
чтобы построить область допустимых решений задачи, нам необходимо
(как уже говорилось выше) в каждом ограничении заменить знак неравенства на знак равенства. Полученные в результате уравнения могут быть
отображены в виде прямых на плоскости в системе координат.
Например, берем первое ограничение
3x1 + 2x2 24
и поменяем знак неравенства на знак равенства:
3x1 + 2x2 = 24.
В результате мы получили уравнение, по которому мы можем построить прямую. Для построения данной прямой используем простой прием. Как известно, для построения прямой линии необходимо задать две
точки на плоскости. Такими точками могут быть точки пересечения координатных осей. Приравняем сначала переменную x1 к нулю, тогда получим
2x2 = 24 x2 = 12.
Итак, мы получили координаты первой точки (0, 12). Аналогично
поступаем для определения координат второй точки:

4. Графическое решение задачи линейного программирования
37
x2 = 0, тогда 3x1 = 24 x1 = 8.
Теперь у нас есть две точки (0; 12) и (8; 0) и мы можем провести
прямую линию (рис. 4.1, а). После этого необходимо вспомнить, что на
самом деле в ограничении задачи у нас должен стоять знак неравенства.
Значит, мы должны определить полуплоскость, в которой находятся допустимые для данного ограничения решения. Естественной границей
данной полуплоскости является, с одной стороны, только что построенная нами прямая, а, с другой стороны, оси координат (так как по условию переменные задачи являются неотрицательными). Для того чтобы
определить, в какой из двух полуплоскостей находятся допустимые решения, можно использовать точку начала координат (0; 0). Полуплоскость, которой принадлежит данная точка, является областью допустимых решений. На рис. 4.1, а допустимая полуплоскость соответствует
направлению стрелки.
x
1
x
2
8
12
#1
а
Рис. 4.1.
Ограничения: a – ограничение 1
Аналогично поступаем с остальными ограничениями задачи.
Ограничение № 2
x1 + 2x2 12;
x1 = 0, тогда x2 = 6,
x2 = 0, тогда x1 = 12.

4. Графическое решение задачи линейного программирования
38
Точки для построения прямой: (0; 6) и (12; 0). Прямая #2 на рис. 4.1, б.
x
1
x
2
8
12
#1
6
12
#2
б
Рис. 4.1.
Продолжение: б – ограничение 2
Ограничение № 3
x1 – x2 = –3;
x1 = 0, тогда x2 = 3,
x2 = 0, тогда x1 = –3.
Точки для построения прямой: (0; 3) и (–3; 0). Прямая #3 на рис. 4.1, в.
x
1
x
2
8
12
#1
6
12
#2
3
-3
#3
в
Рис. 4.1.
Продолжение: в – ограничение 3

4. Графическое решение задачи линейного программирования
39
Ограничение № 4
–4x1 + 3x2 = –24;
x1 = 0, тогда x2 = –8,
x2 = 0, тогда x1 = 6.
Точки для построения прямой: (0; –8) и (6; 0). Прямая #4 на рис. 4.1, г.
x
1
x
2
8
12
#1
6
12
#2
3
-3
#3
6
-8
#4
г
Рис. 4.1.
Продолжение: г – ограничение 4
Область пространства, являющаяся пересечением всех построенных полуплоскостей, будет представлять область допустимых решений
данной задачи. Для наглядности полученную область можно заштриховать (рис. 4.1, д). Итак, область допустимых решений задачи построена и
на этом первый этап завершен. Переходим ко второму этапу задачи.
Теперь нам необходимо выбрать среди множества допустимых решений задачи, оптимальное. То есть решение, при котором целевая функция задачи достигает своего максимального (согласно условиям задачи)
значения и при этом соблюдаются все ограничения задачи.

4. Графическое решение задачи линейного программирования
40
Любая точка, расположенная внутри или на границе построенной
области (см. рис. 4.1, д), является допустимым решением, поскольку удовлетворяет всем ограничениям задачи. Конечно, можно выбрать оптимальное решение путем перебора различных вариантов, соответствующих
множеству точек области допустимых решений. Но такой путь будет
слишком долгим и трудным, даже для нашей задачи с двумя переменными. Разберемся, каким образом решается задача выбора оптимального
решения в графическом методе.
x
1
x
2
8
12
#1
6
12
#2
3
-3
#3
6
-8
#4
д
Рис. 4.1.
Продолжение: д – пересечение полуплоскостей
В нашем примере после первого этапа мы получили область допустимых решений задачи. Эта область представляет собой многоугольник с
вершинами ABCDEF (рис. 4.1, е). Для наглядности полученную область
можно заштриховать. Как мы уже знаем оптимальное решение задачи
линейного программирования (если оно существует и является единственным) обязательно соответствует одной из вершин многоугольника
ABCDEF. Чтобы определить какая именно это вершина, мы должны выполнить несколько действий.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
