На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Пролог , Родственные отношения
    domains
    person = symbol
    predicates
    male(person)
    female(person)
    parents(person,person,person)
    brothers(person,person)

    clauses
    male("Frank"). male("Sam").
    female("Mary"). female("Debbie").
    parents("Sam","Frank","Mary").
    parents("Debbie","Frank","Mary").
    brothers(Brother, Sister) if
    male(Brother),
    parents(Sister,Father,Mother),
    parents(Brother,Father,Mother).


    Здравствуйте!
    программа работает,но препод сказал, что у меня база знаний не полная-говорит надо добавить что то, чтобы база знаний была полной!
    прошу помочь???!!!
      братья могут быть оба парнями, и напрочь отсутствует sisters(Sister, Brother).
        так у меня задание -
        Определить предикат брат и найти всех братьев конкретного лица

        Добавлено
        препод сказал что все верно написано но надо добавить еще предикаты
          Определение брата
          ExpandedWrap disabled
            brother(X,Y) if
              parents(X,A,B),
              parents(Y,A,B),
              male(X),
              X<>Y.


          Цель
          brother(X,конкретное_лицо), write(X), nl.

          Если в программе есть раздел цели, тогда
          goal
          brother(X,конкретное_лицо), write(X), nl, fail.
            так это разве база знаний, в базу знаний надо добавить что то ж
              Цитата soloman @
              так у меня задание -
              Определить предикат брат и найти всех братьев конкретного лица

              Вот ваше задание. Я 1) правильно определила предикат брат, сообщив системе в явном виде, что нельзя быть братом самому себе; 2) показала, как надо задать цель.

              Цель можно записать в отдельный предикат (сокращённый вариант запроса) и добавить его к базе
              ExpandedWrap disabled
                brothers(Y) if
                   brother(X,Y), write(X), nl, fail.

              Тогда цель будет выглядеть так
              goal
              brothers(конкретное_лицо).
                не в этом смысл!мне надо добавить базу знаний чтобы было полное дерево так сказать начиная с дедушки и бабушки

                Добавлено
                а так то программа работает нормально
                  тогда придумывай пару родителей для имеющейся у тебя семьи в БЗ.
                    вот этого я и не могу сделать то сам
                    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0251 ]   [ 14 queries used ]   [ Generated: 18.07.25, 04:01 GMT ]