Автор работы: Пользователь скрыл имя, 11 Апреля 2011 в 14:14, курсовая работа
Цель курсовой работы является исследование различных моделей представления знаний.
Задача курсовой работы дать определения понятия знания, показать особенности представления знаний внутри интеллектуальной системы, описать модели представления знаний и разработать операции над знаниями в логической модели представления знаний.
Введение 3
Знания 4
Классификация знаний 7
Особенности представления знаний внутри ИС 10
Представления знаний 12
Модели представления знаний 14
Продукционная модель 15
Логическая модель 17
Семантические сети или сетевые модели знаний 19
Фреймовая модель знаний 21
Ленемы 24
Извлечение знаний 25
Экспертная система 26
Операции над знаниями в логической модели представления знаний 28
Заключение 34
Список используемой литературы 35
В целом фреймовая модель допускает представление всех свойств декларативных и процедурных знаний. Глубина вложенности слотов во фрейме (число уровней) зависит от предметной области и языка, реализующего модель.
Ленемы представляют собой смешенный тип модели, являющийся как бы «развитием» других моделей.
Линема предназначена для структурного комплексного описания понятий предметной области. По изобразительным возможностям ленемы более совершенны, чем такие традиционные модели представления знаний, как сематическая сеть, фрейм, система продукций. Однако, для некоторых понятий модель представления знаний на основе ленем может быть неудобной и даже неприемлемой. Например, это такие понятия, в описании которых очень большую роль играет внутренняя динамика. Модель, созданная на базе ленем, позволяет объединить на пользовательском уровне три существующие в настоящее время парадигмы представления знаний:
Для некоторых ситуаций это очень удобно, так как при реализации сложных моделей, включающих знания различных типов, возникает необходимость совмещения в одном языке представления знаний различных концепций.
При формировании поля знаний ключевым вопросом является сам процесс получения знаний, когда происходит перенос компетентности экспертов на инженеров по знаниям.
Извлечение знаний (knowledge elicitation) – это процедура взаимодействия эксперта с источником знаний, в результате которой становится явными процесс рассуждений специалистов при принятии решения и структура их представлений о предметной области.
В настоящее время большинство разработчиков экспертных систем отмечает, что процесс извлечения знаний остается самым «узким» местом при построении промышленных экспертных систем. При этом приходится самостоятельно разрабатывать методы извлечения, сталкиваясь со следующими трудностями:
Процесс извлечения знаний – это длительная и трудоемкая процедура, в которой инженеру по знаниям, вооруженному специальными знаниями по когнитивной психологии, системному анализу, математической логике и прочие, необходимо воссоздать модель предметной области, которой пользуются эксперты для принятия решений.
Формирование
знаний – процесс анализа данных
и выявление скрытых
Экспертная система - это программа, которая ведет себя подобно эксперту в некоторой проблемной области. Она должна иметь способность к объяснению своих решений и тех рассуждений, на основе которых эти решения были приняты. Часто от экспертной системы требуют, чтобы она могла работать с неточной и неполной информацией.
Типичные применения экспертных систем включают в себя такие задачи, как медицинская диагностика, локализация неисправностей в оборудовании и интерпретация результатов измерений. Экспертные системы должны решать задачи, требующие для своего решения экспертных знаний в некоторой конкретной области. В той или иной форме экспертные системы должны обладать этими знаниями. Поэтому их также называют системами, основанными на знаниях. Однако не всякую систему, основанную на знаниях, можно рассматривать как экспертную. Экспертная система должна также уметь каким-то образом объяснять свое поведение и свои решения пользователю, так же, как это делает эксперт-человек. Это особенно необходимо в областях, для которых характерна неопределенность, неточность информации (например, в медицинской диагностике). В этих случаях способность к объяснению нужна для того, чтобы повысить степень доверия пользователя к советам системы, а также для того, чтобы дать возможность пользователю обнаружить возможный дефект в рассуждениях системы. В связи с этим в экспертных системах следует предусматривать дружественное взаимодействие с пользователем, которое делает для пользователя процесс рассуждения системы "прозрачным".
Часто
к экспертным системам предъявляют
дополнительное требование - способность
иметь дело с неопределенностью
и неполнотой. Информация о поставленной
задаче может быть неполной или ненадежной;
отношения между объектами
Создание экспертных систем с широким спектром возможностей, являющихся не механическими исполнителями воли человека, а его равноправными партнерами при поиске решений в сложных ситуациях, требует привлечения эффективных инструментальных средств программирования. К числу таких средств относятся языки обработки символьной информации, одним из наиболее ярких представителей которых является Пролог.
Пролог – язык высокого уровня, имеющий строгое теоретическое обоснование и ориентированный на использование концепций и методов математической логики.
Основными понятиями в языке Пролог являются факты, правила и вопросы. Из фактов и правил образуются описания данных, процедур и программы на языке Пролог. Вопросы – это основное средство ведения диалога с базами знаний и программами, имеющимися в памяти ЭВМ.
Пример экспертной системы «Выбор профессии».
rule - определяющий связи объектов с древовидной структурой и набором профессий;
-
cond - определяющий характеристики
успеваемости ученика по
Файл prof.dba:
rule(1,"prof","Хороший
шанс преуспеть в
rule(2,"prof","Вам
можно посвятить себя
rule(3,"prof","Вы
прирожденный бухгалтер",[2,5,
rule(4,"prof","Хороший
шанс преуспеть в архитектуре",
rule(5,"prof","Ваше призвание - медицина",[2,9])
rule(6,"prof","Вам стоит попробовать себя в литературе",[4,7])
rule(7,"prof","Попробуйте себя в политике",[4,6,7])
cond(1,"Вы успешно занимаетесь точными науками")
cond(2,"Точными науки даются неплохо")
cond(3,"У
вас есть успехи в
cond(4,"Вы хоть немножко разбираетесь в гуманитарных науках ")
cond(5,"У вас математика -выше среднего")
cond(6,"Математика вам не дается")
cond(7,"Вы
хорошо владеете родным языком"
cond(8,"Вы
успешно занимаетесь
cond(9,"Вас увлекает биология")
cond(10,"Вам хорошо дается экономика")
Файл PROG1005.pro
/* Программа: Выбор профессии экспертная система Файл: prog1003.pro */
/* Назначение. Демонстрация работы экспертной системы, */
/*
Замечание: Это выбор
domains
CONDITIONS = BNO *
HISTORY = RNO *
RNO, BNO, FNO = INTEGER
CATEGORY = SYMBOL
database
/* Предикаты базы данных */
rule(RNO, symbol, CATEGORY, CONDITIONS)
cond(BNO, STRING)
yes(BNO)
no(BNO)
topic(string)
predicates
/* Предикаты системы пользовательского интерфейса */
do_expert_job
show_menu
do_consulting
process(integer)
listopt
evalans(char)
info(CATEGORY)
goes(CATEGORY)
/* Предикаты механизма вывода */
go(HISTORY, CATEGORY)
check(RNO, HISTORY, CONDITIONS)
notest(BNO)
inpo(HISTORY, RNO, BNO, STRING)
do_answer(HISTORY, RNO, STRING, BNO, INTEGER)
erase
clear
goal
do_expert_job.
clauses
/* Cистема пользовательского интерфейса (часть 1) */
do_expert_job :- makewindow(1,7,7,"prof EXPERT SYSTEM ",0,0,25,80),
show_menu,
nl,write(" Press space bar. "),
readchar(_),
exit.
show_menu :- write(" "),nl,
write(" * * * * * * * * * * * * * * * * * * "),nl,
write(" * MEDICAL EXPERT * "),nl,
write(" *
write(" * 1. Load KBS * "),nl,
write(" * 2. Consultation * "),nl,
write(" * 3. Save KBS * "),nl,
write(" * 4. Exit the system * "),nl,
write(" *
write(" * * * * * * * * * * * * * * * * * * "),nl,
write(" "),nl,
write("Please enter your choice: 1,2,3 or 4 : "),nl,
readint(Choice),
process (Choice).
process(0).
process(1)
:- consult("prof.dba"),do_
process(2) :- do_consulting.
process(3) :- save("prof.DBA").
process(4) :- exit.
do_consulting :- goes(Mygoal),nl,nl,
go([],Mygoal),
!.
do_consulting :- nl, write(" Ничем не могу вам помочь"),
nl,write(" Пожалуйста посмотрите и выбирете базу. "),nl,
clear.
goes(Mygoal) :- clear,
clearwindow,
nl,nl,
write(" "),nl,
write(" WELCOME TO THE prof EXPERT SYSTEM "),nl,
write(" "),nl,
Информация о работе Представление знаний Операции над знаниями