Форум программистов, компьютерный форум, киберфорум
Наши страницы
Prolog
Войти
Регистрация
Восстановить пароль
 
lolli
0 / 0 / 0
Регистрация: 05.10.2011
Сообщений: 13
1

Экспертная система

20.12.2011, 20:22. Просмотров 1891. Ответов 0
Метки нет (Все метки)

Всем Привет! Есть экспертная система продажи телефонов, некоректно работает выбор телефона подешевле после того как пользователь ответит на вопросы. Помогите пожалуста исправить ошибку. Заранее благодарна!
Prolog
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
database
  yes(string)
  no(string)
  maybe(string)
 
predicates
  repeat
  run
  make_selection(string, integer, integer)
  continue_selection(integer, string, integer)
  tel(string,integer)
  is(string)
  positive(string)
  negative(string)
  xpositive(string)
  xnegative(string)
  ask(string,char)
  remember(string,char)
  delete_all
clauses
  repeat.
  repeat:-repeat.
%-----------------------------------------------------------------------------
% описываем технические характеристики сотового телефона
    tel("Samsung E1070", 890):- positive("цветной дисплей"),positive("емкий аккумулятор"),
           negative("имеет камеру"),
                     negative("имеет FM-радио"),
           negative("имеет Mp3-плеер"),
           is("только для связи").
  
  tel("Nokia 1202", 1000):- positive("цветной дисплей"),positive("емкий аккумулятор"),
                     negative("имеет камеру"),
                     negative("имеет FM-радио"),
           negative("имеет Mp3-плеер"),
           is("только для связи").
 
  tel("Nokia 1208", 1190):-positive("цветной дисплей"),positive("емкий аккумулятор"),
           negative("имеет камеру"),
                     negative("имеет FM-радио"),
           negative("имеет Mp3-плеер"),
           is("только для связи").
 
 
 
  tel("Nokia 2630", 2490):-positive("цветной дисплей"),positive("емкий аккумулятор"),
          negative ("имеет камеру"),
                     positive ("имеет FM-радио"),
           negative("имеет Mp3-плеер"),
           is("только для связи"), is("развлечения и музыка").
 
  tel("LG KP105", 1490):- positive("цветной дисплей"),positive("емкий аккумулятор"),
           negative ("имеет камеру"),
                     positive ("имеет FM-радио"),
           negative("имеет Mp3-плеер"),
           is("только для связи").
 
  tel("LG GB110", 2550):- positive("цветной дисплей"),positive("емкий аккумулятор"),
           negative ("имеет камеру"),
                     positive ("имеет FM-радио"),
          negative ("имеет Mp3-плеер"),
           is("только для связи"), is("развлечения и музыка").
 
 
  tel("Nokia E52", 12990):- positive("цветной дисплей"), positive ("емкий аккумулятор"),
           positive ("имеет камеру"),
                     positive ("имеет FM-радио"),
           positive ("имеет флэш-карту"),
           negative("имеет навигацию"),
           negative("имеет Mp3-плеер"),
           is("мобильный офис").
 
  tel("Nokia E66", 11890):- positive("цветной дисплей"), positive ("емкий аккумулятор"),
           positive ("имеет камеру"),
                     positive ("имеет FM-радио"),
           positive ("имеет флэш-карту"),
           negative ("имеет навигацию"),
           negative("имеет Mp3-плеер"),
           is("мобильный офис"),  is("помощник в путешествиях").
 
 
  tel("Nokia E63", 13500):- positive("цветной дисплей"), positive ("емкий аккумулятор"),
           positive ("имеет камеру"),
                     positive ("имеет FM-радио"),
           positive ("имеет флэш-карту"),
           negative ("имеет навигацию"),
           negative("имеет Mp3-плеер"),
           is("мобильный офис"),  is("помощник в путешествиях").
 
  tel("Nokia 5310", 7990):- positive("цветной дисплей"), positive ("емкий аккумулятор"),
           positive ("имеет камеру"),
                     positive ("имеет FM-радио"),
           positive ("имеет флэш-карту"),
           positive ("имеет Mp3-плеер"),
           negative("сенсорный дисплей"),
           positive ("имеет дополнительные клавиши управления Mp3-плеером"),
           is("развлечения и музыка").
 
  tel("Nokia 5530", 7780):- positive("цветной дисплей"), positive ("емкий аккумулятор"),
           positive ("имеет камеру"),
                     positive ("имеет FM-радио"),
           positive ("имеет флэш-карту"),
           positive ("имеет Mp3-плеер"),
           negative ("сенсорный дисплей"),
           positive ("имеет дополнительные клавиши управления Mp3-плеером"),
           is("развлечения и музыка").
 
  tel("Nokia 5800", 8890):- positive("цветной дисплей"), positive ("емкий аккумулятор"),
           positive ("имеет камеру"),
                     positive ("имеет FM-радио"),
           positive ("имеет флэш-карту"),
           positive ("имеет Mp3-плеер"),
           negative ("сенсорный дисплей"),
           positive ("имеет дополнительные клавиши управления Mp3-плеером"),
is("развлечения и музыка"), is("мобильный офис"),is ("помощник в путешествиях").
 
  tel("SonyEricsson W595", 8450):- positive("цветной дисплей"), negative ("емкий аккумулятор"),
           positive ("имеет камеру"),
                     positive ("имеет FM-радио"),
           positive ("имеет флэш-карту"),
           positive ("имеет Mp3-плеер"),
           negative("сенсорный дисплей"),
           negative ("имеет дополнительные клавиши управления Mp3-плеером"),
           is("развлечения и музыка").
 
  tel("SonyEricsson W395", 7890):- positive("цветной дисплей"), negative ("емкий аккумулятор"),
           positive ("имеет камеру"),
                     positive ("имеет FM-радио"),
           positive ("имеет флэш-карту"),
           positive ("имеет Mp3-плеер"),
           negative("сенсорный дисплей"),
           negative ("имеет дополнительные клавиши управления Mp3-плеером"),
           is("развлечения и музыка").
 
  tel("Nokia N86", 24790):- positive("цветной дисплей"), positive ("емкий аккумулятор"),
           positive ("имеет камеру"),
                     positive ("имеет FM-радио"),
           positive ("имеет флэш-карту"),
           positive ("имеет навигацию"),
           positive ("имеет Mp3-плеер"),
           negative ("имеет Wi-Fi"),
           positive ("имеет дополнительную клавиатуру"),
           is("помощник в путешествиях"), is("мобильный офис").
 
  tel("Nokia N97", 27990):- positive("цветной дисплей"), positive ("емкий аккумулятор"),
           positive ("имеет камеру"),
                     positive ("имеет FM-радио"),
           positive ("имеет флэш-карту"),
           positive ("имеет навигацию"),
           positive ("имеет Mp3-плеер"),
           negative ("имеет Wi-Fi"),
           positive ("имеет дополнительную клавиатуру"),
is("помощник в путешествиях"), is("мобильный офис"), is("развлечения и музыка").
 
  tel("Такой телефон еще не произведен!!!!", 0).
 
%-----------------------------------------------------------------------------
  is("только для связи"):-positive("звонить и отправлять смс"),!.
  is("мобильный офис"):- positive("смартфон"),!;
                         negative("слушать музыку"),
                         positive("звонить и отправлять смс").
  is("развлечения и музыка"):- positive("слушать музыку"),!;
                               positive("звонить и отправлять смс"),
                               negative("смартфон").
  is("помощник в путешествиях"):-positive("имеет GPS-навигацию").
%-----------------------------------------------------------------------------
% работа с динамической базой данных
  positive(X):-xpositive(X),!; xnegative(X),!,fail; ask(X,'y').
  negative(X):-xnegative(X),!; xpositive(X),!,fail; ask(X,'n').
  ask(X,R):-write(X,"  ?  : "),readchar(Reply),write(Reply,"\n"),
            remember(X,Reply),R=Reply.
% проверка присутствия фактов в динамической базе данных
  xpositive(X):-yes(X);maybe(X).
  xnegative(X):-no(X);maybe(X).
% запоминаем факт в динамической базе данных
  remember(X,'y'):-asserta(yes(X)).
  remember(X,'n'):-assertz(no(X)).
  remember(X,'q'):-asserta(maybe(X)).
% очищаем память от фактов динамической базы данных
delete_all:-retract(yes(_)),delete_all.
delete_all:-retract(no(_)),delete_all.
delete_all:-retract(maybe(_)),delete_all.
delete_all.
%-----------------------------------------------------------------------------
run:-delete_all,
       %repeat,
       write("На вопросы отвечать (y-да, n-нет, q-не знаю).\n"),     
         
    make_selection(X, A, CHOOSE),
    continue_selection(CHOOSE, X, A),
       write("Завершить работу программы (y/n): "),readchar(Z),
       write(Z),nl,
       Z='y', !.
 
make_selection(X, A, CHOOSE) :- tel(X,A), write("Ваш выбор: ",X," цена: ",A,"\n"),
        write("Устраивает ли вас цена? \n1-да, данная модель меня устраивает\n2-нет, покажите модель по дешевле\n3-нет, покажите модель по дороже"),
        readchar(CHOOSE).
 
continue_selection('1', X, A) :-  !, write("Ваш выбор: ",X," цена: ",A,"\n"), !.
continue_selection('2', X, A) :-  !, tel(X, Z), Z < A, write("-->>", X, " - ", A).
goal
  makewindow(1,10,12," Экспертная система : СОТОВЫЕ ТЕЛЕФОНЫ ",0,0,25,80),
  write("--------------------------------------------"),nl,
  run.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2011, 20:22
Ответы с готовыми решениями:

Экспертная система
Вроде все сделала, но программа не работает. Помогите найти ошибки. domains...

Экспертная система
Добрый день Нужна экспертная система по определению оптимальной конфигурации...

Экспертная система
Нужна экспертная система, написанная на прологе, в принципе на любую тему!...

Развитая экспертная система
Дали задание написать развитую экспертную систему, опираясь на учебник Братко....

Экспертная система (Цветы)
Помогите разобраться...Есть экспертная система, не знаю как она работает. Как...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2011, 20:22

Экспертная система по конфигурации ПК
Экспертная система по определению оптимальной конфигурации ПК. Входные данные:...

Экспертная система и БД поликлинники
Здравствуйте, такая проблема, вот код базы данных и внедренную в нее экспертной...

Экспертная система на SWI Prolog
Здравствуйте! Пытаюсь написать простую экспертную систему. Данные считываются с...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru