Локальные алгоритмы элиминации переменных, использующие в качестве структурного графа граф взаимосвязей переменных задачи.
Рассмотрим решение разреженной дискретной задачи оптимизации (8.8) – (8.10), структура которой описывается неориентированным графом взаимосвязей переменных
, с помощью локального алгоритма элиминации переменных. ЛЭА использует упорядочение вершин графа.
В дальнейшем с целью упрощения обозначений будем использовать упорядочение
для индексирования множества вершин
графа
, т.е.
и
будет рассматриваться как индекс или метка вершины
.
и
обозначают соответственно упорядоченный граф и упорядоченное множество вершин.
Для данного упорядочения
вершин графа
в виде
через
обозначим множество вершин с индексами из
, большими
:
.
Определение 8.8. Монотонной окрестностью вершины
называется множество вершин, соседних с
, с индексами, большими, чем
(согласно упорядочению
):

Определение 8.9. Граф, полученный из графа
с помощью
· удаления вершины
и всех ребер, исходящих из нее и
· соединения ребрами всех ранее не соседних вершин в
, называется
-элиминационным графом графа
и обозначается
.
Описанная операция называется элиминацией вершины
.
Для данного упорядочения
работа ЛЭА состоит в последовательной элиминации вершин
в текущем графе и вычислении соответствующей локальной информации о вершинах
. Этот процесс порождает последовательность элиминационных графов:
так что
‑
-элиминационный граф графа
, а
‑ пустой граф.
Процесс преобразования графа взаимосвязей переменных, соответствующий процедуре элиминации переменных с помощью локального алгоритма, известен как «элиминационная игра», которая впервые была введена Партером, как графовая интерпретация метода исключения Гаусса. Входом для алгоритма элиминационной игры является граф
и упорядочение
графа
.
Одним из методов, позволяющим решать задачи ДО (P), является локальный алгоритм (ЛА) А, описанный в разделе 8.2.2. Одним из недостатков ЛА А является то, что он не решает до конца задачу дискретной оптимизации, а лишь упрощает ее (в отдельных случаях). Кроме того, между ЛА А и ЛА A, решающим квазиблочные задачи ДО, не видно явной связи.
Рассмотрим модификацию алгоритма A, несериальный ЛА (НСЛА), использующий парадигму динамического программирования (ДП) и позволяющий полностью решать задачи ДО путем элиминации переменных.
Рассмотрим задачу (P) ДО вида (8.8) – (8.10), структура которой задается графом
взаимосвязей. Введем следующие обозначения для множеств вершин
:
· Смежность множеств:
(читается «
смежно
»), если существует вершина
в
и вершина
в
такие, что
.
означает
.
· Окрестность множества вершин
=
. Замкнутая окрестность множества
.
· Внутренность множества
=
.
· Граница множества
=
.
Для переменных задачи ДО будем использовать все эти же обозначения, пользуясь взаимно-однозначным соответствием между вершинами графа взаимосвязей и переменными.
Локальный алгоритм элиминации переменных в задаче ДО состоит в последовательном исключении (элиминировании) переменных, причем порядок, в котором переменные будут исключаться, важен, так как он существенно влияет на объем вычислений.
Рассмотрим описанную выше задачу ДО (P). Предположим без потери общности, что переменные исключаются в порядке
. Рассмотрим исключение первой переменной
. Найдем члены целевой функции, содержащие
:
и множество индексов ограничений, содержащих
:
. Совместно с
в
и в
входят переменные из
. Переменной
соответствует следующая подзадача
:

Тогда исходная задача (P) сводится к решению следующей задачи:

В последней задаче
переменная, по сравнению с исходной задачей (P) из ограничений исключены ограничения с индексами из
, а также члены целевой функции
, однако появился новый член целевой функции
, благодаря чему изменился граф взаимосвязей задачи: в нем вершина
удалена, а вершины из
соединены ребрами между собой (благодаря члену
(содержащий вычисленную информацию), связавшему эти вершины между собой). Это называется «пополнением» (fill). Заметим, что вершины из
образуют так называемую клику графа
[6].
Новый граф взаимосвязей обозначим
. Далее все окрестности переменных находятся уже в новом графе
. Алгоритм исключает оставшиеся переменные по одной за раз аналогичным образом. Будем предполагать, что переменные перенумерованы так, что они исключаются следующим образом:
. Исключение очередной переменной
называется «шаг
», а функции (таблицы), вычисленные на этом шаге, будем обозначать
.
ЛЭА может быть кратко записан так:
1. Перенумеровать переменные согласно порядку
(в данном случае
).
2. Для
исключить
, изменяя граф взаимосвязей путем добавления ребер для превращения окрестности исключаемой вершины в клику.
Пример 8.1 (продолжение).
Рассмотрим решение задачи ДО (8.11)- (8.15) из примера 8.1. Обозначим
‑ множество всех переменных задачи; подмножества
переменных, входящих в ограничения (8.12)- (8.15):
;
.
Построим граф взаимосвязей этой задачи, сопоставляя каждой переменной задачи вершину графа и соединяя 2 вершины ребром, если соответствующие вершинам переменные взаимосвязаны, т.е. входят в одно и то же ограничение или, другими словами, входят в одно и то же подмножество
. Так, вершины графа, соответствующие переменным
, попарно соединены друг с другом ребрами, так как эти переменные входят в подмножество
; вершины для переменных
также попарно соединены друг с другом ребрами, так как эти переменные входят в подмножество
то же можно сказать и о вершинах графа для переменных из подмножества
и подмножества
. В то же время не существует ребер графа, связывающих вершины
и
, так как эти переменные не входят одновременно ни в одно из подмножеств
.
Как было отмечено выше, ЛА элиминации переменных состоит в последовательном исключении переменных. Начнем с исключения переменной
. Для этого проанализируем, используя граф взаимосвязей переменных (рис. 8.6 а)), с какими переменными
связана ‑ с переменными
и
, составляющими окрестность
. Заметим, что вершина 1, соответствующая переменной
в графе, симплициальна, так как ее соседи (вершины 2 и 3) образуют клику. Построим из исходной задачи задачу оптимизации, содержащую переменную
в целевой функции и ограничениях:

при ограничениях
(8.12')


Далее для каждого набора значений переменных
и
, вычислим значение переменной
, для которого значение функции
будет максимальным при соблюдении ограничения (8.12'). Вычисления запишем в таблицу 8.1, в которой

и
‑ значение переменной
, соответствующее
.
Таблица8.1. Вычисление
| x2 | x3 | x1 |
|
|
|
| - | |||||
| - |
Замечание. Символом «-» обозначено отсутствие допустимых решений.
Заметим, что здесь мы пользовались принципом оптимальности Беллмана, поскольку из всех возможных значений
выбрали для каждого набора
значение
, соответствующее максимуму
.
Следуя обычной процедуре динамического программирования, рассмотрим новую задачу (P1), в которой уже нет исключенной переменной
:

при ограничениях
(8.13')
(P1) (8.14')
(8.15')

Построим граф взаимосвязей этой новой задачи – элиминационный граф
(рис. 8.6 б)).
Исключим на следующем шаге переменную
. Для этого найдем окрестность
, используя граф взаимосвязей переменных (рис. 8.6 б)):
.
Построим задачу оптимизации, содержащую переменную
в целевой функции и ограничениях:

Вычисления запишем в таблицу 8.2, в которой
‑ значение переменной
, соответствующее
.
Таблица 8.2. Вычисление
.
| x2 | x5 |
|
|
|
| - |
Рассмотрим новую задачу (P2), в которой уже нет переменной
и ограничения (8.12') (учтенного в функции
)

при ограничениях
(8.14'')
(8.15'')

Граф взаимосвязей этой задачи показан на рис. 8.6 в).
Покажем возможность исключения сразу нескольких переменных (блока переменных). Анализируя граф взаимосвязей на рис. 8.6 в) и замечая, что
и
связаны лишь с
(в ограничении (8.14'') и целевой функции), исключим их вместе (блоком), построив таблицу 8.3 для решения следующей оптимизационной задачи:

при ограничениях


Таблица 8.3. Вычисление
.
|
|
|
|
|
|
|
| - | ||||||
| - |
В результате получим новую задачу (P3), из которой исключен блок переменных
и
:

при ограничениях
(8.15''')

Анализируя новый граф взаимосвязей на рис. 8.6 г) и замечая, что
и
связаны лишь с
(в ограничении (8.15''') и целевой функции), исключим их вместе (блоком), построив таблицу 8.4 для решения следующей оптимизационной задачи:

при ограничениях

В результате получим новую задачу (P4), из которой исключен блок переменных
и
:

при ограничениях 
Решение последней задачи осуществляется сравнением значений целевой функции при
и
(табл. 8.5).
Таблица 8.4. Вычисление
.
|
|
|
|
|
|
|
| - |
Таблица 8.5. Вычисление
.
|
|
|
|
Из таблицы 8.5 получаем решение
соответствующее максимальному значению целевой функции 18 исходной задачи. Порядок исключения переменных в приведенном примере:
{x1, x5, (x2, x4), (x6, x7), x3}. Можно убедиться, что исключение переменных в другом порядке, например,
{x3, x6, x7, x2, x1, x4, x5}, приводит к другому объему вычислений.
Таким образом, в рассматриваемом примере применялся принцип оптимальности Беллмана, для нахождения максимального значения целевой функции были построены таблицы. Чтобы найти само решение (значения переменных), нужно сделать обратный шаг процедуры динамического программирования, анализируя таблицы в обратном порядке. Так, из таблицы 8.5 находим оптимальное значение
. Возвращаясь к таблице 8.4, находим для
значения переменных
и
:
. Из таблицы 8.3 находим, что значению
соответствуют
. Таблица 8.2 дает для значения
соответствующее
Зная
, из таблицы 8.1 получим
Итак, искомое решение
, для которого достигается максимум целевой функции, равный 18.
К недостаткам описанного выше локального алгоритма элиминации переменных следует отнести то, что на каждом шаге он перебирает значения для всех переменных из исследуемой окрестности
, а ЛА A ‑ лишь значения переменных из граничного множества
. Ниже предлагается модификация ЛА элиминации переменных, сочетающая достоинства обоих алгоритмов.
Как мы уже отметили, ЛА элиминации переменных исследует окрестность
некоторой переменной
и находит для всех значений переменных из этой окрестности оптимальное значение
, что может приводить к большому объему вычислений. Однако переменные из окрестности могут обладать разными свойствами по отношению к своей окрестности: одни из них имеют связи лишь с переменными из данной окрестности, другие же связаны и с переменными извне. Поэтому имеет смысл осуществлять полный перебор значений лишь для переменных, принадлежащих границе окрестности
, как в ЛА A, а оптимальные значения «внутренних» переменных окрестности (т. е. переменных из
) определять совместно с переменной
, образуя «блок» переменных. В ЛА элиминации переменных переменные из
могут рассматриваться как «блочная» переменная (или супер-переменная). Переменные в упорядочении
, принадлежащие к
, могут рассматриваться также как одна блочная переменная, проиндексированная переменной
. При построении блочных переменных целесообразно использовать понятие «супер-вершины» [6], объединяющей в себе так называемые «неразличимые вершины» (в графе G две смежные вершины u и v называются неразличимыми, если
).
Рассматривая квазиблочную задачу ДО, можно объединить все «внутренние» переменные блоков, являющиеся неразличимыми, в супер-вершины, соответствующие блокам, при этом общие переменные блоков (переменные из «перемычек») образуют другие супер-вершины. В результате решение квазиблочной задачи ДО c помощью блочной модификации НСЛА сводится к решению задачи с линейным графом вида
и реализация этого алгоритма совпадает с ЛА A.
8.3.5. Графовые структуры локального элиминационного алгоритма
Дата добавления: 2016-06-05; просмотров: 1881;











