Главная / Искусственный интеллект / Открытые системы / Логическое программирование

Логическое программирование

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

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

Логическое программирование должно базироваться на логике. Но что такое логика? Большинство сторонников логического программирования предлагают в качестве основы для такого подхода логику первого порядка с ее четко определенной семантикой и синтаксисом. Такая точка зрения отчасти подкрепляется тем, что логика первого порядка, дополненная теорией множеств, явилась хорошей основой для математической семантики.

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

Проблема противоречивости знаний

Хочу начать с утверждения, которое я назвал «гипотезой противоречивости» и которое заключается в следующем: любая система аксиом, пытающаяся выразить знания человека о мире, неизбежно оказывается противоречивой.

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

  1. Физический контекст. Физические системы, описываемые аксиоматически, связаны с многими другими физическими системами. Болезни почек, например, часто связаны с заболеваниями сердца. Знания о почках нельзя отделить от знаний о сердце.
  2. Пространственно-временной контекст. Реальные системы существуют во времени и пространстве. Знания о физических системах включают знания об их истории и происхождении.
  3. Терминологический контекст. Предикаты, используемые для аксиоматического описания свойств физических объектов, всегда несколько спорны с практической точки зрения. Так, попытка точно описать, что означает утверждение, что стол имеет плоскую поверхность, породила массу трудных вопросов.
  4. Гносеологический контекст. Наши знания о физических объектах невозможно отделить от того, как мы нпришли к этому знанию. Но если дополнительно аксиоматизировать методы, с помощью которых мы получили аксиоматизированные знания, то это еще более усложнит результирующее аксиоматическое описание.

Хорошую иллюстрацию противоречивости дает ЭВМ DEC-20. Во-первых, заметим, что ЭВМ DEC-20 исключительно проста по сравнению, скажем, с человеческой почкой. Далее, DEC-20—это искусственная система, специально созданная человеком в соответствии с определенными требованиями. Тем не менее, несмотря на огромные усилия разработчиков, формальное описание документации и системы команд остается несогласованным. Противоречивость обнаруживается как в самой документации, так и между документацией и реальной системой команд. И хотя эту несогласованность постоянно корректируют, в системе немедленно выявляются новые противоречия.

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

  1. Все ошибки в программе и в документации должны быть обнаружены.
  2. При изменении требований заказчика необходимо расширять возможности системы.
  3. Система должна реагировать на изменения во взаимодействии с другими системами, такими, как изменение состава периферийного оборудования и сети ЭВМ.

Нельзя доказать, что возникшие таким образом новые версии системы DEC-20 будут иметь полностью согласованное формальное описание. На практике аксиоматизация системы команд и документации даже такой простой системы, как DEC-20, оказывается противоречивой, несмотря на колоссальные усилия достичь согласованности.

Теперь сделаем второе утверждение: аксиоматическое описание человеческих знаний о любой реальной системе всегда останется противоречивым. Я называю это «гипотезой вечной несогласованности». Как бы мы ни старались согласовать описание любой реальной системы, оно так и останется противоречивым.

Семантика обмена сообщениями

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

В теории моделей смысл высказывания определяется теми моделями, в которых оно истинно. Например, конъюнкция двух высказываний истинна только тогда, когда каждое из этих высказываний истинно.

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

Семантика обмена высказываниями определяет значение высказывания иначе: значением высказывания считается то влияние, которое оно имеет на последующее поведение системы. Иначе говоря, значение высказывания определяется тем, как оно повлияло на поведение адресата. Каждое частичное значение высказывания определяется тем, как оно повлияло на поведение адресата. Каждое частичное значение высказывания создается адресатом в зависимости от характера его обработки. Глубинный уровень понимания всегда связан с выделением категорий, которые порождаются взаимодействием, а не присущи явлениям внутренне, и зависят от сочетания различных точек зрения. Поэтому значение высказывания принципиально связано с взаимодействием. Значение высказывания всегда открыто и может неограниченно развертываться и развиваться по мерс того, как адресат обрабатывает его. В семантике обмена высказываниями понятие значения основано не на логике, а на коммуникации.

Необходимость процессуальных рассуждений

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

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

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

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

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