Программная система для исследования вычислительной сложности решения задач на графовых моделях

На основании определенных уязвимостей ЭС формирует перечень требований, предъявляемых к системе защиты информации (блоки 9-13), при этом активизируются фреймы типа «Уязвимость» и «Требование информационной безопасности».

После окончания формирования списка требований пользователь (аудитор или сотрудник компании), проводящий аудит ИБ, отмечает требования, выполненные в системе защиты информации (блок 14). После того как определены все выполненные и невыполненные требования, вычисляется степень защищенности ИС (блок 15).

Если степень защищенности недостаточна для ИС данного класса, ЭС формирует рекомендации для повышения уровня защищенности (блоки 1617). При оценке степени защищенности активизируется фрейм типа «Информационная система», а при выработке рекомендаций - фреймы типов «Уязвимость», «Требование» и «Рекомендация».

Когда аудит проведен для всех выбранных угроз, ЭС формирует итоговый отчет и предоставляет его пользователю (блок 20).

Для проектирования ЭС было решено использовать программу-оболочку ЭС.

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

С учетом перечисленных выше требований для проектирования ЭС была выбрана оболочка CLIPS (C Language Integrated Production System) -программная ЭС, разработанная в 1984 году в Космическом центре Джонсона, NASA [2].

Выбор объясняется тем, что в CLIPS встроен полный объектно -ориентированный язык программирования COOL, поэтому с помощью CLIPS можно создавать ЭС, знания в которых представлены в виде фреймов. Кроме того, CLIPS позволяет использовать продукционные правила типа «Если - То», с помощью которых удобно представлять небольшие фрагменты знаний, а также реализовывать логический вывод. Получается, что CLIPS соединяет в себе преимущества двух категорий инструментальных средств ЭС: основанных на правилах и на объектах.

Среди других достоинств оболочки CLIPS можно выделить следующие:

- бесплатное распространение системы;

- наличие обширной документации вместе с простотой языка, ускоряющие процесс обучения написанию программ на CLIPS;

- высокая скорость работы созданных на CLIPS приложений;

- возможность легко создавать, эксплуатировать и сопровождать на CLIPS крупные БЗ, используя объекты.

Кроме того, для CLIPS на языке C++ можно создавать расширения, а также интегрировать приложения CLIPS в программы.

Литература

1. Ivanova N., Korobulina O. Methods of analysis for the information security audit / New Trends in Information Technologies. ITHEA, Sofia, 2010, pp. 152-161.

2. Джарратано Дж., Райли Г. Экспертные системы. Принципы разработки и программирование. М.: Издат. дом «Вильямс», 2007. 1152 с.

УДК 519.17:683.3.068

программная система для исследования вычислительной сложности решения задач на графовых моделях

В.А. Кохов, к.т.н. (Государственный университет - Высшая школа экономики, г. Москва, viktorkokhюv@rramЫer.ru); С.В. Ткаченко (Московский энергетический институт (технический университет),

т/о@дгарКтод.е1. сот)

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

Ключевые слова: структура, граф, графовая модель системы, вычислительная сложность, структурная сложность, эффективность, программный комплекс.

Оценка вычислительной сложности алгоритма может быть получена теоретически либо путем

вычислительных экспериментов на различных по сложности входных данных.

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

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

Для проведения исследований разработана программная система «Полигон для исследования алгоритмов структурной информатики» (далее Полигон), входящая в состав АСНИ «Мастерская граф-моделей» (www.graphmodel.ru) [1, 2]. Цель ее разработки - создание среды, в которой решатели задач могли бы использоваться как для решения практических и теоретических задач, так и для анализа их вычислительной эффективности.

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

лей, не имеющих ИП, данная проблема не возникает, однако работать с множеством таких модулей неудобно.

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

• организация решателей задач (с разбиением по классам решаемых задач);

• подготовка графов, используемых как входные данные;

• выбор и упорядочение входных данных для исследования;

• запуск списка решателей на выбранном наборе входных данных;

• запрос у пользователя параметров запуска решателей;

• измерение времени решения задач;

• запись времени и результатов решения в

БД;

• анализ и сравнение вычислительной эффективности работы решателей.

Система реализована как приложение для Microsoft Windows, решатели задач - как динамически загружаемые библиотеки (DLL), взаимодействующие с системой по специально разработанному программному интерфейсу. Возможно также подключение модулей-приложений через специальный решатель-перемычку. Система работает с графовыми моделями, организованными в специальные базы.

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

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

Следующим этапом подготовки исследования является выбор набора графов, который будет использоваться для экспериментов, с помощью модулей-фильтров - решателей, проверяющих, удовлетворяет ли граф некоторому условию. Фильтры могут проверять как простейшие усло-

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

Список способов, которыми графы в Полигоне могут быть отобраны для исследований, включает: решатели-фильтры; средства статистического анализа численных результатов (например, все графы, для которых значение некоторого численного индекса отклоняется от среднего арифметического не более чем на заданную величину); поиск по базе графов (например, все графы, сходные с заданным не менее чем на заданную величину); средства сравнения результатов двух вычислений (все графы, на которых два решателя выдали одинаковый или, наоборот, различный результат); выбор вручную, логическая комбинация результатов вышеперечисленных действий (с использованием операций «и», «или», «не»). Отобранные таким образом графы сохраняются в новой базе (с возможностью упорядочения по численным индексам, вычисленным решателями) и участвуют в дальнейшем исследовании.

В ходе эксперимента решатели запускаются последовательно на всех графах базы либо на парах графов, составленных заданным способом (например, все возможные пары (все (1, |), где все возможные пары из неповторяющихся графов (все (1, |), где 1<|), пары из графов с нечетными и четными номерами - всего 15 вариантов). Для запуска составляется набор решателей задач и задаются их параметры. Предварительное задание параметров всех решателей удобно для проведения длительных (многочасовых) экспериментов, когда присутствие человека за компьютером не требуется вплоть до момента их завершения. Эту информацию (набор решателей + параметры) можно сохранить для последующего запуска на другом наборе входных данных.

Список задач, решатели которых исследуются в Полигоне, включает:

• для одного графа на входе: определение численных индексов (включая индексы структурной сложности); построение векторных и матричных моделей, характеризующих сложность графа; нахождение канонического представления графа; нахождение прорисовки (способа размещения вершин на плоскости или в трехмерном простран-

стве) по заданным правилам; вычисление характеристик симметрии; вычисление количественных значений мер сходства или различия расположения фрагментов в графе и др.;

• для двух графов на входе: распознавание изоморфизма, изоморфного вложения, максимального изоморфного пересечения (нахождение максимального общего фрагмента, являющегося частичным или порожденным подграфом); вычисление количественных значений мер сходства и различия графов и др.

Среди решателей имеются как авторские разработки, так и известные программные реализации, адаптированные для работы в Полигоне.

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

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

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

Помимо графиков, Полигон включает различные средства анализа и сравнения результатов: разбиение множества графов (или пар графов) на классы эквивалентности с использованием выданных данных (результатов), сравнение данных попарно (со статистикой по числам: «равны», «не равны», «больше», «меньше»), сравнение данных по тому, как они упорядочивают исходные графы (или пары графов), и другие. Сравнение данных,

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

Для проведения экспериментов по оценке вычислительной эффективности алгоритмов на средних по сложности графах был разработан оригинальный метод анализа графов по их сложности. На основе метода выделены графы с низким, средним и высоким уровнем сложности. В качестве количественного значения меры сложности используется индекс структурной спектральной сложности в заданном базисе фрагментов графа [3].

Для отбора графов по уровню сложности используется средство статистического анализа данных, определяющее оценку математического ожидания и создающее таблицы-фильтры, содержащие графы, значения индекса которых отличаются от нее не более чем на заданную величину (средние по сложности графы). Аналогично создаются таблицы графов с высоким и низким уровнями сложности. Разработаны методы отбора графов как по их средней сложности, так и по средней сложности их фрагментов и максимальных общих фрагментов двух графов, что позволяет разрабатывать генераторы средних по сложности графов и орграфов для различных семейств.

На рисунке 1 приведены примеры диаграмм трех представителей для бесконечных семейств регулярных графов степени 3 каждого уровня сложности. Индексы сложности вычислялись в базисе цепей и характеризуют протяженность и раз-ветвленность графов.

Графы низкого уровня сложности

Графы среднего уровня сложности

Графы высокого уровня сложности

Рис. 1. Примеры уровней сложности графов

На рисунке 2 приведены результаты определения экспериментальных оценок вычислительной

сложности для трех алгоритмов, известных из научных публикаций [4, 5].

При определении оценок решалась задача поиска всех изоморфных вложений фрагмента-цикла с числом вершин 20 в регулярные графы степени 3 для трех уровней сложности графов (рис. 2а - для графов с низким уровнем сложности, рис. 2б - со средним, рис. 2в - с высоким). Исследования проводились на ЭВМ типа IBM PC (Pentium-4-3400 и 1 Гб оперативной памяти). Время решения задачи измерялось в миллисекундах (на графиках (рис. 2) ось времени - в тысячах миллисекунд).

150 120 90 60 30 0

150 120 90 60 30

t (VF ) = 17,995)6 - 533,35x 5+ 6108,7x

34271x3+ 99080x2- 128346x + 66509 R2 = 0,9908

t( (VF2) = 110,17x 2 + 3548,2x - 255,53 R2 = 0,9979

t(3) = 390,98x 2 - 1524,5x +. _2143,2

R2 = 0,997

60 100 140 180 220 260 300 340 380 420

а) низкой сложности

9,6129x6- 290,06x 5 + 3437,5xJ

-20347x 3 + 63518x 2 - 86696x + 52640 R2 = 0,9803

t( VF2) = 141,42x 2+ 3204,4x + 2Q R2 = 0,9998

t(3) = 330,42x 2 - 1159,9x + 1788,3

60 100 140 180 220 260 300 340 380 420

б) средней сложности

600 500 400 300 200 100 0

t( VF ) = 11,904x 6 - 312,86x5 + 3053,9x 4-13956x3 + 35945x2 - 26250x + 37987

R2 = 0,9792 t( VF2 ) = 392,94x 2 + 11998x + 6247,5

R2 = 0,9997 t(3) = 1006,3x 2 - 316,21x +

3936,5 R2 = 0,9998

60 100 140 180 220 260 300 340 380 420

в) высокой сложности

Рис. 2. Время для графов

0

В таблице приведены числа всех изоморфных вложений анализируемого фрагмента во все исследуемые графы.

Примечание: Н, СР, В - низкий, средний и высокий уровни сложности графа соответственно.

Экспериментальные исследования показали, что алгоритмы 3 и VF2 существенно эффективнее решают задачу, чем алгоритм VF в классе регулярных графов степени 3.

На основе объемных вычислительных экспериментов с использованием программ-генераторов различных видов графов (более 21 000 000 графов и орграфов) с числом вершин до 64 000 получены экспериментальные оценки вычислительной сложности решения базовых задач структурной информатики, среди которых распознавание изоморфизма графов, изоморфного вложения,

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

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

Литература

1. Кохов В.А., Незнанов А.А., Ткаченко С.В. Структурная информатика - новый актуальный раздел информатики для изучения в школе и университете // 1-е Всеросс. совещ. НМС по информатике: Актуальные проблемы информатики в современном российском образовании. М.: МАКС-ПРЕСС, 2004. С. 250-276.

2. Кохов В.А., Ткаченко С.В. Решатель базовых задач структурной информатики. М.: Изд-во МЭИ, 2006. 192 с.

3. Кохов В.А. Концептуальные и математические модели сложности графов. М.: Изд-во МЭИ, 2002. 160 с.

4. Cordella L.P., Foggia P., Sansone C., Vento M. An Improved Algorithm for Matching Large Graphs, Proc. of the 3rd IAPR-TC-15 International Workshop on Graph-based Representation, Italy, 2001.

5. Алгоритмы и программы решения задач на графах и сетях / М.И. Нечепуренко [и др.]. Новосибирск: Наука, 1990.

Число вершин графа Число изоморфных вложений

Н СР В

60 840 1200 59400

100 1640 1960 82320

140 2440 2760 115920

180 3240 3560 149520

220 4040 4360 183120

260 4840 5160 216720

300 5640 5960 250320

340 6440 6760 283920

380 7240 7560 317520

420 8040 8360 351120

УДК 519.85:519.676

коэволюционный алгоритм для задач условной и многокритериальной оптимизации

Е.С. Семенкин, д.т.н.; Р.Б. Сергиенко

(Сибирский государственный аэрокосмический университет им. академика М.Ф. Решетнева,

г. Красноярск,, romaserg@ist.ru)

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

Ключевые слова: условная оптимизация, многокритериальная оптимизация, генетический алгоритм, коэволю-ционный алгоритм.

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

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