Логическое программирование

Вид материалаЛекции

Содержание


Рабочая программа
Цели и задачи дисциплины
Требования к уровню освоения дисциплины
Содержание рабочей программы
Тема 1. Основные понятия логического программирования
Тема 2. Основные элементы языка
Тема 3. Арифметика
Тема 4. Согласование целевых утверждений
Тема 5. Рекурсивное представление данных и программ
Тема 6. Отсечение и способы его использования
Тема 8. Встроенные предикаты
Тема 9. Дополнительные возможности
Тема 10. Отладка ПРОЛОГ-программы
Тема 11. Примеры использования ПРОЛОГа для решения задач искусственного интеллекта
Тема 12. Метапрограммирование на языке Пролог
Тема 13. Вероятностные интерпретаторы
Тема 14. Разработка игровых программ, оптимизационные задачи
Тема 15. Экспертные системы и базы знаний в Прологе
Тема 16. Планирование, решение NP-трудных задач
Тема 17. Constraint-технология в логическом программировании
...
Полное содержание
Подобный материал:

Министерство образования Российской Федерации


Санкт-Петербургский государственный электротехнический

университет “ЛЭТИ”


РАБОЧАЯ ПРОГРАММА


дисциплины


ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ


Для подготовки дипломированных специалистов по направлению 654600 –“Информатика и вычислительная техника” по специальности 220400 -“Программное обеспечение вычислительной техники и автоматизированных систем”


Санкт-Петербург

2001

Санкт-Петербургский государственный электротехнический

университет “ЛЭТИ”


“УТВЕРЖДАЮ”


Проректор по учебной работе


проф. ___________ Ушаков В.Н.


“_____”_______________2001 г.


РАБОЧАЯ ПРОГРАММА


дисциплины


ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ


Для подготовки дипломированных специалистов по направлению 654600 –“Информатика и вычислительная техника” по специальности 220400 -“Программное обеспечение вычислительной техники и автоматизированных систем”.


Факультет компьютерных технологий и информатики

Кафедра математического обеспечения и применения ЭВМ


Курс – 3

Семестр – 6


Лекции

30 ч.




Экзамен



















Лабораторные занятия







Текущий контроль

6 семестр
















Курсовая работа

15 ч.













Аудиторные занятия

45 ч.







Самостоятельные занятия

43 ч.




Всего часов

88 ч.









2001


Рабочая программа обсуждена на заседании кафедры Математического обеспечения и применения ЭВМ “____”_______________2001 г., протокол №______.


Рабочая программа составлена в соответствии с государственным образовательным стандартом по направлению 654600 –“Информатика и вычислительная техника” и специальности 220400 -“Программное обеспечение вычислительной техники и автоматизированных систем”.


Рабочая программа согласована с рабочими программами изученных ранее дисциплин:

1) Программирование;

2) Структуры и алгоритмы обработки данных;


Рабочая программа одобрена методической комиссией факультета компьютерных технологий и информатики “____”_____________2001 г.


Цели и задачи дисциплины

  1. Целью дисциплины является изучение и практическое освоение средств логического программирования для решения научных и прикладных задач. В качестве инструментальных средств изучается язык ПРОЛОГ.
  2. Рассматриваются теоретические и прикладные аспекты использования данных программных средств для решения задач искусственного интеллекта.



Требования к уровню освоения дисциплины


В результате изучения дисциплины студенты должны:

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



  1. Иметь опыт использования языка ПРОЛОГ при решении практических задач;



  1. Иметь представление о тенденциях и перспективах развития инструментальных средств логического программирования.


Содержание рабочей программы


Введение в проблематику логического программирования.


Применение логического программирования в системах искусственного интеллекта: Задачи искусственного интеллекта. Современные парадигмы решения задач искусственного интеллекта. Роль логики в решении задач ИИ. Логика предикатов первого порядка. Клаузы Хорна. Соотношение между клаузальной и стандартной формой логики. Доказательство теорем в исчислении предикатов первого порядка. Алгоритм унификации и принцип резолюции Робинсона. Использование логики как языка программирования.


Тема 1. Основные понятия логического программирования

Основные понятия логического программирования: понятие логической программы. Основные конструкции. Факты, правила, вопросы. Логические переменные, подстановки и примеры. Абстрактный интерпретатор. Значение логической программы. Вычислительная модель логических программ. Концепция языков "нового принципа". Ретроспективный обзор создания средств логического программирования. ПРОЛОГ как система, реализующая логический вывод в исчислении предикатов первого порядка


Тема 2. Основные элементы языка

Основные элементы языка: алфавит языка. Термы. Виды термов: константы, переменные, структуры. Литеры и их типы. Интерпретация литер. Операторы. Свойства операторов (позиция, приоритет, ассоциативность). Инфиксные, префиксные, постфиксные операторы. Запись фактов и правил. Предикат. Цели, конъюнкция целей. Общая схема доказательства целевого утверждения


Тема 3. Арифметика

Встроенные предикаты для сравнения чисел: =, \=, >, <, >=, =<. Вычисление арифметических выражений: операторы +, -, *, /, . Предикат is. Примеры программ с выполнением арифметических операций.


Тема 4. Согласование целевых утверждений

Диаграмма успешного доказательства целевых утверждений. Доказательство целевых утверждений при использовании механизма возврата. Правила установления соответствия. Недетерминизм первого и второго рода. Понятие "связанной" переменной. Примеры программ с использованием механизма возврата. Операционная модель вычисления ПРОЛОГ-программ. ПРОЛОГ и математическая логика.


Тема 5. Рекурсивное представление данных и программ

Построение рекурсивных программ. Граничные условия и способы использования рекурсии. Структуры и деревья. Список как частный вид структуры. Формы записи списков. Работа со списками. Примеры программ с рекурсивными определениями.


Тема 6. Отсечение и способы его использования

Модели Причины использования отсечения. Предикат !. Диаграмма работы программы с использованием отсечения. Общие случаи использования отсечения.


Тема 7. Ввод и вывод

Ввод и вывод термов (предикаты read, write, display). Ввод и вывод литер (предикаты get, get0, put). Примеры программ с использованием ввода и вывода.


Тема 8. Встроенные предикаты

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


Тема 9. Дополнительные возможности

Программирование второго порядка. Множественные выражения. Предикаты "univ", findall, bagof, setof. Интерфейсные и графические возможности версий ПРОЛОГа.


Тема 10. Отладка ПРОЛОГ-программы

Рекомендации по расположению текста программ. Типичные ошибки при работе с ПРОЛОГом. Использование трассировки и контрольных точек в ПРОЛОГ-системе. Фиксация ошибок.


Тема 11. Примеры использования ПРОЛОГа для решения задач искусственного интеллекта

Реализация на ПРОЛОГе простейшей экспертной системы. Использование языка ПРОЛОГ п ри планировании действий. Реализация на ПРОЛОГе нечеткого логического вывода.


Тема 12. Метапрограммирование на языке Пролог

Метапрограммирование на языке Пролог – программирование языка Пролог на языке Пролог. Особенности реализации дополнительных функций. Возможности управления ходом доказательства. Не линейный выбор правил при доказательстве.


Тема 13. Вероятностные интерпретаторы

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


Тема 14. Разработка игровых программ, оптимизационные задачи

Разработка игровых программ, оптимизационные задачи – особенности разработки некоторых игровых программ. Оптимизация и алгоритмы на языке Пролог.


Тема 15. Экспертные системы и базы знаний в Прологе

Экспертные системы и базы знаний в Прологе – программа на языке Пролог рассматривается как база знаний, особенности манипуляции знаниями в Прологе.


Тема 16. Планирование, решение NP-трудных задач

Планирование, решение NP-трудных задач на Прологе – реализация программ планирования. Решение задачи коммивояжера, о раскрашивании графа и других.


Тема 17. Constraint-технология в логическом программировании

Constraint-технология в логическом программировании: обобщение механизма унификации, понятие constraint'а. Операционная модель Constraint-ПРОЛОГа. Инструментальные средства Constraint-ПРОЛОГа; Применение Constraint-ПРОЛОГА в задачах исследования операций.


Заключение

Тенденции и перспективы развития методов и средств логического программирования. Параллелизм в ПРОЛОГЕ. Логическое программирование как перспективная методология разработки интеллектуальных систем.


Цели и содержание курсовой работы

и его ориентировочная трудоемкость


Цель: получение умений и навыков по применению методов проектирования и разработки программ на языке программирования Пролог.

Содержание: решение задачи с использованием логического программирования, реализация в виде программы на языке Пролог и трассировка.

Ориентировочная трудоемкость: 15 ч.

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




темы

Название разделов и тем

Объем учебных часов

Семестр

Лекции

Лабор.

занятия

Практ.

занятия

Аудит.

занятия

Самост.

работа

Всего


1

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

1







1

1

2

6

2.1

Основные понятия логического программирования

2







2

4

6

6

2.2

Основные элементы языка

2







2

3

5

6

2.3

Арифметика

2







2

3

5

6

2.4

Согласование целевых утверждений

1







1

1

2

6

2.5

Рекурсивное представление данных в программе

1







1

1

2

6

2.6

Отсечение и способы его использования

1







1

3

4

6

2.7

Ввод и вывод

1







1

2

3

6

2.8

Встроенные предикаты

1







1

1

2

6

2.9

Дополнительные возможности

2







2

2

4

6

2.10

Отладка ПРОЛОГ-программ

2







2

2

4

6

2.11

Примеры использования ПРОЛОГа для решения задач искусственного интеллекта

2







2

2

4

6

2.12

Метапрограммирование на языке Пролог


2







2

3

5

6

2.13

Вероятностные интерпретаторы

1







1

2

3

6

2.14

Разработка игровых программ, оптимизационные задачи

3







3

3

6

6

2.15

Экспертные системы и базы знаний в Прологе


2







2

3

5

6

2.16

Планирование, решение NP-трудных задач на Прологе

1







1

3

4

6

2.17

Constraint-технология в логическом программировании.

2







2

3

5

6

2.18

Заключение

1







1

1

2

6




Курсовое проектирование










15










ИТОГО:

30







45

43

88






ЛИТЕРАТУРА


Основная



Название, библиографическое описание

Л

Пр

зан

К-во экз. в библ. (на каф.)

Гриф

1

Лорьер Ж.-Л. Системы искусственного интеллекта. - М.: Мир, 1991.

5




Уч 34

ГК СССР по нар.обр.

2

Л.Стерлинг, Э.Шапиро. Искусство программирования на языке ПРОЛОГ. М. Мир, 1990.

5




Уч 154

ГК СССР по нар.обр.

3

И.Братко. Программирование на языке ПРОЛОГ для искусственного интеллекта. М.Мир,1990




5

Уч 4

ГК СССР по нар.обр.

4

Хювенен Э., Сеппянен И. Мир ЛИСПа. В 2 т. - М.: Мир, 1990

5

5

Т1-54

Т2-58

ГК СССР по нар.обр.

5

Филд А., Харрисон П. Функциональное программирование. - М.: Мир, 1993

5

5

Уч 8

Ком. по ВШ Мин. науки

6

Хендерсон П. Функциональное программирование. Применение и реализация. - М.: Мир, 1983

5




Уч 29

МВ и ССО СССР



Дополнительная




Название, библиографическое описание

К-во экз. в библ. (на каф.)

1

Уинстон П. Искусственный интеллект. М.,Мир, 1990.

Уч 0

2

Бердж В. Методы рекурсивного программирования. М., Машиностроение, 1983

Уч 0

3

J.Cohen. Constraint Logic Programming Languages. Communication of the ACM, 1990, Vol.33, No.7

Уч 0

4

J.Jaffar, S.Michaylov, P.J.Stuckey, R.H.C.Yap. The CLP(R) Language and System. ACM Transactions on Programming Languages and Systems, Vol.14, No.3, July 1992

Уч 0

5

Тей А. и др. Логический подход к искусственному интеллекту: от классической логики к логическому программированию. - М.: Мир, 1990.

Уч 0

6

Ковальский Р. Логика в решении проблем. - М.: Наука, 1990.

Уч 0

7

Нильсон Н. Принципы искусственного интеллекта. /Пер. с англ. Р.М. Абдусаматова, Ю.И. Крюкова; Под. ред. Стефанюка В.Л. - М.: Радио и связь, 1985.

Уч 9

8

Абилов В.Г., Зинченко Н.И. Turbo и Arity: два подхода к логическому программированию. //Мир ПК No.2,3, 1990.

Уч 0

9

Язык Пролог в пятом поколении ЭВМ. - М.: Мир, 1988.

Уч 0

Авторы:




ассистент

Беляев С.А.







Рецензент

Казак А.Ф.

к.т.н., доцент










Зав. кафедрой математического обеспечения и применения ЭВМ




д.т.н., профессор

Лисс А.Р.







Декан факультета КТИ




д.т.н., профессор

Герасимов И.В.







Зав. отделом учебной литературы

Смирнова О.Н.







Программа согласована:










Председатель методической комиссии факультета КТИ




к.т.н., доцент

Михалков В.А.







Руководитель методического отдела




к.т.н., доцент

Марасина Л.А.










Авторы:




ассистент

Беляев С.А.







Рецензент

Казак А.Ф.

к.т.н., доцент










Зав. кафедрой математического обеспечения и применения ЭВМ




д.т.н., профессор

Лисс А.Р.







Декан факультета КТИ




д.т.н., профессор

Герасимов И.В.







Программа согласована:










Зав. отделом учебной литературы

Смирнова О.Н.







Председатель методической комиссии факультета КТИ

Михалков В.А.

к.т.н., доцент




Руководитель методического отдела




к.т.н., доцент

Марасина Л.А.