- •Учебно-методические материалы к изучению дисциплины «Методы оптимизации» (конспект лекций)
- •1. Классификация задач оптимизации
- •2. Классификация математических методов и моделей в экономике
- •3. Линейное программирование
- •3.1. Постановка задачи линейного программирования
- •3.2. Экономическая интерпретация задач линейного программирования
- •3.3. Требования совместности условий
- •3.4. Графический метод решения задач линейного программирования
- •3.5. Симплекс-метод
- •3.6. Модифицированный симплекс-метод
- •3.7. Построение опорных планов
- •3.8. Условия оптимальности
- •3.9. Метод искусственного базиса
- •3.10. Транспортная задача
- •3.11. Двойственные задачи линейного программирования
- •3.12. Устойчивость оптимизационного решения
- •4. Нелинейное программирование
- •4.1. Классификация и общая постановка задач нелинейного программирования
- •4.2. Метод множителей Лагранжа
- •4.3. Возможные обобщения метода множителей. Седловая точка функции Лагранжа
- •4.4. Оптимальные решения при ограничениях-неравенствах. Теорема Куна - Таккера
- •4.5. Выпуклое программирование. Задача выпуклого программирования
- •4.6. Квадратичное программирование
- •4.7. Градиентные методы
- •5. Оптимизация на графах
- •5.1. Основные понятия теории графов
- •5.2. Связность
- •5.3. Подграфы
- •5.4. Матрица графов
- •5.5. Потоки в сетях
- •5.6. Задача о максимальном потоке сети
- •5.7. Задача о кратчайшем пути
- •5.8. Задача коммивояжера
- •5.9. Оптимизация сетевого графика
- •5.10. Методы оптимизации производственной программы
- •6. Динамическое программирование
- •6.1. Общая постановка задачи динамического программирования
- •6.2. Принцип оптимальности. Уравнение Беллмана
- •6.3. Простейшие экономические задачи, решаемые методом динамического программирования
- •7. Математические модели потребительского поведения и спроса
- •7.1. Отношение предпочтения и функция полезности
- •7.2. Решение задачи об оптимальном выборе потребителя
- •7.3. Функции спроса. Коэффициент эластичности
5.4. Матрица графов
Граф может быть задан разными способами: рисунком, перечислением вершин и ребер (или дуг) и т. д. Одним из самых удобных способов является задание графа с помощью матрицы. Пусть некоторый граф G имеет п вершин и т ребер . Построим матрицу, имеющую п строк и т столбцов. Каждая строка матрицы будет соответствовать вершине, а столбец - ребру графа. В столбце все элементы, кроме двух, будут равны нулю. Для ориентированного графа в строке, соответствующей начальной вершине дуги , ставят число +1, а в строке, соответствующей конечной вершине, - число -1. Для неориентированного графа в строках матрицы, соответствующих концевым вершинам ребра , ставят 1, а в остальных строках - 0. Построенные матрицы называются матрицами инциденций графа.
5.5. Потоки в сетях
Сетью называется граф, элементам которого поставлены в соответствие некоторые параметры. Далее элементы множества N будем называть узлами, а множества А - дугами. Пусть каждой дуге некоторой сети G = [N, а] поставлено в соответствие неотрицательное (действительное) число , называемое пропускной способностью дуги . Функция С, отображающая множество А в множество неотрицательных чисел, называется функцией пропускной способности. Пусть s и t - два различных узла из N. Стационарный поток величины v из s в t в сети [N, а] есть функция f, отображающая множество А в множество неотрицательных чисел, удовлетворяющая линейным уравнениям и неравенствам
(4)
для всех , (5)
где («после x»), («перед x»).
Будем называть узел s - источником, узел t - стоком, а остальные узлы - промежуточными.
Если дан поток f, то число f(x,y) называется дуговым потоком f(x,y) или потоком по дуге (х,у). Поскольку f=0 и v=0 удовлетворяют условиям (4) и (5), вопрос о существовании потока не возникает. Система уравнений (4) избыточна, так как складывая все строки ее матрицы, мы получаем нулевой вектор. Таким образом, не нарушая общности, можно отбросить одно из уравнений системы.
Потоком в сети [N,A] или [N,C] назовем функцию f, сопоставляющую каждому ребру (х,у) сети целое число f(x,y)и обладающую следующими свойствами:
(кососимметрия),
(допустимость).
5.6. Задача о максимальном потоке сети
Рассмотрим сеть, имеющую только один источник s и только один сток t. Рассмотрим задачу о потоке из узла s в узел t, причем s и t могут быть связаны произвольно сложной промежуточной сетью. Задача о максимальном потоке состоит в определении количества, которое можно перевезти из s в t. Формализуем эти понятия.
Узел s множества N называется источником потока f , если f(s, N) > 0; узел t называется стоком потока f, если f(t, N)<0; узел х называется нейтральным, если f(s, N)=0. Поток с одним источником s и стоком t называется потоком от s к t. При всех f(x, N)=0;f(s, N)=f(N,t) (все, что «вытекает» из источника, попадает в сток). Мощностью потока f называется число f(s,N)=f(N,t). Поток наибольшей мощности носит название максимального потока. Сечением (или разрезом) сети G = [N, а] относительно s и t называется разбиение узлов N на такие два множества S и S', что . Пропускной способностью сечения называется величина (сумма пропускных способностей дуг, начала которых находятся в S, а концы - в S'). Сечение с наименьшей пропускной способностью называется минимальным сечением. Связь между сечениями и потоками устанавливается следующей леммой.
Лемма. Если f - поток в сети G=[N,A]от s к t и (S, S’) - сечение в сети G, то мощность потока f не превосходит
C(S, S'), т. е. (6)
Если в (6) имеет место равенство, то сразу можно сделать вывод о максимальном потоке f и минимальном сечении C(S, S').
Теорема (о максимальном потоке и минимальном сечении). Для любой сети величина максимального потока из s в t равна пропускной способности минимального сечения, отделяющего s от t.
Алгоритм отыскания максимального потока в сети называется алгоритмом Форда - Фалкерсона.