![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
![]() |
||||||
![]() |
Eng | Rus | Ukr | ![]() |
![]() |
||||
![]() |
|||||||
![]() |
![]() |
||||||
![]() |
![]() |
![]() |
|||||
![]() |
Исследование операций
|
29.01.2005
|
![]() |
![]() |
|||
4.5. ПОСЛЕДОВАТЕЛЬНЫЕ АЛГОРИТМЫ ДИСКРЕТНОЙ ОПТИМИЗАЦИИОбщая характеристика На основе обобщения идей теории последовательных решений и динамического программирования В.С.Михалевич разработал общую схему последовательного анализа вариантов (ПАВ). С точки зрения формальной логики схема ПАВ сводится к такой последовательности повторения процедур: разбиение множества вариантов решения задачи на несколько подмножеств, каждое из которых обладает специфическими свойствами; использование этих свойств для поиска логических противоречий в описании отдельных подмножеств; исключение из дальнейшего рассмотрения тех подмножеств вариантов решения, в описании которых имеются логические противоречия. Методика последовательного развития, анализа и отсева вариантов состоит в таком способе развития вариантов и построения операторов их анализа, которые позволяют отсеивать бесперспективные начальные части вариантов до их полного построения. Поскольку при отсеивании бесперспективных начальных частей вариантов отсеивается тем самым и все множество их продолжений, то происходит значительная экономия вычислительных затрат. На базе этой общей схемы В. С. Михалевич и его сотрудники разработали целый ряд алгоритмов последовательного анализа вариантов, которые получили широкое применение в практике. Разработке и исследованию приближенных алгоритмов дискретной оптимизации посвящено значительное количество работ [43; 46]. Приближенные методы можно разбить на следующие группы: методы локальной оптимизации, модификации точных методов, эвристические методы, максимально учитывающие специфику решаемых задач, методы случайного поиска, а также методы, сочетающие локальную оптимизацию со случайным поиском. Отметим, что многие приближенные алгоритмы позволяют решать задачи дискретной оптимизации в диалоговом режиме. Это дает возможность в зависимости от выделяемых ресурсов (времени, памяти ЭВМ и т.п.) последовательно улучшать полученное решение путем изменения всех или некоторых исходных данных. В качестве основных показателей эффективности приближенных алгоритмов на практике часто используют абсолютную Δ1 и относительную Δ2 погрешности полученного приближенного решения, которые определяются из соотношений: Δ1 = f (x*) - f (x1); Δ2 = где f - целевая функция, определенная на дискретном множестве M; x1 - приближенное допустимое решение задачи; x* - оптимальное решение задачи (для определенности здесь имеется в виду поиск максимума f (x)). Если Δ1 = 0 (в этом случае будем считать Δ2 = 0, даже если f (x*) = 0), то приближенное решение совпадает с точным решение. На практике, особенно при решении задач большой размерности в режиме диалога, важное значение имеют такие приближенные методы, которые позволяют отыскать последовательность приближенных решений x11, x12, ., x1n , каждый последующий член которой все ближе к точному решению. Значительная часть приближенных алгоритмов дискретной оптимизации базируется на использовании вычислительных схем известных точных методов, таких как метод ветвей и границ, последовательного анализа вариантов и прочих. Одними из наиболее развитых приближенных методов являются методы локальной оптимизации, имеющие своей целью отыскание локально оптимальных решений . Нередко в этих методах на определенных этапах решения задачи используются методы случайного поиска, а также различные способы (эвристики), которые дают возможность сократить ход вариантов и максимально учитывают специфику задачи. Следует отметить, что алгоритмы, в которых комбинируются различные идеи, на практике часто оказываются наиболее эффективными. С помощью этих методов были решены многочисленные сложные задачи классификации объектов, размещения, планирования и проектирования. Основное преимущество этих методов - простота реализации, а основной недостаток это то, что они не могут адаптироваться к условиям решаемой задачи. Значительно более гибкими являются методы, у которых вероятностный закон зависит от исходов предыдущих испытаний и изменяется от итерации к итерации. Это методы случайного поиска с обучением. Методы случайного поиска используются для приближенного решения многомерных задач о ранге, а также задач линейного булева программирования большой размерности. Детализация схемы ПАВ происходила в нескольких направлениях. В связи с решением задач линейной или древовидной структуры был сформирован обобщенный принцип оптимальности для монотонно рекурсивных функционалов, на основе которого можно строить схему решений, свободную от некоторых ограничений, присущих каноническим процедурам динамического программирования. Для структур, которые имеют форму дерева, были исследованы вопросы, связанные с порядком просмотра ветвей, и найдены способы минимизации числа массивов информации, необходимой для реализации процедур ПАВ. Метод ПАВ использовался для решения большого количества важных задач оптимального планирования и проектирования, таких как задачи расчета транспортных сетей, задачи размещения на сети типа дерева, проектирование распределительных электрических сетей, выбора оптимальных параметров магистральных газопроводов и т.п. Далее на основе алгоритмической схемы ПАВ были разработаны эффективные методы конструирования, анализа и отсева вариантов для решения многочисленных задач календарного планирования. Относительно теории календарного планирования (КП) были обоснованы точные методы решения разных классов задач малой размерности, доказаны необходимые и достаточные условия приоритетной решаемости для задач КП с однотипным оборудованием, разработаны эффективные способы, которые используют правила доминирования. Для решения задач большой размерности дискретного сепарабельного и линейного целочисленного программирования было разработано декомпозиционные алгоритмы, которые базируются на схемах последовательного анализа и отсева вариантов. При этом сужение исходного множества вариантов осуществлялось путем отсева отдельных компонент, что дало возможность свести решение исходной задачи большой размерности к решению совокупности подзадач малой размерности. Общая схема методаМетод последовательного анализа вариантов (ПАВ) базируется на отсеве бесперспективных элементов как по ограничениям, так и по целевой функции. Его идеи рассмотрим на примере такой задачи дискретного программирования [9]. Пусть L(D(
где множество допустимых решений D( gp(x) £ gp*(x), gp(x) ³ gp*(x),
Здесь
f(x), gp(x) - произвольные функции дискретного аргумента. Будем называть решение (вариант) x Î Основой метода ПАВ для задачи (4.5.1) - (4.5.5) является процедура W последовательного отсева значений переменных
где
если
где
Другими словами, вариант Обозначим множество элементов Очевидно,
Пусть при некотором l Итак, мы доказали такое утверждение. Лемма. Условие Поскольку для проверки выполнения этого условия надо сравнить мощности множеств Пусть где является множеством точек оптимума функций Нетрудно увидеть, что условие Справедливое такое утверждение: число применений процедуры W1 к задаче (4.5.1) - (4.5.4) конечное. Его справедливость вытекает из конечности множества допустимых решений. Сформулируем критерий отсева в виде теоремы. Теорема 4.4. Элемент Доказательство этой теоремы несложное и приводится в [33]. Из теоремы 4.4 вытекает, что множество допустимых решений в результате использования процедуры W1 не изменяется, то есть D( 1) 2) 3) минимизировать при ограничении где множество допустимых значений
Рассмотрим первую задачу
К полученной таким образом задаче Λ(1) применим процедуру W1, которая состоит в отсеве элементов Далее, к множеству элементов Случай 1. Полученное множество
то применение процедуры W1 не может привести к его отсеву. Сформулируем это утверждение в виде теоремы [33]. Теорема 4.5. Если Случай 2. Множество Соответствующие признаки оптимальности можно сформулировать в виде следующих теорем. Теорема 4.6. Критерий оптимальности I. Если
и Сущность этой теоремы в том, что если существует решение x1, оптимальное на сокращенном множестве (которое осталась после всех процедур отсева) Д о к а з а т е л ь с т в о. Пусть некоторое решение
то Если хотя бы один элемент Теорема 4.7. Критерий оптимальности II. Если
где
Доказательство этой теоремы аналогично доказательству теоремы 4.6. Объясним содержание теоремы 4.7. Условие (4.5.15) означает, что для допустимого по ограничениям варианта x1 f(x1) > f1 * (поскольку Д о к а з а т е л ь с т в о. Поскольку D(
Докажем вторую часть теоремы 4.7. Условие (4.5.16) означает, что
Сравнивая условия (4.5.18) и (4.5.19) с (4.5.17), убеждаемся, что они совпадают. Итак, теорема 4.7 доказана. Критерий оптимальности II означает, что если множество решений задачи f(x) £ f(x'); f(x) > f1*. Итак, с помощью критериев оптимальности I, II поиск оптимального решения исходной задачи сводится к поиску его на некоторых подмножествах Процесс сужения поиска осуществляется таким образом. Если множество
Процесс сужения множества найти
где f(x) > f1*; (4.5.21) f(x) £ f2*; (4.5.22) а также ограничениями (4.5.2),(4.5.3). Ограничение (4.5.2) можно использовать в двух направлениях: во-первых, для проверки допустимости отсева вида (4.5.6), (4.5.8) с целью отбрасывания элементов Если после сужения надо провести расширение множества вариантов, или наоборот после расширения - снова проводить сужение, то
Здесь имеется в виду то, что одна из задач Изложенный метод решения задачи дискретного программирования (4.5.1),(4.5.2) может быть практически применен, если удастся реализовать эффективную процедуру проверки условий отсева (4.5.6), (4.5.8). В этом случае для каждого значения Однако для конкретных классов задач можно воспользоваться тем условием, что надо отыскать безусловный экстремум. Для этого желательно, чтобы, во-первых, функции f(x), gp(x) были такими, что для каждой переменной Дополнительные упрощения можно сделать в случае, если f(x) является монотонной, не возрастающей функцией, а все gp(x) - монотонно неубывающие для любой переменной В случае, если при сделанных выше предположениях функции gp(x), f(x¢) - f(x¢¢) £ f ¢(x¢¢)(x¢-x¢¢); x¢,x¢¢Î Для выпуклых функций знак неравенства будет противоположный. Поскольку в (4.5.6) и (4.5.8) все переменные, кроме одной, зафиксированной, то будем рассматривать gp(x) как функцию одной переменной. Из последнего неравенства получим
где
где
Понятно, что все значения x, для которых Если для следующего за x* значения x
или и т.д., откуда получаем такое значение Алгоритм решения задачи дискретного сепарабельного программированияРассмотрим задачу дискретного программирования с так называемыми сепарабельными (аддитивными) функциями критериев и ограничений: максимизировать при таких ограничениях:
где
На основании результатов предыдущего раздела сформулируем условия отсева по ограничениям (4.5.24), (4.5.25) для задачи (4.5.23) - (4.5.25) таким образом [9]. Пусть
или
хотя бы для одного p = q+1,.,Q, то элемент Перейдем к описанию алгоритма отсева элементов возможных вариантов задачи (4.5.23) - (4.5.25). Построим таблицу
Укажем, что число элементов в j-ой строке равняется kj , причем в общем случае k1 ¹ k2 ¹...¹kn. Излагаем процедуру отсева W по ограничениям вида gp(x)<g*p. П е р в ы й ш а г. Построим таблицу В т о р о й ш а г. Проверим выполнение условия
где X1(0) - первый столбец таблицы Т р е т и й ш а г. Вычисляем значения функции
последовательно для каждого элемента Если kj имеет большое значение, целесообразно применять другие правила проверки условия (4.5.31). Например, делается проверка Первый элемент в строке, для которой неравенство (4.5.31) выполняется, и все следующие элементы отбрасываются в соответствии с правилом отсева. Процесс третьего шага повторяем для всех строк таблицы
В результате получаем сокращенную таблицу Далее переходим к первому шагу следующей итерации и применяем процедуру W1 к таблице Затем, используя третье ограничение Следующий этап состоит в применении процедуры W1 к ограничениям вида
П е р в ы й ш а г. Элементы строк сокращенной таблицы В т о р о й ш а г. Проверим выполнение условия
где Т р е т и й ш а г. Проверим выполнение условия
Если условие (4.5.33) выполняется, то перейдем к первому шагу и рассмотрим следующее ограничение: Ч е т в е р т ы й ш а г. Проверяем выполнение условия
последовательно для всех элементов первой строки таблицы Первый элемент в строке 1, для кого неравенство (4.5.34) выполняется, и все дальнейшие элементы отбрасываются. Пара шагов третий-четвертый выполняется для всех строк таблицы Далее процедура W1 последовательно применяется ко всем ограничениям В результате получим сокращенную таблицу В соответствии с вышедоказанным, число применений процедуры W1 конечное и в результате ее применения ни одно из допустимых решений начальной (исходной) задачи не будет отсеяно. Если D( В случае, если множество Рассмотрим процедуру W2. П е р в ы й ш а г. Приведем в порядок элементы в строках таблицы В т о р о й ш а г. Если первый столбец упорядоченной таблицы
применяя процедуру W1, но уже к функции f, и запоминая отсеянные элементы. Здесь fmax - значение функции f на элементах первого столбца таблицы Т р е т и й ш а г. Сокращенную таблицу
Этот процесс повторяем до тех пор, пока на k-м шаге не получим таблицу В этом случае к ограничениям (4.5.24), (4.5.25) добавляем ограничение
и переходим к четвертому шагу. Если же на третьем шаге сразу получается таблица и т.д. В конце концов на s-м возвращении на второй шаг имеем Тогда к ограничениям (4.5.28) добавим ограничение Ч е т в е р т ы й ш а г. Итак, пусть на третьем шаге мы получили таблицу Если число возможных решений В случае отсутствия допустимых решений в таблице Если допустимые решения существуют, то выбираем наилучшие из них и переходим на пятый шаг. Если же число вариантов Пусть любые два неравных значения целевой функции Тогда поделив отрезок можно получить такие таблицы П я т ы й ш а г. На этом шаге анализируем полученное на предыдущих шагах допустимое решение задачи x¢ Î D( Укажем некоторые важные свойства изложенного алгоритма. 1. Алгоритм ПАВ по сути является аддитивным, так как в нем используются лишь операции сложения и вычитания. 2. Начальные таблицы в процессе работы алгоритма не вычисляются, а лишь некоторые их элементы вычеркиваются (те, которые отсеяны). 3. На каждом шаге работы алгоритма используется лишь одна таблица, которая соответствует анализируемому ограничению. 4. Возрастание числа ограничений повышает эффективность алгоритма вследствие усиления отсева бесперспективных элементов. 5. На каждом шаге работы алгоритма отсеиваются явным образом неэффективные по соответствующей системе ограничений варианты. Вариант x¢ не может быть улучшен по системе ограничений
если не существует такого варианта x2, что и хотя бы для одного p′ соответствующее неравенство строгое. Алгоритм решения задачи линейного целочисленного программированияВ качестве примера частного случая задачи дискретного программирования (4.5.23) - (4.5.25) рассмотрим задачу ЛЦП: максимизировать при ограничениях
где
Заменим условия (4.5.38), (4.5.39) такими:
Нетрудно заметить, что k-тая компонента вектора xi = Тогда правило отсева для ограничений формулируем таким образом: если
хотя бы для одного i = 1, ., Q, то j-тая компонента решения задачи (4.5.36)-(4.5.39) не может приобретать значение, которое равняется Таким образом, в процессе работы алгоритма будут отсеянные такие значения где Правило отсева по целевой функции для задачи если
где то j-тая компонента допустимого решения задачи L1 не может приобретать значения В процессе работы алгоритма для задачи L(s), s = 2, 3, . величины а) если надо расширить множество б) для сужения множества в) Для применения алгоритма необходимо задать ограничение вида (4.5.38). На практике эти границы
В некоторых случаях определение 1) если для всех
где знак [x] означает целую часть x; 2) если среди ограничений (4.5.37) обнаружится хотя бы одно, например k-тое, для которого
Пример 4.6. Для иллюстрации работы метода ПАВ рассмотрим такую задачу:
при ограничениях
Предварительный этап. Найдем начальные множества
Таким образом, Первая итерация. Процедура W1. Отсев по первому ограничению:
Второе ограничение:
Третье ограничение:
Четвертое ограничение:
Поэтому переходим к процедуре W2. Процедура W2:
Правило отсева такое: f (x) = Итак,
Процедура W1. Отсев по первому ограничению:
По второму ограничению отсева нет. Третье ограничение:
Четвертое ограничение:
Вторая итерация. Поскольку отсев по процедуре W1 состоялся, то перейдем снова к процедуре W2.
Процедура W1:
Снова повторяем процедуру W2 при одном и том же значении Процедура W2:
Процедура W1:
Итак, имеем такие сокращенные подмножества:
Теперь можно найти xopt непосредственным перебором:
Поскольку f (
Алгоритм последовательного анализа вариантов
|
![]() |
||||||
![]() |
|||||||
Copyright © 2002-2004 | ![]() |
||||||
![]() |
![]() |