Построение продукционной модели заданной предметной области

Автор: Пользователь скрыл имя, 19 Апреля 2011 в 23:07, лабораторная работа

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

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

Файлы: 1 файл

ЛАБА 2.docx

— 328.46 Кб (Скачать)

П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)

Информация о работе Построение продукционной модели заданной предметной области