Определение принадлежности животного к определенному виду - 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).
Объяснение кода листинга программы
- У нас есть четыре предиката: is, dvig, sreda, eda.
- Предикат is используется для определения принадлежности животного к определенному виду.
- Предикат dvig используется для определения, может ли животное двигаться.
- Предикат sreda используется для определения, в какой среде обитает животное.
- Предикат eda используется для определения, что ест животное.
- Есть четыре утверждения:
- is(mlekop,zayac) - белка является зайцем.
- is(zayac,guvotnoe) - заяц является хищником.
- is(corsun,guvotnoe) - сокол является хищником.
- is(corsun,mlekop) - сокол является белкой.
- Есть два правила для предиката is:
- is(X,Y):-is(Y,Z),is(Z,X) - если Y принадлежит к Z, и Z принадлежит к X, то X принадлежит к Y.
- Есть четыре утверждения:
- dvig(mlekop,hodit) - белка может ходить.
- dvig(hodit,zayac) - заяц может ходить.
- dvig(ptica,letaet) - птица может летать.
- dvig(ptica,mlekop) - птица может быть белкой.
- Есть два правила для предиката dvig:
- dvig(X,Y):-dvig(Y,Z),dvig(Z,X) - если Y может двигаться как Z, и Z может двигаться как X, то X может двигаться как Y.
- Есть три утверждения:
- sreda(guvotnoe,les) - хищник обитает в лесу.
- sreda(les,ptica) - лес является местом обитания птицы.
- sreda(ptica,vozdux) - птица обитает в воздухе.
- Есть два правила для предиката sreda:
- sreda(X,Y):-sreda(Y,Z),sreda(X,Z) - если Y обитает в Z, и Z обитает в X, то X обитает в Y.
- Есть три утверждения:
- eda(travoyad,zayac) - травоядное животное ест зайца.
- eda(zayac,trava) - заяц ест траву.
- eda(hichnik,maso) - хищник ест мясо.
- Есть два правила для предиката eda:
- eda(X,Y):-eda(Y,Z),eda(X,Z) - если Y ест Z, и Z ест X, то X ест Y.
- Цель состоит из четырех частей:
- is(Y,guvotnoe) - определить, является ли Y хищником.
- dvig(X,letaet) - определить, может ли X летать.
- sreda(Z,les) - определить, обитает ли Z в лесу.
- eda(T,trava) - определить, ест ли T траву.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д