Автор работы: Пользователь скрыл имя, 27 Октября 2013 в 22:47, контрольная работа
Бимба умеет летать, но не умеет прыгать. Кузля умеет прыгать, но не умеет плавать. Мафик умеет плавать, но не умеет бегать. Лямзик умеет бегать, но не умеет ползать. Ромусик умеет ползать и прыгать. Бумсик умеет прыгать и летать. Мультяшка — супергерой, если он умеет летать или бегать. Мультяшка — бумерок, если он умеет ползать или плавать.
Логическое программирование на Prolog
Задание 1. Запрограммировать утверждения.
Бимба умеет летать, но не умеет прыгать. Кузля умеет прыгать, но не умеет плавать. Мафик умеет плавать, но не умеет бегать. Лямзик умеет бегать, но не умеет ползать. Ромусик умеет ползать и прыгать. Бумсик умеет прыгать и летать. Мультяшка — супергерой, если он умеет летать или бегать. Мультяшка — бумерок, если он умеет ползать или плавать.
domains
name=string
predicates
действие(name,name)
мультяшка_супергерой(string)
мультяшка_бумерок(string)
clauses
действие("Бимба","летает").
действие("Бумсик","летает").
действие("Кузля","прыгает").
действие("Ромусик","прыгает")
действие("Бумсик","прыгает").
действие("Мафик","плавает").
действие("Лямзик","бегает").
действие("Ромусик","ползает")
мультяшка_супергерой(X):-
мультяшка_бумерок(X) :- действие(X,"ползает")or действие(X,"плавает").
goal
мультяшка_супергерой(
мультяшка_бумерок(Mультяшка_
Ответ системы:
Задание 2. На основании сформулированного вопроса постройте факты и правила.
Какие живые существа имеют четыре ноги с копытами?
Факты:
Четыре_ноги (“Кошка”). Четыре_ноги (“Собака”). Четыре_ноги (“Корова”). Четыре_ноги (“Лиса”). Четыре_ноги (“Кабан”). Четыре_ноги (“Козел”). Четыре_ноги (“Лошадь”). |
Копыта (“Корова”). Копыта (“Кабан”). Копыта (“Козел”). Копыта (“Лошадь”). |
Нет_копыт (“Кошка”). Нет_копыт (“Собака”). Нет_копыт (“Лиса”). |
Правила:
Живые существа с четырьмя ногами и с копытами. (Живые существа (Х) if четыре_ноги (Х), копыта (Х)).
Живые существа с четырьмя ногами. (Живые существа (Х) if четыре_ноги (Х)).
Живые существа с копытами. (Живые существа (Х) if копыта (Х)).
Живые существа с четырьмя ногами и без копыт. (Живые существа (Х) if четыре_ноги (Х), нет_копыт (Х)).
Живые существа без копыт. (Живые существа (Х) if нет_копыт (Х)).
У каких есть перья, все ли из них умеют летать?
Факты:
Перья (“Голубь”). Перья (“Попугай”). Перья (“Пингвин”). Перья (“Страус”). |
Летает (“Голубь”). Летает (“Попугай”). |
Не_летает (“Пингвин”). Не_летает (“Страус”). |
Правила:
Живые существа летают и с перьями. ( Живые существа (Х) if летает (Х), перья (Х)).
Живые существа с перьями. ( Живые существа (Х) if перья (Х)).
Живые существа летают. ( Живые существа (Х) if летает (Х)).
Живые существа не летают. ( Живые существа (Х) if не_летает (Х)).
Живые существа с перьями и не летают. ( Живые существа (Х) if не_летает (Х), перья (Х)).
domains
name=string
predicates
существо(name,name,name)
четыре_ноги_копыта(name)
перья_летает(name)
clauses
существо("Кошка","четыре ноги","нет копыт").
существо("Собака","четыре ноги","нет копыт").
существо("Корова","четыре ноги","копыта").
существо("Лиса","четыре ноги","нет копыт").
существо("Кабан","четыре ноги","копыта").
существо("Козел","четыре ноги","копыта").
существо("Лошадь","четыре ноги","копыта").
существо("Голубь","перья","
существо("Попугай","перья","
существо("Пингвин","перья","
существо("Страус","перья","не летает").
четыре_ноги_копыта(X):-
перья_летает(X):-существо(X,"
goal четыре_ноги_копыта(X) or перья_летает(X) .
Ответ системы:
Задание 3. Запрограммируйте на языке Prolog мир, описанный в отрывках стихотворений. Придумайте несколько вопросов.
«Круглый год».
Апрель, апрель!
На дворе звенит капель.
По полям бегут ручьи,
На дорогах лужи,
Скоро выйдут муравьи
После зимней стужи.
Пробирается медведь
Сквозь лесной валежник.
Стали птицы песни петь,
И расцвел подснежник.
(С.Я.Маршак)
domains
name=string
predicates
природа(name,name)
clauses
природа("Капель","звенит").
природа("Ручьи","бегут").
природа("Лужи","на дорогах").
природа("Муравьи","выйдут ").
природа("Медведь","
природа("Птицы","поют").
природа("Подснежник","расцвел"
Что делает медведь?
goal природа("Медведь",X).
Ответ:
X=пробирается
1 Solution
Кто поет?
goal природа(X, "поют").
Ответ:
X=Птицы
1 Solution