Основы программирования на языке Visual Prolog: Информация
Автор: Елена Ефимова
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
Вам нравится? Нравится 22 студентам
Уровень:
Для всех
Длительность:
11:22:00
Студентов:
922
Выпускников:
238
В курсе изучается логическое программирование и язык Пролог. В качестве реализации языка Пролог используется современная версия языка Visual Prolog. Предназначен для начинающих.
Рассматриваются основные теоретические понятия логического программирования, а также приемы и методы программирования на языке Пролог. Изучаются основы программирования на языке Visual Prolog 7.x. Изложение сопровождается большим количеством примеров программ. Приводятся списки упражнений для самостоятельной работы.
Курс предназначен для студентов, специализирующихся в области информационных технологий, прикладной математики и информатики, программной инженерии, разработки и анализа интеллектуальных систем, программистов и всех, интересующихся практическим использованием логического программирования.
Темы: Программирование
Специальности: Программист
План занятий
Занятие
Заголовок <<
Дата изучения
Лекция 1
41 минута
Определение отношений в программе
Вводятся основные понятия логического программирования и базовые понятия языка Пролог. Рассматриваются примеры определения отношений в программе на языке Пролог. Показывается, как использовать интерпретатор PIE для написания программ на языке Пролог, а также как создавать консольные приложения в системе Visual Prolog. Описываются основные разделы программы в языке Visual Prolog.
Оглавление
-
Лекция 2
51 минута
Машина вывода Пролога
Изучается устройство вычислений в языке Пролог. Дается представление о машине вывода Пролога. Рассматривается конструкция сложных термов и понятие отрицания в языке Пролог. Показывается, как использовать трассировку в PIE и отладчик системы Visual Prolog.
Оглавление
-
Лекция 3
33 минуты
Управление перебором. Отсечение
Основными средствами управления перебором являются предикаты отсечения, fail и отрицания. В данной лекции вводится отсечение. Определяются режимы детерминизма предикатов и потоки параметров. Обсуждается предикат findall, собирающий решения в список, и его обобщение — конструкция […||…].
Рассматриваются примеры решения логических задач. Для решения задач обычно используется метод "образовать и проверить": сначала генерируются возможные значения переменных, а потом проверяется удовлетворение их условиям задачи. В целях сокращения перебора отбрасывание ненужных значений должно производиться как можно раньше. В данном случае перебором управляет порядок следования вычисляемых подцелей.
Оглавление
-
Лекция 4
26 минут
Внутренняя база данных
Рассматриваются циклы, управляемые откатом, факты-переменные и внутренние базы данных. Приводятся средства, которые используются для создания, хранения и изменения состояний внутренних баз данных. Рассматриваются примеры работы с файлами.
Внутренние базы данных в языке Пролог состоят из последовательности фактов. Эти факты могут добавляться или удаляться во время исполнения программы, обрабатывается база данных в оперативной памяти компьютера. Поэтому внутреннюю базу данных называют динамической.
Оглавление
-
Лекция 5
19 минут
Рекурсия
Рекурсивное программирование является в логических языках основным видом программирования. Эффективность рекурсивных программ повышается с помощью хвостовой рекурсии.
Рассматриваются виды рекурсии и рекурсивные алгоритмы. Кроме этого, вводятся понятие функции и понятие предикатного домена в языке Visual Prolog.
Оглавление
-
Лекция 6
20 минут
Списки. Полиморфизм
Списки в языке Пролог являются одной из основных структур данных. Рекурсивная природа списков предполагает их рекурсивную обработку. Рассматриваются понятия полиморфизма и параметрического полиморфизма. Определяются основные полиморфные предикаты обработки списка.
Оглавление
-
Лекция 7
22 минуты
Списки. Предикаты высших порядков
В классе list языка Visual Prolog определено большое количество предикатов обработки списков. Среди них имеются предикаты высших порядков. В данной лекции обсуждаются предикаты класса list. Вводятся анонимные предикаты. Рассматриваются алгоритмы сортировки. Списки используются для моделирования множеств и операций над ними.
Оглавление
-
Лекция 8
30 минут
Графы
Изучаются основные методы поиска путей на графах – поиск в глубину и поиск в ширину. Рассматривается отношение достижимости на графе. Разбираются некоторые способы поиска кратчайших путей. Генерируется случайный лабиринт, визуализируется проход по нему.
Версия Visual Prolog 7.5, еще не опубликована. Ее публикация планируется в 2014 году, но точная дата пока не известна. Сейчас всем доступна версия Visual Prolog 7.4.
Оглавление
-
Лекция 9
19 минут
Деревья
Рассматриваются конечные корневые деревья – бинарные деревья и деревья произвольного вида. Деревья представляются в виде термов. Домены этих термов определяются рекурсивно. В качестве доменов деревьев используются полиморфные домены. Примером дерева первого вида является дерево предков человека, а примером дерева второго вида – дерево потомков.
Оглавление
-
Лекция 10
11 минут
Арифметика и строки
Рассматриваются примеры реализации некоторых операций над целыми числами, предикаты класса math и предикаты класса string. Строится изображение троичного острова Коха.
Оглавление
-
Лекция 11
29 минут
Парсеры
Изучаются синтаксические анализаторы, или парсеры. Синтаксический анализатор проверяет строку на соответствие грамматике. Результатом анализа, или разбора строки является дерево разбора, листьями которого являются терминальные символы грамматики, а остальными вершинами – нетерминальные символы. Рассматривается парсер некоторых английский предложений, арифметических выражений и составных термов языка Пролог. Реализуется алгоритм поиска наибольшего общего унификатора.
Оглавление
-
Лекция 12
46 минут
Язык запросов
Настоящая глава посвящена созданию базы данных "Родственные отношения". База может изменяться во время исполнения программы, с помощью добавления и удаления фактов, в процессе диалога с пользователем. Рассматривается язык запросов к базе данных, близкий к естественному языку. Вычисляются ответы на запросы. Создается консольный проект в объектном стиле.
Оглавление
-
Лекция 13
31 минута
Поиск в пространстве состояний
Лекция посвящена решению задач при помощи графа пространства состояний. Пространство состояний описывается в виде множества состояний – вершин графа, множества переходов от состояния к состоянию – дуг графа, множества начальных состояний и множества конечных состояний. Решение задачи представляется в виде пути на графе пространства состояний, соединяющего начальное состояние с конечным. Если пространство состояний задачи невелико, то будут находиться все оптимальные решения с помощью поиска в глубину. В задачах с большим пространством состояний будет вычисляться только одно оптимальное решение посредством поиска в ширину. К задачам применяются универсальные решатели. Состояния в разных задачах могут принадлежать различным доменам. Для запоминания наилучших среди найденных решений используется "изменяемая переменная" varM. Компилятор сам находит нужные типы.
Версия Visual Prolog 7.5, еще не опубликована. Ее публикация планируется в 2014 году, но точная дата пока не известна. Сейчас всем доступна версия Visual Prolog 7.4.
Оглавление
-
Лекция 14
20 минут
Игры
Рассматриваются игры "Ползунок", "Поле чудес" и "Отгадай числа". В топологической игре "Ползунок" пользователь играет с компьютером. Поле для игры невелико, поэтому выигрышные ходы, в случаях, когда они существуют, находятся с помощью перебора возможных продолжений игры. В игре "Поле чудес" пользователь отгадывает слово, загаданное компьютером. "Отгадай числа" – это игра пользователя с компьютером, в которой участники отгадывают наборы чисел, загаданные противниками. Стратегия компьютера реализуется с помощью генерации варианта хода и отбрасывания вариантов, которые не согласуются с результатами предыдущих ходов компьютера.
Оглавление
-
Лекция 15
28 минут
Экспертная система. Логическая задача. Фейерверк
Рассматриваются примеры решения задач на языке Visual Prolog. Создается небольшая экспертная система. Она применяется для определения мифологических животных. Приводится решение так называемой "головоломки Эйнштейна" (задачи, авторство которой приписывается Эйнштейну). Моделируется фейерверк.
Оглавление
-