Алгоритм резолюции в логике высказываний при 0-1-ном представлении дизъюнктов
Анализ автоматизации алгоритма резолюции в логике высказываний. Анализ представления дизъюнктов и матричной структуры представления связей дизъюнктов, для которых разработан алгоритм резолюции с эвристической функцией выбора связи для резольвирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 18.01.2018 |
Размер файла | 27,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Институт прикладной математики и механики НАН Украины, Донецк, Украина
Государственный университет информатики и искусственного интеллекта, Донецк, Украина
Алгоритм резолюции в логике высказываний при 0-1-ном представлении дизъюнктов
И.С. Грунский (grunsky@iamm.ac.donetsk.ua)
М.В. Волченко (mitrofany4@gmail.com)
Аннотация
автоматизация логика матричный резолюция
В работе рассматривается проблема автоматизации алгоритма резолюции в логике высказываний. Предложено 0,1-ное представление дизъюнктов и матричная структура представления связей дизъюнктов, для которых разработан алгоритм резолюции с эвристической функцией выбора связи для резольвирования. Показана эффективность предложенного алгоритма на серии экспериментальных данных.
Введение
В настоящее время алгоритмы дедуктивного вывода находят широкое применение в системах принятия решений, дедуктивных базах данных, информационно-поисковых системах. В числе других областей использования дедуктивного вывода можно также назвать верификацию спецификаций компьютерного оборудования (процедуры дедуктивного вывода использовались, например, при верификации процессоров компании AMD), проверку корректности систем безопасности, анализ корректности протоколов передачи данных [Вагин и др., 2004].
Одной из основных проблем, встающих перед разработчиками процедур дедуктивного вывода, является экспоненциальный рост пространства поиска. В условиях постоянно растущих объемов обрабатываемых данных особое значение приобретает проблема создания процедур дедуктивного вывода, способных эффективно работать с большими множествами дизъюнктов [Вагин и др., 2004], [Gomez et al., 2008].
Для эффективной обработки множеств дизъюнктов большой мощности процедура вывода должна отвечать следующим требованиям:
- на сколько возможно, сужать пространство поиска контрарной пары на каждом шаге резольвирования;
- исключать из дальнейшего рассмотрения дизъюнкты, которые не могут быть использованы в процессе доказательства;
- в процедуре вывода должен быть реализован эффективный алгоритм выбора контрарных пар для резольвирования [Вагин и др., 2004], [Gomez et al., 2008].
Резольвирование на графовых структурах в качестве основы для построения процедур дедуктивного вывода является одним из способов повышения эффективности процесса вывода. Был создан ряд алгоритмов дедуктивного вывода на графовых структурах. Однако при решении задач практической сложности, которые характеризуются экспоненциальным ростом числа дизъюнктов, данные алгоритмы не всегда показывали удовлетворительные результаты, что привело к дальнейшим исследованиям в области повышения эффективности процедур вывода [Аверин, 2004].
В настоящей работе рассматривается проблема автоматизации алгоритма резолюции в логике высказываний на основе построения матрицы связей в 0-1-ном представлении дизъюнктов.
1. Постановка задачи
Рассматривается классическая задача проверки выполнимости логических высказываний. Исходными данными является множество дизъюнктов S={С1, С2, …, Сk}. Необходимо проверить выводим ли из множества дизъюнктов S заданного высказывания пустой дизъюнкт . Если это так, то S невыполнимо, иначе - выполнимо [Вагин и др., 2004].
Данная задача является NP-полной за счет экспоненциального роста пространства поиска.
Одним из основных методов повышения эффективности процесса вывода является резольвирование на графе связей [Вагин и др., 2004]. При построении графа связей для последовательности дизъюнктов S=С1, С2, …, Сk, состоящих из конъюнктов K1, K2, …, Km, каждому дизъюнкту ставится в соответствие вершина графа G. Две вершины соединяются ребром, называемым связью, если они образуют контрарную пару, т.е. по этим дизъюнктам может быть проведено резольвирование. Результат резольвирования узлов добавляется в граф G.
Последовательный алгоритм вывода на графе связей имеет следующий вид [Вагин и др., 2004]:
1. Выбор связи из множества связей.
2. Резольвирование связи и получение резольвенты. Удаление связи, по которой производилось резольвирование.
3. Если получена пустая резольвента, то успешное завершение, иначе помещение резольвенты в граф, добавление ее связей, удаление дизъюнктов-тавтологий и чистых дизъюнктов, выполнение операции поглощения дизъюнктов.
4. Если граф не содержит ни одного дизъюнкта, то неуспешное завершение алгоритма, иначе переход к шагу 1.
Графовое представление позволяет существенно сокращать пространство поиска, но в ряде случаев не позволяет получить оптимальное решение. В настоящей работе предложен матричный способ представления дизъюнктов для алгоритма резолюции логики высказываний.
2. Матричное представление дизъюнктов
2.1 Представление дизъюнктов
Пусть задано множество S дизъюнктов. Пусть - алфавит всех букв из всех дизъюнктов. Считаем, что А линейно упорядочен.
На начальном этапе каждый дизъюнкт будем представлять 0,1-ным набором по правилу [Волченко, 2009]:
В результате такого представления будет получено множество 0,1-ных векторов (наборов), соответствующее исходному множеству S.
2.2 Формирование списков дизъюнктов
Полученные наборы сортируются по убыванию числа `_' в наборах. В группах векторов с одинаковым числом `_' проводится дополнительная сортировка по возрастанию числа единиц. Полученное упорядоченное множество дизъюнктов будем называть списком дизъюнктов.
2.3 Построение треугольной матрицы связей
Каждой паре наборов и из списка дизъюнктов, ставится в соответствие связь R(l,j) по правилу:
3. Описание алгоритма резолюции на матрице связей
Неопределяемые понятия общеприняты и их можно найти в [Вагин и др., 2004].
Предлагаемый алгоритм состоит из следующих процедур: предобработка матрицы, выбор связи для резольвирования, резольвирование дизъюнктов, добавление полученного вектора-резольвенты в матрицу связей.
3.1 Процедура предобработки матрицы
Выполняется удаление дизъюнктов-тавтологий, поглощенных и чистых дизъюнктов для всех связей матрицы. В матрице связей если для наборов и количество нулей в связи R(l,j) больше одного, то в результате резольвирования соответствующей пары дизъюнктов будет получен дизъюнкт-тавтология, и такую связь необходимо удалить.
Если , то дизъюнкт поглощает дизъюнкт , удаляем j-е строку и столбец.
Если достигнут конец первой строки, значит, получен чистый дизъюнкт, удаляем первую строку.
3.2 Выбор связи для резольвирования
Наиболее важным этапом реализации алгоритма является выбор связи для резольвирования, так как при неправильном выборе связи возможно увеличение количества дизъюнктов до , где n - первоначальное количество дизъюнктов. В [Волченко, 2009] были предложены эвристики позволяющие в частных случаях повысить эффективность предложенного алгоритма:
- Последовательное резольвирование связей треугольной матрицы связей от столбца с минимальным номером до столбца с максимальным номером.
- Резольвирование связей с максимальным количеством единиц.
- Резольвирование связей с минимальным количеством единиц.
- Выбирается та связь, количество `_' которой минимально отличается от количества `_' второго дизъюнкта.
В результате проведения экспериментов с предложенными эвристиками на ряде частных случаев было получено, что резольвирование связей с максимальным числом единиц позволяет получить результат за минимальное число итераций, но при этом наблюдается кратковременный рост количества обрабатываемых дизъюнктов. Выбор связи по числу `_' позволяет уменьшить такой рост, но при этом для получения результата требуется большее число итераций. На основе полученных данных был предложен комплексный подход к выбору связи для резольвирования:
1. Выбирается та связь, количество `_' которой минимально отличается от количества `_' второго дизъюнкта.
2. Если таких дизъюнктов несколько, то происходит резольвирование связей с максимальным количеством единиц.
3.3 Операция резольвирования дизъюнктов
Операция резольвирования осуществляется по построенной матрице связей. Наличие в 0,1-ном наборе связи одного нуля показывает, что дизъюнкты образуют контрарную пару, то есть возможно их резольвирование.
Операция резольвирования заключается в получении из векторов и нового вектора - резольвенты , который определяется по правилу:
Полученные резольвенты будем добавлять в начало отсортированного списка дизъюнктов, что позволит уменьшить количество сравнений при поиске новой связи для резольвирования, а также увеличить вероятность поглощения новым дизъюнктом последующих.
3.4 Алгоритм резолюции для матричного представления дизъюнктов
1. Построение треугольной матрицы связей.
2. Предобработка матрицы связей:
Если , то дизъюнкт Xi поглощает дизъюнкт Xj, удаляем j-ю строку и столбец, j=j+1.
Если для наборов Xl и Xj количество нулей в связи R(l,j) больше одного, то такую связь необходимо удалить, j=j+1.
3. Последовательный выбор связи для резольвирования. Выбирается связь, количество `_' которой минимально отличается второго дизъюнкта и имеет максимальное число единиц. Если таких дизъюнктов несколько, то происходит резольвирование связей с максимальным количеством единиц.
Если для наборов Xl и Xj количество нулей в связи R(l,j) равно одному, то проводим резольвирование, иначе j=j+1.
Если j больше количества дизъюнктов, удалить первую строку (чистый дизъюнкт).
4. Если , то удачное завершение, иначе добавление резольвенты в начало отсортированного списка, переход к шагу 2.
4. Экспериментальные исследования
Для оценки эффективности предложенного в работе алгоритма были выполнены серия экспериментов. Критериями эффективности метода были выбраны число итераций (резольвирований) и максимальное число дизъюнктов за время работы алгоритма.
Анализ эффективности предложенного алгоритма проводился на множествах дизъюнктов различной мощностью и различной длиной алфавита (табл. 1). Результаты оценки являются средними по результатам 30 экспериментов.
Табл. 1.
Критерии оценки |
Резолюция на графе связей |
Резолюция на 0,1-ном представлении |
||||
Длина алфавита |
Число дизъюнктов |
Число вершин |
Число итераций |
Число наборов |
Число итераций |
|
5 |
10 |
11 |
7 |
6 |
4 |
|
20 |
23 |
10 |
13 |
4 |
||
50 |
50 |
10 |
36 |
3 |
||
10 |
10 |
12 |
13 |
11 |
10 |
|
20 |
24 |
25 |
21 |
19 |
||
50 |
56 |
50 |
46 |
43 |
||
20 |
20 |
22 |
29 |
22 |
23 |
|
50 |
55 |
69 |
52 |
53 |
||
100 |
107 |
131 |
103 |
89 |
Анализ экспериментальных исследований предложенного алгоритма на ряде частных случаев показал существенное уменьшение числа выполняемых итераций при незначительном росте пространства поиска.
Выводы
В настоящей работе предложено представление дизъюнктов в виде 0,1-ных наборов, также предложено матричное представление графа связей, на основе чего разработан алгоритм метода резолюций для такого представления. Для описанного алгоритма предложены эвристические методы выбора связи для резольвирования.
Экспериментальными данными показано, что алгоритм для матричного представления дизъюнктов позволяет уменьшить пространство поиска, количество сравнений дизъюнктов, а также уменьшено количество резольвирований.
Список литературы
[Аверин, 2004] Аверин А.И. Исследование и разработка алгоритмов параллельного вывода на графовых структурах. Автореферат. - М.: МЭИ, 2004.
[Вагин и др., 2004] Вагин В.Н., Головина Е.Ю., Загорянская А.А., Фомина М.В. Достоверный и правдоподобный вывод в интеллектуальных системах / Под ред. В.Н. Вагина, Д.А. Поспелова. - М.: ФИЗМАТЛИТ, 2004.
[Волченко, 2009] Волченко М.В. Представление термов для алгоритма резолюции логики высказываний. Информатики и компьютерные технологии / Материалы V международной конференции. - Донецк: Изд-во ДГТУ, 2009.
[Gomez et al., 2008] Gomez C.P., Kautz H., A. Sabharawal and B.Selman. Satisfability Solvers// Handbook of Knowledge Representaton, 2008.
Размещено на Allbest.ru
Подобные документы
Экспертные системы реального времени. Основные производители. История возникновения и развития языка ПРОЛОГ. Исчисление высказываний. Исчисление предикатов. Программирование на ПРОЛОГЕ. Принцип резолюций. Поиск доказательства в системе резолюций.
курсовая работа [146,2 K], добавлен 15.04.2008Особенности реализации алгоритма проверки логического следования методом резолюции. Реализация проекта на логическом языке Prolog и на функциональном языке Haskell: сравнительная характеристика. Знакомство с листингом программы на необходимых языках.
курсовая работа [57,0 K], добавлен 14.07.2012Логика высказываний и предикатов. Построение таблицы истинности для логической формулы. Обоснование выбора структур данных. Описание алгоритма решения задачи. Описание пользовательского интерфейса. Окно командной строки, для ввода логической формулы.
курсовая работа [437,7 K], добавлен 10.04.2017Методы статического и динамического анализа зависимостей по данным для последовательных программ. Разработан и реализован алгоритм гибридного анализа, объединяющий достоинства обоих методов. Статическая библиотека представления базы данных САПФОР.
дипломная работа [169,6 K], добавлен 21.11.2010Построение таблицы истинности, прямое и обратное доказательство, построение которого основывается на тринадцати законах. Построение алгоритма Вонга и метода резолюции, проводится сравнение этих методов на удобство реализации программы на языке Pascal.
курсовая работа [99,9 K], добавлен 26.06.2012Модели нейронных сетей и их реализации. Последовательный и параллельный методы резолюции как средства логического вывода. Зависимость между логическим следованием и логическим выводом. Применение технологии CUDA и реализация параллельного алгоритма.
дипломная работа [1,5 M], добавлен 22.09.2016Представление знаний в когнитологии, информатике и искусственном интеллекте. Связи и структуры, язык и нотация. Формальные и неформальные модели представления знаний: в виде правил, с использованием фреймов, семантических сетей и нечетких высказываний.
контрольная работа [29,9 K], добавлен 18.05.2009Получение вейвлетов Габора из представления путем его поворота и растяжения для известного числа масштабов и ориентаций. Описание процедуры pullback. Детектор края, реализация алгоритма. Генерация представления изображения с помощью вейвлетов Габора.
курсовая работа [1021,4 K], добавлен 29.10.2017Понятие алгоритма и история его формулировки, характерные свойства и формы представления. Виды алгоритмический структур и их признаки. Алгоритмы сортировки и методы их реализации. Применение алгоритмических законов для решения экономических задач.
курсовая работа [359,0 K], добавлен 03.01.2010Понятие и сущность экспертной системы, ее внутренняя структура и назначение, этапы и принципы разработки. Продукционная и фреймовая модель представления знаний, порядок построения семантической сети. Разработка алгоритма программы, создание интерфейса.
курсовая работа [1,2 M], добавлен 22.01.2015