- Главная
- Информатика
- Основы искусственного интеллекта
Содержание
- 2. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ. Логическое программирование представляет собой нетрадиционную
- 3. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ. Правило резолюции является полным множеством
- 4. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ. Наиболее полное и строгое выражение
- 5. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ. Под представлением знаний будем понимать
- 6. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ. Программа на языке Пролог состоит
- 7. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ. Объекты данных в Прологе называются
- 8. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ. Простейшая Пролог-программа – это множество
- 9. Пример. Родственные отношения. родитель (пам, боб) родитель (том, боб) родитель (том, лиз) родитель (боб, энн) родитель
- 10. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ. Программа на Турбо Прологе может
- 11. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ. Раздел domains В разделе определяются
- 12. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ. Раздел predicates В разделе определяются
- 13. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ. Раздел clauses В этом разделе
- 14. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ. Правило – это утверждение вида:
- 15. project "project_name" % имя проекта CONSTANTS % секция констант const1 = definition const2 = definition [GLOBAL]
- 16. Конкретному применению логической программы соответствует понятие запроса (цели) – например, каково значение функции, заданной логической программой,
- 19. Скачать презентацию
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
Логическое
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
Логическое
Логическая программа - это набор утверждений (“деклараций”), определяющих базу данных (знаний), в которых хранятся соответствующие объекты и заданные на них отношения.
Логическое программирование возникло главным образом благодаря успехам в автоматическом доказательстве теорем, в частности, благодаря разработке правила резолюции.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
Как показал автор правила резолюции Робинсон, метод резолюций является корректным и полным в том смысле, что пустой дизъюнкт выводим из входного множества дизъюнктов S посредством некоторой конечной последовательности шагов резолюции тогда и только тогда, когда множество S невыполнимо.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
(PROLOG – PROgramming in LOGic).
Идея использования логики в качестве языка программирования возникла в начале 70-х гг. Теоретические аспекты были разработаны Робертом Ковальским, экспериментальная демонстрационная система - Маартеном ван Эмденом (оба - Эдинбург), реализация выполнена Аленом Колмероэ (Марсель), Девидом Уорреном (Эдинбург).
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
Синтаксис представления специфирует набор правил, регламентирующих объедение символов для формирования выражений на языке представления. При этом смысл имеют только хорошо сформированные выражения. Общепринятым в области искусственного интеллекта является синтаксис в виде конструкции предикат-аргумент, которая имеет вид: <фраза>::=<предикат>(<аргумент>, …, <аргумент>)
В этой конструкции за k-местным предикатом должны следовать k аргументов.
Семантика представления специфирует, как должно интерпретироваться выражение, построенное в соответствии с синтаксическими правилами, т.е. как из его формы можно извлечь какой-то смысл. Спецификация обычно выполняется присвоением смысла отдельным символам, а затем индуцированием присвоения в более сложных выражениях. Так, присваивая смысл символам at, робот, комната1, можно сказать, что выражение at(робот, комната1) означает: робот находится в комнате1 (но не наоборот – комната1 находится в роботе).
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
Простейшим видом утверждения является факт. Факты используются для констатации того, что выполнено некоторое отношение между объектами. Другое название отношения – предикат.
Факт, состоящий из структуры с одним элементом, обычно описывает некоторое свойство. Например, факт "студент ("Иванов")" определяет, что объект "Иванов" имеет свойство "быть студентом". Этот факт можно интерпретировать на естественном языке так: "Иванов есть студент" или более строго так: "Высказывание "Иванов есть студент" истинно".
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
Факты с более чем одним элементом описывают взаимосвязи объектов (отношения между ними), например, факт "имеет (саша, машина)" определяет, что объекты "саша" и "машина" находятся между собой в таком отношении, что второй является собственностью первого. Этот факт интерпретируется на русском языке так: «Саша имеет машину".
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
Пример. Родственные отношения.
родитель (пам, боб)
родитель (том, боб)
родитель (том, лиз)
родитель
Пример. Родственные отношения.
родитель (пам, боб)
родитель (том, боб)
родитель (том, лиз)
родитель
родитель (боб, пат)
родитель (пат, джим)
?- родитель (боб, пат). yes
?- родитель (лиз, пат). no
?- родитель (том, бен). no
?- родитель (Х, лиз). Х=том
(Кто родитель лиз?)
?- родитель (боб, Х). Х=энн Х=пат
(Кто дети боба?)
?- родитель (Х, У). (Кто чей родитель?)
Х=пам У=боб
Х=том У=боб
Х=том У=лиз …….
?- родитель (У, джим), родитель (Х, У). (Кто родитель родителя джима)
Х=боб У=пат
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
Программа на Турбо Прологе может состоять из следующих разделов:
domains % определение типов данных
predicates % определение предикатов
clauses % определение фактов и правил
Перед разделом domains может быть раздел constants, в котором определяются необходимые константы.
Перед разделом clauses может располагаться раздел goal, в котором определяется цель. Цель может состоять из нескольких подцелей.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
В разделе определяются глобальные и локальные типы данных. Возможно определение ссылочного типа (reference).
В Турбо Прологе изначально определены простые типы данных:
char Отдельный символ, заключенный в апострофы
Integer Целое число в диапазоне от -32768 до 32767
real Число, может быть представлено в экспоненциальной форме
ref Ссылочный тип, используемый во внешней базе данных
symbol Последовательность букв, цифр и знаков подчеркивания, которая начинается со строчной буквы или заключена в кавычки
string Любая последовательность символов, которая заключена в кавычки
db_selector Назначенный пользователем селектор для внешней базы данных
file Внутреннее имя файла (файловый домен)
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
В разделе определяются предикаты (отношения). Каждый предикат определяется со своим именем и своими аргументами (параметрами). Использование параметров по назначению можно задавать. Передоказуемый предикат описывается как nondeterm. Добавив отсечение и объявив determ, можно предикат превратить в детерминированный. Турбо Пролог позволяет присоединить к программе процедуры, написанные на языках C, Pascal, Fortran или Assembler. Процедуры, написанные на этих языках, следует объявлять в Пролог-программе как глобальные. Для трансляции программы необходимо указывать нужный объектный файл.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
В этом разделе определяются факты и правила. Факт представляется именем предиката, за которым следуют аргументы, заключенные в круглые скобки. Заканчивается запись факта точкой.
Правило состоит из заголовка правила и тела. Заголовок представляет собой предикат, тело состоит из термов, которые могут быть связаны между собой словами or или and. Между телом и заголовком стоит слово if. Каждое правило заканчивается точкой. Имена переменных должны начинаться с прописной буквы и могут содержать только буквы, цифры или знак подчеркивания - "_". Максимальная длина имени - 250 знаков.
Особую роль играют анонимные переменные. Они представляются собой одиночным знаком подчеркивания.
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
Правило
ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА ПРОЛОГ.
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ С ПОМОЩЬЮ ФАКТОВ И ПРАВИЛ.
Правило
Заголовок: - тело.
Правило – это факт, значение истинности которого зависит от истинностных значений условий, образующих тело правила. Заголовок правила имеет точно такую же форму, как и факт. Каждое условие, входящее в тело, называется подцелью. Для того, чтобы заголовок правила оказался истинным, необходимо, чтобы каждая подцель, входящая в тело, была истинной. Таким образом, правило определяет некоторое отношение при условии, что выполняются определенные отношения между объектами.
Например, внук (X, Z):- родитель (Y, X), родитель (Z,Y)
Правило, в состав которого входят переменные, можно рассматривать как неявное определение множества фактов.
project "project_name" % имя проекта
CONSTANTS % секция констант
const1 = definition
project "project_name" % имя проекта
CONSTANTS % секция констант
const1 = definition
[GLOBAL] DOMAINS
dom [,dom] = [reference] declaration1; declaration2
% reference -ссылочный домен
listdom = dom* % список
dom =
[GLOBAL] DATABASE [ -
[determ] pred1(....)
pred2(.....)
GLOBAL PREDICATES
[determ|nondeterm] pred1(.........)
-(i,i,o,..)(i,o,i,..) [ language c|pascal|fortran ] [ as "name" ]
pred2(........)
PREDICATES
[determ|nondeterm] pred1(.........)
pred2(........)
CLAUSES
p(....):-p1(...), p2(.....), ... .
p(....):-p1(...), p2(.....), ... .
Include "filename" % включение файла в программу
Конкретному применению логической программы соответствует понятие запроса (цели) – например, каково
Получив запрос, или цель для доказательства, механизм логического вывода может найти все объекты, которые на основе информации в базе знаний обладают указанными характеристиками, или доказать их отсутствие. Эти объекты будут предъявлены пользователю в виде термов и списков, которые при подстановке вместо соответствующих переменных запроса преобразуют это выражение в логическое следствие утверждений базы знаний.