Здавалка
Главная | Обратная связь

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

Контрольная работа

По курсу «Системы искусственного интеллекта. Часть 2»

 

Выполнил:

студент гр. АСУ-5з,

Пленкин Ю.Г.

 

Проверила:

Доцент

Осипова И.А

 

 

Екатеринбург


Содержание

Введение........................................................................................................................................ 3

Разработка экспертной системы................................................................................................. 4

Листинг программы....................................................................................................................... 6

Список используемых источников............................................................................................ 12


Введение

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

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

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

Входные данные системы:

- цели использования персонального компьютера;

- пределы стоимости выбрано конфигурации;

- фирма-изготовитель комплектующих;

- мобильность.

Выходные данные включают:

- тип комплектации;

- ценовая категория;

- выводы вспомогательных сообщений;

- рекомендации и пример комплектации ПК.

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

 

Данная экспертная система будет иметь 4 входные переменные:

1) Мобильность – важнейший параметр данной ЭС, так как он является определяющим в выборе 2 направлений: мобильные и стационарные.

2) Цели использования ПК – определяющий параметр, разделяющий ЭС по направлениям использования персонального компьютера, а также по его стоимости (офисные ПК дешевле чем ПК, предназначенные для мультимедийных приложений).

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

4) Фирма-изготовитель – параметр, определяющий предпочтения пользователя в сторону той или иной фирмы-изготовителя комплектующих или мобильных систем.

Обозначения переменных:

mobile – мобильность. Имеет 2 значения: 0 – нет (стационарный ПК), 1 – да (мобильный ПК);

firma – фирма-изготовитель. Имеет 5 параметров: 1 – Acer, 2 – ASUS, 3 – Samsung, 4 – Gigabyte, 5 - INTEL;

znach – назначение выбираемого персонального компьютера. Имеет 2 параметра: 1 – офисные ПК, 2 – мультимедийные приложения;

cash – максимальная стоимость, которую может потратить пользователь на выбранный ПК (минимальная стоимость ПК по данному параметру – 6000, максимальная - 60000).

 

Диаграмма зависимостей переменных:

Рис. 1 – Диаграмма зависимостей переменных.


Листинг программы

Исходный код экспертной системы имеет вид:

(defrule data-input

(initial-fact)

=>

(printout t crlf " Основное назначение: ")

(printout t crlf " 1 - Офисные ")

(printout t crlf " 2 - Мультимедийные приложения и игры " crlf)

(bind ?znach (read))

(assert (znach ?znach))

 

(printout t crlf " Мобильность (1 - да; 0 - нет): ")

(bind ?mobile (read))

(assert (mobile ?mobile))

 

(printout t crlf " Фирма-изготовитель: ")

(printout t crlf " 1 - Acer ")

(printout t crlf " 2 - ASUS ")

(printout t crlf " 3 - Samsung ")

(printout t crlf " 4 - GigaByte ")

(printout t crlf " 5 - INTEL " crlf)

(bind ?firma (read))

(assert (firma ?firma))

 

(printout t crlf "Максимальная стоимость ПК: ")

(bind ?cash (read))

(assert (cash ?cash))

)

 

(defrule R1

(mobile ?mobile)

(firma ?firma)

(test (and (= ?mobile 1)(= ?firma 1)) )

=>

(printout t crlf crlf "Вы выбрали раздел мобильных ПК (ноутбуки) фирмы Acer" crlf)

(assert (type "Мобильные ПК Acer"))

(assert (typecnst 1)))

(defrule R2

(mobile ?mobile)

(firma ?firma)

(test (and (= ?mobile 1)(= ?firma 2)) )

=>

(printout t crlf crlf "Вы выбрали раздел мобильных ПК (ноутбуки) фирмы ASUS " crlf)

(assert (type "Мобильные ПК ASUS"))

(assert (typecnst 2)))

(defrule R3

(mobile ?mobile)

(firma ?firma)

(test (and (= ?mobile 1)(= ?firma 3)) )

=>

(printout t crlf crlf "Вы выбрали раздел мобильных ПК (ноутбуки) фирмы Samsung " crlf)

(assert (type "Мобильные ПК Samsung"))

(assert (typecnst 3)))

(defrule R4

(mobile ?mobile)

(firma ?firma)

(test (and (= ?mobile 1)(> ?firma 3)) )

=>

(printout t crlf crlf "Мобильные ПК данной фирмы не выпускаются. Выберите другую фирму-изготовитель для мобильного ПК" crlf)

(assert (config "Выберите другую фирму-изготовитель для мобильного ПК")))

(defrule R5

(mobile ?mobile)

(firma ?firma)

(test (and (= ?mobile 0)(and (= ?firma 1)(= ?firma 3))) )

=>

(printout t crlf crlf "Стационарные ПК на основе мат.плат данной фирмы не выпускаются. Выберите другую фирму-изготовитель для стационарного ПК" crlf)

(assert (config "Выберите другую фирму-изготовитель для стационарного ПК")))

(defrule R6

(mobile ?mobile)

(firma ?firma)

(test (and (= ?mobile 0)(= ?firma 2)) )

=>

(printout t crlf crlf "Вы выбрали раздел стационарных ПК на основе мат.плат фирмы ASUS " crlf)

(assert (type "Стационарные ПК ASUS"))

(assert (typecnst 4)))

(defrule R7

(mobile ?mobile)

(firma ?firma)

(test (and (= ?mobile 0)(= ?firma 4)) )

=>

(printout t crlf crlf "Вы выбрали раздел стационарных ПК на основе мат.плат фирмы GigaByte " crlf)

(assert (type "Стационарные ПК GigaByte"))

(assert (typecnst 5)))

(defrule R8

(mobile ?mobile)

(firma ?firma)

(test (and (= ?mobile 0)(= ?firma 5)) )

=>

(printout t crlf crlf "Вы выбрали раздел стационарных ПК на основе мат.плат фирмы INTEL " crlf)

(assert (type "Стационарные ПК INTEL"))

(assert (typecnst 6)))

(defrule R9

(znach ?znach)

(cash ?cash)

(test (and (= ?znach 1)(and (>= ?cash 6000)(<= ?cash 21000))) )

=>

(printout t crlf crlf "Дешевый офисный ПК" crlf)

(assert (money "Низкая ценовая категория"))

(assert (moneycnst 1)))

(defrule R10

(znach ?znach)

(cash ?cash)

(test (and (> ?znach 1)(and (> ?cash 21000)(<= ?cash 30000))) )

=>

(printout t crlf crlf "Хороший ПК" crlf)

(assert (money "Средняя ценовая категория"))

(assert (moneycnst 2)))

(defrule R11

(znach ?znach)

(cash ?cash)

(test (and (= ?znach 2)(and (>= ?cash 30000)(<= ?cash 60000))) )

=>

(printout t crlf crlf "Хороший мультимедийный ПК" crlf)

(assert (money "Высокая ценовая категория"))

(assert (moneycnst 3)))

(defrule R12

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 1)(= ?typecnst 1)) )

=>

(printout t crlf crlf "Вы выбрали мобильный ПК Acer низкой ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: Acer eMachines E525-902G16Mi <LX.N740C.003> CM900(2.2)/2048/160/DVD-RW/WiFi/Linux/15.6/2.53 кг." crlf)

(assert (config "Мобильный ПК Acer дешевый")))

(defrule R13

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 1)(= ?typecnst 2)) )

=>

(printout t crlf crlf "Вы выбрали мобильный ПК ASUS низкой ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: ASUS Eee PC 1005P <90OA1L-D42223-987E50AQ> Black Atom N450(1.66)/2048/160/WiFi/cam/Win7St/10.1/1.27 кг." crlf)

(assert (config "Мобильный ПК ASUS дешевый")))

(defrule R14

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 1)(= ?typecnst 3)) )

=>

(printout t crlf crlf "Вы выбрали мобильный ПК Samsung низкой ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: Samsung N150 <NP-N150-JA01> Atom N450(1.66)/1024/250/WiFi/BT/cam/Win7St/10.1/1.16 кг." crlf)

(assert (config "Мобильный ПК Samsung дешевый")))

(defrule R15

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 1)(= ?typecnst 4)) )

=>

(printout t crlf crlf "Вы выбрали стационарный ПК ASUS низкой ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: Компьютер Asus Eee Box B1006 (90PE24C2112101A39CHZ) Black. Тип процессора: Intel Atom. Модель процессора: N270. Оперативная память: 2048 Мб. Объём жесткого диска: 160 Гб. Беспроводная связь WiFi. Операционная система Microsoft Windows Vista Home Basic ." crlf)

(assert (config "Стационарный ПК ASUS дешевый")))

(defrule R16

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 1)(= ?typecnst 5)) )

=>

(printout t crlf crlf "Вы выбрали стационарные ПК Gigabyte низкой ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: Gigabyte G-MAX <SA4LB v2.0> (Socket478 <i845GL>, SVGA, LAN)." crlf)

(assert (config "Стационарный ПК GigaByte дешевый")))

(defrule R17

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 1)(= ?typecnst 6)) )

=>

(printout t crlf crlf "Вы выбрали стационарные ПК INTEL низкой ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: Intel® Core™ i5 750 2,66 GHz, LGA1155/8MB-1333MHz,1Tb SATAII,4096Mb DDRIII,DVD-RW,Video PCI-E Radeon HD 5870 1024 mb DDR5,Card reader,БП 550W,Lan 10/100/1000." crlf)

(assert (config "Стационарный ПК INTEL дешевый")))

(defrule R18

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 2)(= ?typecnst 1)) )

=>

(printout t crlf crlf "Вы выбрали мобильный ПК Acer средней ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: Acer Extensa 5635Z-442G16Mi <LX.EDV0C.045>T4400(2.2)/2048/160/DVD-RW/WiFi/cam/Linux/15.6/2.36 кг." crlf)

(assert (config "Мобильный ПК Acer не дешевый")))

(defrule R19

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 2)(= ?typecnst 2)) )

=>

(printout t crlf crlf "Вы выбрали мобильный ПК ASUS средней ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: ASUS K70AF <90NZKA2-10W124-5RD13AY> Turion X2 M520(2.3)/3072/320(5400)/DVD-RW/WiFi/cam/Win7HB/17.3/3.24 кг." crlf)

(assert (config "Мобильный ПК ASUS не дешевый")))

(defrule R20

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 2)(= ?typecnst 3)) )

=>

(printout t crlf crlf "Вы выбрали мобильный ПК Samsung средней ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: Samsung R430 <NP-R430-JB01> i3 330M(2.13)/3072/320/DVD-RW/WiFi/cam/Win7HB/14/2.14 кг." crlf)

(assert (config "Мобильный ПК Samsung не дешевый")))

(defrule R21

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 2)(= ?typecnst 4)) )

=>

(printout t crlf crlf "Вы выбрали стационарный ПК ASUS средней ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: ASUS Eee TOP ET2001B <90PE3B-A11222-57049C0Q> Black Atom N270(1.6)/1024/160/DVD-RW/WiFi/WinXP/19.6." crlf)

(assert (config "Стационарный ПК ASUS не дешевый")))

(defrule R22

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 2)(= ?typecnst 5)) )

=>

(printout t crlf crlf "Вы выбрали стационарный ПК GigaByte средней ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: TA 3 (1.0) GIGABYTE™small form factor. VIA C3 800MHz. Gigabyte VIA CLE266 / 8235 chipset. 40W Power supply. Support DOM (Disk On Module), ATA Disk Module (optional). Front USB 2.0 port, Earphone. MIC IN. Dimension: 64(D) x 213 (W) x 234(H) mm." crlf)

(assert (config "Стационарный ПК GigaByte не дешевый")))

(defrule R23

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 2)(= ?typecnst 6)) )

=>

(printout t crlf crlf "Вы выбрали стационарный ПК INTEL средней ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: Intel Core 2 Quad Q9400 2,66 GHz, LGA775/6MB-1333MHz,500 Gb,2048Mb DDRII,DVD-RW,Video PCI-E ATI Radeon HD5770 1024 mb,Card reader,Lan 10/100/1000" crlf)

(assert (config "Стационарный ПК INTEL не дешевый")))

(defrule R24

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 3)(= ?typecnst 1)) )

=>

(printout t crlf crlf "Вы выбрали мобильный ПК Acer высокой ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: Acer Aspire 5942G-724G64Bi <LX.PMN02.032> i7 720QM(1.6)/4096/640/Blu-Ray/WiFi/BT/cam/Win7HP/15.6/3.07 кг" crlf)

(assert (config "Мобильный ПК Acer дорогой")))

(defrule R25

(typecnst ?typecnst)

(money ?money)

(test (and (= ?moneycnst 3)(= ?typecnst 2)) )

=>

(printout t crlf crlf "Вы выбрали мобильный ПК ASUS высокой ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: ASUS G60VX <90NV3A-7F9282-1VDC306Y> P8700(2.53)/4096/500(5400)/DVD-RW/WiFi/BT/cam/Win7HP/16/3.28 кг" crlf)

(assert (config "Мобильный ПК ASUS дорогой")))

(defrule R26

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 3)(= ?typecnst 3)) )

=>

(printout t crlf crlf "Вы выбрали мобильный ПК Samsung высокой ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: Samsung R580 <NP-R580-JS08> i7 620M(2.66)/4096/320/DVD-RW/GbLAN/WiFi/BT/cam/Win7HP/15.6/2.54 кг" crlf)

(assert (config "Мобильный ПК Samsung дорогой")))

(defrule R27

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 3)(= ?typecnst 4)) )

=>

(printout t crlf crlf "Вы выбрали стационарный ПК ASUS высокой ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: ASUS Z8PE-D18 (RTL) Dual LGA1366 <i5520> PCI-E, SVGA+2xGbLAN SATA RAID E-ATX 18DDR-III" crlf)

(assert (config "Стационарный ПК ASUS дорогой")))

(defrule R28

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 3)(= ?typecnst 5)) )

=>

(printout t crlf crlf "Вы выбрали стационарный ПК GigaByte высокой ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: STA/C GIGABYTE™ ultra slim size Thin Client solution. VIA C7 1.0G/1.5Ghz FANLESS processor with VIA CN700 chipset. Low power consumption. Quiet Fan Less Design. Easy installation design with flexible specification. Best Cost & Performance." crlf)

(assert (config "Стационарный ПК GigaByte дорогой")))

(defrule R29

(typecnst ?typecnst)

(moneycnst ?moneycnst)

(test (and (= ?moneycnst 3)(= ?typecnst 6)) )

=>

(printout t crlf crlf "Вы выбрали стационарный ПК INTEL высокой ценовой категории." crlf)

(printout t crlf crlf "Варианты ПК: Intel® Core™ i7 920 2,66 GHz, LGA1366/8MB-1066MHz BX80601920,1Tb,4096Mb DDRIII,DVD-RW,Video PCI-E Radeon HD 5870 1024mb,Card reader,550W,Lan 10/100/1000,Wi-fi" crlf)

(assert (config "Стационарный ПК INTEL дорогой")))

Введя необходимые входные параметры система выдаст пример комплектации ПК.

Рис.2 – Пример работы экспертной системы.






©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.