Похожие презентации:
Лекция 2 ТПР
1.
Филиал ФГБОУ ВО«Национальный исследовательский университет «МЭИ» в г. Смоленске
Теория принятия решений
Доцент кафедры ВТ
кандидат технических наук, доцент
И.А. Денисова
Смоленск
Смоленск
– 2024
2011
2.
Лекция № 2Методы решения задач линейного
программирования
3.
УЧЕБНЫЕ ВОПРОСЫ1. Общая характеристика методов решения задач линейного
программирования
2. Симплекс-метод решения
основной задачи линейного программирования
3. Венгерский метод решения
задачи линейного программирования о назначениях
4.
1 вопросОбщая характеристика методов
решения задач линейного
программирования
5.
ОСНОВОПОЛАГАЮЩИЙ ПРИНЦИП ТПРсформулировали
Моргенштерн:
американские
ученые
Нейман
и
Лицо, принимающее решение, должно всегда
выбирать альтернативу с максимально ожидаемой
полезностью, результатом.
5
6.
Задача, модель которой содержит тольколинейные функции искомых переменных,
называется задачей линейного
программирования.
6
7.
78.
Формы записи ЗЛПКаноническая форма
n
L C j x j max
j 1
Стандартная форма
n
L C j x j max/min
j 1
a11x1 a12 x2 ... a1n xn b1 ; a11 x1 a12 x2 ... a1n xn / b1 ;
a21x1 a22 x2 ... a2 n xn b2 ; a 21 x1 a 22 x2 ... a 2 n xn / b2 ;
a x a m 2 x2 ... a mn xn / bm ;
am1 x1 am 2 x2 ... amn xn bm ; m1 1
x j 0.
x j 0.
8
9.
2 вопросСимплекс-метод решения
основной задачи линейного
программирования
10.
Симплекс (лат. simplex - простой) –простейший
выпуклый
многогранник
в n-мерном пространстве с n+1 вершиной
(например, тетраэдр в 3-мерном пространстве)
10
11.
Симплекс (лат. simplex - простой) – простейший выпуклыймногогранник в n-мерном пространстве с n+1 вершиной
(например, тетраэдр в 3-мерном пространстве)
Впервые симплексный
метод был предложен
американским ученым
Дж. Данцигом в 1949 г.
Джордж Бернард Данциг (1914-2005) –
американский математик, разработал симплексный
алгоритм, считается основоположником методов
линейного программирования
Идеи симплексного метода были
разработаны в 1939 г. российским
ученым Л.В.Канторовичем Леонид Витальевич Канторович (1912-1986) –
советский математик и экономист, лауреат
Нобелевской премии по экономике 1975 года «за
вклад в теорию оптимального распределения
ресурсов». Один из создателей линейного
программирования
12.
На рисунке: оптимальноерешение находится в
одной из вершин
многоугольника решений
А, В, С, D
Если задача линейного программирования имеет
оптимальное решение, то оно соответствует хотя
бы одной угловой точке многогранника решений (и
совпадает с одним из допустимых базисных
решений системы ограничений)
12
13.
Геометрический смысл симплексного метода состоит впоследовательном
переходе
от
одной
вершины
многогранника ограничений к соседней, в которой целевая
функция принимает лучшее (по крайней мере, не худшее)
значение
13
14.
Симплекс-метод реализует направленный перебор допустимыхбазисных решений в виде итеративного процесса.
На каждой итерации осуществляется переход по ребру допустимого
множества от одной вершины к другой, смежной исходной, в которой
значение критерия лучше или, в редких случаях, не хуже, чем в
исходной.
В симплекс-методе три основных этапа:
1) построение начального базисного решения;
2) процедура перехода от одного базисного
решения к другому;
3) проверка оптимальности.
14
15.
Алгоритм симплекс-метода1.Представить ЗЛП в каноническом виде (для приведения к
каноническому виду в каждое неравенство вводится дополнительная
фиктивная переменная).
2.Составить симплексную таблицу
План
Базисные
переменные
Значения
базисных
переменных
Значения
коэффициентов при
переменных
x1
…
δi
xn+r
15
16.
Алгоритм симплекс-метода3. Составить начальный опорный план (заполнить таблицу):
базисные переменные ← фиктивные переменные;
значения базисных переменных ← правые части уравнений системы
ограничений;
значения коэффициентов при переменных ← коэффициенты при
переменных левых частей уравнений системы ограничений;
индексная строка ← коэффициенты при переменных критерия (если
ЗЛП на max, то выписывать с обратным знаком).
4. Определить разрешающий элемент (РЭ):
среди элементов индексной строки выбрать min (ведущий столбец);
рассчитать δi=значение базисной переменной/ элемент ведущего
столбца;
выбрать РЭ из строки, соответствующей min(δi).
16
17.
Алгоритм симплекс-метода5. Заполнение следующего плана симплексной таблицы:
в список базисных переменных войдет переменная с
номером=второму индексу РЭ;
соответствующая строка пересчитывается путем деления на РЭ;
прочие элементы нового плана пересчитываются по формуле
НЭ=СтЭ-(А*В)/РЭ, где А и В – вершины «прямоугольника»,
образованного РЭ и СтЭ.
6. Проверка плана симплексной таблицы на оптимальность:
если все элементов индексной строки ≥0, то конец решения и шаг 7,
иначе - шаг 4.
7. Ответ ЗЛП:
Х opt =(значения базисных переменных и 0);
opt = элемент индексной строки и столбца значений базисных
переменных.
17
18.
Пример решения задачи ЛПL=3x1+5x2+4x3→max
0,1x1+0,2x2+0,4x3 1100
0,05x1+0,02x2+0,02x3 120
3x1+x2+2x3 8000
x1 0
x2 0
x3 0
L=3x1+5x2+4x3→max
0,1x1+0,2x2+0,4x3+x4=1100
0,05x1+0,02x2+0,02x3+x5=120
3x1+x2+2x3+x6=8000
x1 0
x2 0
x3 0
x4 0
x5 0
x6 0
18
19.
ПланБазис- Значения
ные базисных
перемен перемен-ные
ных
Значения коэффициентов при переменных
x1
x4
1x5
x6
L=
x2
2x5
x6
L=
x2
3x1
x6
L=
1100
120
8000
0
5500
10
2500
27500
5375
250
1875
27625
x2
0,1
0,05
3
-3
0,5
0,04
2,5
-0,5
0
1
0
0
x3
0,2
0,02
1
-5
1
0
0
0
1
0
0
0
x4
0,4
0,02
2
-4
2
-0,02
0
6
2,25
-0,5
1,25
5,75
x5
1
0
0
0
5
-0,1
-5
25
6,25
-2,5
1,25
23,75
δi
x6
0
1
0
0
0
1
0
0
12,5
25
-62,5
12,5
0
0
1
0
0
0
1
0
0
0
1
0
5500
6000
8000
11000
250
1000
20.
Пример решения задачи ЛПLmax= 27625
X1=250
X2=5375
x3 =0
X4=0
X5=0
x6 =1875
20
21.
В MS Excel для решения задачилинейного программирования используется
надстройка ПОИСК РЕШЕНИЯ.
21
22.
Решим в MS Excel задачу линейного программирования1. Создадим область переменных
Ячейки В2:В6 будут играть
роль переменных
(пока они пусты)
22
23.
Решим в MS Excel задачу линейного программирования2. Введем формулу вычисления значений
целевой функции
Например, в ячейку А8
23
24.
Решим в MS Excel задачу линейного программирования3. Создадим область ограничений
В ячейках А11:А13 будем
вычислять левые части
ограничений в системе
В ячейках В11:В13 введем
правые части ограничений
системы
24
25.
Решим в MS Excel задачу линейного программирования3. Создадим область ограничений
В ячейках А11:А13 будем
вычислять левые части
ограничений в системе
Первое ограничение
25
26.
Решим в MS Excel задачу линейного программирования3. Создадим область ограничений
В ячейках А11:А13 будем
вычислять левые части
ограничений в системе
Второе ограничение
27.
Решим в MS Excel задачу линейного программирования3. Создадим область ограничений
В ячейках А11:А13 будем
вычислять левые части
ограничений в системе
Третье ограничение
27
28.
Решим в MS Excel задачу линейного программирования4. Вызовем окно диалога Поиск решения
При этом удобно,
если активной
ячейкой является
ячейка со
значением
целевой функции
28
29.
1) Устанавливаем целевую ячейку А8 (там гдевычисляется значение целевой функции)
2) Указываем направление оптимизации – минимизация
(по условию)
3) В поле Изменяя ячейки указываем ячейки
переменных В2:В6
29
30.
Укажем ограничения4) Нажимаем кнопку Добавить
Появится окно Добавление ограничения
30
31.
Укажем ограничения5) Неотрицательность переменных:
Нажать кнопку Добавить
6) Остальные ограничения:
Нажать OK
31
32.
Осталось нажать кнопку Выполнить32
33.
РезультатыОтвет:
33
34.
3 вопросВенгерский метод решения
задачи о назначениях линейного
программирования
35.
Алгоритм решения задачи о назначениях(Венгерский алгоритм )
Шаг 1. Редукция строк /столбцов матрицы:
в каждой строке определить min элемент и вычесть его из каждого элемента своей
строки;
в каждом столбце определить min элемент и вычесть его из каждого элемента
своего столбца.
Выполнить распределение. Если распределение успешно, то – решение получено,
иначе – шаг 2 алгоритма.
Шаг 2.
Подсчитать количество «0» в строках и «вычеркнуть» строку с max количеством
«0»;
подсчитать количество «0» в столбцах и «вычеркнуть» столбец с max количеством
«0»;
продолжать, чередуя строки/столбцы, пока все «0» не окажутся «вычеркнутыми».
Среди «невычеркнутых» элементов выбрать min и вычесть его значение из
каждого «невычеркнутого» элемента и прибавить его значение к каждому «дважды
вычеркнутому» элементу.
Выполнить распределение. Если распределение успешно, то - решение получено,
иначе – повторить шаг 2 алгоритма.
35
36.
Модель задачи о назначениях (n=m=4)Найти
при
Пример задачи о назначениях
36
37.
Пример задачи о назначенияхМинимальное значение целевой функции =10.
37
38.
ЗАДАНИЕ №1 НА ПРАКТИЧЕСКОЕ ЗАНЯТИЕ1. Составить математическую модель и решить в MS Excel задачу
линейного программирования.
Завод выпускает три вида продукции. Общее количество материалов - 296 т. Фонд
работы оборудования -120 тыс. станко-часов. Данные о нормах расхода материалов (в
кг) и работы оборудования (в станко-часах) приведены в таблице.
Ресурсы
Нормы расхода на единицу продукции
Вид 1
Вид 2
Вид 3
Материалы
2
4
3
Оборудование
2
1
1
Прибыль
11
12
10
Плановое задание для первого вида-15 тыс. единиц, второго-20 тыс. единиц, причем
продукция 1-го вида является остродефицитной, потребность в продукции 2-го вида
полностью покрывается производством. Продукция 3-го вида выпускается для
получения максимальной прибыли. Составить оптимальный план производственной
программы.
38
39.
ЗАДАНИЕ №2 НА ПРАКТИЧЕСКОЕ ЗАНЯТИЕ1. Решить симплекс-методом задачу линейного программирования.
2. Решить в MS Excel задачу линейного программирования.
L=6x1+5x2 +5x3 →max
3x1+6x2+4x3 180
2x1+x2 +2x3 50
2x1+3x2+x3 40
x1 0
x2 0
x3 0
39
40.
ЗАДАНИЕ №3 НА ПРАКТИЧЕСКОЕ ЗАНЯТИЕ1. Решить задачу ЛП о назначениях, используя Венгерский алгоритм.
3
8
2
10
3
8
7
2
9
7
6
4
2
7
5
8
4
2
3
5
9
10
6
9
10
40
Математика