Автор: Пользователь скрыл имя, 19 Апреля 2011 в 23:07, лабораторная работа
Разработать программное обеспечение, реализующее оболочку экспертных систем, основанных на продукционной модели представления знаний.
П7:
ЕСЛИ К(вкл.) И Ш (К, ПР) И М (раб.) И О (К, ПР) И (откр.) И (Д, ПР) И (не хар.) И (не зап.) И (Д, ПР)
ТО
УДАЛИТЬ (откр.)) И
ДОБАВИТЬ (
(закр.))
П8:
ЕСЛИ К(вкл.) И Ш (К, ПР) И М (раб.) И О (К, ПР) И (закр.) И (Д, ПР) И (не хар.) И (не зап.) И (Д, ПР)
ТО
УДАЛИТЬ
(не хар.))
И ДОБАВИТЬ (З (хар.))
П9:
ЕСЛИ К(вкл.) И Ш (К, ПР) И М (раб.) И О (К, ПР) И (закр.) И (Д, ПР) И З (хар.) И (не зап.) И (Д, ПР)
ТО
УДАЛИТЬ (
(не зап.))
И ДОБАВИТЬ (ПО (зап.))
П10:
ЕСЛИ К(вкл.) И Ш (К, ПР) И М (раб.) И О (К, ПР) И (закр.) И (Д, ПР) И З (хар.) И ПО (зап.) И (Д, ПР)
ТО
УДАЛИТЬ
(Д, ПР)) И
ДОБАВИТЬ (ЧЗ (Д, ПР))
Составим
базу фактов (данных)
Начальная РБД (t=0)
Ф1: (выкл.)
Ф2: (К, ПР)
Ф3: (не раб.)
Ф4: (К, ПР)
Ф5: (закр.)
Ф6: (Д, ПР)
Ф7: (не хар.)
Ф8: (не зап.)
Ф9: (Д,
ПР))
Применяем правило П1:
РБД (t=1)
Ф2: (К, ПР)
Ф3: (не раб.)
Ф4: (К, ПР)
Ф5: (закр.)
Ф6: (Д, ПР)
Ф7: (не хар.)
Ф8: (не зап.)
Ф9: (Д, ПР)
Ф10: К(вкл.)
Применяем правило П2:
РБД (t=2)
Ф3: (не раб.)
Ф4: (К, ПР)
Ф5: (закр.)
Ф6: (Д, ПР)
Ф7: (не хар.)
Ф8: (не зап.)
Ф9: (Д, ПР)
Ф10: К(вкл.)
Ф11: Ш (К, ПР)
Применяем правило П3:
РБД (t=3)
Ф4: (К, ПР)
Ф5: (закр.)
Ф6: (Д, ПР)
Ф7: (не хар.)
Ф8: (не зап.)
Ф9: (Д, ПР)
Ф10: К(вкл.)
Ф11: (Ш (К, ПР)
Ф12: (М (раб.)
Применяем правило П4:
РБД (t=4)
Ф5: (закр.)
Ф6: (Д, ПР)
Ф7: (не хар.)
Ф8: (не зап.)
Ф9: (Д, ПР)
Ф10: К(вкл.)
Ф11: (Ш (К, ПР)
Ф12: (М (раб.)
Ф13: О (К, ПР)
Применяем правило П5:
РБД (t=5)
Ф6: (Д, ПР)
Ф7: (не хар.)
Ф8: (не зап.)
Ф9: (Д, ПР)
Ф10: К(вкл.)
Ф11: (Ш (К, ПР)
Ф12: (М (раб.)
Ф13: О (К, ПР)
Ф14:
(откр.)
Применяем правило П6:
РБД (t=6)
Ф7: (не хар.)
Ф8: (не зап.)
Ф9: (Д, ПР)
Ф10: К(вкл.)
Ф11: (Ш (К, ПР)
Ф12: (М (раб.)
Ф13: О (К, ПР)
Ф14: (откр.)
Ф15:
(Д, ПР)
Применяем правило П7:
РБД (t=7)
Ф7: (не хар.)
Ф8: (не зап.)
Ф9: (Д, ПР)
Ф10: К(вкл.)
Ф11: (Ш (К, ПР)
Ф12: (М (раб.)
Ф13: О (К, ПР)
Ф15: (Д, ПР)
Ф16:
(закр.)
Применяем правило П8:
РБД (t=8)
Ф8: (не зап.)
Ф9: (Д, ПР)
Ф10: К(вкл.)
Ф11: (Ш (К, ПР)
Ф12: (М (раб.)
Ф13: О (К, ПР)
Ф15: (Д, ПР)
Ф16: (закр.)
Ф17: З (хар.)
Применяем правило П9:
РБД (t=9)
Ф9: (Д, ПР)
Ф10: К(вкл.)
Ф11: (Ш (К, ПР)
Ф12: (М (раб.)
Ф13: О (К, ПР)
Ф15: (Д, ПР)
Ф16: (закр.)
Ф17: З (хар.)
Ф18: ПО (зап.)
Применяем правило П10:
Финальная РБД (t=10)
Ф10: К(вкл.)
Ф11: (Ш (К, ПР)
Ф12: (М (раб.)
Ф13: О (К, ПР)
Ф15: (Д, ПР)
Ф16: (закр.)
Ф17: З (хар.)
Ф18: ПО (зап.)
Ф19: ЧЗ (Д,
ПР)
ПРАКТИЧЕСКАЯ ЧАСТЬ
Функция private void parse_rules(String[] buf, String[] buf3) в качестве аргументов получает массивы buf и buf3, содержащие считанные строки загруженных файлов. Она производит формирование массивов условий правил conditions , результатов правил res_obj и res_stat , условий и выводов диагностики diag_cond и diag_res .
for (int i = 0; i < n3 && buf3[i] != ""; ++i)
{
int esli_index3 = buf3[i].IndexOf("ЕСЛИ");
int to_index3 = buf3[i].IndexOf("ТО");
diag_cond[i] = buf3[i].Substring(esli_index3 + 5, to_index3 - esli_index3 - 5);
diag_res[i] = buf3[i].Substring(to_index3 + 3).Trim();
}
Функция Vivod(res_obj, res_stat, conditions, n,
J) получает массивы
объектов результата правил, статусов
объектов результата, условий правил,
количество правил, вспомагательный массив,
содержащий количество условий каждого
правила.
private void Vivod(String[] res_obj, String[] res_stat, String[][] conditions, int n, int[] J)
Информация о работе Построение продукционной модели заданной предметной области