Опубликована: 05.04.2011 | Уровень: для всех | Стоимость: 490.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
-
Лекция 2
-
Тест 1
36 минут
-
Лекция 3
-
Лекция 4
-
Тест 2
36 минут
-
Лекция 5
-
Лекция 6
-
Тест 3
36 минут
-
Лекция 7
-
Лекция 8
-
Тест 4
36 минут
-
Лекция 9
-
Лекция 10
Алгоритмы поиска в графах
Представление задачи в виде графа. Совершенствование поиска. Алгоритм фронта волны. Поиск с ограничением длины. Решение задач методом поиска в пространстве состояний
-
Тест 5
36 минут
-
Лекция 11
Алгоритмы поиска в нагруженных графах
Представление пути в нагруженном графе. Поиск с весовой функцией. Порядок просмотра путей. Жадный алгоритм поиска. Допустимость алгоритма поиска. Информированность. Монотонность. Метод градиентного спуска. Использование глобального списка пройденных вершин. Поиск с представлением путей парами
-
Лекция 12
-
Тест 6
36 минут
-
Лекция 13
-
Лекция 14
-
Тест 7
36 минут
-
Лекция 15
Метапрограммирование
Метапрограммирование. Вывод с ограничением по глубине (в ширину). Трассировка запросов. Искусственный интеллект. Человек как система обработки данных. Системы, основанные на знаниях. Представление знаний. Пролог как язык ИИ.
-
Лекция 16
-
Тест 8
36 минут
-
5 часов
-