Определение принадлежности животного к определенному виду - Prolog

Узнай цену своей работы

Формулировка задачи:

Задание звучит так: "определение принадлежности животного к определенному виду, типу, семейству". Дуги: место обитания, строение, особенности поведения, вид питания.Вообще не знаю, с чего начать. Ничего даже не и не рассказали, как реализовать, кто подскажет, поможет?

Решение задачи: «Определение принадлежности животного к определенному виду»

textual
Листинг программы
predicates
nondeterm is(string,string)
nondeterm dvig(string,string)
nondeterm sreda(string,string)
nondeterm eda(string,string)
clauses
is(mlekop,zayac).
is(zayac,guvotnoe).
is(corsun,guvotnoe).
is(corsun,mlekop).
is(X,Y):-is(Y,Z),is(Z,X).
 
dvig(mlekop,hodit).
dvig(hodit,zayac).
dvig(ptica,letaet).
dvig(ptica,mlekop).
 
dvig(X,Y):-dvig(Y,Z),dvig(Z,X).
 
sreda(guvotnoe,les).
sreda(les,ptica).
sreda(ptica,vozdux).
sreda(X,Y):-sreda(Y,Z),sreda(X,Z).
 
eda(travoyad,zayac).
eda(zayac,trava).
eda(hichnik,maso).
eda(X,Y):-eda(Y,Z),eda(X,Z).
goal
is(Y,guvotnoe),
dvig(X,letaet),
sreda(Z,les),
eda(T,trava).

Объяснение кода листинга программы

  1. У нас есть четыре предиката: is, dvig, sreda, eda.
  2. Предикат is используется для определения принадлежности животного к определенному виду.
  3. Предикат dvig используется для определения, может ли животное двигаться.
  4. Предикат sreda используется для определения, в какой среде обитает животное.
  5. Предикат eda используется для определения, что ест животное.
  6. Есть четыре утверждения:
    • is(mlekop,zayac) - белка является зайцем.
    • is(zayac,guvotnoe) - заяц является хищником.
    • is(corsun,guvotnoe) - сокол является хищником.
    • is(corsun,mlekop) - сокол является белкой.
  7. Есть два правила для предиката is:
    • is(X,Y):-is(Y,Z),is(Z,X) - если Y принадлежит к Z, и Z принадлежит к X, то X принадлежит к Y.
  8. Есть четыре утверждения:
    • dvig(mlekop,hodit) - белка может ходить.
    • dvig(hodit,zayac) - заяц может ходить.
    • dvig(ptica,letaet) - птица может летать.
    • dvig(ptica,mlekop) - птица может быть белкой.
  9. Есть два правила для предиката dvig:
    • dvig(X,Y):-dvig(Y,Z),dvig(Z,X) - если Y может двигаться как Z, и Z может двигаться как X, то X может двигаться как Y.
  10. Есть три утверждения:
    • sreda(guvotnoe,les) - хищник обитает в лесу.
    • sreda(les,ptica) - лес является местом обитания птицы.
    • sreda(ptica,vozdux) - птица обитает в воздухе.
  11. Есть два правила для предиката sreda:
    • sreda(X,Y):-sreda(Y,Z),sreda(X,Z) - если Y обитает в Z, и Z обитает в X, то X обитает в Y.
  12. Есть три утверждения:
    • eda(travoyad,zayac) - травоядное животное ест зайца.
    • eda(zayac,trava) - заяц ест траву.
    • eda(hichnik,maso) - хищник ест мясо.
  13. Есть два правила для предиката eda:
    • eda(X,Y):-eda(Y,Z),eda(X,Z) - если Y ест Z, и Z ест X, то X ест Y.
  14. Цель состоит из четырех частей:
    • is(Y,guvotnoe) - определить, является ли Y хищником.
    • dvig(X,letaet) - определить, может ли X летать.
    • sreda(Z,les) - определить, обитает ли Z в лесу.
    • eda(T,trava) - определить, ест ли T траву.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы