Разработка экспертной системы
Структура типичной экспертной системы. База данных (рабочая память), её назначение. Функция getsport как экземпляр класса cSport. Алгоритм работы экспертной системы. Реализация пользовательского интерфейса. Результаты тестирования системы пользователем.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.06.2012 |
Размер файла | 1018,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Экспертная система - компьютерная программа, способная частично заменить специалиста-эксперта в разрешении проблемной ситуации. ЭС начали разрабатываться исследователями искусственного интеллекта в 1970-х годах, а в 1980-х получили коммерческое подкрепление.
В информатике экспертные системы рассматриваются совместно с базами знаний как модели поведения экспертов в определенной области знаний с использованием процедур логического вывода и принятия решений, а базы знаний - как совокупность фактов и правил логического вывода в выбранной предметной области деятельности.
Классификация и виды экспертных систем
Для классификации ЭС используют следующие признаки:
Способ формирования решения;
Способ учета временного признака;
Вид используемых данных;
Число используемых источников решения знаний.
По способу формирования решения ЭС можно разделить на анализирующие и синтезирующие. В системах первого типа осуществляется выбор решения из множества известных решений на основе анализа знаний, в системах второго типа решение синтезируется из отдельных фрагментов знаний. В зависимости от способа учета временного признака ЭС делят на статические и динамические. Статические ЭС предназначены для решения задач с неизменяемыми в процессе решения данными и знаниями, а динамические ЭС допускают такие изменения.
По видам используемых данных и знаний различают ЭС с детерминированными и неопределенными знаниями. Под неопределенностью знаний и данных понимаются их неполнота, ненадежность, нечеткость. ЭС могут создаваться с использованием одного или нескольких источников знаний.
Область применения экспертных систем
Существует ряд прикладных задач, которые решаются с помощью систем, основанных на знаниях, более успешно, чем любыми другими средcтвами. При определении целесообразности применения таких систем нужно руководствоваться следующими критериями.
Данные и знания надежны и не меняются со временем.
Пространство возможных решений относительно невелико.
В процессе решения задачи должны использоваться формальные рассуждения. Существуют системы, основанные на знаниях, пока еще не пригодные для решения задач методами проведения аналогий или абстрагирования (человеческий мозг справляется с этим лучше). В свою очередь традиционные компьютерные программы оказываются эффективнее систем, основанных на знаниях, в тех случаях, когда решение задачи связано с применением процедурного анализа. Системы, основанные на знаниях, более подходят для решения задач, где требуются формальные рассуждения.
Должен быть по крайней мере один эксперт, который способен явно сформулировать свои знания и объяснить свои методы применения этих знаний для решения задач.
В таблице один приведены сравнительные свойства прикладных задач, по наличию которых можно судить о целесообразности использования для их решения ЭС.
В целом ЭС не рекомендуется применять для решения следующих типов задач:
математических, решаемых обычным путем формальных преобразований и процедурного анализа;
задач распознавания, поскольку в общем случае они решаются численными методами;
задач, знания о методах решения которых отсутствуют (невозможно строить базу знаний).
Области применения систем, основанных на знаниях, могут быть сгруппированы в несколько основных классов: медицинская диагностика, контроль и управление, диагностика неисправностей в механических и электрических устройствах, обучение.
Прогнозирование.
Прогнозирующие системы предсказывают возможные результаты или события на основе данных о текущем состоянии объекта. Программная система "Завоевание Уолл-Стрита" может проанализировать конъюнктуру рынка и с помощью статистических методов алгоритмов разработать для вас план капиталовложений на перспективу. Она не относится к числу систем, основанных на знаниях, поскольку использует процедуры и алгоритмы традиционного программирования. Хотя пока еще отсутствуют ЭС, которые способны за счет своей информации о конъюнктуре рынка помочь вам увеличить капитал, прогнозирующие системы уже сегодня могут предсказывать погоду, урожайность и поток пассажиров. Даже на персональном компьютере, установив простую систему, основанную на знаниях, вы можете получить местный прогноз погоды.
Планирование.
Планирующие системы предназначены для достижения конкретных целей при решении задач с большим числом переменных. Дамасская фирма Informat впервые в торговой практике предоставляет в распоряжении покупателей 13 рабочих станций, установленных в холле своего офиса, на которых проводятся бесплатные 15-минутные консультации с целью помочь покупателям выбрать компьютер, в наибольшей степени отвечающий их потребностям и бюджету. Кроме того, компания Boeing применяет ЭС для проектирования космических станций, а также для выявления причин отказов самолетных двигателей и ремонта вертолетов. Экспертная система XCON, созданная фирмой DEC, служит для определения или изменения конфигурации компьютерных систем типа VAX и в соответствии с требованиями покупателя. Фирма DEC разрабатывает более мощную систему XSEL, включающую базу знаний системы XCON, с целью оказания помощи покупателям при выборе вычислительных систем с нужной конфигурацией. В отличие от XCON система XSEL является интерактивной.
Интерпретация.
Интерпретирующие системы обладают способностью получать определенные заключения на основе результатов наблюдения. Система PROSPECTOR, одна из наиболее известных систем интерпретирующего типа, объединяет знания девяти экспертов. Используя сочетания девяти методов экспертизы, системе удалось обнаружить залежи руды стоимостью в миллион долларов, причем наличие этих залежей не предполагал ни один из девяти экспертов. Другая интерпретирующая система- HASP/SIAP. Она определяет местоположение и типы судов в тихом океане по данным акустических систем слежения.
Контроль и управление
Системы, основанные на знаниях, могут применятся в качестве интеллектуальных систем контроля и принимать решения, анализируя данные, поступающие от нескольких источников. Такие системы уже работают на атомных электростанциях, управляют воздушным движением и осуществляют медицинский контроль. Они могут быть также полезны при регулировании финансовой деятельности предприятия и оказывать помощь при выработке решений в критических ситуациях.
Обучение.
Системы, основанные на знаниях, могут входить составной частью в компьютерные системы обучения. Система получает информацию о деятельности некоторого объекта (например, студента) и анализирует его поведение. База знаний изменяется в соответствии с поведением объекта. Примером этого обучения может служить компьютерная игра, сложность которой увеличивается по мере возрастания степени квалификации играющего. Одной из наиболее интересных обучающих ЭС является разработанная Д. Ленатом система EURISCO, которая использует простые эвристики. Эта система была опробована в игре Т. Тревевеллера, имитирующая боевые действия. Суть игры состоит в том, чтобы определить состав флотилии, способной нанести поражение в условиях неизменяемого множества правил. Система EURISCO включила в состав флотилии небольшие, способные провести быструю атаку корабли и одно очень маленькое скоростное судно и постоянно выигрывала в течение трех лет, несмотря на то, что в стремлении воспрепятствовать этому правила игры меняли каждый год. Большинство ЭС включают знания, по содержанию которых их можно отнести одновременно к нескольким типам. Например, обучающая система может также обладать знаниями, позволяющими выполнять диагностику и планирование. Она определяет способности обучаемого по основным направлениям курса, а затем с учетом полученных данных составляет учебный план. Управляющая система может применяться для целей контроля, диагностики, прогнозирования и планирования. Система, обеспечивающая сохранность жилища, может следить за окружающей обстановкой, распознавать происходящие события (например, открылось окно), выдавать прогноз (вор-взломщик намеревается проникнуть в дом) и составлять план действий (вызвать полицию).
Наиболее известные ЭС, разработанные в 60-70-х годах, стали в своих областях уже классическими. По происхождению, предметным областям и по преемственности применяемых идей, методов и инструментальных программных средств их можно разделить на несколько семейств.
Целью написания данного курсового проекта являлось изучение особенностей создания экспертных систем.
Задачей курсового проекта является написание экспертной системы.
1. Описание предметной области
Для создания экспертной системы была выбрана тема определения оптимального вида спорта для человека.
Во всём мире люди по-разному относятся к спорту. Одни очень прохладно относятся к спорту и некоторые даже считают его бесполезной тратой времени. Другие люди видят смысл спорта и их, к счастью, больше чем первых. Причём каждый из них может иметь разное отношение к спорту: кто-то предпочитает смотреть его по телевизору, кто-то предпочитает просто заниматься каким-либо видом спорта или общефизической подготовкой, ну а для кого-то спорт - это средство существования. Среди последних могут быть действующие спортсмены, тренеры, врачи, директоры различных спортивных обществ, попечители спорта и др.
Хотелось бы отметить, что наиболее полезным для человека, да и для общества является именно занятие спортом на любом уровне. Во многом это обусловлено тем, что человечество, не смотря на научные прогрессы, деградирует сам по себе, конечно, при этом в определённых качествах он растёт. Человек старается упростить себе жизнь. Физический труд для человека перестаёт иметь значение в связи с развитием техники. Человек постепенно теряет те качества, в основном физические, которыми его наградил Бог. Человек по сравнению со своими далёкими предками становится более дряхлым и здесь ещё ко всему прочему на него очень плохо могут влиять такие соблазны, как спиртное, табак и наркотики. Крайне не желательно поддаваться этим соблазнам, а особенно наркотикам. И в этом замечательную роль для человека может сыграть занятие спортом, т.к. он прямо противоположен этим злым факторам и спокойно может служить той альтернативой, которая не даст человеку стать алкоголиком, курильщиком и наркоманом. Роль спорта в нашей жизни очень велика.
2. Структура экспертной системы
Типичная статическая ЭС состоит из следующих основных компонентов (рисунок 1):
решателя (интерпретатора);
рабочей памяти (РП), называемой также базой данных (БД);
базы знаний (БЗ);
компонентов приобретения знаний;
объяснительного компонента;
диалогового компонента.
База данных (рабочая память) предназначена для хранения исходных и промежуточных данных решаемой в текущий момент задачи. Этот термин совпадает по названию, но не по смыслу с термином, используемым в информационно-поисковых системах (ИПС) и системах управления базами данных (СУБД) для обозначения всех данных (в первую очередь долгосрочных), хранимых в системе.
База знаний (БЗ) в ЭС предназначена для хранения долгосрочных данных, описывающих рассматриваемую область (а не текущих данных), и правил, описывающих целесообразные преобразования данных этой области.
Решатель, используя исходные данные из рабочей памяти и знания из БЗ, формирует такую последовательность правил, которые, будучи примененными к исходным данным, приводят к решению задачи.
Компонент приобретения знаний автоматизирует процесс наполнения ЭС знаниями, осуществляемый пользователем-экспертом.
Объяснительный компонент объясняет, как система получила решение задачи (или почему она не получила решение) и какие знания она при этом использовала, что облегчает эксперту тестирование системы и повышает доверие пользователя к полученному результату.
Диалоговый компонент ориентирован на организацию дружественного общения с пользователем как в ходе решения задач, так и в процессе приобретения знаний и объяснения результатов работы.
Размещено на http://www.allbest.ru/
Рисунок 1 - Структура статической ЭС
3. Описание экспертной системы
Экспертная система написана на языке CLIPS. В файле expert.cls содержатся классы и функции предназначенные для работы системы.
Класс cSport содержит результаты работы экспертной системы. Класс cSport является пользовательским, конкретным классом, т.е. возможно создание экземпляров этого класса. Экземпляры класса cSport могут быть использованы в качестве объектов данных, которые можно сопоставлять с условиями в правилах и использовать в действиях, определенных правилами.
Функция getsport является экземпляром класса cSport. В ней осуществляется подсчет результатов и выбор решения. Входными параметрами является ответы на вопросы экспертной системы.
4. Алгоритм работы экспертной системы
Когда вызывается функция getsport с соответствующими параметрами, в ней создаётся объект класса cSport, далее в зависимости от того, какие значения имеют параметры функции, в слот score класса cSport записывается количество баллов.
5. Реализация пользовательского интерфейса
Для реализации пользовательского интерфейса были использованы следующие технологии: HTML, CSS, JavaScript, PHP5.
Разработка производилась под операционной системой Ubuntu 9.10, с установленными на ней Apache2, PHP5.
Для связывания экспертной системы на языке CLIPS использовалось расширение для PHP phlips версии 0.5.1.
Выбор именно этих средств обусловлен, простотой и скоростью разработки.
Непосредственно интерфейс реализован на языке HTML, для визуального оформления применены CSS стили и JavaScript библиотека JQuery v1.3.2 с расширением JQuery Corner. Для навигации также используется JQuery.
Серверная часть, отвечающая за работу с CLIPS и бизнес-логику написана на PHP.
За работу с CLIPS отвечают несколько функций:
clips_clear() - очистка экспертной системы
clips_load ( string file ) - загрузка файла
clips_function_call ( string function_name [, string arguments] ) - вызов функции
6. Результат работы экспертной системы
Результаты работы экспертной системы представлены на скриншотах. Вопросы задаваемые пользователю (рисунки 2, 3, 4). По вопросам можно перемещается вперёд и назад, для этого используются кнопки «Далее» и «Назад». В конце тестирования появится копка «Результат». После нажатия которой выведутся результаты тестирования (рисунки 5, 6).
Рисунок 2 - Тестирование пользователя
Рисунок 3 - Тестирование пользователя
Рисунок 4 - Тестирование пользователя, последний вопрос
экспертный система данная база
Рисунок 5 - Результат тестирования
Рисунок 6 - Результат тестирования
Заключение
В ходе выполнения курсового проекта была создана экспертная система для определения оптимального вида спорта. Таким цель и задача курсового проекта были выполнены.
Необходимо отметить, что в настоящее время технология экспертных систем используется для решения различных типов задач (интерпретация, предсказание, диагностика, планирование, конструирование, контроль, отладка, инструктаж, управление) в самых разнообразных проблемных областях, таких, как финансы, нефтяная и газовая промышленность, энергетика, транспорт, фармацевтическое производство, космос, металлургия, горное дело, химия, образование, целлюлозно-бумажная промышленность, телекоммуникации и связь и др.
Список используемых источников
1. Частиков А.П. Разработка экспертных систем. Среда CLIPS / А.П. Частиков, Т.А. Гаврилова, Д.Л. Белов. - СПб.: БХВ-Петербург, 2003. - 608 с
2. Джарратано Д. Экспертные системы: принципы разработки и программирование / Д. Джарратано, Г. Райли. - М.: Вильямс, 2006. - 1152 с.
3. Одинцов Б.Е. Проектирование экономических экспертных систем / Б.Е. Одинцов. - М.: ЮНИТИ, 1996.-166 с.
Приложение А
Исходный код программы
Файл expert.clp
(defclass cSport
(is-a USER)
(role concrete)
(pattern-match reactive)
(slot score (create-accessor read-write) (storage local) (default 1))
)
(deffunction getsport (?type ?sex ?season ?skates ?swim ?sport ?shoot ?dance ?ball ?type_gim ?type_swim)
(make-instance getsport of cSport)
(if (and (eq ?type 1) (and (eq ?season 2) (eq ?ball 1)))
then
(send [getsport] put-score (+ (send [getsport] get-score) 1))
)
(if (and (and (eq ?type 1) (eq ?sex 1)) (and (eq ?season 1) (eq ?skates 1)))
then
(send [getsport] put-score (+ (send [getsport] get-score) 2))
)
(if (and (and (eq ?type 1) (eq ?sex 1)) (and (eq ?season 1) (eq ?skates 2)))
then
(send [getsport] put-score (+ (send [getsport] get-score) 3))
)
(if (and (eq ?type 1) (and (eq ?season 2) (eq ?ball 2)))
then
(send [getsport] put-score (+ (send [getsport] get-score) 4))
)
(if (and (and (eq ?type 1) (eq ?sex 2)) (and (eq ?season 1) (eq ?skates 2)))
then
(send [getsport] put-score (+ (send [getsport] get-
score) 5))
24
)
(if (and (and (eq ?type 2) (eq ?dance 1)) (and (eq ?season 1) (eq ?skates 1)))
then
(send [getsport] put-score (+ (send [getsport] get-score) 6))
)
(if (and (and (eq ?type 2) (eq ?dance 2)) (and (eq ?season 1) (eq ?skates 1)))
then
(send [getsport] put-score (+ (send [getsport] get-score) 7))
)
(if (and (and (eq ?type 2) (eq ?shoot 1)) (and (eq ?season 1) (eq ?skates 2)))
then
(send [getsport] put-score (+ (send [getsport] get-score) 8))
)
(if (and (and (eq ?type 2) (eq ?shoot 2)) (and (eq ?season 1) (eq ?skates 2)))
then
(send [getsport] put-score (+ (send [getsport] get-score) 9))
)
(if (and (and (eq ?type 2) (eq ?season 2)) (and (eq ?sex 1) (eq ?swim 1)))
then
(send [getsport] put-score (+ (send [getsport] get-score) 10))
)
(if (and (and (and (eq ?type 2) (eq ?season 2)) (and (eq ?sex 1) (eq ?swim 2))) (eq ?sport 1))
then
(send [getsport] put-score (+ (send [getsport] get-score) 11))
)
(if (and (and (and (eq ?type 2) (eq ?season 2)) (and (eq ?sex 1) (eq ?swim 2))) (eq ?sport 2))
then
(send [getsport] put-score (+ (send [getsport] get-score) 12))
)
(if (and (and (and (eq ?type 2) (eq ?season 2)) (and (eq ?sex 1) (eq ?swim 2))) (eq ?sport 3))
then
(send [getsport] put-score (+ (send [getsport] get-score) 13))
)
(if (and (and (eq ?type 2) (eq ?season 2)) (and (eq ?sex 2) (and (eq ?swim 1) (eq ?type_swim 1))))
then
(send [getsport] put-score (+ (send [getsport] get-score) 14))
)
(if (and (and (eq ?type 2) (eq ?season 2)) (and (eq ?sex 2) (and (eq ?swim 1) (eq ?type_swim 2))))
then
(send [getsport] put-score (+ (send [getsport] get-score) 15))
)
(if (and (and (and (eq ?type 2) (eq ?season 2)) (and (eq ?sex 2) (and (eq ?swim 2) (eq ?type_gim 1)))) (eq ?sport 1))
then
(send [getsport] put-score (+ (send [getsport] get-score) 16))
)
(if (and (and (and (eq ?type 2) (eq ?season 2)) (and (eq ?sex 2) (and (eq ?swim 2) (eq ?type_gim 2)))) (eq ?sport 1))
then
(send [getsport] put-score (+ (send [getsport] get-score) 17))
)
(if (and (and (and (eq ?type</a> 2) (eq ?season 2)) (and (eq ?sex 2) (eq ?swim 2))) (eq ?sport 2))
then
(send [getsport] put-score (+ (send [getsport] get-score) 18))
)
(if (and (and (and (eq ?type 2) (eq ?season 2)) (and (eq ?sex 2) (eq ?swim 2))) (eq ?sport 3))
then
(send [getsport] put-score (+ (send [getsport] get-score) 19))
)
(if (and (and (eq ?type 1) (eq ?season 2)) (eq ?swim 1))
then
(send [getsport] put-score (+ (send [getsport] get-score) 20))
)
(send [getsport] get-score)
)
Файл index.php:
<?php
header('Content-Type: text/html; charset=utf-8');
$title = 'Экспертная система';
clips_clear();
clips_load('expert.clp');
if (isset($_POST['type'],$_POST['sex'],$_POST['season'],$_POST['skates'],$_POST['swim'],$_POST['sport'],$_POST['shoot'],$_POST['dance'],$_POST['ball'],$_POST['type_gim'],$_POST['type_swim'])) {
$sport = clips_function_call('getsport',$_POST['type'].' '.$_POST['sex'].' '.$_POST['season'].' '.$_POST['skates'].' '.$_POST['swim'].' '.$_POST['sport'].' '.$_POST['shoot'].' '.$_POST['dance'].' '.$_POST['ball'].' '.$_POST['type_gim'].' '.$_POST['type_swim']);
}else {
$sport = NULL;
}
if ($sport != NULL) {
include('views/results.php');
$content = $result;
$title = 'Результат теста';
}else {
$content = file_get_contents('views/questions.php');
}
include('views/main.php');
Файл views/main.php:
<html>
<head>
<title><?= $title?></title>
<script lanuage="javascript" src="js/jquery.js"></script>
<script lanuage="javascript" src="js/jquery.corner.js"></script>
<script lanuage="javascript" src="js/main-script.js"></script>
<link type="text/css" rel="stylesheet" href="views/style.css" />
</head>
<body>
<div id="title">
<h4>Если вы хотите заняться спортом, но не знаете каким, пройдите этот тест;)</h4>
</div>
<div id="main">
<?= $content?>
</div>
</body>
</html>
Файл views/questions.php:
<form action="index.php" method="POST">
<div id="question1" class="question">
Ваш пол:<br />
<input type="radio" name="sex" value="1" checked="checked" /> Мужской<br />
<input type="radio" name="sex" value="2" /> Женский
</div>
<div id="question2" class="question">
Какие виды спорта вы предпочитаете?<br />
<input type="radio" name="type" value="1" checked="checked" /> Коммандные<br />
<input type="radio" name="type" value="2" /> Индивидуальные<br />
</div>
<div id="question3" class="question">
В какое время года вы хотите заниматься спортом? <br />
<input type="radio" name="season" value="1" checked="checked" /> Зимой<br />
<input type="radio" name="season" value="2" /> Летом
</div>
<div id="question4" class="question">
Вы любите кататься на коньках?<br />
<input type="radio" name="skates" value="1" checked="checked" /> Да<br />
<input type="radio" name="skates" value="2" /> Нет
</div>
<div id="question5" class="question">
Вы любите плавать?<br />
<input type="radio" name="swim" value="1" checked="checked" /> Да<br />
<input type="radio" name="swim" value="2" /> Нет
</div>
<div id="question6" class="question">
Что вы предпочитаете?<br />
<input type="radio" name="sport" value="1" checked="checked" /> Гимнастика<br />
<input type="radio" name="sport" value="2" /> Легкая атлетика<br />
<input type="radio" name="sport" value="2" /> Тяжелый спорт
</div>
<div id="question7" class="question">
Вы любите стрелять?<br />
<input type="radio" name="shoot" value="1" checked="checked" /> Да<br />
<input type="radio" name="shoot" value="2" /> Нет<br />
</div>
<div id="question8" class="question">
Вы любите танцевать?<br />
<input type="radio" name="dance" value="1" checked="checked" /> Да<br />
<input type="radio" name="dance" value="2" /> Нет<br />
</div>
<div id="question9" class="question">
Вы играть с мячом?<br />
<input type="radio" name="ball" value="1" checked="checked" /> Да<br />
<input type="radio" name="ball" value="2" /> Нет<br />
</div>
<div id="question10" class="question">
Вам нравятся упражнения с мячом, лентами и прочее?<br />
<input type="radio" name="type_gim" value="1" checked="checked" /> Да<br />
<input type="radio" name="type_gim" value="2" /> Нет
</div>
<div id="question11" class="question">
Вам нравится плавать под музыку?<br />
<input type="radio" name="type_swim" value="1" checked="checked" /> Да<br />
<input type="radio" name="type_swim" value="2" /> Нет
</div>
<button id="submit">Результат</button>
</form>
<div id="buttons"><button id="back">Назад</button> <button id="next">Далее</button></div>
Файл views/results.php:
<?php
if ($sport == 2) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет футбол</div>';}
if ($sport == 3) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет хоккей</div>';}
if ($sport == 4) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет
бобслей</div>';}
if ($sport == 5) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет волейбол</div>';}
if ($sport == 6) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет кёрлинг</div>';}
if ($sport == 7) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет фигурное катание</div>';}
if ($sport == 8) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет конькобежный спорт</div>';}
if ($sport == 9) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет биатлон</div>';}
if ($sport == 10) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет лыжи</div>';}
if ($sport == 11 || $sport == 16) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет плавание</div>';}
if ($sport == 12 || $sport == 18) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет спортивная гимнастика</div>';}
if ($sport == 13 || $sport == 19) {$result = '<div class="result" id="ischemic1">Оптимальным видом спорта для вас будет легкая атлетика</div>';}
if ($sport == 14 || $sport == 20) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет тяжелый спорт</div>';}
if ($sport == 15) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет синхронное плавание</div>';}
if ($sport == 17) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет художественная гимнастика</div>';}
if ($sport == 21) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет водное поло</div>';}
if ($sport == 22) {$result = '<div class="result" id="sport1">Оптимальным видом спорта для вас будет водное поло или футбол</div>';}
if ($sport < 2 || $sport > 22) {$result = '<div class="result" id="sport1">Система не смогла подобрать вам оптимальный вид спорта</div>';}
$result .= '<center><button><a href="../">Назад</button></a><center>';
Файл views/style.css:
html, body {
margin:auto;
padding-top:5px;
}
#main {
margin:auto;
padding:5px;
width:400px;
border:1px solid gray;
text-align:left;
background-color:#fff8eb;
}
#title {
margin:auto;
margin-bottom:10px;
padding:5px;
width:400px;
border:1px solid gray;
text-align:center;
background-color:#fff8eb;
}
question {
display:none;
margin:5px;
padding:5px;
background-color:#e7f0f5;
border:1px solid #84ccf5;
}
#submit {
display:none;
}
#buttons {
margin:auto;
text-align:center;
}
#back {
display:none;
}
input[type=radio] {
margin-top:5px;
}
.result {
margin:5px;
padding:5px;
background-color:#e7f0f5;
border:1px solid #84ccf5;
}
a {
text-decoration: none;
text-transform: lowercase;
color: #666666;
}
Файл js/main-script.js:
var currQuestion = 1;
$(document).ready(function() {
$("#main, #title").corner("8 px");
$(".question, .result").corner("8 px");
$("#question1").show();
$("#next").click(function() {
if (currQuestion < 11) {
$("#question" + currQuestion).hide();
currQuestion++;
$("#question" + currQuestion).show();
$("#back").show();
}else {
$("#submit").show();
$(this).hide();
}
});
$("#back").click(function() {
if (currQuestion > 1) {
$("#question" + currQuestion).hide();
currQuestion--;
$("#question" + currQuestion).show();
$("#next").show();
$("#submit").hide();
}else {
$(this).hide();
}
});
})
Приложение Б
Блок-схема программы
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Описание блоков:
1. Начало
2. Задать первый вопрос
3. Задать второй вопрос
4. Задать третий вопрос
5. Задать четвёртый вопрос
6. Задать пятый вопрос
7. Задать шестой вопрос
8. Задать седьмой вопрос
9. Задать восьмой вопрос
10. Задать девятый вопрос
11. Задать десятый вопрос
12. Задать одиннадцатый вопрос
13. Ссылка на другую страницу.
14. Обработать полученные данные в экспертной системе
15. Вывести результат на экран
16. Конец
Результат работы программы
Размещено на Allbest.ru
Подобные документы
Структура экспертной системы: база знаний, механизм вывода, система пользовательского интерфейса. Анализ требований, проектирование системы "Подбор сотовых телефонов". Спецификация области, кодирование. Листинг программы, результаты тестирования.
курсовая работа [24,5 K], добавлен 12.05.2013Назначение экспертной системы. Разработка экспертной системы путем самостоятельного программирования в полном объеме простейшей ЭС в "GURU". Листинг экспертной системы по прогнозированию на бирже уровня цен, если валютный курс доллара падает или растет.
лабораторная работа [17,8 K], добавлен 15.01.2011История развития, применение искусственных нейронных сетей. Распознавание образов в сети. Сжатие данных и ассоциативная память. Проектирование экспертной системы, позволяющей диагностировать заболевания органов пищеварения. Программная реализация системы.
курсовая работа [744,0 K], добавлен 05.02.2016Виды и основные функции интеллектуальных систем. Выбор инструментального средства для создания экспертной системы. Физическое проектирование базы данных. Использование среды EsWin 2.1 для разработки и тестирования экспертной системы выбора должности.
курсовая работа [615,8 K], добавлен 22.03.2016Общая характеристика киноиндустрии как предметной области работы. Разработка базы данных и дерева вопросов для получения информации для выбора фильма. Программная реализация экспертной системы. Тестирование системы и создание руководства пользователя.
курсовая работа [1,9 M], добавлен 19.05.2014Сущность и назначение экспертной системы, ее основные элементы и предъявляемые требования, обоснование важности и области применения. Методика получения объяснений в результате действия экспертной системы, их виды. Построение модели гибкого интерфейса.
курсовая работа [202,4 K], добавлен 10.11.2009История появления первой экспертной системы DENDRAL. Проектирование и разработка программной экспертной системы, предназначенной для анализа финансового состояния предприятия. Основные предикаты и секции приложения: domains, predicates, clauses, goal.
курсовая работа [1,5 M], добавлен 21.05.2016Аналитический обзор системы управления курсами Moodle, программное построение ее модулей. Разработка структурной схемы и базы знаний экспертной системы. Создание дерева вопросов и выбор алгоритма поиска решений. Анализ возможных угроз и защита информации.
дипломная работа [534,7 K], добавлен 14.12.2013Описание экспертной системы по подбору кадров. Требования к функциональным характеристикам программы. Состав и параметры технических средств ЭВМ. Структура входных данных. Руководство программиста и пользователя. Тестирование программного средства.
курсовая работа [897,0 K], добавлен 13.11.2016Требования к спецодежде. Материалы и ткани для ее изготовления. Разработка экспертной системы для определения вероятности использования спецодежды определенного вида с использованием метода Байеса. Реализация демонстрационной версии системы в MS Excel.
курсовая работа [616,5 K], добавлен 18.06.2015