- •1. Введение
- •Основные разделы курса
- •3. Основная задача линейного программирования. Различные формы записи задачи.
- •6. Алгоритм симплекс-метода.
- •1.3. Реализация симплекс-метода в виде симплексных таблиц.
- •8Транспортная задача. Описание и примеры применения метода потенциалов.
- •29.Метод ветвей и границ. Задача о рюкзаке.
- •Задача о рюкзаке
- •30. Метод ветвей и границ. Задача коммивояжера.
- •28. Методы перебора вариантов. Метод вариаций.
- •31.Задачей целочисленного программирования называется задача линейного программирования, в которой имеется дополнительное условие, требующее, чтобы часть переменных принимала только целые значения.
- •35.Общие принципы дискретного динамического программирования. Уравнение Беллмана.
- •36. Задача распределения ресурсов.
- •38. Построение кратчайшего пути на сети.
- •37. Задача оптимального планирования. Обработка деталей на двух станках.
- •10. Выпуклые множества и выпуклые функции.
- •13.Двойственность в задачах выпуклого программирования
- •14. Квадратичное программирование
- •12. Постановка задачи. Теорема Куна – Таккера.
- •16. Геометрическое программирование
- •11. Свойства выпуклых множеств и выпуклых функций
- •19. Общая задача нелинейного программирования.
- •22.Свойства дифференцируемых функций.
- •24. Дифференцируемость оператора Немыцкого.
- •25. Необходимый признак экстремума в задачах без ограничений первого и второго порядков.
- •27 . Правило множителей Лагранжа для гладких нелинейных задач.
- •41. Простейшая вариационная задача (пвз), исследование необходимых условий экстремума первого порядка.
- •45. Вариационная задача с кусочно-гладкими кривыми.
- •46. Исследование необходимых условий экстремума второго порядка. Условия Лежандра и Якоби.
- •42.. Алгоритм Гюйгенса исследования пвз.
- •48.. Поле экстремалей. Достаточные условия сильного экстремума.
- •Задача Больца.
- •6.9. Изопериметрические задачи.
- •51. Принцип максимума Понтрягина.
28. Методы перебора вариантов. Метод вариаций.
Дискретная оптимизация занимается исследованием задач, в которых необходимо сделать оптимальный выбор из конечного числа возможных вариантов. Задачи, имеющие конечное множество допустимых планов, называют комбинаторными.
C теоретической точки зрения простейшим методом поиска экстремального значения в комбинаторных задачах является метод полного перебора всех вариантов. Применение компьютеров позволяет осуществлять перебор достаточно большого количества вариантов, однако существуют задачи, в которых такой метод не позволяет получить решение за приемлемое время. С другой стороны, в некоторых задачах представляет интерес сам алгоритм организации перебора.
Для преодоления этих трудностей разработаны различные методы, позволяющие теоретически обосновать отсутствие необходимости в рассмотрении большей части вариантов.
В качестве первого примера рассмотрим метод вариаций.
Пусть M – конечное множество, содержащее все допустимые планы задачи. Определим множество правил, согласно которым можно переходить от одного плана к другому. Каждый такой переход будем называть вариацией. Полный набор вариаций должен позволять за конечное число шагов переходить от любого начального плана к произвольно выбранному конечному плану. Суть метода вариаций состоит в следующем.
Пусть x0 – план задачи, такой что для любого другого плана x* найдется последовательность вариаций x* → xn → xn-1 → … → x1 → x0, на которой целевая функция задачи монотонно убывает, то x0 – точка минимума в данной задаче.
Проиллюстрируем работу этого метода на задаче минимизации штрафов при обслуживании заявок.
Рассмотрим n заявок, которые нужно обслужить на одном приборе (в одной точке обслуживания). Известно время T(i) обслуживания i-й заявки и c(i) – приоритет заявки (величина штрафа за единицу времени, в течение которого i-я заявка находится в очереди). Требуется найти порядок обслуживания заявок, при которой общий штраф будет минимальным.
Множество всех допустимых планов задачи состоит из множества всех перестановок {i1, i2, …, in} чисел от 1 до n. В качестве вариаций рассмотрим транспозиции – перестановки двух номеров, находящихся в списке рядом друг с другом. Как уже отмечалось в алгебре, поскольку из любой данной перестановки можно получить любую другую при помощи конечной серии транспозиций, основное требование к набору вариаций выполнено.
Для решения задачи рассмотрим произвольную последовательность расположения заявок i1, i2, …, in. и изучим, как на величину штрафа влияет одна транспозиция.
Поменяем местами заявки ik и ik+1. Время ожидания заявки ik возрастет на T(ik+1), время ожидания заявки ik+1 уменьшится на T(ik). Следовательно, штраф изменится на величину T(ik+1) c(ik) – T(ik) c(ik+1).
Если последовательность заявок является оптимальной, никакая транспозиция не может уменьшить штраф, т.е. T(ik+1) c(ik) – T(ik) c(ik+1) ≥ 0, откуда c(ik) / T(ik) ≥ c(ik+1) / T(ik+1) . Таким образом, в оптимальной последовательности заявок выполняется условие:
c(i1)/T(i1) ≥ c(i2)/T(i2) ≥ … ≥ c(in)/T(in) .
Нетрудно доказать, что условие (4.12) является не только необходимым, но и достаточным для оптимальности последовательности обслуживания заявок.