Главная страница
Навигация по странице:

  • 1.4. Интеллектуальные системы обработки текстовой информации

  • 1.5. Экспертные системы

  • 2. МЕТОДЫ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ

  • 2.2. Логика предикатов первого порядка

  • А. В. Гаврилов


    Скачать 0.52 Mb.
    НазваниеА. В. Гаврилов
    Дата21.03.2021
    Размер0.52 Mb.
    Формат файлаpdf
    Имя файлаAISystems.pdf
    ТипУчебное пособие
    #186935
    страница2 из 7
    1   2   3   4   5   6   7

    1.3. Интеллектуальный доступ к данным
    В настоящее время растет количество информации, хранимой в электрон- ном виде. Компьютерные сети представляют пользователям огромные массивы информации, причем со временем экспоненциально растет как количество этой информации, так и число людей, получивших к ней доступ, благодаря сети
    Internet.
    Модель состояния мира
    Абстрактные знания
    Семантический анализ
    Синтаксический анализ
    Коррекция и пополнение знаний
    Модель мира
    Подсистема восприятия
    Подсистема управления
    Предварительная обработка информации
    Датчики
    Исполнительская подсистема
    Планирование действий
    Планирование движений
    Управление приводами

    11
    Появилось также огромное количество поисковых систем, облегчающих доступ к ней. Как правило, они используют ту или иную модификацию поиска по ключевым словам. Большое количество информации хранится в реляцион- ных таблицах различных типов, к которым доступ осуществляется посредством специальных языков типа SQL.
    Для того, чтобы избавиться от неудобств, связанных с ограниченностью языка SQL и сложностью поиска информации по ключевым словам в локаль- ных и распределенных в Internet базах данных, разрабатываются средства дос- тупа к данным на естественном языке.
    Применительно к локальной базе данных комплекс из таких средств и са- мой БД может быть назван интеллектуальным банком данных. Его обобщенная структура показана на рис. 2.
    Рис. 2. Структура интеллектуального банка данных
    База знаний содержит знания о языке общения, а также о предметной об- ласти, необходимые для понимания запроса к базе данных. Лингвистический процессор должен обеспечивать синтаксический, семантический анализ и прагматический анализ запроса (вопроса) на естественном языке. В идеале он должен реализовывать "активный диалог" с пользователем, в ходе которого инициатива должна переходить от пользователя к системе и обратно с целью уточнения вопроса.
    Примером программного обеспечения для доступа к базам данных на ес- тественном языке является пакет InBase, разработанный в Российском научно- исследовательском институте искусственного интеллекта (Москва – Новоси- бирск).
    СУБД
    Лингвистический процессор
    Пользователь
    БД
    БЗ

    12
    1.4. Интеллектуальные системы обработки текстовой информации
    В настоящее время все чаще появляются прикладные программы для ав- томатизации офисной деятельности, претендующие на право называться ин- теллектуальными, т.е. использующими методы искусственного интеллекта. На исследования в области искусственного интеллекта с целью создания таких программ ведущие компании, производящие ПО, в частности Microsoft, тратят миллионы и миллиарды долларов.
    Этот класс прикладных систем искусственного интеллекта можно разде- лить на следующие типы программ:

    текстовые редакторы со встроенными средствами проверки орфогра- фии и стилистики (например, всем известная программа Word фирмы Micro- soft);

    программы-переводчики (например, Stylus и ПРОМТ фирмы ПРОМТ);

    программы для распознавания и ввода печатных и рукописных доку- ментов (программные продукты GuniForm и FineReader российских фирм
    Cognitive Technologies и ABBYY, соответственно);

    программы для поиска информации в электронных документах по смыслу, в том числе, в Internet (например, программный продукт "Следопыт"
    российской фирмы MediaLingua);

    программы для реферирования текстовых документов (например, Tex- tAnalist фирмы "Микросистемы").

    программы для обработки и классификации по смыслу электронной почты (например, программа MLExpert фирмы MediaLingua).
    Те или иные из перечисленных выше типов программ встраиваются в со- временные системы документооборота (например, ЕВФРАТ фирмы Cognitive
    Technologies).
    1.5. Экспертные системы
    Экспертные системы – это прикладные системы ИИ, в которых база зна- ний представляет собой формализованные эмпирические знания высококвали- фицированных специалистов (экспертов) в какой-либо узкой предметной об- ласти. Экспертные системы предназначены для замены при решении задач экс- пертов в силу их недостаточного количества, недостаточной оперативности в решении задачи или в опасных (вредных) для них условиях.
    Обычно экспертные системы рассматриваются с точки зрения их приме- нения в двух аспектах: для решения каких задач они могут быть использованы и в какой области деятельности. Эти два аспекта накладывают свой отпечаток на архитектуру разрабатываемой экспертной системы.
    Можно выделить следующие основные классы задач, решаемых эксперт- ными системами:

    диагностика;

    13

    прогнозирование;

    идентификация;

    управление;

    проектирование;

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

    медицина;

    вычислительная техника;

    военное дело;

    микроэлектроника;

    радиоэлектроника;

    юриспруденция;

    экономика;

    экология;

    геология (поиск полезных ископаемых);

    математика.
    Примеры широко известных и эффективно используемых (или использо- ванных в свое время) экспертных систем:
    DENDRAL

    ЭС для распознавания структуры сложных органических молекул по результатам их спектрального анализа (считает- ся первой в мире экспертной системой);
    MOLGEN

    ЭС для выработке гипотез о структуре ДНК на основе экс- периментов с ферментами;
    XCON

    ЭС для конфигурирования (проектирования) вычислитель- ных комплексов VAX 11 в корпорации DEC в соответствии с заказом покупателя;
    MYCIN

    ЭС диагностики кишечных заболеваний;
    PUFF

    ЭС диагностики легочных заболеваний;
    MACSYMA

    ЭС для символьных преобразований алгебраических выра- жений;
    YES/MVS

    ЭС для управления многозадачной операционной системой
    MVS больших ЭВМ корпорации IBM;
    DART

    ЭС для диагностики больших НМД корпорации IBM;
    PROSPECTO
    R

    ЭС для консультаций при поиске залежей полезных иско- паемых;
    POMME

    ЭС для выдачи рекомендаций по уходу за яблоневым са- дом;
    набор экспертных систем для управления планированием, запуском и полетом космических аппаратов типа "челнок";
    AIRPLANE

    экспертная система для помощи летчику при посадке на авианосец;

    14
    ЭСПЛАН

    ЭС для планирования производства на Бакинском нефтепе- рерабатывающем заводе;
    МОДИС

    ЭС диагностики различных форм гипертонии;
    МИДАС

    ЭС для идентификации и устранения аварийных ситуаций в энергосистемах;
    NetWizard

    ЭС для проектирования локальных систем.

    15
    2. МЕТОДЫ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ
    2.1. Виды знаний
    "Не в совокупности ищи
    единства, но более в
    единообразии разделения".
    Козьма Прутков
    В основе представления знаний лежат понятия семиотики – науки о знако- вых системах (искусственных и естественных языках). В семиотике различают следующие разделы: синтактику, имеющую дело со структурой (синтаксисом)
    знаковых систем, семантику, рассматривающую смысл (интерпретацию) знако- вых систем (другими словами, соответствие знаковой системы другой знаковой системе), прагматику, имеющую дело с целенаправленностью знаковых систем.
    Другими словами синтактика отвечает на вопрос: как выглядит знание (как оно структурировано или как формализовано), семантика отвечает на вопрос "что означает знание", прагматика отвечает на вопрос "зачем" или "почему" необхо- димо (или передается) знание. Таким образом, имея дело со "знанием" необхо- димо уметь различать его синтаксис, семантику и прагматику. В этом разделе
    (методы представления знаний) рассматривается в основном синтаксис (струк- тура знаний). Методы обработки знаний в основном характеризуют их семан- тику. Прагматика знаний в основном выражается в архитектуре интеллектуаль- ной системы – особенностях реализации методов представления и обработки знаний, реализации интерфейсов системы с внешним миром.
    С точки зрения глубины различают экстенсиональные (конкретные, по- верхностные) и интенсиональные (абстрактные, глубинные) знания. Экстен- сиональные знания представляют собой факты об объектах реального мира.
    Примером их являются реляционная база данных, утверждения вида:
    "Иванов имеет автомобиль";
    "Расстояние от Земли до Солнца 150 млрд. км";
    "Треугольник – есть геометрическая фигура".
    Интенсиональные знания представляют собой правила, связывающие ме- жду собой факты, или закономерности реального мира. Примерами их являют- ся продукционная база знаний (см. 2.3), утверждения вида:
    "человек может иметь собственность, например, автомобиль";
    "планета, на которой может быть жизнь, должна находиться от
    Солнца на расстоянии 100-300 млрд. км";
    "если геометрическая фигура имеет три угла, то это треугольник".
    Иногда разделение на экстенсиональные и интенсиональные знания ус- ловно и зависит от уровня абстрагирования. Например, при необходимости оперировать с правилами типа "если ... то" как с фактами, они выступают в ро- ли экстенсиональных знаний, а интенсиональные знания, предназначенные для

    16
    этого, обычно называют метазнаниями. Примером метазнания может быть ут- верждение "Если мы имеем дело с Евклидовой геометрией, то справедливо утверждение "Сумма углов треугольника равна 180 градусов".
    По используемым методам представления знания подразделяются на дек- ларативные и процедурные.
    Декларативные знания содержат описание объектов и отношений между ними. Их интерпретация или обработка осуществляется программами. Говорят,
    что при декларативном представлении семантические и синтаксические знания отделены друг от друга, что придает этой форме представления большую по сравнению с другими универсальность и общность.
    Процедурные знания содержат в явном виде описание процедур, т.е. яв- ляются самоинтерпретируемыми. В этих процедурах могут быть запрограмми- рованы действия, связанные с изменением предметной области и ее модели в базе знаний. При этом текущее состояние представляется в виде набора спе- циализированных процедур, обрабатывающих определенный участок базы знаний. Это позволяет отказаться от хранения описаний всех возможных со- стояний предметной области, требуемых для работы системы ИИ, и ограни- читься хранением исходного состояния и процедур, обеспечивающих преобра- зование модели предметной области, т.е. порождение всех других состояний из исходного. Процедурные представления реализуются, как правило, специаль- ными языками программирования (например, PLANNER [19]). Включение се- мантики в базу знаний позволяет повысить эффективность поиска решений с использованием базы знаний. Но это достигается ценой специализации базы знаний, ориентации ее на особенности решаемых задач. Процедурные знания уступают декларативным в возможностях для накопления и коррекции знаний.
    Разделение методов представления знаний на процедурные и декларатив- ные является в определенной степени условным. "Чисто" декларативные или процедурные знания практически не используются. Пример чисто процедурно- го знания – программа, написанная на алгоритмическом языке (но не объектно- ориентированном). Пример чисто декларативного знания – реляционная база данных. В конкретных реализациях баз знаний присутствуют элементы и тех и других способов представления знаний.
    Наиболее распространенными вариантами декларативного представления являются семантические сети и фреймы. Иногда говорят о реляционных базах знаний, не отличая их существенно от соответствующих баз данных. Среди процедурных методов представления знаний выделяются средства работы со списковыми структурами и исчисление высказываний первого порядка.
    По степени формализации различают логические и эвристические методы представления знаний. Логические методы могут быть описаны в виде фор- мальной теории (системы)
    S=,

    17
    где: B
    – алфавит,
    F – формулы-факты,
    A – формулы-аксиомы,
    R – правила-вывода.
    Примеры логических методов представления знаний: исчисление выска- зываний (логика предикатов) 1-го порядка, различные псевдофизические логи- ки, продукционные модели представления знаний.
    Эвристические методы представления знаний основаны на применении ряда приемов, принципов или подходов для описания знаний в удобном для понимания человеком или обработки компьютером виде. Примерами таких ме- тодов являются: семантические сети, фреймы, объектно-ориентированное представление. Эвристические методы являются более высокоуровневыми ме- тодами представления знаний и, как правило, могут быть описаны с помощью какого-либо логического метода с потерей ряда свойств, например, таких как наглядность, обозримость, универсальность.
    Несколько в стороне от логических и эвристических методов представле- ния и обработки знаний находятся нейронные сети. Их обычно не относят к методам инженерии знаний, а рассматривают в рамках нейрокибернетики
    (нейроинформатики). Их принципиальным отличием от методов инженерии знаний является то, что в них знания содержатся не в формализованном и ло- кализованном виде, а в виде состояния множества нейроподобных элементов и распределены между этими элементами. Нейронная сеть обладает, как говорят,
    голографическими свойствами, т.е. порча какого-либо элемента распределен- ного в них знания не приводит к порче всего знания, а всего лишь – к некото- рому ухудшению его характеристик.
    2.2. Логика предикатов первого порядка
    ЛОГИКА – искусство мыслить
    и рассуждать в строгом со-
    ответствии с ограниченно-
    стью и несостоятельностью
    человеческих заблуждений.
    А. Бирс. Словарь Сатаны
    Логика предикатов является развитием алгебры логики (или логики выска- зываний). В логике высказываний для обозначения фактов используются буквы
    (имена или идентификаторы), не имеющие структуры, и принимающие значе- ния "1" или "0" ("да" или "нет"). В логике предикатов факты обозначаются n- арными логическими функциями – предикатами F(x
    1
    ,x
    2
    ,...,x m
    ), где F – имя пре- диката (функтор) и x i
    – аргументы предиката. Имена предикатов неделимы, т.е.
    являются так называемыми атомами. Аргументы могут быть атомами или функциями f(x
    1
    ,x
    2
    ,...,x m
    ), где f – имя функции, а x
    1
    ,...,x m
    , так же как и аргументы

    18
    предикатов являются переменными или константами предметной области. В
    результате интерпретации (по-другому, конкретизации) предиката функторы и аргументы принимают значения констант из предметной области (строк, чисел,
    структур и т.д.). При этом следует различать интерпретацию на этапе описания предметной области (создания программ и баз знаний) и на этапе решения за- дач (выполнения программ с целью корректировки или пополнения баз зна- ний). В дальнейшем при работе с предикатами мы будем иметь дело с резуль- татом их интерпретации в первом смысле, т.е. с их привязкой к некоторой предметной области.
    Предикат с арностью n > 1 может использоваться в инженерии знаний для представления n-арного отношения, связывающего между собой n сущностей
    (объектов) – аргументов предиката. Например, предикат отец("Иван", "Петр
    Иванович") может означать, что сущности "Иван" и "Петр Иванович" связаны родственным отношением, а именно, последний является отцом Ивана или на- оборот. Уточнение семантики этого предиката связано с тем, как он использу- ется, т.е. в каких операциях или более сложных отношениях он участвует и ка- кую роль в них играют его 1-й и 2-й аргументы. Предикат компьютер(память,
    клавиатура, процессор, монитор) может обозначать понятие "компьютер" как отношение, связывающее между собой составные части компьютера.
    Предикат с арностью n=1 может представлять свойство сущности (объек- та), обозначенного аргументом или характеристику объекта, обозначенного именем предиката. Например, кирпичный(дом), оценка(5), улица("Красный проспект"), дата_рождения("1 апреля 1965 г."), быстродействие("1 Мфлопс").
    Предикат с арностью n=0 (без аргументов) может обозначать событие,
    признак или свойство, относящееся ко всей предметной области. Например,
    "конец работы".
    При записи формул (выражений) помимо логических связок "конъюнк- ция" (&), "дизъюнкция" (

    ), "отрицание" (
    ¬
    ), "следование" ("импликация")
    (

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

    ) и существования (

    ). Например, выражение

    (x,y,z) (отец(x,y) & (мать(x,z))

    родители(x,y,z) означает, что для всех зна- чений x,y,z из предметной области справедливо утверждение "если y – отец и z
    – мать x , то y и z – родители x; выражение (

    x) (студент(x) & долж- ность(x,"инженер") означает, что существует хотя бы один студент, который работает в должности инженера.
    Переменные при кванторах называются связанными переменными в отли- чие от свободных переменных. Например, в выражении
    (

    x) (владелец(x,y)

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

    19
    Решение задач в логике предикатов сводится к доказательству целевого утверждения в виде формулы или предиката (теоремы), используя известные утверждения (формулы) или аксиомы.
    В конце 60-х годов Робинсоном для доказательства теорем в логике пре- дикатов был предложен метод резолюции, основанный на доказательстве "от противного". Целевое утверждение инвертируется, добавляется к множеству аксиом и доказывается, что полученное таким образом множество утверждений является несовместным (противоречивым). Для выполнения доказательства ме- тодом резолюции необходимо провести определенные преобразования над множеством утверждений, а именно, привести их к совершенной конъюнктив- ной нормальной форме (СКНФ).
    Приведение формул к СКНФ состоит из следующих этапов, легко реали- зуемых на ЭВМ.
    1. Устранение импликации с помощью замены ее на отрицание и дизъ- юнкцию применением формулы
    A

    B =

    A \/ B;
    2. Ограничение области действия символов отрицания, т.е. продвижение отрицания внутрь формулы с помощью закона де Моргана, т.е. применяя фор- мулы
    ¬
    = ¬ ∨ ¬
    ( & ) (
    ) (
    )
    A B
    A
    B ;
    ¬ ∨
    = ¬
    ¬
    (
    ) (
    )&(
    )
    A B
    A
    B ;
    ¬ ∃
    = ∀ ¬
    ¬ ∀
    = ∃ ¬
    ( ) ( ) (
    )
    ( );
    (
    ) ( ) ( )
    ( ).
    x F x
    x
    F x
    x F x
    x
    F x
    3. Стандартизация или разделение переменных.
    На этом этапе в каждой формуле переименовываются связанные перемен- ные так, чтобы они стали уникальными для каждого квантора, с которым они связаны. Это делается на основании того факта, что связанную переменную в области действия квантора можно заменить на любую другую, не встречаю- щуюся переменную, не изменив этим значение истинности формулы.
    Например, (

    x) (P(x) \/ Q(y)) & (

    x) (F(x))
    преобразуется в (

    x) (P(x) \/ Q(y)) & (

    z) (F(z)).
    4. Исключение кванторов существования.
    На этом этапе квантор существования заменяется так называемой функци- ей Сколема g(x) или перечислением предикатов с аргументами – константами из области определения переменной-аргумента.
    Примеры преобразования:
    исходная формула
    (

    x) y
    (

    x) (

    y) z
    (

    x) (F(x))
    результирующая формула g(x)
    g(x,y)
    F(a),F(b)...,

    20
    где a и b – константы. Функция Сколема задает отображение областей опреде- ления других переменных на область определения переменной, связанной с квантором существования.
    5. Вынесение кванторов всеобщности в начало формулы.
    6. Исключение кванторов всеобщности.
    Исключение достигается просто удалением кванторов в предположении,
    что если в формуле есть некоторая переменная x, то формула справедлива для всех ее значений из области определения.
    7. Собственно приведение формулы к СКНФ применением закона дистри- бутивности
    A
    B C
    A B
    A C

    =


    ( & ) (
    )&(
    ) .
    8. Исключение символов &. Это достигается заменой формулы вида
    (A&B) на множество формул вида {A,B}.
    Предположим надо привести к СКНФ формулу
    )]}}
    (
    )
    ,
    (
    )[
    (
    &
    ))]
    ,
    (
    (
    )
    (
    )[
    {(
    )
    (
    ){
    (
    y
    P
    y
    x
    Q
    y
    y
    x
    f
    P
    y
    P
    y
    x
    P
    x


    ¬




    Исключив импликацию, получим
    (
    ){
    ( ) {(
    )[
    ( )
    ( ( , ))]& (
    )[
    ( , )
    ( )]}}
    ∀ ¬
    ∨ ∀ ¬

    ¬ ∀ ¬

    x
    P x
    y
    P y
    P f x y
    y
    Q x y
    P y
    Продвинув внутрь отрицание, получим
    (
    ){(
    ( )&{(
    )[
    ( )
    ( ( , ))]&[( )[ ( , )&
    ( )]}}

    ¬
    ∀ ¬


    ¬
    x
    P x
    y
    P y
    P f x y
    y Q x y
    P y
    Разделив переменные, получим
    (
    ){(
    ( )&{(
    )[
    ( )
    ( ( , ))]&[(
    )[ ( , )&
    ( )]}}.

    ¬
    ∀ ¬


    ¬
    x
    P x
    y
    P y
    P f x y
    w Q x w
    P w
    Заменив переменную w на сколемовскую функцию g(x), исключим кван- тор существования и получим
    (
    ){(
    ( )&{(
    )[
    ( )
    ( ( , ))]&[ ( , ( ))&
    ( ( ))]}}.

    ¬
    ∀ ¬

    ¬
    x
    P x
    y
    P y
    P f x y
    Q x g x
    P g x
    Вынесем кванторы всеобщности в начало формулы и получим
    (
    )(
    ){(
    ( )&{[
    ( )
    ( ( , ))]&[ ( , ( ))&
    ( ( ))]}}.
    ∀ ∀
    ¬
    ¬

    ¬
    x
    y
    P x
    P y
    P f x y
    Q x g x
    P g x
    Применив закон дистрибутивности, получим
    (
    )(
    ){[ ( )
    ( )
    ( ( , ))]&[
    ( )
    ( , ( ))]&
    &[
    ( )
    ( ( ))]}.
    ∀ ∀
    ∨ ¬

    ¬

    ¬
    ∨ ¬
    x
    y
    P x
    P y
    P f x y
    P x
    Q x g x
    P x
    P g x
    Исключив кванторы всеобщности и заменив конъюнкцию формул их множеством, получим множество следующих формул (предложений):
    ¬
    ∨ ¬

    ¬

    ¬
    ∨ ¬
    P x
    P y
    P f x y
    P x
    Q x g x g x
    P x
    P g x
    ( )
    ( )
    [ ( , )],
    ( )
    [ , ( , ( )],
    ( )
    [ ( )].

    21
    Логика предикатов 1-го порядка легла в основу языков логического про- граммирования, самым распространенным из которых является Prolog (различ- ные его диалекты). Точнее, язык Prolog основан на модифицированной логике предикатов 1-го порядка (логике Хорна или логике дизъюнктов). Логика Хорна отличается от классической логики предикатов 1-го порядка тем, что она опе- рирует уже почти преобразованными к применению метода резолюции форму- лами без кванторов всеобщности и существования, представляющими собой множество дизъюнктов (предложений или клауз Хорна). "Почти" объясняется тем, что клаузы Хорна содержат импликацию и выглядят как
    A
    B

    ,
    где A
    – предикат,
    B – предикат или конъюнкция или дизъюнкция предикатов (такое пред- ставление части B предложения возможно, т.к. конъюнкция и дизъюнкция рас- сматриваются как частные случаи предикатов).
    Доказательство некоторого утверждения (целевого предиката) в логиче- ском программировании сводится к процессу унификации, с помощью которо- го происходит рекурсивный перебор всех возможных подстановок значений переменных в целевом предикате, управляемый ограничениями, заданными множеством предложений. Множество предложений обычно в Прологе назы- вается базой данных Пролога. База данных состоит из предложений-правил вывода вида A
    B

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

    имена предикатов совпадают;

    количество параметров у предикатов совпадает;

    каждая пара сравниваемых параметров сопоставима.
    Последнее условие для некоторой пары параметров истинно при трех ва- риантах:

    параметры являются константами (любого типа) и они равны;

    один параметр из пары является константой, а другой – переменной, в этом случае переменной присваивается значение константы;

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

    22
    При унификации целевого предиката с правилом, сопоставлению подвер- гается сначала левая часть правила, а затем, в случае успешной унификации,
    последовательно проверяются предикаты, находящиеся в правой части. Т.е.
    правило в Прологе с точки зрения унификации рассматривается как предикат с именем "::=" (импликация) и с параметрами A и B, а B рассматривается в свою очередь как предикат "," (конъюнкция) или ";" (дизъюнкция) с параметрами- предикатами правой части правила.
    Cледующий фрагмент программы (на Эдинбургской версии Пролога)
    описывает поведение гипотетического робота-манипулятора и может являться частью программного обеспечения его системы управления.
    /* описание объектов, с которыми работает робот */
    куб("кубик", 10).
    цилиндр("прут", 100, 3).
    /* описание их местоположения */
    объект("кубик", "стол").
    объект("прут", "коробка").
    /* описание некоторых действий робота (команд) */
    взять(_):- в_схвате(_), /* проверка занятости схвата */
    write("Схват занят"),
    nl,
    !.
    взять(X):- объект(X,Y), /*определение положения объекта X*/
    повернуть_к(Y),
    выбрать_объект(X,Coord_X,Coord_Y),
    позиционировать_схват(Coord_X,Coord_Y),
    взять, /* включение схвата */
    assert(в_схвате(X)). /*запоминание что в схвате*/
    положить(X,Y):- в_схвате(Z), /* определение, что в схвате*/
    Z<>X,
    write("Схват занят"),
    nl,
    !.
    положить(X,Y):- в_схвате(X),
    повернуть_к(Y),
    центр(Y, Coord_X,Coord_Y),
    позиционировать_схват(Coord_X,Coord_Y),
    отпустить,
    retract(в_схвате(X)),
    !.
    положить(X,Y):- not(в_схвате(_)),
    объект(X,Y),
    write("Объект "),

    23
    write(X),
    write(" уже находится в "),
    write(Y),
    nl,
    !.
    положить(X,Y):- not(в_схвате(_)),
    взять(X),
    положить(X,Y).
    Здесь операторы (встроенные предикаты) assert(X) и retract(X) использу- ются для добавления и удаления предиката-факта X, соответственно, оператор
    ! используется для аннулирования попыток альтернативной унификации при неуспешной текущей унификации.
    К недостаткам логики предикатов 1-го порядка как метода представления знаний можно отнести следующее:

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

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

    детерминированность логического вывода, т.е. отсутствие возможности оперирования с нечеткими знаниями.
    Но логику предикатов 1-го порядка можно использовать как основу для конструирования более сложных и удобных логических методов представления знаний. В этом качестве она используется в модальных и псевдофизических логиках.
    1   2   3   4   5   6   7


    написать администратору сайта