Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Clips] экспертная система, добавить два значения 
:(
    Опции темы
neweraser
Дата 13.11.2008, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 17.2.2008

Репутация: нет
Всего: 6



Доброго времени суток! Я думаю для понимающих этот язык это будет более чем просто.
Вот код программы:

Код

;;;===============================================
;;;       EXPERT PO REMONTU AVTOMOBILIA
;;;
;;;             CLIPS Version 6.20 
;;;    
;;;===============================================

           ;;****************
           ;;* FUNCTION      *
           ;;****************

(deffunction v-ot (?vopr $?per.znatsh)
   (printout t ?vopr)
   (bind ?otv (read))
   (if (lexemep ?otv) 
       then (bind ?otv (lowcase ?otv)))
   (while (not (member ?otv ?per.znatsh)) do
      (printout t ?vopr)
      (bind ?otv (read))
      (if (lexemep ?otv) 
          then (bind ?otv (lowcase ?otv))))
   ?otv)

(deffunction da-net (?vopr)
   (bind ?otv.polz. (v-ot ?vopr  yes no y n))
   (if (or (eq ?otv.polz. yes) (eq ?otv.polz. y))
       then TRUE 
       else FALSE))

            ;;;***************************************************************;;;*PRAVILA OPREDEL.SISTEMU FACTOV O                      SOSTOJANII MASHINI  *
            ;;;*********************************************************************************

(defrule mash.rab.norm ""
   (declare (salience 10))
   (mash. rab.norm.)
   =>
   (assert (vid-remonta "Rem.nenug."))
   (assert (iscra est))
   (assert (ak. zar.))
   (assert (dvig. vr.)))

(defrule mash.rab.neud. ""
   (declare (salience 10))
   (mash. rab.neud.)
   =>
   (assert (ak. zar.))
   (assert (dvig. vr.))  )
          ;;;***************************************************** ;;;*PRAVILA OPREDELJUSCHIE VID REMONTA             *
;;;*   I POPOLNJUSCHIE BASU FACTOV                               *
          ;;;*****************************************************

(defrule sost.mashini ""
   (not (mash. ?))
   (not (vid-remonta ?))
   =>
   (if (da-net "Mash.zavod. (yes/no)? ") 
       then 
       (if (da-net "Mash. rab.norm. (yes/no)? ")
           then (assert (mash. rab.norm.))
           else (assert (mash. rab.neud.)))
       else 
       (assert (mash. ne-rabotaet))))

(defrule sost.dvig. ""
   (mash. ne-rabotaet)
   (not (dvig. ?))
   (not (vid-remonta ?))   
   =>
   (if (da-net "Dvig.vrast. (yes/no)? ")
       then
       (assert (dvig. vr.))
       (assert (iskra ne-regul.))
       else
       (assert (dvig. ne-vr.))       
       (assert (iscra net))))

(defrule sost.topl.sist. ""
   (mash. rab.neud.)
   (not (vid-remonta ?))
   =>
   (if (da-net "Mash.inertna k pod. topl. (yes/no)? ")
       then (assert (vid-remonta "Protsh.topl.pr-da"))))

(defrule sost.sist.zagig. ""
   (mash. rab.neud.)
   (not (vid-remonta ?))
   =>
   (if (da-net "Neritmichn. zagig. (yes/no)? ")
       then
       (assert (vid-remonta "Otreg.zazor.kont."))       
       (assert (iskra ne-regul.)))) 

(defrule dvig.stuchit-nestuchit ""
   (mash. rab.neud.)
   (not (vid-remonta ?))
   =>
   (if (da-net "Dvig.stuchit (yes/no)? ")
       then
       (assert (vid-remonta "Otreg.zagigan."))))

(defrule sost.mostnosti ""
   (mash. rab.neud.)
   (not (mostn. snigena | ne-snigena))
   (not (vid-remonta ?))
   =>
   (if (da-net "Snigena li mostn. (yes/no)? ")
       then
       (assert (mostn. snigena))
       else
       (assert (mostn. ne-snigena))))

(defrule nalichie-topl. ""
   (mash. ne-rabotaet)
   (dvig. vr.)
   (not (vid-remonta ?))
   =>
   (if (da-net "topl.konchilos (yes/no)? ")
       then
       (assert (vid-remonta "Zapr.topl."))))

(defrule akk.-zarjg.-ne-zarjg. ""
   (dvig. ne-vr.)
   (not (ak. ?))
   (not (vid-remonta ?))
   =>
   (if (da-net "Zarjgen li ak. (yes/no)? ")
       then
       (assert (ak. zar.))
       else
       (assert (vid-remonta "Zar.ak."))
       (assert (ak. razr.))))  

(defrule sost.kontaktov ""
   (or (and (mash. ne-rabotaet)      
            (iskra ne-regul.))
       (mostn. snigena))
   (not (vid-remonta ?))
   =>
   (bind ?otv.polz. (v-ot "Kakovo sost. kontaktov(norm./opaleni/zagrjzneni)? "
                    norm. opaleni zagrjzneni))
   (if (eq ?otv.polz. opaleni) 
       then 
      (assert (vid-remonta "Zamenit kontakti"))
       else (if (eq ?otv.polz. zagrjzneni)
                then (assert (vid-remonta "Kontakti pochist.")))))

(defrule sost.katushki-zagig. ""
   (mash. ne-rabotaet)      
   (iskra net)
   (ak. zar.)
   (not (vid-remonta ?))
   =>
   (if (da-net "Testirovanie katushki pologit. (yes/no)? ")
       then
       (assert (vid-remonta "Zam.soed.pr-da"))
       else
       (assert (vid-remonta "Zam.katushcu.zagigan."))))

(defrule vid-rem-ne-opredelen ""
  (declare (salience -10))
  (not (vid-remonta ?))
  =>
  (assert (vid-remonta "Obratites k mechanicu.")))

      ;;;***********************************************************
      ;;;* ZAPUSK SISTEMI I PECHAT RECOMENDACIY *
      ;;;***********************************************************

(defrule imia-sistemi ""
  (declare (salience 10))
  =>
  (printout t crlf crlf)
  (printout t "EXPERT PO REMONTU AVTOMOBILIA")
  (printout t crlf crlf))

(defrule pechat-nazv.-remonta ""
  (declare (salience 10))
  (vid-remonta ?item)
  =>
  (printout t crlf crlf)
  (printout t "RECOMENDACIJ:")
  (printout t crlf crlf)
  (format t " %s%n%n%n" ?item))


нужно добавить 2 любых неисправности автомобиля... помогите, завтра сдавать!
заранее спасибо!


--------------------
Кто ищет, тот всегда найдет.
PM MAIL ICQ Skype   Вверх
elenkas
Дата 30.4.2009, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 18.4.2009

Репутация: нет
Всего: нет



всем здравствуйте мне нужна готовая экспертная система на CLIPS
заранее огромное спасибо с уважением елена
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.