Ознакомление с методами разработки экспертных систем, предназначенных для обобщения, хранения, использования знаний и опыта, накопленного специалистами в конкретных предметных областях. Проектирование программы на языке Пролог, ее отладка и тестирование.
Аннотация к работе
В задачу этого направления входят исследование и разработка программ, использующих знания и процедуры решения задач, которые являются трудными для людей - экспертов. Экспертная система - это программа, которая использует принципы искусственного интеллекта и знания эксперта для обработки оперативной информации и принятия обоснованных решений в анализируемой области Опыт по разработке интеллектуальных или экспертных систем показал, что эксперты обладают знаниями, которые не являются ни строго декларативными, ни строго алгоритмическими. A определяет стабильность, группа B - счастье и подавленность, группа С - спокойствие и нервозность, группа D - уверенность, группа E - активность, группа F - способность, группа G - ответственность, группа H - критичность, объективность, группа I - открытость, замкнутость, группа J - уровень общения. A1List (Список_баллов),…, A4List(List), В1List (Список_баллов),…, В4List(List),…, J1List (Список_баллов),…, J4List(List) определяют принадлежность к группе по количеству набранных баллов.Язык Пролог прошел длинный путь развития (около 30 лет). Существует мнение, что Пролог пропагандируется и используется преимущественно специалистами, решающими задачи из области искусственного интеллекта. Однако, как показывает опыт использования различных Пролог - систем, язык Пролог может успешно применяться для разработки сложных программных систем традиционного назначения.Пожалуйста, ответьте на каждый вопрос. Ответьте на вопрос сразу же, как только Вы его поняли, и переходите к следующему вопросу. Когда ответ будет разным, в зависимости от того, рассматриваете ли Вы прошлое или настоящее, отвечайте по отношению к настоящему времени. Вам довольно трудно сконцентрировать внимание на текущем деле, так как ваше внимание рассеяно на множество других дел или зафиксировано на какой-то неизученной вещи. Обычно Вы вините других людей, ситуацию или обстоятельства, нежели настоящие причины, в вашем подавленном состоянии, поэтому вашим друзьям и семье трудно с Вами.
Введение
В течение последнего десятилетия в рамках работ по искусственному интеллекту сформировалось самостоятельное направление - экспертные системы или инженерия знаний. В задачу этого направления входят исследование и разработка программ, использующих знания и процедуры решения задач, которые являются трудными для людей - экспертов. Области применения экспертных систем разнообразны: военные приложения, медицина, электроника, вычислительная техника, геология, математика, космос, сельское хозяйство, управление, финансы, бизнес, и т.д.
Экспертная система - это программа, которая использует принципы искусственного интеллекта и знания эксперта для обработки оперативной информации и принятия обоснованных решений в анализируемой области
По форме представления знания эксперта можно отнести к следующим общим категориям. Декларативные знания - это утверждения, которые могут быть истинными или ложными. Такие знания могут быть сохранены в стандартной базе данных. Некоторые знания являются алгоритмическими и поэтому могут быть представлены в виде блок-схемы. Такие знания могут быть выражены в виде подпрограммы на любом процедурном языке программирования.
Опыт по разработке интеллектуальных или экспертных систем показал, что эксперты обладают знаниями, которые не являются ни строго декларативными, ни строго алгоритмическими. Эти знания являются интуитивными и их наличие связано с опытом экспертов. Общими являются типичные знания, которые можно представить как строго декларативное или алгоритмическое знание. Опыт, с другой стороны, - это знание частных случаев и исключений из общего знания, который нельзя эффективно преподавать в классе или перечислить в книгах. Знание частных случаев, которое приобретается на опыте, - это только одна форма более широкого класса условного знания, которое является по существу трудно организуемым и поэтому его трудно изобразить схематически в виде, например, блок-схемы. Любая программа, в которой рассматривается большое количество условных логических выражений, может быть практически трудно реализуема.
Обычно к экспертным системам относят системы, основанные на знаниях. Знания можно подразделить на формализованные (универсальные знания - законы, модели, алгоритмы) и на неформализованные (эпирические, опыт, умение, интуиция).
Традиционное программирование в качестве основы для разработки программного обеспечения использует формализованное знание (алгоритм) и не подходит для решения неформализованных задач, к которым можно отнести следующие: · алгоритмическое решение задачи неизвестно;
· задача не может быть определена в числовой форме;
· цели задачи не могут быть выражены в терминах точно определенной функции.
Как правило, такие задачи обладают неполнотой, ошибочностью, неоднозначностью и противоречивостью.
Экспертные системы не отвергают традиционного подхода к программированию, они предлагают технологию и методы решения неформализованных задач. Эти методы практически не зависят от типов решаемых задач.
1. Анализ требований и постановка задачи
OXFORD CAPACITY ANALYSIS TEST содержит 200 вопросов. На каждый вопрос есть 3 альтернативы ответов: «Да», «Нет», «Иногда, более - менее» (неуверенность), за каждую из которых присуждается определенное количество баллов.
Тест разделен на 10 подтестов по 20 вопросов - группы A, B, C, D, E, F, G, H, I, J. Группа A определяет стабильность, группа B - счастье и подавленность, группа С - спокойствие и нервозность, группа D - уверенность, группа E - активность, группа F - способность, группа G - ответственность, группа H - критичность, объективность, группа I - открытость, замкнутость, группа J - уровень общения. Каждая группа, в свою очередь, делится на 4 подгруппы.
По результатам каждого подтеста на основании полученного результата определяется принадлежность к конкретной подгруппе какой-либо группы. Далее, на основании сочетания полученных результатов, делается вывод.
2. Проектирование программа экспертный пролог
Одним из свойств экспертной системы является обеспечение естественного языка интерфейса с пользователем, поэтому представляется целесообразным представить альтернативы вариантов ответа как пункты меню.
Пользователь может пожелать повторить тест, если при предыдущем опросе он допустил ряд ошибок, поэтому необходимо системное меню, которое позволит пользователю самому решать, когда выйти из программы.
Признаки и правила из главной программы, чтобы было проще ориентироваться в ней, целесообразно вынести в отдельный файл.
Признаки записываются следующим образом: Conds (Признак, Значение_признака).
Правила же формируются так: Rules («Тест», Результат, Сочетание_признаков).
Предикаты Yes (№_вопроса, Баллы), No (№_вопроса, Баллы), M (№_вопроса, Баллы) определяют количество баллов, засчитываемое за тот или иной вариант ответа на вопрос №_вопроса.
Предикаты L1 (Список_вопросов),…, L10 (Список_вопросов) определяют номера вопросов по группам. А предикаты A1List (Список_баллов),…, A4List(List), В1List (Список_баллов),…, В4List(List),…, J1List (Список_баллов),…, J4List(List) определяют принадлежность к группе по количеству набранных баллов.
3. Кодирование
Кодирование осуществлено на языке Пролог. Результат кодирования приведен в приложении А.
Были использованы следующие домены: Intgr = integer
Было проведено функциональное тестирование, которое показало, что программа работает устойчиво, без ошибок. Результаты тестирования приведены в приложении Б.
При тестировании при различных вариантах ответов на те или иные вопросы были получены соответствующие результаты. При отладке на монитор выводились количество набранных баллов, группа, принадлежность к которой была определена в программе, результаты, полученные на основании принадлежности к конкретным группам, а также результаты, полученные на основании сочетания различных групп. При сверении результатов работы программы с исходными результатами ошибок обнаружено не было.
В конечном варианте программы были оставлены лишь результаты, полученные на основании принадлежности к конкретным группам и результаты, полученные на основании сочетания различных групп.
Вывод
Язык Пролог прошел длинный путь развития (около 30 лет). За это время появилось значительное число его реализаций, причем наиболее распространенный Turbo Prolog доступен пользователям ПЭВМ. Существует мнение, что Пролог пропагандируется и используется преимущественно специалистами, решающими задачи из области искусственного интеллекта. Однако, как показывает опыт использования различных Пролог - систем, язык Пролог может успешно применяться для разработки сложных программных систем традиционного назначения. Он нашел применение в системах автоматизированного проектирования, системах символьных вычислений и др. Обработка текста на естественном языке также является интересным и перспективным направлением Пролога.
В данной курсовой работе была поставлена задача разработки и программной реализации аналитической экспертной системы.
В ходе решения задачи были разработаны различные доменные структуры и предикаты. Было произведено кодирование на языке программирования Пролог и функциональное тестирование, в ходе которого было выявлено, что программа решает задачу корректно и устойчиво работает на тестовом наборе данных.
Список литературы
1. Братко И. Программирование на языке Пролог для искусственного интеллекта: Пер. с англ. - М.: Мир, 1990. - 560 с., ил.
2. Искусственный интеллект: в 3 кн. Кн. 1. Системы общения и экспертные системы: Справочник /Под ред. Э.В. Попова. - М.: Радио и связь, 1990. - 464 с., ил.
3. Лорьер Ж.-Л. Системы искусственного интеллекта: Пер. с франц. - М.: Мир, 1991. - 568 с., ил.
4. Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. Пер. с англ. - М.: Мир, 1990. - 336 с., ил.