- •1.1 Понятие и классификация экономико-математических моделей
- •1.2. Примеры типовых экономико-математических моделей
- •Модуль 2. Сетевые модели в планировании и управлении
- •2.1. Элементы и правила построения сетевой модели
- •2.3. Алгоритм расчета параметров детерминированной сетевой модели
- •2.3. Диаграмма затрат ресурсов и ее оптимизация
- •2.4. Сетевые модели в условиях полной неопределенности
- •2.5. Вопросы для самоконтроля
- •2.6. Тесты. Сетевые модели
- •2.7. Практикум
- •Модуль 3. Экономико-математическая модель межотраслевого баланса «затраты – выпуск»
- •Модель «Затраты–Выпуск». Открытая модель Леонтьева
- •3.2. Замкнутая модель Леонтьева
- •3.3. Динамическая модель Леонтьева
- •3.4. Матричные модели предприятий, фирм
- •3.5. Вопросы для самоконтроля
- •3.6. Тесты. Балансовые модели
- •3.7. Практикум
- •1. Матрица внутрифирменных связей:
- •2. Матрица распределения чистой продукции:
- •3. Матрица затрат ресурсов (фонд заработной платы, материалы, э/энергия, износ оборудования):
- •Модуль 4. Методы и модели линейного программирования
- •4.1. Математическая модель общей задачи линейного программирования
- •4.2. Симплекс - метод решения задач линейного программирования
- •4.3. Двойственность в линейном программировании
- •4.4. Решение задач линейного программирования средствами excel
- •4.5. Вопросы для самоконтроля
- •4.6. Тесты. Линейное программирование
- •4.7. Практикум
- •Модуль 5. Транспортные задачи линейного программирования
- •5.1. Постановка и математическая модель транспортной задачи
- •Математическая модель тз:
- •5.2. Алгоритм решения транспортной задачи методом потенциалов
- •5.3. Транспортная задача с ограничениями на пропускную способность
- •5.4. Метод потенциалов для задачи Td
- •5.5. Вопросы для самоконтроля
- •5.6 Тесты. Транспортные задачи
- •5.7. Практикум
- •Модуль 6. Динамическое программирование
- •6.1. Оптимальное распределение ресурсов
- •6.2. Задача о замене оборудования
- •6.3. Применение динамического программирования в вопросах перспективного планирования.
- •6.4. Выбор оптимальных маршрутов методом динамического программирования
- •6.5. Вопросы для самоконтроля
- •6.6. Тесты. Динамическое программирование
- •6.7. Практикум
- •Задание 4. Выбор оптимальных маршрутов и инцидентных цепей
- •7.1. Постановка и геометрический смысл общей задачи нелинейного программирования
- •7.2. Метод множителей Лагранжа
- •7.3. Градиентные методы
- •7.4. Метод Франка-Вулфа
- •7.5. Метод штрафных функций
- •7.6. Метод наискорейшего спуска
- •7.7. Вопросы для самоконтроля
- •7.8. Практикум
- •Рекомендуемая литература
- •Содержание
- •Математические методы и модели в экономике
- •Издательство
- •625000, Г. Тюмень, ул. Володарского, 38
- •625039, Г. Тюмень, ул. Киевская, 52
7.4. Метод Франка-Вулфа
Пусть требуется найти максимальное значение вогнутой функции
(7.12)
при условиях
(7.13)
(7.14)
Характерной особенностью этой задачи является то, что ее система ограничений содержит только линейные неравенства. Эта особенность является основой для замены в окрестности исследуемой точки нелинейной целевой функции линейной, благодаря чему решение исходной задачи сводится к последовательному решению задач линейного программирования.
Процесс нахождения решения задачи начинают с определения точки, принадлежащей области допустимых решений задачи. Пусть это точка , тогда в этой точке вычисляют градиент функции (7.12)
(7.15)
и строят линейную функцию
Затем находят максимальное значение этой функции при ограничениях (7.13) и (7.14). Пусть решение данной задачи определяется точкой . Тогда за новое допустимое решение исходной задачи принимают координаты точки :
, (7.16)
где λk – некоторое число, называемое шагом вычислений и заключенное между нулем и единицей . Это число λk берут произвольно или определяют таким образом, чтобы значение функции в точке зависящее от λk, было максимальным. Для этого необходимо найти решение уравнения и выбрать его наименьший корень. Если его значение больше единицы, то следует положить λk=1. после определения числа λk находят координаты точки , вычисляют значение целевой функции в ней и выясняют необходимость перехода к новой точке . Если такая необходимость имеется, то вычисляют в точке градиент целевой функции, переходят к соответствующей задаче линейного программирования и находят ее решение. определяют координаты точки и исследуют необходимость проведения дальнейших вычислений. После конечного числа шагов получают с необходимой точностью решение исходной задачи.
Итак, процесс нахождения задачи (7.12)-(7.13) методом Франка-Вулфа включает следующие этапы:
-
Определяют исходное допустимое решение задачи.
-
Находят градиент функции (7.12) в точке допустимого решения.
-
Строят функцию (7.15) и находят ее максимальное значение при условиях (7.13) и (7.14).
-
Определяют шаг вычислений.
-
По формулам (7.16) находят компоненты нового допустимого решения.
-
Проверяют необходимость перехода к последующему допустимому решению. В случае необходимости переходят к этапу 2, в противном случае найдено приемлемое решение исходной задачи (7.5).
7.5. Метод штрафных функций
Рассмотрим задачу определения максимального значения вогнутой функции
при условиях
,
где - выпуклые функции.
Вместо того чтобы непосредственно решать эту задачу, находят максимальное значение функции
,
которая равна сумме целевой функции задачи, и некоторой функции . Функция , определяемая системой ограничений, называется штрафной функцией. Штрафную функцию можно построить различными способами. Однако наиболее часто она имеет вид
, (7.17)
где , (7.18)
а аi>0 – некоторые постоянные числа, представляющие собой весовые коэффициенты.
Используя штрафную функцию, последовательно переходят от одной точки к другой до тех пор, пока не получат приемлемое решение. При этом координаты последующей точки находят по формуле
(7.19)
Из соотношения (7.18) следует, что если предыдущая точка находится в области допустимых решений исходной задачи, то второе слагаемое в квадратных скобках равно нулю и переход к последующей точке определяется только градиентом целевой функции. Если же указанная точка не принадлежит области допустимых решений, то за счет данного слагаемого на последующих итерациях достигается возращение в область допустимых решений. При этом, чем меньше аi, тем быстрее находится приемлемое решение, однако точность определения его снижается. Поэтому итерационный процесс обычно начинают при сравнительно малых значениях аi и, продолжая его, эти значения постоянно увеличивают.
Итак, процесс нахождения решения задачи выпуклого программирования методом штрафных функций включает следующие этапы:
-
Определяют исходное допустимое решение.
-
Выбирают шаг вычислений.
-
Находят по всем переменным частные производные от целевой функции и функций определяющих область допустимых решений задачи.
-
По формуле (7.19) находят координаты точки, определяющей возможное новое решение задачи.
-
Проверяют, удовлетворяют ли координаты найденной точки системе ограничений задачи. Если нет, то переходят к следующему этапу. Если координаты найденной точки определяют допустимое решение задачи, то исследуют необходимость перехода к последующему допустимому решению. В случае такой необходимости переходят к этапу 2, в противном случае найдено приемлемое решение исходной задачи.
-
Устанавливают значения весовых коэффициентов и переходят к этапу 4.
Градиентный метод с постоянным, переменным и оптимальным шагом
Различают градиентные методы с постоянным шагом и дроблением шага. Наиболее простой метод с постоянным шагом .
При этом достаточно малый шаг обеспечивает убывание (возрастание) целевой функции на каждой итерации, т. е. выполняется условие
, (7.20)
но в этом случае требуется значительно большее количество итераций. Слишком большой шаг может вызвать нарушение неравенства (7.20) или привести к зацикливанию, т. е. неограниченному повторению колебаний около точки экстремума.
Пример. Пусть необходимо найти минимум функции одной переменной , где а > 0.
Формула градиентного метода принимает вид .
Очевидно, при 0<h< процесс будет сходиться, при h > расходиться. Если же принять h=, то произойдет зацикливание, так как , и т. д.
В данном примере зацикливание легко устраняется путем уменьшения шага.
Пример. Найти максимум функции двух переменных
градиентным методом с постоянным шагом.
Решение. Выберем начальную точку и шаг h = 0,2. Компоненты градиента находятся дифференцированием функции по х1 и х2.
В качестве критерия окончания процесса итерации используем модуль градиента , критическое значение которого примем .
Результаты вычислений представлены в таблице 7.1.
При к =5 итерационный процесс прекращен, так как < 0,2.
Для самоконтроля представим целевую функцию в виде суммы квадратов , очевидно, что
; ;
Полученный результат х1 = 0,9222 и х2 = 2,9992 мало отличается от точного.
Таблица 7.1
Результаты вычислений
|
|
|
|
|
|
|||
k |
||||||||
0 |
0 |
0 |
2 |
12 |
0,4 |
2,4 |
12,17 |
3 |
1 |
0,4 |
2,4 |
1,2 |
2,4 |
0,24 |
0,48 |
2,68 |
20,92 |
2 |
0,64 |
2,88 |
0,72 |
0,46 |
0,144 |
0,096 |
0,865 |
21,84 |
3 |
0,784 |
2,976 |
0,432 |
0,096 |
0,0864 |
0,0192 |
0,443 |
21,952 |
4 |
0,8754 |
2,9952 |
0,2592 |
0,02 |
0,0518 |
0,004 |
0,260 |
21,983 |
5 |
0,9222 |
2,9992 |
0,1556 |
0,003 |
- |
- |
0,156 |
21,994 |
Траектория поиска экстремума представлена на рисунке 7.4.
Рис.7.4. Траектория поиска экстремума