
- •Тема 1. Основные понятия искусственного интеллекта.
- •Основные понятия искусственного интеллекта.
- •Базы данных и знаний.
- •Основные области применения и задачи интеллектуальных систем
- •Тема 2. Проблема представления знаний
- •Тема 3. Продукционные системы. Фреймы. Исчисление предикатов. Нейронные сети. Генетические алгоритмы
- •3.1. Продукционные системы
- •3.2. Фреймы
- •3.3. Исчисление предикатов
- •3.4. Нейронные сети
- •3.5. Генетические алгоритмы
- •Тема 4. Языки искусственного интеллекта
- •Тема 5. Искусственный интеллект и естественный язык
- •5.1. Сущность проблемы обработки естественного языка
- •5.2. Основная проблема обработки естественного языка
- •5.3. Распознавание языка
- •Морфологический анализ.
- •Синтаксический анализ.
- •Семантический анализ.
- •Результат
- •Проблемный анализ.
- •Синтез текста.
- •Основные модели лингвистических систем.
- •Стратегия разбора и синтеза текстов в зависимости от типа языка.
- •2. Морфологический (лексико-грамматический) анализ.
- •3.Синтаксический анализ.
- •Модели синтаксического анализа, применяемые в зарубежных промышленных решениях.
- •1. Модели, основанные на Link Grammar.
- •2. Модели, использующие структуры уровня именных и глагольных групп.
- •Лингвистический процессор ю.Д. Апресяна, и.М. Богуславского и л.Л. Иомдина.
- •Другой вариант модели синтаксического анализатора рассмотрим на примере проекта «диалинг».
- •4. Семантический анализ. Реализация семантического анализа в системе диалинг
- •Реализация семантического анализа в лингвистическом процессоре ю.Д. Апресяна, и.М. Богуславского и л.Л. Иомдина.
- •Реализация семантического анализатора в системе MyLingvo.
- •5. Структуры хранения данных и знаний.
- •Исчисление предикатов. Общие понятия.
- •Приведение произвольной формулы к множеству дизъюнктов.
- •Унификация и ее алгоритм.
- •Правило резолюций и его применение.
Унификация и ее алгоритм.
Подстановкой будем называть множество вида {x1/t1,…,xn/tn}, где для всех i=1..n xi – переменная, а ti – терм, причем xi<>ti. То есть имеет место отображение переменных в термы. При этом все переменные, входящие в подстановку различны. Символом ? будем обозначать пустую подстановку. Подстановка, в которой все термы основные называется основной подстановкой.
Простое выражение – это терм или атомная формула. Если А – простое выражение, а П – подстановка, то АП получается путем одновременной замены всех вхождений каждой переменной из А соответствующим термом. То есть каждое вхождение xi в формулу заменяется на ti. АП называется примером (частным случаем) выражения А. Пусть П1 и П2 – подстановки, П1 = {x1/t1,…,xn/tn}, П2 = {y1/s1,…,yn/sn}. Композиция П1П2 получается из множества {x1/t1 П2,…,xn/tn П2, y1/s1,…,yn/sn } после удаления пар xi/ti П2, где xi = ti П2 и пар, где yi совпадает с одним из xi. Здесь выражение xi/ti П2 означает последовательную замену в формуле всех вхождений xi на ti и ti на некое sk, если ti=yk.
Говорят, что подстановка П1 более общая, чем подстановка П2, если , если существует подстановка П3 такая, что П2=П1П2. Подстановка П называется унификатором простых выражений А и Б, если АП=БП. Сами выражения А и Б в этом случае называют унифицируемыми. Соответственно наиболее общим унификатором двух простых выражений будет наиболее общая из подстановок, являющихся унификаторами для данных выражений. Пусть S – некое множество простых выражений. Множеством разногласий (рассогласований) для S называется множество d(S), состоящее из элементов S начиная с первой позиции слева, в которой не во всех выражениях из S стоит один и тот же символ, и следующих после него подвыражений из выражений S.
Например: Пусть S={f(p(x),h(y),a}, f(p(x),z,b), f(p(x),h(y),a)}. Тогда множество разногласий: D(S)={h(y),z } ( ??????)
Опишем алгоритм поиска наиболее общего унификатора для конечного множества простых выражений S.
Шаг 1. Полагаем к=0, П0=<Пустая подстановка>
Шаг 2. Если SПк содержит один элемент, то Пк – наиболее общий унификатор, алгоритм прерывается. Иначе – переходим к шагу 3.
Шаг 3. Если d(SПк) содержит некоторую переменную x и терм t такие, что x не входит в t, то полагаем П к+1=Пк{x/t}. Иначе множество S не унифицируемо и прерываем алгоритм.
Шаг 4. к=к+1.
Шаг 5. Переходим к шагу 2.
Правило резолюций и его применение.
Правило резолюций состоит в следующем. Если одна и та же атомная формула входит в один из дизъюнктов положительно, а в другой отрицательно, то эти формулы можно вычеркнуть, а дизъюнкты объединить. Исходные дизъюнкты называются родительскими , результирующий дизъюнкт – револьвентой, а вычеркнутые формулы – контрарными литералами. Правило резолюций можно выразить так:
(А или В) и (Б или НЕ(В)) <-> А или Б.
Пусть есть два дизъюнкта Д1 и Д2, у которых нет общих переменных, Л1 – литерал, входящий в Д1, а Л2 – литерал, входящий в Д2. Пусть литералы имеют наибольший общий унификатор П. Тогда дизъюнкт (Д1П-Л1П)или (Д2П-Л2П) называется револьвентой дизъюнктов Д1 и Д2. Тогда правило резолюций можно представить в виде:
(А или Л1) и (Б или НЕ(Л2)) <-> (А или Б)П.
Здесь П – наибольший общий унификатор, Метод резолюций является обобщением метода доказательства от противного: мы добавляем отрицание формулы-гипотезы в множество аксиом и пытаемся вывести из него противоречие.