- •1. Классификация экспертных систем
- •2. Классификация программного обеспечения для разработки экспертных систем
- •3.1 Формализация задачи – дерево решения задачи
- •3.2 Формирование правил – схема
- •3.3 Листинг
- •4. Создание базы данных
- •4.1 Краткое описание
- •4.2 Листинг
- •4.3 Запросы
- •5. Задача: родственные связи
- •5.1 Краткое описание
- •5.2 Листинг
- •5.3 Запросы
3.2 Формирование правил – схема
Рисунок 3 - Дерево правил
3.3 Листинг
database
yes (symbol)
no (symbol)
predicates
begin
answer
question(symbol)
igra(symbol)
priznak(symbol)
add_to_database(symbol,char)
input_simbol(char,char)
otvet(char)
repeat
clear_from_database
goal
begin.
clauses
begin :-
makewindow (2,23,30," klassifikaciya igr",0,0,25,80),
gotowindow(2),
nl,write ("Otvette na voprosw :"),nl,nl,
answer,
not(clear_from_database),
readchar(X),
nl,nl,nl,nl,
write ("Nfzhmite lubuu klavishu"),
removewindow,
exit.
answer :-
igra (X),!,nl,
write (" Otvet: ",X,"."),nl.
question(Y) :-
write ("Vopros: ",Y,"? "),
otvet(X),
write(X),nl,
add_to_database (Y,X).
input_simbol(C,'y') :- C='y',!.
input_simbol(C,'n') :- C='n',!.
input_simbol(C,'y') :- C='Y',!.
input_simbol(C,'n') :- C='N',!.
otvet(C):-
repeat,
readchar(X),
input_simbol(X,C),!.
repeat.
repeat:-repeat.
priznak (Y) :-
yes (Y),!.
priznak (Y) :-
not (no (Y)),
question (Y).
add_to_database (Y,'y') :- assertz (yes (Y)).
add_to_database (Y,'n') :- assertz (no (Y)),fail.
clear_from_database :- retract (yes(_)),fail.
clear_from_database :- retract (no(_)),fail.
igra("kvest"):-
priznak("igra bez ineterneta?"),
priznak("igraete 1m geroem?"),
priznak("nuzhno mnogo dumat?"),
priznak("sta4inaya grafika?").
igra("rpg"):-
priznak("igra bez ineterneta?"),
priznak("igraete 1m geroem?"),
priznak("nuzhno mnogo dumat?"),
priznak("ne sta4inaya grafika?").
igra("action"):-
priznak("igra bez ineterneta?"),
priznak("igraete 1m geroem?"),
priznak("ne nuzhno mnogo dumat?").
igra("strategiya"):-
priznak("igra bez ineterneta?"),
priznak("igraete mnogimi geroyami?"),
priznak("nuzhno stroit' virtualnwe goroda?").
igra("Action-strategiya"):-
priznak("igra bez ineterneta?"),
priznak("igraete mnogimi geroyami?"),
priznak("ne nuzhno stroit' virtualnwe goroda?").
igra("mmo-strategy"):-
priznak("igra po internetu?"),
priznak("nushno stroit' virtualnwe goroda?").
igra("mmo-rpg"):-
priznak("igra po internetu?"),
priznak("ne nushno stroit' virtualnwe goroda?").
igra("Dannoi klassifikacii ne obnaruzheno").
Рассмотрим несколько решений:
Рисунок 4 – Классификация игр
Рисунок 5 – Классификация игр
Рисунок 6 – Классификация игр
4. Создание базы данных
4.1 Краткое описание
Необходимо создать базу данных о поездках на различных видах транспорта, с различной стоимостью билета, различными маршрутами и временем пути
4.2 Листинг
Код базы данных в Пролог:
domains
otkuda, kuda, transport = symbol
stoimost, vremya = integer
predicates
poezdka(otkuda,kuda,transport,stoimost,vremya)
clauses
poezdka(balakovo,london,samolet,500,7).
poezdka(rim,kiev,samolet,300,5).
poezdka(kiev,moskva,poezd,300,15).
poezdka(moskva,nizhniy,mashina,100,14).
poezdka(ispniya,italitya,samolet,800,5).
poezdka(greciya,rim,samolet,300,6).
poezdka(polsha,izrail,samolet,700,12).
poezdka(meksika,afrika,samolet,1000,12).
poezdka(akropl,lipeck,mashina,800,18).
poezdka(kursk,kostroma,poezd,300,16).