Экспертные системы распознавания химических веществ.
На уроках химии мы решали задачи по распознаванию химических веществ посредством последовательного проведения различного рода химических реакций. Рассмотрим в качестве примера решение подобной задачи с помощью компьютера.
Постановка задачи:
Предположим, нам даны в трех неподписанных пробирках следующие вещества:
· Хлорид натрия – NaCl;
· Сульфат натрия – Na2SO4;
· Карбонат натрия – Na2CO3
В качестве реактивов используем соляную кислоту – HCl, хлорид бария – BaCl2 и нитрат серебра – AgNO3.
Тактика решения задачи должна заключаться в распознавании веществ при проведении минимального количества реакций. Поэтому пробирку с уже определенным веществом из дальнейших опытов будем исключать.
Описательная модель:
Возьмем за основу следующие положения:
· Кислота не вступает в реакцию с солью той же кислоты, поэтому соляная кислота не реагирует с хлоридом натрия;
· Сильная летучая кислота не вытесняет из соли сильную нелетучую кислоту, поэтому соляная кислота не вступает в реакцию с сульфатом натрия;
· Сильная кислота всегда вытесняет слабую из ее соли, поэтому в результате реакции карбоната натрия с соляной кислотой образуется хлорид натрия и угольная кислота, которая сразу же распадается на углекислый газ и воду. Признаком реакции является выделение газа;
· Две соли одной кислоты не вступают в реакцию, поэтому хлорид бария не реагирует с хлоридом натрия;
· Две соли вступают во взаимодействие, если результате реакции выпадает нерастворимый осадок. Белый нерастворимый осадок – сульфат бария - является результатом реакции хлорида бария и сульфата натрия;
· При взаимодействии нитрата серебра с хлоридом натрия образуется нерастворимое вещество хлорид серебра, которое выпадает в белый осадок – результат взаимодействия двух солей
Сейчас нами была составлена описательная модель экспертной системы.
Формальная модель:
Формализуем данную модель с помощью таблицы (табличная модель информационной системы):
|
NaCl |
Na2SO4 |
Na2CO3 |
HCl |
нет реакции |
нет реакции |
выделение газа |
BaCl2 |
нет реакции |
белый осадок |
- |
AgNO3 |
белый осадок |
- |
- |
Рассмотрим компьютерную программу, которая, воссоздавая модель лабораторных условий, поможет нам решить предложенную задачу. Предлагаемая программа создана в среде программирования Borland Delphi на языке программирования Object Pascal.
Запустиvфайл chimiya.exe
v Проведем первый опыт. Реактив – HCl.
§ Щелкнем мышкой в окошке поля «Введите номер пробирки». В поле установится курсор. Введем с клавиатуры число 1.
§ Нажмем кнопку «Реакция» в программной области «Опыт 1». Оценим результат.
§ Введем в окошко число 2. Нажмем ту же кнопку «Реакция». Оценим результат.
§ Введем в окошко число 3. Еще раз нажмем ту же кнопку «Реакция». Оценим и запишем результат.
v Проведем второй опыт. Реактив – BaCl2.
§ Введем в окошко число 1. Нажмем кнопку «Реакция» в программной области «Опыт 2». Оценим результат.
§ Введем в окошко число 3. Нажмем ту же кнопку «Реакция». Оценим и запишем результат.
v Проведем третий опыт. Поскольку два вещества (пробирки 2,3) мы уже выделили, нам необходимо доказать, что в пробирке 1 находится третье данное вещество – нитрат серебра.
§ Введем число 1 в окошечко. Нажмем кнопку «Реакция» в программной области «Опыт 3». Оценим и запишем результат.
Исследованная нами модель является примером простейшей экспертной системы с очень простой структурой. Существует достаточно большое количество профессиональных экспертных систем, способных проводить серьезные исследования в различных предметных областях, делать логические выводы, проводить диагностику и пр. Использование таких программ значительно облегчает работу специалистов, порой заменяя целые экспертные советы.