Определение принадлежности животного к определенному виду - 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 траву.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д