Lab 1 (Prolog) Flashcards

1
Q

На чём основан язык программирования Prolog?

A

Логика предикатов

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Что такое предикат?

A

Функция, возвращающая бинарное значение (истина или ложь)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Какой знак в Prolog идентичен конъюнкции (союз “И”)?

A

Запятая (,)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что такое унификация?

A

Сопоставление предиката цели с предикатами базы знаний

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Два состояния переменных в Prolog

A

Свободные (free) и связанные (bound)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Допускается ли переприсвоение значений переменным в Prolog?

A

Нет

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Что такое неоднозначный предикат?

A

Предикат, у которого несколько экземпляров в базе знаний

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что такое однозначный предикат?

A

Предикат, у которого один экземпляр в базе знаний

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Что происходит в случае неоднозначного предиката после неудачи?

A

Переход к следующему экземпляру предиката (откат) и отмена присвоения значения переменным

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Что такое правило в Prolog?

A
  1. Условное отношение
  2. Способ порождения новых фактов на основе имеющихся
  3. Знания, которые выводятся на основании фактов
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что является заголовком правила в Prolog?

A

Выражение слева от условия

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Что является телом правила в Prolog?

A

Выражение справа от условия

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Что такое факт в Prolog?

A
  1. То, что изначально известно
  2. Знания, основанные на константах
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Какими являются переменные в Prolog?

A

Локальными (существуют только внутри правила)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Как создаются глобальные переменные в Prolog?

A

С помощью предиката assert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Как уничтожаются глобальные переменные в Prolog?

A

С помощью предикатов retract или retractall

17
Q

Содержит ли в себе алгоритм набор фактов и правил в языке Prolog?

A

Нет

18
Q

В ходе чего происходит объединение правил для вывода результата?

A

Резолюции цели

19
Q

Что такое резолюция цели?

A

Выполнение программы на Prolog

20
Q

Куда происходит переход при откате внутри правила?

A

К предыдущему неоднозначному предикату в правиле

21
Q

Как сделать предикат симметричным?

A

Создать правило, в котором переменные в заголовке и теле правила меняются местами

22
Q

Каким образом Prolog выполняет резолюцию цели?

A

Делает полный обход дерева решений

23
Q

Что такое отсечение в Prolog?

A

Предикат, который обозначается восклицательным знаком и вставляется в правило

24
Q

Когда срабатывает отсечение?

A

Когда Prolog пройдёт через него

25
Q

Какова функция отсечения?

A

Уничтожает указатели отката, делая предыдущие предикаты данного правила однозначными

26
Q

Когда следует включать отсечения в программу?

A

Когда точно известно, что решение либо единственное, либо его нет вовсе

27
Q

Какое отсечение называется зелёным?

A

Не влияющее на логику работы программы, сокращающее возможные спуски по ложным ветвям дерева решений

28
Q

Какое отсечение называется красным?

A

Влияющее на логику программы, без которого программа работает иначе

29
Q

В чём преимущество использования отсечений?

A

Отсечения позволяют существенно сокращать как время работы программы, так и объём требуемой оперативной памяти

30
Q

Что такое список в Prolog?

A

Упорядоченная последовательность однотипных элементов

31
Q

Как создаётся список с точки зрения синтаксиса?

A

Элементы списка
заключаются в квадратные скобки и разделяются запятыми

32
Q

Как объявляется список?

A

название_списка = тип_списка*

33
Q

Какова единственная операция, которая допускается над списком?

A

Отсечение головы от хвоста (можно использовать только в аргументах предикатов)

34
Q

Какой знак в Prolog идентичен дизъюнкции (союз “ИЛИ”)?

A

Точка с запятой (;)