Элементы языка Пролог

 

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

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

Основная идея Пролога как языка записи фактов, вопросов и правил заключается в том, что они записываются в форме предика­тов математической логики. Все они интерпретируются ЭВМ строго в соответствии с законами математической логики и ни чем более.

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

Факты - это конкретные сведения о ком-то либо о чем-то. Факты на языке Пролог записываются в форме предикатов с конкретными аргументами-значениями. Примеры записи фактов на Прологе:

 

папа (Вова, Лена); - Вова - папа Лены

любит (Лена, музыка); - Лена любит музыку

оценка (Лена, русский, 5); - У Лены 5 по русскому языку

 

Вопросы на Прологе - это запросы к совокупности данных или процедурам, хранящимся, в ЭВМ. Запись вопросов начинается со знака ?, за которым записывается предикат или группа предикатов, разделяемых запятыми. Примеры записи простых вопросов на языке Пролог:

 

? папа (х, Лена) - Кто папы Лены?

х = Вова

? мама (х, у) - Кто у кого - мама ?

НЕТ

? оценка (х, _ , 5) - Кто имеет оценки 5?

х = Лена

 

Здесь буквы х, у - обозначения переменных, а числа и слова - конкретные значения аргументов в соответствующих предикатах. Знак подчеркивания «_» представляет неопределенное значение, которое несущественно для ответа на вопросы.

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

 

? мама (х, у), мама (у, Оля) - Кто мама у мамы Оли?

х =Зина у = Люба

? мама (х, у),папа (у, Оля) - Кто мама у папы Оли?

НЕТ

 

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

 

студент (х) занятие (х, учеба); - Студент - тот, кто занят учебой;

нумизмат (х) собирает (х, монеты); - Нумизмат - тот, кто собирает монеты.

 

Примеры вопросов на использование этих правил:

 

? студент (х) - Кто - студент?

х =Алеша

х = Лена

? нумизмат (у) - Кто - нумизмат?

у =Алеша

 

В правилах со сложносоставными определениями запятая также играет роль логической связки и, объединяя условия, образующие определение. Такого рода правила позволяют создавать самые слож­ные и изощренные базы знаний по самым различным предметным областям и применениям.

Приведем пример составления базы знаний о друзьях. Будем раз­личать друзей по их именам: Алеша, Оля и т. д. Включим в базу дан­ных следующие сведения о друзьях:

что им нравится;

что они коллекционируют;

чем они занимаются;

какие оценки они имеют.

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

 

нравится (<имя>, <вещь>);

собирает (<имя>, <вещь>);

занимается (<имя>, <предмет>);

оценка (<имя>, <предмет>, <балл>);

 

Вместо<имя>, <вещь>, <предмет>, <балл> при составлении базы знаний необходимо подставить конкретную информацию о конкрет­ных друзьях. Записывать имена будем с большой буквы в имени­тельном падеже. Далее,<вещь>и<предмет> - это существительные в именительном падеже,<балл> - целое число от 1 до 5.

Пусть об Оле и Алеше известно следующее:

1. Оле нравится музыка. Она собирает фотографии любимых пев­цов. Занимается домоводством. Оля имеет 4 по русскому языку и 5 по алгебре.

2. Алеше нравится история, он собирает монеты, естественно, име­ет 5 по истории, занимается в археологическом кружке.

Соответствующая база данных на языке Пролог:

 

нравится (Оля, музыка); - Оле нравится музыка

нравится (Алеша, история); - Алеше нравится история

собирает (Оля, фотографии); - Оля собирает фотографии

собирает (Алеша, монеты); - Алеша собирает монеты

собирает (Алеша, значки); - Алеша собирает значки

оценка (Оля, русский, 4); - Оля имеет 4 по русскому языку

занимается (Алеша, бизнес); - Алеша занимается бизнесом

оценка (Оля, алгебра, 5); - Оля имеет оценку 5 по алгебре

оценка (Алеша, история, 5); - Алеша имеет оценку 5 по истории

 

К составленной базе данных можно обращаться с самыми разными вопросами об интересах, занятиях, склонностях и успехах в учебе. Примеры самых простых вопросов и ответов, получаемых от ЭВМ:

 

? занимается (Алеша, футбол) - Занимается ли Алеша футболом?

Нет

? нравится (Оля, музыка) - Нравится ли Оле музыка?

Да

Использование в вопросах переменных позволяет получать от ЭВМ информацию, хранящуюся в базе данных. В ответ на такие вопросы выводятся все возможные варианты ответов. Например:

 

? нравится (х,у) - Кому что нравится?

х =Оля у = музыка

х = Алеша у = история

 

Если какая-то часть информации по той или иной причине не нужна, то вместо соответствующей переменной в вопросе ставится знак подчеркивания «_»:

 

? собирает (_ , х) - Что собирают друзья?

х =фотографии

х = монеты

х = значки

 

Наконец, в вопросах можно одновременно использовать как пе­ременные, так и конкретные значения. Например:

 

? занимается (х, музыка) - Кто занимается музыкой ?

Нет

? занимается (Алеша, у) - Чем занимается Алеша ?

у = бизнес

? собирает (х, монеты) - Кто собирает монеты ?

х = Алеша

? оценка (х, _ , 5) - Кто имеет пятерки?

х = Оля

х = Алеша

 

Примеры сложносоставных вопросов:

1. Кто занимается бизнесом и собирает монеты?

 

? занимается (х, бизнес), собирает (х, монеты)

х = Алеша

 

2. Какие оценки имеет тот, кто собирает монеты?

 

? собирает (х, монеты), оценка (х, р, z)

х = Алеша

р = история

z = 5

 

К составленной базе данных можно добавить следующие правила вывода:

 

книголюб (х) нравится (х, книги), - Книголюб - тот, кто

собирает (х, книги) любит и собирает книги

бизнесмен (х) собирает (х, монеты), - Бизнесмен - тот, кто

занятие (х, бизнес) собирает монеты и занима­ ется бизнесом

 

Примеры использования правил-определений:

 

? книголюб (х) - Кто - книголюб?

НЕТ

? бизнесмен (у) - Кто - бизнесмен ?

у = Алеша

В о п р о с ы

 

1. Как записываются факты на языке Пролог?

2. Как записываются вопросы на языке Пролог?

3. Как записываются правила в языке Пролог?

 

З а д а ч и

1. Опишите на языке Пролог данные о своей семье: о маме, папе, сестрах, братьях, дедушках и бабушках - кто кому приходится мамой и папой. Укажите вопросы для определения родственных отношений.

2. Опишите данные о своих друзьях с указанием их увлечений (кто что любит), занятий (кто чем занимается). Подберите правила для оп­ределения понятий:

а) сластена; д) спортсмен;

б) филателист; е) бизнесмен;

в) математик; ж) музыкант;

г) программист; з) мусорщик.

3. Опишите в форме фактов для себя и своих ближайших друзей-одноклассников данные об оценках по предметам:

а) литература; г) физкультура;

б) математика; д) информатика;

в) физика; е) история.

4. Подберите правила определения понятий:

а) математик; д) физик;

б) историк; е) лирик;

в) двоечник; ж) троечник.

г) отличник;

 

 

 

Базы знаний на ЭВМ

 

Экспертные системы и базы знаний на ЭВМ - одно из перспек­тивных направлений в области искусственного интеллекта. Такие экспертные системы в ближайшем будущем станут интеллектуаль­ными ассистентами людей во многих областях профессиональной деятельности.

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

Конкретные сведения в базах знаний представляются фактами, которые записываются в виде предикатов с конкретными значениями. Примеры записи фактов в форме предикатов:

 

мама (Люба, Оля); - Люба - мама Оли

оценка (Вова, физика, 5); - Вова имеет 5 по физике

 

Обобщенные сведения в базах знаний записываются в форме правил вывода, выражающих определения понятий. Примеры обоб­щенных сведений:

 

бабушка (х, z) мама (х, у), мама (у, z) - бабушка - это мама мамы

двоечник (х) оценка (х, _ ,2) - двоечник - тот, у кого есть двойки

 

Используя совокупность конкретных и обобщенных фактов и правил, компьютеры могутдавать ответы на широкий круг осмыс­ленных вопросов. Для этого соответствующая база знаний с соот­ветствующей системой понятий должна храниться в памяти ЭВМ.

Базы знаний могут содержать правила вывода следующих видов:

- правила определения понятий;

- правила принятия решений;

- способы решения задач;

- правила поведения и т. п.

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

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

 

Приведем примеры определения понятий.

1. Понятие «мама». Объем понятия - совокупность всех мам. Содержание понятия - женщина, имеющая детей. Формализация понятия на Прологе может выражаться конкретными фактами. При­меры:

 

мама (Люба, Оля); - Люба - мама Оли

мама (Зина, Люба); - Зина - мама Любы

 

2. Понятие - «бабушка». Объем понятия - совокупность всех бабушек. Содержание понятия - «бабушка - это мама мамы или папы». Формализация этого понятия на Прологе:

 

бабушка (х, z) мама (х, у), мама (у, z); - бабушка - это мама мамы

бабушка (х, z) мама (х, у), папа (у, z); - бабушка - это мама папы

 

3. Понятие «музыкант». Объем понятия - совокупность людей, занимающихся музыкой. Содержание понятия - «музыкант - чело­век, который любит музыку и занимается музыкой». Это понятие на языке Пролог можно записать в виде правила:

 








Дата добавления: 2016-04-06; просмотров: 1059;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.031 сек.