Технология разработки экспертных систем, стадии разработки прототипа экспертной системы — КиберПедия 

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

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Технология разработки экспертных систем, стадии разработки прототипа экспертной системы

2020-12-06 145
Технология разработки экспертных систем, стадии разработки прототипа экспертной системы 0.00 из 5.00 0 оценок
Заказать работу

Идентификация проблемы. Уточняется задача, планируется ход разработки прототипа экспертной системы, определяются: необходимые ресурсы (время, люди, ЭВМ и т.д.), источники знаний (книги, дополнительные эксперты, методики), имеющиеся аналогичные экспертные системы, цели (распространение опыта, автоматизация рутинных действий и др.), классы решаемых задач и т.д.

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

Структурирование или концептуализация знаний. Выявляется структура полученных знаний о предметной области, т.е. определяются: терминология, список основных понятий и их атрибутов, отношения между понятиями, структура входной и выходной информации, стратегия принятия решений, ограничения стратегий и т.д. Концептуализация знаний - разработка неформального описания знаний о предметной области в виде графа, таблицы, диаграммы или текста, которое отражает основные концепции и взаимосвязи между понятиями предметной области.

Формализация. Строится формализованное представление концепций предметной области на основе выбранного языка представления знаний (ЯПЗ). Традиционно на этом этапе используются: логические методы (исчисления предикатов I порядка и др.), продукционные модели (с прямым и обратным выводом), семантические сети, фреймы, объектно-ориентированные языки, основанные на иерархии классов, объектов и др.

Реализация. Создается прототип экспертной системы, включающий базу знаний и остальные блоки, при помощи одного из следующих способов: программирование на традиционных языках типа Паскаль, Си и др., программирование на специализированных языках, применяемых в задачах искусственного интеллекта: LISP, FRL, SmallTalk и др., использование инструментальных средств разработки ЭС типа СПЭИС, ПИЭС, использование "пустых" ЭС или "оболочек" типа ЭКСПЕРТ, ФИАКР и др.

Тестирование. Оценивается и проверяется работа программ прототипа с целью приведения в соответствие с реальными запросами пользователей. Прототип проверяется на: удобство и адекватность интерфейсов ввода-вывода, эффективность стратегии управления, качество проверочных примеров, корректность базы знаний. Тестирование - выявление ошибок в подходе и реализации прототипа и выработка рекомендаций по доводке системы до промышленного варианта.

32. Технология разработки экспертных систем, развитие прототипа до промышленной экспертной системы

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

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

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

Понятие же коммерческой системы в нашей стране входит в понятие промышленный программный продукт, или промышленной экспертной системы в этой работе (табл. 1).

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

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

На этом этапе разработки большинство экспертов узнают достаточно о вводе правил и могут сами вводить в систему новые правила. Таким образом начинается процесс, во время которого инженер по знаниям передаёт право собственности и контроля за системой эксперту для уточнения, детальной разработки и обслуживания.

33. Технология разработки экспертных систем, оценка системы

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

- критерии пользователей (понятность и "прозрачность" работы системы, удобство интерфейсов и др.);

- критерии приглашенных экспертов (оценка советов-решений, предлагаемых системой, сравнение ее с собственными решениями, оценка подсистемы объяснений и др.);

- критерии коллектива разработчиков.

34. Технология разработки экспертных систем, стыковка экспертной системы

Стыковка системы. На этом этапе осуществляется стыковка экспертной системы с другими программными средствами в среде, в которой она будет работать, и обучение людей, которых она будет обслуживать. Иногда это означает внесение существенных изменений. Такое изменение требует непременного вмешательства инженера по знаниям или какого-либо другого специалиста, который сможет модифицировать систему. Под стыковкой подразумевается также разработка связей между экспертной системой и средой, в которой она действует. Когда экспертная система уже готова, инженер по знаниям должен убедиться в том, что эксперты, пользователи и персонал знают, как эксплуатировать и обслуживать ее. После передачи им своего опыта в области информационной технологии инженер по знаниям может полностью предоставить ее в распоряжение пользователей. Для подтверждения полезности системы важно предоставить каждому из пользователей возможность поставить перед ЭС реальные задачи, а затем проследить, как она выполняет эти задачи. Чтобы система была одобрена, необходимо представить ее как помощника, освобождающего пользователей от обременительных задач, а не как средство их замещения.

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

35. Технология разработки экспертных систем, поддержка системы

Поддержка системы. При перекодировании системы на язык, подобный Си, повышается ее быстродействие и увеличивается переносимость, однако гибкость при этом уменьшается. Это приемлемо лишь в том случае, если система сохраняет все знания проблемной области, и это знание не будет изменяться в ближайшем будущем. Однако если экспертная система создана именно из-за того, что проблемная область изменяется, то необходимо поддерживать систему в инструментальной среде разработки.

36. Понятие предиката. Применение логики предикатов.

Отношение в Прологе называется предикатом. Аргументы - это объекты, которые взываются этим отношением; в факте likes (bill, cindy) отношение likes - это предикат, а объекты bill и cindy - аргументы.

Вот несколько примеров предикатов с различным числом аргументов:

pred(integer,symbol)
person(last,first,gender)
run()
birthday(firstName,lastName, date)

В вышеприведенном примере показано, что предикаты могут вовсе не иметь аргументов, но использование таких предикатов ограничено. Чтобы выяснить имя Rosemont, можно применить запрос person (rosemont,Name,male). Но что делать с запросом без аргументов run? Выясним, есть ли в программе предложение run, и если run - это заголовок правила, то можно вычислить данное правило. В некоторых случаях это оказывается полезным - например, если бы вы захотели создать программу, работающую по-разному в зависимости от того, имеется ли предложение run.

37. Факты и правила. Предложения.

По сути, есть только два типа фраз, составляющих язык Пролог: фраза может быть либо фактом, либо правилом. Эти фразы в Прологе известны под термином предложения (clause). Сердце программ на Прологе состоит из предложений.

Подробнее о фактах. Факт представляет либо свойство объекта, либо отношение между объектами. Факт самодостаточен. Прологу не требуется дополнительных сведений для подтверждения факта, и факт может быть использован как основа для логического вывода.

Подробнее о правилах. В Прологе, как и в обычной жизни, можно судить о достоверности чего-либо, логически выведя это из других фактов. Правило - это конструкция Пролога, которая описывает, что можно логически вывести из других данных. Правило - это свойство или отношение, которое достоверно, когда известно, что ряд других отношений достоверен. Синтаксически эти отношения разделены запятыми.

Примеры фактов:

person (john).

мужчина (виктор).

нравиться (джон, мери).

Примеры правил:

человек (Х):- мужчина(Х).

твистик(Кто_то) if человечек(Кто_то),

любит_танцевать(Кто_то, твист).

38. Общие представления о переменных.

В Прологепеременные позволяют нам записывать общие факты и правила и задавать общие вопросы. В естественном языке вы пользуетесь переменными в предложениях постоянно. Обычное предложение на английском языке может быть таким:

Bill likes the same thing as Kim. (Билл любит то же, что и Ким)

Как мы говорили, при задании переменной в Прологе первый символ имени должен быть заглавной буквой или символом подчеркивания. Например, в следующей строке Thing - это переменная.

likes(bill,Thing):-

likes(kim,Thing).

В предшествующем примере:

likes(cindy,Something):-

likes(bill,Something).

объект Something начинается с заглавной буквы, т.к. это переменная; он определяет что-то, что Билл любит. С таким же успехом этот объект мог бы называться x или Zorro.

Объекты bill и cindy начинаются со строчной буквы, т.к. они не являются переменными - это идентификаторы, имеющие постоянное значение. Пролог может обрабатывать произвольные текстовые строки подобно тому, как мы оперировали символами, упомянутыми выше, если текст заключен в двойные кавычки. Следовательно, вместо bill вы могли бы также успешно написать " Bill ".

39. Цели (запросы).

До сих пор мы, говоря о вопросах, задаваемых Прологу, употребляли слово " запрос ". Далее мы будем использовать более общее слово " цель ". Трактовка запросов как целей такова: когда вы даете Прологу запрос, в действительности вы даете ему цель для выполнения. ("Найди ответ на вопрос, если он существует:...")

Цели могут быть или простыми:

likes(ellen,swimming).

likes(bill,What).

или более сложными. Например цель из двух частей:

likes (Person,reading),

likes (Person,swimming).

Цель, состоящая из двух и более частей, называется сложной целью, а каждая часть сложной цели называется под целью.

Часто бывает нужно найти общее решение двух целей. Например, в предыдущем примере о родителях вы могли бы поинтересоваться, которые из родителей являются родителями мужского пола. Искать решение для такого запроса можно, задав сложную цель.

40. Размещение фактов, правил и запросов.

Предположим, у вас есть следующие факты и правила:

Быстрая машина - приятная. (A fast car is fun).
Большая машина - красивая. (A big car is nice).
Маленькая машина - практичная. (A little car is practical).
Биллу нравится машина, если она приятная. (Bill likes a car if the car is fun).

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

Вот пример, демонстрирующий, как Пролог использует правила для ответа на запросы.

likes(ellen,tennis).

likes(john,football).

Последняя строка в программе является правилом:

likes(bill,Activity):-

likes(torn,Activity).

Это правило соответствует предложению естественного языка:

Биллу нравится занятие, если Тому нравится это занятие. (Bill likes an activity if Tom likes that activity)

В данном правиле заголовок - это likes (bill, Activity), а тело - likes (torn, Activity). Заметим, что в этом примере нет фактов о том, что Билл любит бейсбол. Чтобы выяснить, любит ли Билл бейсбол, можно дать Прологу такой запрос:

Запустите Пролог, загрузите программу pro11_1.pro с помощью пункта меню File | Load или клавиши F3, запустите программу с помощью пункта Run или сочетания клавиш Alt+R и после запроса цель наберите: likes(bill,baseball).

Пролог ответит:

yes (да)

Попробуйте также следующий запрос:

likes(bill,tennis).

Пролог ответит:

no (нет)

Пролог ответит по на последний запрос "Does Bill like tennis?" (Любит ли Билл теннис), поскольку:

· нет фактов, которые говорят, что Билл любит теннис;

· отношение Билла к теннису не может быть логически выведено с использованием данного правила и имеющихся в распоряжении фактов.

Вполне возможно, что Билл любит теннис в реальной жизни, но ответ Пролога основан только на фактах и правилах, которые вы дали ему в тексте программы.

41. Сопоставление и унификация.

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

written_by(X,Y).

Пытаясь выполнить целевое утверждение written_by(X,Y), Пролог должен проверить каждое предложение written_by в программе. Сопоставляя аргументы X и Y с аргументами каждого предложения written_by, Пролог выполняет поиск от начала программы до ее конца. Обнаружим предложение, соответствующее целевому утверждению, Пролог присваивает значения свободным переменным таким образом, что целевое утверждение и предложение становятся идентичными; говорят, что целевое утверждение унифицируется с предложением. Такая операция сопоставления называется унификацией.

42. Арифметические вычисления и сравнения.

Арифметические выражения

Арифметические выражения состоят из операндов (чисел и переменных), операторов (+,-,/,*,div и mod) и скобок. Символы в правой части от знака равенства (который является предикатом =) составляют арифметическое выражение. Например:

А=1+6/(11+3)*Z

Шестнадцатеричные и восьмеричные числа начинаются с "0х" или "0о" соответственно. Например:

OxFFF=4095
86=0о112+12

Значение выражения может быть вычислено, только если все переменные в момент вычисления определены. При этом вычисления производятся в порядке, определяемом приоритетом операции. Операции с высшим приоритетом выполняются первыми.

Операции

Пролог может выполнять все четыре осноные арифметические операции (сложение, вычитание, умножение и деление) между целыми и вещественными числами. Тип результата приведен и таблице 1.

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

Порядок вычислений

Арифметические операции вычисляются в следующем порядке:

· если выражение содержит подвыражение в скобках, подвыражение вычисляется первым;

· если выражение содержит операции умножения (*) или деления (/, div или mod), эти операции выполняются слева направо;

· если выражение содержит операции сложения (+) и вычитания (-), они выполняются также слева направо.

В выражении A=1+6/(11+3)*Z, предположим, что Z имеет значение 4, ибо переменные должны быть связаны до вычисления. Вычислим это выражение:

1. (11+3) - первое вычисляемое подвыражеие, т. к. оно заключено в скобки, оно вычисляется как 14.

2. Затем вычисляется 6/14, т. к. / и * вычисляются слева направо. В результате получим 0.428571.

3. Далее 0.428571*4 дает 1.714285.

4. Наконец, вычисляя 1+1.714285, получаем значение выражения 2.714285.

А получит значение 2.714285, которое принадлежит вещественному домену.

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

43. Целочисленная и вещественная арифметика.

Пролог поддерживает предикаты и функции модульной арифметики, целого деления, квадратные корни и абсолютные значения, тригонометрические и трансцендентные функции, округление (вверх или вниз) и усечение.

Функция mod/2

Функция mod вычисляет остаток от деления X на Y (где X и Y - целые).

Функция div/2

Функция div вычисляет целое частное от деления X ни Y (где X и Y - целые).

Функция abs/1

Функция abs возвращает абсолютное значение своего аргумента.

Функция cos/1

Функция cos возвращает значение косинуса своего аргумента.

Функция sin/1

Функция sin возвращает значение синуса своего аргумента.

Функция tan/1

Функция tan возвращает значение тангенса своего аргумента.

Функция arctan/1

Функция arctan возвращает арктангенса от вещественного значения, с которым связано X.

Функция ехр/1

Функция ехр возвращает значение е в степени значения, с которым связано X.

Функция ln/1

Функция ln возвращает значение натурального логарифма от X (по основанию е).

Функция log/1

Функция log возвращает значение логарифма по основанию 10 от X.

Функция sqrt/1

Функция sqrt возвращает квадратный корень от X.

Функция round/1

Функция round возвращает округленное значение X.

Функция trunc/1

Функция trunc усекает X справа до десятичной точки, отбрасывая дробную часть.

44. Поиск с возвратом.

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

Рассмотрим простой пример pro29_1.pro.

predicates

likes(symbol,symbol)

tastes(symbol,symboI)

food(symbol)

clauses

likes (bill,X):-

    food(X),

    tastes(X,good).

tastes(pizza,good).

tastes(brussels_sprouts,bad).

food(brussels_sprouts).

food(pizza).

Эта маленькая программа составлена из двух множеств фактов и одного правила. Правило, представленное отношением likes, утверждает, что Билл любит вкусную пищу.

Чтобы увидеть, как работает поиск с возвратом, дадим программе для решения следующее целевое утверждение:

likes(bill,What).

Замечание. Когда Пролог пытается произвести согласование целевого утверждения, он начинает поиск с вершины программы.

В данном случае Пролог будет искать решение, производя с вершины программы поиск соответствия с подцелью

likes (bill,What).

Он обнаруживает соответствие с первым предложением в программе и переменная what унифицируется с переменной X. Сопоставление с заголовком правила заставляет Пролог попытаться удовлетворить это правило. Производя это, он двигается по телу правила и обращается к первой находящейся здесь подцели: food(X).

45. Прерывание поиска с возвратом: отсечение.

Пролог предусматривает возможность отсечения, которая используется для прерывания поиска с возвратом; отсечение обозначается восклицательным знаком (!). Действует отсечение просто: через него невозможно совершить откат (поиск с возвратом).

Отсечение помещается в программу таким же образом, как и подцель в теле правила. Когда процесс проходит через отсечение, немедленно удовлетворяется обращение к cut и выполняется обращение к очередной подцели (если таковая имеется). Однажды пройдя через отсечение, уже невозможно произвести откат к подцелям, расположенным в обрабатываемом предложении перед отсечением, и также невозможно возвратиться к другим предложениям, определяющим обрабатывающий предикат (предикат, содержащий отсечение).

Существуют два основных случая применения отсечения.

· Если вы заранее знаете, что определенные посылки никогда не приведут к осмысленным решениям (поиск решений в этом случае будет лишней тратой времени), - примените отсечение, - программа станет быстрее и экономичнее. Такой прием называют зеленым отсечением.

· Если отсечения требует сама логика программы для исключения из рассмотрения альтернативных подцелей. Это - красное отсечение.

Использование отсечений

На этом шаге даются примеры, показывающие, как следует использовать отсечение, рассматриваются несколько условных правил (r1, r2 и r3), которые определяют условный предикат r, а также несколько подцелей - а, b, с и т. д.


Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.107 с.