РАЗРАБОТКА ЭКСПЕРТНОЙ СИСТЕМЫ «НОУТБУКИ» НА ЯЗЫКЕ ПРОЛОГ - Студенческий научный форум

VIII Международная студенческая научная конференция Студенческий научный форум - 2016

РАЗРАБОТКА ЭКСПЕРТНОЙ СИСТЕМЫ «НОУТБУКИ» НА ЯЗЫКЕ ПРОЛОГ

 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
1 КЛАССИФИКАЦИЯ ЭКСПЕРТНЫХ СИСТЕМ

Экспертная система (ЭС) — компьютерная система, способная частично заменить специалиста-эксперта в разрешении проблемной ситуации. Современные ЭС начали разрабатываться исследователями искусственного интеллекта в 1970-х годах, а в 1980-х получили коммерческое подкрепление. Предтечи экспертных систем были предложены в1832 году С. Н. Корсаковым, создавшим механические устройства, так называемые «интеллектуальные машины», позволявшие находить решения по заданным условиям, например определять наиболее подходящие лекарства по наблюдаемым у пациента симптомам заболевания.

Этапы разработки ЭС представляются следующими видами деятельности:

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

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

  • Этап структурирования знаний — выбираются ИС и определяются способы представления всех видов знаний, формализуются основные понятия, определяются способы интерпретации знаний, моделируется работа системы, оценивается адекватность целям системы зафиксированных понятий, методов решений, средств представления и манипулирования знаниями.

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

  • Реализация ЭС — создается один или несколько прототипов ЭС, решающие требуемые задачи.

  • Этап тестирования — производится оценка выбранного способа представления знаний в ЭС в целом.

Структура ЭС интеллектуальных систем представляются в следующем виде:

  • Интерфейс пользователя;

  • Пользователь;

  • Интеллектуальный редактор базы знаний;

  • Эксперт;

  • Инженер по знаниям;

  • Рабочая (оперативная) память;

  • База знаний;

  • Решатель (механизм вывода);

  • Подсистема объяснений.

Также существует несколько классификаций ЭС по следующим видам:

  • По решаемой задаче;
  • По связи с реальным временем.
К ЭС по решаемой задаче относятся:
  • Интерпретация данных;

  • Диагностирование;

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

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

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

  • Сводное планирование;

  • Оптимизация;

  • Обучение;

  • Управление;

  • Ремонт;

  • Отладка.

К ЭС по связи с реальным временем:

  • Статические ЭС — это ЭС, решающие задачи в условиях, не изменяющихся во времени исходных данных и знаний.

  • Квазидинамические ЭС интерпретируют ситуацию, которая меняется с некоторым фиксированным интервалом времени.

  • Динамические ЭС — это ЭС, решающие задачи в условиях, изменяющихся во времени исходных данных и знаний.

Для удобства восприятия, данная классификация представлена в виде таблицы 1.

Таблица 1 – Классификация ЭС

Экспертные системы

По решаемой задаче

По связи с реальным временем

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

Статические

Диагностирование

Квазидинамические

Мониторинг

Динамические

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

 

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

 

Сводное планирование

 

Оптимизация

 

Обучение

 

Управление

 

Ремонт

 

2 КЛАССИФИКАЦИЯ ПРОГРАММНЫХ СРЕДСТВ ДЛЯ РАЗРАБОТКИ ЭКСПЕРТНЫХ СИСТЕМ

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

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

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

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

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

Также средства разработки ЭС можно сгруппировать по следующему принципу:

  • Универсальные языки (высокого уровня);

  • Языки обработки символов (LISP, Smalltalk);

  • Языки обработки знаний (PROLOG);

  • Системы автоматизированной обработки (CLIPS, KEE);

  • Оболочки экспертных систем (EXPERT);

  • Интегрированные инструменты системы (KEATS).

3 РАЗРАБОТКА ЭС «НОУТБУКИ»

3.1. Формализация задачи – дерево решения задачи

Базируясь на знаниях эксперта графически диаграмму всех возможных исходов данной ЭС можно представить в виде рисунка 1.

Рисунок 1 – Дерево решения задачи

Но данная ЭС является неполной и должна быть более глубокой и, помимо процессора и видеочипа, определять количество оперативной памяти и емкость жесткого диска у определенного производителя. В этом случае для ноутбуков с процессором «AMD» и «Intel» должно быть построено свое «дерево решений», каждое из которых соответствует своему видеочипу, и будет уже представлено в виде «поддерева решений», которое можно представить в виде рисунка 3.

Рисунок 2 – «Поддерево 1» решения задачи с CPU – AMD, GPU – AMD.

Аналогичным образом строятся «поддеревья» для ноутбуков с процессором «Intel».

Рисунок 3 – «Поддерево 2» решения задачи с CPU – Intel, GPU – AMD.

Рисунок 4 – «Поддерево 3» решения задачи с CPU – Intel, GPU – Intel.

Рисунок 4 – «Поддерево 4» решения задачи с CPU – Intel, GPU – nVidia.

3.2. Формирование правил – схема

На рисунке 5 графически представлено формирование правил для главного дерева.

Рисунок 5 – Формирование правил

На рисунке 6 графически представлено формирование правил для поддерева с процессором «AMD» и видеочипом «AMD».

Рисунок 6 – Формирование правил

3.3. Таблица «атрибут-предикат-значение»

Таблица 2 - «Атрибут-предикат-значение»

Атрибут

Предикат

Значение

1

2

3

CPU – AMD, GPU – AMD, RAM – 4Гб, HDD – 500Гб

IS

Asus X552EA

CPU – AMD, GPU – AMD, RAM – 4Гб, HDD – 1000Гб

IS

Lenovo G5045

CPU – AMD, GPU – AMD, RAM – 6Гб, HDD – 500Гб

IS

HP Pavilion 15-p104nr

CPU – AMD, GPU – AMD, RAM – 6Гб, HDD – 1000Гб

IS

Asus X550DP

CPU – AMD, GPU – AMD, RAM – 8Гб, HDD – 500Гб

IS

HP Pavilion x360

CPU – AMD, GPU – AMD, RAM – 8Гб, HDD – 1000Гб

IS

Acer Aspire E5-551

CPU – Intel, GPU – AMD, RAM – 4Гб, HDD – 500Гб

IS

DELL Inspiron 5547-8670

CPU – Intel, GPU – AMD, RAM – 4Гб, HDD – 1000Гб

IS

Lenovo G5070

CPU – Intel, GPU – AMD, RAM – 6Гб, HDD – 500Гб

IS

Acer Aspire E1-572

CPU – Intel, GPU – AMD, RAM – 6Гб, HDD – 1000Гб

IS

Acer Aspire E1-572G

CPU – Intel, GPU – AMD, RAM – 8Гб, HDD – 500Гб

IS

DELL Inspiron 5547-8694

CPU – Intel, GPU – AMD, RAM – 8Гб, HDD – 1000Гб

IS

DELL Inspiron 5547-9059

Продолжение таблицы 2

1

2

3

CPU – Intel, GPU – Intel, RAM – 4Гб, HDD – 500Гб

IS

DNS 0802870

CPU – Intel, GPU – Intel, RAM – 4Гб, HDD – 1000Гб

IS

Asus B551LA

CPU – Intel, GPU – Intel, RAM – 6Гб, HDD – 500Гб

IS

Asus X751LAV-TY057

CPU – Intel, GPU – Intel, RAM – 6Гб, HDD – 1000Гб

IS

Asus K555LA

CPU – Intel, GPU – Intel, RAM – 8Гб, HDD – 500Гб

IS

Acer Aspire V3-371-52QE

CPU – Intel, GPU – Intel, RAM – 8Гб, HDD – 1000Гб

IS

Asus X751LN

CPU – Intel, GPU – nVidia, RAM – 4Гб, HDD – 500Гб

IS

Lenovo G710

CPU – Intel, GPU – nVidia, RAM – 4Гб, HDD – 1000Гб

IS

Lenovo G5070

CPU – Intel, GPU – nVidia, RAM – 6Гб, HDD – 500Гб

IS

Acer Nitro VN7-571G-50Z2

CPU – Intel, GPU – nVidia, RAM – 6Гб, HDD – 1000Гб

IS

DEXP Atlas H136

CPU – Intel, GPU – nVidia, RAM – 8Гб, HDD – 500Гб

IS

DNS 0802723

CPU – Intel, GPU – nVidia, RAM – 8Гб, HDD – 1000Гб

IS

MSI GE72

3.4. Листинг

domains

A, B, C, D= symbol

predicates

noutbook(A,B,C,D)

clauses

noutbook(A,B,C,D):-A=«1»,B=«1»,C=«1»,D=«1»,write(«Asus X552EA»).

noutbook(A,B,C,D):-A=«1»,B=«1»,C=«1»,D=«2»,write(«Lenovo G5045»).

noutbook(A,B,C,D):-A=«1»,B=«1»,C=«2»,D=«1»,write(«HP Pavilion 15-p104nr»).

noutbook(A,B,C,D):-A=«1»,B=«1»,C=«2»,D=«2»,write(«Asus X550DP»).

noutbook(A,B,C,D):-A=«1»,B=«1»,C=«3»,D=«1»,write(«HP Pavilion x360»).

noutbook(A,B,C,D):-A=«1»,B=«1»,C=«3»,D=«2»,write(«Acer Aspire E5-551»).

noutbook(A,B,C,D):-A=«2»,B=«1»,C=«1»,D=«1»,write(«DELL Inspiron 5547-8670»).

noutbook(A,B,C,D):-A=«2»,B=«1»,C=«1»,D=«2»,write(«Lenovo G5070»).

noutbook(A,B,C,D):-A=«2»,B=«1»,C=«2»,D=«1»,write(«Acer Aspire E1-572»).

noutbook(A,B,C,D):-A=«2»,B=«1»,C=«2»,D=«2»,write(«Acer Aspire E1-572G»).

noutbook(A,B,C,D):-A=«2»,B=«1»,C=«3»,D=«1»,write(«DELL Inspiron 5547-8694»).

noutbook(A,B,C,D):-A=«2»,B=«1»,C=«3»,D=«2»,write(«DELL Inspiron 5547-9059»).

noutbook(A,B,C,D):-A=«2»,B=«2»,C=«1»,D=«1»,write(«DNS 0802870»).

noutbook(A,B,C,D):-A=«2»,B=«2»,C=«1»,D=«2»,write(«Asus B551LA»).

noutbook(A,B,C,D):-A=«2»,B=«2»,C=«2»,D=«1»,write(«Asus X751LAV-TY057»).

noutbook(A,B,C,D):-A=«2»,B=«2»,C=«2»,D=«2»,write(«Asus K555LA»).

noutbook(A,B,C,D):-A=«2»,B=«2»,C=«3»,D=«1»,write(«Acer Aspire V3-371-52QE»).

noutbook(A,B,C,D):-A=«2»,B=«2»,C=«3»,D=«2»,write(«Asus X751LN»).

noutbook(A,B,C,D):-A=«2»,B=«3»,C=«1»,D=«1»,write(«Lenovo G710»).

noutbook(A,B,C,D):-A=«2»,B=«3»,C=«1»,D=«2»,write(«Lenovo G5070»).

noutbook(A,B,C,D):-A=«2»,B=«3»,C=«2»,D=«1»,write(«Acer Nitro VN7-571G-50Z2»).

noutbook(A,B,C,D):-A=«2»,B=«3»,C=«2»,D=«2»,write(«DEXP Atlas H136»).

noutbook(A,B,C,D):-A=«2»,B=«3»,C=«3»,D=«1»,write(«DNS 0802723»).

noutbook(A,B,C,D):-A=«2»,B=«3»,C=«3»,D=«2»,write(«MSI GE72»).

noutbook(_,_,_,_):-write(«Not available»).

goal

write(«CPU: AMD or Intel?»),nl, write(«1) AMD»), write(«2) Intel»),readln(X),nl,

write(«GPU: AMD, Intel, nVidia?»),nl, write(«1) AMD»), write(«2) Intel»),write(«3) nVidia»),readln(Y),nl,

write(«RAM: 4Gb, 6Gb, 8Gb?»),nl, write(«1) 4Gb»), write(«2) 6Gb»),write(«3) 8Gb»),readln(Z),nl,

write(«HDD: 500Gb or 1000Gb?»),nl, write(«1) 500Gb»), write(«2) 1000Gb»),readln(H),nl,

noutbook(X,Y,Z,H)

3.5. Проверка логических выводов

В данном пункте рассматривается проверка логических выводов разработанной ЭС. Данная проверка осуществляется посредством набора определенных атрибутов и на основе их делается определенный вывод. Проверка результатов вывода представлена на рисунках 7-14.

Рисунок 7 – Результат работы программы с параметрами ввода AMD, AMD, 4Gb, 500Gb

Рисунок 8 – Результат работы программы с параметрами ввода AMD, AMD, 8Gb, 1000Gb

Рисунок 9 – Результат работы программы с параметрами ввода Intel, AMD, 6Gb, 500Gb

Рисунок 10 – Результат работы программы с параметрами ввода Intel, Intel, 4Gb, 500Gb

Рисунок 11 – Результат работы программы с параметрами ввода Intel, Intel, 6Gb, 1000Gb

Рисунок 12 – Результат работы программы с параметрами ввода AMD, AMD, 6Gb, 1000Gb

Рисунок 13 – Результат работы программы с параметрами ввода Intel, nVidia, 4Gb, 500Gb

Рисунок 13 – Результат работы программы с параметрами ввода Intel, nVidia, 6Gb, 1000Gb

Рисунок 14 – Результат работы программы с параметрами ввода AMD, nVidia, 6Gb, 500Gb

4 СОЗДАНИЕ БАЗЫ ДАННЫХ

4.1 Краткое описание

Необходимо создать базу данных о ноутбуках, в которой будет храниться некоторая информация о ноутбуках. Представим данную информацию в структурированном виде, таблица 3.

Таблица 3 - Таблица структуры базы данных

Ноутбук

Производитель процессора

Производитель видеочипа

Объем оперативной памяти

Объем жесткого диска

Стоимость

1

2

3

4

5

6

Asus X552EA

AMD

AMD

4Гб

500Гб

16990 руб.

Lenovo G5045

AMD

AMD

4Гб

1000Гб

22990 руб.

HP Pavilion 15-p104nr

AMD

AMD

6Гб

500Гб

30990 руб.

Asus X550DP

AMD

AMD

6Гб

1000Гб

31990 руб.

HP Pavilion x360

AMD

AMD

8Гб

500Гб

41990 руб.

Acer Aspire E5-551

AMD

AMD

8Гб

1000Гб

33890 руб.

DELL Inspiron 5547-8670

Intel

AMD

4Гб

500Гб

37990 руб.

Lenovo G5070

Intel

AMD

4Гб

1000Гб

24990 руб.

Acer Aspire E1-572

Intel

AMD

6Гб

500Гб

26990 руб.

Acer Aspire E1-572G

Intel

AMD

6Гб

1000Гб

33990 руб.

DELL Inspiron 5547-8694

Intel

AMD

8Гб

500Гб

39990 руб.

DELL Inspiron 5547-9059

Intel

AMD

8Гб

1000Гб

37990 руб.

DNS 0802870

Intel

Intel

4Гб

500Гб

17990 руб.

Asus B551LA

Intel

Intel

4Гб

1000Гб

42990 руб.

Продолжение таблицы 3

1

2

3

4

5

6

Asus X751LAV-TY057

Intel

Intel

6Гб

500Гб

30790 руб.

Asus K555LA

Intel

Intel

6Гб

1000Гб

43990 руб.

Acer Aspire V3-371-52QE

Intel

Intel

8Гб

500Гб

30550 руб.

Asus X751LN

Intel

Intel

8Гб

1000Гб

53990 руб.

Lenovo G710

Intel

nVidia

4Гб

500Гб

31490 руб.

Lenovo G5070 59430326

Intel

nVidia

4Гб

1000Гб

35990 руб.

Acer Nitro VN7-571G-50Z2

Intel

nVidia

6Гб

500Гб

40550 руб.

DEXP Atlas H136

Intel

nVidia

6Гб

1000Гб

25490 руб.

DNS 0802723

Intel

nVidia

8Гб

500Гб

30990 руб.

MSI GE72

Intel

nVidia

8Гб

1000Гб

96990 руб.

4.2 Листинг

domains

name, cpu, gpu = string

ram, hdd = integer

cost = real

predicates

noutbook(name,cpu,gpu,ram,hdd,cost)

clauses

noutbook(«Asus X552EA»,amd,amd,4,500,16990).

noutbook(«Lenovo G5045»,amd,amd,4,1000,22990).

noutbook(«HP Pavilion 15-p104nr»,amd,amd,6,500,30990).

noutbook(«Asus X550DP»,amd,amd,6,1000,31990).

noutbook(«HP Pavilion x360»,amd,amd,8,500,41990).

noutbook(«Acer Aspire E5-551»,amd,amd,8,1000,33890).

noutbook(«DELL Inspiron 5547-8670»,intel,amd,4,500,37990).

noutbook(«Lenovo G5070»,intel,amd,4,1000,24990).

noutbook(«Acer Aspire E1-572»,intel,amd,6,500,26990).

noutbook(«Acer Aspire E1-572G»,intel,amd,6,1000,33990).

noutbook(«DELL Inspiron 5547-8694»,intel,amd,8,500,39990).

noutbook(«DELL Inspiron 5547-9059»,intel,amd,8,1000,37990).

noutbook(«DNS 0802870»,intel,intel,4,500,17990).

noutbook(«Asus B551LA»,intel,intel,4,1000,42990).

noutbook(«Asus X751LAV-TY057»,intel,intel,6,500,30790).

noutbook(«Asus K555LA»,intel,intel,6,1000,43990).

noutbook(«Acer Aspire V3-371-52QE»,intel,intel,8,500,30550).

noutbook(«Asus X751LN»,intel,intel,8,1000,53990).

noutbook(«Lenovo G710»,intel,nvidia,4,500,31490).

noutbook(«Lenovo G5070»,intel,nvidia,4,1000,35990).

noutbook(«Acer Nitro VN7-571G-50Z2»,intel,nvidia,6,500,40550).

noutbook(«DEXP Atlas H136»,intel,nvidia,6,1000,25490).

noutbook(«DNS 0802723»,intel,nvidia,8,500,30990).

noutbook(«MSI GE72»,intel,nvidia,8,1000,96990).

  1.  
    1. Запросы

1) Запрос на существование определенного ноутбука. Предикат: noutbook(«MSI GE72»,intel,nvidia,8,1000,96990).

Рисунок 15 – Результат выполнения запроса на существование ноутбука

2) Запрос на вывод всех ноутбуков с видеочипом nVidia. Предикат: noutbook(X,_,nvidia,_,_,_).

Рисунок 16 – Результат выполнения запроса: вывод всех ноутбуков с видеочипом nVidia

3) Запрос на вывод всех ноутбуков с объемом оперативной памяти 6Гб и объемом жесткого диска 1000Гб. Предикат: noutbook(X,_,_,Y,Z,_), Y=6, Z=1000.

Рисунок 17 – Результат выполнения запроса: вывод всех ноутбуков с объемом оперативной памяти 6Гб и объемом жесткого диска 1000Гб

4) Запрос на вывод ноутбуков стоимостью меньшей 30000 руб. Предикат: noutbook(X,_,_,_,_,Y), Y

Просмотров работы: 1113