Разработка экспертной системы по выбору мобильного телефона

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    888,17 Кб
  • Опубликовано:
    2015-01-28
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка экспертной системы по выбору мобильного телефона

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Челябинский государственный педагогический университет»

Факультет информатики

Кафедра информатики информационных технологий и методики обучения информатике





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

Разработка экспертной системы по выбору мобильного телефона



Руководитель: к.п.н., доцент

Давыдова Н.А.

Автор работы: Панов А.Н.

Студент ИТвО группы 491




Челябинск - 2014

Содержание

Введение

Глава 1. Экспертные системы

1.1 Основные понятия экспертной системы

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

.3 Базы знаний и модели представления знаний

.4 Механизмы логического вывода

Глава 2. Выбор среды разработки ЭС

2.1 Инструментальные средства проектирования и разработки экспертных систем

.2 Оболочки экспертных систем

.3 Языки программирования

.4 Среда программирования Delphi

Глава 3. Предметная область ЭС

3.1 Понятие предметной области

.2 Предметная область ЭС «Выбор мобильного телефона

Глава 4. Руководство пользователя ЭС «По выбору мобильного телефона»

Заключение

Список использованной литературы:

Приложение

Введение

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

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

Целью работы является разработка экспертной системы по подбору сотового телефона по определённым критериям на основании анализа запросов покупателя, и ее реализация в языке Object Pascal.

Объектом исследования является процесс выбора модели телефона.

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

Исходя из поставленной цели, выделяют следующие задачи исследования:

.   Анализ информации о мобильных телефонах

2.      Изучение методов построения базы знаний

.        Разработка модели построения базы знаний

.        Изучение механизмов логического вывода

.        Реализация экспертной системы в языке программирования Object Pascal, который используется в среде программирования Delphi

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

Глава 1. Экспертные системы

 

1.1    Основные понятия экспертной системы


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

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

Экспертные системы - прикладные программы ИИ, в которых база знаний представляет собой формализованные знания высококвалифицированных специалистов (экспертов) области [2].

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

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

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


Для классификации ЭС используют следующие признаки:

.   Способ формирования решения;

2.      Способ учета временного признака;

.        Вид используемых данных;

.        Число используемых источников решения знаний;

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

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

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

ЭС могут создаваться с использованием одного или нескольких источников знаний.

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

1. Решателя (интерпретатора);

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

.        Базы знаний (БЗ);

.        Компонентов приобретения знаний;

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

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

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

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

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

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

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



Диалоговый компонент


Объяснительный компонент


Компонент приобретения знаний

Интерфейс С БД и ППП









решатель










База данных




База знаний

Рис. 1. Структура экспертной системы

1.3    Базы знаний и модели представления знаний

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

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

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

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

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

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

Типичными моделями представления знаний являются:

1. Продукционная модель;

2.      Модель, основанная на использовании фреймов;

.        Модель семантической сети;

.        Логическая модель.

Продукционная модель - модель, основанная на правилах, позволяющая представить знания в виде предложений типа [1]:

Если (условие), то (действие)

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

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

«Фрейм - это структура данных, представляющая стереотипную ситуацию, вроде нахождения внутри некоторого рода жилой комнаты, или сбора на вечеринку по поводу дня рождения ребенка. К каждому фрейму присоединяется несколько видов информации. Часть этой информации - о том, как использовать фрейм. Часть о том, чего можно ожидать далее. Часть о том, что следует делать, если эти ожидания не подтвердятся» [5].

Фрейм - это минимальное возможное описание сущности какого-либо явления, события, ситуации, процесса или объекта. Минимальность означает, что при дальнейшем упрощении описания теряется его полнота, она перестает определять ту единицу знаний, для которой предназначено. Одним из способов представления знаний является семантическая сеть. Изначально семантическая сеть была задумана как модель преставления структуры долговременной памяти в психологии, но впоследствии стала одним из основных способов представления знаний в инженерии знаний.

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

Понятиями обычно выступают абстрактные или конкретные объекты, а отношения - это связи типа: "это" ("is"), "имеет частью" ("has part"), "принадлежит", "любит" и т.п. Характерной особенностью семантических сетей является обязательное наличие трех типов отношений:

1. Класс - элемент класса.

2.      Свойство - значение.

.        Пример элемента класса.

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

1.4 Механизмы логического вывода


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

Два способа использования продукционных правил:

прямая цепочка рассуждений;

обратная цепочка рассуждений.

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

При втором подходе обработка информации осуществляется в обратном направлении - метод «генерации» или выдвижения гипотезы и ее проверки (стратегия «от цели к данным»).

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

Глава 2. Выбор среды разработки ЭС

 

2.1 Инструментальные средства проектирования и разработки экспертных систем


На проектирование и создание одной экспертной системы ранее требовалось 20-30 человек-лет. В настоящее время имеется ряд средств, ускоряющих их создание. Эти средства называют инструментальными или инструментарием. Использование инструментальных средств разработки экспертных систем сокращает время, затрачиваемое на их создание, в 3-5 раз.

Инструментальное средство разработки экспертных систем - это язык программирования, используемый инженером знаний или (и) программистом для построения экспертной системы. Этот инструмент отличается от обычных языков программирования тем, что обеспечивает удобные способы представления сложных высокоуровневых понятий [1].

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

Оболочки экспертных систем

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

1. Языки программирования высокого уровня

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

2. Среда программирования, поддерживающая несколько стилей программирования

Средства этой категории включают несколько программных модулей, что позволяет пользователю комбинировать в процессе разработки экспертной системы разные стили программирования. Среди первых проектов такого рода была исследовательская программа LOOP, которая допускала использование двух типов представления знаний: базирующегося на системе правил и объектно-ориентированного. На основе этой архитектуры во второй половине 1980-х годов было разработано несколько коммерческих программных продуктов, из которых наибольшую известность получили KEE, KnowledgeCraft и ART. Эти программы предоставляют в распоряжение квалифицированного пользователя множество опций и для последующих разработок, таких как КАРРА и CLIPS, и стали своего рода стандартом. Однако освоить эти языки программистам далеко не так просто, как языки, отнесенные к предыдущей категории.

3. Дополнительные модули

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

2.2    Оболочки экспертных систем


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

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

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

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

Простота языков представления знаний, применяемых в большинстве оболочек экспертных систем, является, с одной стороны, достоинством, а с другой « недостатком такого рода систем. На это обратила внимание Эйкинс в критическом замечании по поводу реализации экспертной системы PUFF на базе оболочки EMYCIN:

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

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

Другое критическое замечание Эйкинс касается не столько конкретной системы PUFF или EMYCIN, сколько функциональных возможностей систем, базирующихся на правилах, в общем, а, следовательно, и всех оболочек экспертных систем, в которых порождающие правила используются в качестве основного языка представления знаний. Значительная часть экспертности - это знания о типовых случаях, т.е. довольно часто встречающихся в предметной области. Эксперты легко распознают известные типовые случаи и способны без особого труда классифицировать их в терминах идеальных прототипов даже при наличии определенных помех или неполных данных. Они интуитивно различают подходящие случаю или необычные значения исходных данных и принимают адекватное решение о том, как поступить в дальнейшем при решении проблемы. Такие знания практически невозможно представить в экспертной системе, если пользоваться только правилами в форме «условие-действие». Для этого потребуется значительно более сложный формализм, который сведет на нет одно из главных достоинств использования порождающих правил в качестве основного средства принятия решений.

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

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

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

2.3    Языки программирования


Для разработки экспертных систем <https://tpl-it.wikispaces.com/%D0%AD%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D1%82%D0%BD%D1%8B%D0%B5+%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B> используются те же языки и системы программирования, что и для обычных программ, но наличие таких специфических для искусственного интеллекта структурных частей, как логический вывод, естественно-языковый интерфейс, делает предпочтительным использование для разработки экспертных систем таких языков искусственного интеллекта, как Лисп, Пролог, Клипс и специальных средств поддержки разработки.

Особенно перспективной для экспертных систем оказалась реализация языка Пролог <https://tpl-it.wikispaces.com/%D0%9F%D1%80%D0%BE%D0%BB%D0%BE%D0%B3>. Основная идея логического программирования состоит в отделении логики программы от управления ходом вычислений, что делает процесс создания программы более прозрачным.

Пролог - язык высокого уровня, ориентированный на использование концепций и методов математической логики [8]. Он был создан во Франции в Марсельском университете в 1972 году. Основной особенностью Пролога, отличающей его от всех других языков, является декларативный характер написанных на нем программ.

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

Язык Лисп <https://tpl-it.wikispaces.com/%D0%9B%D0%B8%D1%81%D0%BF> разработан в Массачусетском технологическом институте в начале 60-х годов. Языки программирования Лисп и Пролог имеют встроенные механизмы для манипулирования знаниями. Лисп является универсальным языком программирования высокого уровня и обладает способностью обрабатывать списковые структуры. Он относится к декларативным языкам функционального типа и предназначен для обработки символьных данных, представленных в виде списков.

Клипс был разработан в центре космических исследований NASA в середине 80х годов. Клипс (Clips) является аббревиатурой от C Language Integrated Production System. Он включает в язык представления порождающих правил и язык описания процедур.

Клипс использует продукционную модель представления знаний и поэтому содержит три основных элемента:

1. список фактов

.        блок вывода

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

В Клипс используется оригинальный LIPS-подобный язык программирования, ориентированный на разработку экспертной системы. Кроме того, Клипс поддерживает еще две парадигмы программирования: объектно-ориентированную и процедурную.

Помимо Лиспа, Пролога и Клипса создано множество других языков, ориентированных на обработку символьной информации и разработку экспертных систем: Smalltalk, FRL, Interlisp. Кроме этих специализированных языков для разработки экспертных систем используются и обычные языки программирования общего назначения: Си <https://tpl-it.wikispaces.com/%D0%A1%D0%B8>, Ассемблер <https://tpl-it.wikispaces.com/%D0%90%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80>, Паскаль <https://tpl-it.wikispaces.com/%D0%9F%D0%B0%D1%81%D0%BA%D0%B0%D0%BB%D1%8C>, Фортран <https://tpl-it.wikispaces.com/%D0%A4%D0%BE%D1%80%D1%82%D1%80%D0%B0%D0%BD>, Бейсик <https://tpl-it.wikispaces.com/%D0%91%D0%B5%D0%B9%D1%81%D0%B8%D0%BA> и др.

2.4    Среда программирования Delphi


В качестве внутреннего языка для данной работы был выбран Object Pascal, который используется в среде программирования Delphi. Этот язык использует принципы объектно-ориентированного и визуального программирования.

Язык Object Pascal является одним из высокоразвитых языков объектно-ориентированного программирования [10]. И среди других, например, таких как Visual Basic или Visual C++, отличается простотой программного кода, достаточным количеством литературы по этому языку.

Объектно-ориентированное программирование (ООП) - это методика разработки программ, в основе которой лежит понятие объект. Объект - это некоторая структура, соответствующая объекту реального мира, его поведению. Задача, решаемая с использованием методики ООП, описывается в терминах объектов и операций над ними, а программа при таком подходе представляет собой набор объектов и связей между ними [11].

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

Высокопроизводительный компилятор в машинный код

Объектно-ориентированная модель компонент

Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов

Масштабируемые средства для построения баз данных

Программирование в Delphi строится на тесном взаимодействии двух процессов:

Процесса конструирования визуального проявления программы (т.е. ее Windows-окна),

Процесса написания кода, придающего элементам этого окна и программе в целом необходимую функциональность.

Основные преимущества среды программирования Delphi:

Простота языка позволяет быстро его освоить и создавать сложные программы;

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

Объектно-ориентированное программирование (ООП) в визуальной среде.

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

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

Глава 3. Предметная область ЭС

 

3.1    Понятие предметной области


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

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

Приведем в качестве примера несколько моделей телефонов и их характеристик.

Samsung Star Deluxe Duos S5292 несмотря на то, что эта модель очередного бюджетного смартфона компании Samsung на 2 sim-карты не была официально анонсирована, она уже довольно активно обсуждается в сети. Мы абсолютно понимаем такое поведение южнокорейской компании, ведь подобные устройства, в отличие от флагманов, в анонсах не нуждаются.Star Deluxe Duos S5292 обладает сверхбюджетными характеристиками: 3,5-дюймовый HVGA дисплей, процессор с частотой 312 МГц (когда это мы последний раз на нашем сайте частоту в мегагерцах меряли?), 128 МБ оперативной памяти, 512 МБ встроенной памяти, поддержка Wi-Fi и Bluetooth 3.0, камера на 3,2 МП и аккумулятор ёмкостью 1000 мАч.

Хотя в сети есть сведения о том, что устройство работает под ОС Android, очень маловероятно, что это детище Google, пусть даже версии 2.x, можно будет запустить на процессоре в 312 МГц.

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

Nokia Asha 205 <#"784875.files/image001.jpg">

Рис. 2. Главное окно Э.С.

Пользователю будут представлены вопросы и несколько вариантов ответа на них. Необходимо выбрать нужный вариант ответов на вопросы и нажать кнопку «Далее» (Рис. 3)

Рис. 3

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

Рис. 4

Для просмотра фотографии модели телефона необходимо нажать ячейку с выбранной моделью телефона (Рис. 5)

Рис. 5

Если необходимо начать опрос заново, необходимо нажать кнопку «Назад».

Заключение

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

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

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

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

В курсовой работе была проанализирована информация о мобильных телефонах, как основа базы знаний ЭС. Были изучены методы построения базы знаний ЭС. Разработана модель базы знаний ЭС «Выбор мобильного телефона». В процессе написания курсовой работы были изучены механизмы логического вывода. ЭС была разработана и апробирована в языке программирования Basic в среде Visual studio 2012.

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

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

Таким образом, можно считать правомерным и результативным достижение цели и решение задач данного исследования: разработка ЭС «Выбор мобильного телефона».

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

Список использованной литературы:

1. Базы знаний интеллектуальных систем / Т.А. Гаврилова, В.Ф. Хорошевский - СПб: Питер, 2000 - 384 с.

.   Болотова Л.С. Системы искусственного интеллекта: модели и технологии, основанные на знаниях: учебник / ФГБОУ ВПО РГУИТП; ФГАУ ГНИИ ИТТ "Информика". - М.: Финансы и статистика, 2012. - 664 с.: ил. ISBN 978-5-279-03530-4

.   Гаскаров, Д.Б. Интеллектуальные информационные системы. - М.: Высшая школа, 2003.

4.      Джексон, П. Введение в экспертные системы / П. Джексон. - 3-е изд. - М., 2007.

.        Минский М. Фреймы для представления знаний. - М.: Мир, 1979.

.        Муромцев Д.И. Введение в технологию экспертных систем. СПб: СПб ГУ ИТМО, 2005.

7. Справочник. Искусственный интеллект в 3-х книгах: системы общения и экспертные системы (книга 1-я), модели и методы (книга 2-я), программные и аппаратные средства (книга 3-я)

.   Тельнов Ю.Ф. Интеллектуальные информационные системы в экономике. - Уч. пособие. - М.: Синтег, 1998. - 216 с.

9.      Убейко, В.Н. Экспертные системы.- М.: МАИ, 1992.

10.    Уроки Delphi начинающим с нуля. <http://www.delphi-manual.ru/>

.        Флёнов М.Е. - Библия Delphi (3-е издание) - 2011.

12. Ясницкий, Л.Н. Введение в искусственный интеллект. - М.: Академия, 2005.

Приложение

unit Unit1;

interface

uses, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, Grids, DBGrids, DB, ADODB, Buttons, jpeg,;

type= class(TForm): TLabel;: TLabel;: TLabel;: TBitBtn;: TBitBtn;: TImage;: TADOConnection;: TADOTable;: TDataSource;: TComboBox;: TLabel;: TComboBox;: TLabel;: TComboBox;: TLabel;: TEdit;: TComboBox;: TLabel;: TComboBox;: TLabel;: TComboBox;: TLabel;: TComboBox;: TLabel;: TComboBox;: TLabel;: TComboBox;: TLabel;: TComboBox;: TLabel;: TLabel;: TComboBox;: TLabel;: TEdit;: TEdit;: TLabel;: TLabel;: TComboBox;: TLabel;: TComboBox;: TLabel;

procedure BitBtn2Click(Send er: TObject);

procedure ComboBox1Change(Send er: TObject);

procedure ComboBox3Change(Send er: TObject);

procedure ComboBox4Change(Send er: TObject);

procedure ComboBox5Change(Send er: TObject);

procedure ComboBox6Change(Send er: TObject);

procedure ComboBox7Change(Send er: TObject);

procedure ComboBox8Change(Send er: TObject);

procedure ComboBox9Change(Send er: TObject);

procedure ComboBox10Change(Send er: TObject);

procedure BitBtn3Click(Send er: TObject);

procedure ComboBox11Change(Send er: TObject);

procedure ComboBox12Change(Send er: TObject);

procedure Edit2Change(Send er: TObject);

procedure Edit3Change(Send er: TObject);

procedure FormActivate(Send er: TObject);

procedure ComboBox13Change(Send er: TObject);

private

{ Private declarations }

public

{ Public declarations }

end ;

var: TForm1;

//обозначение:string; // переменная для фильтрации а31=а11+а12+итд:string; // переменная для каждого поля фильтрации:string; // переменная для каждого поля фильтрации:string; // переменная для каждого поля фильтрации:string; // переменная для каждого поля фильтрации:string; // переменная для каждого поля фильтрации:string; // переменная для каждого поля фильтрации:string; // переменная для каждого поля фильтрации:string; // переменная для каждого поля фильтрации:string; // переменная для каждого поля фильтрации:string; // переменная для каждого поля фильтрации:string; // переменная для каждого поля фильтрации:string; // переменная для каждого поля фильтрации:string; // переменная для каждого поля фильтрации

a51:string;:integer;:integer;:integer;:string;:string;

a00:integer; // переменная для длины строки

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.BitBtn2Click(Send er: TObject);

var:string;

begin:=0;

a62:=0;a71<>'' then // Преобразование текста при наборе диапазона Цены в

числовой формат

a61:=strtoint(a71);a72<>'' then

a62:=strtoint(a72);(a62=0) and (a61<>0) then // При условии задания начального

диапазона верхний формирутся на максимум:=999999;

begin.Filtered:=False; //Отключаем фильтрацию тем самым

приводим бд в исходное состояние.First; //Читаем с 1 записи таблицы

while adotable1.Eof<>true do //Цикл для прочтения файла от начала до

конца

begin //при завершение цикла переходим на переменную для

фильтрации.edit; //Редактирум поле признак поля диапозона Цены

записываем 0

adotable1.FieldValues['Цана']:='0';.Post;

if strtoint(adotable1.Fields[33].AsString)>=a61 then // проверяем диапазон

if strtoint(adotable1.Fields[33].AsString)<=a62 then // проверяем диапазон

begin

adotable1.edit;1.FieldValues['Цана']:='1'; // при условии диапазона Цены

ставим 1

adotable1.Post;

end ;1.Next; //Переход на начало цикла

end ;

end ;:=0;:=''; // формируем переменную для фильтрации

if a11<>'' then:=a31 + a11 + ' and ';

if a12<>'' then:=a31 + a12 + ' and ';

if a13<>'' then:=a31 + a13 + ' and ';

if a14<>'' then:=a31 + a14 + ' and ';

if a15<>'' then:=a31 + a15 + ' and ';

if a16<>'' then:=a31 + a16 + ' and ';

if a17<>'' then:=a31 + a17 + ' and ';

if a18<>'' then:=a31 + a18 + ' and ';

if a19<>'' then:=a31 + a19 + ' and ';

if a20<>'' then:=a31 + a20 + ' and ';

if a21<>'' then:=a31 + a21 + ' and ';

if a22<>'' then:=a31 + a22 + ' and ';

if a23<>'' then:=a31 + a23 + ' and ';

if a61+a62<>0 then // Проверяем заданный диапазон или нет

begin:=a31+'Цана='+ '1'; //Добавляем диапазон к фильтрацию:=1;

end

else

//В результате получаем а31 на конце с полем 'and' длиной 5знаков

end ;

if a00=0 then:= ' Для работы Экспертной Системы должен быть выбран хотя бы

один из параметров!!!';

edit1.Text:=s;.Visible:=True; // делаем невидимым edit1

if a00<>0 then.Text:='';

if a00=0 then // проверяем есть ли данные для фильтрации если a00=0,.Filtered:=False; //то БД приводится в исходное состояние

Adotable1.Filtered:=true;.Filter:=a31;

begin:=0;.First;

while adotable1.Eof<>true do //Реализуем счётчик подсчёта

отфильтрованных записей по

begin // по схеме цикла с условным переходом

a52:=a52+1;1.Next; //Переход на начало цикла

end ;

end ;

Form2.Edit1.Text:=inttostr(a52); // на вывод кол-ва телефонов на форме2

if a00<>0 then // если длина строки не пустая, т.е выбран параметр, то.Hide; //скрываем форму1

if a00<>0 then // если длина строки не пустая, т.е выбран параметр, то.ShowModal; //отображаем форму2

if a00=0 then // если длина строки пустая, т.е не выбран параметр, то.Show; //отображаем форму1

if a00=0 then // если длина строки пустая, т.е не выбран параметр, то.Hide; //скрываем форму2

end ; // формируем переменные по выпадаещему списку

procedure TForm1.ComboBox1Change(Send er: TObject);

begin:='Производитель='+ QuotedStr(combobox1.Text); // Записываем в

переменную а11 и т.д а12...а22

if combobox1.Text='' then

a11:='';

end ;

procedure TForm1.ComboBox2Change(Send er: TObject);

begin

if combobox2.Text='Да' then:='[FM радио]='+ QuotedStr('есть');

if combobox2.Text='Нет' then:='[FM радио]='+ QuotedStr(combobox2.Text);

if combobox2.Text='' then:='';

end ;

procedure TForm1.ComboBox3Change(Send er: TObject);

begin:='Цвет='+ QuotedStr(combobox3.Text);

if combobox3.Text='' then:='';

end ;

procedure TForm1.ComboBox4Change(Send er: TObject);

begin:='[Тип корпуса]='+ QuotedStr(combobox4.Text);

if combobox4.Text='' then:='';

end ;

procedure TForm1.ComboBox5Change(Send er: TObject);

begin:='[Сенсорный экран]='+ QuotedStr(combobox5.Text);

if combobox5.Text='' then:='';

end ;

procedure TForm1.ComboBox6Change(Send er: TObject);

begin:='[Поддержка двух SIM карт]='+ QuotedStr(combobox6.Text);

if combobox6.Text='' then:='';

end ;

procedure TForm1.ComboBox7Change(Send er: TObject);

begin:='[MP3 плеер]='+ QuotedStr(combobox7.Text);

if combobox7.Text='' then:='';

end ;

procedure TForm1.ComboBox8Change(Send er: TObject);

begin:='Wi-Fi='+ QuotedStr(combobox8.Text);

if combobox8.Text='' then:='';

end ;

procedure TForm1.ComboBox9Change(Send er: TObject);

begin:='Bluetooth='+ QuotedStr(combobox9.Text);

if combobox9.Text='' then:='';

end ;

procedure TForm1.ComboBox10Change(Send er: TObject);

begin:='[3G]='+ QuotedStr(combobox10.Text);

if combobox10.Text='' then:='';

end ;

procedure TForm1.BitBtn3Click(Send er: TObject);

begin.Close;

end ;

procedure TForm1.ComboBox11Change(Send er: TObject);

begin:='Цена='+ QuotedStr(combobox11.Text);

if combobox11.Text='' then:='';

procedure TForm1.ComboBox12Change(Send er: TObject);

begin:='[Разрешение экрана]='+ QuotedStr(combobox12.Text);

if combobox12.Text='' then:='';

end ;

procedure TForm1.ComboBox13Change(Send er: TObject);

begin:='[емкость аккумулятора]='+ QuotedStr(combobox13.Text);

if combobox13.Text='' then:='';

end ;

procedure TForm1.Edit2Change(Send er: TObject);

begin:=form1.Edit2.text; // Записываем в переменную а71, то что ввели в

поле edit2

end ;

procedure TForm1.Edit3Change(Send er: TObject);

begin:=form1.Edit3.text; // Записываем в переменную а72, то что ввели в

поле edit3

end ;

procedure TForm1.FormActivate(Send er: TObject);

begin.Visible:=false; //Изначально делаем невидимым edit1

end ;

end .

unit Unit2;

interface

uses, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, ExtCtrls, DBCtrls, DB, ADODB, Grids,

DBGrids;

type= class(TForm): TBitBtn;: TBitBtn;: TADOConnection;: TADOTable;: TDataSource;: TDBGrid;: TLabel;: TLabel;: TEdit;: TLabel;: TLabel;: TLabel;

procedure BitBtn1Click(Send er: TObject);

procedure BitBtn2Click(Send er: TObject);

procedure DBGrid1CellClick(Column: TColumn);

private

{ Private declarations }

public

{ Public declarations }

end ;

var: TForm2;

uses Unit1, Unit3;

{$R *.dfm}

procedure TForm2.BitBtn1Click(Send er: TObject);

begin.Close;.show;

end ;

procedure TForm2.BitBtn2Click(Send er: TObject);

begin.Close;.Close;

end ;

procedure TForm2.DBGrid1CellClick(Column: TColumn);

begin

//Form3.ShowModal;.Image1.Picture.LoadFromFile(Form1.adoTable1.FieldByname('Фото'

).AsString);.ShowModal;

end ;

end .

unit Unit3;

interface

uses, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls;

type= class(TForm): TImage;

private

{ Private declarations }

public

{ Public declarations }

end ;

var: TForm3;

{$R *.dfm}

end .

Похожие работы на - Разработка экспертной системы по выбору мобильного телефона

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!