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

Методы решения задач оптимизации. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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. Чтобы определить какая именно это вершина, мы должны вы­полнить несколько действий.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]