Lab 1 (Prolog) Flashcards
На чём основан язык программирования Prolog?
Логика предикатов
Что такое предикат?
Функция, возвращающая бинарное значение (истина или ложь)
Какой знак в Prolog идентичен конъюнкции (союз “И”)?
Запятая (,)
Что такое унификация?
Сопоставление предиката цели с предикатами базы знаний
Два состояния переменных в Prolog
Свободные (free) и связанные (bound)
Допускается ли переприсвоение значений переменным в Prolog?
Нет
Что такое неоднозначный предикат?
Предикат, у которого несколько экземпляров в базе знаний
Что такое однозначный предикат?
Предикат, у которого один экземпляр в базе знаний
Что происходит в случае неоднозначного предиката после неудачи?
Переход к следующему экземпляру предиката (откат) и отмена присвоения значения переменным
Что такое правило в Prolog?
- Условное отношение
- Способ порождения новых фактов на основе имеющихся
- Знания, которые выводятся на основании фактов
Что является заголовком правила в Prolog?
Выражение слева от условия
Что является телом правила в Prolog?
Выражение справа от условия
Что такое факт в Prolog?
- То, что изначально известно
- Знания, основанные на константах
Какими являются переменные в Prolog?
Локальными (существуют только внутри правила)
Как создаются глобальные переменные в Prolog?
С помощью предиката assert
Как уничтожаются глобальные переменные в Prolog?
С помощью предикатов retract или retractall
Содержит ли в себе алгоритм набор фактов и правил в языке Prolog?
Нет
В ходе чего происходит объединение правил для вывода результата?
Резолюции цели
Что такое резолюция цели?
Выполнение программы на Prolog
Куда происходит переход при откате внутри правила?
К предыдущему неоднозначному предикату в правиле
Как сделать предикат симметричным?
Создать правило, в котором переменные в заголовке и теле правила меняются местами
Каким образом Prolog выполняет резолюцию цели?
Делает полный обход дерева решений
Что такое отсечение в Prolog?
Предикат, который обозначается восклицательным знаком и вставляется в правило
Когда срабатывает отсечение?
Когда Prolog пройдёт через него
Какова функция отсечения?
Уничтожает указатели отката, делая предыдущие предикаты данного правила однозначными
Когда следует включать отсечения в программу?
Когда точно известно, что решение либо единственное, либо его нет вовсе
Какое отсечение называется зелёным?
Не влияющее на логику работы программы, сокращающее возможные спуски по ложным ветвям дерева решений
Какое отсечение называется красным?
Влияющее на логику программы, без которого программа работает иначе
В чём преимущество использования отсечений?
Отсечения позволяют существенно сокращать как время работы программы, так и объём требуемой оперативной памяти
Что такое список в Prolog?
Упорядоченная последовательность однотипных элементов
Как создаётся список с точки зрения синтаксиса?
Элементы списка
заключаются в квадратные скобки и разделяются запятыми
Как объявляется список?
название_списка = тип_списка*
Какова единственная операция, которая допускается над списком?
Отсечение головы от хвоста (можно использовать только в аргументах предикатов)
Какой знак в Prolog идентичен дизъюнкции (союз “ИЛИ”)?
Точка с запятой (;)