Смекни!
smekni.com

Методические рекомендации по срсп и срс самостоятельная работа студентов под руководством преподавателя (стр. 1 из 7)

Методические рекомендации по СРСП и СРС

САМОСТОЯТЕЛЬНАЯ РАБОТА СТУДЕНТОВ ПОД РУКОВОДСТВОМ ПРЕПОДАВАТЕЛЯ

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

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

После изучения дисциплины студент должен: знать модели представления знаний; методы работы со знаниями, методы разработки и создания экспертных систем и экспертных оболочек; обладать навыками логического проектирования баз данных предметной области, логического (функционального) программирования на языке Пролог.

Уровень знания проверяется на экзамене, умения и навыки - по результатам выполнения лабораторных и практических работ.

Разделы и темы для изучения

№ п/п

Номер

раздела, тема

дисциплины

Цель и содержание занятия

Результаты работы

Формы контроля выполнения

час

Занятие

№1

Ознакомление с оболочкой AMZI! Prolog. Изучение основ программирования на языке Пролог. Отношения между данными

Формирование у студентов представления о

возможностях программы

Изобразить граф, иллюстрирующий описываемые родственные отношения.

Составить программу, которая описывает родственные отношения.

Составить отчет о выполнении исследовательской работы в MSWord

5

Занятие

№2

Исследование использования рекурсивных правил и структурированных данных

Формирование у студентов представления об использовании рекурсивных правил и структурированных данных

Выполнить задачи согласно варианту.

Подобрать тестовые данные и оформить отчет.

Составить отчет о выполнении исследовательской работы в MSWord

5

Занятие

№3

Исследование работы со списками

Формирование у студентов представления работе со списками

Реализовать набор функций для обработки списков, используя возможности языка:

Решить дополнительные задачи согласно варианту, используя построенные функции.

Составить отчет о выполнении исследовательской работы в MSWord

5

Занятие

№4

Исследование работы с бинарными деревьями

Формирование у студентов представления о

работе с бинарными деревьями

Составить программу, которая решает задачи соответствующего варианта.

Предусмотреть в программе возможности автоматического ввода/вывода деревьев.

Составить отчет о выполнении исследовательской работы в MSWord

5

Занятие

№5

Исследование работы с динамическими базами данных

Формирование у студентов представления о работе с динамическими базами данных

Выполнить задание

Составить отчет о выполнении исследовательской работы в MSWord

5

Занятие

№6

Исследование использования возможностей логического сервера AMZI! Prolog в среде Delphi

Формирование у студентов представления об

использования возможностей логического сервера AMZI! Prolog в среде Delphi

Составить программу, которая отображает все данные практической работы № 1 на форме DELPHI приложения.

Подобрать тестовые данные, проверяющие работу программы.

Составить отчет о выполнении исследовательской работы в MSWord

5


Введение

Осознание того, что вычисление – часть случайного логического вывода привело к возникновению логического программирования [4], первая реализация которого была осуществлена в семидесятые годы в виде системы Пролог [1, 2, 9]. Суть идеи – представить в качестве программы формальное описание предметной области, а затем сформулировать необходимую для решения задачу в виде цели или утверждения. Построение же решения этой задачи в виде вывода в этой системе предложить самой машине . Последнее возможно, поскольку нужный алгоритм решения (поиска) осуществляется решателем, строящим вывод по определенной стратегии [3, 8]. При такой постановке основная задача программиста сводится к описанию предметной области в виде системы логических формул и отношений на них, которые с достаточной степенью полноты описывают задачу. Этот подход стал возможен благодаря тому, что были получены достаточно эффективные методы автоматического поиска доказательств [8].

Проиллюстрируем вышесказанное, воспользовавшись исчислением высказываний [8]. Дадим формальное описание предметной области:

F1 : Если жарко и сыро, то будет дождь .

F2 : Если сыро, то жарко база знаний

F3 : сейчас сыро

Воспользуемся обозначениями:

Р – жарко, Q – сыро, R – будет дождь,

тогда

F1 =PÙQ®R

F2 =Q®P формальное описание базы знаний

F3 : Q

и зададимся вопросом-целью:

будет ли дождь?

Решим поставленную задачу, воспользовавшись правилом вывода modus ponens: A , A ® B => B (если верно А и A®B, то верно и B). Тогда Q , Q ® P => P, т. е. верно P.

Но тогда QÙP, QÙP ® R => R, т.е. верно R. То есть, поставленная задача решена, ответ – будет дождь.

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

E(x, y) – числа x и y равны между собой

f(x) – число, следующее за числом x

g(x) – число, предшествующее числу x

1. За каждым числом существует другое

А ("х)(($у)(Е(у, f(x)))Ù"z)(E(z, f(x)))®E(y, z)

2. Нуль является крайним числом

А ~ ($x)(E(0, f(x)))

3. Существует один предыдущий элемент для всех чисел кроме нуля.

А ("х)(~E(x,0)®(($y)(E(y, g(x))Ù("z)(E(z, g(z)) ® E(y, z)))

Использование правила вывода modus ponens позволяет показать возможность достижения цели – доказательства теорем. На практике обычно используется более эффективные с точки зрения вывода методы доказательства теорем.

Один из таких методов – метод резолюции [3] – позволяет реализовать на практике концепцию логического программирования, согласно которой вычислительная программа может быть записана при помощи логических формул, играющих роль аксиом, а её вычисление представлено в виде доказательства формулы-запроса.

Открытие Робинсоном (1965) правила резолюции позволило разработать эффективные процедуры доказательства в логике I порядка и представляет собой значительный шаг на пути практического применения автоматического доказательства теорем, поскольку резолюция обладает важными свойствами корректности и полноты.

Правило резолюций в простейшем случае имеет вид

ØA, A ® B => ØB,

результат называется резольвентой, а само правило modus tollens.

Для доказательства выводимости некоторой формулы G из формул F1, F2, ..., Fn, достаточно доказать истинность формулы F1 Ù F2 ... Ù Fn ® G.

Теорема. F1 Ù F2 ... Ù Fn ® G <=> F1 Ù F2 ... Ù Fn Ù Ø G – противоречиво

То есть для доказательства G достаточно опровергнуть ØG. Это так называемое доказательство от противного или reductio ad absurdum.

Логическое программирование является описательным (декларативным). В нем используются утверждения трех видов: факты, правила, вопросы. Воспользуемся примером Пролог-программы, приведенной в работе [3]

вор(питер).

любит(мэри, шоколад).

любит(мэри, вино)

любит(питер, деньги).

любит(питер, X) :- любит(X, вино).

может_похитить(X, Y) :- вор(X), любит(X, Y).

и опишем работу интерпретатора для цели

? может_похитить(питер, X).

то есть вопрос «что может похитить Питер?».

Интерпретатор отыщет последнее правило программы и унифицирует цель с его левой частью, при этом

X = питер, а Y = Z,

вместо старой цели появятся две новые подцели:

? вор(питер), любит(питер, Z).