Форум программистов, компьютерный форум, киберфорум
CLIPS
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 1
Регистрация: 18.03.2014
Сообщений: 147
1

Задача про ремонт велосипеда

28.02.2017, 14:54. Показов 1803. Ответов 0

Author24 — интернет-сервис помощи студентам
Задание такое:

Факты: Прокол камеры влечет неисправность шины;
утечка золотника влечет неисправность шины;
неисправность шины влечет неровный ход велосипеда;
разрыв спицы влечет искривление колеса;
искривление колеса влечет неровный ход велосипеда;
повреждение троса влечет повреждение тормоза;
повреждение тормоза влечет аварийное состояние велосипеда.

Задача:
Найти все Х, где Х приводит к аварийному состоянию велосипеда
и выявить последовательность неисправностей.

Показать логический вывод.
Ввод пользователем любой характеристики неисправности велосипеда – представляет последовательность из событий приводящих к ней.

Мой вариант такой:
Кликните здесь для просмотра всего текста

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
(deffunction ask-question (?question $?allowed-values)
    (printout t ?question)
    (bind ?answer (read))
    (if (lexemep ?answer) 
    then 
        (bind ?answer (lowcase ?answer))
    )
    (while (not (member ?answer ?allowed-values)) do
        (printout t ?question)
        (bind ?answer (read))
        (if (lexemep ?answer) 
        then (bind ?answer (lowcase ?answer)))
    )?answer
)
 
(deffunction yes-or-no-p (?question)
    (bind ?response (ask-question ?question yes no y n))
    (if (or (eq ?response yes) (eq ?response y))
    then TRUE 
    else FALSE)
)
 
(defrule determine-working-state ""
    (initial-fact)
    =>
    (if (yes-or-no-p "Y vas ne tormozit velosiped? (yes/no)?") 
    then 
        (assert (defects_of_bike damage_tross is damage_to_the_brake))
        (assert (working-state not-stable))
    else
        (assert (repair “Remont ne trebuetsa»))
        (assert (working-state stable))
    ) 
    (if (yes-or-no-p "Y vas nerovnyj xod velosipeda? (yes/no)?") 
    then 
    (if (yes-or-no-p "Est li iskrevlenie kolesa? (yes/no)?")
    then 
        (assert (defects_of_bike the_gap_in_the_spokes is bending_wheel))
        (assert (working-state not-stable))
    else
        (assert (repair "Remont ne trebuetsa"))
        (assert (working-state stable))
    )
    (if (yes-or-no-p "Naparuvalis na ostrue ob'ektu? (yes/no)?")
    then
        (assert (defects_of_bike puncture_bus_camera is flat_tire))
        (assert (working-state not-stable))
    else
        (assert (repair "Remont ne trebuetsa"))
        (assert (working-state stable))
    ) 
    (if (yes-or-no-p "Est li problemu s zolotnikom? (yes/no)?")
    then
        (assert (defects_of_bike the_gap_in_the_spokes is bending_wheel))
        (assert (working-state not-stable))
    else
        (assert (repair "Remont ne trebuetsa"))
        (assert (working-state stable))
    ) 
    else 
        (assert (working-state disenabled))
    )
)
 
(defrule determine-power-state ""
(working-state disenabled)
(not (repair ?))
=>
    (if (yes-or-no-p "Est li problemu s vilkoi(ypravliaushei) na velosipede (yes/no)? ") 
    then
        (printout t "Mu takoe ne 4inim" crlf)
        (assert (repair "Remont ne trebuetsa"))
    else
        (assert (repair "Y vas bolshe net voprosov"))
    )
)
 
 
(defrule rule_flat_tire_1 "неисправность шины влечет  неровный  ход  велосипеда"
    (defects_of_bike puncture_bus_camera is flat_tire)
    =>
    (printout t "U vas nerovnyj hod velosipeda, potomu chto u vas prokol kamery" crlf)
    (assert
        (repair flat_tire is uneven_stroke_bike)
    ) 
)
 
(defrule rule_flat_tire_2 "неисправность шины влечет  неровный  ход  велосипеда"
    (defects_of_bike leakage_of_the_valve is flat_tire)
    =>
    (printout t "U vas nerovnyj hod velosipeda, potomu chto u vas utechka zolotnika" crlf)
    (assert
        (repair flat_tire is uneven_stroke_bike)
    ) 
)
 
(defrule rule_flat_tire_3 "Искривление колеса влечет  неровный  ход  велосипеда"
    (defects_of_bike the_gap_in_the_spokes is bending_wheel)
    =>
    (printout t "U vas nerovnyj hod velosipeda, potomu chto u vas razryv spicy" crlf)
    (assert
        (repair bending_wheel is uneven_stroke_bike)
    ) 
)
 
(defrule damage_to_the_brake "повреждение тормоза влечет аварийное состояние  велосипеда"
    (defects_of_bike damage_tross is damage_to_the_brake)
    =>
    (printout t "U vas avarijnoe sostoyanie, potomu chto u vas povrezhden tross" crlf)
    (assert
        (repair damage_to_the_brake is emergency_condition)
    ) 
)


Что неправильно:

Ни одно правило не работает.
Задание очень хорошо может представлять логический вывод.
И мне послали пример где работает хотя бы 2 правила, и моя работа(код выше)

->Что мне здесь надо исправить, вообще не могу понять, помогите кто сможет
P.S. прилагаю скриншоты которые мне прислали. С clips вообще впервые, кое как попытался понять, но не совсем еще осилил)
Миниатюры
Задача про ремонт велосипеда   Задача про ремонт велосипеда  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2017, 14:54
Ответы с готовыми решениями:

Задача про деревья
Имеется 6 деревьев: сосна, береза, липа, тополь, ель, клен. Какое дерево самое высокое и самое...

Задача про взлом кода из книги Эрика Фримена про основы javascript в конце 5 главы.
читаю книгу Эрика Фримена про основы javascript.В конце 5 главы есть задачка про взлом кода.Никак...

Ремонт Макбук Про ретина
Добрый День! что-то мне показалось, что после 2 лет работы мой макбук про 13 ретина начал греться....

Задача на перебор вариантов. Задача Л.Эйлера. Про чиновника
Задача Л.Эйлера. Некий чиновник купил лошадей и быков на сумму 1770 талеров. За каждую лошадь он...

0
28.02.2017, 14:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2017, 14:54
Помогаю со студенческими работами здесь

Ремонт пмм Krona BDE4507EU, про клапан на ионообменнике
Поступила заявка с жалобой плохо моет и периодически E02. При осмотре возникло ощущение что хозяйка...

Задача Школьный ремонт
Перед летним ремонтом кабинетов в школе решили подсчитать, сколько кабинетов могут быть...

Изобретение велосипеда
Вопрос юридическо - правового характера: Изобретаю свой собственный велосипед. Можно ли мне...

Выбор велосипеда.
Доброго времени суток! Решился купить себе велосипед. Современных велосипедов никогда не было,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru