Использование фазовых переходов при решении комбинаторных задач

ИСПОЛЬЗОВАНИЕ ФАЗОВЫХ ПЕРЕХОДОВ ПРИ РЕШЕНИИ КОМБИНАТОРНЫХ ЗАДАЧ

В.Б. Вальковский, С.А. Беляев

Активно развивающаяся в последние годы логистика (транспортная, торговая, финансовая и т.п.) поставила перед разработчиками программных систем проблему создания эффективного инструментария для решения подобных задач. Специфической особенностью такого рода систем является необходимость интеграции в единой программной среде методологии искусственного интеллекта и исследования операций для решения комбинаторных задач большой размерности [1].

Одним из наиболее эффективных подходов является Constraint Logic Programming (CLP), объединяющий в единой среде средства логического вывода и методологию решения задач исследования операций. Большинство современных CLP-систем строятся на базе методов исследования операций. Ядром такого рода систем являются специальные процедуры constraint solvers, решающие оптимизационные задачи на базе constraint технологии. Основная задача constraint solvers - редукция пространства поиска решения за счет наложения ограничений на переменные с последующим использованием парадигмы constraint and generate [3].

Несмотря на успешное применение парадигмы constraint and generate при решении многих практических задач [1], по-прежнему остается открытым вопрос создания эффективных процедур, решающих задачи комбинаторной оптимизации с требуемым качеством и за приемлемое для пользователя время. Рассмотрим ситуацию на примере решения одной из важнейших задач транспортной логистики - задачи коммивояжера. Одним из основополагающих методов решения этой задачи является метод ветвей и границ. Известно, что при средней сложности решения и3 верхней границей является экспонента. Однако при решении транспортных задач время, отводимое на решение, ограничено и является критическим фактором. При большой размерности исходных данных в таких задачах чаще всего используют процедуры, которые ищут приближенное решение, заранее отказываясь от преимуществ точного. Большинство из них находит локальный минимум за полиномиальное время, но практически невозможно определить точность найденного решения (см. табл.), что приводит к большим финансовым потерям при решении логистических задач.

Таблица

Метод Точность

• Метод ближайшего соседа • Метод вставки (ближайшей, наилучшей, наихудшей) (решение) / (оптимальное) < 0.5 [ln n] + 0.5 (решение) / (оптимальное) < 2

Положение усугубляется обнаруженным в последние годы эффектом фазовых переходов сложности решения комбинаторных задач [2,4], которые приводят к патологическому возрастанию времени

решения и исключают возможность реализации процедур с использованием точных методов. Как было показано в [2], одной из причин резкого возрастания сложности решения является наличие фазового перехода, обусловленного топологией весовой матрицы. В данном случае причиной появления фазового перехода являются подматрицы на главной диагонали (кластеры) с элементами в среднем меньше элементов в остальных подматрицах (рис. 1), а также обнаружено, что при использовании метода ветвей и границ время на решение возрастает на порядки. Так, на рисунке 2 приведена зависимость времени решения для матрицы размерностью 16x16 от степени различия весов элементов в подматрицах главной диагонали и подматрицах связи.

Ail А12 Al3

Al AJ Л23

Ai Лз2 Лзз

I* £ У

< , i Ф j | A I 141

Рис. 1

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

Несмотря на драматизм создавшейся ситуации, представляется возможным использовать негативные свойства подобной топологии для построения эффективных процедур, решающих поставленную задачу. В основу подхода предлагается положить принцип декомпозиции решения на основе специфики весовой матрицы. В [2] показано, что большая часть ребер из точного решения при такой топологии исходной матрицы принадлежит кластерам. Число ребер решения, принадлежащих кластерам, возрастает по мере увеличения степени различия между элементами кластеров и подматриц связи, что позволяет искать решение внутри кластеров, а затем решать задачу соединения их в один гамильтонов цикл. При этом размерность задачи сокращается до количества кластеров и сложность ее уменьшается. Рассмотрим некоторые варианты организации вычислений.

Lg(T), [T, сек] 1

0,5 0 -0,5 -1 -1,5 -2 -2,5

Рис. 2.

37

Если все элементы в кластерах строго меньше элементов подматриц связи, то частные решения проходят через все кластеры и соединяются через подматрицы связи, причем реализуется схема: один вход в кластер — один выход (в качестве элементов в подматрицах связи можно использовать, например, минимальные). Причина тому - особенности метода ветвей и границ; он ищет минимальный путь, а все минимальные ребра лежат в кластерах, значит, путь будет проходить через них. Редуцированная таким образом задача представляется как задача коммивояжера с количеством вершин, равным количеству кластеров (рис. 3). Решение данной задачи позволяет

An A12 A0

м 312 a13

A21 A22 A21 а21 м a23

м

A31 A32 A33

Рис. 3

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

В общем случае, когда элементы из кластеров в среднем меньше элементов из подматриц связи и строгое неравенство не выполняется, схема один раз

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

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

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

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

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

Список литературы

1. CP-AI-OR'99, Workshop on Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems - Ferrara, Italy, 25 - 26 February, 1999.

2. Valkovsky V.B., Gerasimov M.B., Savvin K.O. Phase Transitions in TSP and Matrix Topology. In Proc. of the Joint Workshop on Integration of AI and OR techniques in Constraint Programming for Combinatorial Optimization Problems. Universita degli Studi di Ferrara - Facolta di Ingegneria, Italy 1999. 5 pp.

3. Fierbinteanu C. "The Implementation by Constraint Logic Programming of a Decision Support System Generator for Transportation Planning", Proc. Of the Fourth Int'l Conf. On the Practical Application of Constraint Technology, PAPPACT98, London, pp.285-294, March 1998.

4. Gent J.P., Walsh T. The TSP Phase Transition, Research Report/95/178, Department of Computer Science, University of Strathclyde.

ДИСКОВАЯ СБОРКА МУСОРА С ЛОГИЧЕСКИМ ДЕЛЕНИЕМ ПРОСТРАНСТВА КУЧИ

В.С. Козловский

Сборка мусора в оперативной памяти является широко изучаемой областью [1]. Для разных условий было предложено и исполнено множество алгоритмов, чего, однако, нельзя сказать о дисковой сборке мусора. Логичным кажется применение алгоритмов, разработанных для сборки мусора в основной памяти, но преобразованных к условиям долговременного хранения. Как показывают исследования, проведенные в области управления памятью в системах управления объектно-ориентированными БД, алгоритмы, хорошо зарекомендовавшие себя для языков программирования, фактически не применимы в отношении БД [2]. Причина этого в большом количестве различий между этими системами, например,

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

Простой способ сборки мусора состоит в трассировке всех объектов, достижимых из корневых указателей (root set), и затем следует учет и обработка неиспользуемого пространства. Однако трассировка глобального графа объектов в распределенной сис-

38