алгоритмов решения проблем ЗЛП и содержит свыше 50 модулей в виде М-функций МЛТЬЛБ, которые подразделены на три группы (уровня):
• базовые модули - не используют вызовов других модулей ПС;
• модули второго уровня - предназначены для решения конкретных задач редукции, агрегации и трансформации моделей ЛП, определения внутренних допустимых точек систем линейных ограничений и выполнения процедур предоптимизационного и постоптимизационного анализов;
• модули третьего уровня - законченные функциональные приложения для решения ЗЛП в различных постановках, описанных в специальной литературе.
Список литературы
1. Филлипс Д.Г., Гарсиа-Диас А. Методы анализа сетей. -М.: Мир, 1984. - 496 с.
2. Гольштейн Е.Г., Немировский А.С., Нестеров Ю.Е. О некоторых последних достижениях в оптимизации // Экономика и математические методы. - 1990. - №1. - С. 178-190.
3. Алберт А. Регрессия, псевдоинверсия и рекуррентное оценивание. - М.: Наука, 1997. - 224 с.
4. Демидов Н.Е. Параметризация обобщенных обратных матриц: алгоритмическое и программное обеспечение // Программные продукты и системы. - 1998. - №2. - С. 33-36.
5. Муртаф Б. Современное линейное программирование. Теория и практика. - М.: Мир, 1984. - 224 с.
6. Основы теории оптимального управления. - М.: Высшая школа, 1990. - 430 с.
7. Вагнер Г. Основы исследования операций. - М.: Мир,1973. - Т.1. - 355 с.
ИНТЕЛЛЕКТУАЛЬНЫМ ВОЗВРАТ В УСЛОВИЯХ ФАЗОВОГО ПЕРЕХОДА ПРИ РЕШЕНИИ КОМБИНАТОРНЫХ ЗАДАЧ
В.Б. Вальковский, С.А. Беляев
В настоящее время разработчикам многих программных систем приходится решать ^Р-трудные задачи. Существует множество алгоритмов решения таких задач, наиболее известный класс алгоритмов нахождения точного решения - методы ветвей и границ. Известно, что средняя их сложность - кубическая зависимость от размерности, а в качестве верхней границы - экспоненциальная [1,2].
В последнее десятилетие обнаружен эффект фазового перехода, когда при незначительном изменении параметров системы сложность решения точным алгоритмом возрастает па порядки [3], то есть приближается к верхней границе сложности. На примере задачи коммивояжера показано, что один из типов фазового перехода основывается на специфических топологических особенностях исходных данных [2,4], когда у весовой матрицы на главной диагонали находятся квадратные подматрицы, кластеры, элементы которых в среднем меньше элементов вне данных подматриц. Экспериментально получено, что сложность значительно возрастает при наличии строгого неравенства. Среднее число исследуемых ребер при поиске точного решения для матриц размером 20x20 и 30x30, сгенерированных по равномерному закону с учетом топологических особенностей, представлено в таблице 1. Количество статистических испытаний 100.
Наиболее сложным вариантом для решения точным методом является наличие кластеров, элементы которых строго меньше элементов вне данных диагональных подматриц. Несложный опыт позволяет определить, какие ребра наиболее часто используются при поиске точного решения. Проведено несколько сотен экспериментов для матриц размеров от 15 до 35 с представленными топологическими особенностями с целью выявления наиболее активно используемых ребер. Обобщенный график для случая,
Таблица 1
Среднее число ребер, исследуемых методом ветвей и границ
Весовая матрица, Матрица 20x20 Матрица 30x30
равномерный с 4 кластерами с 5 кластерами
закон 5x5, (ребер) 6x6, (ребер)
Без топологиче- 7
ских особенно- 146.9 43
стей
Наличие кластеров 164.9 1583
Наличие "стро- 5814.8 639057.7
гих" кластеров
когда элементы в кластерах из интервала (0, 0.5), а вне кластеров - (0.5, 1), представлен на рисунке 1, при этом более 85% элементов, использованных при построении точного решения, принадлежат кластерам. Такое количество повторений комбинаций ребер из кластеров связано с особенностями работы метода ветвей и границ [5].
Дерево решения методом ветвей и границ бинарное. При построении дерева решения возврат происходит на предыдущую ветвь и производится
0,2 0,18 0,16 0,14 0,12 0,1 0,08 0,06 0,04 0,02 0
т-ТП,11,-т-ТП,П,П,П,п,
ГГГГГГГГГГГГГГГГ1—I—г
Рис. 1. Доля исследованных ребер длиной от 0 до 1
проверка возможности существования решения на
другой ветви. Если проверка показывает, что с оценкой на шаг вперед длина найденной части решения короче кратчайшего пути, известного на данном этапе построения решения, то исследуется вторая ветвь.
На основе представленных результатов можно отметить следующие недостатки классического алгоритма:
- на каждом шаге учитывается длина решения на один шаг вперед,
- нет элементов обучаемости,
- максимальная сложность алгоритма пропорциональна экспоненте от размерности задачи,
- степень использования элементов "малых" весов на тестовых матрицах значительно выше использования элементов "больших" весов. Причем при работе с матрицами исследуемой топологии число исследуемых элементов "малых" весов больше 85%.
Технология интеллектуального возврата предполагает наличие элементов обучаемости [6], когда возврат производится в область наиболее вероятного нахождения решения либо когда методами дополнительного анализа исключаются ветви, решение на которых не лучше найденного на данный момент, хотя оценка классическим методом ветвей и границ частичного решения показывает обратное.
При "строгих" кластерах входящие в них узлы с большой вероятностью последовательно включаются в точное решение, а узлы из подматриц перехода соединяют эти частные решения. На основе этого предлагается алгоритм интеллектуального возврата, который внутри кластеров находит точное решение, затем методом ветвей и границ выбирает элементы из подматриц перехода, при этом возникает проблема объединения частичных гамильтоновых циклов в один гамильтонов цикл. Рассматриваются два подхода к решению данной проблемы.
Введем некоторые обозначения: wk, - k-я весовая подматрица; Lk - длина пути внутри кластера k; Pk = [а1, •••, as] - путь внутри кластера k размером s; ink, outk - точки входа и выхода из кластера.
Подход 1. После вычисления точки входа и точки выхода необходимо скорректировать путь внутри кластера с минимальными погрешностями. При данном подходе предполагается, что ink # outk. Ситуация равенства рассматривается как ошибочная.
Введем дополнительные обозначения для элементов оптимального пути внутри кластера, здесь prev(x) = у означает, что в оптимальном решении Pk х следует за y; next(x) = у означает, что в оптимальном решении Pk у следует за х.
Так как вычисленный точным методом путь внутри кластера замкнут, то в качестве первого элемента можно выбрать любой элемент из Pk, поэтому в качестве такового выберем ink: a1 = ink, а элементу outk присвоим номер х, то есть ах = outk.
Соединение будем делать по принципу построения нового пути P2k = [b1r.., bs], в котором b1 = ink, bs = outk.
Метод 1.1.
Если Prev(ink) == outk, тогда b = ai Vi e [1 .. s] и длина пути Lnew = Lk - wk(outk, ink) (рис. 2), иначе
Метод 1.2.
B2=Next(outk),bi=Next(bi-1), Vi e [3,s-x+2].
Введем дополнительное обозначение с = card[3, s - х + 2], определяющее количество целых чисел в заданном интервале.
Bc+3 = Next(ink), bi = Next(bi-1), Vi = [с + 4, s].
Длина пути изменяется следующим образом:
Lnew = Lk - Wk(Prev(ink), ink) - Wk(inb Next(ink)) -- wk(outk, Next(outk)) + wk(Prev(ink), Next(ink)) + + wk(ink, Next(outk) (рис. 3.)
В данном подходе метод 1.1 дает точное решение внутри кластера, метод 1.2 - приближенное. Если максимальный элемент кластера обозначить ктах, а минимальный кт1п, то максимальная погрешность на данном кластере составляет:
£тах=(ктЕх"ктт)*2.
Подход 2. Данный подход заключается в более точном вычислении пути и более гибкой работе с кластерами и позволяет учитывать возможность не однократного входа-выхода из полученного кластера, а многократную последовательность входов-выходов.
Основной отличительной чертой данного алгоритма является то, что нет необходимости пересчитывать путь внутри кластера. Если полученные элементы входа и выхода соответствуют методу 1.2, то следует применить метод 2.1, который заключается в следующем.
Метод 2.1. После определения входа и выхода необходимо вычислить путь по кластеру и вес пути. Если условия соответствуют методу 1.1, то вычисления проводятся в соответствии с ним, иначе
Р2к = [Ьь ..., Ьх], в котором Ь1 = шк, Ьх = ои!к.
Строится последовательность:
Ь^ех^.^У 1ее[2,х].
Элементы, которые не вошли в путь по кластеру, обозначим [сь ..., е8.х] и выделим в кластер, который будет рассматриваться отдельно. Для него необходимо посчитать минимальный путь.
Длина соответствует длине выбранного участка Р2к (рис. 4).
Данный подход позволяет учитывать особенности матриц и получать в среднем более точные решения по сравнению с подходом 1 на матрицах, у которых в кластерах элементы строго меньше элементов вне кластеров. Обеспечивается снижение количества элементов малых весов, используемых при построении решения, по сравнению с классическим механизмом возврата. Данный подход основывается
1Пк
outk
Рис. 2. Соединение, когда вход и выход из кластера -соединение вершины по ходу оптимального решения
на гипотезе, заключающейся в том, что при выделении из кластера подматрицы, которая содержит часть оптимального пути по кластеру, и фиксацией точек входа и выхода, данная часть пути будет оптимальна и в полученной подматрице.
Алгоритм интеллектуального возврата реализует поиск оптимального пути в подматрицах перехода с учетом выбранного подхода к соединению внутри кластеров и учета длины пути в неиспользованных в частичном решении диагональных подматриц.
1. ПРОЦЕДУРА "НАЙТИ РЕШЕНИЕ"
1.1. Выделить кластеры.
1.2. Вычислить путь внутри кластеров.
1.3. Найти приближенное решение задачи алгоритмом k-оптимизации [7].
1.4. В подматрицах перехода создать списки элементов из интервала (0, "длина приближенного решения" - "сумма длин решений из подматриц перехода").
1.5. Упорядочить списки в подматрицах перехода по возрастанию.
1.6. В качестве первого кластера выбрать кластер, у которого минимальный элемент подматриц перехода выхода максимален.
1.7. Создать список L номеров неиспользованных кластеров, номер первого кластера присвоить переменной ПЕРВЫЙ, если поиск решения по "подходу 1", то удалить из L первый кластер.
1.8. Вызвать процедуру "ИССЛеДоВАТЬ" (номер предыдущего кластера).
2. ПРОЦЕДУРА "ИССЛЕДОВАТЬ" (номер предыдущего кластера).
2.1. Если список L пуст.
2.1.1. Выбрать из подматрицы перехода из "номер предыдущего кластера" в ПЕРВЫЙ элемент, замыкающий гамильтонов цикл.
2.1.2. Если длина решения меньше текущего, то записать новое решение.
2.2. Иначе.
2.2.1. Номерам наименьших элементов присвоить нулевое значение.
2.2.2. Выбрать элемент из подматриц перехода, номера которых принадлежат L, следующий наименьший.
2.2.3. Внести его как out для "номер предыдущего кластера".
2.2.4. Вычислить текущую длину пути, вычислить оценку неиспользованных кластеров, вычислить нижнюю границу для подматриц перехода. Если длина частичного решения меньше текущего, то
2.2.4.1. Если использовался "подход 2", то создать новый кластер и внести его в список L.
2.2.4.2. ИССЛЕДОВАТЬ (номер нового кластера).
2.2.4.3. Если использовался "подход 2", то удалить внесенный кластер из списка L.
2.2.5. Перейти к 2.2.2.
Предварительные оценки точности решения для подхода 1 представлены в таблице 2 для различных размеров кластеров. Количество экспериментов рав-
но 100. Если заявлен размер кластеров 5x5 на матрице размером 20x20, это означает, что в ней четыре кластера данного размера. Представлен вариант строгой кластеризации, когда элементы в диагональных подматрицах строго меньше элементов вне данных подматриц. В случае кластеризации, когда строгое неравенство верно для средних значений, погрешности предложенных подходов значительно возрастают. Алгоритм интеллектуального возврата обозначен в таблице мнемоническим названием BBmod, метод ветвей и границ - ВВ. Алгоритмы реализованы на SUN Java 2.
Таблица 2
Результаты тестирования алгоритма
интеллектуального возврата
Размер Средняя от- Максимальная Среднее Среднее
тестовых носительная относительная время для время
матриц погрешность погрешность BBmod (мсек) для ВВ (мсек)
Кластеры 4x4
16x16 1.76% 7.69% 2610 174
20x20 1.30% 6.81% 4152 1186
24x24 1.53% 7.11% 8548 7204
28x28 2.43% 7.86% 21869 40874
32x32 3.58% 9.77% 29776 298626
Кластеры 5x5
15x15 2.95% 13.23% 2131 177
20x20 2.36% 10.17% 2911 2112
25x25 2.31% 7.14% 8256 22237
30x30 2.35% 6.81% 28032 200853
Кластеры 6x6
18x18 4.11% 12.33% 2034 1456
24x24 3.19% 14% 3651 27583
30x30 2.78% 10.97% 20146 516459
Максимальная полученная погрешность порядка 14%, в то время как точность приближенных алгоритмов колеблется от 50% до 100% [7,8]. При этом среднее время решения точным алгоритмом возрастает экспоненциально, в то время как алгоритм интеллектуального возврата в среднем показывает полиномиальную зависимость от размерности и от количества кластеров; у тестируемого алгоритма в данной реализации существует статическая задержка на вычисления порядка 500 мсек на каждый кластер, что связано с особенностями реализации. Теоретически точность и сложность алгоритма при использовании подхода 2 должны быть выше, что является предметом дальнейших исследований.
Как видно из представленных результатов, предлагаемые подходы позволяют использовать фазовый переход для разработки алгоритмов интеллектуального возврата, которые превосходят по точности существующие приближенные алгоритмы и позволяют совместить в себе механизмы, используемые в точных алгоритмах поиска решения, и constraint-технологию.
Список литературы
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., Sawin 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. Gent I., Walsh T. "The TSP Phase Transition", Research Report/95/178, Department of Computer Science, University of Stralhclyde.
4. Вальковский В.Б., Беляев С.А. Использование фазовых переходов при решении комбинаторных задач. // Программные продукты и системы. - 2000. - №4. - С. 37-38.
5. Пападимитриу X., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность. - М.: Мир, 1985.
6. Baker A.B., Intelligent Backtracking on Ihe Hardest Constraint Problems, Computational Intelligence Research Laboratory and Department of Computer and Information Science, 1269 University of Oregon, February 6, 1995.
7. Lower E., Lenstra J., Rinooy A. Kan, Shmoys D. "The Travelling Salesman Problem".
8. Frieze A.M., Galbiati G., Maffioli F. "On the Worst-Case Performance of Some Algorithms for the Asymmetric Travelling Salesman Problem".
ИНТЕЛЛЕКТУАЛЬНАЯ СИСТЕМА ОРГАНИЗАЦИИ МНОГОУРОВНЕВОЙ СОГЛАСОВАННОЙ БАЗЫ ЗНАНИЙ
(Работа выполнена при финансовой поддержке РФФИ, грант 00-01-00107) С.К. Дулин, И.А. Киселев
Современные условия работы специалистов в любой сфере связаны с необходимостью оперативной интеллектуальной обработки большого объема неформализованной информации, поступающей к ним из различных информационных источников. Качество принимаемых экспертом решений напрямую зависит от эффективности систем обеспечения его деятельности. Поэтому исследования в области методов обработки интегрированных массивов информации занимают приоритетные направления в работах ведущих научно-исследовательских институтов в России и за рубежом. Особое внимание уделяется разработке методов эффективного семантического анализа текстовых документов с целью выявления скрытых взаимосвязей между документами и построения оптимальных стратегий поиска релевантной информации [1,6]. Работы, осуществляемые авторами, ориентированы на использование наиболее перспективных разработок в этой сфере и предполагают их развитие в целях построения систем поддержки многоуровневых интегрированных баз знаний, призванных обеспечить наиболее эффективный доступ к общему хранилищу данных разных специалистов в интересах решаемых ими общих аналитических задач.
Важнейшей составляющей указанной проблемы является задача, связанная с методами построения и организации интегрированных хранилищ данных, отражающих различные аспекты рассматриваемой аналитическим работником проблемы. Организация такого информационного массива должна обеспечить доступ любого специалиста к требуемой ему информации в рамках его предопределенных полномочий, обеспечивая достаточную для принятия им решений полноту информации, с одной стороны, а с другой - обеспечивая надежную степень защищенности данных, предотвращая доступ к конкретным данным специалистам, не обладающим соответствующим тематическим профилем.
Основная задача заключается в реализации адекватных методов интеллектуальной обработки информации, используемой экспертами в различных прикладных областях при решении ими сложных аналитических задач в области мониторинга ситуа-
ций и принятия решений в рамках имеющихся у них полномочий, обусловленных их профессиональной специализацией или профилями. Авторами предложен один из подходов к построению комплексной интеллектуальной системы организации интегрированных хранилищ данных на основе создания информационной модели рассматриваемой предметной области, ядром которой является интегрированная база знаний с механизмом управляемой согласованности информационных объектов.
Основная цель создаваемой авторами экспериментальной интеллектуальной системы - это реализация разработанных методик организации многоуровневых баз знаний в виде специализированных программных средств, предназначенных для решения целого комплекса прикладных задач, главные среди которых следующие.
1. Организация интегрированных хранилищ данных, поступающих из различных источников в соответствии с параметрами настройки всего программно-технического комплекса.
2. Предварительная семантическая обработка информации и поиск взаимосвязей между отдельными информационными объектами БД.
3. Построение многоуровневой информационной модели рассматриваемой предметной области в соответствии с задаваемыми профилями пользователей.
4. Обеспечение структурной согласованности базы знаний в условиях динамически изменяющейся информации.
Опишем кратко предлагаемые решения.
Интеграцию поступающей эксперту информации в единое хранилище данных предлагается обеспечить на основе аппарата информационных агентов. Эта методика прошла апробацию в ряде самостоятельных проектов, выполненных авторами в рамках создания систем WebSailer, lntelledger [2] и ряде других. Основа подхода - автоматизированная система поиска и доставки информации, реализованная в виде специализированного программно-технического комплекса [3,4]. Комплекс позволяет администратору проводить настройку на различные источники