Конспект лекций по дисциплине "Программное обеспечение интеллектуальных систем". Для магистров специальности 5А521902




Скачать 401.76 Kb.
НазваниеКонспект лекций по дисциплине "Программное обеспечение интеллектуальных систем". Для магистров специальности 5А521902
страница1/4
Дата27.12.2012
Размер401.76 Kb.
ТипКонспект
  1   2   3   4
Узбекское Агентство Связи и Информатизации

Ташкентский Университет Информационных Технологий


Конспект лекций

по дисциплине "Программное обеспечение интеллектуальных систем".

Для магистров специальности 5А521902


Ташкент – 2009 г.


Содержание.

  1. Краткие теоретические сведения языка Prolog.

  2. Структура программы и стандартные типы доменов языка Пролог.

  3. Предикаты переменные и использование правил в языке Пролог.

  4. Организация циклов.

  5. Работа со статическими файлами

  6. Использование файлов прямого доступа

  7. Использование динамических баз данных.

  8. Использование списков.

  9. Логические возможности Пролога.

Приложение 1. Краткий список встроенных предикатов.


Введение.

Целью данного курса является приобретение знаний по разработки и реализации основных элементов систем искусственного интеллекта.

Конкретно предлагается освоить Turbo-Prolog 2.0. Обусловлено это следующими факторами. С одной стороны данная версия широко используется, требует мало ресурсов и включает в себя богатый набор команд для выполнения различных операций. С другой стороны, синтаксис, большое количество встроенных предикатов и механизмов составляют основу других версий языка Prolog, например, Visual Prolog 5.2.


Лекция №1.

Краткие теоретические сведения языка Prolog.

План Лекции

  1. Предыстория языка Prolog.

  2. Основные понятия языка Турбо-Пролог

Ключевые слова

Программирование при помощи логики (PROgramming in Logic). Факт. Атом. Аргумент. Объект. Домен. Предикат. Функтор. База данных. Унификация. Правило.


Предыстория языка Prolog.

Название "Пролог" произошло от словосочетания "Программирование при помощи логики" (PROgramming in Logic). Пролог был разработан и впервые реализован в 1973 г. Алэном Колмероэ и другими членами "группы искусственного интеллекта" Марсельского университета (Франция). Главной задачей группы было создание системы для обработки естественного языка.

Turbo-Prolog 2.0. реализован компанией Borland International. Он является компиляторно - ориентированным языком высокого уровня. Turbo-Prolog 2.0. особенно хорош для создания экспертных систем, динамических баз данных, программ с применением естественно-языковых конструкций.

Наряду с Turbo-Prolog 2.0. созданы еще несколько реализаций языка Prolog, например, Arity Prolog, Wisdom Prolog, Micro Prolog. Шотландский вариант C&M Prolog получил название в честь авторов Уильяма Клоксина и Кристоффера Меллиша классической работы "Программирование на Прологе" , которая считается неофициальным стандартом.

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

Самым существенным отличием Турбо-Пролога от других версий языка является наличие в Турбо-Прологе строгой типизации элементов данных. Сделанные отступления позволили значительно увеличить скорость трансляции и счета программ.

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

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

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


Краткие теоретические сведения.

Основные понятия языка Турбо-Пролог (в дальнейшем просто Пролог).

Факт - это некоторое утверждение, определяющее отношение между объектами или описывающее свойства объекта. Общая форма записи факта имеет следующий вид:

<имя отношения>(имя_объекта_1, имя_объекта_2, ... , имя_объекта_N).

Необходимо соблюдать следующие правила :

  1. имена всех отношений и объектов должны начинаться со строчной буквы;

  1. сначала записывается имя отношения, затем через запятую записываются имена объектов , а весь список имен объектов заключается в круглые скобки;

  1. каждый факт должен заканчиваться точкой;

  1. имена объектов в скобках могут перечисляться произвольно, но по одному произвольному порядку.

Например, факт с двумя объектами может быть описан так:

likes(tom,computer).

На естественном языке вышеприведенный факт означает: "Тому нравится компьютер".

Атом - имя, число без знака или символ.

Аргумент - имя объекта в круглых скобках .

Объект - название отдельного элемента в конструкции Пролога.

Домен - диапазон и тип значений, определенные для базисного типа данных.

Предикат - утверждение о наличии связи между объектами посредством задания имени отношения перед круглыми скобками и доменов его аргументов.

Функтор - имя составного объекта ( в Прологе функторы объявляются в разделе программы predicates).

База данных - в Прологе представляет собой совокупность фактов (утверждений).

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

- утверждение о связи некоторого факта с другими фактами.

Общая форма записи правила имеет вид:

<заголовок правила>:- <тело правила>.

Заголовок представляет собой предикат. Тело состоит из термов, которые могут быть связаны между собой "," или ";". (","- означает И,";"- означает ИЛИ).

Между телом и заголовком стоит символ ":-", который означает ЕСЛИ.

Например, правило, состоящее из двух термов может описано следующим образом:

likes(tom,kathy) :- likes(kathy,computer), likes(kathy,apples).

На естественном языке это означает : "Тому нравится Кэти, если Кэти нравится компьютер и яблоки."


Лекция №2.

Структура программы и стандартные типы доменов языка Пролог.

План Лекции

  1. РАЗДЕЛЫ CONSTANS И DOMAINS.

  2. РАЗДЕЛЫ PREDICATES ИCLAUSES.

  3. РАЗДЕЛЫ GOAL И GLOBAL DOMAINS.

  4. РАЗДЕЛЫ GLOBAL PREDICATES И DATABASE.

Ключевые слова

CONSTANS, DOMAINS, PREDICATES, CLAUSES, GOAL, GLOBAL DOMAINS, GLOBAL PREDICATES, DATABASE

Программа на Прологе может состоять из следующих разделов:

1. CONSTANS - раздел описания констант. Имена констант должны быть описаны строчными буквами. В качестве констант могут быть целые или вещественные числа, символы, строки. Например, col=17, x=3.62, c=’W’, st="Выход" .

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

Например, имеется факт

likes(mary,apples).

Здесь mary и appless являются объектами предиката likes . Пролог требует указания типов объектов для каждого предиката программы.

Для указания типа объекта Пролог имеет шесть следующих типов данных (типов доменов):

  1. symbol (символические имена) - это последовательность букв, цифр и знаков подчеркивания, которая начинается со строчной буквы или заключена в кавычки, например: flower, pay_check,"Prolog" и т.п..

  1. string (строки) - любая последовательность символов, которая заключена в кавычки (не более 250). Например: "today","123","ПРИВЕТ".

В Турбо-Прологе 2.0 ограничение 250 накладывается, если какой-либо переменной присваивается конкретное значение непосредственно в тексте программы. Например, пусть переменным S1 и S2 конкретизированы значениями

S1="111...1", (250 символов)

S2="222...2" (250 символов),

Далее, если соединить эти строки , то ничего не потеряется

concat(S1,S2,S)

- в итоге имеем переменную S, в которой 500 символов. Длина может достигать строки в таких случаях может достигать 64 Кбайт.

  1. char (символы) - отдельный символ, заключенный в апострофы, например: 'А','3','а','\13'.

  1. integer (целые числа) - можно задавать в диапазоне от -32768 до +32767.

  1. real (действительные числа) - диапазон от +1Е-307 до +1Е308 .

  1. file (файлы) - допустимое в DOS имя файла.

Вернемся к факту lakes(mary,apples). C предикатом likes могут быть еще факты , такие ,например :

likes(tom,computer).

likes(kathy,computer).

Во всех этих фактах с предикатом lakes на первом месте стоят имена объектов, имеющие смысл "тот, кто любит", а на втором месте имена объектов - "вещь".

В данном примере эти два вида имен объектов имеют один и тот же тип symbol. Прежде чем показать, как выглядит раздел DOMAINS для нашего примера, рассмотрим раздел, который называется PREDICATES.

2. PREDICATES - данный раздел служит для описания используемых программой предикатов.

В нашем примере предикат likes не является встроенным предикатом, поэтому его необходимо объявить в разделе PREDICATES.

Например:

PREDICATES

lakes(symbol,symbol)

Это описание означает, что оба объекта относятся к типу symbol. Такое описание предиката likes освобождает от необходимости использования раздела DOMAINS. Наш пример является очень простым, поэтому мы можем себе такое позволить. Реальные программы могут содержать несколько десятков предикатов, причем с различным количеством объектов. Поэтому, чтобы программа хорошо читалась - видам объектов присваивают имена, но при этом уже необходим раздел DOMAINS. Для нашего примера это будет выглядеть так:

DOMAINS

person,thing = symbol

PREDICATES

likes(person,thing)

где person - "тот кто любит" ,thing - "вещь".

CLAUSES - в данный раздел заносятся факты и правила. О содержимом этого раздела можно говорить как о данных, необходимых для работы программы. Для нашего примера этот раздел включает три факта :

CLAUSES

likes(mary,apples). likes(tom,computer). likes(kathy,computer).

3. GOAL - данный раздел может располагаться перед разделом CLAUSES или после него. В этом разделе определяется цель. Цель может состоять из нескольких подцелей. Если программа предназначена для работы в пакетном режиме, раздел GOAL не может быть опущен.

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

GLOBAL DOMAINS - располагается после раздела DOMAINS.

4. GLOBAL PREDICATES - следует после раздела PREDICATES.

Определение типов данных и предикатов в этих разделах позволяет обеспечить межмодульный интерфейс.

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

Турбо-Пролог обеспечивает возможность включения в программу комментариев, которые обрамляются символами /* ... */ . Также комментарием считается строка, которая начинается с символа % .

В итоге программа в законченном виде для нашего примера будет выглядеть так :

Пример 1.

/* НАЧАЛО */

Domains

person,thing = symbol

Predicates

likes(person,thing)

Goal

likes(mary,apples),nl, write("Мэри любит яблоки").

Clauses

likes(mary,apples).

likes(tom,computer).

likes(kathy,computer).

% КОНЕЦ


Лекция №3.

Предикаты переменные и использование правил в языке Пролог.

План Лекции

  1. Предикаты и утверждения разных арностей.

  2. Переменные в языке Пролог.

  3. Использование правил.

Ключевые слова

Термин «арность», переменные, предикат fail

1.Предикаты и утверждения разных арностей.

Термин «арность» обозначает число объектов утверждения. Количество объектов в одном предикате может быть не более 50.

Ниже приведен пример предикатов и утверждений различных арностей.

Domains s=string

Predicates % раздел предикатов

start % арность 0

woman(s) % арность 1

father(s,s) % арность 2

Clauses % раздел утверждений

start. % арность 0

woman("Маша") % арность 1

father("Петр Иванович","Маша") % арность 2

2.Переменные в языке Пролог.

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

likes(X,apples),nl, write(X," - любит яблоки").

Переменная Х конкретизируется первым значением, который имеется в базе фактов с предикатом likes.

3.Использование правил.

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

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

likes(tom,Х) :- likes(Х,wine).

На естественном языке это означает: «Тому нравится любой, кому нравится вино».

Правило, в котором используется одна переменная и два предиката может быть описано следующим образом

likes(tom,Х) :- woman(Х),likes(X,wine).

На естественном языке звучит так: «Тому нравится любая женщина, которой нравится вино».

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

is_sister(Х,У) :- woman(Х), parents(Х,М,F), parents(Y,M,F).

X является сестрой Y, если X - женщина и имеет родителей M и F и Y имеет тех же родителей M и F.

Часто в правилах используются анонимные переменные. Анонимная переменная - это одиночный знак подчеркивания «_». Например, если нужно определить, является ли Х вообще чьей-нибудь сестрой и неважно чьей, то после конкретизации Х нужно записать:

... , is_sister(Х,_), ...

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

Рассмотрим правило, позволяющее выдавать содержимое всей базы данных.

total:-woman(X),write(X),nl, fail.

В примере используется предикат fail , который осуществляет вынужденное неудачное завершение выполнения. Это один из способов организации циклов в Прологе (см. ниже), который позволяет просмотреть все факты с предикатом woman.

Ниже приведены два правила.

st:-consult("bd.pro"), ret.

ret:-retract(woman(_)), fail.

В теле первого правила с заголовком st используется два терма (предиката). С помощью встроенного предиката consult осуществляется загрузка базы данных с именем bd.pro, в которой содержатся факты с предикатом woman. Терм ret позволяет обратиться ко второму правилу с заголовком ret. Второе правило позволяет удалить все факты с предикатом woman из памяти.

  1   2   3   4

Похожие:

Конспект лекций по дисциплине \"Программное обеспечение интеллектуальных систем\". Для магистров специальности 5А521902 iconО. Л. Молдованова Документационное обеспечение управления
Конспект лекций предназначен для студентов всех форм обучения по специальности 0801110 «Экономика и бухгалтерский учет (по отраслям)»...
Конспект лекций по дисциплине \"Программное обеспечение интеллектуальных систем\". Для магистров специальности 5А521902 iconРабочая программа по дисциплине Архитектура вычислительных систем Для специальности 230105(220400) Программное обеспечение вычислительной техники и автоматизированных систем
Рабочая программа составлена в соответствии с гос во по специальности 230105 Программное обеспечение вычислительной техники и автоматизированных...
Конспект лекций по дисциплине \"Программное обеспечение интеллектуальных систем\". Для магистров специальности 5А521902 iconРабочая программа По дисциплине “Преддипломная практика" Для специальности 230105 (220400) "Программное обеспечение вычислительной техники и автоматизированных систем"
Гос во по специальности 230105 (220400) – Программное обеспечение вычислительной техники и автоматизированных систем, утвержденного...
Конспект лекций по дисциплине \"Программное обеспечение интеллектуальных систем\". Для магистров специальности 5А521902 iconРабочая программа по дисциплине «проектирование систем управления и менеджмента» для специальности 230105 “Программное обеспечение вычислительной техники и автоматизированных систем”
Рабочая программа составлена на основании гос впо для специальности 230105 «Программное обеспечение вычислительной техники и автоматизированных...
Конспект лекций по дисциплине \"Программное обеспечение интеллектуальных систем\". Для магистров специальности 5А521902 icon«Программное обеспечение ЭВМ и информационные технологии» мгту им. Н. Э. Баумана 2011
В настоящее время кафедра готовит как бакалавров и магистров, так и дипломированных специалистов – инженеров по специальности 2204...
Конспект лекций по дисциплине \"Программное обеспечение интеллектуальных систем\". Для магистров специальности 5А521902 iconМетодические указания составлены в соответствии с рабочей программой по дисциплине «Программное обеспечение компьютерных сетей»
...
Конспект лекций по дисциплине \"Программное обеспечение интеллектуальных систем\". Для магистров специальности 5А521902 iconРабочая программа По дисциплине “Методы оптимизации" для специальности 230105 "Программное обеспечение вычислительной техники и автоматизированных систем"
По дисциплине “Методы оптимизации" для специальности 230105 "Программное обеспечение вычислительной техники и автоматизированных...
Конспект лекций по дисциплине \"Программное обеспечение интеллектуальных систем\". Для магистров специальности 5А521902 iconПрограмма курса «Технологии и языки Internet-программирования» разработана для студентов специальности 1-40 01 01 «Программное обеспечение информационных технологий»
Д. В. Антоник, старший преподаватель кафедры программного обеспечения интеллектуальных и компьютерных систем
Конспект лекций по дисциплине \"Программное обеспечение интеллектуальных систем\". Для магистров специальности 5А521902 iconУчебно-методический комплекс по дисциплине “Базы данных“ для специальности 230105 программное обеспечение вычислительной техники и автоматизированных систем
Базы данных“ для специальности 230105 – программное обеспечение вычислительной техники и автоматизированных систем
Конспект лекций по дисциплине \"Программное обеспечение интеллектуальных систем\". Для магистров специальности 5А521902 iconКонспект лекций по дисциплине «Основы лесоводства и лесной таксации»
Конспект лекций предназначен для студентов заочного отделения указанной специальности
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница