Здравствуйте! Неясно, решился ли вопрос с загрузкой презентации - см. вопрос выше. Без нее занятие становится крайне затруднительным, практически невозможным! |
Логическое программирование: Информация
Автор: Дмитрий Сошников | Московский физико-технический институт
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
Вам нравится? Нравится 26 студентам
Уровень:
Специалист
Длительность:
4:48:00
Студентов:
1633
Выпускников:
235
Качество курса:
4.80 | 4.70
Курс предназначен для студентов, специализирующихся в области компьютерных наук, и знакомит их с парадигмой программирования, основанной на логике предикатов, которая отличается от наиболее широко распространенного в современном программировании императивного подхода.
Курс содержит достаточно подробное изложение теоретических основ логического подхода к программированию, а также служит практическим пособием по современным языкам логического программирования – Пролог и Mercury – которые могут использоваться и используются для разработки исследовательских и промышленных систем наряду с более традиционными императивными языками. Наличие систем программирования на этих языках для платформы Microsoft .NET позволяет эффективно применять полученные знания и навыки в промышленных разработках.В курсе также рассматривается использование логического программирования для создания интеллетуальных систем, излагаются основные понятия искусственного интеллекта, такие, как общение на естественном языке, представление знаний, методы эвристического поиска в пространстве состояний и т.д.
Темы: Программирование
Специальности: Программист
Теги: 1-грамматика, алгоритм, алгоритмы, вычисления, логика, отсечение, парадигма программирования, поиск, предикат, программирование, пролог-программа, семантика, функция, язык программирования
План занятий
Занятие
Заголовок <<
Дата изучения
Что такое логическое программирование
Языки программирования. Декларативное программирование. Императивное программирование. Логическое программирование. Парадигмы программирования.
Оглавление
- Введение
- Логическое программирование
- Что такое логическое программирование?
- Мечта человечества
- Потенциальный способо реализации
- Языки программирования
- Обратимся к истории
- Языки логического программирования
- Как выглядит на практике?
- Декларативное программирование
- Императивное программирование
- Логическое программирование
- Практические преимущества
- Парадигмы программирования
- Почему важно изучать логическое программирование?
- Какие задачи хорошо решаются на логических языках?
-
Введение в Пролог и логическое программирование
Устройство пролог системы.Деревья. Примеры.
-
Логика
История логики, формальная аксиоматическая система, логика и исчисление предикатов, эрбановская интерпретация.
Оглавление
-
Метод резолюции
Логика высказываний и предикатов. Сколемизация. Построение множества дизъюнктов. Унификация. Наиболее общий унификатор. Правило резолюции. Дизъюнкты Хорна. Стратегии поиска решений.
Оглавление
- Введение
- В чем проблема синтаксического метода доказательства?
- Простая резолюция для логики высказываний
- Пример
- Сложности с логикой предикатов
- Пренексная нормальная форма
- Сколемизация
- Построение множества дизъюнктов
- Процесс доказательства методом резолюции
- Унификация
- Наиболее общий унификатор
- Обобщенное правило резолюции
- Стратегии резолюции
- Дизъюнкты Хорна
- Дерево вывода
- Стратегии поиска решений
- Полнота и достоверность
-
Языки логического программирования Пролог и Mercury
Пролог-программа. Свободные и связные переменные. Структурные термы для представления бесконечных объектов. Характеристики операторов. Встроенные предикаты. Язык Mercury. Режимы предикатов.
Оглавление
- Введение
- Пролог-программа
- Объекты программы
- Свободные и связные переменные
- Структурные термы
- Структурные термы для представления бесконечных объектов
- Характеристики операторов
- Пример
- Пользовательские операторы
- Пример
- Встроенные предикаты
- Ввод-вывод
- Язык Mercury
- Примеры
- Режимы предикатов
- Режимы предикатов
- Мораль
-
Рекурсивные структуры данных. Списки и деревья
Последовательности. Определение. Списки в прологе. Построение перестановок. Функции высших порядков. Рекурсии. Реверсирование списка. Разностные списки. Порядковое представление списков. Представление матриц. Деревья. Сортировка списка.
Оглавление
- Введение
- Последовательности
- Определение
- Списки в прологе
- Рекурсивная обработка рекурсивной структуры
- Определение длины списка
- Принадлежность элементу списка
- Конкатенация списков
- Построение перестановок
- Функции высших порядков
- Подводим итоги
- Рекурсии
- Реверсирование списка
- Разностные списки
- Порядковое представление списков
- Представление матриц
- Деревья
- Сортировка списка
- Мораль
-
Отрицание в логическом программировании
Отрицание. Управление перебором и отсечение. Метод генерации и проверок.
Оглавление
- Введение
- Пример
- Отрицание по неуспеху
- Пример Леса вывода для unic
- Предположение о замкнутости мира
- Отрицание по конечному и бесконечному неуспеху
- Дополнительная логическая программа
- Полнота и непротиворечивость отрицания по неуспеху
- SLDNF-резолюция
- Генерация значений отрицанием
- Нарушение чистоты логической программы
- Отсечения
- Пример
- Условные оператор в Mercury
- Отсечение для удаления нежелательных ветвей дерева
- Решение логических задач. Метод генерации и проверок
-
Решение логических задач. Метод генерации и проверок
Генерация квадрата. Транспонирование матрицы. Метод ветвей и границ. Явный и неявный выбор. Наивная сортировка. Циклы.
-
Типизация в логических языках
Возникновение типизации. Классификация языков. Система типов. Многослойная логика предикатов. Классы конкретизации. Детерминизм. Предикаты как функции. Каррирование
Оглавление
- Введение
- Простые числа. Решето Эратосфена
- Откуда возникла типизация
- В императивных языках
- Классификация языков
- Статический и динамический контроль типов
- Система типов
- Типизация в логических языках
- Многослойная логика предикатов
- Правила выводов типов
- Корректность системы типов
- Режимы доказательства
- Классы конкретизации
- Детерминизм
- Предикаты как функции. Каррирование
- Мораль
-
Алгоритмы поиска в графах
Представление задачи в виде графа. Совершенствование поиска. Алгоритм фронта волны. Поиск с ограничением длины. Решение задач методом поиска в пространстве состояний
-
Алгоритмы поиска в нагруженных графах
Представление пути в нагруженном графе. Поиск с весовой функцией. Порядок просмотра путей. Жадный алгоритм поиска. Допустимость алгоритма поиска. Информированность. Монотонность. Метод градиентного спуска. Использование глобального списка пройденных вершин. Поиск с представлением путей парами
Оглавление
- Введение
- Игра в 8
- Граф дорог между городами
- Нагруженные графы
- Представление пути в нагруженном графе
- Поиск с весовой функцией
- Порядок просмотра путей
- Жадный алгоритм поиска
- Алгоритм А
- Допустимость алгоритма поиска
- Информированность
- Монотонность
- Алгоритм IDA*
- Метод градиентного спуска
- Представление списка путей деревом
- Tree Search
- Closed Vertex List
- Использование глобального списка пройденных вершин
- Поиск с представлением путей парами
- Мораль
-
Символьные вычисления и преобразование выражений
Языки ЛП для символьных вычислений. Символьное дифференцирование. Упрощение выражений. Численное сравнение выражений. Расширение Пролога: операции линейной алгебры
-
Обработка (естественного) языка
Языки и грамматики. Извлечение глубинного смысла. Депассивизация. Модельный язык программирования. Архитектура системы программирования. Синтаксический разбор. Абстрактная стековая машина.
Оглавление
- Введение
- Общая задача «понимания ЕЯ»
- Языки и грамматики
- Классификация грамматик по Хомскому
- Контекстно-свободные грамматики
- DCG-нотация
- Разбор английского языка
- Грамматика расширенной сети переходов (ATN)
- Извлечение глубинного смысла
- Построение глубинного смысла
- Депассивизация
- Мораль
- Модельный язык программирования
- Архитектура системы программирования
- Синтаксический разбор
- Абстрактная стековая машина
- Команды абстрактной стековой машины
- Интерпретатор абстрактной машины
-
F-Logic и объектно-ориентированное логическое программирование
Объектно-ориентированное программирование. Парадигмы программирования и представления данных. Основные подходы применительно к логике F-logic на примере. Построение F-логики. Множественное описание сущностей и связей. Формальная семантика. Расширение семантики на сложные концепты.
Оглавление
- Введение
- Объектно-ориентированное программирование
- Парадигмы программирования и представления данных
- Основные подходы применительно к логике
- F-logic на примере
- Построение F-логики
- Мораль
- При представлении знаний важно описать
- Множественное описание сущностей и связей
- Простейшая структурная логика FL
- Формальная семантика
- Расширение семантики на сложные концепты
- Вывод в DL
- Более сложные разновидности DL: ALC
- Semantic Web
-
Метапрограммирование
Метапрограммирование. Вывод с ограничением по глубине (в ширину). Трассировка запросов. Искусственный интеллект. Человек как система обработки данных. Системы, основанные на знаниях. Представление знаний. Пролог как язык ИИ.
-
Экспертные системы
Продукционные экспертные системы. Механизмы логического вывода. Реализация экспертных систем на Прологе. Механизм вывода.
Оглавление
- Введение
- Экспертные системы
- Продукционные экспертные системы
- Представление значений
- Критерий разрешения конфликтов
- Механизмы логического вывода
- Поиск и механизм логического вывода
- Почему продукционные ЭС
- Реализация экспертных систем на Прологе
- ЭС с обратным выводом
- ЭС с прямым выводом
- Специализированный ЯПЗ
- Механизм вывода
- Мораль
-