Опубликована: 05.04.2011 | Уровень: для всех | Стоимость: 3000.00 руб. | Длительность: 14 дней
Курс предназначен для студентов, специализирующихся в области компьютерных наук, и знакомит их с парадигмой программирования, основанной на логике предикатов, которая отличается от наиболее широко распространенного в современном программировании императивного подхода.
Курс содержит достаточно подробное изложение теоретических основ логического подхода к программированию, а также служит практическим пособием по современным языкам логического программирования – Пролог и Mercury – которые могут использоваться и используются для разработки исследовательских и промышленных систем наряду с более традиционными императивными языками. Наличие систем программирования на этих языках для платформы Microsoft .NET позволяет эффективно применять полученные знания и навыки в промышленных разработках.В курсе также рассматривается использование логического программирования для создания интеллетуальных систем, излагаются основные понятия искусственного интеллекта, такие, как общение на естественном языке, представление знаний, методы эвристического поиска в пространстве состояний и т.д.
Цель: Цель курса – познакомить слушателя с новой парадигмой программирования и соответствующей алгоритмической моделью, дать практические навыки программирования на языках Пролог (P#) и Mercury для платформы Microsoft .NET, познакомить с основными методами решения задач искусственного интеллекта. После изучения первой части курса слушатель должен: <li>иметь понятие об императивной, логической и функциональной парадигмах программирования, называть различные языки программирования в этих классах <li>понимать связь формальной математической теории логики предикатов первого порядка с программированием в терминах логики, иметь понятие об ограничениях логического программирования и алгоритмической неразрешимости ряда задач, об алгоритмах автоматического логического вывода на основе различных стратегий резолюции (SLD, SLDNF), о типизированном логическом программировании <li>знать инструментальные средства логического программирования: языки Пролог и Mercury, и способы их совместного использования с другими программными средствами на платформе Microsoft .NET <li>владеть основными приемами использования языков Пролог и Mecrury для решения типовых задач (различные алгоритмы поиска в пространстве состояний, упрощение и преобразование выражений, анализ текста на естественном языке и т.д.)<br> Он должен уметь: <li>использовать языки логического программирования для реализации известных алгоритмов информатики, включая реализацию типовых структур данных, поиск в графах и т.д. <li>выделять характерные задачи для эффективного применения методов искуственного интеллекта и логического программирования в частности, предлагать способы их решения <li>реализовывать на языке логического программирования (Пролог) различные способы представления знаний и использования этих представлений <li>использовать подходы и языки логического программирования при построении программных систем, в том числе совместно с традиционными системами программирования.
Необходимые знания: Для успешного изучения курса желательно (но не обязательно) предварительное знакомство с некоторыми разделами дискретной математики (логика и исчисление высказываний и предикатов, теория решеток), а также с вычислительной платформой Microsoft .NET. Навыки программирования на императивных языках не обязательны, хотя местами в курсе проводятся сравнения логического подхода с более традиционным императивным программированием, которое в подавляющем большинстве учебных планов изучается на ранних этапах образовательного процесса.

План занятий

ЗанятиеЗаголовок <<Дата изучения
-
Лекция 1
1 час 30 минут
Что такое логическое программирование
Языки программирования. Декларативное программирование. Императивное программирование. Логическое программирование. Парадигмы программирования.
Оглавление
-
Лекция 2
1 час 17 минут
-
Тест 1
36 минут
-
Лекция 3
1 час 20 минут
-
Лекция 4
1 час
Метод резолюции
Логика высказываний и предикатов. Сколемизация. Построение множества дизъюнктов. Унификация. Наиболее общий унификатор. Правило резолюции. Дизъюнкты Хорна. Стратегии поиска решений.
Оглавление
-
Тест 2
36 минут
-
Лекция 5
1 час 18 минут
Языки логического программирования Пролог и Mercury
Пролог-программа. Свободные и связные переменные. Структурные термы для представления бесконечных объектов. Характеристики операторов. Встроенные предикаты. Язык Mercury. Режимы предикатов.
-
Лекция 6
1 час 31 минута
Рекурсивные структуры данных. Списки и деревья
Последовательности. Определение. Списки в прологе. Построение перестановок. Функции высших порядков. Рекурсии. Реверсирование списка. Разностные списки. Порядковое представление списков. Представление матриц. Деревья. Сортировка списка.
-
Тест 3
36 минут
-
Лекция 7
1 час 15 минут
Отрицание в логическом программировании
Отрицание. Управление перебором и отсечение. Метод генерации и проверок.
Оглавление
-
Лекция 8
1 час 7 минут
-
Тест 4
36 минут
-
Лекция 9
1 час 21 минута
Типизация в логических языках
Возникновение типизации. Классификация языков. Система типов. Многослойная логика предикатов. Классы конкретизации. Детерминизм. Предикаты как функции. Каррирование
-
Лекция 10
1 час 21 минута
-
Тест 5
36 минут
-
Лекция 11
1 час 31 минута
Алгоритмы поиска в нагруженных графах
Представление пути в нагруженном графе. Поиск с весовой функцией. Порядок просмотра путей. Жадный алгоритм поиска. Допустимость алгоритма поиска. Информированность. Монотонность. Метод градиентного спуска. Использование глобального списка пройденных вершин. Поиск с представлением путей парами
Оглавление
-
Лекция 12
39 минут
-
Тест 6
36 минут
-
Лекция 13
1 час 38 минут
Обработка (естественного) языка
Языки и грамматики. Извлечение глубинного смысла. Депассивизация. Модельный язык программирования. Архитектура системы программирования. Синтаксический разбор. Абстрактная стековая машина.
Оглавление
-
Лекция 14
1 час 11 минут
F-Logic и объектно-ориентированное логическое программирование
Объектно-ориентированное программирование. Парадигмы программирования и представления данных. Основные подходы применительно к логике F-logic на примере. Построение F-логики. Множественное описание сущностей и связей. Формальная семантика. Расширение семантики на сложные концепты.
Оглавление
-
Тест 7
36 минут
-
Лекция 15
1 час 46 минут
-
Лекция 16
49 минут
Экспертные системы
-
Тест 8
36 минут
-
5 часов
-