Слайд 2 Метод перебора (метод равномерного поиска, перебор по сетке) — простейший из методов
поиска значений действительно-значных функций по какому-либо из критериев сравнения (на максимум, на минимум, на определённую константу).
Слайд 3Методы перебора
Во многих прикладных задачах требуется найти оптимальное решение среди
очень большого (но конечного!) числа вариантов. Иногда удается построить это решение сразу, но в большинстве случаев единственный способ его отыскать состоит в переборе ВСЕХ возможных вариантов и сравнении их между собой. Поэтому так важно для нас научиться строить алгоритмы ПЕРЕБОРА различных комбинаторных объектов - последовательностей, перестановок, подмножеств и т.д.
Методы прямого перебора подразумевают полный перебор вариантов целевой конфигурации сети распределения с последующим выбором оптимального. Эти методы являются наиболее простыми для применения и столь же неэффективными с точки зрения времени и требуемых мощностей для вычисления.
Слайд 4Методы перебора
Самым известным из методов направленного перебора является метод ветвей
и границ (branch&bound algorithm). Впервые метод ветвей и границ был предложен А. Ландом и А. Дойгом в 1960 г. для решения общей задачи целочисленного линейного программирования.
Эффективная с точки зрения компьютационных затрат времени реализация метода для задачи по проектированию сети распределения была предложена Б. Хумавалой (Basheer М. Khumawala) в 1977 г. Метод предполагает рассмотрение подмножеств возможных решений (содержащих значения переменной yj для каждого потенциального местоположения склада или распределительного центра) и применение к нему набора критериев по выбору переменной «ветвления» и отбраковке неперспективных узлов (узлов, для которых оптимальное значение ниже текущей верхней оценки функции оптимизации).
Методы ветвей и границ являются в настоящее время основой всех известных пакетов и библиотек прикладных программ по решению задач целочисленного и частично целочисленного линейного программирования.
Слайд 5Методы перебора
Методы направленного перебора предполагают аппроксимацию или разбиение задачи смешанной дискретной
оптимизации на несколько подзадач, которые могут быть представлены в форме линейных.
Лучше всего логика, используемая в методах рассматриваемой группы, может быть проиллюстрирована на примере алгоритма декомпозиции задачи размещения объектов складской инфраструктуры с ограничениями на допустимый объем мощностей, предложенного Ван Роем. Исследователь предложил выделить в структуре задачи смешанной дискретной оптимизации две подзадачи: линейную транспортную задачу, которую было предложено решать при фиксированном значении переменных yi, и задачу размещения. Для решения последней в условия задачи вводилась суррогатная переменная, основанная на ограничении на допустимые мощности. В результате алгоритм последовательного решения двух подзадач показал лучшее время в сравнении с рядом других методов.
Слайд 6Практическое применение алгоритмов направленного перебора
Слайд 7 Линейное программирование — область математики, разрабатывающая теорию и численные методы решения
задач нахождения экстремума (максимума или минимума) линейной функции многих переменных при наличии линейных ограничений, т. е. равенств или неравенств, связывающих эти переменные.
Методы линейного программирования применяют к практическим задачам, в которых:
необходимо выбрать наилучшее решение (оптимальный план) из множества возможных;
решение можно выразить как набор значений некоторых переменных величин;
ограничения, накладываемые на допустимые решения специфическими условиями задачи, формулируются в виде линейных уравнений или неравенств;
цель выражается в форме линейной функции основных переменных. Значения целевой функции, позволяя сопоставлять различные решения, служат критерием качества решения.
Слайд 8Симплекс-метод.
Этот один из первых специализированных методов оптимизации, нацеленный на решение задач
линейного программирования.
Симплекс-метод был предложен американцем Г. Данцигом в 1951 г. Основная его идея состоит в продвижении по выпуклому многограннику ограничений от вершины к вершине, при котором на каждом шаге значение целевой функции улучшается до тех пор, пока не будет достигнут оптимум.
Слайд 9
Сущность метода
Симплекс-метод – универсальный метод решения задач линейного программирования.
Суть метода: целенаправленный
перебор решений, соответствующих вершинам многогранника области допустимых решений.
Слайд 10
Сущность метода
Метод применим к любой задаче линейного программирования в канонической форме:
Количество неизвестных
(n) в системе ограничений должно быть больше количества уравнений (m).
Слайд 11
Основные этапы решения задачи симплекс-методом
Приведение задачи к каноническому виду.
Приведение задачи к допустимому
виду (выделение базиса) и преобразование целевой функции.
Нахождение первого допустимого базисного решения системы ограничений или установление факта ее несовместности.
Проверка полученного решения на оптимальность. Если решение не оптимально, то
Поиск другого допустимого базисного решения, при котором целевая функция достигает как минимум не меньшего значения.
П. 4 и 5 повторяются до нахождения оптимального решения
Слайд 12
1. Приведение задачи
к каноническому виду
Для приведения задачи к каноническому виду необходимо
добавить в каждое из ограничений задачи, представленных неравенствами, по одной переменной. Например:
Неканонический вид: Канонический вид:
.
Слайд 13
2. Приведение задачи
к допустимому виду
Для того, чтобы привести систему уравнений к
допустимому виду, необходимо выразить любые m неизвестных через остальные:
bi ≥ 0
Слайд 14
2. Приведение задачи
к допустимому виду
Неизвестные, которые выражаются через остальные неизвестные, называются
базисными, а весь набор этих неизвестных – базисом.
Остальные неизвестные называются свободными.
Количество базисных переменных должно равняться количеству уравнений в системе.
Слайд 15
2. Преобразование
целевой функции
Далее необходимо преобразовать целевую функцию, исключив из нее базисные
переменные.
Для исключения базисных переменных из целевой функции нужно умножить первое уравнение системы ограничений на c1, второе на c2, и т.д., сложить полученные произведения и вычесть целевую функцию.
Слайд 16
2. Преобразование
целевой функции
Получим:
или
где
.
Слайд 17
3. Нахождение первого
допустимого базисного решения
Приравняем свободные переменные к нулю и найдем
значения базисных переменных. Получим одно из базисных решений системы ограничений.
Базисное решение называется допустимым базисным решением или опорным решением, если значения базисных переменных в нем неотрицательны.
Слайд 18
3. Основная теорема
симплекс-метода
Среди оптимальных планов задачи линейного программирования в канонической форме
обязательно есть опорное решение ее системы ограничений.
Таким образом симплекс-метод представ-ляет собой процедуру направленного перебора опорных решений.
Слайд 19
4. Проверка решения на оптимальность
Допустимое базисное решение системы ограничений является оптимальным
реше-нием задачи линейного программирования тогда и только тогда, когда все ∆j ≥ 0.
Если все ∆j строго положительны, то решение является единственным.
Слайд 20
5. Поиск другого допустимого базисного решения
Если полученное допустимое базисное решение системы ограничений
не является оптимальным, необходимо найти другое допустимое базисное решение, при котором целевая функция достигает как минимум не меньшего значения.
Слайд 21
Основные этапы решения задачи симплекс-методом
Приведение задачи к каноническому виду.
Приведение задачи к допустимому
виду (выделение базиса) и преобразование целевой функции.
Нахождение первого допустимого базисного решения системы ограничений или установление факта ее несовместности.
Проверка полученного решения на оптимальность. Если решение не оптимально, то
Поиск другого допустимого базисного решения, при котором целевая функция достигает как минимум не меньшего значения.
П. 4 и 5 повторяются до нахождения оптимального решения
Слайд 22
Симплекс-таблица
Пусть задача приведена к виду:
Слайд 23
Симплекс-таблица:
развернутый вариант
Слайд 24
Симплекс-таблица:
сокращенный вариант
Слайд 25
Симплекс-таблица:
алгоритм решения
1. Просматривается последняя строка таблицы, среди коэффициентов этой строки (исключая
столбец свободных членов) выбирается наименьшее отрицательное число. Если такового нет, то исходное базисное решение является оптимальным.
Слайд 26
Симплекс-таблица:
алгоритм решения
2. Столбец таблицы, соответствующий выбранному отрицательному коэффици-енту в последней строке
называется ключевым. В этом столбце выбираются положительные коэффициенты. Если таковых нет, то задача решений не имеет.
Слайд 27
Симплекс-таблица:
алгоритм решения
3. Среди положительных коэффициентов ключевого столбца выбирается тот, для которого
абсолютная величина отношения соответствующего свободного члена к этому элементу минимальна. Этот коэффициент называется разрешающим или ключевым, а строка, в которой он находится, ключевой.
Слайд 28
Симплекс-таблица:
алгоритм решения
4. Базисная переменная, отвечающая строке ключевого элемента, должна быть переведена
в разряд свободных, а свободная переменная, отвечающая столбцу ключевого элемента, вводится в число базисных. Новая таблица строится по следующему алгоритму.
Слайд 29
Симплекс-таблица:
алгоритм решения
4а) в обозначениях строк и столбцов переменная, вводимая в базис
и переменная, выводимая из него, меняются местами;
4б) на месте ключевого элемента записываем обратное ему число;
4в) ключевую строку (за исключением ключевого элемента) делим на ключевой элемент; полученную строку вписываем на место ключевой;
4г) ключевой столбец (за исключением ключевого элемента) делим на ключевой элемент с противоположным знаком; полученный столбец вписываем на место ключевого;
Слайд 30
Симплекс-таблица:
алгоритм решения
4д) все остальные элементы таблицы, включая строку оценок и столбец
свободных членов, пересчитываем по так называемому «правилу прямоугольника»:
на основе пересчитываемой клетки и клетки с ключевым элементом мысленно составляем прямоугольник, далее перемножаем элементы, стоящие в двух оставшихся его вершинах, полученное произведение делим на ключевой элемент и вычитаем из пересчитываемого элемента.
Слайд 31
Симплекс-таблица:
алгоритм решения
5. Новая симплекс-таблица отвечает новому допустимому базисному решению. Проверяем новое
решение на оптимальность, если решение не оптимально, то повторяем алгоритм.
Слайд 32
Пример
Для производства четырех видов изделий A1 , A2 , A3 , A4
завод должен использовать три вида сырья I, II, III. Требуется составить план выпуска, обеспечивающий максимальную прибыль.
.
Слайд 33
Пример
Математическая модель задачи:
.
Слайд 34
Пример
Приведение задачи к каноническому виду:
Примем за базисные переменные x5, x6, x7.
Тогда
первое опорное решение:
(0; 0; 0; 0; 1000; 600; 150).
Слайд 35
Пример. 1 шаг симплекс-метода, развернутая таблица.
Слайд 36
Пример. 1 шаг симплекс-метода, сокращенная таблица.
Слайд 37
Пример. 1 шаг симплекс-метода
Базисное решение (0; 0; 0; 0; 1000; 600; 150).
Поиск
ключевой строки:
Выводим из базиса переменную x7 и вводим переменную x1
Слайд 39
Пример. 2 шаг симплекс-метода
Базисное решение (150; 0; 0; 0; 250; 0; 0).
Определение
ключевой строки:
Выводим из базиса переменную x6 и вводим переменную x2.
Слайд 41
Пример. 3 шаг симплекс-метода
Базисное решение (150; 0; 0; 0; 250; 0; 0).
Определение ключевой строки:
Выводим из базиса переменную x1 и вводим переменную x4.