- •9. Продукционные системы
- •9.1. Продукции и системы поста
- •Определение
- •Аксиомы
- •9.2. Вычисления в системах поста
- •Определение
- •9.2.1. Способы представления выводов
- •9.3. Свойства выводов в продукционных
- •9.4. Решение задач в продукционных
- •9.5. Построение выводов в системах поста
- •9.6. Свойства множеств выводимых слов
- •Теорема 9.3
- •Доказательство
- •9.7. Функции, вычисляемые системами поста
- •Определение
9.5. Построение выводов в системах поста
Как уже отмечалось, понятие вывода для систем Поста является недетерминированным.
Это означает, что всякий конечный вывод может быть продолжен в новый вывод большей длины не единственным способом. При этом каждое из таких продолжений является допустимым.
Поэтому в общем случае вывод, ведущий к решению поставленной задачи, должен отыскиваться среди возможных выводов и их продолжений в заданной продукционной системе.
Простейший алгоритм решения задачи о выводимости применений образцов для систем Поста основывается на переборе всех возможных конечных выводов и их продолжений, которые могут быть определены в таких системах. В настоящее время не известны общие алгоритмы решения задачи выводимости применений произвольных образцов, которые не являлись бы в той или иной степени переборными.
Простой переборный алгоритм последовательного построения всех конечных вычислений в произвольной системе = (A, B, V, P) можно представить следующей схемой:
1. Определим переменную d, начальное значение которой равно 1.
2. Образуем множество M, состоящее из всех слов в алфавите A V, длина которых равна d.
3. Последовательно выписываем все возможные последовательности, состоящие из d слов множества M.
Для каждой такой последовательности W проверяется, является ли она вычислением. Если это так, то W и ее начальные фрагменты добавляется к формируемому списку всех конечных выводов в системе .
4. Увеличим значение d на 1 и повторим действия 2 4.
Из приведенных ранее свойств понятия вывода в системах Поста следует, что каждое из приведенных действий алгоритмическое и выполняется за конечное время. В результате работы алгоритма последовательно заполняется в общем случае бесконечный список, содержащий все конечные вычисления в .
Приведенная схема не может рассматриваться как практически применимая при решении задач, когда вывод применения заданного образца существует. Это связано с большим количеством вариантов конечных последовательностей слов, рассматриваемых в качестве потенциальных выводов, влекущим значительную вычислительную (временную) сложность алгоритма, основанного на переборе вариантов.
9.6. Свойства множеств выводимых слов
Из всех слов, выводимых в произвольной системе Поста, выделяются подмножества таких слов, которые могут считаться окончательными результатами вычислений.
В процессе вывода таких окончательных слов в системах Поста приходится использовать и другие слова, которые можно рассматривать как промежуточные или вспомогательные слова.
В простейшем случае заключительными считаются все слова, которые не содержат символов вспомогательного алфавита.
В других случаях заключительные слова должны иметь специальную структуру.
Например, рассмотрим систему Поста, в которой выводятся все такие пары двоичных последовательностей (x, y), являющихся правильными записями неотрицательных целых чисел.
В этой системе все выводимые слова, начинающиеся с буквы N, являются вспомогательными. Они представляют правильные записи целых неотрицательных чисел в двоичной системе, выводимых с помощью продукций:
1 = N0; 2 = N1; 3 = N11; 4 = N10;
5 = ; 6 = .
Пары целых неотрицательных чисел (x, y) выводятся с помощью продукции:
7 = .
Приведенная система Поста имеет основной алфавит A = {0, 1, (, ), ,} и вспомогательный алфавит V = {N}.
Результатами в такой системе являются только такие выводимые слова, которые не содержат символа N.
Выводимые в системе вспомогательные слова имеют вид Nx.
Множество всех слов, выводимых в произвольной системе Поста с непустым вспомогательным алфавитом, разбивается на два класса: это класс слов, содержащих символы вспомогательного алфавита, и класс слов, состоящих только из символов основного алфавита.
Слова из первого класса называются нетерминальными словами системы Поста; из второго класса терминальными, или заключительными.
В дальнейшем обозначение будет применяться для множества слов в основном алфавите, которые выводятся в системе Поста . Другие слова, выводимые в системе Поста и содержащие вспомогательные символы рассматриваются как промежуточные в выводах, позволяющие организовать вывод заключительных слов.
Рассмотрим ещё один пример системы Поста, в которой выводятся все возможные пары слов вида ( , ), где это произвольная последовательность из нулей и единиц, а двоичная запись числа, равного длине последовательности .
Выпишем множество продукций соответствующей системы Поста.
1. Вспомогательные продукции, позволяющие выводить правильные двоичные записи неотрицательных целых чисел:
1= N1; 2= N0; 3= N11; 4 =N10; 5: ; 6: .
2. Вспомогательные продукции, позволяющие выводить слова вида S(x) = y, где x и y это правильные двоичные записи неотрицательных целых чисел и у = x + 1:
7: S( 0 ) = 1; 8: ; 9: .
3. Основные продукции, позволяющие выводить пары, слов ( , ), которые являются заключительными:
10: (0 , 1); 11: (1, 1);
12: ; 13: .
Здесь символы N и S образуют вспомогательный алфавит, а x, y, z алфавит переменных. Остальные символы составляют основной алфавит.
Упражнение. Привести пример множества слов в алфавите {0, 1}, которое выводится только в таких системах Поста, которые имеют непустой вспомогательный алфавит.
Рассмотрим класс всех таких множеств слов, каждое из которых выводится в некоторой системе Поста. Покажем, что этот класс замкнут относительно операций объединения и пересечения множеств.
Справедливость приведенного свойства вытекает из теоремы 9.2.
ТЕОРЕМА 9.2
Если 1 и 2 множества слов, выводимых в системах 1 и 2 соответственно, то найдутся такие системы U и I, в которых выводятся соответственно множества
1 2 и 12.
Доказательство
Пусть R и Q символы, которые не встречаются среди символов алфавитов систем 1 и 2.
1. Определим систему U. Основной алфавит и алфавит переменных этой системы получаются объединениями основных алфавитов и алфавитов переменных систем 1 и 2.
Вспомогательный алфавит системы U состоит из символов вспомогательных алфавитов для 1 и 2, а также символов R и Q.
Множество продукций системы U состоит из продукций, получаемых из продукций 1 приписыванием всем образцам слева символа R, а также продукций, получаемых из продукций системы 2 с помощью аналогичного приписывания символа Q.
Кроме того, в U добавлены продукции:
и .
Покажем, что в системе U выводятся те и только те слова, которые принадлежат 1 2.
Это следует из того, что некоторое слово x выводится в системе U тогда и только тогда, когда в этой системе выводится либо слово Rx, либо слово Qx.
Последнее равносильно тому, что x выводится либо в 1, либо в 2. Поэтому в U выводится множество слов 1 2.
2. Определим систему Поста I.
Алфавиты этой системы определяются так же, как это было определено для системы PU.
Продукции системы I получаются из продукций 1 и 2 приписыванием ко всем образцам в них слева символов R и Q соответственно.
К этим продукциям добавляется еще одна
.
Видно, что в системе I выводятся такие и только такие слова x, которые могут быть выведены как в 1, так и в 2.
Поэтому множество слов, выводимых в системе I, равно 1 2.
Доказательство окончено.
Вспомогательные символы R и Q использованы для того, чтобы продукция, получаемая из продукции одной из систем описанным в доказательстве преобразованием, могла применяться только к таким совокупностям слов, которые выводятся с помощью преобразованных продукций той же системы.
Если, например, при построении системы U в качестве множества продукций для U взять объединение множеств неизмененных продукций систем 1 и 2, то можно получить систему, в которой выводятся слова, не входящие в 1 2.
В качестве примера рассмотрим системы 1 и 2 со следующими совокупностями продукций:
1,1: 1, 1,2: ; (1)
2,1: 0, 2,2: . (2)
Тогда с помощью продукций (1) системы 1 можно выводить слова, составленные только из единиц, а при помощи множества (2) системы 2 слова, которые имеют конечное число нулей.
Однако продукции 1,1, 1,2, 2,1, 2,2, используемые совместно, позволяют выводить любые слова, состоящие из нулей и единиц.
Семейство классов слов, выводимых в системах Поста, не замкнуто относительно операции взятия дополнений таких множеств.
Это означает, что существует такая система = (A,B,V,P), для которой множество A* \ не выводится ни в одной системе Поста. Доказательство этого факта будем приведено ниже после изучения связи множеств слов, выводимых в системах Поста и множества частично-рекурсивных функций.
Всякое множества таких слов в некотором основном алфавите A, что и его дополнение до A* выводимы в некоторых системах Поста, является разрешимым.
Справедливость последнего свойства вытекает из следующей теоремы.