Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpora.doc
Скачиваний:
22
Добавлен:
28.10.2018
Размер:
543.74 Кб
Скачать

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) является не только необходимым, но и достаточным для оптимальности последовательности обслуживания заявок.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]