Главная / Программирование /
Логическое программирование / Тест 8
Логическое программирование - тест 8
Упражнение 1:
Номер 1
Предикат not(P) в языке программирования Prolog завершается успехом, если:
Ответ:
 (1) доказательство P неуспешно 
 (2) удается найти хотя бы одно доказательство P 
 (3) удается найти все возможные доказательства P 
Номер 2
Предикат not(P) в языке программирования Prolog завершается неуспехом, если:
Ответ:
 (1) доказательство P неуспешно 
 (2) удается найти хотя бы одно доказательство P 
 (3) удается найти все возможные доказательства P 
Номер 3
SLDNF-резолюция ...
Ответ:
 (1) обладает свойством полноты 
 (2) не обладает свойством полноты 
 (3) всегда заканчивается успехом 
Упражнение 2:
Номер 1
Укажите определение теоремы о достоверности отрицания по конечному неуспеху:
Ответ:
 
(1) пусть P — логическая программа без отрицаний. Если некоторое утверждение
A имеет конечное дерево SLD-резолюции, заканчивающиеся неуспехом, то

 
 
(2) пусть P — логическая программа без отрицаний. Если

, то существует конечное дерево SLD-резолюции для
A, заканчивающееся неуспехом 
 
(3) 
не выводимо тогда, когда
A имеет конечное дерево вывода, заканчивающиеся неуспехом 
Номер 2
Предикат repeat языка программирования Prolog:
Ответ:
 (1) может заканчиваться как успехом, так и неуспехом 
 (2) всегда заканчивается успехом 
 (3) всегда заканчивается неуспехом 
Номер 3
Декларативная семантическая модель программы на языке Prolog:
Ответ:
 (1) рассматривает правила как последовательность шагов, которые необходимо успешно выполнить для того, чтобы соблюдалось отношение, приведенное в заголовке правила 
 (2) рассматривает отношения, определенные в программе, при этом порядок следования предложений в программе и условий в правиле не важен 
 (3) рассматривает отношения, не определенные в программе 
Упражнение 3:
Номер 1
Укажите определение теоремы о полноте отрицания по конечному неуспеху:
Ответ:
 
(1) Пусть P — логическая программа без отрицаний. Если некоторое утверждение
A имеет конечное дерево SLD-резолюции, заканчивающиеся неуспехом, то

 
 
(2) Пусть P — логическая программа без отрицаний. Если

, то существует конечное дерево SLD-резолюции для
A, заканчивающееся неуспехом 
 
(3) 
не выводимо тогда, когда
A имеет конечное дерево вывода, заканчивающиеся неуспехом 
Номер 2
Использование предиката repeat языка программирования Prolog возможно только с:
Ответ:
 (1) предикатами без "побочных эффектов" 
 (2) предикатами с "побочным эффектом" 
 (3) предикатами, всегда заканчивающимися успехом 
Номер 3
Процедурная семантическая модель программы на языке Prolog:
Ответ:
 (1) рассматривает отношения, не определенные в программе 
 (2) рассматривает правила как последовательность шагов, которые необходимо успешно выполнить для того, чтобы соблюдалось отношение, приведенное в заголовке правила 
 (3) рассматривает отношения, определенные в программе, при этом порядок следования предложений в программе и условий в правиле не важен 
Упражнение 4:
Номер 1
Отсечения, при устранении которых программа начинает выдавать неправильные решения, называются:
Ответ:
 (1) "красными" 
 (2) "зелеными" 
 (3) "синими" 
Номер 2
Укажите дополнительное правило SLDNF-резолюции:
Ответ:
 
(1) 
выводимо тогда и только тогда, когда
A имеет конечное дерево вывода, заканчивающееся неуспехом 
 
(2) 
невыводимо тогда, когда
A имеет конечное дерево вывода, заканчивающееся неуспехом 
 
(3) 
выводимо тогда и только тогда, когда
A имеет конечное дерево вывода, заканчивающееся успехом 
Номер 3
Какое из утверждений соответствует дополнительному правило SLDNF-резолюции:
Ответ:
 
(1) 
заканчивается неуспехом тогда и только тогда, когда
A не имеет конечного успешного дерева вывода 
 
(2) 
заканчивается успехом тогда и только тогда, когда
A имеет конечное успешное дерево вывода 
 
(3) 
заканчивается неуспехом тогда и только тогда, когда
A имеет конечное успешное дерево вывода 
Упражнение 5:
Номер 1
Предикат отрицания not в Prolog:
Ответ:
 (1) не генерирует значений 
 (2) может генерировать значения 
 (3) всегда генерирует значения 
Номер 2
Двойное отрицание с использованием предиката not в Prolog:
Ответ:
 (1) не генерирует значений 
 (2) может генерировать значения 
 (3) всегда генерирует значения 
Номер 3
Может ли данный запрос в Prolog генерировать ответ в виде значений искомых переменных:
?-not(not(parent(X,Y))).
Ответ:
 (1) нет 
 (2) да 
 (3) в зависимости от исходных фактов 
Упражнение 6:
Номер 1
Укажите результат запроса ?- white(X), not(sweet(X)). для представленного ниже набора фактов на языке Prolog:
sweet(sugar).
white(sugar).
white(paper).
Ответ:
 (1) x=paper 
 (2) no 
 (3) x=sugar 
 (4) yes 
Номер 2
Укажите результат запроса ?- not(sweet(X)),white(X). для представленного ниже набора фактов на языке Prolog:
sweet(sugar).
white(sugar).
white(paper).
Ответ:
 (1) x=paper 
 (2) no 
 (3) x=sugar 
 (4) yes 
Номер 3
Укажите результат запроса ?- sweet(X),white(X). для представленного ниже набора фактов на языке Prolog:
sweet(sugar).
white(sugar).
white(paper).
Ответ:
 (1) x=paper 
 (2) no 
 (3) x=sugar 
 (4) yes 
Упражнение 7:
Номер 1
"Зеленые" отсечения - это ...
Ответ:
 (1) отсечения, при отбрасывании которых программа продолжает выдавать те же решения, что и при наличии отсечения 
 (2) отсечения, при устранении которых программа начинает выдавать неправильные решения 
 (3) отсечения, которые всегда заканчиваются неуспехом 
Номер 2
"Красные" отсечения - это ...
Ответ:
 (1) отсечения, при отбрасывании которых программа продолжает выдавать те же решения, что и при наличии отсечения 
 (2) отсечения, при устранении которых программа начинает выдавать неправильные решения 
 (3) отсечения, которые всегда заканчиваются неуспехом 
Номер 3
Отсечения, при отбрасывании которых программа продолжает выдавать те же решения, что и при наличии отсечения, называются:
Ответ:
 (1) "красными" 
 (2) "зелеными" 
 (3) "синими" 
Упражнение 8:
Номер 1
Укажите, какой вид отсечения используется в приведенном ниже фрагменте кода на Prolog:
max(X,Y,X) :- X>Y,!.
max(_,Y,Y).
Ответ:
 (1) "красное" отсечение 
 (2) "зеленое" отсечение 
 (3) в данном фрагменте нет отсечения 
Номер 2
Укажите, какой вид отсечения используется в приведенном ниже фрагменте кода на Prolog:
max(X,Y,X) :- X>Y,!.
max(X,Y,Y) :- X<=Y.
Ответ:
 (1) "красное" отсечение 
 (2) "зеленое" отсечение 
 (3) в данном фрагменте нет отсечения 
Номер 3
Укажите, какой вид отсечения используется в приведенном ниже фрагменте кода на Prolog:
max(X,Y,X) :- X>Y.
max(X,Y,Y) :- X<=Y.
Ответ:
 (1) "красное" отсечение 
 (2) "зеленое" отсечение 
 (3) в данном фрагменте нет отсечения 
Упражнение 9:
Номер 1
Родительским целевым утверждением для некоторого вхождения отсечения в логическую программу называется:
Ответ:
 (1) целевое утверждение, которое приводит к вызову правила, содержащего отсечение 
 (2) целевое утверждение, которое не приводит к вызову правила, содержащего отсечение 
 (3) целевое утверждение, которое приводит к вызову правила, не содержащего отсечения 
Номер 2
Целевое утверждение, которое приводит к вызову правила, содержащего отсечение, называется:
Ответ:
 (1) дочерним целевым утверждением 
 (2) родительским целевым утверждением 
 (3) фактом 
Номер 3
Укажите родительское целевое утверждение в данном примере:
C :- P, Q, !, R, S.
F :- T.
A :- B, C, D.
Ответ:
 (1) C 
 (2) A 
 (3) F 
Упражнение 10:
Номер 1
Аналогом какого предиката является в данном фрагменте программного кода Prolog предикат x?
x(P) :- P, !, fail.
x(_).
Ответ:
 (1) member 
 (2) repeat 
 (3) not 
Номер 2
Встроенный предикат отсечения языка Prolog ...
Ответ:
 (1) имеет декларативную семантику 
 (2) не имеет процедурной семантики 
 (3) не имеет декларативной семантики 
Номер 3
Встроенный предикат отсечения на языке Prolog обозначается символом:
Ответ:
 (1) $ 
 (2) _ 
 (3) # 
 (4) ! 
Упражнение 11:
Номер 1
Аналогом какого оператора императивного языка является приведенный ниже код на языке программирования Prolog:
Q :- A, !, B.
Q :- C.
Ответ:
 (1) if 
 (2) while 
 (3) for 
Номер 2
Аналогом какого оператора императивного языка является приведенный ниже код на языке программирования Prolog:
Q :- A, B.
Q :- not(A), C.
Ответ:
 (1) if 
 (2) while 
 (3) for 
Номер 3
Аналогом какого оператора императивного языка является приведенный ниже код на языке программирования Prolog:
W:- A,P,W.
W:-!.
Ответ:
 (1) if 
 (2) while 
 (3) for 
Упражнение 12:
Номер 1
Укажите ответ на запрос ?- num_legs(centipede,X). для приведенной ниже программы Prolog:
num_legs(centipede,40) :- !.
num_legs(human,2) :- !.
num_legs(_,4).
Ответ:
 (1) X=40 
 (2) X=4 
 (3) X=2 
 (4) yes 
 (5) no 
Номер 2
Укажите ответ на запрос ?- num_legs(dog,X). для приведенной ниже программы Prolog:
num_legs(centipede,40) :- !.
num_legs(human,2) :- !.
num_legs(_,4).
Ответ:
 (1) X=40 
 (2) X=4 
 (3) X=2 
 (4) yes 
 (5) no 
Номер 3
Укажите ответ на запрос ?- num_legs(centipede,4). для приведенной ниже программы Prolog:
num_legs(centipede,40) :- !.
num_legs(human,2) :- !.
num_legs(_,4).
Ответ:
 (1) X=40 
 (2) X=4 
 (3) X=2 
 (4) yes 
 (5) no