Алгоритмы направленного перебора

Содержание

Слайд 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. Приведение задачи к каноническому виду

Для приведения задачи к каноническому виду необходимо

1. Приведение задачи к каноническому виду Для приведения задачи к каноническому виду
добавить в каждое из ограничений задачи, представленных неравенствами, по одной переменной. Например:
Неканонический вид: Канонический вид:
.

Слайд 13

2. Приведение задачи к допустимому виду

Для того, чтобы привести систему уравнений к

2. Приведение задачи к допустимому виду Для того, чтобы привести систему уравнений
допустимому виду, необходимо выразить любые m неизвестных через остальные:
bi ≥ 0

Слайд 14

2. Приведение задачи к допустимому виду

Неизвестные, которые выражаются через остальные неизвестные, называются

2. Приведение задачи к допустимому виду Неизвестные, которые выражаются через остальные неизвестные,
базисными, а весь набор этих неизвестных – базисом.
Остальные неизвестные называются свободными.
Количество базисных переменных должно равняться количеству уравнений в системе.

Слайд 15

2. Преобразование целевой функции

Далее необходимо преобразовать целевую функцию, исключив из нее базисные

2. Преобразование целевой функции Далее необходимо преобразовать целевую функцию, исключив из нее
переменные.
Для исключения базисных переменных из целевой функции нужно умножить первое уравнение системы ограничений на c1, второе на c2, и т.д., сложить полученные произведения и вычесть целевую функцию.

Слайд 16

2. Преобразование целевой функции

Получим:
или
где
.

2. Преобразование целевой функции Получим: или где .

Слайд 17

3. Нахождение первого допустимого базисного решения

Приравняем свободные переменные к нулю и найдем

3. Нахождение первого допустимого базисного решения Приравняем свободные переменные к нулю и
значения базисных переменных. Получим одно из базисных решений системы ограничений.
Базисное решение называется допустимым базисным решением или опорным решением, если значения базисных переменных в нем неотрицательны.

Слайд 18

3. Основная теорема симплекс-метода

Среди оптимальных планов задачи линейного программирования в канонической форме

3. Основная теорема симплекс-метода Среди оптимальных планов задачи линейного программирования в канонической
обязательно есть опорное решение ее системы ограничений.
Таким образом симплекс-метод представ-ляет собой процедуру направленного перебора опорных решений.

Слайд 19

4. Проверка решения на оптимальность
Допустимое базисное решение системы ограничений является оптимальным

4. Проверка решения на оптимальность Допустимое базисное решение системы ограничений является оптимальным
реше-нием задачи линейного программирования тогда и только тогда, когда все ∆j ≥ 0.
Если все ∆j строго положительны, то решение является единственным.

Слайд 20

5. Поиск другого допустимого базисного решения
Если полученное допустимое базисное решение системы ограничений

5. Поиск другого допустимого базисного решения Если полученное допустимое базисное решение системы
не является оптимальным, необходимо найти другое допустимое базисное решение, при котором целевая функция достигает как минимум не меньшего значения.

Слайд 21

Основные этапы решения задачи симплекс-методом

Приведение задачи к каноническому виду.
Приведение задачи к допустимому

Основные этапы решения задачи симплекс-методом Приведение задачи к каноническому виду. Приведение задачи
виду (выделение базиса) и преобразование целевой функции.
Нахождение первого допустимого базисного решения системы ограничений или установление факта ее несовместности.
Проверка полученного решения на оптимальность. Если решение не оптимально, то
Поиск другого допустимого базисного решения, при котором целевая функция достигает как минимум не меньшего значения.
П. 4 и 5 повторяются до нахождения оптимального решения

Слайд 22

Симплекс-таблица

Пусть задача приведена к виду:

Симплекс-таблица Пусть задача приведена к виду:

Слайд 23

Симплекс-таблица: развернутый вариант

Симплекс-таблица: развернутый вариант

Слайд 24

Симплекс-таблица: сокращенный вариант

Симплекс-таблица: сокращенный вариант

Слайд 25

Симплекс-таблица: алгоритм решения
1. Просматривается последняя строка таблицы, среди коэффициентов этой строки (исключая

Симплекс-таблица: алгоритм решения 1. Просматривается последняя строка таблицы, среди коэффициентов этой строки
столбец свободных членов) выбирается наименьшее отрицательное число. Если такового нет, то исходное базисное решение является оптимальным.

Слайд 26

Симплекс-таблица: алгоритм решения
2. Столбец таблицы, соответствующий выбранному отрицательному коэффици-енту в последней строке

Симплекс-таблица: алгоритм решения 2. Столбец таблицы, соответствующий выбранному отрицательному коэффици-енту в последней
называется ключевым. В этом столбце выбираются положительные коэффициенты. Если таковых нет, то задача решений не имеет.

Слайд 27

Симплекс-таблица: алгоритм решения
3. Среди положительных коэффициентов ключевого столбца выбирается тот, для которого

Симплекс-таблица: алгоритм решения 3. Среди положительных коэффициентов ключевого столбца выбирается тот, для
абсолютная величина отношения соответствующего свободного члена к этому элементу минимальна. Этот коэффициент называется разрешающим или ключевым, а строка, в которой он находится, ключевой.

Слайд 28

Симплекс-таблица: алгоритм решения
4. Базисная переменная, отвечающая строке ключевого элемента, должна быть переведена

Симплекс-таблица: алгоритм решения 4. Базисная переменная, отвечающая строке ключевого элемента, должна быть
в разряд свободных, а свободная переменная, отвечающая столбцу ключевого элемента, вводится в число базисных. Новая таблица строится по следующему алгоритму.

Слайд 29

Симплекс-таблица: алгоритм решения
4а) в обозначениях строк и столбцов переменная, вводимая в базис

Симплекс-таблица: алгоритм решения 4а) в обозначениях строк и столбцов переменная, вводимая в
и переменная, выводимая из него, меняются местами;
4б) на месте ключевого элемента записываем обратное ему число;
4в) ключевую строку (за исключением ключевого элемента) делим на ключевой элемент; полученную строку вписываем на место ключевой;
4г) ключевой столбец (за исключением ключевого элемента) делим на ключевой элемент с противоположным знаком; полученный столбец вписываем на место ключевого;

Слайд 30

Симплекс-таблица: алгоритм решения

4д) все остальные элементы таблицы, включая строку оценок и столбец

Симплекс-таблица: алгоритм решения 4д) все остальные элементы таблицы, включая строку оценок и
свободных членов, пересчитываем по так называемому «правилу прямоугольника»:
на основе пересчитываемой клетки и клетки с ключевым элементом мысленно составляем прямоугольник, далее перемножаем элементы, стоящие в двух оставшихся его вершинах, полученное произведение делим на ключевой элемент и вычитаем из пересчитываемого элемента.

Слайд 31

Симплекс-таблица: алгоритм решения
5. Новая симплекс-таблица отвечает новому допустимому базисному решению. Проверяем новое

Симплекс-таблица: алгоритм решения 5. Новая симплекс-таблица отвечает новому допустимому базисному решению. Проверяем
решение на оптимальность, если решение не оптимально, то повторяем алгоритм.

Слайд 32

Пример

Для производства четырех видов изделий A1 , A2 , A3 , A4

Пример Для производства четырех видов изделий A1 , A2 , A3 ,
завод должен использовать три вида сырья I, II, III. Требуется составить план выпуска, обеспечивающий максимальную прибыль.
.

Слайд 33

Пример

Математическая модель задачи:
.

Пример Математическая модель задачи: .

Слайд 34

Пример

Приведение задачи к каноническому виду:
Примем за базисные переменные x5, x6, x7.
Тогда

Пример Приведение задачи к каноническому виду: Примем за базисные переменные x5, x6,
первое опорное решение:
(0; 0; 0; 0; 1000; 600; 150).

Слайд 35

Пример. 1 шаг симплекс-метода, развернутая таблица.

Пример. 1 шаг симплекс-метода, развернутая таблица.

Слайд 36

Пример. 1 шаг симплекс-метода, сокращенная таблица.

Пример. 1 шаг симплекс-метода, сокращенная таблица.

Слайд 37

Пример. 1 шаг симплекс-метода
Базисное решение (0; 0; 0; 0; 1000; 600; 150).
Поиск

Пример. 1 шаг симплекс-метода Базисное решение (0; 0; 0; 0; 1000; 600;
ключевой строки:
Выводим из базиса переменную x7 и вводим переменную x1

Слайд 38

Пример. 2 шаг симплекс-метода.

Пример. 2 шаг симплекс-метода.

Слайд 39

Пример. 2 шаг симплекс-метода
Базисное решение (150; 0; 0; 0; 250; 0; 0).
Определение

Пример. 2 шаг симплекс-метода Базисное решение (150; 0; 0; 0; 250; 0;
ключевой строки:
Выводим из базиса переменную x6 и вводим переменную x2.

Слайд 40

Пример. 3 шаг симплекс-метода.

Пример. 3 шаг симплекс-метода.

Слайд 41

Пример. 3 шаг симплекс-метода
Базисное решение (150; 0; 0; 0; 250; 0; 0).

Пример. 3 шаг симплекс-метода Базисное решение (150; 0; 0; 0; 250; 0;

Определение ключевой строки:
Выводим из базиса переменную x1 и вводим переменную x4.

Слайд 42

Пример. 4 шаг симплекс-метода.

Пример. 4 шаг симплекс-метода.