Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Задание для самостоятельной работы



Модифицируйте программу, добавив в меню пункты:

1) Вывод списка игроков.

2) Сохранение данных в файл.

3) Выборка данных по 1 из трех критериев.

Лабораторная работа №9. Применение языка для решения задач ИИ. Создание экспертных систем

Пример 1.Рассмотрим пример ЭС для идентификации породы собак. Она помогает потенциальному хозяину выбрать породу собаки в соответствие с определенными критериями.

В данной ЭС используются следующие характеристики:

1. Короткая шерсть;

2. Длинная шерсть;

3. Рост меньше 30 дюймов;

4. Рост меньше 22 дюймов;

5. Низкопосаженный хвост;

6. Длинные уши;

7. Хороший характер

8. Вес больше 100 фунтов.

Каждая характеристика для конкретной породы либо верна, либо не верна. Для каждой породы справедливы следующие характеристики:

Таблица 13.

Характеристики собак

Порода Характеристики
Английский бульдог   1,4,5,7
Гончая 1,4,6,7
Дог 1,3,6,7,8
Амер.гончая 1,5,6,7
Кокер-спаниэль 2,4,5,6,7
Ирландский сеттер 2,3,6
Колли 2,3,5,7
Сенбернар 2,5,7,8

 

Программа 33. «Эксперт по породам собак»

*Эксперт по породам собак*/

/*Назначение: Демонстрация работы ЭС*/

Domains

n=integer

list=n*

dog=symbol

Predicates

rule(n,dog,list)

cond(n,string)

do_expert

show_menu

do_consulting

process(n)

test(n,list)

topic

repeat

Goal

do_expert.

Clauses

rule(1,"английский бульдог",[1,4,5,7]).

rule(2,"гончая",[1,4,6,7]).

rule(3,"дог",[1,3,6,7,8]).

rule(4,"американская гончая",[1,5,6,7]).

rule(5,"коккер-спаниель",[2,4,5,6,7]).

rule(6,"ирландский сеттер",[2,3,6]).

rule(7,"колли",[2,3,5,7]).

rule(8,"сенбернар",[2,5,7,8]).

 

/*Характеристики*/

cond(1,"короткошерстная").

cond(2,"длинношерстная").

cond(3,"рост ниже 30 дюймов").

cond(4,"рост ниже 22 дюймов").

cond(5,"низкопосаженный хвост").

cond(6,"большие уши").

cond(7,"хороший характер").

cond(8,"вес более 100 фунтов").

 

do_expert:-

makewindow(1,7,5 ,"ЭКСПЕРТНАЯ СИСТЕМА",0,0,25,80),

show_menu.

 

repeat.

repeat:-repeat.

 

/*Вывод меню*/

show_menu:-

repeat,

write("***************************"),nl,

write("*****Добро пожаловать!*****"),nl,

write("* *"),nl,

write("*****1-консультация********"),nl,

write("*****2-список**************"),nl,

write("*****3-выход***************"),nl,

write("* *"),nl,

write("****Сделайте свой выбор****"),nl,

readint(X),

process(X),fail.

 

/*Обработка 1 пункта меню “Консультация”*/

process(1):-

do_consulting,

readchar(_),

shiftwindow(1),

clearwindow.

/*Обработка 2 пункта меню “Вывод списка”*/

process(2):-

makewindow(2,7,7,"",5,20,12,25),

topic,

readchar(_),

shiftwindow(1),

clearwindow.

/* Обработка 3 пункта меню “Выход”*/

process(3):-

removewindow,

exit.

/*Вывод пород собак*/

topic:-

rule(X,Y,_),

write(X,". ",Y),

nl,fail.

topic.

/*Консультация*/

do_consulting:-

test(1,List),

rule(_,X,List),

write("Ваш выбор:" ,X),!.

do_consulting:-

write("Мне жаль, что не смог Вам помочь.").

/*Тестирование*/

test(9,[]):-!.

test(1,[N|List]):-

cond(N,Text),

makewindow(2,7,7,"",5,20,10,35),

write("Вопрос:-",Text,"?"),nl,

write("1-да"),nl,

write("0-нет"),nl,

readint(R),R=1,!,test(3,List).

test(1,List):- test(2,List),!.

test(N,[N|List]):-

cond(N,Text),

makewindow(2,7,7,"",5,20,10,35),

write("Вопрос:-",Text,"?"),nl,

write("1-да"), nl,

write("0-нет"), nl,

readint(R),M=N+1,

R=1,!,test(M,List).

test(N,List):-M=N+1,test(M,List).

 




Поиск по сайту:







©2015-2020 mykonspekts.ru Все права принадлежат авторам размещенных материалов.