Экспертные системы контроля инженерных решений

Участники и инструментальные средства создания экспертной системы. Классификация, преимущества, сферы применения экспертных систем. Разработка блок-схемы алгоритма и программы на языке Турбо Паскаль для решения задачи по теме "Двумерные массивы".

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 18.01.2014
Размер файла 1,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ - УНПК

Кафедра: «Прикладная математика и информатика»

Курсовая работа

по дисциплине «Информатика»

Экспертные системы контроля инженерных решений

Работу выполнил студент Шатеев А.В.

Шифр 071476 Группа 1-2 Факультет вечернего обучения

Специальность: Конструирование и технология электронных средств

Курсовая работа защищена с оценкой__________________________

Руководитель - Овсянникова И.В.

Орел 2012

Содержание

  • Содержание
  • 1. Реферат на тему «Экспертные системы»
    • 1.1 Структура экспертных систем
    • 1.2 Формализация базы знаний
    • 1.3 Классификация экспертных систем
    • 1.4 Разработка экспертных систем
    • 1.5 Участники создания экспертной системы и инструментальные средства
    • 1.6 Преимущества экспертных систем
    • 1.7 Сферы применения экспертных систем
  • 2. Разработка блок-схемы алгоритма и программы на языке Турбо Паскаль для решения задачи по теме «Двумерные массивы»
    • 2.1 Описание используемых в алгоритме объектов, их имён и типов
    • 2.2 Описание работы программы, составление блок-схемы алгоритма решения задачи
    • 2.3 Текст программы
    • 2.4 Тестовые данные для отладки программы и проверка работы программы с учётом подобранного теста.

1. Реферат на тему «Экспертные системы»

Области применения систем, основанных на знаниях, весьма разнообразны: бизнес, производство, военные приложения, медицина, социология, геология, космос, сельское хозяйство, управление, юриспруденция и др.

Системы, основанные на знаниях (СОЗ) -- это системы программного обеспечения, основными структурными элементами которых являются база знаний и механизм логических выводов. Среди СОЗ можно выделить:

· интеллектуальные информационно-поисковые системы;

· экспертные системы (ЭС).

Наиболее известным практическим примером СОЗ могут служить экспертные системы, способные диагностировать заболевания, оценивать потенциальные месторождения полезных ископаемых, осуществлять обработку естественного языка, распознавание речи и изображений и т.д. Экспертные системы являются первым шагом в практической реализации исследований в области искусственного интеллекта.

Экспертная система - компьютерная система, использующая знания одного или нескольких экспертов, представленные в некотором формальном виде, а также логику принятия решения человеком-экспертом в трудно- или неформализуемых задачах. Экспертные системы способны в сложной ситуации (при недостатке времени, информации или опыта) дать квалифицированную консультацию (совет, подсказку), помогающую специалисту или менеджеру принять обоснованное решение.

Основная идея этих систем состоит в использовании знаний и опыта специалистов высокой квалификации в данной предметной области специалистами менее высокой квалификации в той же предметной области при решении возникающих перед ними проблем.

1.1 Структура экспертных систем

Экспертные системы -- это сложные программные комплексы, аккумулирующие знания специалистов в конкретных предметных областях и тиражирующие этот эмпирический опыт для консультаций менее квалифицированных пользователей.

Основу ЭС составляет база знаний (БЗ) о предметной области, которая накапливается в процессе построения и эксплуатации ЭС. Накопление и организация знаний - важнейшее свойство всех ЭС.

Рисунок 1.1 - Структура идеальной экспертной системы

База знаний включает в себя правила и общие факты. Механизм логического вывода включает в себя рабочую память и механизм логического вывода. Рабочая память (база данных) используется для хранения промежуточных результатов. Экспертная система работает в двух режимах:

· Режим приобретения знаний (определение, модификация, дополнение).

· Режим решения задач. Используются пользователем экспертные системы. В этом режиме данные о задаче обрабатываются пользовательским интерфейсом и после соответствующей кодировки передаются в блоки экспертной системы.

Результаты обработки полученных данных поступают в модуль советов и объяснений и после перекодировки на язык, близкий к естественному, выдаются в виде советов, объяснений и замечаний. Если ответ не понятен пользователю, он может потребовать от экспертной системы объяснения его получения.

В любой момент времени в системе существуют три типа знаний:

· Структурированные знания - статические знания о предметной области. После того как эти знания выявлены, они уже не изменяются.

· Структурированные динамические знания- изменяемые знания о предметной области. Они обновляются по мере выявления новой информации.

· Рабочие знания- знания, применяемые для решения конкретной задачи или проведения консультации.

Все перечисленные выше знания хранятся в базе знаний. Для ее построения требуется провести опрос специалистов, являющихся экспертами в конкретной предметной области, а затем систематизировать, организовать и снабдить эти знания указателями, чтобы впоследствии их можно было легко извлечь из базы знаний.

Знания являются явными и доступными, что отличает ЭС от традиционных программ, и определяет их основные свойства, такие, как:

· Применение для решения проблем высококачественного опыта, который представляет уровень мышления наиболее квалифицированных экспертов в данной области, что ведёт к решениям творческим, точным и эффективным.

· Наличие прогностических возможностей, при которых ЭС выдаёт ответы не только для конкретной ситуации, но и показывает, как изменяются эти ответы в новых ситуациях, с возможностью подробного объяснения каким образом новая ситуация привела к изменениям.

· Обеспечение такого нового качества, как институциональная память, за счёт входящей в состав ЭС базы знаний, которая разработана в ходе взаимодействий со специалистами организации, и представляет собой текущую политику этой группы людей. Этот набор знаний становится сводом квалифицированных мнений и постоянно обновляемым справочником наилучших стратегий и методов, используемых персоналом. Ведущие специалисты уходят, но их опыт остаётся.

· Возможность использования ЭС для обучения и тренировки руководящих работников, обеспечивая новых служащих обширным багажом опыта и стратегий, по которым можно изучать рекомендуемую политику и методы.

Рисунок 1.2 - Основные свойства экспертных систем

Типичная статическая ЭС состоит из следующих основных компонентов (рисунок 1.3.):

· решателя (интерпретатора);

· рабочей памяти (РП), называемой также базой данных (БД);

· базы знаний (БЗ);

· компонентов приобретения знаний;

· объяснительного компонента;

· диалогового компонента.

База данных (рабочая память) предназначена для хранения исходных и промежуточных данных решаемой в текущий момент задачи. Этот термин совпадает по названию, но не по смыслу с термином, используемым в информационно-поисковых системах (ИПС) и системах управления базами данных (СУБД) для обозначения всех данных (в первую очередь долгосрочных), хранимых в системе.

База знаний (БЗ) в ЭС предназначена для хранения долгосрочных данных, описывающих рассматриваемую область (а не текущих данных), и правил, описывающих целесообразные преобразования данных этой области.

Решатель, используя исходные данные из рабочей памяти и знания из БЗ, формирует такую последовательность правил, которые, будучи примененными к исходным данным, приводят к решению задачи.

Компонент приобретения знаний автоматизирует процесс наполнения ЭС знаниями, осуществляемый пользователем-экспертом.

Объяснительный компонент объясняет, как система получила решение задачи (или почему она не получила решение) и какие знания она при этом использовала, что облегчает эксперту тестирование системы и повышает доверие пользователя к полученному результату.

Рисунок 1.3 - Структура статической экспертной системы

Диалоговый компонент ориентирован на организацию дружественного общения с пользователем как в ходе решения задач, так и в процессе приобретения знаний и объяснения результатов работы.

Экспертная система работает в двух режимах: режиме приобретения знаний и в режиме решения задачи (называемом также режимом консультации или режимом использования ЭС).

В режиме приобретения знаний общение с ЭС осуществляет (через посредничество инженера по знаниям) эксперт. В этом режиме эксперт, используя компонент приобретения знаний, наполняет систему знаниями, которые позволяют ЭС в режиме решения самостоятельно (без эксперта) решать задачи из проблемной области. Эксперт описывает проблемную область в виде совокупности данных и правил. Данные определяют объекты, их характеристики и значения, существующие в области экспертизы. Правила определяют способы манипулирования с данными, характерные для рассматриваемой области.

Отметим, что режиму приобретения знаний в традиционном подходе к разработке программ соответствуют этапы алгоритмизации, программирования и отладки, выполняемые программистом. Таким образом, в отличие от традиционного подхода в случае ЭС разработку программ осуществляет не программист, а эксперт (с помощью ЭС), не владеющий программированием.

В режиме консультации общение с ЭС осуществляет конечный пользователь, которого интересует результат и (или) способ его получения. Необходимо отметить, что в зависимости от назначения ЭС пользователь может не быть специалистом в данной проблемной области (в этом случае он обращается к ЭС за результатом, не умея получить его сам), или быть специалистом (в этом случае пользователь может сам получить результат, но он обращается к ЭС с целью либо ускорить процесс получения результата, либо возложить на ЭС рутинную работу). В режиме консультации данные о задаче пользователя после обработки их диалоговым компонентом поступают в рабочую память. Решатель на основе входных данных из рабочей памяти, общих данных о проблемной области и правил из БЗ формирует решение задачи. ЭС при решении задачи не только исполняет предписанную последовательность операции, но и предварительно формирует ее.

Структуру, приведенную на рисунке 1.3, называют структурой статической ЭС. ЭС данного типа используются в тех приложениях, где можно не учитывать изменения окружающего мира, происходящие за время решения задачи. Первые ЭС, получившие практическое использование, были статическими.

Рисунок 1.4 - Структура динамической экспертной системы

На рисунке 1.4 показано, что в архитектуру динамической ЭС по сравнению со статической ЭС вводятся два компонента: подсистема моделирования внешнего мира и подсистема связи с внешним окружением. Последняя осуществляет связи с внешним миром через систему датчиков и контроллеров. Кроме того, традиционные компоненты статической ЭС (база знаний и машина вывода) претерпевают существенные изменения, чтобы отразить временную логику происходящих в реальном мире событий.

1.2 Формализация базы знаний

На этапе формализации базы знаний осуществляется выбор метода представления знаний (совокупность средств структурирования и обработки единиц знаний). В рамках выбранного формализма осуществляется проектирование логической структуры базы знаний.

Классификация методов представления знаний с точки зрения особенностей отображения различных видов концептуальных моделей: соотношения структурированности и операционности, детерминированности и неопределенности, статичности и динамичности знаний.

Рисунок 1.5 - Классификация методов представления знаний

Объектные методы представления знаний в большей степени ориентированы на представление структуры фактуального знания, а правила - операционного.

· Логическая модель реализует и объекты, и правила с помощью предикатов первого порядка, является строго формализованной моделью с универсальным дедуктивным и монотонным методом логического вывода;

· Продукционная модель позволяет осуществлять эвристические методы вывода на правилах и может обрабатывать неопределенности в виде условных вероятностей или коэффициентов уверенности, а также выполнять монотонный или немонотонный вывод;

· Семантическая сеть отображает разнообразные отношения объектов;

· Фреймовая модель, как частный случай семантической сети, использует для реализации операционного знания присоединенные процедуры;

· Объектно-ориентированная модель, как развитие фреймовой модели, реализуя обмен сообщениями между объектами, в большей степени ориентирована на решение динамических задач и отражение поведенческой модели.

1.3 Классификация экспертных систем

Рисунок 1.6 - Классификация экспертных систем

Классифицирующие экспертные системы. К аналитическим задачам прежде всего относятся задачи распознавания различных ситуаций, когда по набору заданных признаков (факторов) выявляется сущность некоторой ситуации, в зависимости от которой выбирается определенная последовательность действий. Таким образом, в соответствии с исходными условиями среди альтернативных решений находится одно, наилучшим образом удовлетворяющее поставленной цели и ограничениям.

Экспертные системы, решающие задачи распознавания ситуаций, называются классифицирующими, поскольку определяют принадлежность анализируемой ситуации к некоторому классу. В качестве основного метода формирования решений используется метод логического дедуктивного вывода от общего к частному, когда путем подстановки исходных данных в некоторую совокупность взаимосвязанных общих утверждений получается частное заключение.

Доопределяющие экспертные системы. Более сложный тип аналитических задач представляют задачи, которые решаются на основе неопределенных исходных данных и применяемых знаний. В этом случае экспертная система должна как бы доопределять недостающие знания, а в пространстве решений может получаться несколько возможных решений с различной вероятностью или уверенностью в необходимости их выполнения. В качестве методов работы с неопределенностями могут использоваться байесовский вероятностный подход, коэффициенты уверенности, нечеткая логика.

Доопределяющие экспертные системы могут использовать для формирования решения несколько источников знаний. В этом случае могут использоваться эвристические приемы выбора единиц знаний из их конфликтного набора, например, на основе использования приоритетов важности, или получаемой степени определенности результата, или значений функций предпочтений и т.д.

Для аналитических задач классифицирующего и доопределяющего типов характерны следующие проблемные области:

· Интерпретация данных;

· Диагностика;

· Коррекция.

Трансформирующие экспертные системы. В отличие от аналитических статических экспертных систем синтезирующие динамические экспертные системы предполагают повторяющееся преобразование знаний в процессе решения задач, что связано с характером результата, который нельзя заранее предопределить, а также с динамичностью самой проблемной области.

В качестве методов решения задач в трансформирующих экспертных системах используются разновидности гипотетического вывода:

· генерации и тестирования, когда по исходным данным осуществляется генерация гипотез, а затем проверка сформулированных гипотез на подтверждение поступающими фактами;

· предположений и умолчаний, когда по неполным данным подбираются знания об аналогичных классах объектов, которые в дальнейшем динамически адаптируются к конкретной ситуации в зависимости от ее развития;

· использование общих закономерностей (метауправления) в случае неизвестных ситуаций, позволяющих генерировать недостающее знание.

Многоагентные системы. Для таких динамических систем характерна интеграция в базе знаний нескольких разнородных источников знаний, обменивающихся между собой получаемыми результатами на динамической основе, например, через "доску объявлений".

Рисунок 1.7 - Структура многоагентной экспертной системы

Для многоагентных систем характерны следующие особенности:

· Проведение альтернативных рассуждений на основе использования различных источников знаний с механизмом устранения противоречий;

· Распределенное решение проблем, которые разбиваются на параллельно решаемые подпроблемы, соответствующие самостоятельным источникам знаний;

· Применение множества стратегий работы механизма вывода заключений в зависимости от типа решаемой проблемы;

· Обработка больших массивов данных, содержащихся в базе данных;

· Использование различных математических моделей и внешних процедур, хранимых в базе моделей;

· Способность прерывания решения задач в связи с необходимостью получения дополнительных данных и знаний от пользователей, моделей, параллельно решаемых подпроблем.

Для синтезирующих динамических экспертных систем наиболее применимы следующие проблемные области:

· Проектирование;

· Прогнозирование;

· Диспетчирование;

· Планирование;

· Мониторинг;

· Управление.

1.4 Разработка экспертных систем

Разработка интеллектуальных информационных систем отличается от создания обычного программного продукта. Опыт разработки ранних экспертных систем показал, что использование традиционной технологии программирования либо чрезмерно затягивает процесс разработки, либо вообще приводит к отрицательному результату. Это связано главным образом с необходимостью модифицировать принципы и способы построения по мере того, как увеличивается знание разработчиков о проблемной области.

Известно, что большая часть знаний в конкретной предметной области остается личной собственностью эксперта. Наибольшую проблему при разработке экспертной системы представляет процедура получения знаний у эксперта и занесения их в базу знаний, называемая извлечением знаний. Это происходит не потому, что он не хочет разглашать своих секретов, а потому, что не в состоянии сделать это -- ведь эксперт знает гораздо больше, чем сам осознает. Для выявления знаний эксперта и их формализации на протяжении всего периода разработки с ним взаимодействует инженер по знаниям.

Чтобы избежать дорогостоящих и безуспешных попыток, был разработан набор рекомендаций для того, чтобы определить, является ли проблема подходящей для решения с помощью экспертной системы:

· Потребность в решении должна соответствовать затратам на ее разработку. Суммы затрат и полученная выгода должны быть реалистическими.

· Невозможно использовать знания человека-эксперта там, где это необходимо. Если «экспертные» знания широко распространены, то маловероятно, что стоит разрабатывать экспертную систему. Однако в таких областях как разведка нефти и медицина могут быть редкие специализированные знания, которыми можно недорого снабдить экспертную систему, и не использовать очень высоко оплачиваемого эксперта.

· Проблема может быть решена с использованием символических методов рассуждения.

· Проблема хорошо структурирована и не требует применения знаний, основанных на здравом смысле. Знания, основанные на здравом смысле, хорошо известны, поэтому их незачем фиксировать и представлять.

· Проблема не может быть легко решена с использованием более традиционных вычислительных методов. Если имеется хорошее алгоритмическое решение проблемы, не следует использовать экспертную систему.

· Существуют эксперты в данной проблемной области. Поскольку экспертная система проектируется для успешной работы, весьма существенно, чтобы эксперты желали помогать при ее проектировании, а не считали, что их работе угрожают. Кроме того необходима поддержка администрации и потенциальных пользователей.

· Проблема имеет подходящий размер и область применения. Как правило, проблема требует применения знаний высоко специализированных экспертов, но человек-эксперт должен тратить на ее решение короткое время, максимум час.

В настоящее время сложилась последовательность действий при разработке экспертных систем. Она включает следующие этапы: идентификация, получение знаний, концептуализация, формализация, выполнение, тестирование и опытная эксплуатация.

Этап идентификации связан, прежде всего, с осмыслением тех задач, которые предстоит решать будущей экспертной системе, и формированием требований к ней. На этом этапе планируется ход разработки прототипа системы, определяются источники знаний (книги, эксперты, методики), цели (распространение опыта, автоматизация рутинных операций), классы решаемых задач и т.д. Результатом идентификации является ответ на вопрос, что надо сделать и какие ресурсы необходимо задействовать.

При решении проблемы получения знаний выделяют три стратегии: приобретение знаний, извлечение знаний и обнаружение знаний.

Рисунок 1.8 - Технология разработки экспертных систем

Под приобретением (acquisition) знаний понимается способ автоматизированного наполнения базы знаний посредством диалога эксперта и специальной программы.

Извлечением (elicitation) знаний называют процедуру взаимодействия инженера по знаниям с источником знаний (экспертом, специальной литературой и др.) без использования вычислительной техники.

Термины «обнаружение знаний» (knowledge discovery), а также Data Mining связывают с созданием компьютерных систем, реализующие методы автоматического получения знаний.

На этапе концептуализации проводится содержательный анализ проблемной области, выявляются используемые понятия и их взаимосвязи, определяются методы решения задач. Этот этап завершается созданием модели предметной области, включающей основные концепты и отношения. Модель представляется в виде графа, таблицы, диаграммы или текста.

На этапе формализации все ключевые понятия и отношения выражаются на некотором формальном языке, который выбирается из числа уже существующих, либо создается заново. Другими словами, на данном этапе определяется состав средств и способы представления декларативных и процедурных знаний, осуществляется это представление и в итоге создается описание решения задачи экспертной системы на выбранном формальном языке.

На этапе выполнения создается один или несколько реально работающих прототипов экспертной системы. Для ускорения этого процесса в настоящее время широко применяются различные инструментальные средства.

На данном этапе оценивается и проверяется работа программы прототипа с целью приведения ее в соответствие с реальными запросами пользователей. Прототип проверяется по следующих основным позициям:

· удобство и адекватность интерфейсов ввода-вывода (характер вопросов в диалоге, связность выводимого текста результата и др.);

· эффективность стратегии управления (порядок перебора, использование нечеткого вывода и т.д.);

· корректность базы знаний (полнота и непротиворечивость правил).

Задача стадии тестирования -- выявление ошибок и выработка рекомендаций по доводке прототипа экспертной системы до промышленного образца.

На этапе опытной эксплуатации проверяется пригодность экспертной системы для конечного пользователя. Пригодность определяется в основном удобством и полезностью разработки. Под полезностью понимается способность экспертной системы определять в ходе диалога потребности пользователя, выявлять и устранять причины неудач в работе, а также удовлетворять указанные потребности пользователя (решать поставленные задачи). Удобство работы подразумевает естественность взаимодействия с экспертной системой, гибкость (способность системы настраиваться на различных пользователей, а также учитывать изменения в квалификации одного и того же пользователя) и устойчивость системы к ошибкам (способность не выходить из строя при ошибочных действиях пользователя).

После успешного завершения этапа опытной эксплуатации экспертная система классифицируется как коммерческая система, пригодная не только для собственного использования, но и для продажи различным потребителям.

1.5 Участники создания экспертной системы и инструментальные средства

Рисунок 1.9 - Взаимосвязи основных участников построения и эксплуатации экспертных систем

В разработке экспертной системы участвуют представители следующих специальностей:

· эксперт - специалист в конкретной предметной области;

· инженер по знаниям - специалист по разработке экспертных систем;

· программист - специалист по разработке инструментальных средств создания экспертной системы.

Эксперт определяет соответствующий круг знаний, обеспечивает их полноту и правильность введения экспертной системы.

Инженер по знаниям выявляет совместно с экспертом структурированность знаний, выбор инструментального средства, программирует стандартные функции, которые будут использоваться в правилах экспертной системы.

Программист разрабатывает инструментальные средства, содержащие все компоненты создания экспертных систем. Осуществляет сопряжение экспертных систем с пользователем. В использовании экспертных систем участвуют специалисты:

· конечный пользователь;

· клерк.

Конечный пользователь имеет возможность только использования экспертных систем. Клерки могут добавлять, модифицировать базу знаний экспертной системы.

В настоящее время имеются средства, ускоряющие проектирование и разработку ЭС. Их называют инструментальными средствами, или просто инструментарием. Иными словами, под инструментальными средствами понимают совокупность аппаратного и программного обеспечения, позволяющего создавать прикладные системы, основанные на знаниях.

Среди программных инструментальных средств выделяют следующие большие группы:

· символьные языки программирования (LISP, INTERLISP, SMALLTALK);

· языки инженерии знаний, то есть языки программирования, позволяющие реализовать один из способов представления знаний (OPS5, LOOPS, KES, Prolog);

· оболочки экспертных систем (или пустые экспертные системы), то есть системы, не содержащие знаний ни о какой предметной области (EMYCIN, ЭКО, ЭКСПЕРТ, EXSYS RuleBook, Expert System Creator и др.)

1.6 Преимущества экспертных систем

Преимущества экспертных систем:

· Постоянство. Экспертные системы ничего не забывают в отличие от человека-эксперта.

· Воспроизводимость. Можно сделать любое количество копий экспертной системы, а обучение новых экспертов отнимает много времени и средств.

· Эффективность. Может увеличить производительность и уменьшать затраты персонала.

· Постоянство. С использованием экспертных системам подобные транзакции обрабатываются одним и тем же способом. Система будет делать сопоставимые рекомендации для похожих ситуаций.

· Влияние на людей. Новый эффект (самая современная информация, имеющая влияние на здравый смысл). Главный эффект (ранняя информация доминирует над здравым смыслом).

· Документация. Экспертная система может документировать процесс решения.

· Законченность. Экспертная система может выполнять обзор всех транзакций, a человек-эксперт сможет сделать обзор только отдельной выборки.

· Своевременность. Погрешности в конструкциях и-или могут быть своевременно найдены.

· Широта. Могут быть объединены знания многих экспертов, что дает системе больше широты, чем с вероятно может достичь один человек.

· Снижение риска ведения дела благодаря последовательности принятия решения документированности и компетентности.

Недостатки экспертных систем:

· Здравый смысл. В дополнение к широкому техническому знанию, человек-эксперт имеет здравый смысл. Еще не известно, как заложить здравый смысл в экспертные системы.

· Творческий потенциал. Человек-эксперт может реагировать творчески на необычные ситуации, экспертные системы не могут.

· Обучение. Человек-эксперт автоматически адаптируются к изменению среды; экспертные системы нужно явно модифицировать.

· Сенсорный опыт. Человек-эксперт располагает широким диапазоном сенсорного опыта; экспертные системы в настоящее время основаны на вводе символов.

Экспертные системы не хороши, если решения не существует или когда проблема лежит вне области их компетенции.

1.7 Сферы применения экспертных систем

Области применения систем, основанных на знаниях, могут быть сгруппированы в несколько основных классов: медицинская диагностика, контроль и управление, диагностика неисправностей в механических и электрических устройствах, обучение.

· Медицинская диагностика.

Диагностические системы используются для установления связи между нарушениями деятельности организма и их возможными причинами. Наиболее известна диагностическая система MYCIN, которая предназначена для диагностики и наблюдения за состоянием больного при менингите и бактериальных инфекциях. Ее первая версия была разработана в Стенфордском университете в середине 70-х годов. В настоящее время эта система ставит диагноз на уровне врача-специалиста. Она имеет расширенную базу знаний, благодаря чему может применяться и в других областях медицины.

· Прогнозирование.

Прогнозирующие системы предсказывают возможные результаты или события на основе данных о текущем состоянии объекта. Программная система

“Завоевание Уолл-стрита” может проанализировать конъюнктуру рынка и с помощью статистических методов алгоритмов разработать для вас план капиталовложений на перспективу. Она не относится к числу систем, основанных на знаниях, поскольку использует процедуры и алгоритмы традиционного программирования. Хотя пока еще отсутствуют ЭС, которые способны за счет своей информации о конъюнктуре рынка помочь вам увеличить капитал, прогнозирующие системы уже сегодня могут предсказывать погоду, урожайность и поток пассажиров. Даже на персональном компьютере, установив простую систему, основанную на знаниях, вы можете получить местный прогноз погоды.

· Планирование.

Планирующие системы предназначены для достижения конкретных целей при решении задач с большим числом переменных. Дамасская фирма Informat впервые в торговой практике предоставляет в распоряжении покупателей 13 рабочих станций, установленных в холле своего офиса, на которых проводятся бесплатные 15-минутные консультации с целью помочь покупателям выбрать компьютер, в наибольшей степени отвечающий их потребностям и бюджету. Кроме того, компания Boeing применяет ЭС для проектирования космических станций, а также для выявления причин отказов самолетных двигателей и ремонта вертолетов. Экспертная система XCON, созданная фирмой DEC, служит для определения или изменения конфигурации компьютерных систем типа VAX и в соответствии с требованиями покупателя. Фирма DEC разрабатывает более мощную систему XSEL, включающую базу знаний системы XCON, с целью оказания помощи покупателям при выборе вычислительных систем с нужной конфигурацией.

В отличие от XCON система XSEL является интерактивной.

· Интерпретация.

Интерпретирующие системы обладают способностью получать определенные заключения на основе результатов наблюдения. Система PROSPECTOR, одна из наиболее известных систем интерпретирующего типа, объединяет знания девяти экспертов. Используя сочетания девяти методов экспертизы, системе удалось обнаружить залежи руды стоимостью в миллион долларов, причем наличие этих залежей не предполагал ни один из девяти экспертов. Другая интерпретирующая система- HASP/SIAP. Она определяет местоположение и типы судов в тихом океане по данным акустических систем слежения.

· Контроль и управление.

Системы, основанные на знаниях, могут применятся в качестве интеллектуальных систем контроля и принимать решения, анализируя данные, поступающие от нескольких источников. Такие системы уже работают на атомных электростанциях, управляют воздушным движением и осуществляют медицинский контроль. Они могут быть также полезны при регулировании финансовой деятельности предприятия и оказывать помощь при выработке решений в критических ситуациях.

· Диагностика неисправностей в механических и электрических устройствах.

В этой сфере системы, основанные на знаниях, незаменимы как при ремонте механических и электрических машин (автомобилей, дизельных локомотивов и т.д.), так и при устранении неисправностей и ошибок в аппаратном и программном обеспечении компьютеров.

· Обучение.

Системы, основанные на знаниях, могут входить составной частью в компьютерные системы обучения. Система получает информацию о деятельности некоторого объекта (например, студента) и анализирует его поведение. База знаний изменяется в соответствии с поведением объекта. Примером этого обучения может служить компьютерная игра, сложность которой увеличивается по мере возрастания степени квалификации играющего. Одной из наиболее интересных обучающих ЭС является разработанная Д.Ленатом система EURISCO, которая использует простые эвристики. Эта система была опробована в игре Т.Тревевеллера, имитирующая боевые действия. Суть игры состоит в том, чтобы определить состав флотилии, способной нанести поражение в условиях неизменяемого множества правил. Система EURISCO включила в состав флотилии небольшие, способные провести быструю атаку корабли и одно очень маленькое скоростное судно и постоянно выигрывала в течение трех лет, несмотря на то, что в стремлении воспрепятствовать этому правила игры меняли каждый год.

Большинство ЭС включают знания, по содержанию которых их можно отнести одновременно к нескольким типам. Например, обучающая система может также обладать знаниями, позволяющими выполнять диагностику и планирование. Она определяет способности обучаемого по основным направлениям курса, а затем с учетом полученных данных составляет учебный план. Управляющая система может применяться для целей контроля, диагностики, прогнозирования и планирования. Система, обеспечивающая сохранность жилища, может следить за окружающей обстановкой, распознавать происходящие события (например, открылось окно), выдавать прогноз (вор-взломщик намеревается проникнуть в дом) и составлять план действий (вызвать полицию).

2. Разработка блок-схемы алгоритма и программы на языке Турбо Паскаль для решения задачи по теме «Двумерные массивы»

Условие задачи:

Разработать алгоритм и написать программу на языке Turbo Pascal.

Задана матрица (двумерный массив) A размером N x М, состоящая из действительных элементов. Числа M и N вводятся с клавиатуры. Для задания исходной матрицы предусмотреть ввод с клавиатуры или ввод с помощью датчика случайных чисел.

Получить новую матрицу путем сложения всех элементов данной матрицы с ее наименьшим по модулю элементом. Найти среднее арифметическое исходной матрицы и заменить на него элемент стоящий в позиции с индексами К,В в полученной матрице (К,В вводятся с клавиатуры). Вывести на экран полученную матрицу.

2.1 Описание используемых в алгоритме объектов, их имён и типов

Константа MaxCount - максимальная размерность матрицы. Эта константа из разумных соображений и для удобства пользователя ограничивает количество столбцов и строк исходной матрицы. Максимальное количество строк и столбцов матрицы одинаковы, но поскольку она прямоугольная, реальных размерностей мы должны вводить две. В программе принимаем константу MaxCount равной 20.

Определяем тип Matrix - это прямоугольная матрица, количество строк и столбцов которой ограничено константой MaxCount. Элементами данной матрицы являются действительные числа.Заявляем две матрицы А и С. Матрица А является исходной, матрицу С получаем путем сложения всех элементов данной матрицы с ее наименьшим по модулю элементом.

Объявляем переменные i, j, k, b, n, m, imin, jmin целочисленного типа. Переменные i, j используются для текущей работы с индексами массивов; переменные k, b вводятся с клавиатуры и являются индексами элемента, который надо заменить на среднее арифметическое исходной матрицы; переменные imin, jmin используются для запоминания индексов наименьшего по модулю элемента матрицы; переменные n и m - размерность матрицы.

Переменные MinEl, sr принадлежат к действительному типу; переменная MinEl используется для вычисления минимального по модулю элемента матрицы, переменная sr для вычисления и хранения значения среднего арифметического исходной матрицы.

Переменные действительного типа min и max - границы диапазона случайных чисел.

Переменная ask символьного типа используется для меню режима ввода элементов матрицы.

2.2 Описание работы программы, составление блок-схемы алгоритма решения задачи

В программе определены 4 процедуры - ввод размерностей матрицы, поэлементный ввод прямоугольной матрицы с клавиатуры, генерация случайных элементов матрицы в заданном диапазоне, поэлементный вывод матрицы на экран в "естественном" виде (т.е. по строкам).

В основной части программы после вызова процедуры ввода размерностей матрицы пользователю предоставляется выбор способа заполнения матрицы - с клавиатуры или с помощью датчика случайных чисел. После выбора способа запускается соответствующая процедура, матрица заполняется элементами и выводится на экран. Далее при переборе всех элементов матрицы определяется минимальный по модулю элемент, запоминаются его индексы, и вычисляется среднее арифметическое исходной матрицы; эти значения также выводятся на экран. Далее на экран выводится матрица после суммирования всех элементов исходной матрицы с ее наименьшим по модулю элементом, и матрица, где среднее арифметическое исходной матрицы заменяет элемент, стоящий в позиции с индексами k, b в полученной матрице (k, b вводятся с клавиатуры пользователем).

Рисунок 2.1 - Общий алгоритм программы

Описанный общий алгоритм программы представлен на рисунке 2.1.

В программе предусмотрены различные проверки правильности ввода исходных данных. Так, в следующих случаях выводится соответствующее сообщение и предлагается повторить ввод:

· при вводе размерности матицы менее 1 или более указанной максимальной размерности;

· при выборе в режиме меню пункта, отличного от 1 или 2;

· при введении индексов элемента, который надо заменить на среднее арифметическое исходной матрицы, менее 1 или более размерности исходной матрицы.

экспертный система алгоритм паскаль

2.3 Текст программы

uses crt;

const MaxCount = 20;

type

Matrix = array [1..MaxCount, 1..MaxCount] of real;

var

a,c : Matrix;

i,j,k,b,n,m,imin,jmin:integer;

MinEl,sr: real;

min, max: real; {granicy diapazona}

ask: char; {dlja vvoda rezhima}

{**************************************************

Vvod razmernostej matricy

***************************************************}

procedure EnterMatrixSize(var x,y: integer);

begin

{stroki}

repeat

write('Vvedite kolichestvo strok matricy (1..',MaxCount,') ');

readln(x);

if (x<1) then

writeln('Oshibka! Vvedennyj indeks ne mozhet byt menshe edinicy. Povtorite vvod');

if (x>MaxCount) then

writeln('Oshibka! Razmernost matricy ne dolzhna byt bolshe ',MaxCount,'. Povtorite vvod');

until (x>0)and(x<=MaxCount);

{stolbcy}

repeat

write('Vvedite kolichestvo stolbcov matricy (1..',MaxCount,') ');

readln(y);

if (y<1) then

writeln('Oshibka! Vvedennyj indeks ne mozhet byt menshe edinicy. Povtorite vvod');

if (y>MaxCount) then

writeln('Oshibka! Razmernost matricy ne dolzhna byt bolshe ',MaxCount,'. Povtorite vvod');

until (y>0)and(y<=MaxCount);

end;

{**************************************************

Pojelementnyj vvod prjamougolnoj matricy s klaviatury

**************************************************}

procedure EnterMatrix (x,y: integer; var M: Matrix);

var

i,j: integer;

begin

writeln('Vvedite jelementy prjamougolnoj matricy:');

for i:=1 to x do

for j:=1 to y do begin

write('M[',i,',',j,'] = ');

readln(M[i,j]);

end;

end;

{**************************************************

Generacija sluchajnyh jelementov matricy v zadannom diapazone

**************************************************}

procedure GenerateMatrix (x,y: integer; var M: Matrix);

var

i,j: integer;

begin

for i:=1 to x do

for j:=1 to y do

M[i,j] := random*(max-min)+min;

end;

{**************************************************

Pojelementnyj vyvod matricy na ekran

**************************************************}

procedure PrintMatrix(x,y: integer; M: Matrix);

var

i,j: integer;

begin

for i:=1 to x do begin

for j:=1 to y do

write(M[i,j]:2:1,' ');

writeln;

end;

end;

{osnovnaja programma}

begin

clrscr; {ochiwaem ekran}

randomize; {Inicializiruem vstroennyj generator sluchajnyh chisel s proizvolnym znacheniem}

sr:=0;

EnterMatrixSize(n,m);

{menju rezhimov}

writeln('Vyberite variant zapolnenija matricy:');

writeln('1 - s klaviatury');

writeln('2 - sluchajnymi chislami');

repeat

readln(ask);

if (ask<>'1')and(ask<>'2') then

writeln('Vyberite rezhim 1 ili 2, pozhalujsta');

until (ask='1')or(ask='2');

case (ask) of

'1': EnterMatrix(n, m, a);

'2': begin

write('Vvedite nizhnjuju granicu diapazona sluchajnyh chisel: ');

readln(min);

write('Vvedite verhnjuju granicu diapazona sluchajnyh chisel: ');

readln(max);

GenerateMatrix(n, m, a);

end;

end;

writeln('Poluchivshajasja matrica:');

PrintMatrix(n, m, a);

{poisk minimal'nogo po modulju jelementa i vychislenie srednego arifmeticheskogo ishodnoj matricy }

MinEl:=abs(a[1,1]);

imin:=1;

jmin:=1;

for i:=1 to N do

for j:=1 to M do

begin

if abs(a[i,j])<MinEl then

begin

MinEl:=abs(a[i,j]);

imin:=i; {zapominaem indeksy minimal'nogo po modulju jelementa}

jmin:=j;

end;

sr:=sr+a[i,j];

end;

writeln('Minimalnij po modulu element = ',a[imin,jmin]:2:1,' s indexami (', imin,',', jmin,')');

sr:=sr/(n*m);

writeln('srednee arifmeticheskoe = ',sr:2:1);

{summirum jelementy matricy s minimal'nym po modulju jelementom }

writeln('matrica posle summirovaniya c minimalnim po modulu elementom');

for i:=1 to N do

begin

for j:=1 to M do

begin

c[i,j]:=a[i,j]+a[imin,jmin];

write(c[i,j]:2:1, ' ');

end;

writeln;

end;

{stroki}

repeat

write('Vvedite indeks k (1..',n,') ');

readln(k);

if (k<1) then

writeln('Oshibka! Indeks ne mozhet byt menshej edinicy. Povtorite vvod');

if (k>n) then

writeln('Oshibka! Indeks ne dolzhen byt bolshe ',n,'. Povtorite vvod');

until (k>0)and(k<=n);

{stolbcy}

repeat

write('Vvedite indeks b (1..',m,') ');

readln(b);

if (b<1) then

writeln('Oshibka! Indeks ne mozhet byt menshej edinicy. Povtorite vvod');

if (b>m) then

writeln('Oshibka! Indeks ne dolzhen byt bolshe ',m,'. Povtorite vvod');

until (b>0)and(b<=m);

a[k,b]:=sr;

PrintMatrix(n, m, a);

readln;

end.

2.4 Тестовые данные для отладки программы и проверка работы программы с учётом подобранного теста.

В качестве тестовых данных для отладки программы возьмем следующую матрицу размерности 4х5:

-6 5 4,1 6,7 -1

4 1,1 -0,1 3 3,1

5,5 -4 9,1 -2 4

2,3 0,4 -0,3 7 11

Минимальный по модулю элемент этой матрицы имеет значение -0,1 и находится в позиции с индексами (2,3).

После суммирования исходной матрицы с ее минимальным по модулю элементом получим матрицу:

-6,1 4,9 4 6,6 -1,1

3,9 1 -0,2 2,9 3

5,4 -4,1 9 -2,1 3,9

2,2 0,3 -0,4 6,9 10,9

Среднее арифметическое данной матрицы 2,6.

Введем индексы k и b равными соответственно 2 и 1, то есть элемент, стоящий в позиции с индексами (2,1) будет заменен на 2,6. Соответственно, мы получим следующую матрицу:

-6 5 4,1 6,7 -1

2,6 1,1 -0,1 3 3,1

5,5 -4 9,1 -2 4

2,3 0,4 -0,3 7 11

Проведем проверку работы программы с учётом подобранных тестовых данных:

Рисунок 2.2 - Проверка работы программы с учётом подобранных тестовых данных, часть 1

Рисунок 2.3 - Проверка работы программы с учётом подобранных тестовых данных, часть 2

Как можно увидеть на рисунке 2.2 и 2.3, программа корректно обработала тестовые данные и предоставила верный результат.

Проведем проверку оценки корректности ввода исходных данных. На рисунке 2.4 предоставлен результат неверно введенных размерности матрицы и неверно выбранного пункта меню режимов.

Рисунок 2.4 - Проверку оценки корректности ввода исходных данных

Исходя из вышеизложенного, можно сделать вывод о корректности работы программы.

Размещено на Allbest.ru


Подобные документы

  • Назначение и архитектура экспертных систем, их применение в сфере образования. Экспертные системы тестирования, принципы их функционирования. Инструментальные средства создания приложения и разработка программы тестирования. Описание программы, листинг.

    дипломная работа [706,4 K], добавлен 07.05.2012

  • Особенности программирования на языке Паскаль в среде Турбо Паскаль. Линейные алгоритмы, процедуры и функции. Структура данных: массивы, строки, записи. Модульное программирование, прямая и косвенная рекурсия. Бинарный поиск, организация списков.

    отчет по практике [913,8 K], добавлен 21.07.2012

  • Развертывание системы на жестком диске, диалоговая система программирования Турбо Паскаль, запуск программы и выполнение задания. Функциональные клавиши и их назначение. Текстовый редактор, средства создания и редактирования текстов программ, курсор.

    реферат [18,6 K], добавлен 01.04.2010

  • Структура языка Паскаль, встроенные процедуры и функции. Составление алгоритма решения уравнения, описывающего работу кривошипно-шатунного механизма, с помошью метода итерации, метода Гаусса и метода Зейделя. Блок-схемы алгоритмов и текст программы.

    курсовая работа [64,6 K], добавлен 07.05.2011

  • Анализ заданной сложной функции и разработка структурной схемы алгоритма по её вычислению. Программирование отдельных блоков и структур алгоритма решаемой задачи на языке Паскаль. Полная программа в соответствии с алгоритмом. Результаты расчётов на ПК.

    курсовая работа [59,2 K], добавлен 09.04.2012

  • Понятия, классификация и структура экспертных систем. Базы знаний и модели представления знаний. Механизмы логического вывода. Инструментальные средства проектирования и разработки экспертных систем. Предметная область ЭС "Выбор мобильного телефона".

    курсовая работа [2,2 M], добавлен 05.11.2014

  • Освоение технологии структурного программирования и применения стандартных методов работы с одномерными массивами при разработке и создании программы на языке Турбо Паскаль. Разработка программы методом пошаговой детализации с помощью псевдокода.

    реферат [276,9 K], добавлен 27.02.2008

  • Решение задачи средствами Паскаль и блок-схемы выполненных процедур, составление программы. Результаты решения задачи по перевозке грузов. выполнение задачи средствами MS Excel, создание таблиц. Порядок и особенности решения задачи в среде MathCAD.

    курсовая работа [2,5 M], добавлен 27.02.2011

  • Обзор методов и подходов решения поставленной задачи аппроксимации логического вывода экспертной системы. Разработка и описание метода сетевого оператора для решения данной задачи. Разработка алгоритма решения. Проведение вычислительного эксперимента.

    дипломная работа [1,5 M], добавлен 23.02.2015

  • Разработка программы, создающей и управляющей базой данных, ее реализация на языке Turbo Pascal. Организация алгоритма программы. Вывод информации и возможность добавления информации в базу данных. Поиск информации в базе данных по заданному значению.

    курсовая работа [26,7 K], добавлен 19.06.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.