Lab 1 (Prolog) Flashcards

(34 cards)

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?

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
Какова функция отсечения?
Уничтожает указатели отката, делая предыдущие предикаты данного правила однозначными
26
Когда следует включать отсечения в программу?
Когда точно известно, что решение либо единственное, либо его нет вовсе
27
Какое отсечение называется зелёным?
Не влияющее на логику работы программы, сокращающее возможные спуски по ложным ветвям дерева решений
28
Какое отсечение называется красным?
Влияющее на логику программы, без которого программа работает иначе
29
В чём преимущество использования отсечений?
Отсечения позволяют существенно сокращать как время работы программы, так и объём требуемой оперативной памяти
30
Что такое список в Prolog?
Упорядоченная последовательность однотипных элементов
31
Как создаётся список с точки зрения синтаксиса?
Элементы списка заключаются в квадратные скобки и разделяются запятыми
32
Как объявляется список?
название_списка = тип_списка*
33
Какова единственная операция, которая допускается над списком?
Отсечение головы от хвоста (можно использовать только в аргументах предикатов)
34
Какой знак в Prolog идентичен дизъюнкции (союз "ИЛИ")?
Точка с запятой (;)