Приветствую Вас, Гость
Урок 61. Экспертные системы распознавания химических веществ

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

1 этап. Описательная информационная модель
Таблица 5.1

2 этап. Формализованная модель
Как видно из описательной модели, нужно оценить 4 критерия по каждому из 6 объектов. Наиболее удобно это будет сделать, если каждому из критериев присвоить некий числовой код, а объект определять по сумме числовых кодов критериев.
 
1 критерий - внешний вид. Присвоим каждому объекту по этому критерию значения, например, от 10 до 60 с шагом 10
Белая кристаллическая масса или гранулы - 10
Крупные бесцветные кристаллы - 20
Мелкие светло-серые кристаллы - 30
Светло-серый порошок или гранулы - 40
Розовые кристаллы - 50
Бесцветные кристаллы - 60
Однако только по внешнему виду невозможно определить, является ли вещество удобрением. Например, поваренная соль тоже выглядит как бесцветные кристаллы. Есть необходимость проверить взаимодействие объекта с химически активными веществами.

2 критерий - взаимодействие с соляной кислотой H2SO4. Здесь можно выделить всего два критерия: взаимодействует или нет. Присвоим этому критерию значения от 11 до 12
Выделяется бурый газ - 11
Не реагирует - 12

3 критерий - взаимодействие с BaCl2. Присвоим значения от 21 до 23
Небольшое помутнение раствора - 21
Выпадает белый осадок - 22
Не реагирует  - 23

4 критерий - взаимодействие с раствором щелочи. Пусть здесь значения переменной будут от 31 до 32
Ощущается запах аммиака - 31
Не реагирует - 32

Теперь можно суммировать критерии. Получаем следующие результаты:
75 - аммиачная селитра
84 - натриевая селитра
95 - сульфат аммония
105 - суперфосфат
117 - сильвинит
127 - калийная соль. 

3 этап. Компьютерная модель

Создадим программу в Gambas. 
Графический интерфейс оформите, как на рисунке.
Основной объект RadioButton, объединенные в группы. Чтобы объединить несколько RadioButton в группу, используйте на закладке Contayner объект .....Сначала выводим объект ..., затем на нем размещаем кнопки.
1 группа:
RadioButton1 - Белая кристаллическая масса или гранулы
RadioButton2 -  Крупные бесцветные кристаллы
RadioButton3 - Мелкие светло-серые кристаллы
RadioButton4 - Светло-серый порошок или гранулы
RadioButton5 - Розовые кристаллы
RadioButton6 - Бесцветные кристаллы
2 группа:
RadioButton7 - Выделяется бурый газ
RadioButton8 - Не реагирует
3 группа:
RadioButton9 - Небольшое помутнение раствора
RadioButton10 - Выпадает белый осадок
RadioButton11 - Не реагирует
4 группа:
RadioButton12 -  Ощущается запах аммиака >
RadioButton13 - Не реагирует

Результат будет выводится в текстовом окне TextBox1. Программа запускается кликом по кнопке Button1.

В программе будем использовать два события:

 1. RadioButton1_Click()    клик по радиокнопке

 2.  Button1_Click()            клик по кнопке
Оба события создаются двойным кликом по объекту.

Код программы
 ' Gambas class file

Public vid As Byte
Public h2so4 As Byte
Public baCl2 As Byte
Public sol As Byte
Public udobr As Byte

 Публикуем переменные:
vid - внешний вид
h2so4 - взаимодействие с серной кислотой
baCl2 - взаимодействие с солью
sol - взаимодействие с щелочью
udobr - сумма критериев, определяющая удобрение
 Public Sub _new()

End


Public Sub Form_Open()


End
 
 Public Sub RadioButton1_Click()
vid = 10
End
Присваиваем значения переменным, в зависимости от выбранной RalioButton
 Public Sub RadioButton2_Click()
 vid = 20
End
 
 Public Sub RadioButton3_Click()
  vid = 30
End
 
 Public Sub RadioButton4_Click()
 vid = 40
End
 
 Public Sub RadioButton5_Click()
 vid = 50
End
 
 Public Sub RadioButton6_Click()
 vid = 60
End
 
 Public Sub RadioButton7_Click()
  h2so4 = 11
End
 
 Public Sub RadioButton8_Click()
  h2so4 = 12
End
 
 Public Sub RadioButton9_Click()
   baCl2 = 21
End
 
 Public Sub RadioButton10_Click()
   baCl2 = 22
End
 
 Public Sub RadioButton11_Click()
   baCl2 = 23
End
 
 Public Sub RadioButton12_Click()
  sol = 31
End
 
 Public Sub RadioButton13_Click()
  sol = 32
End
 
 Public Sub Button1_Click()
udobr = vid + h2so4 + baCl2 + sol
  
  If udobr = 75 Then TextBox1.Text = "Аммиачная селитра"
  
  If udobr = 84 Then TextBox1.Text = "Натриевая селитра"

  If udobr = 95 Then TextBox1.Text = "Сульфат аммония"

  If udobr = 105 Then TextBox1.Text = "Суперфосфат"

  If udobr = 117 Then TextBox1.Text = "Сильвинит"

  If udobr = 127 Then TextBox1.Text = "Калийная соль"

  
End
 Суммируем значения переменных и сравниваем их с числовым кодом удобрения

4 этап: компьютерный эксперимент
Проверим работоспособность программы. Для этого воспользуемся таблицей 5.1 в учебнике. Выбираем нужные критерии и смотрим результат. Внимание! Код требует клика по радиокнопке, поэтому даже если выделен верный критерий, все равно нужно обязательно сделать щелчок по нужной кнопке!!! Иначе программа не работает.