Проектирование и разработка интеллектуальной информационной системы (экспертной системы для магазина электроники)
Понятие экспертных (интеллектуальных, информационных) систем, позволяющих повысить качество и сохранить время принятия решений, способствующих эффективности работы и повышению квалификации специалистов. Практическое применение искусственного интеллекта.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.04.2024 |
Размер файла | 879,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
«Национальный исследовательский университет «МЭИ»
ИНЖЕНЕРНО-ЭКОНОМИЧЕСКИЙ ИНСТИТУТ
Кафедра «Безопасности и информационных технологий»
ОТЧЕТ ПО КУРСОВОЙ РАБОТЕ
по дисциплине «Информационные системы»
Тема: «Проектирование и разработка интеллектуальной информационной системы (экспертной системы для магазина электроники)»
Студент группы ИЭозс-61-21 Ястребцов М.Ю
Проверили: профессор кафедры ДИТ
д.т.н., профессор Бехтин Ю.С.
ассистент кафедры БИТ Савельев С.Д.
Москва 2023
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ТЕМАТИЧЕСКОЙ ОБЛАСТИ
1.1 Основные аспекты ИИС
1.2 Принципы работы ИИС
1.3 Примеры применения ИИС
1.4 Преимущества использования ИИС
1.5 Ограничения и проблемы ИИС
ГЛАВА 2. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
2.1 Описание предметной области
2.2 Модели представления знаний в экспертных системах
2.3 Выбор языка разработки
2.4 Применение языка Python в разработке ИИС
2.5 Взаимодействие ИИС с пользователем
2.6 Интегрирование экспертной системы в торговлю
2.7 Среда разработки
ГЛАВА 3. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ЗАДАЧИ
3.1 Создание классов
3.2 Создание базы знаний
3.3 Взаимодействие с пользователем
3.4 Тестирование приложения
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЯ
ВВЕДЕНИЕ
Экспертные системы - это яркое и быстро прогрессирующее направление в области искусственного интеллекта. Причиной повышенного интереса, который экспертные системы вызывают к себе на протяжении всего своего существования, является возможность их применения к решению задач из самых различных областей человеческой деятельности. Пожалуй, не найдется такой проблемной области, в которой не было бы создано ни одной экспертной системы или, по крайней мере, такие попытки не предпринимались бы.
Экспертные системы - это набор программ или программное обеспечение, которое выполняет функции эксперта при решении какой-либо задачи в области его компетенции. Экспертные системы, как и эксперт-человек, в процессе своей работы оперирует со знаниями. Знания о предметной области, необходимые для работы экспертных систем, определенным образом формализованы и представлены в памяти ЭВМ в виде базы знаний, которая может изменяться и дополняться в процессе развития системы.
Экспертные системы выдают советы, проводят анализ, выполняют классификацию, дают консультации и ставят диагноз. Они ориентированы на решение задач, обычно требующих проведения экспертизы человеком-специалистом. В отличие от машинных программ, использующий процедурный анализ, экспертные системы решают задачи в узкой предметной области (конкретной области экспертизы) на основе дедуктивных рассуждений. Такие системы часто оказываются способными найти решение задач, которые неструктурированны и плохо определены. Они справляются с отсутствием структурированности путем привлечения эвристик, т. е. правил, взятых «с потолка», что может быть полезным в тех системах, когда недостаток необходимых знаний или времени исключает возможность проведения полного анализа.
Главное достоинство экспертных систем - возможность накапливать знания, сохранять их длительное время, обновлять и тем самым обеспечивать относительную независимость конкретной организации от наличия в ней квалифицированных специалистов. Накопление знаний позволяет повышать квалификацию специалистов, работающих на предприятии, используя наилучшие, проверенные решения.
Практическое применение искусственного интеллекта на машиностроительных предприятиях и в экономике основано на экспертных системах, позволяющих повысить качество и сохранить время принятия решений, а также способствующих росту эффективности работы и повышению квалификации специалистов.
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ТЕМАТИЧЕСКОЙ ОБЛАСТИ
1.1 Основные аспекты ИИС
Интеллектуальные информационные системы (ИИС) - это комплексные программные решения, которые используют искусственный интеллект для обработки и анализа больших объемов данных. Они позволяют автоматизировать процессы принятия решений, предоставлять рекомендации и прогнозы, а также улучшать эффективность работы в различных областях, таких как бизнес, медицина, финансы и другие.
1.2 Принципы работы ИИС
В качестве основных принципов работы ИИС можно выделить следующие:
1. Сбор и хранение данных
2. Обработка и анализ данных
3. Генерация рекомендаций и прогнозов
4. Взаимодействие с пользователем
5. Обновление и улучшение системы
Первым принципом работы ИИС является сбор и хранение данных. ИИС могут получать информацию из различных источников, таких как базы данных, веб-страницы, документы и другие источники. Собранные данные затем хранятся в специальных хранилищах, где они могут быть легко доступны для дальнейшей обработки
После сбора данных ИИС проводят их обработку и анализ. Этот процесс включает в себя применение различных алгоритмов и методов искусственного интеллекта, таких как машинное обучение, нейронные сети, статистический анализ и другие. Целью обработки и анализа данных является выявление закономерностей, паттернов и трендов, которые могут быть использованы для принятия решений
На основе обработанных данных ИИС могут генерировать рекомендации и прогнозы. Это происходит путем применения моделей и алгоритмов, которые опираются на полученные результаты анализа данных. Рекомендации и прогнозы могут быть использованы для оптимизации бизнес-процессов, принятия решений и предсказания будущих событий.
ИИС предоставляют возможность взаимодействия с пользователем. Это может быть реализовано через интерфейс пользователя, который позволяет вводить запросы, получать информацию и взаимодействовать с системой. Интерфейс может быть графическим, текстовым или голосовым, в зависимости от конкретной реализации ИИС.
ИИС требуют постоянного обновления и улучшения. Это связано с тем, что данные и требования пользователей могут меняться со временем. Обновление системы включает в себя добавление новых данных, улучшение алгоритмов и моделей, а также устранение ошибок и недочетов. Это позволяет ИИС быть актуальными и эффективными в долгосрочной перспективе
1.3 Примеры применения ИИС
В качестве примеров применения ИИС можно выделить следующие:
1. Системы рекомендаций
2. Анализ больших данных
3. Автоматизация процессов
Интеллектуальные информационные системы могут использоваться для создания систем рекомендаций. Например, популярные онлайн-платформы, такие как Netflix и Amazon, используют ИИС для анализа предпочтений пользователей и предлагают персонализированные рекомендации фильмов, товаров и услуг. Это позволяет улучшить пользовательский опыт и повысить вероятность покупки или просмотра.
ИИС также применяются для анализа больших объемов данных. Например, в медицинской сфере ИИС могут анализировать медицинские записи и результаты исследований для выявления паттернов и предоставления диагностических рекомендаций. В финансовой сфере ИИС могут анализировать финансовые данные и рыночные тренды для прогнозирования будущих изменений и принятия инвестиционных решений.
ИИС могут использоваться для автоматизации различных процессов. Например, в производственной сфере ИИС могут контролировать и оптимизировать процессы производства, управлять роботизированными системами и предсказывать возможные сбои или проблемы. В логистике ИИС могут оптимизировать маршруты доставки и управлять интеллектуальными системами управления складом.
Также ИИС могут применяться для обработки естественного языка что позволяет им понимать и анализировать текстовую информацию. Например, ИИС могут использоваться для автоматического анализа и классификации текстовых документов, автоматического перевода текстов на другие языки или создания чат-ботов для автоматического общения с пользователями.
1.4 Преимущества использования ИИС
Интеллектуальные информационные системы (ИИС) предоставляют ряд преимуществ в сравнении с традиционными информационными системами. Вот некоторые из них:
1. Автоматизация и оптимизация процессов
2. Повышение точности и качества принимаемых решений
3. Улучшение взаимодействия с пользователями
4. Автоматическое обучение и адаптация
5. Улучшение безопасности и защиты данных
ИИС позволяют автоматизировать и оптимизировать различные бизнес-процессы. Они могут выполнять сложные вычисления, анализировать большие объемы данных и принимать решения на основе полученной информации. Это позволяет сократить время и усилия, затрачиваемые на выполнение задач, и повысить эффективность работы.
ИИС способны анализировать большие объемы данных и выявлять скрытые закономерности и тенденции. Это позволяет принимать более точные и обоснованные решения. Например, в медицине ИИС могут помочь в диагностике заболеваний, предсказывать эффективность лечения и рекомендовать оптимальные методы лечения.
ИИС могут быть обучены взаимодействовать с пользователями на естественном языке. Это позволяет создавать более удобные и интуитивно понятные интерфейсы, которые позволяют пользователям задавать вопросы и получать ответы без необходимости изучать сложные команды или интерфейсы.
ИИС могут обучаться на основе опыта и данных, что позволяет им становиться все более эффективными и адаптироваться к изменяющимся условиям. Например, ИИС в области финансов могут анализировать данные о рынке и обучаться на основе успешных и неуспешных инвестиций, чтобы предсказывать будущие тренды и рекомендовать оптимальные инвестиционные стратегии.
ИИС могут помочь в обнаружении и предотвращении кибератак и других угроз безопасности. Они могут анализировать данные и выявлять аномалии, которые могут указывать на потенциальные угрозы. Кроме того, ИИС могут использоваться для защиты данных и обеспечения конфиденциальности, например, путем автоматического шифрования или мониторинга доступа к данным.
1.5 Ограничения и проблемы ИИС
Несмотря на все преимущества, интеллектуальные информационные системы также имеют свои ограничения и проблемы, которые следует учитывать при их использовании (Таблица 1):
1. Ограниченность данных
2. Недостаток прозрачности
3. Непредсказуемость
4. Этические вопросы
ИИС требуют большого объема данных для обучения и принятия решений. Если у системы недостаточно данных или данные неправильные или неполные, это может привести к неправильным выводам и ошибкам. Кроме того, ИИС могут быть ограничены в доступе к определенным типам данных, что может ограничить их способность анализировать и принимать решения в некоторых областях.
ИИС могут быть сложными и непрозрачными в своей работе. Они могут принимать решения на основе сложных алгоритмов и моделей, которые трудно понять и объяснить. Это может вызывать недоверие и сопротивление со стороны пользователей и общества в целом. Недостаток прозрачности также может создавать проблемы в области этики и ответственности, так как сложно определить, как именно ИИС принимают решения и какие факторы они учитывают.
ИИС могут быть непредсказуемыми в своем поведении. Они могут обучаться на основе большого объема данных и сложных алгоритмов, что может привести к неожиданным результатам и ошибкам. Это может быть особенно проблематично в критических областях, таких как медицина или финансы, где неправильные решения могут иметь серьезные последствия.
ИИС вызывают ряд этических вопросов, связанных с конфиденциальностью данных, приватностью и использованием личной информации. Использование ИИС может привести к нарушению приватности и злоупотреблению данными, особенно если система имеет доступ к большому объему личной информации. Кроме того, ИИС могут быть предвзятыми и дискриминирующими, если данные, на которых они обучаются, содержат предубеждения или неравенства.
В целом, интеллектуальные информационные системы имеют свои ограничения и проблемы, которые следует учитывать при их использовании. Необходимо тщательно анализировать их возможности и ограничения, а также принимать меры для минимизации рисков и обеспечения этического использования.
экспертный интеллектуальный информационный
Таблица 1.
Аспект |
Определение |
Примеры |
Преимущества |
Ограничения и проблемы |
|
Принципы работы |
ИИС используют методы искусственного интеллекта, такие как машинное обучение, нейронные сети, генетические алгоритмы, для анализа и обработки информации, принятия решений и предоставления рекомендаций. |
Система машинного обучения, которая обучается на основе большого объема данных для классификации новых объектов. |
Автоматизация сложных задач, возможность обработки больших объемов данных, способность к обучению и адаптации. |
Необходимость большого объема данных для обучения, сложность интерпретации результатов, возможность появления ошибок и неопределенности. |
|
Примеры применения |
используются в медицине для диагностики заболеваний, в финансовой сфере для прогнозирования рынка, в автомобильной промышленности для разработки автономных ссистем |
Система диагностики рака на основе анализа медицинских изображений, система прогнозирования цен на акции на основе анализа рисков |
Улучшение точности диагностики и прогнозирования, автоматизация рутинных задач, сокращение времени и затрат. |
Возможность ошибочных прогнозов, недостаточная надежность и объективность, этические и юридические вопросы |
|
Преимущества |
ИИС позволяют автоматизировать сложные интеллектуальные задачи, улучшить качество принимаемых решений, повысить эффективность работы и сократить затраты |
Автоматизация сложных задач, повышение эффективности, улучшение качества решений, сокращение затрат. |
Улучшение качества жизни, повышение конкурентоспособности, увеличение производительности. |
Высокая стоимость разработки и внедрения, сложность обучения и поддержки, проблемы с конфиденциальностью и безопасностью данных. |
|
Ограничения и проблемы |
ИИС требуют большого объема данных для обучения, могут допускать ошибки и неопределенность, могут возникать этические и юридические вопросы. |
Необходимость большого объема данных, возможность ошибочных прогнозов, этические и юридические вопросы. |
Необходимость большого объема данных, возможность ошибочных прогнозов, этические и юридические вопросы. |
Необходимость большого объема данных, возможность ошибочных прогнозов, этические и юридические вопросы |
ГЛАВА 2. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
2.1 Описание предметной области
В настоящей работе предметной областью является магазин электроники. Областью функционирования предприятия, в первую очередь, является торговля смартфонами, планшетными ПК и ноутбуками.
Каждая единица ассортимента магазина обладает набором параметров. Этот набор включает такие параметры как тип устройства, размер дисплея, страна-производитель, форм-фактор разъёма зарядки/подключения периферии. Данные параметры выбраны согласно следующей логике: в настоящее время практически любое устройство от производителя, поставляющего свою продукцию в розничные магазины обладает приемлемой для большинства пользователей производительностью, качеством съёмки и объёмом аккумулятора, что позволяет опустить данные параметры в процессе разработки экспертной системы.
2.2 Модели представления знаний в экспертных системах
Характерная особенность ЭС, отличающая их от традиционных систем обработки информации, заключается в оперировании знаниями. Формализм описания такого рода информации определяется как представление знаний. Компонент, который использует для решения проблем знания экспертов, описанные в заранее выбранной для них форме представления, является механизмом вывода. В системах с базами знаний, в том числе и экспертных системах, представление знаний является фундаментальным понятием. Решение о выборе способа представления знаний оказывает существенное влияние на любую их составную часть.
Можно сказать, что представлением знаний определяются возможности системы базы знаний. И наоборот, чтобы система обработки знаний отвечала определенным прикладным потребностям, должно быть создано соответствующее представление знаний. Поскольку представление знаний является средством описания знаний человека, то желательно, чтобы его описательные возможности были как можно выше. С другой стороны, если форма представления становится излишне сложной, то усложняется и механизм выводов, при этом не только затрудняется проектирование ЭС, но и возникает опасность потери достоверности выполняемых ею действий. В конечном итоге проектирование представления знаний предусматривает выработку всех этих условий, а затем и выбор решения на основе некоторого компромисса между ними.
В настоящее время для настройки и обучения искусственных нейронных сетей все чаще применяются генетические алгоритмы. С их помощью создаются искусственные нейронные сети, адаптированные для решения конкретных задач. В пятой главе рассматривается генетический алгоритм, и даются рекомендации для его программной реализации [22-36]. Нейросетевой модели посвящена шестая глава. Знания в нейросетевой модели представляются неявным образом посредством задаваемой топологии сети, весов связей и типов функции активации
2.3.Выбор языка разработки
Благодаря появлению специальных инструментальных средств построения ЭС сократились сроки разработки, значительно снизилась трудоемкость. Инструментальные средства построения ЭС можно разбить на три основных типа:
- языки программирования;
- среды программирования;
- пустые ЭС (оболочки).
С точки зрения разработчика экспертных систем, наибольший интерес представляет использование сред программирования и пустых экспертных систем (оболочек), хотя не всегда можно заметить разницу между этими понятиями.
К числу таких средств первой группы относятся языки обработки символьной информации, наиболее известными из которых являются Пролог и Лисп. Пролог- язык высокого уровня, ориентированный на использование концепций и методов математической логики. Как следует из его названия, Пролог предназначен для программирования в терминах логики. Основной особенностью Пролога, отличающей его от всех других языков, является декларативный характер написанных на нем программ. Язык Лисп изобретен в Массачусетском технологическом институте и обладает способностью обрабатывать списковые структуры. Языки программирования Лисп и Пролог имеют встроенные механизмы для манипулирования знаниями.
Помимо Лиспа и Пролога создано множество других языков, ориентированных на обработку символьной информации и разработку ЭС: Smalltalk, FRL, Interlisp. Кроме этих специализированных языков для разработки экспертных систем используются и обычные языки программирования общего назначения: Си, Ассемблер, Паскаль, Фортран, Бейсик, Python др.
2.4 Применение языка Python в разработке ИИС
Для реализации программного обеспечения, связанного с применением ИИ, требуется надежный, гибкий язык программирования с богатым инструментарием. Python обладает всеми обозначенными качествами, в связи с чем в настоящее время на нем разрабатывается множество ИИ-проектов. Также Python среди других языков программирования выделяет ряд преимуществ:
1. простота и логичность
2. большой выбор библиотек и фреймворков
3. мультиплатформенность
В Python позволяет писать лаконичный и читаемый код без различных затруднений. Несмотря на то, что за машинным обучением и искусственным интеллектом стоят сложные алгоритмы и процессы, простота Python позволяет создавать надежные системы. Разработчики могут полностью сосредоточиться на выполняемых задачах, не отвлекаясь на технические нюансы языка.
Кроме того, Python прост в изучении, чем и привлекает многих разработчиков. Написанный на нем код легко понятен человеку, что упрощает создание моделей для машинного обучения.
Создание алгоритмов ИИ и машинного обучения -- это сложная задача, требующая много времени. И чтобы было легче находить оптимальные пути решения задач, программистам нужна хорошо структурированная и надежная среда разработки. Многочисленные фреймворки и библиотеки Python помогают существенно уменьшить количество времени, необходимого для разработки приложений. Программная библиотека -- это предварительно написанный код, который разработчики используют для решения распространенных задач. Python, с его богатым стеком технологий, имеет обширный набор библиотек для искусственного интеллекта и машинного обучения.
Мультиплатформенность - свойство языка программирования или фреймворка, позволяющее разработчикам переносить ПО на разные машины с минимальными изменениями, либо без изменений вовсе. Одной из причин популярности Python является то, что этот язык от платформ не зависит, так как поддерживается многими из них, включая Linux, Windows и macOS. Код Python может использоваться для создания программ для большинства операционных систем, а это означает, что программное обеспечение Python легко распространять и использовать в этих системах без специальных интерпретаторов
2.5 Взаимодействие ИИС с пользователем
Взаимодействие с ЭС осуществляют различные типы пользователей: пользователи-неспециалисты, пользователи-специалисты, эксперты, пользователи-студенты, инженеры по знаниям.
Задача пользователей, не являющихся специалистами в области экспертизы, состоит в получении от ЭС решения некоторой задачи. Задача пользователей-специалистов в области экспертизы заключается в использовании ЭС для сокращения трудоемкости получения результата или повышения его качества. Задача пользователей-студентов состоит в обучении с помощью ЭС методам решения задач из области экспертизы. Задача экспертов, т.е. высококвалифицированных специалистов, заключается в обнаружении недостающих знаний и вводе их в систему, т.е. осуществлении отладки знаний. Задача инженеров по знаниям заключается в отладке управляющего механизма, анализе и модификации ЭС
Общая схема компоненты взаимодействия приведена на рисунке 1.
Рисунок 2.1. Общая схема компоненты взаимодействия.
В разрабатываемой системе взаимодействие между пользователем и системой будет осуществляться при помощи консольного интерфейса.
2.5 Интегрирование экспертной системы в торговлю
Для интеграции экспертной системы в работу магазина электроники следует выполнить ряд действий, предполагающих успешное решение данного вопроса:
1. Проанализировать, какая продукция пользуется наибольшим спросом на рынке. В настоящее время покупатели выбирают технику, исходя из цены, надежности и долговечности, следовательно, в процессе разработки должны учитываться такие параметры как: материалы корпуса и время поддержки операционной системы устройства компанией-разработчиком.
2. Составить ассортимент, исходя из спроса на предоставляемую продукцию. Следует учитывать, что наибольшим спросом пользуются устройства с высоким соотношением цены/качества.
Также, в процессе успешной интеграции обязательно следует учитывать опыт взаимодействия пользователя с экспертной системой. Поскольку взаимодействие пользователя с экспертной системой будет происходить при помощи интерфейса, то упор нужно сделать именно на этот элемент системы. Интерфейс должен быть приятным, не перегруженным информацией (лаконичным). Также не следует упускать такой параметр как интуитивность, то есть пользователь должен понимать, как взаимодействовать с интерфейсом, не имея подобного опыта.
2.6 Среда разработки
В ходе разработки приложения была использована среда разработки Pycharm. В качестве сильных сторон среды можно выделить следующие: помощь при написание кода - при взаимодействии среда разработки обеспечивает разработчика функциями автодополнения, анализа кода, быстрым исправлением; удобная навигация - встроенная система навигации позволяет быстро перейти к любой функции, классу или файлу, находящемуся в составе проекта.
Также Pycharm предлагает большой набор инструментов «из коробки», что также делает её наиболее предпочтительной средой разработки приложений на языке программирования Python.
ГЛАВА 3. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ЗАДАЧИ
3.1 Создание классов
В языке программирования Python классы используются для создания объектно-ориентированной структуры кода. Они позволяют объединять данные и функции в единый объект, называемый экземпляром класса. Классы предоставляют механизм для создания объектов с определенными свойствами (атрибутами) и поведением (методами). В разрабатываемой программе присутствует два класса и 3 функции.
Класс «Quest» инициализирует метод «quest», задающий пользователю вопросы и получающий на них ответы. В Python метод -- это функция, связанная с объектом. Методы определяются внутри класса и используются для выполнения операций с данными объекта.
Рисунок 3.1. Класс «Qest» и метод «qest»
Метод «qest» имеет следующую логику работы: в консоль выводится вопрос с двумя вариантами ответа - да/нет. Пользователь отвечает на вопрос, после чего программа считывает ответ пользователя
Класс «KnowledgeEngine» является рекурсивной машиной обратного вывода. Класс инициализирует объект базы знаний с правилами и выделяет память для вычисленных ранее значений.
Метод «get» используется для получения значений по имени из памяти. Если значение имеется в памяти на момент выполнения метода, то он возвращает найденное значение. Если же значение не найдено, то метод сохраняет его.
Рисунок 3.2. Класс «KnowledgeEngine» и метод «get»
Класс «KnowledgeEngine» также содержит метод «calc», использующийся для вычисления выражения или правила из базы знаний.
Данный метод работает сравнивает значение, полученное от пользователя с данными, хранящимися в базе знаний и на их основе возвращает результат. То есть данный метод реализует логические ИЛИ и И: если полученное из метода «Ask» выражение равно И, и все операции в базе знаний выполнены успешно, то выражение будет считаться истинным.
Если же полученное выражение равно ИЛИ, то для признания истинным все его операции должны быть выполнены успешно. Если полученное из базы знаний значение неизвестно, то метод выведет сообщение об ошибке.
Рисунок 3.3. Метод «calc»
3.2 Создание базы знаний
В разработанной базе знаний содержатся правила, согласно которым программа приложение выводит желаемый для пользователя ответ. База знаний представлена на рисунке 3.4:
Рисунок 3.4. База знаний
3.3 Взаимодействие с пользователем
Приложение взаимодействует с пользователем при помощи вывода в консоль вопросов и вариантов ответа. По принципу действия напоминает игру «Акинатор», за исключением того, что в данном случае приложение имеет только два варианта ответа. Интерфейс приложения представлен на рисунке 3.5:
Рисунок 3.5. Интерфейс приложения
3.4 Тестирование приложения
В рамках тестирования приложения будет отработана два сценария работы приложения: позитивный и негативный: если в результате работы приложения пользователь получит искомый ответ, то сценарий будет считаться позитивным, если же приложение выдаст сообщение об ошибке, то сценарий будет негативным. Позитивный сценарий работы приложения представлен на рисунке 3.6:
Рисунок 3.6. Позитивный сценарий работы приложения
Негативный результат работы приложения представлен на рисунке 3.7:
Рисунок 3.7. Негативный результат работы приложения
ЗАКЛЮЧЕНИЕ
Развитие информационных технологий, в том числе всемирной паутины, настоятельно требует наличия всё новых и новых возможностей получения и обработки информации и знаний, которые предприятия и физические лица могут использовать в рамках своей деятельности.
Благодаря развитию языков программирования появилось большое количество возможностей для решения различных задач в сфере интеллектуальных информационных систем.
В результате выполнения поставленной задачи я на практике убедился в гибкости и мощности языка программирования Python и попрактиковался в создании экспертных систем.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. «Искусственный интеллект в розничной торговле» - сайт - URL: https://cloudmakers.ru/iskusstvennyj-intellekt-v-roznichnaya-torgovli/
2. «Среда разработки Pycharm» - сайт - URL: https://www.jetbrains.com/ru-ru/pycharm/features/
3. «The Python tutorial» - сайт - URL: https://docs.python.org/3/tutorial/index.html
4. Бхаргава, А. Грокаем алгоритмы[Текст]: учебное пособие
ПРИЛОЖЕНИЯ
class Qest:
def __init__(self, choices=['Y', 'N']):
self.choices = choices
def qest(self):
if max([len(a) for a in self.choices]) > 3:
for i, a in enumerate(self.choices):
print("{0}. {1}".format(i, a))
a = int(input())
return self.choices[a]
else:
print("/".join(self.choices))
return input()
rules = {
'default': Qest(['Y', 'N']),
'техника:iphone 14': If(['смартфон', 'производитель: US', 'диагональ: 5.5', 'ligtning']),
'техника:xiaomi 12': If(['смартфон', 'производитель: CN', 'диагональ: 6.5', 'type c']),
'техника:google pixel 6': If(['смартфон', 'производитель: US', 'диагональ: 6', 'type c']),
'техника:ipad pro': If(['планшет', 'производитель: US', 'диагональ: 10', 'ligtning']),
'техника:ipad 2020': If(['планшет', 'производитель: US', 'диагональ: 10.5', 'ligtning']),
'техника:google pixel 5a': If(['смартфон', 'производитель: US', 'диагональ: 5.5', 'type c']),
'техника:hp spectre': If(['ноутбук', 'type c', 'производитель: CN', 'диагональ: 15']),
'техника:macbook pro 13': If(['ноутбук', 'type c', 'производитель: US', 'диагональ: 13']),
'техника:macbook pro 15': If(['ноутбук', 'type c', 'производитель: US', 'диагональ: 15']),
'техника:msi stealth 15m': If(['ноутбук', 'разъём: другое', 'производитель: CN', 'диагональ: 16']),
'техника:thunderobot ': If(['ноутбук', 'разъём: другое', 'производитель: PRC', 'диагональ: 16']),
'техника:iphone 15 pro max': If(['смартфон', 'производитель: US', 'диагональ: 6', 'ligtning']),
'техника:bq 5565': If(['смартфон', 'производитель: PRC', 'диагональ: 6', 'micro usb']),
'техника:poco c51': If(['смартфон', 'производитель: PRC', 'диагональ: 5.5', 'micro usb']),
}
class KnowledgeEngine:
def __init__(self, rules):
self.rules = rules
self.memory = {}
def get(self, name):
if name in self.memory.keys():
return self.memory[name]
for fld in self.rules.keys():
if fld == name or fld.startswith(name + ":"):
value = 'y' if fld == name else fld.split(':')[1]
res = self.calc(self.rules[fld], field=name)
if res == 'y':
self.memory[name] = value
return value
res = self.calc(self.rules['default'], field=name)
self.memory[name] = res
return res
def calc(self, expr, field=None):
if isinstance(expr, Qest):
print(field)
return expr.qest()
elif isinstance(expr, If):
return self.calc(expr.x)
elif isinstance(expr, AND) or isinstance(expr, list):
expr = expr.x if isinstance(expr, AND) else expr
for x in expr:
if self.calc(x) == 'n':
return 'n'
return 'y'
elif isinstance(expr, OR):
for x in expr.x:
if self.calc(x) == 'y':
return 'y'
return 'y'
elif isinstance(expr, str):
return self.get(expr)
else:
print("Неизвестное выражение: {}".format(expr))
ke = KnowledgeEngine(rules)
ke.get('техника')
Размещено на Allbest.ru
Подобные документы
Технология экспертных систем на основе искусственного интеллекта: разработка и внедрение компьютерных программ, способных имитировать, воспроизводить области деятельности человека, требующих мышления, определенного мастерства и накопленного опыта.
курсовая работа [264,8 K], добавлен 22.12.2008Виды и основные функции интеллектуальных систем. Выбор инструментального средства для создания экспертной системы. Физическое проектирование базы данных. Использование среды EsWin 2.1 для разработки и тестирования экспертной системы выбора должности.
курсовая работа [615,8 K], добавлен 22.03.2016Понятие искусственного интеллекта и интеллектуальной системы. Этапы развития интеллектуальных систем. Модели представления знаний, процедурный (алгоритмический) и декларативный способы их формализации. Построение концептуальной модели предметной области.
презентация [80,5 K], добавлен 29.10.2013Классификация информационных систем. Использование баз данных в информационных системах. Проектирование и реализация информационной системы средствами MS Access. Анализ входной информации предметной области и выделение основных информационных объектов.
курсовая работа [2,5 M], добавлен 09.08.2012Понятие искусственного интеллекта как свойства автоматических систем брать на себя отдельные функции интеллекта человека. Экспертные системы в области медицины. Различные подходы к построению систем искусственного интеллекта. Создание нейронных сетей.
презентация [3,0 M], добавлен 28.05.2015История развития искусственного интеллекта. Экспертные системы: их типы, назначение и особенности, знания и их представление. Структура идеальной и инструменты построения экспертных систем. Управление системой продукции. Семантические сети и фреймы.
реферат [85,7 K], добавлен 20.12.2011Классификация систем поддержки принятия решений. Сравнительный анализ методик для оценки рисков розничного кредитования. Структура системы поддержки принятия решений, формирование начальной базы знаний. Проектирование базы данных информационной системы.
дипломная работа [1,9 M], добавлен 10.07.2017Этапы разработки экспертных систем. Требования к организации-разработчику. Правильный выбор подходящей проблемы, работа с экспертом. Разработка прототипной системы. Развитие прототипа до промышленной экспертной системы. Особенности оценки системы.
презентация [169,1 K], добавлен 14.08.2013Исследование методов и способов разработки информационных систем. Автоматизация деятельности продовольственного магазина. Проектирование логической схемы информационной системы. Разработка модели базы данных и структуры вычислительно-локальной сети.
курсовая работа [389,2 K], добавлен 16.03.2017Обслуживание двух встречных потоков информации. Структура информационных систем. Разработка структуры базы данных. Режимы работы с базами данных. Четыре основных компонента системы поддержки принятия решений. Выбор системы управления баз данных.
курсовая работа [772,0 K], добавлен 21.04.2016