Министерство образования Российской Федерации Санкт-Петербургский государственный электротехнический университет “ЛЭТИ”
...
59 downloads
272 Views
221KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Министерство образования Российской Федерации Санкт-Петербургский государственный электротехнический университет “ЛЭТИ”
РАБОЧАЯ ПРОГРАММА дисциплины ФУНКЦИОНАЛЬНОЕ И ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ Для подготовки дипломированных специалистов по направлению 657100– ”Прикладная математика" по специальности 073000–“Прикладная математика ” и бакалавров по направлению 510200–”Прикладная математика и информатика"
Санкт-Петербург 2001
Санкт-Петербургский государственный электротехнический университет “ЛЭТИ”
“УТВЕРЖДАЮ” Проректор по учебной работе проф. ___________ Ушаков В.Н. “_____”_______________2001г.
РАБОЧАЯ ПРОГРАММА дисциплины ФУНКЦИОНАЛЬНОЕ И ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ Для подготовки дипломированных специалистов по направлению 657100 – ”Прикладная математика" по специальности 073000–“Прикладная математика ” и бакалавров по направлению 510200–”Прикладная математика и информатика" Факультет компьютерных технологий и информатики Кафедра математического обеспечения и применения ЭВМ Курс – 3 Семестр – 5 Лекции
32 ч.
Экзамен
Практические занятия
16 ч.
Текущий контроль
Курсовая работа
16 ч.
Аудиторные занятия Самостоятельные занятия Всего часов
64 ч. 64 ч. 128 ч.
2001
2
5 семестр
Рабочая программа обсуждена на заседании кафедры Математического обеспечения и применения ЭВМ “____”_______________2001 г., протокол №______. Рабочая программа составлена в соответствии с государственным образовательным стандартом по направлению 657100 – ”Прикладная математика" и специальности 073000 “Прикладная математика”. Рабочая программа согласована с рабочими программами изученных ранее дисциплин: 1) Программирование; 2) Структуры и алгоритмы обработки данных; Рабочая программа одобрена методической комиссией факультета компьютерных технологий и информатики “____”_____________2001 г.
3
Цели и задачи дисциплины Целью дисциплины является изучение и практическое освоение средств логического и функционального программирования для решения научных и прикладных задач. В качестве инструментальных средств изучаются языки ПРОЛОГ и ЛИСП. Рассматриваются теоретические и прикладные аспекты использования данных программных средств для решения задач искусственного интеллекта. Требования к уровню освоения дисциплины В результате изучения дисциплины студенты должны: 1. знать и уметь использовать теоретические основы и прикладные средства логического и функционального программирования в решении задач искусственного интеллекта; 2. иметь опыт использования языков ПРОЛОГ и ЛИСП при решении практических задач; 3. иметь представление о тенденциях и перспективах развития инструментальных средств логического и функционального программирования. Содержание рабочей программы Введение в проблематику логического и функционального программирования. Применение логического и функционального программирования в системах искусственного интеллекта: Задачи искусственного интеллекта. Современные парадигмы решения задач искусственного интеллекта. Роль логики в решении задач ИИ. Логика предикатов первого порядка. Клаузы Хорна. Соотношение между клаузальной и стандартной формой логики. Доказательство теорем в исчислении предикатов первого порядка. Алгоритм унификации и принцип резолюции Робинсона. Использование логики как языка программирования. Особенности языков функционального программирования. Использование функционального программирования для разработки систем искусственного интеллекта. Тема 1. Основные понятия логического программирования Основные понятия логического программирования: понятие логической программы. Основные конструкции. Факты, правила, вопросы. Логические переменные, подстановки и примеры. Абстрактный интерпретатор. Значение логической программы. Вычислительная модель логических программ. Концепция языков "нового принципа". Ретроспективный обзор создания средств логического программирования. ПРОЛОГ как система, реализующая логический вывод в исчислении предикатов первого порядка Тема 2. Основные элементы языка Основные элементы языка: алфавит языка. Термы. Виды термов: константы, переменные, структуры. Литеры и их типы. Интерпретация литер. Операторы. Свойства операторов (позиция, приоритет, ассоциативность). Инфиксные, префиксные, постфиксные операторы. Запись фактов и правил. Предикат. Цели, конъюнкция целей. Общая схема доказательства целевого утверждения Тема 3. Арифметика Встроенные предикаты для сравнения чисел: =, \=, >, <, >=, =<. Вычисление арифметических выражений: операторы +, -, *, /, ^. Предикат is. Примеры программ с выполнением арифметических операций.
4
Тема 4. Согласование целевых утверждений Диаграмма успешного доказательства целевых утверждений. Доказательство целевых утверждений при использовании механизма возврата. Правила установления соответствия. Недетерминизм первого и второго рода. Понятие "связанной" переменной. Примеры программ с использованием механизма возврата. Операционная модель вычисления ПРОЛОГ-программ. ПРОЛОГ и математическая логика. Тема 5. Рекурсивное представление данных и программ Построение рекурсивных программ. Граничные условия и способы использования рекурсии. Структуры и деревья. Список как частный вид структуры. Формы записи списков. Работа со списками. Примеры программ с рекурсивными определениями. Тема 6. Отсечение и способы его использования Модели Причины использования отсечения. Предикат !. Диаграмма работы программы с использованием отсечения. Общие случаи использования отсечения. Тема 7. Ввод и вывод Ввод и вывод термов (предикаты read, write, display). Ввод и вывод литер (предикаты get, get0, put). Примеры программ с использованием ввода и вывода. Тема 8. Встроенные предикаты Предикаты: добавление и исключение утверждений, классификация термов, изменение и анализ утверждений, работа со структурами произвольного вида, воздействие на процесс возврата, реализация сложных способов выражения целевых утверждений, объявление операторов, обработка файлов, наблюдение за выполнением программы на ПРОЛОГе. Примеры использования встроенных предикатов. Тема 9. Дополнительные возможности Программирование второго порядка. Множественные выражения. Предикаты "univ", findall, bagof, setof. Интерфейсные и графические возможности версий ПРОЛОГа. Тема 10. Отладка ПРОЛОГ-программы Рекомендации по расположению текста программ. Типичные ошибки при работе с ПРОЛОГом. Использование трассировки и контрольных точек в ПРОЛОГ-системе. Фиксация ошибок. Тема 11. Constraint-технология в логическом программировании Constraint-технология в логическом программировании: обобщение механизма унификации, понятие constraint'а. Операционная модель Constraint-ПРОЛОГа. Инструментальные средства Constraint-ПРОЛОГа; Применение Constraint-ПРОЛОГА в задачах исследования операций. Тема 12. Заключение Тенденции и перспективы развития методов и средств логического программирования. Параллелизм в ПРОЛОГЕ. Логическое программирование как перспективная методология разработки интеллектуальных систем. Тема 13. Теоретические основы функционального программирования Теоретические основы функционального программирования: рекурсивные функции и лямбда-исчисление А. Черча. Программирование в функциональных обозначениях. Понятие строго функционального языка. Представление и интерпретация функциональных программ. 5
Тема 14. Базовые функции языка ЛИСП Алфавит, семантика языка. Цикл работы интерпретатора. Атом, список, символьное выражение, функция. Селекторы, конструкторы и предикатные функции. Внутренне представление списков. Тема 15. Системные свойства символа Системные свойства символа: печатное имя, значение, определение функции, список свойств. Определение и модификации значений системных свойств. Обобщенная функция присваивания. Тема 16. Определение функции Определение функции: лямбда-выражение и лямбда-вызов. Функция определения функции. Список аргументов. Тема 17. Управляющие структуры Классификация управляющих структур. Структуры следования, разветвления и повторение. Императивный стиль программирования средствами функционального языка. Тема 18. Рекурсивный стиль программирования Основы теории рекурсивных функций. Средства и приемы построения рекурсивных программ. Сравнение рекурсивного и итеративного подхода к реализации алгоритмов. Тема 19. Функционалы Понятие функционала. Применяющие и отображающие функционалы. Примеры решения задач с использованием функционалов. Тема 20. Ввод и вывод Организация работы с файлами. Основные функции ввода/вывода информации. Макросы чтения. Программирование с использованием «черепаховой графики». Тема 21. Объектно-ориентированное программирование средствами ЛИСПа Концепции организации интерфейса. Классы, методы, наследование. Примеры создания и инициализации объектов. Тема 22. Заключение Перспективы развития языков функционального программирования.
6
Перечень практических занятий №п/п 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Наименование Организация рекурсивных программ: Использование отсечения в ПРОЛОГ-программах Средства ввода-вывода Стандартные предикаты ПРОЛОГа Работа с внелогическими предикатами Отладка программ на ПРОЛОГе Применение ПРОЛОГа в задачах искусственного интеллекта Базовые функции языка ЛИСП Системные свойства символа Определение функции Управляющие структуры Рекурсивный стиль программирования Функционалы Ввод/вывод Объектно-ориентированное программирование средствами ЛИСПа
7
№ темы 5 6 7 8 9 10 11 14 15 16 17 18 19 20 21
Распределение учебных часов по темам и видам занятий № темы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Объем учебных часов Аудит. занятия
Самост. работа
Всего
Семестр
1
1
1
2
5
2
4
4
8
5
Название разделов и тем
Лекции
Введение в проблематику логического и функционального программирования. Основные понятия логического программирования Основные элементы языка Арифметика Согласование целевых утверждений Рекурсивное представление данных в программе Отсечение и способы его использования Ввод и вывод Встроенные предикаты Дополнительные возможности Отладка ПРОЛОГ-программ Constraint-технология в логическом программировании. Заключение Теоретические основы функционального программирования: Базовые функции языка ЛИСП: Системные свойства символа: Определение функции: Управляющие структуры: Рекурсивный стиль программирования: Функционалы Ввод и вывод Объектно-ориентированное программирование средствами ЛИСПа: Заключение: ИТОГО
Лабор. занятия
Практ. занятия
1 1 1
2 1 1
2 2 2
2 2 2
4 4 4
5 5 5
1
2
2
2
4
5
1
1
2
2
4
5
1 1 2 2 1
2 2 1 2
2 2 4 4 3
2 2 4 4 3
4 4 8 8 6
5 5 5 5 5
2 4
2 4
4 8
5 5
1 2 1 1 1 2 2
2 2 1 2 3
2 3 2 4 4
2 3 2 4 4
4 6 4 8 8
5 5 5 5 5
2 2 2
2 2 2
4 4 4
4 4 4
8 8 8
5 5 5
1 64
2 128
5
16
1 64
1 32
8
ЛИТЕРАТУРА Основная
№
Название, библиографическое описание
1
Лорьер Ж.-Л. Системы искусственного интеллекта. М.: Мир, 1991. Л.Стерлинг, Э.Шапиро. Искусство программирования на языке ПРОЛОГ. М. Мир, 1990. И.Братко. Программирование на языке ПРОЛОГ для искусственного интеллекта. М.Мир,1990 Хювенен Э., Сеппянен И. Мир ЛИСПа. В 2 т. - М.: Мир, 1990 Филд А., Харрисон П. Функциональное программирование. - М.: Мир, 1993 Хендерсон П. Функциональное программирование. Применение и реализация. - М.: Мир, 1983
2 3 4 5 6
Л
Пр зан
К-во экз. в библ. (на каф.)
Гриф
5
Уч 34
ГК СССР по нар.обр.
5
Уч 154
ГК СССР по нар.обр.
5
Уч 4
ГК СССР по нар.обр.
5
5
Т1-54 Т2-58
ГК СССР по нар.обр.
5
5
Уч 8
5
Уч 29
Ком. по ВШ Мин. науки МВ и ССО СССР
Дополнительная №
Название, библиографическое описание
1 2
Уинстон П. Искусственный интеллект. М.,Мир, 1990. Бердж В. Методы рекурсивного программирования. М., Машиностроение, 1983 J.Cohen. Constraint Logic Programming Languages. Communication of the ACM, 1990, Vol.33, No.7 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 Тей А. и др. Логический подход к искусственному интеллекту: от классической логики к логическому программированию. - М.: Мир, 1990. Ковальский Р. Логика в решении проблем. - М.: Наука, 1990. Нильсон Н. Принципы искусственного интеллекта. /Пер. с англ. Р.М. Абдусаматова, Ю.И. Крюкова; Под. ред. Стефанюка В.Л. - М.: Радио и связь, 1985. Абилов В.Г., Зинченко Н.И. Turbo и Arity: два подхода к логическому программированию. //Мир ПК No.2,3, 1990. Язык Пролог в пятом поколении ЭВМ. - М.: Мир, 1988.
3 4 5 6 7 8 9
9
К-во экз. в библ. (на каф.)
Уч 0 Уч 0 Уч 0 Уч 0 Уч 0 Уч 0 Уч 9 Уч 0 Уч 0
Авторы: ассистент
Беляев С.А.
Рецензент
Казак А.Ф.
к.т.н., доцент Зав. кафедрой математического обеспечения и применения ЭВМ д.т.н., профессор
Лисс А.Р.
Декан факультета КТИ д.т.н., профессор
Герасимов И.В.
Зав. отделом учебной литературы
Смирнова О.Н.
Программа согласована: Председатель методической комиссии факультета КТИ
Михалков В.А.
к.т.н., доцент Руководитель методического отдела к.т.н., доцент
Марасина Л.А.
10