Вы находитесь на странице: 1из 80

Л.В. Холопкина О.Б.

Кремер
ФГБОУ ВО «Воронежский государственный
технический университет»

МЕТОДЫ ОПТИМИЗАЦИИ, Л,И, Холопкина О.Б. Кремер


КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ

Учебное пособие

МЕТОДЫ ОПТИМИЗАЦИИ,
min f ( x), x E n КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ

h ( x)  0, j 1, 2, ..., n
j
g j ( x)0, j m1,..., p
Утверждено Редакционно-издательским советом
университета в качестве учебного пособия

Воронеж 2016
 Холопкина Л.В., Кремер О.Б, 2016
 Оформление. ФГБОУ ВО “Воронежский
государственный технический
Воронеж 2016 университет

УДК 681.3.06
ВВЕДЕНИЕ
Холопкина Л.В. Методы оптимизации. Компьютерные
технологии: учеб. пособие / О.Б. Кремер, Л.В. Холопкина Основным препятствием на пути широкого
Воронеж: ФГБОУ ВО «Воронежский государственный использования в практической деятельности современных
технический университет», 2016. 149 с. методов оптимизации является необходимость разработки
математических моделей конкретных задач, то есть сведение
Учебное пособие предназначено для самостоятельной практической задачи к математической задаче поиска
подготовки студентов очной и заочной форм по курсу “Методы оптимума, для этого необходимы знания соответствующей
оптимизации”. Пособие содержит теоретические сведения по предметной области, понимание особенностей практической
курсу, сопровождаемое большим количеством подробно задачи и вместе с тем нужны знания современных методов
рассмотренных алгоритмов и примеров оптимизации.
Издание соответствует требованиям федерального Еще одним осложняющим обстоятельством в деле
образовательного стандарта высшего образования по практического применения методов оптимизации является то,
направлению 09.03.01 “Информатика и вычислительная что в настоящее время методы нелинейного
техника” (профиль “Вычислительные машины, комплексы, программирования изучаются в основном будущими
системы и сети”) по дисциплине “Методы оптимизации” математиками, причем в основном в теоретическом тане, а для
их практического применения нужны знания в предметной
области. Студенты технических, экономических и др. вузов,
Ил.: 14. Библиогр.: 12 назв. как правило, знакомятся только с методами линейного
программирования. В большинстве источников методы
Научный редактор д-р техн. наук, проф. нелинейного программирования излагаются с опорой на
С.Л. Подвальный глубокие знания линейной алгебры и математического анализа
и доступны в основном специалистам-математикам. В то же
Рецензенты: кафедра вычислительной математики время практическое применение современных методов
и прикладных информационных технологий оптимизации в значительной мере сдерживается именно
Воронежского государственного отсутствием соответствующих знаний у действующих
университета (зав. кафедрой д-р техн. наук, инженеров, специалистов в прикладных областях.
проф. Т.М. Леденева); Необходимо преодолеть образовавшийся разрыв путем
д-р техн. наук, проф. В.Ф. Барабанов изложения основных идей, методов и алгоритмов с
привлечением ограниченного числа математических понятий, Необходимо отметить, что для широкого круга задач
которые к тому же поясняются в тексте, так что материал оптимизации имеются стандартные программные средства,
должен быть доступен при наличии математической Так, задача линейного программирования с
подготовки в пределах программы технических вузов. вычислительной точки зрения не вызывает трудностей при

3 4
Наибольшую пользу может принести изучение того, как числе переменных и ограничений в несколько сотен. Нужно
уда лось построить математическую модель и применить тот просто уметь свести исходную практическую задачу к
или иной метод оптимизации для решения конкретной линейному программированию, то есть построить
сложной задачи. Особенно это относится к применению математическую модель и далее использовать готовую
метода динамического программирования, который в программу. Значительно сложнее решение нелинейных задач
«компьютерную эпоху» получил широкое применение в самых большой размерности. Использование стандартных
различных областях практики. Этот мощный метод алгоритмов и программ без учета специфических
оптимизации далеко не универсальный. Известны особенностей конкретной задачи в этом случае может
безуспешные попытки его применения без должного анализа оказаться нецелесообразным.
особенностей конкретной задачи оптимизации.
При изложении методов нелинейного программирования 1. ЗАДАЧИ И МЕТОДЫ ЛИНЕЙНОГО
вместо строгих доказательств известных в математике теорем, ПРОГРАММИРОВАНИЯ
обосновывающих методы оптимизации, излагаются основные
идеи каждого метода, соответствующие им алгоритмы и Рассматриваются линейные задачи оптимизации, то есть,
даются расчетные иллюстрации для задач малой размерности. задачи поиска минимума (или максимума) линейной функции
Известно, что наибольшие трудности в решении многих переменных при наличии ограничений в виде
практических задач вызывает построение адекватных линейных равенств или неравенств.
математических моделей, выбор метода оптимизации и В общем случае задача линейного программирования
разработка соответствующих алгоритмов и программ решения может быть записана в следующем виде:
конкретной задачи. В этой связи приводится много Найти
практических задач из различных областей, приводятся in

математические модели, рассматриваются возможности min  ci xi


i 1
использования различных методов оптимизации, излагаются Ax  b, Dx  d
при ограничениях: .
алгоритмы и даются сведения о программных реализациях.
Здесь x — неизвестный вектор с координатами
Особое внимание уделяется использованию конкретных
xi (i  1, 2,...n) , n — число неизвестных, ci (i  1, 2,...n) -
особенностей модели, что позволяет продемонстрировать на
реальных практических задачах, как использование этих заданный вектор. Целевая функция (c, x ) - скалярное
особенностей приводит к резкому сокращению объема произведение соответствующих векторов. Предполагается, что
вычислений и делает реальным решение задач большой c - это ненулевой вектор, иначе задача теряет смысл.
размерности (сотни переменных и тысячи ограничений). Матрица A имеет не более n строк, а число строк
матрицы D произвольно. Число столбцов в каждой из этих
матриц равно n . Матрицы A , D и векторы b , d заданы.
10 4 0 0
A
Возможны и ограничения по знаку xi  0 .

Ограничения-равенства могут отсутствовать,


ограничения-неравенства обязательны, так как при их
но 010 2 0
отсутствии задача особого смысла не имеет. Действительно,
если уравнения линейно независимы и их число равно числу 6
неизвестных n , то такая система имеет единственное матрица D  0 0 2 0 1 , вектор b  (2, 3) T и вектор
решение, и нет задачи поиска минимума. Если же уравнений c  (1, 0, 2, 1,  1) и вектор d , имеющий только одну
меньше, чем неизвестных, то можно из первого уравнения координату, равную 1 .
выразить x1 через x 2 ,..., x n 1 и подставить во все остальные Решением задачи линейного программирования (точкой
уравнения и в целевую функцию, затем аналогичным образом минимума) называется такая точка (вектор), координаты
исключить и x 2 и т. д. которой удовлетворяют всем ограничениям, и при этом
В итоге будет исключено столько неизвестных, сколько значение целевой функции минимально.
уравнений, а целевая функция останется линейной и будет Поскольку задача на максимум сводится к задаче на
зависеть только от оставшихся неизвестных. На эти минимум путем изменения знака целевой функции,
оставшиеся неизвестные никаких ограничений нет и поэтому приведенная формулировка задачи универсальна. Таким
целевая функция не ограничена и снизу и сверху и задача образом, допустимые решения - это все точки ОДР (область
поиска экстремума теряет смысл. допустимых решений), а оптимальное решение - это точка
Чтобы в этом убедиться, достаточно положить все ОДР, в которой целевая функция принимает минимальное
оставшиеся неизвестные, кроме одного, равными нулю, а значение по сравнению с ее значениями во всех остальных
этому неизвестному (коэффициент при нем не должен быть точках ОДР (области допустимых решений).
нулевым) придать сколь угодно большие положительные или
отрицательные значения. 1.1. Основные формы записи задачи линейного
Пример. Найти min( x1  2 x  x 4  x5 ) при ограничениях: программирования
x1  4 x3  2
x2  2 x4  3 В задаче линейного программирования система
ограничений может содержать и равенства и неравенства, то
2 x3  x5  1
есть может быть смешанной. Однако с помощью введения
дополнительных неизвестных она всегда может быть
В данной задаче n  5 . Заданы: матрица преобразована к одной из двух основных форм [1].
Первая форме содержит только ограничения в виде
равенств и обязательно условие неотрицательности всех
неизвестных. неравенства, в частности условия неотрицательности
Вторая форма содержит только ограничения-неравенства, неизвестных, то есть неравенства вида xi  0
в числе которых могут быть (а могут и не быть) условия Наличие ограничений в виде неравенств — это и есть та
неотрицательности неизвестных. особенность задачи (не только в линейном случае), которая не
Первая форма задачи линейного программирования позволяет применить для ее решения аппарат классической
имеет следующий вид. математики.
i n
Найти min  ci x при ограничениях: Ax  b, xi  0 . 8
i 1
7 Переход от произвольной системы ограничений к одной
Перейти от произвольной задачи линейного из основных форм необходим потому, что задачи линейного
программирования к задаче, записанной в этой основной программирования при большом числе неизвестных решаются
форме можно с помощью введения дополнительных на компьютерах, а алгоритмы их решения и многие
переменных. При этом каждое неравенство становится компьютерные программы часто требуют записи задачи в
T соответствующей форме.
равенством, т. е. вместо ( Ai , x)  bi получаем
T
( Ai , x)  wi  bi
и w i  0 i . Дополнительных неизвестных wi 1.2. Симплекс-метод
столько, сколько ограничений-неравенств. Далее, вместо
неограниченных по знаку переменных xi вводятся Поскольку точку минимума в задаче линейного
программирования надо искать среди вершин ОДР, то
неотрицательные переменные u i и vi по формуле
возникает идея перебрать по очереди все вершины, в каждой
xi  u i  vi . Вместо каждого неограниченного по знаку
из них вычислить значение целевой функции и выбрать ту
неизвестного появляются два новых. При этом увеличение вершину, в которой оно минимально [2].
числа неизвестных равно числу неограниченных по знаку xi . Этот метод полного перебора может быть применен
Естественно, что неограниченные по знаку xi должны быть только при малом числе неизвестных и ограничений.
заменены на ( u i  vi ) не только в системе ограничений, но и в Фактически количество вершин равно количеству вариантов
целевой функции. выбора n ограничений из общего числа m ограничений, так
Вторая форма задачи линейного программирования как вершиной мы назвали точку, в которой ровно n
имеет вид: ограничений активны, т. е. выполняются как равенства. При
i n этом далеко не все вершины будут допустимыми, то есть
Найти min  ci x i при ограничениях: Ax  b . являться вершинами ОДР.
i 1
Общее число вершин равно числу сочетаний при выборе
К ней можно перейти путем замены каждого равенства из m по n . При n  5 , а m  10 это число равно 252, при
двумя неравенствами противоположного знака. При этом n  6 m  12 оно равно 924. При n  25 и m  50 оно равно
увеличивается число ограничений, но остаются те же примерно 1014 , что очень много.
неизвестные. Характерно, что в каждой из форм записи задачи Поэтому необходимы более эффективные методы, чем
линейного программирования присутствуют ограничения— полный перебор.
Такой метод предложил Дж. Б. Данциг в 1949 г. и назвал вершине ровно n  m переменных должны быть равны нулю
его симплекс-метод. Он доказал, что множество решений (больше негде взять недостающие n - равенств кроме как из
линейной системы неравенств ОДР (область допустимых условий xi  0 ). Оставшиеся m переменных должны быть
решений) - это многогранник. Отсюда и название метода‚ так строго положительными.
как слово «симплекс» означает многогранник. Дж. Б. Данциг Итак, должен быть некоторый набор из n  m нулевых
установил и особую роль вершин многогранники для поиска переменных, (они называются свободными), а остальные
решения. m
9
Основная идея симплекс-метода: найти какую-либо 10
допустимую вершину многогранника и от нее перейти в переменных (они называются базисными) можно найти на
другую вершину с меньшим значением целевой функции. системы уравнений Ax  b после подстановки в нее нулей
Поскольку число вершин конечно и, переходя на каждом шаге вместо свободных переменных. Система имеет единственное
в вершину с меньшим значением целевой функции, мы не решение в силу линейной независимости строк матрицы A ,
можем вернуться в уже пройденную вершину, то за конечное Если в результате решения системы мы получим только
число шагов вершина, в которой достигается минимум, будет положительные числа, то это означает, что мы имеем
найдена. При этом необходимо: допустимую вершину (допустимый базис). Если будет хотя бы
1) уметь находить допустимую вершину (начальное одно отрицательное число, то это недопустимая вершина, так
приближение); как условие неотрицательности всех переменных было
2) знать, как перейти в вершину с меньшим значением поставлено изначально. Если же будет еще хотя бы один нуль,
целевой функции; то число активных ограничений станет больше, чем n ( m
3) иметь способ проверки, не является ли достигнутая на равенств—уравнений плюс n  m равных нулю свободных
очередном шаге вершина точкой минимума; переменных и еще один нуль). Это так называемый случай
4) уметь обнаруживать отсутствие решения, то есть вырожденности,
неограниченность целевой функции на ОДР снизу. Симплекс-метод состоит в том, что сначала находится
Данциг рассматривал задачу в первой основной форме, допустимый базис, затем производится замена одной из
то есть базисных переменных на одну из свободных‚ то есть переход в
i n
другую вершину. При этой замене достигается уменьшение
Найти min  ci x при ограничениях: Ax  b, xi  0 . целевой функции. Алгоритм симплекс—метода подробно
i 1
Обозначим число переменных n , а число ограничений- изложен в литературе [1]. Здесь мы поясним его на
равенств m . Таким образом, в матрице A n строк и m конкретных примерах преобразования симплексных таблиц, а
столбцов. Предположим, что строки матрицы A линейно затем приведем обоснование этих преобразований.
независимы ( m  n) Пример 1. Найти max x1  2 x 2  2 x3  x 4 при ограничениях
Наc интересуют вершины, то есть точки, в которых ровно 1
x1  x3  x4  1
n ограничений выполнены как равенства. Но m равенств 2
уже есть (система уравнений Ax  b ), значит, в каждой x 2  x3  x 4  1
xi  0 (i  1,2,3,4) свободные переменные.
Вместо задачи на максимум будем решать задачу на 12
минимум. Для этого умножим целевую функцию на минус 1. При этом первый столбец от вертикальной черты - это
В нашей задаче n  4 , m  2 , значит, должно быть две столбец свободных членов в соответствующих выражениях.
свободных и две базисных переменных. Если взять в качестве Проанализируем симплексную таблицу. Мы хотим
свободных переменных x1 и x 4 , и приравнять их нулю, то уменьшить значение целевой функции, которая теперь зависит
базисные переменные будут равны x 2  2 и x3  1 что только от x3 и x 4 . В исходной вершине они нулевые и
11 целевая функция равна  3 . Свободные переменные (как и
соответствует вершине x1  0 , x 2  2 , x3  1 , x 4  0 . Но эта базисные] не могут быть отрицательными по условию задачи,
поэтому мы можем только увеличивать их‚ но при этом
вершина недопустимая, так как x3  0 . Если же взять в базисные переменные должны оставаться неотрицательными,
качестве свободных переменных x3 и x 4 , то базисные а целевая функция уменьшаться. В нашем примере оба
переменные будут: x1  1 , x 2  1 . Получим допустимую коэффициента целевой функции при свободных переменных
вершину x1  1 x 2  1 x3  0 x 4  0 . Это и есть начальное отрицательны, и поэтому при увеличении свободных
приближение. Для того чтобы перейти в следующую вершину переменных она уменьшается. А что означало бы отсутствие
с меньшим значением целевой функции, нужно выразить из отрицательных коэффициентов целевой функции при
исходной системы уравнений базисные переменные через свободных переменных, то есть отсутствие отрицательных
свободные, подставить их выражения в целевую функцию и чисел в последней строке (столбец свободных членов не
составить симплексную таблицу. учитывается)? Если все эти числа неотрицательны, то целевую
1 функцию уменьшить нельзя, следовательно, минимум
x1  1  x3  x4
2 достигнут. Это и есть правило окончания счета: отсутствие
x 2  1  x3  x 4 отрицательных чисел в нижней строке симплексной таблицы
Целевая функция K ( x3 , x 4 )  3  x3  2,5 x 4 , требуется (не считая столбец свободных членов).
В нашей задаче можно увеличить обе свободные
найти ее минимум.
Симплексная таблица имеет вид: переменные, но предпочтение отдадим x 4 , так как при ней
1 x3 x4 коэффициент больше по абсолютной величине и,
x1 1 1  0,5 следовательно, при увеличении x 4 целевая функция
уменьшится на большую величину, чем при таком же
x2 1 1 1
изменении x3 . Итак, оставляем нулевое x3 и начинаем
K  3  1  2,5
увеличивать x 4 , то есть в плоскости ( x3 , x 4 ) из начала
В таблице свободные переменные записаны в верхней координат идем по оси x 4 . Целевая функция убывает, но
строке, а базисные в левом столбце. Двойная вертикальная меняются и зависящие от x 4 базисные переменные.
черта означает знак равенства, так что каждая строка таблицы Переменная x 2 увеличивается, так как коэффициент
(кроме, разумеется, верхней) - это запись выражений базисных ее
переменных и целевой функции (последняя строка) через
13 нулю, Мы пришли к выводу, что задача не имеет решения, так
зависимости от x 4 , положительный, но переменная x1 , как целевая функция неограничена из-за неограниченности
которая была равна 1 , убывает, так как ее коэффициент ОДР, и даже нашли луч из точки ( 0, 3, 0, 2 ) с координатами (
0, 1, 1, 2 ), в направлении которого можно двигаться сколь
отрицательный (0,5) . Это означает, что x 4 можно
увеличивать только до тех пор, пока x1 не станет равной угодно долго, оставаясь в пределах ОДР.
Алгоритм симплекс-метода предполагает, что исходная
нулю. Базисная переменная x1 станет равной нулю, когда
допустимая вершина известна и включает следующие правила
1
x 4 достигнет значения 2, так как x1  1  x3  x 4 . При этом преобразования симплексных таблиц:
2 1. Выбираем наибольший по абсолютной величине
x1 станет свободной переменной, а x 4 базисной. Целевая отрицательный элемент в нижней строке коэффициентов при
функция изменится на минус 5 и станет равной минус 8. свободных переменных и тем самым разрешающий столбец,
Новое значение переменной x 2 равно 3 , и новая вершина Если отрицательных коэффициентов нет, то минимум найден.
имеет координаты (0, 3, 0, 2) . Если все эти числа строго положительны, то этот минимум
Теперь надо выразить новые базисные переменные x 2 , единственный, так как любое допустимое изменение
x 4 и целевую функцию через свободные переменные x1 , свободных переменных дает увеличение целевой функции и
x3 и перейти к новой симплексной таблице. Выполнив нельзя перейти в другую вершину, не увеличивая целевую
функцию. Если же при всех прочих положительных хотя бы
соответствующие преобразования, получим:
один из коэффициентов при свободных переменных в нижней
x 4  2  2 x3  2 x1 ; x 2  3  x3  2 x1 ; K  8  6 x3  5 x1
строке равен нулю, имеем бесконечное множество решений,
Новая симплексная таблица, в которой переменные x1 и которое получается при увеличении свободной переменной,
x 4 поменялись местами, имеет следующий вид коэффициент при которой оказался нулем,
1 x3 x1 2. В разрешающем столбце находим отрицательные
x4 2 4 2 числа. Если их нет, то целевая функция неограниченно
x2 3 1 2 убывает при увеличении соответствующей свободной
переменной и, следовательно, задача не имеет решения. Если
K 8 6 5
отрицательные числа в разрешающем столбце встречаются в
В новой таблице в последней строке только один нескольких строках, то в каждой такой строке вычисляем
отрицательный коэффициент при свободных переменных ( частное от деления свободного члена на число в разрешающем
 6 ), но в соответствующем столбце (он называется столбце. Затем берем ту строку, для которой это частное
разрешающий столбец) все числа положительны. Это
15
14 минимально по абсолютной величине. Эта строка называется
означает, что переменную x3 можно неограниченно разрешающей, а соответствующий элемент разрешающего
увеличивать. При этом целевая функция будет неограниченно столбца называется опорным элементом. В нашем примере в
уменьшаться, базисные переменные x 4 и x 2 неограниченно первой симплексной таблице разрешающий столбец
увеличиваться, а, свободная переменная x1 останется равной последний, а разрешающая строка первая, и опорный элемент
равен  0,5 . Пример 2. Найти min x 2  2 x1 при 0  x1  1, 0  x 2  1 ,
3. Элементы разрешающего столбца и разрешающей x 2  x1  0,5
строки оставляем (пока) без изменения. Для использования для решения этой задачи симплекс-
4. Все прочие элементы таблицы, включая нижнюю метода ee необходимо привести задачу к первой основной
строку и столбец свободных членов, необходимо вычислить, форме, то есть, представить систему ограничений в виде
по правилу «прямоугольника», а именно: образовать Ax  b, x0
прямоугольник, у которого перевычисляемый и опорный С этой целью вводим три дополнительные
элементы составляют одну диагональ {назовем ее первой), а неотрицательные переменные x 3 , x 4 , x 5 и получаем систему
две вершины второй диагонали получаются при пересечении
уравнений, в которой все неизвестные должны быть
разрешающего столбца и строки, содержащей
неотрицательны:
перевычисляемый элемент, а также разрешающей строки и x1  x 2  x3  0,5
столбца, содержащего перевычисляемый элемент. В нашем
примере в первой симплексной таблице при перевычислении x1  x 4  1
нового (промежуточного) значения целевой функции x 2  x5  1
рассматривается прямоугольник Выражаем все переменные через x1 и x 2 , которые

1  0,5
считаем свободными, а остальные переменные - базисными.
При этом все свободные члены оказываются положительными
и можно заполнить исходную симплексную таблицу.
1 x1 x 2

 3  2,5
x3 0,5  1 1
x3 1 1 0
x3 1 0 1
В прямоугольнике берем разность произведений x3 0 2 1
элементов первой и второй диагонали и результат записываем
В нижней строке только одно отрицательное число, поэтому
вместо перевычисляемого элемента. В нашем случае
1,5  ( 2,5)  4 . разрешающий столбец под x1 , а опорный элемент в строке,
5. Разрешающая строка {кроме опорного элемента)
меняет знак, опорный элемент заменяется на 1.
6. Вся таблица делится на опорный элемент (конечно, на 17
его исходное значение, а не на 1 ). содержащей x3 . В соответствии с изложенными
В новой таблице необходимо поменять местами выше правилами преобразования симплексная таблица x1 и
свободную переменную из разрешающего столбца и базисную x3 меняются местами‚ а новая таблица имеет вид:
из разрешающей строки. 1 x1 x 2
x1 0,5 1 1
16
x4 0,5 1 1
x5 1 0 1 im
найти min  bi y i при ограничениях: AT y  c. ,
K 1 2 1 i 1
В этой таблице меняются местами x 2 и x 4 и после Здесь m — число строк матрицы A ‚ а AT -
преобразований появится новая симплексная таблица: транспонированная матрица A . Заметим, что здесь
ограничения y i  0 (i  1,..., n) отсутствуют и двойственная
1 x3 x4 задача представлена во второй основной форме. Вместо min
x1 1 0 1 имеем max ‚ векторы b и c поменялись местами, уравнения
x2 0,5 1 1 стали неравенствами.
x5 0,5 1 1 Если исходная задача имеет решение, то двойственная
тоже имеет решение, и ее максимум численно равен минимуму
K  1,5 2 1
исходной задачи. Число переменных в двойственной задаче
В нижней строке этой таблицы {не считая столбец
равно числу ограничений-равенств исходной задачи, которое
свободных членов) нет отрицательных чисел, значит, решение
всегда меньше числа переменных исходной задачи. Число
получено. Действительно при x3  0 и x 4  0 целевая ограничений-неравенств двойственной задачи равно
функция равна  1,5 и не может быть уменьшена числу переменных исходной
при
19
18 задачи, но, поскольку ограничения по знаку в двойственной
задаче отсутствуют, го суммарно число ограничений в
изменении x3 и x 4 , так как x3  0 и x 4  0 . Точка минимума двойственной задаче меньше, чем в исходной.
x1  1, x 2  0,5, x3  x 4  0, x5  0,5 . Второе правило:
Если исходная (прямая) задача записана в первой
1.3. Двойственность в линейном программировании основной форме:
i n

Задачи линейного программирования обладают особым найти max  ci xi при ограничениях:


i 1
свойством двойственности. Оно состоит в том, что для каждой
Ax  b, xi  0 (i  1...., n) ,
задачи можно по определенным правилам построить другую
задачу линейного программирования и, решив ее, найти то двойственная задача имеет следующий вид:
im
экстремальное значение целевой функции исходной задачи. найти min  bi y i при ограничениях:
Первое привило: i 1
Если исходная (прямая) задача записана в первой AT y  c, y i  0 (i  1,..., m) ,
основной форме: Двойственность взаимна, то есть полученную задачу
in
найти min  ci xi при ограничениях: Ax  b, xi  0 , можно рассматривать как исходную, в исходную как
i 1 двойственную в: ней. Если ставится цель найти экстремум
то двойственная задача имеет следующий вид: целевой функции, а точка, в которой он достигается, не нужна,
то переход к двойственной задаче в ряде случаев может быть

1 0 1
оправдан,
Рассмотрим задачи, двойственные к рассмотренным
выше.
Пример 1.
Найти min  ( x1  2 x 2  2 x3  x 4 при ограничениях

0 1 y1 2
x1  x3  1 / 2 x 4  1
x 2  x3  x 4  1
xi  0 (i  1,2,3,4)


При решении этой задачи симплекс-методом мы
установили, что решение не существует, так как деления на
ОДР не ограничена, снизу (ОДР не ограничена и целевая

 1 1 y2  2
функция может принимать отрицательные значения сколь
угодно большие по абсолютной величине). А что будет с

20
двойственной задачей? Воспользуемся первым из

0,5 1 1
приведенных выше правил перехода к двойственной задаче.
Переменные двойственной задачи y1 и y 2 . Целевая
функция:
im

b y
i 1
i i  y1  y 2 .

Система ограничений AT y  c , что дает Эта система ограничений несовместна, и, следовательно,


допустимых решений двойственной задачи нет. В отсутствии
допустимых решений легко убедиться, если построить
допустимую область графически. Однако в данном случае
можно обойтись и без графических построений.
Действительно запишем последнее неравенство в виде
y 2  0,5 y1  1 , а предпоследнее в виде y 2  0,5 y1  1  0,5 y1  3
. Эти два условия можно выполнить только при 0,5 y1  3  0
‚ то есть при … y1  6 ‚ что противоречит первому
неравенству. Заметим, что второе неравенство в нашем
доказательстве несовместности системы неравенств не
использовалось.
Рассмотренная ситуация типична в том смысле, что если основной форме и воспользоваться симплекс-методом.
прямая задача имеет дефект` [неограниченность целевой Поскольку переменных три, а ограничений пять {включая
функции снизу на ОДР или несовместность системы неотрицательность переменных), то число вершин не
ограничений], то и двойственная тоже имеет «дефект». превосходит C 53  10 включая недопустимые (фиктивные).
Пример 2. Вершина (0, 0, 0) недопустимая, три вершины получим,
min( x 2  2 x1 ) приравнивая по очереди переменные нулю и заменяя
при 0  x1  1, 0  x 2  1, x 2  x1  0,5 неравенства y1  y 3  2; y 2  y 3  1 равенствами. Это дает
Перепишем задачу в виде: точки: (0, 1, 2) со значением целевой функции 2 ; (1, 0, 1)
со значением целевой функции 1,5 ; ( 2 ,  1, 0) -
21 недопустимая вершина.
max(2 x1  x 2 )
при 0  x1  1, 0  x 2  1, x1  x 2  0,5 22
Вектор c  [2  1] , вектор b  [1,1 0,5] , матрица
T T
Еще две вершины получим, если взять уравнение
y1  y 3  2 и по очереди приравнивать нулю пары переменных.
1 0 Это дает точки: (0, 0, 2) - недопустимая (не выполнено
y 2  y 3  1 ), ( 2, 0, 0) со значением целевой функции 2 ,

A= 0 1 Уравнение y1  y 3  2 не совместимо с y1  y3  0 .
Остальные две вершины получим, если взять уравнение
y 2  y 3  1 и приравнивать нулю сразу две переменные.
1 1 Получим точки: (0, 0, 1) - недопустимая (не выполнено
y1  y 3  2 )( 0,  1, 0) - недопустимая ( y 2  0 ) и y 2  y 3  0
Перейдем к двойственной задаче. Для этого не нужно несовместимо с y 2  y 3  1 .
переходить к первой основной форме. Достаточно Таким образом, минимум достигается в точке (1, 0, 1) и
воспользоваться приведенным выше вторым правилом равен 1,5 , что соответствует теореме двойственности, так как
перехода к двойственной задаче. минимум в исходной задаче второго примера был равен  1,5 ,
Переменные y1 , y 2 , y 3 неотрицательны. Целевая но мы перешли к задаче на максимум, в которой максимум
функция: min( y1  y 2  0,5 y 3 ) равен 1,5 , и только потом перешли к двойственной задаче.
Ограничения: y1  y 3  2; y 2  y 3  1 , Допустимая область не
ограничена, так как из допустимой точки с координатами (
0, 2, 2) , не меняя y2 и y 3 , можно неограниченно
увеличивать y1 , не нарушая ограничений. Однако решение
двойственной задачи существует. Его затруднительно искать
графически, так как построения нужно вести в трехмерном
пространстве, Можно, конечно, привести задачу к первой
ресурсов;
aij - удельные затраты i i - го ресурса, необходимые для
производства единицы j - го продукта;
bi - имеющиеся в наличии запасы i - го ресурса;
cj - доход, получаемый от выпуска и реализации
единицы j- го продукта, либо издержки, связанные с
производством единицы j - го продукта.
24
В качестве управляемых переменных (переменных
23
1.4. Практическое применение методов линейного решения) x j выбирают объемы выпуска продуктов каждого
программирования типа ( j  1, 2, 3,..., n )
Модель линейного программирования для поиска
Практически все задачи линейного программирования оптимальных производственных программ имеет вид:
могут быть сведены к следующим типам [3]: Z  c1 x1  c 2 x 2  ...  c n x n  min(max)
(1.1.)
- модели и задачи формирования оптимальных a11 x1  a12 x 2  ...  a1n x n  b1
производственных программ; a 21 x1  a 22 x 2  ...  a 2 n x n  b2
- модели и задачи транспортного типа; ………………………………. (1.2)
- модели и задачи распределительного типа; a m1 x1  a m 2 x 2  ...  a mn x n  bm
- модели и задачи оптимального распределения финансов.
x1  0; x 2  0; ... , x n  0 (1.3)
Рассмотрим последовательно задачи каждого из этих типов.
Задача заключается в нахождении такой
1.4.1. Модели и задачи формирования оптимальных производственной программы — набора значений для
производственных программ. управляемых переменных x1 , x 2 , ...x n , когда целевая
функция будет достигать своего максимального либо
Модели оптимального формирования производственных минимального значения в рамках ограничений, обусловленных
программ применяют там, где требуется подготовить план имеющимися ресурсами.
выпуска продукции, оптимальный с точки зрения выбранного В реальных задачах к ограничениям по ресурсам могут
критерия — максимума прибыли или минимума издержек. добавляться дополнительные ограничения, связанные,
При этом имеющиеся в наличии материальные, финансовые и например, с необходимостью выполнения контрактных
иные ресурсы ограничены. обязательств, с особенностями спроса на тот или иной продукт
Для формализации задачи (записи в математической и т.д.
форме) необходима следующая информация: На практике помимо планирования производственных
n - количество выпускаемых изделий, включенных в программ к моделям классического типа (1.1-1.3) приводит и
производственную программу; большое число других управленческих ситуаций, связанных с
m - количество используемых для производства решением задач:
- оптимального смешения (задачи о диете); Требуется сформировать месячную производственную
- оптимизации раскроя материалов; программу (определить объемы выпуска каждого вида
- оптимизации финансовых потоков; продукции), при которой доход от реализации будет
- разработки оптимальных графиков платежей; максимальным.
- поиска наиболее выгодных путей размещения Для формализации задачи обозначим через
x1 , x 2 , x3
25
финансовых средств (задачи оптимального инвестирования), и 26
многое другое. искомую производственную программу — объемы выпуска
Задача об оптимальной производственной программе болтов, гаек, шайб (в тоннах). Тогда доход от реализации будет
предприятия равен
Предприятие выпускает три вида крепежных изделий: Z  194 x1  175 x 2  264 x3
болты, гайки и шайбы. Далее приведены нормы расхода сырья, Производственная программа x1 , x 2 , x3 может быть
времени работы оборудования и затрат электроэнергии, реализована только при выполнении следующих условий
которые необходимы для производства одной тонны каждого (ограничений):
изделия. 3 x1  5 x 2  12 x3  154
Месячные запасы ресурсов, которыми располагает 5 x1  7 x 2  8 x3  210
предприятие, ограничены. По сырью эти ограничения
x1  4; x 2  2; x3  3
обусловлены емкостью складских помещений, по
оборудованию — станочным парком и трудовыми ресурсами, Переменные решения неотрицательны:
по электроэнергии -техническими и финансовыми причинами. x1  0; x 2  0; x3  0
Размеры запасов и доход от реализации продукции в у.е. за 1 Полученную задачу линейного программирования можно
тонну приведены далее. решить в Excel. Для этого необходимо создать на рабочем
листе табличный вариант модели оптимизации.
Ресурсы Расход на тонну продукции Запасы ресурсов Затем необходимая информация вводится в надстройку
«Поиск решения» и получаем на рабочем листе Excel
Болты Гайки Шайбы оптимальное решение. Найденная «Поиском решения»
Сырье 3 5 12 154 оптимальная производственная программа:
Оборуд. 5 7 8 210 x1опт  25,5,
Электр. 2 8 11 100 x 2 опт  2,
Доход от 194 175 264 x3опт  3.
реализ. Максимально возможный при данных запасах ресурсов
Помимо запасов на формирование программы влияет доход Z составит 6089 у.е.. Наибольший доход от реализации
необходимость выполнения контрактных обязательств: продукции в размере 6089 у.е. будет достигнут при следующей
предприятие должно обеспечить поставку болтов в количестве 4 производственной программе:
т, гаек — в количестве 2 т, шайб — в количестве 3 т.
- болты необходимо производить в количестве 25,5 т; прибыль будет равна
- гайки необходимо производить в количестве 2 т; Z  11x1  6 x 2  9 x3  6 x 4
- шайбы необходимо производить в количестве 3 т. При этом переменные должны удовлетворять системе
Задача об оптимальном плане загрузки оборудования. ограничений:
Завод при изготовлении двух типов изделий (слябы и заготовка)
использует три типа оборудования (печи, кристаллизаторы, прокатные 28
2 x1  2 x 2  3 x3  20
27
станы) и две технологические схемы — № 1 и № 2. Выпускать каждое 3 x1  x 2  x3  2 x 4  37
из изделий можно как по технологической схеме № 1, так и по x 2  x 3  4 x 4  30
технологической схеме № 2. x1  0; x2  0; x3  0; x 4  0
Необходимые исходные данные по нормам загрузки Оптимальное решение, полученное с помощью надстройки
оборудования в пересчете на единицу продукции при Excel “Поиск решения”, имеет вид: наибольшая прибыль,
различных технологиях и прибыль от реализации единицы равная 137 тыс. у.е., будет достигнута, если:
каждого продукта приведены в табл. 2 (значения условные). - по технологии № 1 будут выпускаться 7 тыс т слябов и 2
Требуется составить оптимальный план загрузки тыс. т заготовки;
оборудования, обеспечивающий заводу максимальную - по технологии № 2 — 0 тыс. т слябов и 7 тыс. т заготовки.
прибыль, т.е. установить, какое из изделий и в каком
количестве следует производить на каждой технологической 1.4.2.. Модели и задачи транспортного типа
линии.
Продукция Транспортные задачи.
Оборудование Слябы Заготовки Фонд Модели оптимального формирования плана перевозок
Технологические схемы времени применяют там, где требуется определить объемы
№1 №2 №1 №2 однородного груза, который необходимо доставить от
Печи 2 2 3 0 20 нескольких поставщиков к различным потребителям.
Кристалли- 3 1 1 2 37 Доставку следует организовать так, чтобы совокупные
заторы транспортные издержки были минимальными.
Станы 0 1 1 4 30 Для построения модели необходима следующая
Прибыль 11 6 9 6 информация:
n - число поставщиков;
Обозначим через: m - число потребителей;
x1 — объем выпуска слябов по технологии № 1; x 2 -объем a i - запасы продукта (груза), имеющиеся у каждого i -
выпуска слябов по технологии № 2; x3 - объем выпуска го поставщика i  1, 2, 3,..., n ;
заготовки по технологии № 1; x 4 - объем выпуска заготовки b j - потребности каждого j - го потребителя
по технологии № 2. j  1, 2, 3,..., m в продукте (грузе);
Тогда при выбранной программе загрузки x1 , x 2 , x3 , x 4 c ij — затраты на транспортировку единицы груза от i -
го поставщика к j -му потребителю.
30
29 Соответственно, транспортные расходы по перевозке
В качестве управляемых переменных (переменных решения) товара с i - гo склада к j -му потребителю также различны
x ij выбирают объемы груза, доставляемого от i -го Стоимость доставки единицы товара (одной тонны) от
поставщика к j -му потребителю. каждого склада к каждому потребителю в условных денежных
В зависимости от того, соблюдается условие баланса единицах (у.е.) известна и представлена далее
(равенства) запасов и заявок или нет, транспортные задачи Слады Потребители
классифицируют следующим образом. П1 П2 П3
Задачи, в которых выполняется условие баланса
(предложение равно спросу): №1 2 5 2
a i  b j
№2 4 1 5
называют замкнутыми, закрытыми или сбалансированными. №3 3 6 8
Если запасы меньше, чем заказы: Требуется составить план перевозок - определить
количество груза xij , которое должно быть вывезено с
a i  bj
каждого i - го склада и доставлено каждому j -му
то такие задачи назьшают задачами с дефицитом.
потребителю. При этом, с одной стороны, необходимо
Их можно привести к стандартной
обеспечить доставку грузов всем потребителям в соответствии
сбалансированной задаче введением дополнительного
с их заявками, а с другой стороны, весь товар должен быть
фиктивного поставщика (склада) с запасом, равным
полностью вывезен со складов. План перевозок требуется
дефициту, и нулевыми стоимостями перевозок.
составить так, чтобы совокупная стоимость транспортных
Если запасы превышают заявки:
издержек была минимальной.
a i  bj
Для формализации задачи (записи в математической
то такие задачи называют задачами с избытком. Они форме) введем следующие обозначения:
приводятся к стандартной сбалансированной задаче введением c ij - удельная стоимость перевозки 1 тонны груза от
фиктивного потребителя с заявкой, равной излишку, и склада № i к потребителю П j :
нулевыми стоимостями перевозок Тогда план перевозок можно представить в виде матрицы
Замкнутая транспортная задача линейного вида
программирования.
. На складах № 1, № 2, № 3 имеются запасы продукции в
количествах 90, 400 и 110 тонн соответственно.
Продукцию необходимо доставить к потребителям П1,
П2, ПЗ, заявки которых составляют 140, 300 и 160 тонн.
Склады и потребители расположены в различных районах
города, поэтому расстояния между каждой парой из них
разные.
 1 12 ccc 13  2 5 2 a1  90  b1  140
      
 21 cc 2 c23 514   a 2    40  ,
b2 30 
 ccc  3 6 8  a  1 0  b  160
 31 32 3     3    3  
xij - количество груза, которое будет вывезено от склада С учетом введенных обозначений задача нахождения
№ i к потребителю П j . оптимального плана перевозок формулируется следующим
образом. Требуется минимизировать суммарные транспортные
31 затраты на перевозку грузов
Тогда план перевозок можно представить в виде матрицы Z  c11 x11  c12 x12  c 13 x13  c 21 x 21  c 22 x 22  c 23 x 23  c31 x31 
вида:  c32 x32  c33 x33
или
 x11 x12 x13  Z  2 x11  5 x12  2 x13  4 x 21  x 22  5 x23  3x31  6 x32  8 x33 (1.4)

  При этом на переменные наложены ограничения,


обусловленные необходимостью вывоза всех запасов товара со
 x21 x22 x23  складов:

x x x 
 31 32 33 
Запасы товара на складах обозначим через ai ,
потребности (заявки) потребителей - через b j тогда:
3) число искомых переменных велико и всегда превышает
x11  x12  x13  a1  90 число уравнений в системе ограничений.
 Так, в данной задаче число искомых переменных равно 9
x21  x22  x23  a2  400 при числе ограничительных уравнений, равном 6. Последнее
обстоятельство обуславливает наличие среди плана перевозок
x  x  x  a  110 (1.5)
части нулевых решений (часть из x * всегда будет равна нулю).
 31 32 33 3 Для решения транспортных задач используют как
стандартные методы линейного программирования (симплекс-
метод), так и специальные вычислительные алгоритмы
Последние более эффективны с вычислительной точки зрения,
x11  x21  x31  b1  140 однако область их применения ограничена только моделями
 типа (1.4) - (1.7) при соблюдении условия (1.1).
x12  x22  x32  b2  300 В данной задаче запасы всех складов в сумме оказались
равными заявкам потребителей (спрос равен предложению):
x  x  x  b  160 (1.6)
90 + 400 + 110 = 140 + 300 + 160 = 600.
 13 23 33 3 Следовательно, это замкнутая (закрытая,
сбалансированная) задача. Решается эта задача в Excel (с
помощью надстройки «Поиск решения»).
Результат решения представлен в матрице
32 33
Очевидно также, что искомые переменные (объемы Потребители
перевозимого груза) должны удовлетворять условиям Склады П1 П2 П3
неотрицательности №1 0 0 90
xij  0 ( i  1, 2, 3...n; j  1, 2, 3...m ) №2 30 300 70
(1.7) №3 110 0 0
Таким образом, получена задача линейного Минимальные транспортные издержки составят 1280 у.е.
программирования: необходимо минимизировать целевую Незамкнутая транспортная задача с избытком.
функцию (1.4) при условии, что на переменные наложены Компания, занимающаяся добычей песка и доставкой его
ограничения (1.5) - (1.7). собственным транспортом к потребителям, разрабатывает 4
Отличие подобных задач, называемых транспортными, от песчаных карьера. Недельная производительность карьеров
стандартных задач линейного программирования заключается 210, 170, 270 и 360 тонн. Песок направляется на три завода
в том, что: железобетонных изделий (ЖБИ). Недельные потребности
1) все ограничения заданы в виде равенств; заводов в песке составляют 300, 290 и 320 тонн. Транспортные
2) все коэффициенты при неизвестных в уравнениях затраты с,, (в условных денежных единицах — у.е.), связанные
системы ограничений равны 1; с доставкой 1 тонны песка от карьеров до заводов, известны и
приведены далее. Спрос 300 290 320 100 1010=1010
Песчаные Заводы ЖБИ Производительность Обозначим через x ij количество песка (в тоннах),
карьеры №1 №2 №3 карьеров которое будет вывезено из карьера i ( i  1, 2, 3..., n ) и
1 9 5 3 210 доставлено на завод j ( j  1, 2, 3..., m ). Тогда искомый план
2 7 6 8 170 перевозок состоит из 16 управляемых переменных.
3 6 7 8 270 Совокупные транспортные издержки на перевозку
4 5 4 7 360 составят:
Спрос 300 290 320 1010>910 Z  9 x11  5 x12  7 x13  0 x14 
Требуется:  7 x 21  6 x 22  8 x 23  0 x 24 
- составить такой план перевозок песка из карьеров на заводы,  6 x31  7 x32  8 x33  0 x34  (1.8 )
при котором совокупные транспортные издержки будут  5 x 41  4 x 42  7 x 43  0 x 4 .
минимальны;
- выяснить, какое количество песка и на каких карьерах Заметим, что введение фиктивного потребителя с
окажется невостребованным; нулевыми стоимостями перевозок никак не влияет на целевую
- установить размер минимальных транспортных издержек. функцию в силу того, что коэффициенты при
x14 , x 24 , x34 , x 44 равны нулю.
Потребности заводов в песке (спрос) составляют 300 +
290 + 320 = = 910 т, в то время как мощности карьеров Ограничения, вытекающие из необходимости
позволяют добывать 210 + 170 + 270 + 360 = 1010 т. удовлетворения потребностей заводов в песке:
Предложение превышает спрос на 100 т. Следовательно, эта
задача незамкнутая. 35
34 x11  x 21  x31  x 41  300
Для приведения ее к стандартному виду (задаче x12  x 22  x32  x 42  290 (1.9)
замкнутого типа) введем дополнительно фиктивного x13  x 23  x33  x 43  320
потребителя, спрос которого будет равен 100 т, а стоимости x14  x 24  x34  x 44  100
перевозок от карьеров до фиктивного потребителя примем Ограничения, связанные с необходимостью полностью
равными нулю, так как реально никаких перевозок по этому задействовать мощности карьеров и вывезти весь имеющийся
маршруту выполняться не будет. В итоге получаем замкнутую запас песка:
задачу, эквивалентную исходной x11  x12  x13  x14  210
Песчаные Заводы ЖБИ Фикт. Предложение
x 21  x 22  x 23  x 24  170 (1.10)
карьеры №1 №2 №3 №4
x31  x32  x33  x34  210
1 9 5 7 0 210 x 41  x 42  x 43  x 44  360
2 7 6 8 0 170 Все переменные неотрицательны:
3 6 7 8 8 270 xij  0 ( i  1, 2, 3...n; j  1, 2, 3...m ). (1.11)
4 5 4 7 7 360 В результате мы получили замкнутую транспортную
задачу линейного программирования: необходимо
минимизировать целевую функцию (1.8) при условии, что на металлолома потребителям — такой, при котором суммарная
переменные наложены ограничения (1.9) - (1.11). стоимость транспортных издержек будет минимальной;
Решение задачи в Excel дало следующие результаты: - выяснить, какое количество металлолома и на какой из
1. Оптимальный план перевозок, при котором будут заводов окажется
обеспечены минимальные транспортные издержки, недопоставленным при оптимальном плане перевозок;
следующий: - установить размер минимальных транспортных
- из карьера № 1 доставляется 210 т на ЖБИ № 3; издержек.
- из карьера № 2 доставляется 110 т на ЖБИ №3 Так как суммарные мощности промплощадок (запасы)
- из карьера № 3 доставляется 230 т на ЖБИ №1 составляют 240 + 40 + 110 = 390 т, а потребности (заявки)
- из карьера № 4 доставляется 70 т на ЖБИ №2 предприятий — 90 -I- 190 + 40 + 130 = 450 т, то задача
2. Невостребованными окажутся 60 т песка на карьере № несбалансированна (незамкнутая задача с дефицитом).
2 и 40 т песка на карьере № 3. Потребности превышают запасы на 60 т. Для приведения
3. Минимальные совокупные транспортные издержки задачи к замкнутой вводим фиктивного поставщика с
при оптимальном плане перевозок составят 5240 у.е. «запасом» 60 т и нулевыми стоимостями перевозок. В итоге
Незамкнутая транспортная задача с дефицитом получаем замкнутую задачу, эквивалентную исходной.
Компания, занимающаяся сбором и переработкой

36 37
металлолома, имеет три промышленные площадки. Их Промплощ. Потребители (заводы) Предложение
мощности таковы, что они могут перерабатывать и поставлять №1 №2 №3 №4
металлургическим предприятиям соответственно 240, 40 и 110 1 7 13 9 8 240
тонн товарного металлолома в месяц. В настоящее время у 2 14 8 7 10 40
компании имеются заявки на следующий месяц от четырех 3 3 15 20 6 110
металлургических предприятий на поставку 90, 190, 40 и 130 4 (фикт) 0 0 0 0 60
тонн соответственно. Стоимости доставки 1 тонны Спрос 90 190 40 130 450=450
металлолома (в у.е.) от промплощадок до металлургических Обозначим через xij количество груза (в тоннах),
заводов известны и приведены далее. перевозимого от i -го поставщика к j -му потребителю. Тогда
Промплощ. Потребители (заводы). Предложение x11 - искомый план перевозок будет содержать 16
№1 №2 №3 №4
неизвестных.
1 7 13 9 8 240
Подсчитаем совокупные транспортные издержки,
2 14 8 7 10 40
необходимые для перевозки всего металлолома от
3 3 15 20 6 110
поставщиков к потребителям:
Z  7 x11  13x12  9 x13  8 x14 
Спрос 90 190 40 130 450>390  14 x 21  8 x 22  7 x 23  10 x 24  (1.12)
Требуется:
 3 x 31  15 x32  20 x 33  6 x34 
- составить оптимальный план перевозок (доставки)
 0 x 41  0 x 42  0 x 43  0 x 44 . недопоставлено 60 т металлолома.
Заметим, что введение фиктивного потребителя с 3. Минимальная стоимость транспортных издержек при
нулевыми стоимостями перевозок никак не влияет на целевую оптимальном плане перевозок составит 3120 у.е.
функцию (1.12) в силу того, что коэффициенты при
x 41 , x 42 , x 43 , x 44 равны нулю. 1.4.3. Модели и задачи распределительного типа
Ограничения, вытекающие из необходимости
удовлетворения спроса заводов в металлоломе: Распределительные задачи, или задачи о назначениях,
x11  x 21  x31  x 41  90 формулируются следующим образом. Необходимо выполнить
n различных работ. Для выполнения работ можно привлечь
x12  x 22  x32  x 42  190 (1.13) n исполнителей. Каждый исполнитель может выполнить
x14  x 24  x34  x 44  130
любую из работ за определенную плату или за определенное
Ограничения, связанные с необходимостью полностью время. На каждую работу назначается только один
вывезти запасы металлолома с промплощадок: исполнитель. Требуется так распределить работы между
исполнителями, чтобы общие денежные затраты или
суммарное время, потраченное на выполнение всех работ,
38 были минимальны.
x11  x12  x13  x14  240 39
x 21  x 22  x 23  x 24  40 (1.14)
x 41  x 42  x 43  x 44  60 Исходной информацией для постановки и решения задач
Все переменные должны быть отрицательными: является таблица с показателями эффективности назначений -
xij  0 c ij . Это могут быть стоимости работ, время их выполнения,
( i  1, 2, 3...n; j  1, 2, 3...m )
(1.15) индексы совместимости и др.
В результате получена замкнутая транспортная задача Исполнители Работа
линейного программирования: необходимо 1 2 … n
минимизировать целевую функцию (1.12) при условии, что на
переменные наложены ограничения (1.13) - (1.15). Результаты 1 c11 c12 … c1n
решения представлены далее. 2 c 21 c 22 … c2n
1. Согласно оптимальному плану: … … … … …
- промплощадка № 1 поставляет 90 т металлолома заводу
№ 2; 40 т — заводу № 3 и 110 т - заводу № 4; n c n1 c2n … c nn
- промплощадка № 2 поставляет 40 т металлолома заводу Решением задачи является набор переменных xij ,
№2; принимающих одно из двух значений:
- промплощадка Ns 3 поставляет 90 т заводу № 1 и 20 т x ij = 1, если i - й исполнитель назначается на j - ю
-заводу № 4.
работу,
2. При оптимальном плане перевозок заводу № 2 будет
x ij = 0, если i -й исполнитель не назначается на j -ю
работу. Задача оптимального распределения бригад по объектам
Переменные такого типа называют двоичными, Ремонтно-строительная фирма получила заказы на
булевыми, бинарными или логическими. ремонт 5 объектов. Для выполнения работ она может привлечь
Исполнители Работа 5 бригад отделочников. Каждая из бригад оценила объемы
1 2 … n работ и дала следующие сроки выполнения заказов (в
1 x11 x12 … x1n человеко-днях).
2 x 21 x 22 … x2n Бригада Объекты
… … … … … 1 2 3 4 5
1 43 24 35 62 35
n x n1 x2n … x nn 2 45 21 38 58 33
3 51 29 36 61 38
4 47 27 35 60 39
В математической записи модель задачи линейного
5 48 26 37 59 39
программирования о назначениях имеет вид:
41
40
n n Требуется:
 cij xij  min - распределить объекты между бригадами так, чтобы
i 1 j 1 суммарное количество человеко-дней, затраченное на ремонт
n
всех 5 объектов, было минимальным;
x
i 1
ij  1, j  1, 2, ..., n. - выяснить, сколько человеко-дней будет затрачено на
n ремонт всех объектов при оптимальном распределении
x ij  1, i  1, 2, ..., n. бригад;
j 1 - установить, какой из объектов следует поручить
xij  0, i  1, 2,..., n; i  1, 2,..., n. бригаде 4
Задача о назначениях является частным случаем Для решения задачи введем в рассмотрение переменные
транспортной задачи линейного программирования. x ij специального вида, каждая из которых будет принимать
Возможность применения «транспортных» алгоритмов для только два значения — 0 или 1, а именно: всякому назначению
решения задач распределительного типа обусловлена тем, что бригады на объект будет соответствовать единица, в
задачи обоих типов близки по структуре целевой функции и противном случае — ноль.
ограничений. В качестве стоимостей перевозок в задачах Тогда искомый план назначений будет содержать 25
распределительного типа выступают показатели значений переменных.
эффективности назначений, а количество поставщиков Формально задача о назначениях совпадает с
совпадает с количеством потребителей. Особенностью транспортной моделью. При этом в качестве стоимостей
является то, что величины спроса и предложения для каждого перевозок cij в ней выступает время (в человеко-днях),
поставщика (исполнителя) и потребителя (работы) равны затрачиваемое на работы, а в качестве объема перевозимого
единице.
груза xij -количество бригад, назначаемых на объект (либо x15  x 25  x35  x 45  x55  1
ноль, либо единица). По аналогии с транспортной моделью Все переменные должны быть отрицательными:
можно считать, что «запас» каждой бригады состоит из xij  0 ( i  1, 2, 3, 4, 5; j  1, 2, 3, 4, 5. ).
количества объектов, которые ей выделяются для работы. (1.19)
Понятно, что такой запас для каждой бригады будет равен Таким образом, исходная задача о назначениях
единице. «Заявкой» для каждого объекта является количество полностью соответствует транспортной модели замкнутого
бригад, его ремонтирующих. Они также равны единице для типа: необходимо минимизировать целевую функцию (1.16)
каждого из объектов. при условии, что на переменные наложены ограничения (1.17)
С учетом особенностей введенных переменных (ноль или - (1.19).
единица) целевую функцию — суммарное количество
человеко-дней, затраченных на ремонт всех объектов, —
можно вычислить по формуле 43

42 В задаче о назначениях, так же как и в замкнутой


Z  43x11  24 x12  35 x13  62 x14  35 x15  (1.16) транспортной модели:
 45 x 21  21x 22  38 x 23  58 x 24  33 x 25  - число поставщиков (бригад) равно числу потребителей
 ..........................................................  (объектов);
- выполнено условие баланса («запас» равен «заявкам»);
 48 x51  26 x52  37 x53  59 x54  39 x55 . - все ограничения записаны в виде равенств;
Ограничения, связанные с тем, что каждая из бригад - коэффициенты при неизвестных в системе ограничений
может ремонтировать только один объект, математически равны единице.
можно записать следующим образом («баланс запасов»): Для решения задач распределительного типа, к числу
x11  x12  x13  x14  x15  1 которых относится и рассматриваемая, целесообразно
x 21  x 22  x 23  x 24  x 25  1 (1.17) использовать транспортные алгоритмы. Поиск решения в
x31  x32  x33  x34  x35  1 Excel автоматически «распознаёт» такие задачи и использует
для решения соответствующие вычислительные алгоритмы,
x 41  x 42  x 43  x 44  x 45  1
которые значительно более эффективны, чем симплекс-метод.
x51  x52  x53  x54  x55  1 Это обстоятельство играет важную роль, особенно для задач
Ограничения, связанные с тем, что за каждым объектом большой размерности.
закрепляется только одна бригада, можно записать следующим Важной особенностью, отличающей распределительные
образом («баланс заявок»): задачи от транспортных, является двоичность искомых
x11  x 21  x31  x 41  x51  1 переменных. Они могут принимать только два значения: ноль
x12  x 22  x32  x 42  x52  1 (1.18) или единица. Однако задавать это условие в виде отдельного
x13  x 23  x33  x 43  x53  1 ограничения не требуется. В теории линейного
x14  x 24  x34  x 44  x54  1 программирования доказано, что в силу особенностей
системы ограничений таких задач, при целочисленности
правых частей ограничений (у нас они равны единице), все Рабочие Операции
искомые переменные xij автоматически будут иметь 1 2 3 4 5 6
двоичную природу, т. е. окажутся равными нулю или единице.
1 23 6 7 12 6 12
1. Оптимальное распределение бригад по объектам 2 8 16 11 6 12 11
показано далее 3 6 9 8 16 23
4 11 18 15 15 12
5 12 17 12 11 7 15
6 4 12 11 8 17

45
44 Обозначим через c ij время (в минутах), которое i -й
Бригада Объект рабочий затрачивает на выполнение j - й операции. Учесть
1 2 3 4 5 невозможность выполнения операций рабочими 3, 4, 6 можно,
придав неразумно большие значения времени выполнения ими
1 1 соответствующих операций, например положив c32 , c 42, c 66
2 1 равными 100. Такой прием заведомо исключает назначение
3 1 рабочих на эти операции ввиду нецелесообразности из-за
4 1 высоких временных затрат.
5 1 Введем в рассмотрение переменные xij каждая из
которых принимает только два значения - 0 или 1, а именно:
2. При оптимальном распределении бригад для Тогда всякому назначению рабочего на операцию будет
ремонта всех объектов потребуется 196 человеко-дней. соответствовать единица, в противном случае — ноль.
3. Бригаде 4 следует поручить объект № 3. Искомое решение задачи о назначениях — это набор из 36
Задача оптимального распределения рабочих по значений для переменных, каждая из которых должна быть
операциям равна либо нулю, либо единице.
Мастер цеха должен назначить на сборку изделия, Подсчитаем суммарное время, которое будет потрачено
требующую выполнения шести различных операций, шесть на выполнение всех работ:
рабочих. В силу разной квалификации рабочие затрачивают на Z  23x11  6 x12  ...  6 x15  12 x16 
выполнение операций различное время. Следует также  8 x 21  16 x 22  ...  12 x 25  11 x 26 
учесть, что рабочие 3 и 4 не умеют выполнять операцию № 2,
а рабочий 6 не может выполнять операцию № 6. (1..20)
 .......................................................... 
Каким образом оптимально распределить рабочих по
 4 x61  12 x62  ...  17 x 65  100 x66
операциям, чтобы суммарное время, затрачиваемое на сборку
изделия, было минимальным? В каждой строке может находиться не более одного
назначения. Поэтому сумма переменных xij для каждой i й
строки также должна быть равна 1:
x11  x12  ...  x15  x16  1 При оптимальном плане назначений суммарное время,
x 21  x 22  ...  x 25  x 26  1 (1.21) которое будет затрачено на сборку (выполнение всех
……………………… операций), составит 44 минуты.
x 61  x 62  ...  x65  x66  1 Таким образом, задачи о назначениях, в которых число
работ не совпадает с числом исполнителей (незамкнутые,
Каждую операцию обязательно нужно выполнить, но
несбалансированные), можно сводить к замкнутым путем
назначать на нее более одного рабочего нельзя.
введения фиктивных работ по аналогии с транспортными
задачами
46
47
Следовательно, каждый столбец будет содержать только
Модели назначений встречаются в управленческих
одну единицу и остальные нули. Поэтому сумма xij для
ситуациях довольно часто. К ним относятся задачи
каждого j -го столбца также должна быть равна 1, распределения продавцов по отделам и ли агентов по объектам
следовательно: и заданиям, назначения консультантов или аудиторов для
x11  x 21  ...  x51  x61  1
обслуживания фирм, распределения компьютеров по сетям,
x12  x 22  ...  x52  x62  1 (1.22) создания совместимых команд исполнителей и т. д.
………………………. Распределительные модели также успешно используются для
x16  x 26  ...  x56  x66  1 . оптимизации маршрутов и расписаний транспортных средств.
Все переменные должны быть неотрицательными.
В итоге исходная задача о назначениях также сведена к 1.4.4. Модели оптимального распределения ресурсов
транспортной модели замкнутого типа: необходимо
минимизировать целевую функцию ( 1.20) при условии, что на Задачи оптимального распределения финансов
переменные наложены ограничения (1.21) - (1.22). встречаются во многих управленческих ситуациях: при
Оптимальное распределение рабочих по операциям разработке инвестиционных проектов, планировании
приведено далее. капиталовложений, формировании инвестиционных
Бригада Объект портфелей и т.д.
1 2 3 4 5 6 В зависимости от конкретной ситуации для их решения
могут быть использованы различные типы моделей линейного
1 1 программирования: классические, транспортные,
2 1 распределительные. Ряд задач, связанных с выбором
3 1 оптимальных вариантов из некоторого числа заранее
4 1 определенных альтернатив, требуют наложения
5 1 дополнительных условий на переменные — целочисленности
6 1 или двоичности. Это приводит к некоторому усложнению
вычислительных алгоритмов и может отразиться на скорости
решения задач, особенно в случае их большой размерности.
Во многих ситуациях введения таких условий можно инвестирования; xi  0 , если i -й проект не выбирается в
избежать. качестве объекта для инвестирования .
Общим для задач оптимального распределения финансов Тогда искомое решение - это совокупность значений
(прежде всего инвестиционного характера) является наличие четырех двоичных переменных  x1 , x 2 , x3 , x 4  , каждая из
многовариантности инвестиций при ограниченных или жестко которых равна либо нулю, либо единице. С учетом введенных
заданных объемах собственных ресурсов.
Задача выбора инвестиционных проектов в условиях 49
ограниченных финансовых ресурсов
48 обозначений, прибыль (целевая функция) при плане
Инвестиционная компания рассматривает в качестве
возможных объектов для инвестирования четыре проекта. инвестирования  x1 , x 2 , x3 , x 4  составит
Проект А может принести прибыль 23 тыс долл., проект Б — z  23 x1  20 x1  19 x3  22 x 4
(1.23)
20 тыс. долл., проект С — 19 тыс. долл., проект Д — 22 тыс. Любое допустимое решение рассматриваемой задачи
долл. Проекты могут быть реализованы в течение одного года (любой план инвестирования) должно удовлетворять
и требуют поквартального финансирования. Возможности финансовым возможностям компании — ограничениям по
компании позволяют ей инвестировать в первом квартале не средствам, доступным в каждом квартале. Эти ограничения
более 30 тыс. долл., во втором — не более 32, в третьем — не определяются следующей системой неравенств:
более 36 и в четвертом — не более 37 тыс. долл. 10,8 x1  9,45 x 2  6,75 x3  12,15 x 4  30
Какие из проектов целесообразно выбрать и какое (1.24)
количество средств потребуется в каждом квартале для того, 1,8 x1  12,5 x 2  9,45 x3  10,8 x 4  32
чтобы получить максимальную прибыль? 13,5 x1  12,5 x 2  12,5 x3  9,45 x 4  36
Представим всю имеющуюся информацию в виде. 13,5 x1  14,85 x 2  14,85 x3  8,1x 4  37
Кроме того, на переменные решения наложены условия:
Проект Потребность в средствах Ожидаемая
x1 , x 2 , x3 , x 4 равны либо 0 , либо 1 .
1 кв. 2 кв 3 кв 4 кв прибыль
(1.25)
А 10,8 10,8 13,5 13,5 23 Таким образом, получаем задачу линейного
Б 9,45 12,15 12,15 14,85 20 программирования, а именно: требуется найти набор
С 6,75 9,45 12,15 14,85 19 переменных  x1 , x 2 , x3 , x 4  , удовлетворяющий ограничениям
Д 12,15 10,8 10,45 8,1 22 (1.24) - (1.25), при котором целевая функция (1.23) обращается
Доступые 30 32 36 37 в максимум.
средства В отличие от ранее рассмотренных задач, относящихся к
Введем в рассмотрение двоичные переменные моделям транспортного либо распределительного типа, где все
x1 , x 2 , x3 , x 4 каждая из которых принимает только два ограничения имели вид равенств с целочисленными правыми
значения — ноль или единица, а именно: частями и выполнялось условие сбалансированности «спроса»
xi  1 , если i -й проект выбирается в качестве объекта для и «предложения», в задачах рассматриваемого типа условие
(1.23) необходимо задавать отдельно. Результаты решения единице.
задачи представлены далее. С учетом введенных обозначений, прибыль (целевая
- Для инвестирования целесообразно выбрать проекты А, функция) при выбранном наборе переменных -
С, D. x1 , x 2 , x3 , ..., x9 , x10 вычисляется по формуле
- При таком выборе будет достигнута максимальная z  10,9 x1  9,7 x1  10,3 x3  10,6 x 4  10,8 x5  9,7 x 6  10,8 x 7 
прибыль в размере 64 тыс. долл. 10,5 x8  10,8 x9  9,8 x10
Для финансирования проектов потребуется: в первом
51
50
Ограничения по доступным ресурсам:
квартале - 29 700 долл., во втором - 31 050 долл., в третьем -
35 x1  43x 2  35 x3  ...  31x8  29 x9  48x10  215,
35 100 долл., в четвертом - 36 450 долл.
Задача оптимального выбора объектов для 5 x1  3x 2  2 x3  ...  4 x8  7 x9  4 x10  21
инвестирования 2 x1  4 x 2  3x3  ...  3 x8  4 x9  5 x10  17
Строительно-инвестиционная компания рассматривает 7 x1  5 x 2  9 x3  ...  2 x8  4 x9  5 x10  17
варианты приобретения 10 объектов коммерческой Ограничения, наложенные на переменные:
недвижимости с целью их реконструкции и последующей x1 , x 2 , x3 , ..., x9 , x10 - двоичные (принимают значение 0 или
эксплуатации либо продажи. Каждый из объектов 1).
характеризуется четырьмя агрегированными показателями Исходные данные представлены далее.
требуемых затрат: труд, техника, материалы, финансы
(«деньги»), а также ожидаемой прибылью (в млн рублей), Объект Потребность в ресурсах Прибыль
получаемой в случае реализации проекта. Требуется
установить: Труд Техника Материалы Деньги
1. Какие из объектов выбрать для достижения 1 35 5 2 7 10,9
максимальной прибыли при условии использования только 2 43 3 4 5 9.7
собственных ресурсов? 3 35 2 3 9 10,3
2. Как изменится выбор, если наложить дополнительные 4 37 7 7 6 10,6
ограничения: 5 74 3 4 4 10,8
- из двух объектов (№7 и № 8) может быть приобретен 6 75 4 5 3 9,7
только один (одновременное приобретение и того и другого 7 39 5 2 7 10,8
невозможно); 8 31 4 3 2 10,5
- объект № 1 может быть приобретен только в случае 9 29 7 4 4 10,8
приобретения объекта № 2. 10 48 4 5 5 9.8
Введем в рассмотрение переменные Запасы 215 21 17 30
x1 , x 2 , x3 , ..., x9 , x10 равны либо 0 , либо 1 . ресурсов
Искомым решением будет набор значений для десяти Получаем задачу линейного программирования, а
переменных, каждая из которых равна либо нулю, либо именно: требуется найти набор значений для
x1 , x 2 , x3 , ..., x9 , x10 , удовлетворяющий ограничениям (9.5) - 3. Не менее 25% средств, инвестированных в акции,
(9.6), при котором целевая функция (9.4) обращается в должны быть инвестированы в акции с низким риском.
максимум. 4. В паевые инвестиционные фонды следует вложить по
Двоичный характер переменных позволяет учесть и крайней мере столько же, сколько и в акции.
дополнительные ограничения, например, следующим образом: 5. В ценные бумаги с доходом менее 10% следует
- одновременное приобретение объектов № 7 и № 8 инвестировать не более 200 тыс. руб.
невозможно:
52 53
x 7  x8  1 (9.7) № Инвестиции Оценка риска Предполагаемый
- объект № 1 может быть приобретен только в том случае, доход
если приобретен объект № 2: 1 Акции А высокий 14
x1  x 2  0 (9.8) 2 Акции Б средний 12
3 Акции В низкий 8
Результаты решения задачи в Excel
4 ПИФ № 1 11
Оптимальным с точки зрения достижения максимальной
5 ПИФ № 2 9
прибыли является выбор объектов №№ 1, 3, 5, 7, 8. При этом
6 Срочный вклад 6
прибыль составит 53,3 млн руб.
В случае если одновременное приобретение объектов №
Небходимо:
7 и № 8 невозможно, а объект № 1 имеет смысл приобретать
1. сформировать инвестиционный портфель,
только совместно с объектом № 2, оптимальным является
удовлетворяющий всем требованиям инвестора и
выбор объектов №№ 1, 2, 3, 8, 9. В этом случае размер
максимизирующий годовой доход;
прибыли составит 52,2 млн руб.
2. определить величину максимального годового дохода
при оптимальной стратегии инвестирования.
Оптимизация инвестиционного портфеля
Обозначим через x1 , x 2 , x3 , x 4 , x5 , x 6 суммы,
Инвестор предполагает вложить 750 тыс. руб. в
различные ценные бумаги. Изучив фондовый рынок, он инвестируемые в соответствующие финансовые инструменты
отобрал для инвестирования 3 типа акций, паи двух паевых (акции А, акции Б , с р о ч н ы й вклад в банке).
инвестиционных фондов (ПИФ), а часть денег решил Тогда целевую функцию - годовой доход инвестора при
поместить в банк на срочный вклад. выбранном портфеле x1 , x 2 , x3 , x 4 , x5 , x6
Проконсультировавшись со специалистами фондового можно подсчитать по формуле:
рынка, инвестор сформулировал следующие требования и z  0,14 x1  0,12 x1  0,08 x3  0,11x 4  0,9 x5  0,06 x 6
ограничения к своему портфелю ценных бумаг. (1.26)
1. Вся сумма в размере 750 тыс. руб. должна быть Наложенные инвестором ограничения с учетом
инвестирована. введенных обозначений можно записать в виде:
2. Не менее 300 тыс. руб. должно находиться в банке на x1  x 2  x3  x 4  x6  x6  750 (1.27)
срочном вкладе. x 6  300 (1.28)
x3  0,25( x1  x 2  x3 ) (1.29)
x 4  x5  x1  x 2  x3 (1.30)
x3  x6  200 (1.31)
Переменные решения неотрицательны:
xi  0 (i  1, 2,..., 6).
(1.32)
55
54
Таким образом, задача сведена к классической задаче 2. МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
линейного программирования, а именно: требуется найти
такой набор значений переменных x1 , x 2 , x3 , x 4 , x5 , x6 , 2.1.Классификация методов нелинейного программирования
который удовлетворяет ограничениям (1.27) - (1.32) и
обращает целевую функцию (1.26) в максимум. 1. Классификация по некоторым аспектам постановки
Для удобства преобразуем ограничения к виду: задачи
x3  0,25( x1  x 2  x3 )  x3  0,25( x1  x 2  x3 )  0 1.1. Характер целевой функции (с ограничениями, без
x 4  x5  x1  x 2  x3  x 4  x5  ( x1  x 2  x3 )  0
ограничений)
(а) Без ограничений
Оптимальный инвестиционный портфель должен (б) Ограничения в виде равенств
содержать: (в) Ограничения в виде неравенств
- акций А на сумму 168 750 руб., (г) Ограничения как в виде равенств, так и в виде
- акций В на сумму 56 250 руб., неравенств
- паев ПИФа № 1 на сумму 225 000 руб., 1.2. Дискретные (целочисленные) переменные;
на срочном вкладе в банке следует разместить 300 000 руб. переменные, принимающие не-
В этом случае оптимальный размер годового дохода непрерывные значения
составит 70 880 руб. 1.3. Выпуклое, квадратичное, сепарабельное
программирование
2. Классификация по характерным чертам методов
решения
2.1. Методы, использующие производные; методы, не
использующие производные (поиск)
2.2. Аналитическое определение производных;
численное определение производных
2.3. Методы, использующие первые производные;
методы, использующие вторые производные
2.4. Градиентные методы; методы, ие использующие
градиент одномерной оптимизации для обнаружения минимума
2.5. Градиентный метод с малым шагом; градиентный функции одной переменной.
метод с большим шагом Методы одномерной минимизации можно подразделить
2.6. Одновременная итерация по всем переменным в на следующие:
процессе поиска; релаксация (последовательный поиск - методы исключения интервалов;
каждый раз по одной переменной) - полиномиальная аппроксимация и методы точечного
2.7. Методы внутренней точки; методы внешней точки оценивания;

56 57
2.8. Детерминированный поиск; случайный поиск - методы с использованием производных.
2.9. Начальный вектор находится в допустимой илн в Все методы одномерного поиска основаны на
недопустимой области предположении, что данная функция в допустимой области
обладает свойством унимодальности. Полезность этого
2.2.. Нелинейное программирование без ограничений свойства состоит в том, что для унимодальной функции
f (x ) сравнение значений f (x ) в двух различных точках
Постановка задачи: интервала поиска позволяет определить, в каком из заданных
Минимизировать f ( x), x  E n подинтервалов точка минимума отсутствует.
Для задачи нелинейного программирования при Алгоритмы одномерного поиска включают в себя этап
отсутствии ограничений необходимыми условиями того, что установления границ интервала и этап уменьшения границ
x * — точка локального минимума задачи B.5.1), являются: интервала.
- функция f (x ) (х) дифференцируема в точке x * ; Методы исключения интервалов
- f ( x * )  0 , т. е. существует стационарная точка в x * В этом разделе рассмотрим два метода: метод
. половинного деления и метод золотого сечения.
Достаточные условия того, что x * - точка локального Метод половинного деления. Рассматриваемый метод
минимума задачи B.5.1), кроме приведенных выше условий, позволяет исключить в точности половину интервала на
включают следующее: каждой итерации. Алгоритм метода поиска минимума
- 2 f ( x * )  0 , т. е. матрица Гессе положительно функции f (x ) на интервале ( a, b) состоит из следующих
определенная. (Соответствующие условия для максимума те шагов:
же самые, за исключением того, что матрица Гессе для f ( x * ) Шаг 1. Положить x m  (a  b) / 2 и L  b - a . Вычислить
отрицательно определенная). f ( xm ) .
Шаг 2. Положить x1  a  L / 4 и x 2  b - L / 4 . Точки
2.2. Эффективные методы одномерного поиска x1 , x m , x 2 делят интервал на четыре равные части.
Вычислить значения f ( x1 ) и f ( x m ) .
Многие из алгоритмов, которые будут описаны ниже,
Шаг 3. Сравнить f ( x1 ) и f ( x m ) .
[4,5] основаны на использовании эффективных методов
(1) Если f ( x1 ) < f ( x m ) , исключить интервал ( x m , b ),
положив b  x m . Средней точкой нового интервала становится том факте, что функция, принимающая минимальное значение
точка x m , Поэтому необходимо положить x m  x1 . во внутренней точке интервала должна быть по крайней мере
Перейти к шагу 5. квадратичной.
(2) Если f ( x1 )  f ( x m ) , перейти к шагу 4.
59
Алгоритм метода, основанный на квадратичной
58
аппроксимации (метод Пауэлла)
Шаг 4. Сравнить f ( x 2 ) и f ( x m ) . Если f ( x 2 ) < f ( x m ) ,
Пусть x1 - начальная точка, x - выбранная величина
исключит интервал ( a, x m ), положив a  x m . Так как средней шага по оси x
точкой нового интервала становится точка x 2 , положить Шаг 1. Вычислить x 2  x1  x .
xm  x2 .
Шаг 2. Вычислить f ( x1 ) и f ( x 2 ) .
Перейти к шагу 5. Если f ( x 2 )  f ( x m ) , исключить Шаг 3. Если f ( x1 )  f ( x 2 ) , положить x3  x1  2x .
интервалы ( a, x1 ) и ( x 2 , b) . Положить a  x1 и b  x 2 . Точка Если f ( x1 )  f ( x 2 ) , положить x3  x1  x
x m продолжает оставаться средней точкой нового интервала.
Шаг 4. Вычислить f ( x3 ) и найти
Перейти к шагу 5. Fmin  min f 1 , f 2 , f 3  ,
Шаг 5. Вычислить L  b  a . Если L мала, закончить
поиск. В противном случае вернуться к шагу 2. X min = точка x i , которая соответствует Fmin .
Шаг 5. По трем точкам  x1 , x 2 , x3  вычислить x ,
Полиномиальная аппроксимация и методы точечного используя формулы:
оценивания a1  ( f 2  f1 ) /( x 2  x1 ) ;
Методы этого типа позволяют учесть относительные
1  f 3  f1 f 2  f1 
изменения значений функции и как следствие в ряде случаев a2    .
оказываются более эффективными, чем методы исключения x3  x1  x3  x1 x 2  x1 
интервалов. Однако выигрыш в эффективности достигается Шаг 6. Проверка на окончание поиска.
путем введения дополнительного требования, согласно (а) Является ли разность Fmun  f ( x) достаточно малой?
которому исследуемые функции должны быть достаточно (б) Является ли разность X mun  x достаточно малой?
гладкими. Если оба эти условия выполняются, то закончить поиск, в
Основная идея метода состоит в аппроксимации гладкой противном \случае перейти к шагу 7.
функции полиномом и использовании этого Шаг 7. Выбрать наилучшую точку ( x min или x ) и две
аппроксимирующего полинома для оценивая координат точки точки по обе стороны от нее, обозначить их в естественном
минимума. Необходимыми условиями эффективной порядке и перейти к шагу 4.
реализации такого подхода являются унимодальность и
непрерывность исследуемой функции. Методы с использованием производных
Простейшим вариантом полиномиальной аппроксимации Все рассмотренные раннее методы поиска основаны на
является квадратичная аппроксимация, которая основана на предположении об унимодальности, а в ряде случаев о
непрерывности целевой функции. Целесообразно значений k  0, 1, 2, ... .

60
предположить, что если в дополнение к условию 61
непрерывности ввести требование дифференцируемости Если f ( x 0 )  0, вычислить x k 1  x k  2 k  для
функции, то эффективность поисковых процедур можно значений k  0, 1, 2, ...
существенно повысить. Шаг 2. Вычислить значения f (x ) в точках x k 1 для
Рассмотрим алгоритм одномерной минимизации с
значений k  0, 1, 2, ... вплоть до точки x M , в которой
использованием кубической аппроксимации. Подлежащая
минимизации функция аппроксимируется полиномом третьей f ( x M 1 ) f ( x M )  0 . Затем положить x1  x M 1 , x 2  x M .
степени. Вычислить значения f1, f 2 , f1, f 2 .
Формула, определяющая стационарную точку Шаг 3. Найти стационарную точку x
аппроксимирующего кубического полинома имеет вид: аппроксимирующего кубического полинома.
 x2 , если   0  Шаг 4. Если f ( x)  f ( x1 ), перейти к шагу 5. В
  противном случае вычислять x по формуле
x   x 2 -  (x 2 - x1 ), если 0    1 ,
x  x  1 / 2( x  x1 ) до тех пор, пока не будет выполняться
 x, если   1 
 1 равенство f ( x)  f ( x1 ) .
где Шаг 5. Проверка на окончание поиска.
f 2  w  z Если f ( x)   1 и ( x  x ) / x   поиск закончить.

1 2

, В противном случае положить либо


f 2  f1  2 w
(а) x 2  x1 и x1  x , если f ( x) f ( x1 )  0 ,
 3( f  f ) 
z   1 2   f1  f 2 , либо (б) x1  x , если f ( x) f ( x 2 )  0 .
 x 2  x1 
Затем перейти к шагу 3.

( z 2  f1f 2)1 / 2 , если x 1  x2 ,  2.3.. Методы оптимизации без ограничений, использующие
w 2 . производные
 ( z  f1f 2)1 / 2 , если x1  x2 
Постановка задачи: Минимизировать f ( x), x  E n
Алгоритм метода кубической аппроксимации. Для задачи нелинейного программирования при
Пусть заданы начальная точка x 0 , положительная отсутствии ограничений необходимыми условиями того, что
величина шага  и параметры сходимости  1 ,  2 . x * — точка локального минимума задачи B.5.1), являются:
- функция f (x ) , (х) дифференцируема в точке x * ;
Шаг 1. Вычислить f ( x0 ) .
- f ( x * )  0 , т. е. существует стационарная точка в x *
Если f ( x0 )  0, вычислить x k 1  x k  2  для
k
.
63
62 x ( k 1)
x (k )
 x (k )
x (k )
 (k )
s
(k )
 x ( k )  *(k ) s ( k ) =
Достаточные условия того, что x * - точка локального где
минимума задачи B.5.1), кроме приведенных выше условий, x ( k ) вектор перехода из точки x (k ) в точку x ( k 1) ;
включают следующее: s
(k )
- единичный вектор в направлении x (k ) ;
- 2 f ( x * )  0 , т. е. матрица Гессе положительно
s ( k ) - любой вектор в направлении x ( k ) ;
определенная. (Соответствующие условия для максимума те ( k ) , *( k ) — скаляры, определяемые соотношениями
же самые, за исключением того, что матрица Гессе для f ( x * ) (k )
x ( k )  ( k ) s  *( k ) s ( k )
отрицательно определенная)
Общая задача нелинейного программирования без
ограничений сводится к следующей: 2.3.1. Метод наискорейшего спуска
Минимизировать f ( x), x  E n
Градиент целевой функции f (x ) в любой точке х есть
Для задачи нелинейного программирования при
вектор в направлении наибольшего локального увеличения
отсутствии ограничений необходимыми условиями того, что f (x ) . Следовательно, нужно двигаться в направлении,
x * — точка локального минимума задачи B.5.1), являются:
противоположном градиенту f (x ) , т. е. в направлении
наискорейшего спуска, поскольку отрицательный градиент
- функция f (x ) (х) дифференцируема в точке x * ;
f (x ) в точке x ( k ) направлен в сторону наибольшего
- f ( x * )  0 , т. е. существует стационарная точка в уменьшения f (x ) по всем компонентам х и ортогонален
x* линии уровня f (x ) в точке x ( k ) . Введение направления,
. противоположного нормированному (единичному) градиенту
Достаточные условия того, что x * - точка локального f (x ) , т. е. направления наискорейшего спуска,
(k )
минимума задачи B.5.1), кроме приведенных выше условий, определяемого в точке x по формуле:
включают следующее:
-  2 f ( x * )  0 , т. е. матрица Гессе положительно s
(k )

f ( x ( k ) )
определенная. f ( x ( k ) )
,
Соответствующие условия для максимума те же самые, дает следующую формулу перехода из x (k ) в точку x ( k 1) :
за исключением того, что матрица Гессе для f ( x * )
f ( x ( k ) )
отрицательно определенная x ( k 1)  x ( k )   x ( k )  * ( k )  f ( x ( k ) ) (3.1.3)
Градиентные методы оптимизации без ограничений в f ( x ( k ) )
вычислительном аспекте используют только первые Отрицательный градиент дает только направление
производные целевой функции. На k - ом этапе переход из оптимизации, но не величину шага.
точки x (k ) в точку x ( k 1) описывается следующим
соотношением: 64
При выборе размера шага применяются два общих
метода, хотя могли бы быть рассмотрены и многие другие начальное значение которой равно единице. На каждом этапе
возможности. В первом методе при переходе из точки x (k ) в нам понадобятся значения следующих функций:
точку x ( k 1) целевая функция минимизируется по  , в f ( x ( k ) f ( x ( k )
 2 x1( k ) ,  50 x 2( k )
другом методе величина  выбирается фиксированной или x1 x 2
меняется от шага к шагу. 2 2
Рассмотрим сначала случай, когда  выбирается так,  f ( x ( k )
  f ( x ( k ) 
f ( x (k )
)      
чтобы минимизировать f (x ) в заданном направлении. При  x1   x 2 
определении точки x ( k 1) на основе формулы (3.1.3) f (x ) Начиная с точки x ( 0)   2,2 , поиск минимума
может быть формально минимизирована путем вычисления  осуществляем следующими этапами:
из уравнения:
(k )
df ( x ( k )   s ) f ( x ( k ) ) f ( x ( k ) )
0 № x1 x2 f ( x ( k ) x1
d x1 x 2
В качестве конкретного примера предположим, что f (x ) x 2
— квадратичная функция. Тогда
(k ) ______________________________________________________
df ( x ( k )   s ) (k ) (k ) (k )
0 2 2 4 100 100 -0,04
 0   f (x
t (k )
)s  (s ) H s
T
,
d -1,00
что дает следующее выражение для (k ) 1 1,96 1,00 3,92 50 50,1 -0,078 -1.00
2 1,88 0 3,76 0 3,76 -1 0
 t f ( x (k ) )s
(k )
3 0,88 0
 (k )
 (k )
(s ) t Hs ( k )
Для того чтобы метод сходился,  обычно нужно
:
уменьшать, иначе при подходе к минимуму возникнут
Функцию f (x) можно минимизировать также с
колебания («назад-вперед»). Заметим, что в точке минимума
помощью одного из методов одномерного численного поиска,
x   0,0
T
изложенных в разд. 2.2.
Интересной чертой процедуры минимизации в случае f ( x ( k ) )  0 .
квадратичной целевой функции является то, что f ( x ( k 1) ) Ниже приводятся результаты трех соответствующих
ортогонален s ( k ) . этапов вычисления, в которых вместо использования
Применение метода наискорейшего спуска покажем на фиксированного  ищется минимум f (x ) в направлении
примере. наискорейшего спуска:
65 66
Рассмотрим задачу f ( x ( k ) ) f ( x ( k ) )
№ x1 x2 (k )
минимизировать f ( x)  x12  25 x 22 x1 x 2
Возьмем сначала фиксированную длину шага  , f ( x (k ) )
______________________________________________________ определены. Если f (x ) - квадратичная функция, то для
0 2 2 4 100 - 104 достижения минимума f (x ) достаточно только одного шага.
1 1,92 -0,003 3,84 -0,15 2,003 3,19 Но в случае общей нелинейной целевой функции минимума
2 0,070 0,070 0,14 3,50 1,850 0,13 f (x ) нельзя достичь за один шаг, поэтому уравнение путем
3 0,070 -0,000 - - 0,070 - введения специального параметра длины шага  обычно
приводят к виду
2.3.2. Метод вторых производных (метод Нъютона)
x ( k 1)  x ( k )  ( k )
 2
f ( x (k )  f ( x ) 
1 (k )

Направление поиска, соответствующее наискорейшему  2


f ( x (k )  f ( x ) 
1 (k )

спуску, можно интерпретировать как следствие линейной


аппроксимации целевой функции. С другой стороны, методы Проиллюстрируем метод Ньютона на примере
вторых производных, среди которых лучше всего известен минимизации функции Розенброка:
метод Ньютона, возникли из квадратичной аппроксимации
f (x ) . Они используют информацию второго порядка,
f ( x)  100( x 2  x12 ) 2  (1  x1 ) 2 ,
содержащуюся во вторых частных производных целевой
начиная из точки x    0,5 0,5 T
функции f (x ) по независимым переменным.
Kвадратичная аппроксимация функции f (x ) через

(40 x 120 x 2) (40 x1) 102 20 


переменные x ( k )  x  x ( k ) представляется cледующим
образом:
f ( x ( k 1) )  f ( x ( k ) )   T f ( x ( k ) )x ( k ) 
1
2
 x ( k )   2 f ( x ( k ) )x k
T 2
 f (x      
2 (k ) 2 1
Минимум функции f (x ) в направлении x (k ) определяется
дифференцированием f (x ) по каждой из компонент x и
приравниванием нулю полученных выражений.

( 40 x1) 20 xk 20 20 


Откуда следует
 1

x ( k )    2 f ( x ( k ) f ( x ( k ) ) ,

где  2 f ( x 
( k ) 1
- матрица, обратная матрице Гессе.

67

Переход из точки x (k ) точку x ( k 1) по методу Ньютона


определяется формулой
  1
x ( k 1)  x ( k )   2 f ( x ( k ) f ( x ( k ) )
Заметим, что здесь и направление и величина шага точно
 (k) 0,5 0,3 0,53
 1 1 1 
x  f(x f x )(     ,
(k ) 2 ( k ) ( k )  4 7  
981 0,5150 0,2 
0,53 
x         
0,5 0,2 0,28
68
В точке x ( k 1)
   0,53, 0,28 значение f (x ) равно 2,33.

Критерий, гарантирующий сходимость метода Ньютона в


предположении, что функция f (x ) дважды
дифференцируема, заключается в том, что матрица, обратная
матрице Гессе целевой функции, должна быть положительно
1
определенной, то есть,  f ( x )  H ( x )  0 .2 (k ) 1 (k )

Основным недостатком метода Ньютона (кроме


трудностей, связанных с определением аналитических
производных) является то, что улучшение значения целевой
функции с каждым циклом гарантируется только в том случае,
если матрица Гессе целевой функции H   2 f ( x ( k ) )
положительно определена. H(x) является положительно
определенной для строго выпуклых функций, поэтому в Предполагается, если это не оговаривается особо, что
случае функций более общего вида метод Ньютона может целевая функция квадратична и имеет вид
привести к направлениям поиска, расходящимся от точки 1 T
f ( x)  a  b T x  x Hx , где H - положительно определенная
минимума f (x ) . 2
Метод Ньютона имеет очевидное преимущество, матрица.
заключающееся в квадратичной сходимости в окрестности Сопряженность
минимума целевой функции (если H( x ( k ) )  0 и целевую Предположим, что процесс минимизации f (x ) начинается в
( 0)
функцию можно достаточно хорошо аппроксимировать x ( 0 ) с начальным направлением s , выбранным
квадратичной функцией), т. е. как раз там, где произвольно или по какому-либо определенному правилу.
особенно проявляются слабые стороны методов Для удобства возьмем его в виде единичного вектора, т. е.
наискорейшего спуска. Наоборот, в области, далекой от  
s
( 0) T
s ( 0 )  1 . Тогда вектор
минимума, методы наискорейшего спуска могут оказаться (0)
x (1)  x ( 0 )  ( 0 ) s ,
лучше. Отсюда можно сделать вывод, что подходящая
где длина шага ( 0 ) определяется из условия минимума
комбинация метода наискорейшего спуска и метода Ньютона
f ( x ( 0 )  ( 0 ) s ) по  :
( 0)
должна оказаться эффективнее каждого из них в отдельности.
( 0)
Поэтому целесообразно использовать комбинированные df ( x ( 0 )   s ) (0) (0) ( 0)
 0   t f ( x ( 0) ) s  (s ) T H s
процедуры. d

70
69 Таким образом,
(0)
 t f ( x (0) )s
2.3.3. Сопряженность и сопряженные направления ( 0 )   (0)
(s ) t Hs ( 0 )

Как будет видно ниже, квадратичная целевая функция n После того как по формулам C,1.1) и C.2.2) вычислен
независимых переменных, имеющая минимум, может быть x , для продолжения процесса минимизации f (x ) должно
(1)

минимизирована за n шагов (или менее), если шаги быть выбрано новое направление. Это новое направление s (1)
предпринимаются в так называемых сопряженных называется сопряженным к старому направлению s ( 0 ) , если
направлениях. Хотя используемые в реальных задачах схемы (s
(1)
) T H s
(0)
0
оптимизации, оказывающиеся эффективными для В общем случае система n линейно независимых
квадратичных целевых функций, иногда могут плохо работать направлений поиска s ( 0 ) , s (1) , ..., s ( n 1) называется
(и в общем случае основанный на этом подход не даст сопряженной по отношению к некоторой положительно
сопряженных направлений поиска) при более сложных определенной (квадратной) матрице Q , если
целевых функциях, тем не менее этот подход представляется
( s (i ) ) T Qs ( j )  0, 0  i  j  n 1 .
вполне разумным. Прежде чем описывать какие-либо
алгоритмы, следует сначала определить и проиллюстрировать Предполагаем, что Q — невырожденная матрица.).
свойство сопряженности. Примером Q может служить матрица Гессе целевой функции
H.
В качестве примера выбора и построения сопряженных

x s4 s


((1) 0 0) (0)
направлений рассмотрим следующую задачу: минимизировать
f ( x )  x12  x 22  4 , начиная из точки x   4 4 T . Поскольку
f (x ) с самого начала представляет собой квадратичное
выражение, нет необходимости ее аппроксимировать.
Потребуются следующие матрицы и векторы:

k
x  x  2x1 
11 (0) (0)1
(1) 0(0) (0).
k 1 1
( x  x )   k  f ( x )   
,

x2  x2  2x2 
2  2 0
H ( x)   f ( x)   

x2 s24 s2


.

0 2

 
71

Вектор x (1) вычисляется по формуле x (1)  x ( 0 )  ( 0 ) s ( 0 ) .


В качестве s ( 0 ) можно выбрать любое направление, например
направление градиента, но в иллюстративных целях выберем
произвольное направление 1 
1  2 
(0)  2 
s    88  
 3
 2 
 3
(0)  2 
 
  5,46
Заметим, что
(0) (0)
(s )T s  1, .

1 
так как

1 
(0)1 3  2  1 3 02 2 
s     1    
2 2   3
2 2  20  3
 2 
Длина шага ( 0 ) вычисляется по формуле C.3.2):  2 
72
Тогда
 ,2 73
( )0 ( )0 (1) 1,27 
 3 
 s   , x   s 1(1)  3 s (21)  0 
 (1)  , так что s  1 
(1)

 ,4 74  0,74  
(1) 2
( s 1 )  ( s 2 )  1
2

2 
Следующее направление минимизации s (1) выбирается
сопряженным к s ( 0 ) , используя уравнение C.3.3) при Q  H : Затем из уравнения, аналогичного C.3.2, вычисляется
длина шага (1) :

1 

(1) (1) 2 02 
s1 s 2      0
0 2 3
 2 
Необходимо еще одно добавочное уравнение
(1) T (1)
(нормировки) ( s ) s  1,
Из этих уравнений имеем:
 3 
  3 
2,54 1,48 
2 ( 2)  
1 
x1  1,27  2
   (2) 1,47 0
  1,47
(0)  2 
 3 
,
x2  0,74 1 
  3 1  2 0  2  2 
     В этом конкретном случае целевая функция сферическая;

 2 2  0 2  1 
таким образом, направления поиска не только сопряжены, но и
ортогональны.
Таким образом, изложенный выше пример

 2  иллюстрирует общее правило, заключающееся в том, что если


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

2.3.4. Методы переменной метрики


-Флетчера – Пауэлла на примере.
Существует класс методов, называемых методами Минимизировать 4( x1  5) 2  ( x 2  6) 2 при x ( 0)   8, 9 и
переменной метрики квазиньютоновскими или градиентными  ( 0)  I .
с большим шагом, которые аппроксимируют матрицу Гессе В соответствии с алгоритмом используем следующее
или обратную к ней, но используют для этого только первые рекуррентное соотношение:
производные. В большинстве этих методов применяются

8(x1  5) 
сопряженные направления, хотя в некоторых это не делается.

f (x )   
(k )
Метод Давидона-Флетчера-Пауэлла
x ( k 1)  x ( k )  *( k ) ( k ) f ( x ( k ) ) , где .

 (2 x2  )6 
Матрица направлений перевычисляется таким образом,
чтобы для квадратичной целевой функции в пределе после n
шагов она равнялась H 1 . Исходная матрица обычно
выбирается в виде единичной матрицы  ( 0 )  I (но может
быть и любой симметрической положительно определенной Новый вектор вычислим по формуле
матрицей), так что исходное направление минимизации - это x ( k 1)
x (k )
  f ( x ) .
*( k ) (k ) (k )

направление наискорейшего спуска.


74
В ходе оптимизации имеет место постепенный переход
от градиентного направления к ньютоновскому; при этом
используются преимущества каждого из этих двух методов на
соответствующем этапе.
Доказательство сходимости данного алгоритма может
быть приведено только для случая квадратичной целевой
функции с положительно определенной матрицей Гессе.
Формула для метода Дэвидона – Флетчера-Пауэлла
имеет вид:
(x ( k ) )(x ( k ) ) T
 ( k 1)   ( k )  A ( k )  B ( k )   ( k )  
(x ( k ) ) T (g ( k ) )
,
 ( k ) (g ( k ) )( g ( k ) ) T ( ( k ) ) T
(g ( k ) ) T  ( k ) g ( k ) )
где
( k 1)
x ( k )  x ( k 1)  x ( k ) , g  f ( x )  f ( x ( k ) )
(k )

Проиллюстрируем применение алгоритма Дэвидона


df ( x (1) )
 51  3908  0 , откуда *( 0 )  0,1307 , тогда на

x8 *(0)1024
d *

(1)
первом шаге x (1)   4,862 8,215 , а f ( x)  4,985 .
В точке x (1) f ( x (1)    1,108 4,431 T . Тогда
 g     25,108  1,569 .
( 0) T

Затем по формуле (5) вычисляем  (1) . Матрица,


аппроксимирующая матрице Гессе, будет такой:

(2) _ 
 ,1 270 10  ,3149 10 
1 2

.    2 
(1)
.

 ,3149 10 ,1 0038 

x 9 016
Далее процесс повторяется, пока не будут выполнены условия
окончания.

2.4. Нелинейное программирование с ограничениями в виде


равенств и неравенств

Постановка задачи:
Минимизировать f ( x), x  E n
при ограничениях
h j ( x )  0, j  1, 2, ..., n
g j ( x)  0, j  m  1,..., p
Для поиска *(0 ) , ввиду простоты функции
воспользуемся аналитическим методом. В области нелинейного программирования с
ограничениями методы решения менее разработаны по
75 сравнению с областью нелинейного программирования,
Для функции f ( x (1) )  4[8  24* )  5] 2  [(9  6* )  6] 2 охватывающего круг задач, в которых ограничения
отсутствуют [6,7). При решении задач нелинейного
находим производную по * и приравниваем ее нулю.
программирования с ограничениями встречаются гораздо
большие трудности, чем при решении сопоставимых (т. е.
77
76
обладающих приблизительно такой же размерностью и такой 2.4.1. Методы внутренней точки для решения задач
же «степенью» нелинейности) задач безусловной оптимизации оптимизации с ограничениями
по той причине, что искомое решение должно подчиняться
дополнительному требованию, а именно удовлетворять Суть методов решения задач оптимизации с
фигурирующим в задаче ограничивающим условиям. ограничениями состоит в переходе от условно-экстремальной
Вычислительные процедуры решения задачи нелинейного задачи (поиска минимума при наличии ограничений) к задаче
программирования, содержащей ограничения, в большинстве безусловной минимизации некоторой специально
своем опираются на один из следующих подходов: построенной вспомогательной функции. Рассмотрим задачи с
- Распространение аппарата линейного ограничениями только типа неравенств, т. е. требуется
программирования на условия нелинейного минимизировать f (x )
программирования путем использования процедуры при ограничениях
последовательной (повторяемой определенное число раз) g i ( x )  0, i  1, 2, ..., m
линейной аппроксимации. Кроме того, предполагается (временно), что вблизи
- Преобразование задачи нелинейного программирования локального минимума x * существует окрестность, в которой
с ограничениями в эквивалентную ей последовательность все ограничения обращаются в строгие неравенства, т. е.
задач безусловной оптимизации путем введения в найдется такая точка x ( 0 ) , что g i ( x )  0, i  1, 2, ..., m
( 0)

рассмотрение штрафных функций.


Сформулируем общее утверждение для алгоритмов
- Использование скользящих допусков, позволяющих
«внутренней точки», применяемое при решении задач с
оперировать в процессе решения задачи оптимизации как с
ограничениями типа неравенств.
допустимыми, так и с недопустимыми (но близкими к
Пусть I - функция от x , обладающая следующими
допустимым) векторами в пространстве решений.
свойствами:
Основными требованиями к методам оптимизации функций с
ограничениями являются: (1) I ( x ) непрерывна в области
- относительно высокая эффективность R    x | g i ( x )  0, i  1,..., m ;
рассматриваемого метода как инструмента, позволяющего (2) если  x k  - любая бесконечная последовательность
получать численные решения задач нелинейного точек в R  , сходящаяся к x B , и g i ( x B )  0 по крайней мере
программирования; для одного i , lim I ( x k )   , при k   .
- простота логики построения вычислительных
Пусть s (r ) - скалярная функция от r , обладающая
процедур;
следующими свойствами:
- наличие машинных программ, позволяющих
(1) если r1  r2  0 , то s ( r1 )  s ( r2 )  0 ;
реализовать рассматриваемый алгоритм на ЭВМ.
(2) если  x k  - бесконечная последовательность точек,
78 U ( x, rk ) существует и имеет конечное значение. Так как эта
для которой lim rk  0, при k   , то траектория определяет кривую, вдоль которой U монотонно
lim s (rk )  0, при k   . убывает, то не существует точки на траектории, в которой
Алгоритм метода внутренней точки. значение U превосходило бы U ( x 0 , r1 ) . Так как допустимая
1. Строится функция U ( x, r1 )  f ( x)  s ( r1 ) I ( x) , где r1 граница определяется равенством g i ( x)  0 (по крайней мере,
- положительное число. В качестве начальной точки для одного i ), то U   при приближении к границе из
выбирается произвольная точка x 0  R  . Такую точку можно любой внутренней точки. Следовательно, описанная
получить в процессе самого метода . траектория никогда не достигает границы и минимум (если он
2. Осуществляется переход из точки x 0 в точку x( r1 ) существует) функции U ( x, r1 ) всегда будет в допустимой
U локального минимума функции U в допустимой области (внутренней) точке.
R   x | g i ( x)  0, i  1,..., m . Точка x( r1 ) будет принадлежать Обычно точка минимума функции U ( x, r ) бывает
области R  (в противном случае U   вопреки допустимой и не лежит на границе ни при каком r  0 . Более
предположению о том, что x( r1 ) - безусловный локальный того, при уменьшении r уменьшается влияние штрафного
минимум функции U в R ). члена и возрастает влияние целевой функции. Следовательно,
дальнейший прогресс может быть достигнут лишь при
3. Начиная из x( r1 ) определяем локальный минимум
минимизации f (x ) с сохранением допустимости.
функции U ( x, rk ) , где r1  r2  0 .. Одно свойство, оправдывающее этот подход, уже было
4. Процесс повторяем, т. е. находим локальный минимум высказано: целевую функцию можно уменьшить без
функции U ( x, rk ) , начиная из x ( rk 1 ) , для строго нарушения ограничений. Интуитивно ясно, что это должно
убывающей последовательности  x k  . привести к локальному допустимому минимуму.
При сделанных предположениях последовательность Другая мотивировка для преобразования исходной задачи
безусловных локальных минимумов существует и имеет своим в последовательность безусловных задач состоит в том, что
пределом локальный минимум функции f (x ) с заданными методы минимизации функций без ограничений хорошо
ограничениями. известны и достаточно разработаны. Таким образом, если
Функцию s ( r1 ) I ( x ) можно рассматривать, как преобразование задачи обосновано, то становится возможным
штрафную функцию, добавленную к целевой функции f (x ) . решать более сложные задачи с помощью уже описанных
Она строится так, чтобы минимум функции U достигался процедур, не прибегая к новым методам.
внутри допустимой области путем балансирования между Еще одно в высшей степени удобное свойство метода
стремлением к выходу на границу и к минимизации f (x ) . преобразования заключается в том, что при этом методе нет
необходимости отдельно учитывать границу допустимой
Рассмотрим траекторию наискорейшего спуска (наибольшая
области, например, пытаться двигаться по границе, как только
скорость убывания) функции U ( x, rk ) , начинающуюся из x 0 .
80
79 траектория выходит на нее. Такое движение слишком
По предположению g i ( x )  0
0
для всех i , а потому затруднительно, когда поверхность, описываемая
ограничениями, нелинейна. Функция U так объединяет  1  1  8r
будем рассматривать лишь один корень x1 (r )  ,
целевую функцию с ограничениями, чтобы совершенно 4
исключить движение по границе. Тогда
Для иллюстрации работы метода внутренней точки
рассмотрим подробно следующий пример. x 2 (r ) 
 1  1  8r  2

r
16
Минимизировать x1  x 2
при ограничениях 2.4.2. Метод внешней точки для минимизации функций с
g1   x12  x 2 ограничениями
g 2  x1  0 .
В качестве функции U возьмем логарифмическую функцию 1. Для некоторого t1  0 определяется безусловный
штрафа. локальный минимум функции T ( x, t1 ) . Обозначим его через
Тогда x (t1 ) .
m
s (r )  r , I ( x)   ln g i ( x) . 2. Если уже известно значение x (t1 ) , то находится
i 1 безусловный локальный минимум функции T ( x, t 2 ) , где
Выбор s и I удовлетворяет сформулированным ранее t 2  t1 .
требованиям. Итак, L( x, r )  x1  x 2  r ln( x12  x 2 )  r ln x1 3. Процесс повторяется, т. е. минимизируется T ( x, t k )
Этот простой пример можно решать аналитически, для строго возрастающей (стремящейся к )
учитывая, что L( x, r ) дважды дифференцируема. последовательности k . t 
Необходимые условия первого порядка принимают вид
По-видимому, при tk   последовательность
r (2 x1 ) r безусловных локальных минимумов сходится к условному
1   0, локальному минимуму x * . Интуитивно это можно обосновать
 x1  x 2 x1
2
следующим образом: если x находится слишком далеко от
допустимой области, то для больших t k значение штрафного
r члена p (t k )O( x) увеличивается. Таким образом, если t k   ,
1 0.
 x  x2
2
1 то безусловные локальные минимумы должны приближаться к
допустимой области, чтобы минимизировать значение
Решая эту систему, получаем штрафного члена. Этот метод называется методом внешней
 1  1  8r точки потому, что движение в нем осуществляется из
x1 (r ) 
4 недопустимой области в допустимую.
82
81 2.4.3. Различия между методами внутренней и внешней точки
Поскольку значение x1 (r ) должно быть положительно,
Методы внутренней и внешней точки основаны на
существенно разных принципах. В то время как в методах работать из внутренней точки и известна информация только
внутренней точки штрафной член препятствует нарушению об одной или о двух частных производных целевой функции.
ограничений, в методах внешней точки он нужен для того,
чтобы предотвратить блуждание точек слишком далеко от 3. ЗАДАЧИ ОПТИМИЗАЦИИ НА ГРАФАХ
допустимой области. В этом смысле метод внешней точки
более прост. Многие прикладные задачи оптимизации могут быть
В методах внешней точки возникают комбинаторные сформулированы в форме задачи оптимизации на графах.
трудности, связанные с наличием ограничений в форме Наряду с этим в теории графов многие интересные задачи
неравенств, многие из которых никак не связаны с решением. связаны с решением задач оптимизации [8,9].
Эти ограничения было бы естественно исключить из В связи с этим изучение общих свойств задач
вычислительного процесса, поскольку, став допустимыми на оптимизации на графах приобретает самостоятельное
некоторой итерации, они остаются допустимыми и дальше. значение, а изучение методов их решения традиционно
Поэтому, если ограничения выполняются как строгие относят к необходимым элементам современного образования,
неравенства, то не надо вычислять для них первые и вторые формирующим так называемый алгоритмический способ
частные производные, которые обычно требуются для мышления.
нахождения безусловных минимумов штрафных функций. Для Из достаточно большого числа типовых задач
методов внутренней точки, напротив, нужна информация обо оптимизации на графах рассматриваются только те, которые
всех ограничениях на протяжении всего вычислительного стали в некотором смысле классическими для задач данного
процесса и не приходится задумываться, какое из ограничений класса [10]:
не влияет на решение. - задача нахождения оптимальных покрывающих
За это преимущество алгоритмы внешней точки платят деревьев;
снижением порядка дифференцируемости (по x ) безусловно - задача нахождения кратчайшего пути в графе;
минимизируемой функции в любой граничной точке - задача нахождения критического пути в сетевом графе;
допустимой области. Квадратичная функция штрафа, - задача нахождения максимального потока в графе.
например, на границе допустимой области дифференцируема, При рассмотрении математической постановки задачи
но не дважды дифференцируема. В методах внутренней точки, оптимизации на графах следует иметь в виду, что для
напротив, порядок дифференцируемости тот же, что и у отдельных графов конкретного вида множество допустимых
функций задачи, при условии, что функция I ( g ) бесконечно альтернатив соответствующей задачи оптимизации для тех или
дифференцируема, подобно функции P и логарифмической иных специальных объектов может оказаться пустым.
функции штрафа. Это нужно принимать в расчет при Например, поиск оптимальных покрывающих деревьев или
доказательстве теорем о сходимости в методах минимизации путей для несвязных графов теряет свой смысл. Именно по

83 84
безусловных функций. Важность указанного свойства с этой причине в исходной постановке задач оптимизации на
вычислительной точки зрения становится ясной, если графах необходимо указывать дополнительные свойства
рассмотреть ситуацию, когда метод внешней точки начинает графа, которым он должен удовлетворять, чтобы
соответствующая задача оптимизации имела допустимые которые позволяют находить одно или несколько локально
решения. оптимальных решений. Однако как уже отмечалось ранее,
Хотя общая математическая постановка задачи использование приближенных методов оправдано лишь тогда,
оптимизации на графах не дает никакой информации когда по тем или иным причинам нахождение точного
относительно возможных методов ее решения, тем не менее, решения соответствующих задач оказывается невозможным.
все методы решения таких задач можно условно разделить на Поскольку программа MS Excel позволяет находить
два класса. точное решение задач целочисленного и булева
1. Большинство известных задач оптимизации на графах программирования, тем самым имеется возможность решения
могут быть сформулированы в форме математической модели с ее помощью и задач оптимизации на графах. При этом
целочисленного или булева программирования. В этом случае о6щий порядок подготовки исходных данных и поиска
выбор способа их решения полностью определяется решения аналогичен рассмотренному ранее для решения
математическими свойствами соответствующей постановки других типовых задач оптимизации. Для оценки точности
задачи. Более того, возможность решения практических задач получаемых решений целесообразно выполнить сравнение
оптимизации на графах с помощью программы MS Excel полученных различными способами оптимальных решений
непосредственно зависит от возможности ее формулировки в отдельных практических задач. Именно с этой целью в данной
виде задачи целочисленного или булева программирования. главе приводится описание способов решения задач о
2. Задачи оптимизации на графах могут быть решены с максимальном и минимальном покрывающем дереве в графе
использованием специальных алгоритмов, которые учитывают и задачи о кратчайшем пути.
специфические особенности тех или иных объектов графа и
конечную мощность множества допустимых альтернатив. В 3.1. Задача о минимальном покрывающем дереве в графе
этой связи задачи оптимизации на графах концептуально
оказываются тесно связанными с задачами комбинаторной Данная задача служит характерным примером задач,
оптимизации, методы решения которых рассматриваются в которые имеют не совсем очевидную постановку, но довольно
главе 4. Хотя для нахождения точного решения задач просто решаются в случае большого количества исходных
оптимизации на графах могут использоваться общие данных.
алгоритмы типа метода ветвей и границ и метода Один из возможных вариантов этой задачи может быть
динамического программирования, наиболее эффективными с сформулирован следующим образом. Необходимо разработать
вычислительной точки зрения оказываются специальные проект транспортной сети, которая должна соединить
алгоритмы, именно такие алгоритмы решения типовых задач конечное число населенных пунктов в некотором
оптимизации на графах рассматриваются в настоящей главе. географическом районе. Известна стоимость прокладки
Применительно к решению практических задач автодороги между двумя соседними населенными пунктами.

85 86
оптимизации на графах с большим количеством элементов Из экономических соображений требуется, чтобы общая
множества допустимых альтернатив были разработаны также стоимость реализации проекта была минимальной, при этом
специальные алгоритмы нахождения приближенного решения, должно быть выполнено обязательное условие - из любого
населенного пункта по построенным автодорогам можно было Таким образом, задача разработки оптимального проекта
бы попасть в любой другой населенный пункт транспортной сети и задача проектирования кабельной сети в
рассматриваемого географического района. общем случае соответствуют задаче нахождения
Оценочной функцией в данной задаче является общая покрывающего дерева в графе минимальной общей стоимости.
стоимость реализации проекта, а ограничением служит Задача о минимальном покрывающем дереве в графе
требование достижимости из произвольного населенного легко преобразуется к варианту задачи о максимальном
пункта любого другого. покрывающем дереве в графе, при этом характер задачи и ее
В бизнес-приложениях встречается и другой вариант сложность не изменяются. В литературе она также известна
постановки данной задачи. Суть его заключается в как задача о минимальном или максимальном остовном
следующем. Провайдеру телекоммуникационных услуг дереве. Все эти варианты данной задачи относится к классу
необходимо разработать проект кабельной сети связи, которая задач оптимизации на графах.
должна соединить конечное число абонентов в некотором
географическом районе. Считается, что два абонента 3.1.1. Математическая постановка задачи
соединены между собой, если существует транзитный канал
связи между ними. Известна стоимость прокладки канала Рассмотрим неориентированный связный граф:
связи между двумя любыми абонентами. Требуется G  (V , E , h) , в котором V   v1 , v 2 ,...v n  - конечное
определить вариант построения сети связи с минимальной множество вершин, E   e1 , e2 ,...en  - конечное множество
проектной стоимостью прокладки кабелей. Нетрудно увидеть,
что за различным содержанием этих двух задач скрывается ребер, h : E  Z  - весовая функция ребер. Для
один и тот же математический смысл, который становится математической постановки задачи удобно обозначить
очевидным при переходе к обобщенному рассмотрению этих отдельные значения весовой функции ребер через: cij  h( ek  )
задач в форме задачи о минимальном покрывающем дереве в , где ребро ek  E соответствует паре вершин vi , v j   V .
графе. Согласно содержательной постановке рассматриваемой задачи
Задача о минимальном покрывающем дереве в графе в отдельные значения: cij  h(vi , v j ) могут интерпретироваться
общем случае формулируется следующим образом. Для
как длина, затраты или стоимость участка (i , j ) исходного
соответствующего географического района строится граф,
вершины которого интерпретируются как населенные пункты графа.
этого района или абоненты связи соответствующих двух Стоимость любого подмножества ребер E k  E в графe
частных задач. Каждое ребро графа в этом случае будет G равна сумме весов ребер, входящих в это подмножество.
соответствовать потенциально возможной автомобильной
дороге между двумя соседними населенными пунктами или 88
Требуется определить такое подмножество ребер, которое
87 образует покрывающее или остовное дерево в графе G и
прокладке кабеля между двумя абонентами. Вес ребра примем обладает минимальной стоимостью.
равным стоимости прокладки соответствующего участка Для формальной записи условий задачи о минимальном
дороги или кабеля. покрывающем дереве в графе в виде модели булева
программирования следует воспользоваться двумя условиями n

покрывающего дерева в графе: x


j 2
1j  1;
1. Каждая из вершин исходного графа должна иметь хотя
(3.1.2)
бы одно инцидентное ей ребро, входящее в минимальное k 1 n
покрывающее дерево. В противном случае такие вершины в  xik  x kj 1 (k   2,..., n  1 );
искомом дереве окажутся изолированными, и, следовательно, i 1 j  k 1

дерево не будет являться покрывающим. (3.1.3)


n 1
2. Общее количество ребер в минимальном
покрывающем дереве должно быть в точности равно n  1 , x
i 1
in  1;
где n - общее количество вершин исходного графа. (3.1.4)
Действительно, если некоторое дерево содержит меньше n 1 n
n  1 ребер, то оно не будет покрывающим, если же дерево  x ij  n 1 ;
содержит больше n  1 ребер, то оно будет содержать цикл. i 1 j  i 1

Введем в рассмотрение m булевых переменных, (3.1.5)


которые для удобства обозначаются через xij и xij   0,1 , где vi , v  ek  E (k  1,2,..., m )
интерпретируются следующим образом. Переменная ij x  1 , (3.1.6)
если ребро ek  E , которому соответствует пара вершин Заметим, что те переменные xij , для которых весовая
vi , v j  , входит в искомое покрывающее дерево минимальной функция ребер h не определена или равна 0, вообще не
входят в математическую постановку рассматриваемой задачи
стоимости, и xij  0 , в противном случае, т.е. если ребро
(3.1.1)-(3.1.6). При этом первых три ограничения (3.1.2)—
vi , v j  не входит в оптимальное покрывающее дерево. (3.1.4.) требуют выполнения первого из отмеченных ранее
Заметим, что количество рассматриваемых булевых свойств, т.е. в искомом покрывающем дереве не должно быть
переменных конечно и равно m , где m - количество ребер изолированных вершин. Четвертое ограничение (3.1..5)
исходного графа. требует выполнения второго из отмеченных ранее свойств, т.е.
Тогда в общем случае математическая постановка задачи искомое покрывающее дерево должно содержать ровно n  1
о минимальном покрывающем дереве в графе может быть ребер. Общее количество ограничений (3.1.2)—(3.1.5) равно
сформулирована следующим образом: n . Наконец, последнее ограничение (3.1.6) требует, чтобы
переменные принимали только булевы значения.
Если в постановке задачи о минимальном покрывающем
89 дереве в графе (3.1.1)-(3.1.6) в выражении целевой функции
n 1 n
(3.1.1) операцию отыскания минимума заменить операцией
 c
i 1 j  i 1
ij x j  min, при x    (3.1.1) отыскания максимума, то может быть получена
где множество допустимых альтернатив 
90
формируется следующей системой ограничений типа равенств
математическая постановка соответствующей задачи о
и неравенств:
максимальном покрывающем дереве в графе. Ввиду того, что
эти две задачи оптимизации имеют одинаковую структуру, должно быть выполнено обязательное условие из любого
методы их решения целесообразно рассматривать совместно. населенного пункта по построенным автодорогам можно было
бы попасть в любой другой населенный пункт данного
3.1.2. Решение задачи о минимальном и максимальном географического района.
покрывающем дереве в графе с помощью программы MS Переменными математической модели данной
Ехсеl. индивидуальной задачи о минимальном покрывающем дереве
являются 12 переменных:
Для решения задачи о минимальном покрывающем x12 , x13 , x14 , x 23 , x 25 , x34 , x35 , x36 , x 46 , x56 , x57 , x 67 . Каждая из
дереве в графе с помощью программы MS Ехсеl необходимо этих переменных xij принимает значение 1, если ребро  i, j
задать конкретные значения параметрам исходной задачи. входит в минимальное покрывающее дерево, и 0 в противном
Целесообразно рассмотреть задачу разработки проекта случае. Тогда математическая постановка рассматриваемой
транспортной сети, которая должна соединить 7 населенных индивидуальной задачи о минимальном покрывающем дереве
пунктов в некотором географическом районе. Данный район может быть записана в следующем виде:
может быть представлен в виде схемы, формально 5 x12  8 x13  7 x14  5 x 23  10 x25  4 x34  7 x35  6 x36 
представляющей собой неориентированный связный граф,
7 x 46  4 x56  8 x57  10 x67  min (3.1.7) где
состоящий из 7 вершин и 12 ребер (рис. 3.1).
Стоимость прокладки автодороги между двумя при x    ,
соседними населенными пунктами, выраженная, например, в множество допустимых альтернатив   формируется
млн. рублей, равна значению весовой функции для каждого следующей системой ограничений типа неравенств:
ребра, которое указано рядом с изображением этого ребра в x12  x13  x14  1 ;
графе. x12  x 23  x 25  1;
x13  x 23  x34  x35  x36  1;
x14  x34  x 46  1; (3.1.8)
x 25  x35  x56  x57  1;
x36  x 46  x56  x67  1;
x57  x 67  1;
x12  x13  x14  x 23  x 25  x34  x35  x36  x 46  x56  x57  x 67  6;
x12 , x13 , x14 , x 23 , x 25 , x34 , x35 , x36 , x 46 , x56 , x57 , x 67   0,1 .

Рис. 3.1. Исходный граф индивидуальной задачи о


92
покрывающем дереве
Результатом решения булевой задачи о минимальном
покрывающем дереве в графе являются найденные
91
оптимальные значения переменных:
Требуется разработать такой проект, чтобы общая
x12  1, x 23  1, x34  1, x36  1, x56  1 , остальные
стоимость реализации проекта была минимальной. При этом
переменные равны 0. Найденному оптимальному решению географическом регионе, однако суть ее иная.
соответствует значение целевой функции: f opt = 32. Водителю автомобиля необходимо проехать из
Анализ найденного решения показывает, что некоторого исходного населенного пункта А в конечный
минимальное покрывающее дерево исходного графа (рис. 7.1) населенный пункт Б, используя магистральные шоссейные
содержит следующие ребра: (1, 2), (2, З), (З, 4), (З, 6), (5, 6), (5, дороги. Каким образом выбрать кратчайший маршрут
7). Тем самым найден оптимальный проект транспортной перемещения, минуя различные промежуточные пункты?
сети, который должен включать в себя построение автодорог Воспользуемся атласом автомобильных дорог для
между населенными пунктами: 1 и 2, 2 и 3, 3 и 4, 3 и 6, 5 и 6, 5 соответствующего географического района. Очевидно,
и 7 (рис. 3.2). При этом общая стоимость реализации проекта каждый участок дороги в этом случае будет
будет минимальной и равна 32 млн. руб. соответствовать наличию в атласе автомобильной дороги
между двумя соседними населенными пунктами или
перекрестками. Из атласа можно узнать длину
соответствующих участков, соединяющих промежуточные
населенные пункты или перекрестки.
Задача поиска кратчайшего маршрута в этом случае
формулируется следующим образом. Из всех возможных
маршрутов перемещения, связывающих исходный населенный
пункт с конечным необходимо найти такой маршрут,
суммарная длина участков дорог которого минимальна.
Оценочной функцией в данной задаче является
Рис. 3.2. Минимальное покрывающее дерево исходного графа суммарная длина пути, связывающего пункты А и Б, а
ограничениями служат наличие или отсутствие дорог между
Легко проверить, что в этом случае из любого отдельными населенными пунктами соответствующего
населенного пункта по построенным автодорогам можно будет географического региона.
попасть в любой другой населенный пункт данного Данная задача в общем случае может быть
географического района. Так, например, чтобы добраться из формулирована как задача о минимальном пути в графе. Для
населенного пункта 4 в населенный пункт 7, необходимо будет соответствующего географического района может быть
последовательно миновать соседние населенные пункты 3, 6, 5 построен граф, вершины которого интерпретируются как
и, наконец, 7. точки пересечения дорог или населенные пункты. Каждое

93 94
ребро графа в этом случае будет соответствовать наличию
3.2. Задача о минимальном пути в графе автомобильной дороги между двумя соседними населенными
пунктами или перекрестками. В качестве веса ребра следует
Данная задача в чем-то похожа на предыдущую задачу, принять длину соответствующего участка дороги в км.
поскольку в ней тоже идет речь о перемещении в некотором Таким образом, задача поиска кратчайшего маршрута
формулируется как задача нахождения минимального пути в n n

графе между двумя фиксированными парами вершин.  c


i 1 j 1
ij xij  min, при x    (3.2.1)

где множество допустимых альтернатив   формируется


3.2.1. Математическая постановка задачи
следующей системой ограничений типа равенств и
Рассмотрим ориентированный граф: G  (V , E , h) , в котором неравенств:
n n
V   v1 , v 2 ,..., v n  - конечное множество вершин,  xij   xis  1
E  e1 , e2, ..., em ) - конечное множество дуг, h : E  Z  - j 1 i 1

(3.2.2)
весовая функция дуг. Для математической постановки задачи n n
удобно обозначить отдельные значения весовой функции дуг  xij   xit  1 ;
через: cij  h(ek ) , где дуга ek  E соответствует j 1 i 1

упорядоченной паре вершин ( v i , v )


j . Согласно (3.2.3)
n n
содержательной постановке рассматриваемой задачи  xij  x ji  0 (i  1,2,..., n , i  s, i  t );
значения: C ij  h((vi , v j )) могут интерпретироваться как j 1 j 1

длина участка‚ затраты или стоимость переезда из i - го (3.2.4)


города в j - й город. xij   0, 1 , (i  1,2,..., n ) .
Длина любого маршрута в графе равна сумме весов дуг, (3.2.5)
входящих в этот маршрут. Дополнительно в графе При этом первое ограничение (3.2.2) требует выполнения
фиксируются две вершины: начальная вершина v s и конечная следующего условия - искомый путь должен начинаться в
вершина vt . В предположении, что исходный граф G вершине x s , ограничение (3.2.3) требует выполнения
является связным, т. е. вершина vt , потенциально достижима следующего условия - искомый путь должен заканчиваться в
из v s , требуется определить маршрут минимальной длины из вершине xt . Третье ограничение (3.2.4) гарантирует
начальной вершины v s в конечную вершин vt . связность минимального пути, т.е. искомый путь должен
Введем в рассмотрение следующие булевы переменные проходить через промежуточные вершины графа. Общее
xij , которые интерпретируются следующим образом. количество ограничений (3.2.2)—(3.2.4) равно n .
Наконец, последнее ограничение (3.2.5) требует, чтобы
95
переменные принимали только булевы значения.
Переменная xij  1 , если дуга (vi , v j ) входит в искомый
маршрут минимальной длины, и xij  0 , в противном случае, 96
т. е. если дуга (vi , v j ) не входит в оптимальный маршрут.
Тогда в общем случае математическая постановка задачи о Заметим, что те коэффициенты целевой функции cij , для
минимальном маршруте или пути в ориентированном графе которых весовая функция дуг h исходного графа не
может быть сформулирована следующим образом: определена или равна 0, в общей математической постановке
рассматриваемой задачи (3.2.1)—(3.2.5) следует положить
равными   , т. е. достаточно большому положительному ориентированном графе являются 15 переменных:
значению. x12 , x13 , x14 , x 24 , x 25 , x34 , x36 , x 45 , x 46 , x 47 , x57 , x58 , x 67 , x 68, x 78 .
Каждая из этих переменных из этих переменных x j
3.2.2. Решение задачи о минимальном пути в ориентированном принимает значение 1, если дуга (i, j ) входит в
графе с помощью программы MS Ехсеl минимальный путь, и 0 - в противном случае. Тогда
математическая постановка рассматриваемой индивидуальной
Для решения задачи о минимальном пути в задачи о минимальном пути в ориентированном графе может
ориентированном графе с помощью программы MS Ехсеl быть записана в следующем виде:
необходимо задать конкретные значения параметрам исходной 7 x12  11x13  18 x14  6 x 24  14 x 25  4 x34  6 x36  (3.2.6)
задачи. С этой целью рассмотрим задачу нахождения
7 x 45  5 x 46  10 x 47  2 x57  15x58  3 x67  12 x68  9 x 78  min где
минимального пути в транспортной сети, которая соединяет 8
населенных пунктов в некотором географическом районе. при x    ,
Район может быть задан в виде схемы, формально множество допустимых альтернатив   формируется
представляющей собой ориентированный связный граф, следующей системой ограничений типа равенств и
состоящий из 8 вершин и 15 дуг (рис. 3.3). неравенств:
x12  x13  x14  1;
x58  x 68  x 78  1;
x12  x 24  x 25  0;
x13  x34  x36  0;
(.3.2.7)
x14  x 24  x34  x 45  x 46  x 47  0;
x 25  x 45  x57  x58  0;
x36  x 46  x67  x68  0;
x 47  x57  x67  x78  0;
x12 , x13 , x14 , x 24 , x 25 , x34 , x36 , x 45 , x 46 , x 47 , x57 , x58 , x 67 , x68 , x78   0, 1.
Рис. 3.3.. Исходный ориентированный граф
индивидуальной задачи о минимальном пути
98
Требуется найти маршрут, соединяющий начальный
Заметим, что те переменные xij , для которых весовая
97 функция дуг h не определена или равна 0, не входят в
пункт 1, которому соответствует вершина vi  v s ‚ с конечным математическую постановку рассматриваемой задачи (3.2.6) и
(3.2.7).
пунктом 8, которому соответствует вершина v8  vt , так
Анализ найденного решения показывает, что
чтобы общая длина пути была минимальной. минимальный путь в исходном ориентированном графе (рис.
Переменными математической модели данной 7.9), соединяющий вершину 1 с вершиной 8, содержит
индивидуальной задачи о минимальном пути в
следующие дуги: (1, 2), (2, 4), (4, 6), (6, 7), (7, 8). тем самым
найден оптимальный маршрут перемещения из исходного
населенного пункта в конечный, который включает в себя Рис. 3.4.. Второе оптимальное решение задачи о минимальном
последовательное перемещение между соседними пути в графе между вершинами 1 и 8, полученное с помощью
населенными пунктами: из 1 в 2, из 2 в 4, из 4 в 6, из 6 в 7, из 7 алгоритма Дейкстры
в 8 (рис. 7.13). При этом общая длина пути будет минимальной
и равна 30 км. 3.3. Содержательная постановка задачи нахождения
Сравнивая полученный результат (алгоритм Дейкстры) с критического пути выполнения бизнес-процесса
результатом решения данной индивидуальной задачи с
помощью программы MS Ехсеl , можно констатировать тот Данная задача является одной из основных при
факт, что программа MS Ехсеl определила только первый из моделировании различных бизнес-процессов, а также при
них. В то же время второй путь (рис. 3.4) также имеет планировании и управления проектами выполнения работ
значение минимума целевой функции: f opt  30 , в чем можно самого различного целевого назначения. Сущность задачи
убедиться непосредственной проверкой. Отсюда следует нахождения критического пути выполнения бизнес-процесса
вывод: алгоритм пометок Дейкстры позволяет определить все заключается в следующем.
минимальные пути между начальной и конечной вершинами в Многие реальные проекты, такие как строительство дома
ориентированном графе в том случае, если таких и транспортной сети города, изготовление и сборка машин и
минимальных путей несколько. механизмов, разработка технических устройств и
программного обеспечения, обработка заказов в торговле и
логистике, а также процессы приготовления кофе и обучения в
институте могут быть детализированы в форме выполнения
большого количества различных операций или работ.
Некоторые из этих операций могут выполняться одновременно
или параллельно, другие — только последовательно, когда та
или иная операция может начаться только после окончания
других операций.

99 100
Например, при строительстве дома можно параллельно
выполнять работы по внутренней отделке помещений и
озеленению прилегающей к дому территории. При разработке
программного обеспечения можно одновременно выполнять
написание программ для одних модулей и тестирование
других модулей.
В то же время последовательное выполнение операций
бизнес-процесса требует согласования времени начала и
окончания отдельных работ. Например, при строительстве При этом временная длительность выполнения отдельных
дома выполнение работы по внутренней отделке помещений операций задается в форме веса соответствующей дуги.
может начаться только после того, как будут закончены работы Исходя из общей логики выполнения бизнес-процессов,
по возведению стен и крыши дома. При разработке вводится следующее условие — графическая модель
программного обеспечения написание программ для отдельного бизнес-процесса должна иметь единственное
отдельных модулей может быть начато после спецификации начальное событие, которое инициирует начало его
требований к ним, например, в форме вариантов выполнения, и единственное конечное событие, которое
использования. Даже процесс приготовления кофе с помощью фиксирует момент окончания его выполнения. Применительно
кофеварки предполагает, что прежде чем кофеварка будет к ориентированному графу бизнес-процесса это условие
включена, в нее следует залить воду, а в фильтр насыпать означает, что в данном графе должна быть единственная
молотый кофе. вершина, из которой выходят дуги, и единственная вершина, в
В общем случае модель бизнес-процессов, отражающая которую входят дуги.
последовательность и логическую взаимосвязь выполнения Дополнительно требуется, чтобы рассматриваемый
отдельных операций или работ, может быть представлена в ориентированный граф модели бизнес-процесса не содержал
форме некоторого конечного ориентированного графа. При циклов и был связным, т. е. его конечная вершина была
этом отдельные операции могут быть представлены как в виде достижима из начальной вершины. Ориентированный граф,
вершин этого графа, так и в виде дуг. Поскольку второй случай удовлетворяющий перечисленным условиям, называется
интерпретации работ в виде дуг ориентированного графа сетевым графом или просто сетью.
более удобен для выполнения расчетов общего времени Одна из основных задач моделирования бизнес-
выполнения бизнес-процесса, он традиционно используется процессов, а также более частная задача планирования и
при рассмотрении содержательной постановки нахождения управления проектом заключается не только в построении
критического пути бизнес-процесса. сетевого графа бизнес-процесса, адекватно отражающего
Таким образом, исходной информацией для общую логику и технологию выполнения операций, но и в
моделирования бизнес-процессов является ориентированный оценке общей длительности этого бизнес-процесса. Следует
граф выполнения операций, каждая дуга которого заметить, что если все операции некоторого бизнес-процесса
интерпретируется как тдельная операция или работа этого выполняются последовательно, то его общая длительность

101 102
бизнес-процесса, а вершина - как некоторое событие, равна алгебраической сумме интервалов времени выполнения
связанное с завершением выполнения работ самого отдельных операций. Если же операции бизнес-процесса
различного целевого назначения. Таким образом, исходной выполняются параллельно, то общая длительность бизнес
информацией для моделирования бизнес-процессов является процесса, очевидно, равна максимальному интервалу времени
ориентированный граф выполнения операций, каждая дуга параллельно выполняемых операций. Отсюда следует вывод:
которого интерпретируется как отдельная операция или работа длительность выполнения бизнес-процесса, представленного в
этого бизнес-процесса, а вершина - как некоторое событие, общем случае моделью сетевого графа, равна пути
связанное с завершением выполнения тех или иных операций. максимальной длины, соединяющего начальную вершину
этого графа с его конечной вершиной. Такой путь получил через: cij  h(ek ) , где дуга ek  E соответствует
специальное название - критического пути в сетевом графе. упорядоченной паре вершин (v i , v j ) . Согласно
Нахождение критического пути в сетевом графе позволяет содержательной постановке задачи нахождения
выявить операции бизнес-процесса, которые наиболее c  h (( v
максимального пути в графе значения ij i v j )) могут
,
критичны ко времени своего выполнения. Действительно,
интерпретироваться как длина участка, затраты или стоимость
увеличение времени выполнения операций, лежащих на
переезда из i -го в j -й город. Применительно к задаче
критическом пути, приводит к однозначному увеличению
нахождения критического пути в сетевом графе каждая дуга
общего времени выполнения бизнес-процесса. Тем самым
(vi , v j ) интерпретируется как отдельная операция бизнес-
управление бизнес-процессом приобретает приоритетный
характер и направлено на предотвращение незапланированных процесса, а значения cij — как временная длительность
задержек с выполнением в первую очередь тех операций, выполнения соответствующей операции (vi , v j ) .
которые входят в критический путь соответствующего Дополнительно в графе фиксируются две вершины:
сетевого графа. С другой стороны, уменьшение времени начальная вершина v s и конечная вершина vt . При этом
выполнения таких операций за счет внутренних резервов длина любого маршрута в графе равна сумме весов дуг,
бизнес-системы способно привести к сокращению общего входящих в этот маршрут. В предположении, что исходный
времени выполнения всей совокупности операций, что сетевой граф G является связным, т.е. вершина vt ,
является одной из целей оптимизации или реинжиниринга потенциально достижима из v s , и не содержит циклов,
бизнес-процессов.
требуется определить маршрут максимальной длины из
Таким образом, операции критического пути получают
начальной вершины v s в конечную вершину vt .
более высокий приоритет по сравнению с остальными
операциями бизнес-процесса, а задача построения сетевого Как и в задаче о минимальном пути в ориентированном
графа бизнес-процесса и нахождения критического пути в графе, введем в рассмотрение булевы переменные xij ,
этом сетевом графе становится важным элементом которые интерпретируются следующим образом.
моделирования бизнес-процессов. Переменная ij x  1 ,

104
103 если дуга (vi , v j ) входит в искомый маршрут максимальной
длины, xij  0 , в противном случае, т. е. если дуга (vi , v j ) не
3.3.1. Математическая постановка задачи входит в оптимальный маршрут. Тогда в общем случае
математическая постановка задачи о максимальном маршруте
Рассмотрим ориентированный граф: G  (V , E , h) , в в ориентированном графе или критическом пути в сети может
котором V   v1 , v 2 ,..., v n  - конечное множество вершин, быть сформулирована следующим образом:
E   e1 , e2, ..., em  - конечное множество дуг, h : E  Z  - n n

весовая функция дуг. Для математической постановки задачи


 c x
i 1 j 1
ij ij  max, при x    (3.3.1)
удобно обозначить отдельные значения весовой функции дуг где множество допустимых альтернатив 
формируется системой ограничений, которая полностью критическом пути в сетевом графе являются 15 переменных:
тождественна системе ограничений математической модели x12 , x13 , x14 , x 24 , x 25 , x 34 , x36 , x 45 , x 46 , x 47 , x57 , x 58 , x 67 , x 68, x 78
задачи о минимальном пути в ориентированном графе (3.2.2)- Каждая из переменных xij - принимает значение 1, если
(3.2.5). Поскольку последняя была рассмотрена ранее в разд. дуга (i , j ) входит в критический путь, и 0 - в противном
3.2, здесь она не приводится. Тем самым, говоря о случае. Тогда математическая постановка рассматриваемой
математической постановке задачи нахождения максимального индивидуальной задачи о критическом пути в сетевом графе
маршрута в ориентированном графе, будем иметь в виду может быть записана в следующем виде:
модель (3.2.1), (3.2.2)—(3.2.5). 7 x12  11x13  18 x14  6 x 24  14 x 25  4 x34  6 x36  (3.3.2)
7 x 45  5 x 46  10 x 47  2 x57  15 x58  3x 67  12 x 68  9 x 78  min где
3.3.2.. Решение задачи нахождения
критического пути в сетевом графе с помощью программы при x    ,
МS Ехсеl множество допустимых альтернатив   , формируется
системой ограничений, которая полностью тождественна
Для решения задачи нахождения критического пути в системе ограничений математической модели задачи о
сетевом графе с помощью программы МS Ехсеl необходимо минимальном пути в ориентированном графе (3.2.7).
задать конкретные значения параметрам индивидуальной Поскольку последняя была рассмотрена ранее в разд. 3.2,
задачи. С этой целью для удобства рассмотрим задачу здесь она не приводится. Тем самым, говоря о решении
нахождения максимального пути в сетевом графе, структура индивидуальной задачи нахождения критического пути в
которого полностью совпадает с графом, являющимся сетевом графе, будем иметь в виду математическую модель
исходным для решения задачи о минимальном пути (рис. 3.3). (3..3.2), (3.2.7).
При этом изменится только лишь интерпретация вершин и дуг,
а именно - каждая дуга данного сетевого графа будет означать 106
отдельную операцию некоторого бизнес-процесса, а Результатом решения задачи о минимальном пути в
графе являются найденные оптимальные значения
105 переменных: x14  1 , x 45  1 , x58  1 , остальные
вершина - событие, связанное с моментом начала или переменные равны 0 . Найденному оптимальному решению
окончания этих операций. Длительность выполнения соответствует значение целевой функции: f опт  40 .
операций, выраженная, например, в часах, равна значению Анализ найденного решения показывает, что
весовой функции для каждой дуги, которое указано рядом с критический путь в исходном сетевом графе (см. рис. 3.3.),
изображением этой дуги в графе. соединяющий вершину 1 с вершиной 8, содержит следующие
Требуется найти критический путь, соединяющий дуги: (1, 4), (4, 5), (5, 8). Эти дуги соответствуют критическим
начальное событие 1, которому соответствует вершина v1  v s операциям моделируемого бизнес-процесса (рис. 3.5). При
с конечным событием 8, которому соответствует вершина этом общая продолжительность критического пути будет
v8  vt , так чтобы общая длина пути была максимальной. Так максимальной и равна 40 часов, что соответствует общей
же, как в задаче о минимальном пути, переменными плановой продолжительности бизнес-процесса.
математической модели данной индивидуальной задачи о
по каждому из участков трубопроводной системы, так чтобы
количество доставленного на предприятие переработки
продукта было максимальным.
Оценочной функцией в данной задаче является количество
продукта, доставленного на предприятие переработки, а
ограничениями служат предельные значения пропускной
способности каждого участка рассматриваемой системы.
В бизнес-приложениях встречаются самые
разнообразные варианты данной задачи, например,
нахождение максимального пассажиропотока в транспортной
Рис. 3.5.. Критический путь в исходном сетевом графе между системе мегаполиса, регулирование транспортных потоков на
вершинами 1 и 8 автомобильных магистралях и пр. Для наиболее эффективного
Критический характер операций (1, 4), (4, 5) и (5, 8) анализа и решения подобных задач, их следует рассматривать
проявляется в том, что увеличение любой из них, например, на в обобщенной постановке в форме задачи о максимальном
1 час, приведет к увеличению общей продолжительности потоке в сетевом графе или сети.
реализации бизнес-процесса, которая станет равной 41 час. Чтобы в общем случае сформулировать задачу о
Что касается других операций, не лежащих на критическом максимальном потоке в сети, для рассматриваемой системы
пути, то они имеют так называемые резервы времени, которые магистральных трубопроводов построим граф. В данном
допускают некоторое увеличение их продолжительности без графе одна из вершин, называемая источником, будет
изменения общей продолжительности соответствующего соответствовать источнику добычи продукта, другая,
бизнес-процесса.
107 108
3.4. Задача о максимальном потоке называемая стоком, - предприятию по переработке этого
в сети продукта. Остальные вершины графа интерпретируются как
Данная задача имеет множество возможных вариантов компрессорные станции. Каждое ребро графа в этом случае
постановки, один из которых может быть сформулирован будет соответствовать наличию участка трубопровода между
следующим образом. Имеется система магистральных парой компрессорных станций. Вес ребра равен пропускной
трубопроводов, связывающих источник добычи нефти или способности соответствующего участка трубопровода.
газа с предприятием по его промышленной переработке. Таким образом, задача о максимальном потоке в сети
Отдельные участки трубопроводов оснащены формулируется как задача нахождения переменных значений
компрессорными установками для поддержания требуемого величин потока по каждому ребру графа, которые не
давления, необходимого для транспортировки продукта. превышают весов соответствующих ребер и максимизируют
Известны предельные значения пропускной способности общий поток от источника к стоку.
каждого участка рассматриваемой системы. В предположении,
что источник обладает достаточными запасами продукта, 3.4.1. Математическая постановка задачи
требуется определить количество транспортируемого продукта
Пусть G  (V , E , h) - ориентированный граф, в котором 0  xij  cij ( i , j  1,2,..., n ) . (3.4.4)
V   v1 , v 2 ,..., v n  - конечное множество вершин, xij  Z ( i , j  1,2,..., n )
1
 (3.4.5)
E   e1 , e2 ,..., em  - конечное множество дуг, h : E  Z  - При этом первое ограничение (3.4.2) требует выполнения
весовая функция дуг, которая интерпретируется как следующего условия: величина потока, выходящего из
пропускная способность дуги. Дополнительно в графе вершины v s ; (истока), должна быть равна величине потока,
фиксируются две вершины: начальная вершина v s , которая входящего в вершину vi (сток). Вторая группа ограничений
называется исток, и конечная вершина vt , которая (3.4.3) гарантирует выполнение следующего условия: любой
называется сток. В предположении, что исходный граф G частичный поток, входящий в каждую промежуточную
является связным, т. е. вершина vt , потенциально достижима вершину графа, должен быть равен потоку, выходящему из
из v s , и не содержит циклов, требуется определить поток этой вершины. Общее количество ограничений (3.4.2) и (3.4.3)
максимального объема, протекающий из начальной вершины равно n  1 . Третья группа ограничений (3.4.4) требует
v s в конечную вершину vt . выполнения следующего условия: величина потока,
протекающего по дуге (vi , v j )  E , должна быть
Введем в рассмотрение следующие неотрицательные
неотрицательной и не должна превышать пропускной
целочисленные переменные - xij , которые интерпретируются
способности этой дуги .
как величина потока, проходящего по дуге (vi , v j )  E . Тогда в Наконец, последнее ограничение (3.4.5) требует, чтобы
общем случае математическая постановка задачи о все переменные принимали только неотрицательные
целочисленные значения. Напомним также, что
109
максимальном потоке в сети может быть сформулирована 110
следующим образом: ориентированный связный граф, не содержащий циклов,
n
принято называть сетью.
x
j 1
sj  max при x    (3.4.1)
В литературе встречаются различные варианты задачи о
где множество допустимых альтернатив  максимальном потоке в сети, а именно: задача нахождения
формируется следующей системой ограничений типа равенств максимального потока с несколькими источниками и стоками,
и неравенств: задача нахождения потока минимальной стоимости и другие.
n n Для решения этих задач разработаны специальные методы,
x ij   xis  0; которые зачастую оказываются более эффективными, чем
j 1 i 1 поиск решения программой MS Ехсеl.
(3.4.2)
n n
(i  1,2,..., n , i  s, i  t ); 3.4.2. Решение задачи о максимальном потоке
 x  x
j 1
ij
j 1
ji 0
в сети с помощью программы МS Ехсеl
(3.4.3)
Для решения задачи о максимальном потоке в сети с
помощью программы МS Ехсеl необходимо задать конкретные
значения параметрам индивидуальной задачи. С этой целью Переменными математической модели данной
рассмотрим задачу нахождения максимального потока в сети, индивидуальной задачи о максимальном потоке в сети
которая представляет модель системы магистральных являются 10 переменных:
трубопроводов, связывающих источник добычи некоторого x12 , x13 , x 23 , x 24 , x 25 , x34 , x35 , x 45 , x 46 , x56 . Каждая из этих
жидкого продукта (нефти, сжиженного газа) с предприятием переменных xij . может принимать неотрицательное
по его промышленной переработке. Данная модель может целочисленное значение, cij не превышающее пропускной
быть представлена в виде схемы, формально представляющей
способности дуги cij и соответствующее величине потока
собой ориентированный связный граф без циклов, состоящий
из 6 вершин и 10 дуг (рис. 3.6). Предельные значения продукта, транспортируемого по отдельному трубопроводу,
пропускной способности каждого участка рассматриваемой связывающему компрессорные станции - вершины сети.
системы между двумя соседними компрессорными станциями, Тогда математическая постановка рассматриваемой
выраженные, например, в т/час, равны значению весовой индивидуальной задачи о максимальном потоке в сети может
функции для каждой дуги, которые указаны рядом с быть записана в следующем виде:
x12  x13  min при x    (3.4.6)
изображением этой дуги в графе.
В предположении, что источник, которому соответствует где множество допустимых альтернатив 
вершина v1  v s , обладает достаточными запасами продукта, формируется следующей системой ограничений типа равенств
требуется определить количество транспортируемого продукта и неравенств:
по каждому из участков трубопроводной системы до стока, 112
которому соответствует вершина v6  vt так чтобы x12  x13  x 46  x56  0;
111 x12  x 23  x 24  x 25  0;
количество доставленного на сток продукта было x13  x 23  x34  x35  0;
максимальным. x 24  x34  x 45  x 46  0; (3.4.7)
x 25  x35  x 45  x 46  0;
0  x12  5 , 0  x13  5 , 0  x 23  6 , 0  x 24  2 ;
0  x 25  5 , 0  x34  3 , 0  x35  2 , 0  x 45  3 ;
0  x 46  3 , 0  x56  3 ;
x12 , x13 , x 23 , x 24 , x 25 , x34 , x35 , x 45 , x 46 , x56  Z 1
Заметим, что те переменные xij , для которых весовая
функция дуг h не определена или равна 0, не входят в
математическую постановку.
Результатом решения задачи в MS о максимальном потоке в
сети в MS Excel являются найденные оптимальные значения
Рис. 3.6. Исходный ориентированный граф индивидуальной переменных: x12  2 , x13  4 , x 24  2 , x34  3 , x35  1 ,
задачи о максимальном потоке в сети
x 45  2 , x 46  3 , x56  3 , остальные переменные равны 0. которых из исходного графа делает полученный в результате
Найденному оптимальному решению соответствует значение граф несвязным. Например, множество дуг {(2, 4), (2, 5), (3, 4)
целевой функции: f опт  6. и (3, 5)} удовлетворяет определению разреза, поскольку их
Анализ найденного решения показывает, что удаление разделяет исходный граф на две несвязные части.
максимальный поток в сети (см. рис. 3.6), проходящий из Имеет место следующее свойство, которому должен
вершины 1 в вершину 6, протекает по следующим дугам: по удовлетворять максимальный поток в сети: максимальный
дуге (1, 2) в количестве 2 т/час, по дуге (1, 3) в количестве 4 поток в сети равен потоку, протекающему по дугам любого
т/час, по дуге (2, 4) в количестве 2 т/час, по дуге (3, 4) в разреза этой сети, отделяющего исток от стока. При этом
количестве 3 т/час, по дуге (3, 5) в количестве 1 т/час, по дуге поток по дугам, проходящий в направлении от истока к стоку,
(4, 5) в количестве 2 т/час, по дуге (4, 6) в количестве 3 т/час, учитывается со знаком ”+", а поток по дугам, проходящий в
по дуге (5, 6) в количестве 3 т/час. направлении от стока к истоку, учитывается со знаком ”-".
Тем самым найден оптимальный план транспортировки Для проверки этого условия применительно к
продукта от пункта его добычи до пункта его переработки найденному решению задачи о максимальном потоке в сети
(рис. 3.7). При этом общая величина потока (см. рис. 3.7) рассмотрим некоторый разрез, например, {(2, 4),
(2, 5), (3, 4) и (3, 5)}. Нетрудно убедиться в том, что величина
113
114
транспортируемого продукта для рассматриваемой сети будет потока, проходящего через дуги этого разреза, равна 6, что в
максимальна и равна 6 т/час. точности равно величине найденного максимального потока.
Упражнения.
Задача о минимальном и максимальном покрывающем
дереве в графе
Для графа, изображенного на рис. 3.8., определить
минимальное и максимальное покрывающее дерево.

Рис. 3.7.. Максимальный поток в исходной сети между


вершинами 1 и 6
Простейшая проверка найденного решения может быть
связана с рассмотрением так называемых разрезов графа сети
(рис. 3.7). При этом в общем случае под разрезом
ориентированного графа понимается такое подмножество его
дуг, которое содержит минимальное количество дуг, удаление Рис. 3.8. Исходный граф для задачи о нахождении
минимального и максимального покрывающего дерева возможностями по ее переработке.
Задача о минимальном и максимальном пути в
ориентированном графе
Для графа, изображенного на рис. 3.9., определить пути
минимальной и максимальной длины из начальной вершины с
номером 1 в конечную вершину с номером 10.

Рис. 3.10.. Исходная сеть для задачи о нахождении


максимального потока

Рис. 3.9.. Исходный ориентированный граф для задачи о 4. ЗАДАЧИ КОМБИНАТОРНОЙ ОПТИМИЗАЦИИ
нахождении минимального и максимального пути
115 Многие интересные задачи оптимизации могут быть
Задача о максимальном потоке в сети сформулированы в форме задач комбинаторной оптимизации.
Для системы магистральных трубопроводов, Формальная постановка и методы решения этих задач
связывающих источник добычи нефти с предприятием по ее базируются на понятиях комбинаторики или комбинаторного
промышленной переработке, представленной в форме графа
(рис. 3.10), определить количество транспортируемой нефти 116
по каждому из участков трубопроводной системы, так чтобы Анализа [11, 12] В связи с этим изучение общих свойств задач
количество доставленной на предприятие переработки нефти комбинаторной оптимизации приобретает самостоятельное
было максимальным. Предельные значения пропускной значение, а методы нахождения их точного решения
способности каждого участка рассматриваемой системы традиционно относят к наиболее сложным вопросам практики
указаны рядом с обозначением соответствующей дуги в графе построения вычислительных алгоритмов.
сети. При этом предполагается, что источник добычи нефти
(вершина с номером 1) обладает достаточными запасами 4.1. Общая характеристика задач комбинаторной оптимизации
нефти для ее транспортировки, а предприятие по переработке
нефти (вершина с номером 7) обладает достаточными В общем случае к комбинаторным задачам относятся
такие математические задачи, формулировка которых и поиск
решения связан с предметом специального раздела математики
— комбинаторным анализом или комбинаторикой. В рамках
этого раздела изучаются математические свойства
специальных комбинаторных объектов, основными из которых
являются: перестановки, размещения и сочетания. При этом обладающих некоторыми экстремальными свойствами.
многие комбинаторные задачи имеют развлекательное
содержание и форму головоломок. 4.2.. Математическая постановка
Одной из классических комбинаторных задач, задачи комбинаторной оптимизации
фигурирующей еще в мифах Древнего Востока, является
задача построения магического квадрата. Ряд комбинаторных Задачи комбинаторной оптимизации в своей исходной
задач был рассмотрен Л. Эйлером. Одна из них - задача об постановке могут формулироваться непосредственно в форме
офицерах, состоящая в том, чтобы 36 офицеров 6-ти нахождения комбинаторного объекта того или иного типа,
различных воинских званий и из 6-ти различных полков доставляющего оптимальное значение некоторой целевой
расположить в ячейках квадрата 6  6 ‚ так чтобы каждая функции. Однако многие прикладные задачи комбинаторной
колонна и каждая шеренга содержали одновременно одного и оптимизации первоначально формулируются в форме
только одного офицера каждого воинского звания и каждого некоторой задачи оптимизации на графах. Подобная задача
полка. Эта задача эквивалентна задаче построения латинского оптимизации на графах оказывается тесно связанной с тем или
квадрата порядка 6. Другая комбинаторная задача, также иным комбинаторным объектом, что и позволяет отнести ее к
рассмотренная Л. Эйлером, - известная задача о классу задач комбинаторной оптимизации.
кёнигсбергских мостах, которая положила начало новому В общем случае задача комбинаторной оптимизации
разделу математики — теории графов. обладает тем свойством, что в рамках ее постановки каждому
К задачам комбинаторной оптимизации относятся такие комбинаторному объекту определенного типа ставится в
задачи оптимизации, которые связаны с нахождением соответствие некоторое количественное значение целевой
оптимального значения некоторой целевой функции на функции, рассматриваемой в качестве элемента исходных

117 118
множестве некоторых комбинаторных объектов. Хотя данных. Поскольку для всех комбинаторных объектов имеется
отдельные задачи комбинаторной оптимизации в своей конструктивный способ их перечисления, задачи
исходной постановке формулируются как задачи оптимизации комбинаторной оптимизации оказываются разрешимыми с
на графах, характерным их свойством является наличие у вычислительной точки зрения.
множества допустимых альтернатив некоторой комбинаторной Таким образом, задача комбинаторной оптимизации
структуры. Наличие подобной структуры позволяет не только формулируется как нахождение такого специального
априори оценить мощность исходного множества достижимых комбинаторного объекта, который доставляет максимальное
альтернатив, но и обоснованно подойти к разработке или минимальное значение целевой функции. Более строгое
вычислительных методов решения соответствующих задач определение данного класса задач можно получить на основе
оптимизации. рассмотрения общей математической постановки задачи
Типовыми задачами комбинаторной оптимизации комбинаторной оптимизации и ее связи с задачами булева
являются задача о разбиении и покрытии, задачи размещения программирования.
различных геометрических фигур на плоскости и в В общем случае математическая постановка задачи
пространстве, задачи нахождения комбинаторных объектов, комбинаторной оптимизации может быть сформулирована в
следующем виде: оптимизации можно условно разделить на три класса.
f ( x)  max при x    или f ( x )  min при x    , (4.2.1) 1. Во-первых, многие известные задачи комбинаторной
где переменная x условно обозначает некоторый оптимизации формулируются в форме некоторой задачи
специальный комбинаторный объект, такой как: перестановка, оптимизации на графах. Как было отмечено в разделе 3 , один
размещение или сочетание, а множество допустимых из основных способов решения задачи оптимизации на
альтернатив   содержит все возможные комбинаторные графах связан с постановкой этих задач в форме
объекты рассматриваемого типа. При этом никаких математической модели целочисленного или булева
дополнительных предположений о характере целевой функции программирования. В этом случае выбор способа их решения
или ограничений не делается. Тем не менее, в практических полностью определяется математическими свойствами
задачах комбинаторной оптимизации множество допустимых соответствующей постановки задачи. В этом контексте
альтернатив типовых задач является конечным. Это возможность решения практических задач комбинаторной
обстоятельство позволяет в простых случаях находить оптимизации с помощью программы МS Ехсеl
решение той или иной конкретной задачи комбинаторной непосредственно зависит от возможности ее формулировки в
оптимизации методом простого перебора всех комбинаторных виде задачи целочисленного или булева программирования.
объектов того или иного типа. 2. Во-вторых, задачи комбинаторной оптимизации могут
При рассмотрении математической постановки задачи быть решены с использованием специальных алгоритмов,
комбинаторной оптимизации следует также иметь в виду, что которые учитывают специфические особенности тех или иных
для отдельных индивидуальных задач множество допустимых комбинаторных объектов и конечную мощность множества
альтернатив может оказаться пустым. Например, поиск допустимых альтернатив. В связи с этим для нахождения

119 120
оптимального полного замкнутого пути для несвязных точного решения задач комбинаторной оптимизации могут
графов теряет свой смысл. Именно по этой причине в использоваться общие алгоритмы типа метода ветвей и границ
исходной постановке задач комбинаторной оптимизации и метода динамического программирования. Именно такие
необходимо указывать дополнительные свойства, которым специальные алгоритмы решения типовых задач
должны удовлетворять ее исходные данные, чтобы комбинаторной оптимизации рассматриваются в настоящей
соответствующая задача оптимизации имела допустимые главе.
решения. 3. В-третьих, применительно к решению практических
задач комбинаторной оптимизации становится актуальной
4.3. Основные методы решения задач разработка специальных алгоритмов нахождения
комбинаторной оптимизации приближенного решения. Алгоритмы, позволяющие находить
одно или несколько локально-оптимальных решений, имеют
Хотя общая математическая постановка задачи широкое применение при решении задач комбинаторной
комбинаторной оптимизации (4.2.1.) не дает никакой оптимизации, поскольку нахождение точного решения
информации относительно возможных методов ее решения, соответствующих задач за приемлемое время уже для задач
тем не менее, все методы решения задач комбинаторной небольшой размерности оказывается невозможным даже с
привлечением быстродействующих компьютеров. также необходимость посещения всех этих городов.
Поскольку программа МS Ехсеl позволяет находить Задача коммивояжера, является классическим примером
точное решение задач целочисленного и булева задачи комбинаторной оптимизации. Хотя ее постановка в
программирования, тем самым имеется возможность решения виде задачи оптимизации на графах достаточно проста,
с ее помощью и задач комбинаторной оптимизации. При этом нахождение ее точного решения является достаточно
общий порядок подготовки исходных данных и поиск трудоемким процессом с вычислительной точки зрения.
решения полностью аналогичен порядку, рассмотренному Именно по этой причине методам и алгоритмам ее решения
ранее для решения других типовых задач оптимизации. Для посвящена обширная литература. В этом смысле задача
оценки точности получаемых решений также целесообразно коммивояжера может служить тестовой задачей для проверки
выполнить сравнение полученных различными способами вычислительных алгоритмов решения задач не только
оптимальных решений отдельных практических задач. комбинаторной оптимизации, но и целочисленного
программирования в целом. В настоящей главе
4.4. Задача коммивояжера рассматривается исходная формулировка задачи
коммивояжера в виде задачи оптимизации на графах,
Суть проблемы заключается в следующем. Бродячему используемая для формальной записи условий и решения
торговцу или коммивояжеру необходимо обойти соответствующей задачи оптимизации в виде модели булева
фиксированное число городов, начиная с города, в котором он программирования.
находится, И закончить свой маршрут, вернувшись в исходный
город, не побывав нигде дважды. Пусть для
122
121
определенности это будут города: Москва, Париж, Нью-Йорк, 4.4.1. Математическая постановка задачи
Рио-де-Жанейро, Сидней и Токио. Известна стоимость
перелета между любой парой указанных городов. При этом Рассмотрим ориентированный граф: G  (V , E , h) , в
вовсе не очевидно, что наиболее короткий маршрут будет котором V   v1 , v 2 ,..., v n  - конечное множество вершин,
обладать минимальной стоимостью перелета, которая, в свою E   e1 , e2, ..., em  - конечное множество дуг, h : E  Z -
очередь, реально зависит от авиакомпании, типа рейса и
авиалайнера. весовая функция дуг. Для математической постановки задачи
Требуется определить маршрут или последовательность удобно обозначить отдельные значения весовой функции дуг
через: cij  h(ek ) , где дуга ek  E соответствует
посещения городов, которые обладают минимальной
суммарной стоимостью перелета среди всех возможных упорядоченной паре вершин (v i , v j ) . Согласно
маршрутов. Оценочной функцией в данной задаче является содержательной постановке рассматриваемой задачи значения
суммарная длина полного пути, начинающегося и cij  h((vi , v j )) интерпретируются как длина участка (i , j )
оканчивающегося в некотором городе А (например, в Москве), исходного графа.
а ограничениями служат наличие или отсутствие авиарейса Длина любого подмножества дуг E k  E в графе G
между отдельными городами рассматриваемого списка, а равна сумме весов дуг, входящих в это подмножество.
Требуется определить такое подмножество дуг, которое Тогда в общем случае математическая постановка задачи
образует в графе G замкнутый путь, проходит через каждую коммивояжера может быть сформулирована следующим
вершину ровно один раз и обладает минимальной длиной. образом:
Для формальной записи условий задачи коммивояжера в n n

виде модели булева программирования следует отметить  c


i 1 j 1
ij xij  min при x    (4.4.1)
следующие особенности искомого маршрута в графе:
где множество допустимых альтернатив   формируется
1. Во-первых, каждая из вершин исходного графа должна
иметь в искомом маршруте ровно одну инцидентную ей дугу, следующей системой ограничений типа равенств и
которая является входящей для этой вершины, и ровно одну неравенств:
n
инцидентную ей дугу, которая является выходящей для этой x ij  1 (i  1, 2,..., n )
вершины. В противном случае такие вершины окажутся j 1
изолированными или тупиковыми и, следовательно, путь не (4.4.2)
будет проходить через все вершины исходного графа. n

2. Во-вторых, общее количество дуг в искомом пути x ij  1 (j  1, 2,..., n )


должно быть в точности равно n , где n - общее количество
j 1

(4.4.3)
вершин исходного графа. Действительно, если некоторый путь
u i  u j  n  xij  n  1 (i, j   2,3,..., n , i  j ); (4.4.4)
содержит меньше n дуг, то он не будет проходить через
xij   0,1 , (i , j  1, 1,2, ,..., n )
123 (4.4.5)
все вершины или являться циклическим. Если же искомый
путь содержит больше n дуг, то он не будет удовлетворять 124
условию прохождения каждой вершины ровно один раз. u i  R , (i   2,3,..., n )
1
(4.4.6)
3. В-третьих, что наиболее важно, искомый путь должен В данной математической модели задачи коммивояжера
представлять собой единственный цикл и не должен используются также вспомогательные переменные:
распадаться на отдельные циклы с количеством дуг меньше n u i (i   2,3,..., n ) , x , которые могут принимать любые
, где n — общее количество вершин исходного графа. Это
действительные значения. При этом ограничения (4.4.2) и
условие имеет комбинаторный характер.
(4.4.3) обеспечивают выполнение первых двух указанных
Введем в рассмотрение следующие булевы переменные
ранее условий - искомый путь должен проходить через
x ij , которые интерпретируются следующим образом. каждую вершину графа ровно один раз. Ограничения (4.4.4)
Переменная xij  1 , если дуга (vi , v j ) входит в искомый обеспечивают выполнение третьего из указанных ранее
маршрут минимальной длины, т. е. коммивояжер условий — искомый путь не должен распадаться на отдельные
непосредственно переезжает из i - города в j -й город, и циклы. Ограничения (4.4.5) обеспечивают выполнение
x ij  0 , если дуга (vi , v j ) не входит в оптимальный маршрут, условия - переменные xij должны принимать булевы
т. е. если коммивояжер непосредственно не переезжает из i - значения, а ограничения (4.4.6) обеспечивают выполнение
го города в j - й город. условия - переменные u i должны принимать вещественные
значения. пути в исходном графе будет соответствовать отдельная
Нетрудно показать, что общее количество ограничений перестановка из n элементов ( vi1 , vi 2 , ..., v in ) вершин
(4.4.2)-(4.4.4) равно 2n  (n  1)(n  2)  n 2  n  2 . множества V или, что эквивалентно, перестановка из n
Следует заметить, что те коэффициенты целевой элементов ( i1 , i 2 ,..., i n ) числового множества A  1,2,..., n .
функции cij ‚ для которых весовая функция ребер h Для получения полного замкнутого пути следует каждую
исходного графа не определена или равна 0, в математической перестановку дополнить первым ее элементом: ( i1 , i 2 ,..., i n , i1
постановке рассматриваемой задачи (4.4.1)—(4.4.6) следует ), где i1  1 .
положить равными   , т. е. достаточно большому Тогда математическая постановка задачи коммивояжера в
положительному значению. форме задачи комбинаторной оптимизации может быть
Математическая постановка задачи коммивояжера в сформулирована в следующем виде:
форме (4.4.1)-(4.4.6) предложена А. Таккером (1960 г.) и f ( ai1 , ai 2 ,..., ain , ai1 )  min при ч    (4.4.7)
содержит наименьшее число ограничений. Математическая 
где множество допустимых альтернатив  содержит все
модель данной задачи, предложенная М. Фладом (1956 г.),
основанная на использовании 3-индексных переменных, имеет возможные циклические перестановки вида ( i1 , i 2 ,..., i n , i1 )
n 3 переменных и 2n 2 ограничений. элементов числового множества 1,2,..., n) , а для расчета
Классическая задача коммивояжера формулируется как значений целевой функции f (x ) может быть
нессиметричная, т. е. для случая несимметричного исходного использована

125 126
графа, при котором cij  c ji . Если же cij  c ji , то некоторая матрица значений величин попарной связности этих
соответствующая задача коммивояжера называется элементов, аналогичная матрице смежности взвешенного
симметричной. Нетрудно увидеть, что исходный граф графа.
симметричной задачи коммивояжера является
неориентированным. 4.4.2. Решение задачи коммивояжера с помощью программы
Если в постановке задачи коммивояжера (4.4.1)-(4.4.6) в МS Ехсеl
выражении целевой функции (4.4.1) операцию отыскания
минимума заменить операцией отыскания максимума, то Для решения задачи коммивояжера с помощью
может быть получена математическая постановка программы МS Ехсеl необходимо задать конкретные значения
соответствующей задачи о нахождении полного циклического параметров исходной задачи. С этой целью рассмотрим задачу
пути в графе максимальной длины. коммивояжера для транспортной сети, которая соединяет 6
Нетрудно показать, что задача коммивояжера может быть населенных пунктов в некотором географическом районе.
сформулирована и как задача комбинаторной оптимизации. В Данный район может быть представлен в виде схемы,
этом случае, не ограничивая общности рассматриваемой формально представляющей собой ориентированный связный
задачи, можно считать, что путь коммивояжера начинается и граф, состоящий из 6 вершин, которые связаны между собой
заканчивается в вершине с номером 1. Тогда каждому полному дугами в прямом и обратном направлении (рис. 4.1). Требуется
найти такой полный замкнутый путь, начинающийся в
вершине с номером 1 и заканчивающийся в вершине с 100 x33  8 x31  5 x32  5 x34  5 x35  9 x36  (4.4.8)
номером 6, чтобы общая длина пути была минимальной. 100 x 44  5 x 41  10 x 42  5 x 43  7 x 45  10 x 46 
100 x55  6 x51  4 x52  4 x53  9 x54  4 x56 
100 x66  5 x 61  x62  4 x63  8 x64  3 x66  min при x   
где множество допустимых альтернатив   формируется
следующей системой ограничений типа неравенств:
x 21  x 22  x 23  x 24  x 25  x 26  1;
x31  x32  x33  x34  x35  x36  1;
x 41  x 42  x 43  x 44  x 45  x 46  1; (4.4.9)
x51  x52  x53  x54  x55  x56  1;
x61  x62  x63  x64  x65  x66  1;
x11  x 21  x31  x 41  x51  x61  1;
Рис. 4.1. Исходный граф индивидуальной задачи
коммивояжера x12  x 22  x32  x 42  x52  x62  1;

128
127 x13  x 23  x33  x 43  x53  x63  1;
Переменными математической модели данной x14  x 24  x34  x 44  x54  x64  1;
индивидуальной задачи коммивояжера являются, во-первых, x15  x 25  x35  x 45  x55  x 65  1;
36 переменных: xij (i, j  1,2,...,6 ) ‚ каждая из которых x16  x 26  x36  x 46  x56  x66  1;
xij принимает значение 1, если дуга (i , j ) входит в u 2  u 3  6 x 23  5;
минимальный полный путь, и 0 - в противном случае и, во- …………………..
вторых, 5 вспомогательных переменных: u 6  u 5  6 x 65  5;
u i (i, i   2,3,...,6 ) ‚ которые могут принимать любые
x11 , x12 ,..., x16 ,...x 61 , x 62 ,..., x 66   0,1 ;
действительные значения. Дополнительно для удобства
u1 , u 2 ,..., u 6  R 1
вычислений следует установить значения весов cij равными
Следует заметить, что в математической постановке
некоторому достаточно большому положительному числу,
индивидуальной задачи коммивояжера (4.4.8) и (4.4.9) первые
например, cij  100(i, i   2,3,...,6 ) .
6 ограничений соответствуют ограничениям (4.4.2),
Тогда математическая постановка рассматриваемой следующие 6 ограничений соответствуют ограничениям xij
индивидуальной задачи коммивояжера может быть записана в
(4.4.3), из 20 ограничений вида (4.4.4) приведены только
следующем виде:
первое и последнее.
100 x11  4 x12  10 x13  13x14  4 x15  8 x16 
При этом предполагается, что переменные:
100 x 22  2 x 21  9 x 23  7 x 24  6 x 25  7 x 26  xij  0 (i  1,2,3,4,5,6 ) и поэтому не включаются в
постановку задачи (4.4.7) и (4.4.8). оптимизации можно воспользоваться специальным
Результатом решения данной индивидуальной задачи алгоритмом динамического программирования.
коммивояжера являются найденные оптимальные значения
переменных: x15  15 , x 21  1 , x34  1 , x 46  1 , x53  1 , 4.4.3. Решение задачи коммивояжера с помощью
x 62  1 , остальные переменные равны 0. Найденному алгоритма динамического программирования
оптимальному решению соответствует значение целевой
функции: f опт  26 . Для решения задачи комбинаторного анализа метод
динамического программирования требует некоторого
Анализ найденного решения показывает, что замкнутый
уточнения, учитывающее специфику и комбинаторный
маршрут минимальной длины, проходящий через все вершины
характер каждой типовой задачи.
ориентированного графа (см. рис. 4.1), содержит следующие
Применительно к задаче коммивояжера в теоретико-
дуги: (1, 5), (2, 1), (3, 4), (4, 6), (5, З), (6, 2). Тем самым найден
графовой постановке для формулировки принципа
оптимальный полный замкнутый маршрут, начинающийся и
оптимальности Р. Беллмана следует некоторым образом
заканчивающийся в вершине с номером 1 и
определить многошаговую схему последовательного принятия
129
130
включающий в себя последовательное посещение населенных
решения. С этой целью рассмотрим процесс принятия
пунктов: из 1 в 5, из 5 в 3, из 3 в 4, из 4 в 6, из 6 в 2, из 2 в 1
решения о перемещении из некоторой вершины м, при
(рис. 4.2). При этом общая длина этого пути будет
минимальной и равна 26 км. условии, что до этого уже пройдены вершины: vi1 , vi 2 ,..., xik .
Очевидно, на этом этапе может быть принято решение о
перемещении только в одну из вершин множества

V \  vi1 , vi2 ,..., xik , vi  . Причем по-прежнему предполагается,

что коммивояжер начинает и заканчивает свой путь в вершине


с номером 1.
Для решения задачи коммивояжера с помощью метода
динамического программирования необходимо
конкретизировать принцип оптимальности Р. Беллмана. С этой
целью для задачи коммивояжера в комбинаторной постановке
запишем основное функциональное уравнение, отражающее
Рис. 4.2. Полный замкнутый путь минимальной длины в многошаговый характер общей схемы метода динамического
исходном графе программирования.
Для дополнительной проверки получаемых с помощью Основное функциональное уравнение, которое отражает
программы MS Ехсеl решений данной задачи комбинаторной принцип оптимальности применительно к решению задачи
коммивояжера (8.2.7), имеет следующий вид:
 
hk (1; i1 , i2 ,..., ik ; ik 1 )  min hk 1 (1; i1 , i2 ,..., ik ; ak )  C aiik 1 ) при характере соотношений (4.4.10) и (4.4.11). Алгоритм метода
динамического программирования имеет итеративный
характер и заключается в выполнении следующих действий:
ai   2,3,..., n \ 1; i1 , i2 ,..., ik  1. Предварительное определение значений функций h0 .
До начала выполнения основных итераций алгоритма
где рассматриваются только такие перестановки вида ( задаются значения функций h0 (1, i )  c1i (i   2,3,..., n ) .
1; i1 , i2 ,..., ik ; ik 1 ) из элементов числового множества
После чего следует перейти к выполнению действий шага 2.
1,2,..., n , в которых первый элемент всегда равен 1, а 2. Прямая последовательность расчета. С
последний некоторому числу использованием рекуррентных соотношений (4.4.10)

ik 1   2,3,..., n \ 1; i1 , i2 ,..., ik ; ak  . Последнее условие


последовательно рассчитываются значения функций hk для
значений k от 1 до n  1 , где n - количество вершин
исходного графа. Одновременно с этим находятся и
отвечает требованию однократного посещения запоминаются условно оптимальные значения перестановок
коммивояжером каждого из населенных пунктов заданного (1; i1 , i2 ,..., i k ; i k 1 ) для всех значений i от 2 до n . После
региона. Следует заметить, что для k  n  1 значение i n  1 .
чего следует перейти к выполнению действий шага З.
Значения величин связности элементов cij соответствуют 3. Нахождение оптимального значения целевой функции.
весам дуг матрицы смежности исходного графа. При этом Среди всех найденных на предыдущем шаге значений
значение k изменяется от 0 до n  1 . Здесь функций hn 1 с использованием выражения (4.4.11)
находится минимальное значение. Эго значение равно
оптимальному
131
функция h0 (1; i ) по определению равна c1i , а функция 132
hn 1 (1; i1 , i 2 ,..., i k ; i n ) определяет значение минимального
пути, начинающегося в вершине с номером 1 и значению целевой функции (4.4.7), которому соответствует
заканчивающегося в вершине с номером n . оптимальное решение - полная циклическая перестановка:
Тогда решение задачи коммивояжера для циклического пути x *  (1; i1 , i 2 ,..., i k ; i k 1 ) . На этом выполнение алгоритма
находится с использованием следующей формулы: заканчивается.
x *  arg min(hn 1 (1; i1 , i 2 ,..., i k ; i)  c i1 ) Нетрудно заметить, что в силу конечности общего
количества вершин исходного графа рассмотренный алгоритм
i   2,3,..., n \  i1 , i 2 ,..., i n 1  метода динамического программирования является конечным.
Тем не менее, комбинаторный характер данной задачи
(4.4.11) ограничивает практические возможности нахождения точного
Метод динамического программирования, решения задач этого класса с помощью метода динамического
ориентированный на решение задачи коммивояжера в программирования.
комбинаторной постановке, основывается на рекуррентном Проиллюстрируем использование рассмотренного
алгоритма метода динамического программирования для h2 (1;2;3;4)  18 , h2 (1;5;6;4)  16 , h2 (1;2;3;5)  18 ,
решения индивидуальной задачи коммивояжера, исходный h2 (1;2;4;5)  18 , h2 (1;2;6;5)  14 , h2 (1;3;4;5)  22 ,
граф которой изображен на рис. 4.1. В соответствии с h2 (1;6;3;5)  17 , h2 (1;6;4;5)  23 , h2 (1;2;3;6)  22 ,
описанной ранее схемой алгоритма следует выполнить
h2 (1;2;4;6)  21 , h2 (1;2;5;6)  14 , h2 (1;3;4;6)  25 ,
следующие практические действия.
Шаг 1. До начала выполнения основных итераций h2 (1;5;3;6)  17 , h2 (1;5;4;6)  23 ,
алгоритма задаются значения функций: h0 (1;2)  4, h2 (1;5;4;6)  23 , h2 (1;3;42)  23 ,
h0 (1;3)  10, h0 (1;4)  13, h0 (1;5)  4, h0 (1;6)  8 . После h2 (1;3;42)  23 , h2 (1;3;42)  23 .
этого следует перейти к выполнению действий первой После этого следует перейти к выполнению Действий третьей
итерации шага 2. итерации шага 2.
Шаг 2 (первая итерация). С использованием Шаг 2 (третья итерация). С использованием
рекуррентных соотношений (4.4.10) последовательно рекуррентных соотношений (4.4.10) последовательно
рассчитываются значения функций h1 для значений k  1 . рассчитываются значения функций h3 для значений k  3 .
Соответствующие значения функций равны: h1 (1;3;2)  15 , Соответствующие значения функций равны:
h1 (1;4;2)  21 , h1 (1;5;2)  8 , h1 (1;6;2)  9 , h3 (1;5;3;4;2)  21 , h3 (1;6;3;4;2)  25 ,
h1 (1;2;3)  13 , h1 (1;4;3)  18 , h1 (1;5;3)  8 , h3 (1;5;6;3;2)  17 ,
h1 (1;6;3)  12 , h1 (1;2;4)  11 , h1 (1;3;4)  15 , h3 (1;4;5;6;2)  24 , h3 (1;5;2;4;3)  20 ,
h1 (1;5;4)  13 , h1 (1;6;4)  16 , h1 (1;2;5)  10 , h3 (1;6;2;4;3)  21 ,
h1 (1;3;5)  15 , h1 (1;4;5)  20 , h1 (1;6;5)  11 , h3 (1;2;5;6;3)  18 , h3 (1;5;6;4;3)  21 ,
h1 (1;2;6)  11 , h1 (1;3;6)  19 , h1 (1;4;6)  23 , h3 (1;2;5;3;4)  19 ,
h1 (1;5;6)  8 . h3 (1;2;6;3;4)  20 , h3 (1;5;6;2;4)  16 ,
h3 (1;5;6;3;4)  17 ,
133 h3 (1;2;4;3;5)  21 , h3 (1;2;6;3;5)  20 ,
После этого следует перейти к выполнению действий h3 (1;6;2;4;5)  23 ,
второй итерации шага 2. h3 (1;6;3;4;5)  24 , h3 (1;2;4;3;6)  25 ,
Шаг 2 (вторая итерация). С использованием h3 (1;3;5;2;6)  20 ,
рекуррентных соотношений (4.4.10) последовательно
h3 (1;2;4;5;6)  22 , h3 (1;5;3;4;6)  23 .
рассчитываются значения функций h2 для значений
k  2 . Соответствующие значения функций равны:
134
h2 (1;3;42)  23 , h2 (1;5;32)  13 h2 (1;6;3;2)  17 ,
После этого следует перейти к выполнению действий
h2 (1;5;4;2)  21 , h2 (1;4;6;2)  24 , h2 (1;5;6;2)  9 , четвертой итерации шага 2.
h2 (1;2;4;3)  16 , h2 (1;2;5;3)  14 , h2 (1;2;6;3)  15 , Шаг 2 (четвертая итерация). С использованием
h2 (1;5;4;3)  18 . h2 (1;6;4;3)  21 , h2 (1;5;6;3)  12 , рекуррентных соотношений (4.4.10) последовательно
рассчитываются значения функций h4 для значений k  4 .
Соответствующие значения функций равны: 4.5. Задача о разбиении
h4 (1;5;3;4;6;2)  24 , h4 (1;5;6;2;4;3)  21 ,
h4 (1;2;5;6;3;4)  23 , h4 (1;6;2;4;3;5)  26 , Многие прикладные задачи оптимизации могут быть
сформулированы в форме задачи о разбиении некоторого
h4 (1;24;3;5;6)  25 .
конечного множества объектов на фиксированное число
После этого следует перейти к выполнению действий подмножеств или классов разбиения, так чтобы
пятой итерации шага 2. обеспечивалось оптимальное значение некоторого критерия.
Шаг 2 (пятая итерация). С использованием рекуррентных Одна из наиболее известных задач этого типа связана с
соотношений (4.4.10) последовательно рассчитываются проектированием радиоэлектронной аппаратуры.
значения функций h5 для значений k  5 . Соответствующие Сущность задачи проектирования радиоэлектронной
значения функций равны: аппаратуры заключается в следующем. Научно-
h5 (1;5;3;4;6;2;1)  26 , h5 (1;5;6;2;4;3;1)  29 , производственное предприятие проектирует некоторое
h5 (1;2;5;6;3;4;1)  28 , радиоэлектронное устройство, например, локатор или ТВ-
h5 (1;6;2;4;3;5;1)  32 , h5 (1;2;4;3;5;6;1)  30 . передатчик, которое согласно проектной документации
После этого следует перейти к выполнению действий должно состоять из отдельных аппаратурных модулей. Для
пятой итерации шага 3. изготовления этих модулей используются радиоэлектронные
Шаг 3 (пятая итерация). Среди всех найденных на компоненты. Известен общий состав этих компонентов,
предыдущем шаге значений функций h5 с использованием необходимых для изготовления одного требуемого устройства,
и электрическая схема их соединения. При этом каждый
выражения (4.4.11) находится минимальное значение. Это
радиоэлектронный компонент обладает некоторой мощностью
значение равно: h5 (1;5;3;4;6;2;1)  26 , которому потребления энергии, а отдельные компоненты должны быть
соответствует оптимальное решение - полная циклическая соединены между собой электрическими шинами, количество
перестановка: x *  (1;5;3;4;6;2;1) . На этом выполнение проводников в которых определяется электрической схемой их
алгоритма заканчивается. соединения. Задана предельная величина мощности всех
Таким образом, результатом решения комбинаторной компонентов в модуле. Причем эту предельную мощность при
задачи коммивояжера методом динамического размещении компонентов в одном модуле по техническим
программирования является найденное оптимальное значение условиям нельзя превышать.
перестановки: x *  (1;5;3;4;6;2;1) , которой соответствует Задача состоит в том, чтобы все имеющиеся компоненты
значение целевой функции: / f опт  26 км. разбить на отдельные модули, так чтобы общая мощность
Анализ результатов решения задачи коммивояжера с
136
135 компонентов в каждом модуле не превышала заданной
помощью программы MS Ехсеl и методом динамического предельной величины и при этом все размещаемые в каждом
программирования показывает их полное совпадение, что из модулей компоненты имели максимальное по количеству
служит веским аргументом в пользу их достоверности. проводников электрических шин для связи между собой.
образом:
4.5.1. Математическая постановка задачи 1 r n n
 cij xik x jk  max при x   
2 k 1 i 1 j 1
Исходная постановка задачи о разбиении может быть
(4.5.1)
сформулирована в форме следующей задачи оптимизации на
где множество допустимых альтернатив   формируется
графах. С этой целью рассмотрим связный
неориентированный граф: G  (V , E , d , h ) , в котором: следующей системой ограничений типа равенств и
неравенств:
V   v1 , v 2 ,..., v n  - конечное множество вершин, r
E   e1 , e2 ,..., em  - конечное множество ребер, d : V  Z  - x ik  1, (i  1,2,..., n );
k 1
весовая функция вершин, h : E  Z  -весовая функция ребер. (4.5.2)
Дополнительно задано некоторое положительное число w , n
интерпретируемое как максимально допустимый вес вершин в d x i ik  w, (k  1,2,..., r  ); (4.5.3)
каждом из подмножеств разбиения, а также натуральное r - i 1

максимальное количество подмножеств разбиения. xik   0,1 , (i  1,2,..., n ), (k  1,2,..., r ) ,
Требуется определить такое разбиение вершин графа на (4.5.4)
подмножества, при котором обеспечивается максимум суммы Здесь cij  h(vi , v j ) - вес ребра (vi , v j ) , которому
весов ребер для всех вершин, входящих в каждое из соответствует ei  E ; d (vi ) - вес вершины vi  V ; r -
подмножеств разбиения, и удовлетворяются следующие два общее количество подмножеств разбиения.
условия: В данной математической модели задачи разбиения графа
1. Каждая из вершин исходного графа может ограничения (4.5.1) обеспечивают выполнение первого из двух
принадлежать только одному подмножеству разбиения. В указанных ранее условий. Ограничения (4.5.3) обеспечивают
противном случае решение не будет удовлетворять выполнение второго из указанных ранее условий.
определению разбиения. Ограничения (4.5.4) обеспечивают выполнение общего
2. Общая сумма весов вершин в каждом из подмножеств
условия - переменные xik должны принимать булевы
искомого разбиения не должна превышать заданного
значения. Нетрудно показать, что общее количество
максимально допустимого веса вершин подмножества w .
ограничений (4.5.2) и (4.5.3) равно: n  r .
Для формулировки задачи о разбиении в виде модели
Задача о разбиении может быть также сформулирована
булева программирования введем в рассмотрение следующие
как задача комбинаторной оптимизации. Каждому
137
138
булевы переменные: xik  1 , если вершина vi , входит в k - е
допустимому решению задачи о разбиении соответствует
подмножество разбиения, xik  0 в противном случае, т. е. некоторое разбиение R   A1 , A2 ,..., An  , где каждый класс
если вершина vi - не входит в k -е подмножество разбиения.
раз-биения Ai (i  1,2,..., r ) состоит из вершин исходного
Тогда в общем случае математическая постановка задачи
графа G  (V , E , d , h) или, что эквивалентно, из элементов
о разбиении может быть сформулирована следующим
числового множества A  1,2,..., n . Тогда математическая каждому из 8 компонентов поставлена в соответствие
постановка задачи о разбиении в форме задачи комбинаторной отдельная вершина графа, а электрическому соединению
оптимизации может быть сформулирована в следующем виде: компонентов в форме шины - соответствующее ребро графа.
f ( R )  max при R    (4.5.5) Количество электрических проводников в шине указано рядом
где множество допустимых альтернатив   содержит все с соответствующим ребром графа, а потребляемая мощность
возможные разбиения множества вершин исходного графа или компонента, измеряемая, например, в КВт, указана рядом с
числового множества A  1,2,..., n на r классов, которые обозначением вершины в скобках. При этом предельная
величина мощности компонентов, размещаемых на отдельном
удовлетворяют следующим ограничениям:
d (vi1 )  d (vi 2  ...  d (viq )  w(Ai  R ) ,
модуле, не должна превышать 12 КВт.
Требуется найти такое разбиение всех 8 компонентов на
(4.5.6) модули, так чтобы общая мощность компонентов в каждом
где каждый класс Ai (i  1,2,..., r ) , входящий в модуле не превышала заданной предельной величины 12 КВт,
допустимое разбиение R Ai  i1 , i2 ,..., i q  R ,состоит из и при этом размещаемые в каждом из модулей компоненты
вершин Ai  vi1 , vi 2 ,..., viq  или из элементов имели по максимальному количеству проводников
Ai  i1 , i 2 ,..., i q  . При этом для каждого разбиения электрических шин для связи между собой.
предполагаются выполненными общие условия
непересекаемости классов и принадлежности каждого
элемента исходного множества одному из классов
допустимого разбиения.
Значения целевой функции f (r ) определяются как
общая сумма величин связности каждой пары элементов,
попадающих в один класс допустимого разбиения, аналогично
выражению (4.5.1).

4.5.2. Решение задачи о разбиении с помощью программы MS Рис. 4.3.. Исходный граф индивидуальной задачи о разбиении
Ехсеl
Поскольку в рассматриваемой индивидуальной задаче о
Для решения задачи о разбиении с помощью программы разбиении не указано общее число подмножеств разбиения г,
MS Ехсеl необходимо задать конкретные значения то в общем случае при решении данной задачи с помощью
139 140
параметрам исходной задачи. С этой целью рассмотрим задачу программы MS Ехсеl удобно считать r  n  8 . Тогда в
о разбиении 8 радиоэлектронных компонентов на модули. качестве переменных математической модели данной
Электрическая схема соединения этих компонентов индивидуальной задачи о разбиении следует рассмотреть 64
формально представлена в виде графа (рис. 4.3). В этом случае переменные xik (i, k  1,2,...,8 ) .
В этом случае математическая постановка разбиении являются следующие значения переменных x15  1,
рассматриваемой индивидуальной задачи о разбиении может x 25  1, x35  1, x 45  1, x 68  1, x58  1, x 78  1,
быть записана в следующем виде: x88  1, остальные переменные равны нулю. Найденному
9 x11 x 21  7 x11 x 41  x11 x61  4 x 21 x31  5 x31 x 41  x31 x81 
оптимальному решению соответствует значение целевой
(4.5.7) функции: f опт  44 .
3 x 41 x51  2 x51 x 61  9 x51 x81  6 x 61 x 71  2 x 71 x81  ... 
Анализ найденного решения показывает, что
…+ 9 x18 x 28  7 x18 x 48  x18 x68  4 x 28 x38  5 x38 x 48  x38 x88  оптимальное разбиение всех вершин исходного графа (см. рис.
3 x 41 x51  2 x51 x 61  9 x51 x81  6 x 61 x 71  2 x 71 x81  max при x    , 4.3) содержит два класса, первый из которых содержит
где множество допустимых альтернатив   формируется вершины с номерами: 1, 2, 3 и 4, а второй — вершины с номе-
следующей системой ограничений типа равенств и рами: 5, 6, 7 и 8 (рис. 4.4). Этому разбиению вершин графа
неравенств: соответствует разбиение исходных 8 радиоэлектронных
8 8 8 компонентов на 2 модуля, в первом из которых должны быть
x
j 1
1j  1; x
j 1
2j  1; …;  x8 j  1;
j 1
размещены компоненты с номерами: 1, 2, 3 и 4, а во втором—
компоненты с номерами: 5, 6, 7 и 8. При этом общая мощность
4 x11  2 x 21  3x31  2 x 41  3 x51  x61  3 x71  5 x81  12;
компонентов в каждом модуле не будет превышать заданной
4 x12  2 x 22  3 x32  2 x 42  3x52  x62  3 x72  5 x82  12; предельной величины 12 КВт, а размещаемые в каждом из
4 x13  2 x 23  3 x33  2 x 43  3 x53  x 63  3 x73  5 x83  12; модулей компоненты имеют по максимальному количеству
4 x14  2 x 24  3x34  2 x 44  3 x54  x64  3 x74  5 x8  12; проводников электрических шин для связи между собой. При
4 x15  2 x 25  3 x35  2 x 45  3 x55  x65  3 x75  5 x85  12; (4.5.8) этом общее количество этих проводников будет максимальным
4 x16  2 x 26  3x36  2 x 46  3 x56  x 66  3x76  5 x86  12; и равным 44.
4 x17  2 x 27  3x37  2 x 47  3x57  x67  3x77  5 x87  12;
4 x18  2 x 28  3x38  2 x 48  3x58  x68  3x78  5 x88  12;
xij   0,1 , i  1,2,...,8, j  1,2,...,8
Следует заметить, что в математической постановке
индивидуальной задачи о разбиении (4.5.7) и (4.5.8) в
выражении для целевой функции (4.5.7) записаны только те
произведения переменных, которые соответствуют ребрам
Рис. 4.4.. Оптимальное разбиение вершин в исходном графе
141 142
исходного графа, имеющим ненулевой вес. Первые 8 8.4. Упражнения
ограничений (4.5.8) соответствуют ограничениям (4.5.2),
следующие 8 ограничений (4.5.8) соответствуют В качестве упражнений для самостоятельного решения
ограничениям (5.5.3). предлагаются задачи, аналогичные типовым задачам
Результатом решения рассматриваемой задачи о комбинаторной оптимизации, рассмотренным раннее.
Предлагаемые в качестве упражнений задачи оптимизации V4 0 15 0 0 10 0 9 0 2
содержат конкретные значения исходных данных в форме V5 9 0 0 10 0 15 0 16 6
матриц смежности взвешенных графов, что позволяет V6 0 12 14 0 15 0 9 0 4
получить их количественное решение с помощью программы V7 8 0 11 9 0 9 0 13 5
MS Ехсеl.
V8 12 9 0 0 16 0 0 0 3
Задача коммивояжера
Для ориентированного графа, матрица весов дуг которого
представлена далее, определить оптимальный замкнутый путь,
проходящий через каждую вершину ровно один раз и ЗАКЛЮЧЕНИЕ
обладающий минимальной общей длиной.
V3 V5 V6 V7 Курс “Методы оптимизации” помимо своего прямого назначения:
Вершины V1 V2 V4
осуществлять поиск оптимального решения, закрепляет знания,
V8 полученные студентами за предшествующий период обучения.
V1 0 15 7 10 9 21 5 11 В ходе решения задачи оптимизации студент последовательно
V2 17 0 10 15 7 12 6 9 проходит такие этапы.
V3 11 9 0 13 25 14 8 10 1. Формирование содержательной модели оптимизируемого
V4 12 7 13 0 21 24 10 17 процесса, что требует от него знаний в области физики
V5 23 8 9 13 0 15 21 16 рассматриваемого процесса, если решается техническая задача, либо
экономики, если решается задача экономической природы,
V6 17 21 8 11 13 0 10 14
2. Формирование математической модели потребует
V7 9 11 20 15 10 17 0 8 привлечения методов дифференциального и интегрального
V8 7 12 17 10 9 11 22 0 исчисления, методов дискретной математики, методов статистики,
Задача о разбиении теории графов, комбинаторики и т.д.
Для неориентированного графа, матрица весов ребер и 3. Выбор и реализация метода решения требует привлечения
веса вершин которого представлена далее, определить методов алгоритмизации, вычислительных методов.
оптимальное разбиение вершин, общий вес вершин в классах 4. Для анализа полученного решения приходится возвращаться
которого не превосходит величины 15, а общая сумма к содержательной постановке задачи, физике процесса, произвести
попарных весов ребер для вершин во всех классах является оценку достоверности использованных методов и алгоритмов,
максимальной. организовать правильную коррекцию вычислительного процесса
144
143 Следует осознавать, что прохождение перечисленных
Вершины V1 V2 V3 V4 V5 V6 V7 V8 этапов с ростом размерности решаемых задач значительно
Вес усложняется, даже, несмотря на использование
V1 0 10 7 0 9 0 8 12 3 высокопроизводительной вычислительной техники и мощных
V2 10 0 0 15 0 12 0 9 4 современных программных сред и алгоритмов. Поэтому
V3 умение анализировать полученные решения и умение
7 0 0 0 0 14 11 0 7
использовать адекватную коррекцию как моделей, так и 12. Окулов С.М. Динамическое программирование. М.:
методов решения, является ценным качеством специалистов, БИНОМ, 2012. - - 296 с.
занимающихся решением оптимизационных задач.
ОГЛАВЛЕНИЕ
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
ВВЕДЕНИЕ………………………………………………………3
1. Струченков В.И. Методы оптимизации в прикладных 1. ЗАДАЧИ И МЕТОДЫ ЛИНЕЙНОГО ПРОГРАММИ-
задачах. – М.: СОЛОН-ПРЕСС, 2009. – 320 с. РОВАНИЯ………………………………………………………..5
2. Палий И.А. Линейное программирование: Учеб. 1.1. Основные формы записи задачи линейного
пособие /И.А. Палий. – М.: Эксмо, 2008. - 256 с. программирования……………………………………………….7
3. Урубков А.Р. Курс МВА по оптимизации управленческих 1.2. Симплекс-метод…………................................................9
решений. Практическое руководство по исследованию моделей 1.3. Двойственность в линейном программировании…... 19
линейного программирования / А.Р. Урубков. – М.: Альпина 1.4. Практическое применение методов линейного
Бизнес Букс, 2006. – 176 с. программирования……………………………………………...24
4. Реклейтис Г., Рейвендрайн А., Рэгсдел К. Оптимизация в 1.4.1. Модели и задачи формирования оптимальных
технике: Пер. с англ.- М.: Мир, 1986.- 320 с. производственных программ…………………………………..24
5. Химмельблау Д. Прикладное нелинейное 1.4.2. Модели и задачи транспортного
программирование: Пер. с англ.. – М.: Мир, 1975.-525 с. типа………………………………………………………………29
6. Фиакко А., Мак-Кормик Нелинейное 1.4.3. Модели и задачи распределительного
программирование. Методы последовательной безусловной типа………………………………………………………………39
оптимизации. Мир, М.:, 1972. - 240 с. 1.4.4. Модели оптимального распределения
7. Пантелеев А.В. Методы оптимизации в примерах и ресурсов…………………………………………………………48
задачах: Учеб. пособие/ Высш. шк., 2005.- 544 с. 2. МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ...56
8. Леоненков А. В. Решение задач оптимизации в среде MS 2.1. Классификация методов нелинейного
Excel. – СПб.: БХВ – Петербург, 2005.-704 с. программирования……………………………………………...56
9. Полунин И.Ф. Курс математического программирования: 2.2. Эффективные методы одномерного поиска………….57
145 2.3. Методы оптимизации без ограничений,
использующие производные…………………………………...62
146
Учеб. пособие / И.Ф. Полухин. – М.: Высш. шк., 2008. - 464 с. 2.3.1. Метод наискорейшего спуска…………………..64
10. Андерсон Джеймс А. Дискретная математика и 2.3.2. Метод вторых производных (метод Нъютона)..67
комбинаторика: Пер. с англ. – М.: Издательский дом ‘Вильямс’, 2.3.3. Сопряженность и сопряженные направления…70
2004.- 260 с. 2.3.4. Методы переменной метрики…………………..74
11. Христос Х., Пападимитриу, Кеннет Стайглиц 2.4. Нелинейное программирование с ограничениями
Комбинаторная оптимизация. Алгоритмы и сложность. М.: Мир, в виде равенств и неравенств………………………………….76
1988. -510 с. 2.4.1. Методы внутренней точки для решения
задач оптимизации с ограничениями………………………….78 программы МS Ехсеl…………………………………………127
2.4.2. Метод внешней точки для минимизации функций 4.4.3. Решение задачи коммивояжера с помощью
с ограничениями…………………………………….82 алгоритма динамического программирования……………..130
2.4.3. Различия между методами внутренней и 4.5. Задача о разбиении…………………………………..136
внешней точки………………………………………………….83 4.5.1. Математическая постановка задачи…………137
3. ЗАДАЧИ ОПТИМИЗАЦИИ НА ГРАФАХ ……………..84 4.5.2. Решение задачи о разбиении с помощью
3.1. Задача о минимальном покрывающем дереве в программы MS Ехсеl…………………………………………139
графе……………………………………………………………..86 ЗАКЛЮЧЕНИЕ……………………………………………….144
3.1.1. Математическая постановка задачи……………..? БИБЛИОГРАФИЧЕСКИЙ СПИСОК…………………… 145
3.1.2. Решение задачи о минимальном и максимальном
покрывающем дереве в графе с помощью программы
MS Ехсеl…………………………………………………………91
3.2. Задача о минимальном пути в графе………………….94
3.2.1. Математическая постановка задачи……………..95
3.2.2. Решение задачи о минимальном пути в
ориентированном графе с помощью программы MS Ехсеl….97
3.3. Содержательная постановка задачи нахождения
критического пути выполнения бизнес-процесса…………..100
3.3.1. Математическая постановка задачи…………...104
3.3.2. Решение задачи нахождения критического
пути в сетевом графе с помощью программы МS Ехсеl…...105
3.4. Задача о максимальном потоке в сети………………108
3.4.1. Математическая постановка задачи……………109
3.4.2. Решение задачи о максимальном потоке
в сети с помощью программы МS Ехсеl……………………..111
4. ЗАДАЧИ КОМБИНАТОРНОЙ ОПТИМИЗАЦИИ…….116
4.1. Общая характеристика задач комбинаторной
оптимизации…………………………………………………...117 148
147
4.2. Математическая постановка задачи комбинаторной
оптимизации…………………………………………………...118 Учебное издание
4.3. Основные методы решения задач
комбинаторной оптимизации………………………………...120 Холопкина Людмила Владимировна
4.4. Задача коммивояжера………………………………..121 Кремер Ольга Борисовна
4.4.1. Математическая постановка задачи………….123
4.4.2. Решение задачи коммивояжера с помощью
МЕТОДЫ ОПТИМИЗАЦИИ. КОМПЬЮТЕРНЫЕ
ТЕХНОЛОГИИ

В авторской редакции

Компьютерный набор Л.В. Холопкиной, О.Б. Кремер

Подписано в печать 2016


Формат 60x84/16. Бумага для множительных аппаратов.
Усл. Печ. Л. Уч.-изд. Л. . Тираж экз.
Заказ № .

ФГБОУ ВО “Воронежский государственный технический


университет”
394026 Воронеж, Московский просп., 14

Оценить