Экспертная система AutoExpert. Исходные данные Разработку любой системы нужно начинать с выделения основных сущностей. Разработку любой системы нужно.

Презентация:



Advertisements
Похожие презентации
Семантический анализ КC-грамматики, с помощью которых описывают синтаксис языков программирования, не позволяют задавать контекстные условия (КУ), имеющиеся.
Advertisements

Диагностика автомобиля. Уровень "ЭКСПЕРТ >> Электрооборудование >> Разряд аккумуляторной батареи (1/2) Основные положения Последовательность поиска неисправностей.
1 Программирование на языке Паскаль Тема 3. Сложные условия © К.Ю. Поляков,
Тема урока: Система зажигания. Разработал: мастер п\о Поляков Д.Н.
Пример задачи с решением C4 (высокий уровень, время – 60 мин)
Поиск информации Задача поиска: где в заданной совокупности данных находится элемент, обладающий заданным свойством? Большинство задач поиска сводится.
1 Программирование на языке Паскаль Тема 3. Сложные условия © К.Ю. Поляков,
Программирование ветвлений на Паскале. Оператор ветвления или условный оператор if then else if - " если ", then - " то ", else - " иначе "
Прошедшее время В английском языке существует следующие основные средства для описания действий, событий и состояний, которые имели место в прошлом: время.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
M-чередующаяся декомпозиция Лекция 10. Нечетная декомпозиция Теорема 9.7 (Lovász [1972] ) Граф является фактор-критическим тогда и только тогда, когда.
Условный оператор Полная форма Неполная форма If условие Then оператор_1 If условие Then оператор Else оператор_2 Пример: Построить алгоритм вычисления.
Аккумулятор - это источник электрического тока, действие которого основано на химических реакциях. В отличие от обычного гальванического элемента аккумулятор.
Оператор ветвления. Для реализации ветвления в программе используют условный оператор (оператор ветвления). Условный оператор в полной форме записывается.
COMMON STATE EXAM Part I A1-A4 МОУ СОШ 5 Миранова Галина Сергеевна.
1 Программирование на языке Паскаль Сложные условия.
Look at the pictures and ask your classmates questions. Let them answer your questions. Example: - Have you ever been to London? - Yes, I have. I have.
ТЕМА: «ПРОВЕРКА УСЛОВИЯ» 8 – 9 класс Логунова Наталия Борисовна учитель информатики и ИКТ высшей категории МОСКВА, 2012.
ОСОБЕННОСТИ ДИАГНОСТИКИ И ОБСЛУЖИВАНИЯ ЭЛЕКТРОННО-УПРАВЛЯЕМОЙ ДРОССЕЛЬНОЙ ЗАСЛОНКИ.
Оператор ветвления (условный оператор) позволяет изменить порядок выполнения операторов в зависимости от выполнения некоторого условия (истинности логического.
Транксрипт:

Экспертная система AutoExpert

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

Эмпирические правила Двигатель всегда находится в трех состояниях: работать нормально, не заводиться, или работать не удовлетворительно. Двигатель всегда находится в трех состояниях: работать нормально, не заводиться, или работать не удовлетворительно. Если двигатель работает нормально, то это означает, что он нормально вращается, система зажигания и аккумулятор находятся в норме и никакого ремонта не требуется. Если двигатель работает нормально, то это означает, что он нормально вращается, система зажигания и аккумулятор находятся в норме и никакого ремонта не требуется.

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

Если двигатель не заводится, но вращается, нужно проверить наличие топлива. Если топлива нет то, …. Если двигатель не заводится, но вращается, нужно проверить наличие топлива. Если топлива нет то, …. Если двигатель не заводится, нужно также проверить, заряжен ли аккумулятор, если нет, то его следует зарядить. Если двигатель не заводится, нужно также проверить, заряжен ли аккумулятор, если нет, то его следует зарядить. Если двигатель не заводится, и существует вероятность плохой искри в системе зажигания, то необходимо проверить контакты. Контакты могут быть в одном из трех состояний чистые, опаленные и грязные, в случае опаленных контактов их необходимо заменить, в случае если контакты грязные, их достаточно просто почистить. Если двигатель не заводится, и существует вероятность плохой искри в системе зажигания, то необходимо проверить контакты. Контакты могут быть в одном из трех состояний чистые, опаленные и грязные, в случае опаленных контактов их необходимо заменить, в случае если контакты грязные, их достаточно просто почистить.

Если двигатель не заводится, искры нет и аккумулятор заряжен, то нужно проверить катушку зажигания на электрическую проводимость. В случае если ток не проходит через катушку, то ее необходимо заме нить. Если катушка зажигания в порядке, значит необходимо заменить, распределительные провода. Если двигатель не заводится, искры нет и аккумулятор заряжен, то нужно проверить катушку зажигания на электрическую проводимость. В случае если ток не проходит через катушку, то ее необходимо заме нить. Если катушка зажигания в порядке, значит необходимо заменить, распределительные провода.

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

Состояние машины Состояние машины working-state engine unsatisfactoryworking-state engine unsatisfactory working-state engine normal working-state engine normal working-state engine does-not-startworking-state engine does-not-start Состояние двигателя Состояние двигателя rotation-state engine rotatesrotation-state engine rotates rotation-state engine does-not-rotaterotation-state engine does-not-rotate Факты описывающие состояние автомобиля

Система зажигания Система зажигания spark-state engine normalspark-state engine normal spark-state engine does-not-sparkspark-state engine does-not-spark spark-state engine irregular-sparkspark-state engine irregular-spark Система питания Система питания charge-state battery chargedcharge-state battery charged charge-state battery deadcharge-state battery dead

Факты описывающие рекомендации по ремонту repair "No repair needed. " repair "No repair needed. " repair "Clean the fuel line." repair "Clean the fuel line." repair "Point gap adjustment." repair "Point gap adjustment." repair "Add gas." repair "Add gas." repair "Charge the battery." repair "Charge the battery."

Функция ask-question (deffunction ask-question (?question $?allowed-values) (printout t ?question) (printout t ?question) (bind ?answer (read)) (bind ?answer (read)) (if (lexemep ?answer) (if (lexemep ?answer) then (bind ?answer (lowcase ?answer))) then (bind ?answer (lowcase ?answer))) (while (not (member ?answer ?allowed-values)) do (while (not (member ?answer ?allowed-values)) do (printout t ?question) (printout t ?question) (bind ?answer (read)) (bind ?answer (read)) (if (lexemep ?answer) (if (lexemep ?answer) then (bind ?answer (lowcase ?answer)))) then (bind ?answer (lowcase ?answer)))) ?answer) ?answer)

Функция yes-or-no-p (deffunction yes-or-no-p (?question) (bind ?response (ask-question ?question yes no y n)) (bind ?response (ask-question ?question yes no y n)) (if (or (eq ?response yes) (eq ?response y)) (if (or (eq ?response yes) (eq ?response y)) then TRUE then TRUE else FALSE)) else FALSE))

Правило determine-engine-state (defrule determine-engine-state "" (not (working-state engine ?)) (not (working-state engine ?)) (not (repair ?)) (not (repair ?)) => => (if (yes-or-no-p "Does the engine start (yes/no)? ") (if (yes-or-no-p "Does the engine start (yes/no)? ") then then (if (yes-or-no-p "Does the engine run normally (yes/no)? ") (if (yes-or-no-p "Does the engine run normally (yes/no)? ") then (assert (working-state engine normal)) then (assert (working-state engine normal)) else (assert (working-state engine unsatisfactory))) else (assert (working-state engine unsatisfactory))) else else (assert (working-state engine does-not-start)))) (assert (working-state engine does-not-start))))

Правило determine-rotation-stat (defrule determine-rotation-state "" (defrule determine-rotation-state "" (working-state engine does-not-start) (working-state engine does-not-start) (not (rotation-state engine ?)) (not (rotation-state engine ?)) (not (repair ?)) (not (repair ?)) => => (if (yes-or-no-p "Does the engine rotate (yes/no)? ") (if (yes-or-no-p "Does the engine rotate (yes/no)? ") then then (assert (rotation-state engine rotates)) (assert (rotation-state engine rotates)) (assert (spark-state engine irregular-spark)) (assert (spark-state engine irregular-spark)) else else (assert (rotation-state engine does-not-rotate)) (assert (rotation-state engine does-not-rotate)) (assert (spark-state engine does-not-spark)))) (assert (spark-state engine does-not-spark))))

Правило no-repairs (defrule no-repairs "" (defrule no-repairs "" (declare (salience -10)) (declare (salience -10)) (not (repair ?)) (not (repair ?)) => => (assert (repair "Take your car to a mechanic."))) (assert (repair "Take your car to a mechanic.")))