- •В. 1 Определение мат. Программирования и факторы, способствовавшие его возникновению.
- •В. 7 Алгоритм прямого симплексного метода.
- •В. 8 Основные этапы решения задач оптимизации.
- •В. 16 Математическая модель искусственной задачи.
- •В. 22 Идея двойственного симплексного метода (дсм).
- •В. 23 Алгоритм двойного симплексного метода.
- •В. 29 Теорема о выпуклости множества допустимых решений задачи лп.
- •В. 30 Теорема о местоположении оптимального решения задач лп.
- •В. 44 Решение задач мп в среде Excel.
- •46. Математическая модель задачи о назначениях
- •В. 47 Математическая модель задачи Коммивояжера.
- •В. 48 Алгоритм решение задачи о коммивояжере методом отсечений.
- •В. 49 Метод ветвления границ.
- •В. 50 Обоснование решения задачи о коммивояжере методом ветвей и границ (2 теоремы).
- •В. 51 Алгоритм решения задач о коммивояжере методом ветвей и границ.
- •В. 52 Математическая модель задач о рюкзаке.
- •Часть 2: если одно из допустимых множеств пусто, то целевая ф-я другой задачи не ограничена.
- •В. 61 Задача выпуклого программирования (вп).
- •В. 62 Методы решения задач выпуклого программирования без ограничений.
- •Задача (по этапам):
В. 22 Идея двойственного симплексного метода (дсм).
P: c*х → min
A*x=b
x≥0,
D: b*u → max
АТ*u≤c (естественное).
Надо решить АТ*u≤c. Для этого вспомним симплексный метод.
|
|
|
с1 |
|
сn |
|
Базис |
БДР |
x1 |
… |
xn |
cb |
xb |
b |
A |
||
|
z |
∆0 |
∆1 |
… |
∆n |
,
АТ*u≤c
- ограничение двойственной задачи.
.
Ограничение двойственной задачи соответствует критерию оптимальности в прямой задаче. Это означает, если решение в двойственной задаче допустимо, но не обязательно оптимально, то в прямой задаче оно будет оптимальным, но не обязательно допустимым.
Идея двойственного симплексного метода заключается в том, что мы начинаем решать прямую задачу с оптимального, но не допустимого решения, постепенно делаем его допустимым, но поскольку двойственная задача остаётся допустимой в прямой задаче решение до конца остаётся оптимальным.
Двойственный симплексный метод применяется для решения задачи линейной оптимизации вида:
c*х → min
A*x≥b
x≥0.
Чтобы привести к каноническому виду:
c*х → min
A*x-Е*у=b
x≥0, у≥0, где Е – единичная матрица.
Домножим на «-1».
c*х → min
-A*x+Е*у=-b
x≥0, у≥0, где Е*у – базис.
Вектор правой части (b) стал отрицательным, поэтому сначала решение будет недопустимым, но оптимальным. Если cj≥0, то min достигается, если х=0. Задача двойственного симплексного метода сделать это решение допустимым.
В. 23 Алгоритм двойного симплексного метода.
Двойственный симплексный метод предназначен для решения задачи линейной оптимизации вида: сх → min, Ах ≥ b, x ≥ 0
Пусть выполнены следующие условия:
1. задача ЛП имеет стандартный вид на минимум;
2. вектор коэффициентов целевой функции (с) неотрицателен;
3. ограничения должны быть типа «≥»;
4. ограничения на переменные должны быть типа «≥», (xj≥0)
Тогда можно построить начальную симплексную таблицу:
|
|
|
с1 |
c2 |
|
сn |
|
|
|
|
|
Базис |
БДР |
x1 |
x2 |
… |
xn |
y1 |
y2 |
… |
ym |
Θ |
y |
-b |
-A |
E |
||||||
|
z |
∆0 |
∆1 |
∆2 |
… |
∆n |
∆n+1 |
∆n+2 |
|
∆n+m |
Оценки Δj для переменных xj будут, очевидно, равны - сj. Значение целевой функции Δ0=0.
Алгоритм двойственного симплексного метода:
Шаг 0. Построить начальную симплексную таблицу. Перейти на шаг 1.
Шаг 1. Проверить значения базисных переменных в столбце «БДР». Если все значения неотрицательны, то найдено оптимальное решение перейти на шаг 7. Если хотя бы одно значение отрицательно, перейти на шаг 2.
Шаг 2. Среди отрицательных значений переменных столбца «БДР» выбрать максимальное по модулю значение (если их несколько, выбрать любое из них) и соответствующую строку объявить ведущей (r). Перейти на шаг 3.
Шаг 3. Проверить коэффициенты матрицы ограничения (аrj, j=1,...,n) ведущей строки. Если все arj ≥0, то задача не имеет решения, перейти на шаг 7. Иначе перейти на шаг 4.
Шаг 4. Для отрицательных элементов ведущей строки рассчитать отношение соответствующих элементов строки оценок к элементам ведущей строки. Среди полученных отношений выбрать минимальное (если их несколько - любое). Столбец, соответствующий минимальному отношению, объявить ведущим столбцом (s). Перейти на шаг 5.
Шаг 5. Элемент ars, стоящий на пересечении ведущей строки и ведущего столбца объявить ведущим элементом. Перейти на шаг 6.
Шаг 6. Нарисовать новую симплексную таблицу. В столбце "Базис" вместо переменной хг записать переменную xs. Применяя преобразование Жордана-Гаусса относительно ars, рассчитать значения элементов новой симплексной таблицы. Перейти на шаг 1.
Шаг 7. Конец алгоритма.
Пример в распечатке!
В. 24 Определение выпуклого множества.
Опр1. Множество Х называется выпуклым, если вместе с двумя любыми точками ему принадлежит весь отрезок, соединяющий эти точки.
Опр2. Множество Х называется выпуклым, если для любых x’и x” из Х, и для любых α1,α2 R (множество всех действительных чисел) таких, что α1+α2=1, α1, α2 ≥0, точка α1х’+ α2х” X. Выпуклое множество:
1) α1=1, α2=0
Невыпуклое множество:
Окружность - не выпуклое множество, круг – выпуклое.
2) α1= α2=1/2; 1/2x’+1/2x”=x
α1=1, α2=0
Мы можем воспринимать значение α 1, α2 как силу притяжения к полюсам x’ и x”.
В. 25 Определение угловой (крайней) точки выпуклого множества.
Опр1. Угловая (крайняя) точки выпуклого множества Х – это такая точка хХ, представление которой в виде х=α1х’+α2х” (для x’, x”Х, α1,α2≥0) возможно только в одном единственном случае, когда полюса x’ и x” совпадают (x’= x”).
Квадрат - выпуклое множество:
Угловая точка – это та, которая не может быть серединой отрезка, помещенного во множество:
Круг – любая точка является угловой.
Опр 2. Выпуклая комбинация х1,
х2, …, хк с коэффициентами
α1, α2,…, αк, это выражение
вида:
,
при условии, что
,
α1≥0.
Опр 3. Угловая (крайняя) точка выпуклого множества X – это такая точка х из Х, которую нельзя представить в виде выпуклой комбинации других точек из этого множества, когда коэффициенты α >0 (строго).
Смысл 3-го определения - вокруг
угловой точки нельзя нарисовать
многоугольник, который попадает во
множество
.
В. 26 Определение линии уровня целевой функции.
Целевая функция:
Опр1. Линией уровня целевой функции называется такая линия, в точках которой целевая функция принимает одно и то же значение.
L-линия: для любых A,B L, Z(A)=Z(B)
Z(x)=с1х1+с2х2=const – данное уравнение описывает прямую линию.
- двизаем линию.
В. 27 Определение градиента функции.
Рассмотрим произвольную функцию из n переменных f(x1, x2, …, xn).
Градиентом этой функции называется вектор её частных производных по всем элементам: grad f=(∂f/∂x1,∂f/∂x2,…,∂f/∂xn).
Антиградиент – градиент со знаком минус.
Пример: f(x1, x2)=2x13+3x2, grad f(x1, x2)=(6x12, 3); grad f(2,3)=(24,3).
Градиент показывает направление максимального возрастания функции.
Градиент всегда перпендикулярен линиям уровня.
f(x1,x2)=c1x1+c2x2 – целевая функция задачи ЛП с 2мя переменными. Grad f=(c1,c2).
В. 28. Алгоритм графического метода решения задачи ЛП с двумя переменными.
Шаг 1. По ограничениям задачи построить область допустимых значений (ОДЗ). Каждому неравенству на плоскости соответствует полуплоскость, каждому уравнению соответствует прямая, ОДЗ будет пересечением построенных полуплоскостей и прямых. Возможны несколько вариантов ОДЗ (замкнутая область, неограниченная область, луч, отрезок, точка, пустое множество). Если ОДЗ - пустое множество, то задача не имеет решения. Если ОДЗ не пусто, то перейти на шаг 2.
Шаг 2. Построить вектор градиента, координаты начала вектора - (x1=0, x2=0,), координаты конца вектора - (x1=с1, x2=с2), где с1 и с2 - коэффициенты целевой функции. Перейти на шаг 3.
Шаг 3. Построить линию уровня целевой функции. Линия уровня целевой функции перпендикулярна вектору градиента и должна проходить по ОДЗ задачи. Перейти на шаг 4.
Шаг 4. Определить точки-кандидаты из ОДЗ для оптимального решения. Если целевая функция на максимум, то линию уровня целевой функции перемещать параллельно самой себе в направлении градиента до последней точки ОДЗ. Если целевая функция на минимум, то линию уровня перемещаем в направлении антиградиента (противоположное градиенту направление). Перейти на шаг 5.
Шаг 5. (Точное определение координат оптимального решения). Если очевидно, что точка-кандидат является оптимальным решением, то подставляем ее значение в целевую функцию и записываем решение задачи ЛП в виде: оптимальное значение целевой функции, и соответствующие значения х1 и х2. Если точек-кандидатов несколько, то для каждой такой точки составляется система двух уравнений с двумя неизвестными, линии которых в пересечении дают данные точки. Для каждой точки решается система уравнений. Полученные решения подставляются в целевую функцию. В качестве оптимальной выбирается та точка, для которой значение целевой функции лучше. Завершить алгоритм.
Замечание - возможны несколько вариантов решений: оптимальное решение единственно, оптимальных решений множество, целевая функция неограниченна.
Замечание - часто ОДЗ имеет достаточно простой вид и сразу известны координаты угловых точек. В этом случае, если угловых точек не слишком много, можно найти ответ, перебирая все эти точки, не рисуя линию уровня.
Пример в распечатке!
