Курсовая ОИИ. Курсовая работа по дисциплине Основы искусственного интеллекта
Скачать 0.98 Mb.
|
4.1 Требования к системным ресурсамДля работы ПП используется персональный компьютер, удовлетворяющий следующим системным требованиям: Минимальная системные требования: Процессор Intel Core 2 Duo или аналогичный ему процессор AMD с минимальной тактовой частотой 500MHz; свободное место на жестком диске не менее 1 Мб; объем оперативного запоминающего устройства не менее 32 Мб. Требования к информационной и программной совместимости: Язык: C#, Microsoft .NET Framework 4.7; Прикладная программа ОС: Windows 8.1/10; Объем программы: 1Мб. 4.2 Руководство пользователяЗапуск программы осуществляется запуском Oii.exe После запуска программы перед пользователем появляется данное окно (Рисунок 5). Рисунок 5– Главная форма
В верхней части главного окна программы располагается меню работы с данной программной системой. Для того, чтобы загрузить данные, нужно выбрать пункт меню «Файл», затем «Открыть», в появившемся окне ввести название папки, в которой хранятся файлы базы знаний и нажать кнопку «Загрузить» (рисунок 6). Рисунок 6 – Выбор базы знаний База знаний должна быть сформирована в редакторе переменных и правил. Ниже представлено окно добавления переменных (рисунок 7). Рисунок 7 –Добавление переменных
Ниже представлено окно добавления правил (рисунок 8). Рисунок 8 – Добавление правил Если по каким-то причинам какое-либо поле не будет соответствовать правилам, то программа выдаст ошибку (рисунок 9). Рисунок 9 – Пример информационного окна ошибки
Основное окно программы при загруженной базе знаний и начатой консультации (рисунке 10). Рисунок 10 – Основное окно программы при консультации Данный результат означает, что неисправностью будет являться терма со значением 0. Ниже представлена экранная форма термы со значением 0 (рисунок 11). Рисунок 11 – Экранная форма переменных
Основное окно программы при загруженной базе знаний и начатой консультации (рисунке 12). Рисунок 12 – Основное окно программы при консультации Данный результат означает, что неисправностью будет являться терма со значением 7-8. Ниже представлена экранная форма термы со значением 7-8 (рисунок 13). Рисунок 13 – Экранная форма переменных
Заключение В результате выполненных исследований разработана оболочка ЭС, которая позволяет разрабатывать и редактировать базу знаний. ЭС имеет дружелюбный интерфейс. Ее работоспособность была проверена на многих тестовых данных, что позволяет сделать вывод о том, что данная программная система удовлетворяет, по крайней мере, трем критериям качества – это функциональность, надежность и легкость применения.
Список использованных источников 1 Семенов, А.М. Интеллектуальные системы [Текст] : учебное пособие для студентов, обучающихся по программам высшего профессионального образова-ния по направлениям подготовки 230100.68 Информатика и вычислительная тех-ника, 231000.68 Программная инженерия / А. М. Семенов, Н. А. Cоловьев, Е. Н. Чернопрудова, А. С. Цыганков; М-во образования и науки Рос. Федерации, Фе-дер. гос. бюджет. образоват. учреждение высш. проф. образования "Оренбург. гос. ун-т". - Оренбург : ОГИМ, 2014. - 237 с. - Библиогр.: с. 218-221. - Прил.: с. 222-236. - ISBN 978-5-9723-0158-4. Издание на др.носителе [Электронный ре-сурс] 2 Семенов, А.М. Интеллектуальные системы [Электронный ресурс] : учеб-ное пособие для студентов, обучающихся по программам высшего профессио-нального образования по направлениям подготовки 230100.68 Информатика и вычислительная техника, 231000.68 Программная инженерия / А. М. Семенов [и др.]; М-во образования и науки Рос. Федерации, Федер. гос. бюджет. образоват. учреждение высш. проф. образования "Оренбург. гос. ун-т". - Электрон. тексто-вые дан. (1 файл: 3.85 Мб). - Оренбург : ОГУ, 2013. - 236 с. - Загл. с тит. экрана. -Adobe Acrobat Reader 6.0-ISBN978-5-9723-0158-4.. Издание на др. носите-ле [Текст] 3 Барсегян, А. А. Анализ данных и процессов: учеб. пособие / А. А. Барсе-гян, М. С. Куприянов, И. И. Холод, М. Д. Тесс, С. И. Елизаров. - 3-е изд., пе-рераб. и доп. - СПб.: БХВ-Петербург, 2009.- 512 с. Режим доступа: http://znanium.com/catalog/product/350638 4 Quinlan, J. R., (1986). Induction of Decision Trees. Machine Learning 1: 81-106, Kluwer Academic Publishers 5 Ананий В. Левитин Глава 10. Ограничения мощи алгоритмов: Деревья принятия решения // Алгоритмы: введение в разработку и анализ = Introduction to The Design and Analysis of Aigorithms. — М.: «Вильямс», 2006. — С. 409-417. 6 Павловская,Т.С. C#. Программирование на языке высокого уровня / Т.С.Павловская. — СПб.: Питер, 2009. — 432 с. 7 Нейлор К., Как построить свою экспертную систему: Пер. с англ./ К. Нейлор. - М.: Энергоатомиздат, 1991. - 286 с.: ил.
Приложение А (обязательное) Архитектура программного средства Рисунок А.1 – Архитектура
Приложение Б (обязательное) Укрупненная схема алгоритма А Начало А А А А А А А Конец Рисунок Б.2 – Укрупненная схема алгоритма
Приложение В (обязательное) Листинг программы using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using AForge.Fuzzy; namespace ExpertSystem { public class DatabaseCreator { private Database database; private InferenceSystem inferenceSystem; public InferenceSystem Create(InformationBase informationBase) { database = new Database(); AddVariables(informationBase.variables); inferenceSystem = new InferenceSystem(database, new CentroidDefuzzifier(1000)); AddRules(informationBase.rules); return inferenceSystem; } public void AddVariables(Variable[] vars) { LinguisticVariable lv; foreach (Variable var in vars) { if (var != null) { lv = new LinguisticVariable(var.Name, var.Min, var.Max); AddFuzzyLabels(ref lv, var.FuzzyLabels); database.AddVariable(lv); } } } public void AddFuzzyLabels(ref LinguisticVariable lv, FuzzyLabel[] fuzzyLabels) { foreach(FuzzyLabel fl in fuzzyLabels) { if (fl != null) { switch (fl.Type) { case 1: lv.AddLabel(new FuzzySet(fl.Name, new TrapezoidalFunction(fl.Numbers[0], fl.Numbers[1], TrapezoidalFunction.EdgeType.Right))); break; case 2: lv.AddLabel(new FuzzySet(fl.Name, new TrapezoidalFunction(fl.Numbers[0], fl.Numbers[1], TrapezoidalFunction.EdgeType.Left))); break; case 3: lv.AddLabel(new FuzzySet(fl.Name, new TrapezoidalFunction(fl.Numbers[0], fl.Numbers[1], fl.Numbers[2]))); break; case 4:
lv.AddLabel(new FuzzySet(fl.Name, new TrapezoidalFunction(fl.Numbers[0], fl.Numbers[1], fl.Numbers[2], fl.Numbers[3]))); break; case 5: lv.AddLabel(new FuzzySet(fl.Name, new SingletonFunction(fl.Numbers[0]))); break; default: break; } } } } public void AddRules(Rule[] rules) { foreach(Rule var in rules) { if (var != null) { try { inferenceSystem.NewRule(var.Name, var.Value); } catch { } } } } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ExpertSystem { public class FuzzyLabel { public string Name { get; set; } public int Type { get; set; } //1 - две цифры и линия справа ; 2 - две цифры и линия слева; 3 - треугольник; 4 - трапеция, 5 - одиночная; public float[] Numbers { get; set; } public FuzzyLabel(string name, int type, float[] numbers) { Name = name; Type = type; Numbers = numbers; } override public string ToString() { return Name; } } } |