Красненкова А.В. Кандидат философских наук, кафедра философии естественных

advertisement
Красненкова А.В.
Кандидат философских наук, кафедра философии естественных
факультетов, Московский государственный университет имени М.В.
Ломоносова.
О ВРЕМЕННОЙ СЛОЖНОСТИ АЛГОРИТМА ПОИСКА
ВЫВОДА ДЛЯ НАТУРАЛЬНЫХ СИСТЕМ НЕГАТИВНЫХ И
ПОЗИТИВНЫХ СИЛЛОГИСТИК.
Аннотация
В
статье
приводится
оценка
временной
сложности
силлогистического фрагмента указанного алгоритма. С помощью
теоремы
Шефера
устанавливается,
что
данный
фрагмент
принадлежит к классу NP-полных задач. Показывается, что это
обстоятельство вызвано алгоритмической стратегией поиска вывода,
которая моделирует вывод в натуральных исчислениях, осуществляемый
человеком.
Ключевые слова: натуральные исчисления, алгоритм поиска вывода,
временная
сложность
алгоритма,
NP-полные
задачи,
силлогистика,
дихотомическая теорема Шефера.
Keywords: natural deduction calculi, proof searching algorithm, time
complexity, NP-complete problems, syllogistics, Schaefer's dichotomy theorem.
Рассмотрим очень важный вопрос о сложности алгоритма, так как
алгоритм прежде всего должен быть ориентирован на практическую
реализацию и время его работы должно быть приемлемым для пользователя.


Покажем,
что
временная
сложность
силлогистической
части
предложенного нами алгоритма принадлежит как минимум к классу NP
(нижняя граница его сложности принадлежит к данному классу).
Отметим, что силлогистический фрагмент нашего алгоритма поиска
вывода нельзя представить в виде секвенциального исчисления, как это было
сделано для пропозициональной части алгоритма Макаровым В.В. в [4, 143 –
151].
Дело в том, что силлогистические правила вывода не сохраняют
свойство подформульности (в посылке стоит одна формула, а в заключении –
другая). Даже если рассматривать свойство подформульности только
применительно к терминам, то правила-модусы (Barbara и Celarent)
все
равно не будут сохранять данное свойство «подтерминности» [Примечание
1],
а
устранение
данных
правил из силлогистической
системы и
доказательство без их помощи правильных силлогистических модусов не
представляется возможным.
Поэтому утверждение о сложности (равно как и утверждение о
полноте)
силлогистической части
доказываются несколько иными
методами, чем те, которые применяются для
исчисления секвенций (не
опираясь на процедуру поиска контрпримера и вообще отказавшись от
методов, предложенных Я. Хинтиккой – так как они изначально не были
ориентированы на подобного рода системы).
Итак, рассмотрим временную сложность собственно силлогистической
части для системы натуральной традиционной силлогистики (отметим, что
доказательство будет корректным для любой из рассмотренных нами
систем).
Оценка сложности пропозициональной части для указанного алгоритма
может
производиться
следующим


образом:
показывается,
что
пропозициональная часть алгоритма поиска вывода моделируется при
помощи
секвенциального
исчисления
для
классической
логики
высказываний. Далее, учитывая тот факт, что сложность указанного
секвенциального исчисления принадлежит к классу EXPTIME, делается
вывод и о сложности пропозициональной части алгоритма.
Схема
указанного рассуждения рассматривается в [2].
Отметим еще раз, что похожий путь анализа пропозициональной части
алгоритма проводился в [4, 143—151] Макаровым В.В., путем построения
нестандартного
исчисления
высказываний;
далее
секвенций
исследовалась
для
классической
сложность
данного
логики
исчисления,
демонстрировалось, что она экспоненциальная.
Теперь раскроем подробнее понятие временной сложности алгоритма.
Как известно, временная сложность определяется как функция размера
входных
и
выходных
элементарных
операций,
данных,
равная
проделываемых
максимальному
алгоритмом
количеству
для
решения
экземпляра задачи указанного размера. Временная сложность может быть
полиномиальной
(принадлежать
к
классу
P),
т.е.
вычисляться
за
полиномиальное время на детерминированной машине Тьюринга, а может,
соответственно, не вычисляться и поэтому принадлежать к классам более
высокой степени сложности: NP, PSPACE, EXPTIME, NEXPTIME и др.
Сформулированный
алгоритм
поиска
вывода
в
натуральных
силлогистических исчислениях, в силу как раз таки силлогистических правил
вывода, требует большого, не-полиномиально растущего в зависимости от
длины входных данных перебора. Нашей задачей является показать, что
такой неэффективный рост вычислительной сложности, приводящий в итоге
к
большим
вычислительным
затруднениям,
обусловлен
самой
проблематикой поиска вывода в указанных исчислениях, при принятии


определённой стратегии поиска вывода, при которой важно получать все
возможные варианты, работая с формулами СВ (для нахождения требуемого
решения),
и
уже
на
них
проверять
достижимость
более
искусно
формируемых целей. Особенно стратегия полного перебора актуальна для
силлогистических исчислений, в силу уже упомянутых выше причин.
Заметим, что формулировка поиска вывода в данных исчислениях
таким
образом,
чтобы
численность
формул
СВ
существенно
контролировалась (перебор был весьма ограниченным), вступает в некоторое
противоречие с пониманием концепции именно натурального вывода как
алгоритмической стратегии. А понимание натурального вывода именно как
метода алгоритмического решения задач являлось ядром исследований по
алгоритмам поиска вывода в различных исчислениях (подробнее см. работы,
приведенные [3], [4]).
Покажем, что работу алгоритма с силлогистическими правилами
вывода можно описать в терминах SAT-задач (задач о выполнимости
булевых формул).
Затем продемонстрируем, что используемая нами стратегия поиска
вывода, составляющая ядро нашего алгоритма (точнее, его силлогистической
его части), не допускает создания полиномиального алгоритма для
исследуемой нами задачи: другими словами, покажем, что наименьшая
нижняя оценка его сложности принадлежит к классу NP, даже более того,
принадлежит к классу NP-полных задач. (Для оценки временной сложности
алгоритмов решающее значение имеют именно наименьшие нижние оценки,
так как они демонстрируют невозможность упрощения алгоритма и дают
наиболее точную его характеристику. Точнее, мы покажем, что существует
такой набор входных данных, для которого наименьшая нижняя оценка
сложности алгоритма неполиномиальна. Этого будет достаточно для


обоснования утверждения о неполиномиальности силлогистической части
алгоритма, пусть даже речь идет о худшем случае).
Таким
образом,
принципиально
предложенная
исключает
формулировка
возможность
построения
поиска
вывода
полиномиального
алгоритма для силлогистической части.
Проведем данное рассуждение следующим образом.
Опишем работу алгоритма с формулами СВ, когда применяются
однопосылочные силлогистические правила вывода. Исследования данных
правил (точнее, подмножества множества данных правил) будет достаточно
для того, чтобы показать, что таким образом сформулированный алгоритм
поиска вывода (сама стратегия поиска вывода как рассуждение в
натуральном исчислении с полным перебором всех возможных вариантов,
получаемых по силлогистическим правилам), согласно т.н. дихотомической
(т.е. разделяющей алгоритмы на классы P и NP, соответственно) теоремы
Шефера [5, 216 – 226], [6], принадлежит классу NP (и даже представляет
собой NP-полную задачу, согласно этой же теореме).
Рассмотрим
силлогистический
фрагмент
системы
натуральной
традиционной силлогистики (далее для удобства нТС), а именно: правила
вывода XaY ⊢
XiY, XiY ⊢ YiX, XeY⊢YeX, XiY⊢¬XeY, Xi~Y⊢XoY
(Полную формулировку указанной системы см. в [2]).
Пусть для определенности данные правила применяются в том
порядке, в каком мы их записали.
Рассмотрим попытку доказательства утверждения SaP, SaM,~QaM ⊢
Pe~Q в системе нТС.


Согласно
определению
построенного
нами
алгоритма,
в
СВ
добавляются формулы SaP, SaM, ~QaM; затем применяются беспосылочные
правила вывода и, таким образом,у нас в СВ добавляются формулы SaS,
MaM, PaP. Далее, по определению алгоритма, начинается применение
аналитических правил вывода к формулам СВ.
Запишем применение указанных правил к формулам СВ (сам процесс
вычисления) в виде булевой формулы в КНФ (конъюнктивной нормальной
форме, где каждый дизъюнкт не содержит одновременно литерала и его
отрицания).
Закодируем формулы СВ переменными вида x1, x2, x3, …, xn. Индекс
переменной xi зависит от номера формулы в СВ.
На начальном этапе построения искомой формулы у нас есть
переменные x1, x2, x3, x4, x5, x6.
Итак, сначала у нас применяется правило XaY⊢XiY. Как закодировать
процесс его применения к формулам СВ на языке классической логики
высказываний? Естественно предположить, что или x1 будет посылкой
данного правила, или x2, или x3 и т.п., или несколько формул из данного
набора, или все формулы x1, x2, x3, x4, x5, x6. Запишем данное утверждение в
виде дизъюнкта x1 ∨ x2 ∨ x3 ∨ x4∨ x5∨ x6 (если ни одна формула не
подпадает под данное правило вывода, то дизъюнкт будет невыполнимым).
Данная формула точно описывает процесс первого применения
некоторого правила вывода к посылкам. У нас также присутствует некоторая
внешняя функция (функция-оракул), которая вычисляет для каждой
переменной, кодирующей посылку, истинна она или ложна в данном
дизъюнкте (т.е. подпадает она под применяемое на текущий момент правило


вывода или нет). Вычислимость функции-оракула не влияет на результат и
поэтому принципиально не исследуется [Примечание 2].
Для нашего набора она вернет набор значений <1,1,1,1,1,1>. Процесс
применения правила XaY⊢ XiY продолжается – ведь, согласно определению
алгоритма, мы добавили в СВ 6 новых формул: SiP, SiM, ~QiM, SiS, MiM,
PiP.
Закодируем их для начала как x7, x8, x9, x10, x11, x12. Теперь проверим
выполнимость второго дизъюнкта для правила подчинения: x 7∨x8∨ x9∨x10∨
x11∨x12. Функция-оракул вернула для него набор значений <0,0,0,0,0,0>.
Заменим переменные, которым функция приписала значение 0, на их
отрицания, т.е. заменим xi на ¬xi.
Так мы зафиксировали, что к потенциальным посылкам правило XaY⊢
XiY оказалось неприменимым. Перепишем второй дизъюнкт как ¬x 7∨¬x8 ∨
¬x9 ∨¬x10∨ ¬x11∨¬x12. Так как мы обязательно должны проверить оба наших
дизъюнкта для нахождения максимально точного решения (по определению
применения правила вывода – сначала
к исходным формулам, потом к
результатам их применения), то соединим наши дизъюнкты конъюнкцией:
(x1 ∨ x2 ∨ x3 ∨ x4∨ x5∨ x6)&(¬x7 ∨ ¬x8 ∨ ¬x9 ∨¬x10∨ ¬x11∨¬x12)
Обозначим тот факт, что процесс применения первого п.в. с
необходимостью завершился, и мы переходим к применению второго
правила (если продолжать аналогию с машиной Тьюринга, то управляющая
головка перешла в новое состояние), присоединением пустого символа
(логической константы ⊥).
Данный дизъюнкт будет играть вспомогательную, техническую роль
при построении искомой формулы.


Начинаем процесс применения правила XiY ⊢ YiX к потенциальным
посылкам
x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12.
Запишем первоначальный дизъюнкт:
x1 ∨ x2∨ x3∨ x4∨ x5∨x6 ∨x7∨x8 ∨x9∨x10∨x11∨x12.
Оракул вернул для него набор значений
<0,0,0,0,0,0,1,1,1,0,0,0>.
Первые шесть литералов мы внесли в данный дизъюнкт потому, что,
согласно концепции нашего алгоритма, к одним и тем же формулам могут
оказаться применимы несколько правил вывода, и перед применением
очередного правила мы не знаем, к каким формулам оно будет применимо, а
к каким – нет
(т.е. мы должны исследовать все неисследованные
потенциальные посылки). Последним 3-м литералам оракул вернул значение
0 в силу определения алгоритма: запрещается добавлять в СВ уже
имеющиеся там формулы.
Итак, дизъюнкт приобретает вид:
¬x1 ∨ ¬x2∨ ¬x3∨ ¬x4∨ ¬x5∨¬x6 ∨x7∨x8 ∨x9∨¬x10∨¬x11∨¬x12
Так как в СВ мы добавили три новые формулы PiS, MiS и Mi~Q, то
продолжаем применять правило XiY⊢YiX.
По уже указанному выше принципу сформируем второй дизъюнкт:
x13∨x14∨x15. Оракул вернул для него набор значений <0,0,0>.
Процесс применения правила обращения для частноутвердительных
высказываний окончен (дизъюнкт мы записали как ¬x13∨¬x14∨¬x15).
Теперь наша формула имеет вид:


(x1 ∨ x2 ∨ x3 ∨ x4∨ x5∨ x6)&(¬x7 ∨ ¬x8 ∨ ¬x9 ∨¬x10∨ ¬x11∨¬x12)&⊥&( ¬x1 ∨
¬x2∨ ¬x3∨ ¬x4∨ ¬x5∨¬x6 ∨x7∨x8 ∨x9∨¬x10∨¬x11∨¬x12)&( ¬x13∨¬x14∨¬x15)&⊥
Из анализа данной формулы в КНФ видно, что на текущий момент мы
уже применили два правила вывода ко всем возможным посылкам, и
продуктивных посылок, вызвавших пополнение СВ, оказалось 9.
Продолжим работу с формулами СВ. Применим
теперь правило
XeY⊢YeX. Запишем «первичный» дизъюнкт:
x1∨x2∨ x3∨ x4∨ x5∨x6 ∨x7∨x8 ∨x9∨x10∨x11∨x12∨x13∨x14∨x15
Оракул вернул для него кортеж <0,0,0,0,0,0,0,0,0,0,0,0,0,0,0> (правило
оказалось неприменимым ко всем потенциальным посылкам), поэтому в
окончательном варианте мы получаем формулу:
¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨¬x7∨¬x8∨¬x9∨¬x10∨¬x11∨¬x12∨¬x13∨¬x14∨¬x15
Теперь наша общая формула имеет следующий вид:
(x1 ∨ x2 ∨ x3 ∨ x4∨ x5∨ x6)&(¬x7 ∨ ¬x8 ∨ ¬x9 ∨¬x10∨ ¬x11∨¬x12)&⊥&( ¬x1 ∨ ¬x2∨
¬x3∨
¬x4∨
¬x5∨¬x6
∨x7∨x8
∨x9∨¬x10∨¬x11∨¬x12)&(¬x13∨¬x14∨¬x15)&⊥&(
¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨¬x7∨¬x8∨¬x9∨¬x10∨¬x11∨¬x12∨¬x13∨¬x14∨¬x15)&⊥.
Перейдем к применению следующего правила вывода – XiY⊢¬XeY. В
итоге его применения получим формулу (промежуточные вычисления мы
опустили, так как они полностью аналогичны вышеприведенным):
(¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨x7∨x8∨x9∨x10∨x11∨x12∨x13∨x14∨x15)&
(¬x16∨¬x17∨¬x18∨¬x19∨¬x20∨¬x21∨¬x22∨¬x23∨¬x24), где переменными х16, х17,
х18, х19, х20, х21, х22, x23, x24 мы закодировали формулы ¬SeP, ¬SeM, ¬~QeM,
¬PeP, ¬SeS, ¬MeM, ¬Me~Q, ¬PeS, ¬MeS, соответственно.
Общая формула имеет вид:


(x1 ∨ x2 ∨ x3 ∨ x4∨ x5∨ x6)&(¬x7 ∨ ¬x8 ∨ ¬x9 ∨¬x10∨ ¬x11∨¬x12)&⊥&( ¬x1 ∨ ¬x2∨
¬x3∨¬x4∨¬x5∨¬x6∨x7∨x8∨x9∨¬x10∨¬x11∨¬x12)&(¬x13∨¬x14∨¬x15)&⊥&(
¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨¬x7∨¬x8∨¬x9∨¬x10∨¬x11∨¬x12∨¬x13∨¬x14∨¬x15)&⊥
&(¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨x7∨x8∨x9∨x10∨x11∨x12∨x13∨x14∨x15)&
(¬x16∨¬x17∨¬x18∨¬x19∨¬x20∨¬x21∨¬x22∨¬x23∨¬x24) &⊥.
Применим теперь правило вывода Xi~Y⊢XoY. В итоге получим
формулу:
¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨¬x7∨¬x8∨¬x9∨¬x10∨¬x11∨¬x12∨¬x13∨¬x14∨x15∨¬x16∨
¬x17∨¬x18∨¬x19∨¬x20∨¬x21∨¬x22∨¬x23∨¬x24 &¬x25,
где x25 кодирует формулу MoQ, полученную по данному п.в.
Общая формула теперь такова:
(x1 ∨ x2 ∨ x3 ∨ x4∨ x5∨ x6)&(¬x7 ∨ ¬x8 ∨ ¬x9 ∨¬x10∨ ¬x11∨¬x12)&⊥&( ¬x1 ∨
¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨x7∨x8∨x9∨¬x10∨¬x11∨¬x12)&(¬x13∨¬x14∨¬x15)&⊥&(
¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨¬x7∨¬x8∨¬x9∨¬x10∨¬x11∨¬x12∨¬x13∨¬x14∨¬x15)&⊥
&(¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨x7∨x8∨x9∨x10∨x11∨x12∨x13∨x14∨x15)&
(¬x16∨¬x17∨¬x18∨¬x19∨¬x20∨¬x21∨¬x22∨¬x23∨¬x24)&⊥&(¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨
¬x6∨¬x7∨¬x8∨¬x9∨¬x10∨¬x11∨¬x12∨¬x13∨¬x14∨x15∨¬x16∨¬x17∨¬x18∨¬x19∨¬x20∨¬
x21∨¬x22∨¬x23∨¬x24) &¬x25&⊥.
Таким образом, мы завершили первый цикл применения указанного
фрагмента правил к формулам СВ. Однако у нас еще остались формулы, не
охваченные некоторыми правилами вывода, и которые потенциально могут
принести продуктивные варианты, ведущие к получению требуемого
решения.
Строго говоря, процесс формализации работы с формулами СВ был
выполнен нами не совсем формально: мы не зафиксировали тот факт, что
произвольная формула СВ
уже была обработана оракулом на предмет


подпадания под то или иное правило вывода. На практике данный момент
очень важен, так как не позволяет алгоритму застревать на одной и той же
формуле, бесконечное число раз привлекая ее в качестве посылки одного и
того же правила. Вообще, в одном акте работы с СВ одна и та же формула
должна использоваться в качестве посылки одного и того же п.в. один и
только один раз.
Для записи указанного факта введем новый тип переменных yi,j, где i –
номер
формулы в СВ, а j – порядковый номер примененного к ней
правила (пронумеруем правила так, как мы их перечислили). Введенные
переменные позволят нам осуществлять динамический процесс построения
требуемой формулы без образования циклов. Поэтому к полученной формуле
припишем ряд единичных дизъюнктов указанного вида (вообще, строго
говоря, каждый такой набор дизъюнктов должен приписываться к формуле
динамически, после обработки очередного дизъюнкта потенциальных
посылок, но мы сделаем это постфактум).
Итак, теперь наша формула приобретает вид:
(x1 ∨ x2 ∨ x3 ∨ x4∨ x5∨ x6)&(¬x7 ∨ ¬x8 ∨ ¬x9 ∨¬x10∨ ¬x11∨¬x12)&⊥&( ¬x1 ∨
¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨x7∨x8∨x9∨¬x10∨¬x11∨¬x12)&(¬x13∨¬x14∨¬x15)&⊥&(
¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨¬x7∨¬x8∨¬x9∨¬x10∨¬x11∨¬x12∨¬x13∨¬x14∨¬x15)&⊥
&(¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨x7∨x8∨x9∨x10∨x11∨x12∨x13∨x14∨x15)&
(¬x16∨¬x17∨¬x18∨¬x19∨¬x20∨¬x21∨¬x22∨¬x23∨¬x24)&⊥&(¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨
¬x6∨¬x7∨¬x8∨¬x9∨¬x10∨¬x11∨¬x12∨¬x13∨¬x14∨x15∨¬x16∨¬x17∨¬x18∨¬x19∨¬x20∨¬
x21∨¬x22∨¬x23∨¬x24)&¬x25&⊥&y1,1&y2,1&y3,1&y4,1&y5,1&y6,1&y7,1&y8,1&y9,1&y10,
1&y11,1&
y12,1&y1,2&y2,2&y3,2&y4,2&y5,2&y6,2&y7,2&y8,2&y9,2&y10,2&y11,2&y12,2&y13,2&y14,2&
y15,2&
y1,3&y2,3&y3,3&y4,3&y5,3&y6,3&y7,3&y8,3&y9,3&y10,3&y11,3&y12,3&y13,3&y14,3&y5,3&y


1,4&y2,4&y3,4&y4,4&y5,4&y6,4&y7,4&y8,4&y9,4&y10,4&y11,4&y12,4&y13,4&y14,4&y15,4&y1
6,4&y17,4&y18,4&y19,4&y20,4&y21,4&y22,4&y23,4&y24,4&y1,5&y2,5&y3,5&y4,5&y5,5&y6,5
&y7,5&y8,5&y9,5&y10,5&y11,5&y12,5&y13,5&y14,5&y15,5&y16,5&y17,5&
y18,5&
y19,5&
y20,5&y21,5& y22,5& y23,5& y24,5& y25,5
Применим
еще
не
применявшиеся
правила
вывода
ко
всем
неохваченным ими формулам. Процесс повторного применения правил
вывода начнем с самого верхнего, как и в начале работы алгоритма с СВ.
Тогда наша итоговая формула примет вид (промежуточные вычисления
опускаем, в силу их тривиальности):
(x1 ∨ x2 ∨ x3 ∨ x4∨ x5∨ x6)&(¬x7 ∨ ¬x8 ∨ ¬x9 ∨¬x10∨ ¬x11∨¬x12)&⊥&( ¬x1 ∨
¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨x7∨x8∨x9∨¬x10∨¬x11∨¬x12)&(¬x13∨¬x14∨¬x15)&⊥&(
¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨¬x7∨¬x8∨¬x9∨¬x10∨¬x11∨¬x12∨¬x13∨¬x14∨¬x15)&⊥
&(¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨¬x6∨x7∨x8∨x9∨x10∨x11∨x12∨x13∨x14∨x15)&
(¬x16∨¬x17∨¬x18∨¬x19∨¬x20∨¬x21∨¬x22∨¬x23∨¬x24)&⊥&(¬x1∨¬x2∨¬x3∨¬x4∨¬x5∨
¬x6∨¬x7∨¬x8∨¬x9∨¬x10∨¬x11∨¬x12∨¬x13∨¬x14∨x15∨¬x16∨¬x17∨¬x18∨¬x19∨¬x20∨¬
x21∨¬x22∨¬x23∨¬x24)&¬x25&⊥&(¬x13∨¬x14∨x15∨¬x16∨¬x17∨¬x18∨¬x19∨¬x20∨¬x21
∨¬x22∨¬x23∨¬x24∨¬x25)
3]
[Примечание
&⊥&(¬x16∨¬x17∨¬x18∨¬x19∨¬x20∨¬x21∨¬x22∨¬x23∨¬x24∨¬x25) [Примечание 4]
&⊥&(¬x16∨¬x17∨¬x18∨¬x19∨¬x20∨¬x21∨¬x22∨¬x23∨¬x24∨¬x25)
&⊥&¬x25
[Примечание
6]
&⊥&⊥
[Примечание 5]
[Примечание
7]
&
&y1,1&y2,1&y3,1&y4,1&y5,1&y6,1&y7,1&y8,1&y9,1&y10,1&y11,1&
y12,1&y1,2&y2,2&y3,2&y4,2&y5,2&y6,2&y7,2&y8,2&y9,2&y10,2&y11,2&y12,2&y13,2&y14,2&
y15,2&
y1,3&y2,3&y3,3&y4,3&y5,3&y6,3&y7,3&y8,3&y9,3&y10,3&y11,3&y12,3&y13,3&y14,3&y5,3&y
1,4&y2,4&y3,4&y4,4&y5,4&y6,4&y7,4&y8,4&y9,4&y10,4&y11,4&y12,4&y13,4&y14,4&y15,4&y1
6,4&y17,4&y18,4&y19,4&y20,4&y21,4&y22,4&y23,4&y24,4&y1,5&y2,5&y3,5&y4,5&y5,5&y6,5
&y7,5&y8,5&y9,5&y10,5&y11,5&y12,5&y13,5&y14,5&y15,5&y16,5&y17,5&


y18,5&
y19,5&
y20,5&y21,5&
y22,5&
y23,5&
y24,5&
y25,5&y13,1&y14,1&y15,1&y16,1&y7,1&y18,1&y19,1&y20,1&y21,1&y22,1&y23,1&y24,1&y25,1&
y16,2&y17,2&y18,2&y19,2&y20,2&y21,2&y22,2&y23,2&y24,2&y25,2&y16,3&y17,3&y18,3&y19,3
&y20,3&y21,3&y22,3&y23,3&y24,3&y25,3&y25,4
Два пустых дизъюнкта подряд означают (они выделены жирным
шрифтом), что алгоритм применил все возможные правила ко всем
возможным посылкам и получил все возможные варианты, и служат
сигналом для окончания работы с формулами СВ. Итоговая формула
построена. Даже если сократить повторяющиеся дизъюнкты, не забыв
выбросить пустые, длина итоговой формулы, даже без учета переменных
вида yi,j, будет очень высока: 125 литералов на выходе против 3-х входных –
и мы исследовали всего лишь фрагмент системы без учета двухпосылочных
правил вывода, где нам необходимо осуществить перебор кортежей.
Постараемся точно оценить сложность алгоритма. Для этого будем
использовать так называемую теорему Шеффера. Теорема Шефера (см. [5,
216 – 226], [6]) содержит ряд условий; если построенная формула в КНФ
соответствует хотя бы одному, то она принадлежит к классу Р и вычисляется
соответственно за полиномиальное время. И наоборот, если формула не
подпадает ни под один из указанных шести пунктов, то она принадлежит как
минимум к классу NP (если быть совсем точным, то данная задача в этом
случае принадлежит классу NP-полных задач, и, как следствие, для ее
решения невозможно создание универсального полиномиального алгоритма).
Приведем список указанных пунктов:
1) Формула принимает значение «истина» тогда и только тогда, когда
все дизъюнкты, входящие в ее состав, принимают значение «истина».
2) Формула принимает значение «истина» тогда и только тогда, когда
все дизъюнкты, входящие в ее состав, принимают значение «ложь».


3) Каждый конъюнкт состоит только из двух дизъюнктов.
4) Каждый конъюнкт может представляет собой хорновский (т.е. в
дизъюнкте присутствует только один отрицательный литерал, и поэтому его
можно преобразовать в импликативную формулу) дизъюнкт.
5) Каждый конъюнкт может представляет собой дизъюнкт, дуальный
(т.е. содержащий ровно один положительный литерал) хорновскому.
6) Каждый конъюнкт можно представить как такую формулу, где
вместо
обычной
дизъюнкции
используется
строгая,
разделяющая,
дизъюнкция, и, таким образом, каждый конъюнкт будет истинным при
истинности ровно одного из дизъюнктивных членов.
Для данной формулы не подходит ни один пункт, и это значит, что она
принадлежит к классу NP-полных задач.
Данный факт наглядно демонстрирует, что поиск требуемого решения
при доказательстве теорем/обосновании выводимостей, с учетом всех
возможных вариантов, получаемых из всех посылок и с использованием всех
правил вывода (особенно наглядно это проявляется в
натуральных
силлогистических исчислениях, где, в силу самой их структуры, естественно
большое число посылок и правил вывода), не может осуществляться за
полиномиальное время.
Строить же указанную формулу в более сжатом, оптимизированном
виде мы не можем из-за принятой нами концепции поиска вывода: иначе изза уменьшения перебора можно пропустить вариант, ведущий к требуемому
решению.
Следовательно, стратегия вычисления как процесс осуществления
натурального вывода в силлогистических исчислениях с обязательным


рассмотрением всех возможных промежуточных вариантов нуждается в
существенном пересмотре.
Подробный анализ проблем разрешимости и полноты для натуральных
силлогистических систем мы планируем провести в других работах.
Примечания:
1. Думаю, поэтому нельзя построить ни аналитические таблицы, ни
секвенциальные исчисления без сечения для произвольных
силлогистических систем и тем более нельзя использовать
подобные системы в качестве разрешающих для того или иного
силлогистического
исчисления:
ведь
отсутствие
свойства
подформульности является самым главным препятствием на пути
к разрешающей процедуре!
2. Таким образом сформулированное нами вычисление очень
напоминает вычисление на МТ с оракулом. Текущее правило
вывода можно, например, рассматривать как текущее внутреннее
состояние головки. Однако построение соответствующей машины
Тьюринга является самостоятельной научной задачей, и весьма
нетривиальной, поэтому оставим сравнение производимого нами
рассуждения с вычислением на МТ с оракулом в рамках беглого
комментария.
3. Закончили
применение
первого
сокращенно – п.в.).
4. Завершили применение 2-ого п.в.
5. Завершили применение 3-ого п.в.
6. Отработали 4-ое п.в.


правила
вывода
(далее
7. Два пустых дизъюнкта подряд означают, что мы завершили
применение процедуры.
Список литературы:
1. Красненкова А.В. Алгоритм поиска вывода для систем негативной
силлогистики. Диссертация на соискание ученой степени кандидата
философских наук. Специальность 09.00.07 – Логика. М., 2009. На
правах рукописи.
2. Красненкова А.В. Временная сложность алгоритма поиска вывода для
натуральных
силлогистических
исчислений//
Материалы
Международной научной конференции студентов, аспирантов и
молодых учёных «Ломоносов-2012». Москва, МАКС-ПРЕСС, 2012.
3. Логика и компьютер. Выпуск 3. Доказательство и его поиск (курс
логики и компьютерный практикум). Москва, «Наука», 1996.
4. Логика и компьютер. Выпуск 5. Пусть докажет компьютер. Москва,
«Наука», 2004.
5. Schaefer T.J. The complexity of satisfiability problems // Proc. 10th ACM
Symp. on Theory of Computing. 1978. P. 216 – 226.
6. Статья в английской Википедии «Schaefer's dichotomy theorem».
http://en.wikipedia.org/wiki/Schaefer's_dichotomy_theorem.
доступа – свободный.



Режим
Download