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

Системы организационного управления. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
161
m
=
∑
i
=
xcF
,
ii
1
x
где
– целые неотрицательные числа; сi – целые числа;
i
линейные неравенства
∑
=mi
, j
j
iij
1
= 1, 2, …, n, a
, bj – целые числа.
ij
xa
≤ b
Необходимо определить значения хi, при которых целевая функ­ция достигает экстремального значения. Решение такой задачи осу­ществляется с помощью метода Гомори или метода секущих. Обзор методов решения этого класса задач дан в книге [24], сами методы изложены в работах [28].
Целочисленные задачи с булевыми переменными. Задачи этого
класса в значительной степени аналогичны задачам предыдущего класса, но в то же время имеют свои особенности, которые позволяют их выделить.
Постановка задачи
– заданы:
целевая функция
m
, x
=
∑
=
i
xcF
ii
1
∈(0, 1), i = 1, 2, …, m;
i
линейные ограничения
xa
≤ b
∑
=mi
, j
j
iij
1
= 1, 2, …, n, a
, bj, ci – целые числа.
ij
Необходимо определить набор (х1, ..., хт), при котором целевая функция достигает экстремального значения.
Основным методом решения этой задачи является метод «ветвей и границ».
Комбинаторное программирование. Этот раздел математиче-
ского программирования включает дискретные задачи, и специаль-
N
162
ные методы их решения, как правило, нелинейные. Термин «комби­наторное программирование» обусловлен тем, что чисто дискретные задачи можно интерпретировать как задачи оптимизации функций, определенных на заданном множестве выборок (комбинаций) из ко­нечного числа элементов.
Задачи календарного планирования. Примером задачи названно-
го класса является задача определения очередности выполнения зада­ний. Формулируется эта задача следующим образом: заданы исход-
I
ные данные
π
, ..., π
2
) – перестановка элементов множества IN, определяющая
N
= {1, 2, ..., N} – множество номеров заданий; π = (π
N
,
1
очередность выполнения заданий; ния;
T(j) – директивный срок окончания j-го задания; a(j) – штраф,
накладываемый на исполнителя за невыполнение
τ(j) – время выполнения j-гo зада-
j-го задания к сроку
T(j); θ(х) — функция скалярной переменной х, принимающей значе-
ние 0 при
х ≤ 0, и значение 1 при х > 0. Множество возможных реше-
ний рассматриваемой задачи составляет всевозможные перестановки
π из элементов множества I
множестве
ПN ищется оптимальное решение. В качестве целевой
. Это множество обозначим через ПN. На
N
функции выбирается функция
j
⎡
∑∑
==
Ij
⎢
k
1
⎣
TaF
⎤
π−πτθπ=π
,
)()()()(
jkj
⎥ ⎦
которая представляет собой суммарный штраф за нарушение ди­рективных сроков выполнения заданий. Следовательно, задача со­стоит в определении последовательности π∈П
, при которой достига-
N
ется минимум функции F(π).
Вторым примером задач названного класса является задача оп­ределения порядка обработки деталей. Формулируется эта задача следующим образом: заданы исходные данные I
– множество номе-
N
ров деталей, подлежащих обработке; π – перестановка из элементов множеств I
, задающая порядок запуска деталей в производство; I
N
M
–
множество номеров станков; каждая из деталей должна быть обрабо-
тана на каждом из М станков; любая деталь обрабатывается без пере­рыва; последовательность прохождения деталей по станкам одинако­ва для всех деталей; нумерация станков соответствует последова-
163
тельности обработки деталей; время τ(i, j) обработки j-й детали на i-м станке.
Высказанные предположения дают возможность определить для каждого порядка запуска деталей ботки детали
π
, на первых k станках. Для k = 1
j
j
πτ
∑
ii1
=
),1( ;
далее для
j = 1 имеем при всех k∈I
k
Т
(π1, π) =
k
∑
i
=
1
πτ
i
),( .
1
Значения
Т
, π) в общем случае определяются рекуррентно по
k(πj
формуле
Т
, π) = τ(k, π
k(πj
) + max{ Т
j
k – 1(πj
π время Т
M
, π), Тk(π
, π) завершения обра-
k(πj
, π)}.
j – 1
π
Это соотношение вытекает из того, что обработка детали
на k-
j
м станке может начинаться только после окончания обработки этой же детали на ( станке детали π
k – 1)-м станке и после окончания обработки на k-м
, предшествующей в очередности π детали π
j – 1
. Це-
j
левой функцией рассматриваемой задачи является окончание обра-
π
ботки детали
на станке М:
N
F(π) = T
M(πN
, π).
Множеством возможных решений является ПN, на котором оп­ределяется целевая функция.
Задача распределения заданий. Примером задач этого класса яв-
ляется следующая задача: заданы исходные данные I номеров заданий; I на выполнение j-гo задания i-м исполнителем; r
– множество номеров исполнителей; t
M
=
(r1, ..., rM) – разбие-
– множество
N
– затраты
ij
ние множества IN на М подмножеств (подмножества не имеют общих элементов, а объединение их составляет множество IN, причем неко-
M
164
торые из подмножеств r
могут быть пустыми); R(N, М) – множество
i
всех разбиений r указанного типа.
В задачах данного типа множество возможных решений совпа­дает с
R(N, M). Для определения оптимального разбиения использу-
ется либо критерий наибольшей суммарной эффективности либо кри­терий равномерной загрузки исполнителей. Соответствующие целе­вые функции имеют вид
=
1
∑∑
∈∈
Iirj
jitrF ),()(
;
i
⎧
=
2
⎪ ⎨
∈
∑
Ii
M
⎪
∈
rj
⎩
i
⎫
⎪
.
jitrF ),(max)(
⎬ ⎪
⎭
Следовательно, задача сводится либо к минимизации F1(r), либо к максимизации F2(r).
Вторым примером является так называемая «задача коммивоя­жера», формулировка которой сводится к следующему: задан полный граф (I, U), где I = {i} – множество вершин, a U = {i, j} – множество дуг графа, вес дуги определяется значением Uij.
Необходимо найти на этом графе контур, включающий каждую вершину точно по одному разу и имеющий минимальный (макси­мальный) суммарный вес.
Для решения сформулированных задач применяется прибли­женный метод – метод «ветвей и границ».
Нелинейное программирование. Этот раздел математического
программировании разрабатывает теорию и методы решения задач определения экстремума нелинейной функции многих переменных при наличии нелинейных ограничений на эти переменные.
Общая формулировка задачи нелинейного программирования заключается в следующем: задана нелинейная целевая функция F(x), где х – n-мерный вектор, определяющий некоторую точку в n-мерном евклидовом пространстве Е
n
и т функций ограничений:
g
≥ 0, i = 1, 2, …, m.
i
165
Необходимо определить значение составляющих вектора х та­ких, чтобы функция F(x) достигала экстремального значения при вы­полнении всех ограничений.
По характеру функции F(x) и функций ограничений gi(х) можно классифицировать задачи нелинейного программирования.
Задача нелинейного программирования с линейными ограниче­ниями формулируется следующим образом: задана нелинейная функ­ция F(x), где х – n-мерный вектор, определяющий некоторую точку в
n-мерном евклидовом пространстве Е
– матрица размера m×n; b – m-мерный вектор-столбец.
n
и равенство Ах = b; х ≥ 0, где
Необходимо определить значение вектора х такое, чтобы функ­ция F(x) достигала экстремального значения при выполнении задан­ных ограничений.
Решение задач этого класса изложено в работах [28, 35].
Второй разновидностью задач рассматриваемого класса являет­ся задача квадратичного программирования, в которой необходимо определить экстремум квадратичной функции
∑
∈=Iji
xxcxF,)( ,
jiij
при выполнении условия Ах
=
b.
Решение задач этого класса дано в работах [35].
Динамическое программирование. Динамическое программи-
рование – это метод решения задач нелинейного математического программирования. Метод основан на следующем принципе опти­мальности: оптимальная стратегия обладает тем свойством, что како­вы бы ни были начальное состояние и принятое начальное решение, последующие решения должны составлять оптимальную стратегию относительно состояния, возникшего в результате первоначального решения.
Математическая формулировка этого принципа заключается в следующем. Рассмотрим некоторый управляемый объект S, состояние которого в любой момент времени задано вектором х. Составляющие вектора
являются фазовыми координатами изображающей точки в
фазовом пространстве объекта. Время выделяется, как отдельная ко­ордината. На каждой стадии n-этапного процесса изменения состоя-
166
ния объекта можно изменять управляющее воздействие, описываемое вектором и. Под воздействием вектора и объект переходит в новое состояние х'. Связь между состояниями х, х' и воздействием u задает­ся оператором Т:
x′ = T(x, u).
Далее, пусть эффективность функционирования объекта оцени­вается оператором R(x, и), тогда максимальная эффективность за n этапов движения объекта будет функцией только начального состоя­ния х и числа этапов n. Обозначим эту величину через Fn(x), тогда
(x) =
1
max
u
R(x, и).
На основании принципа оптимальности запишем основное ре­куррентное соотношение
n+1
(x) =
max [R(x, u) + F
u
(T(x, u))].
n
В случае бесконечного процесса получаем основное функцио­нальное уравнение динамического программирования
F(x) =
max[R(x, u) + F(T(x, u))].
u
Если состояние объекта отображается в дискретном пространст­ве, то используется дискретное динамическое программирование. Метод динамического программирования достаточно подробно из­ложен в руководствах [22, 34]. В этих же руководствах приведены многочисленные примеры использования данного метода для реше­ния конкретных задач.
Метод множителей Лагранжа. Этот метод решения служит для
определения экстремума функций многих переменных. Он является одним из основных методов решения задач нелинейного математиче­ского программирования. Сущность метода заключается в следую­щем: пусть задана нелинейная целевая функция F(x), где х – n-
∂
∂
x
x
x
167
мерный вектор. Необходимо определить экстремум F(x) при ограни­чениях g(х) = b, где g и b – векторы.
Решение определяется поэтапно. На первом этапе вводится век­тор y = (y
, y2, …, ym), составляющие которого носят название множи-
1
телей Лагранжа. На втором этапе определяется функция Лагранжа как сумма целевой функции и скалярного произведения вектора мно­жителей Лагранжа и вектора разности между постоянными ограниче­ниями и функциями ограничений:
L(x, y) = F(x) + y(b – g(x))
или в развернутом виде
L(x1, …, xn; y1, …, y
) = F(x
m
, …, xn) +
1
∑
=mi
y
(bi – gi(x1, …, xn)).
i
1
Последним является отыскание точки (х*, у*), в которой все ча- стные производные первого порядка функции Лагранжа обращаются в нуль:
∂
L
()
yx
∂
∂
xF
=
**, =
*)(
−
g
y
x
∂
0*)(*
;
∂
L
()
∂
y
xgbyx
0*)(**, =−=
.
Совместное решение m + n уравнений, полученных из приве­денных дифференциальных соотношений, дает значения m + n неиз­вестных: переменных х
…, у
*. Если выполнено условие отрицательности определителя мат-
m
*, х2*, …, хn* и множителей Лагранжа у1*, у2*,
1
рицы Гессе
168
2
∂
L
2
∂
2
∂
L
=
2
∂
x
x
1
2
∂
L
2
∂
L
L
∂∂
xx
21
2
∂
L
L
xx
∂∂
1
xx
∂∂
nn
2
2
∂
L
∂∂
xx
1
n
MMMM
,
2
∂
L
2
x
∂
n
то значения переменных х* = (х
*, …, хn*) дают локальное решение
1
задачи математического программирования. Если целевая функция
F(х) строго выпукла (вогнута), то метод множителей Лагранжа дает общий экстремум. Этот метод детально изложен в руководствах [28, 35], где также рассмотрены примеры применения этого метода.
Градиентные методы оптимизации. К градиентным методам
оптимизации относят методы, в которых процесс вычисления опти­мального значения целевой функции основан на использовании гра­диента (или антиградиента) этой функции.
Метод формулируется следующим образом. Пусть задана целе­вая функция F(х), значения которой зависят от составляющих вектора
х = (х
довом пространстве Е вычисление значений F(x) для такой последовательности точек х
..., х
, ..., хn), определяющего положение точки х в n-мерном евкли-
1
т
, которая приводит к оптимальному значению F(x). Для опреде-
n
. Процесс оптимизации представляет собой
1
, х2,
ленности дальнейших формулировок примем, что оптимальной точ­кой является точка минимума функции F(x).
В процессе оптимизации в окрестности точки хk определяется одно или несколько значений F(x), так называемые пробные шаги. Затем на основании полученных значений вычисляется новая точка
k+1
x
– рабочий шаг, после чего процесс вычислений повторяется. В
рассматриваемом методе пробные шаги используются для прибли­женного построения градиента F(x). Сущность градиентного метода заключается в следующем. Предположим, что F(x) дифференцируема и ее градиент h(x) всюду в Еn удовлетворяют условию Липшица
yrxhyxh ≤−+ )()( ,
()(
)
x
169
где ||х|| =
та. Введем обозначение F значение F(х) в точке xk. Для построения точки х
∑
=ni
2
x
– норма вектора х в Еn, а r – положительная констан-
i
1
= min F(х) и будем считать, что вычислено
0
k+1
вычисляется при-
ближенное значение h(xk). Для этого необходимо вычислить значение
F(x) в т точках
k
х
= Δхе
, i = 1, 2, ..., m,
i
где Δх – константа, равная длине пробного шага, е
– m-мерный еди-
i
ничный вектор с единицей на i-м месте. Затем вычисляется вектор H(xk), компоненты которого определяются по формуле
k
=
xH
)( .
i
k
i
−Δ+
k
xFxexF
Δ
Если Δх → 0, то H(хk) → h(х
k
). Таким образом, H(хk) является
приближенным значением градиента h(х) в точке хk. Очередная точка
k+1
x
определяется с помощью рабочего шага α
в направлении H(хk):
k
k+1=xk
x
–
α
H(xk).
k
После определения значения F(x
k+1
) переходят к следующей итерации. Для окончания вычислений используют элементарное пра­вило остановки
F(x
k
) – F(x
k+1
) ≤ ε,
где ε – заданная положительная константа.
Если неравенство выполняется, то достигнут локальный мини-
мум функции F(x).
Градиентный метод дает глобальный минимум только для стро­го вогнутых функций. Может оказаться, что найденный минимум и глобальный минимум совпадают для некоторой многоэкстремальной функции. Это совпадение может быть либо случайным, либо целена­правленным, но в последнем случае необходима дополнительная ин-
170
формация о характере изменения функции F(x).
Метод наискорейшего спуска получается в градиентном методе следующим способом: выбирается α
таким образом, чтобы на каж-
k
дом шаге минимизировать функцию F(x), т.е. определить минимум
k
F(x
– α
H(xk)).
k
Градиентные и примыкающие к ним методы возможных на­правлений достаточно полно исследованы в работе [35].
Метод покоординатной оптимизации. Сущность метода за-
ключается в том, что определение минимума функции F(x), где х – n­мерный вектор евклидового пространства Еn, связано с преобразова­нием координат на каждом шаге таким образом, чтобы координатные оси совпадали с направлением поиска. Направление поиска выбира­ется из условия определения локального минимума функции F(х). Производится аналогичное построение и для определения максимума функций.
Этот метод оказывается эффективным в тех случаях, когда спе­цифические особенности задач позволяют осуществить определение абсолютного минимума по выбранному направлению координатной оси.
Общая математическая формулировка метода заключается в следующем. Исходную для k-го шага точку х обозначим через x
k
, где
k = 1, 2, …. Исходную для этого шага систему координат назовем k-й системой. Началом k-й системы является точка x
k
. Через D
k
, где
i
i = 1, 2, …, n, обозначим множество точек х на i-й оси k-й системы
координат. Тогда метод покоординатной оптимизации записывается в следующем виде:
k
F(x
) =
min
∈
Dx
−
k
i
F(x),
1
где i – выбранное направление покоординатной оптимизации.
Вычисления прекращаются, если выполняется неравенство
k – 1
F(x
) – F(xk) ≤ ε,
где ε – заданная точность вычислений.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]