Применение информационных технологий в теории дифференциальных уравнениях
Разработка систем компьютерной алгебры с использованием информационных технологий. Исследование возможности применения символьного математического пакета Mathematica для решения дифференциальных уравнений в частных производных, анализ его эффективности.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 05.10.2013 |
Размер файла | 224,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Технология экспертных систем является одним из направлений новой области исследования, которая получила наименование искусственного интеллекта (Artificial Intelligence - AI). Исследования в этой области сконцентрированы на разработке и внедрении компьютерных программ, способных эмулировать (имитировать, воспроизводить) те области деятельности человека, которые требуют мышления, определенного мастерства и накопленного опыта. К ним относятся задачи принятия решений, распознавания образов и понимания человеческого языка. Эта технология уже успешно применяется в некоторых областях техники и жизни общества - органической химии, поиске полезных ископаемых, медицинской диагностике. Перечень типовых задач, решаемых экспертными системами, включает:
· извлечение информации из первичных данных (таких как сигналы, поступающие от гидролокатора);
· диагностика неисправностей (как в технических системах, так и в человеческом организме);
· структурный анализ сложных объектов (например, химических соединений);
· выбор конфигурации сложных многокомпонентных систем (например, распределенных компьютерных систем);
· планирование последовательности выполнения операций, приводящих к заданной цели (например, выполняемых промышленными роботами).
Хотя известны и "обычные" программы, специализирующиеся на определенных задачах из представленного перечня (или аналогичных им в смежных областях), в следующей главе мы покажем, в чем состоит существенная разница между "обычным" подходом и прелагаемым в сфере искусственного интеллекта и почему экспертные системы можно выделить в отдельный, достаточно хорошо различимый класс программ. Четкого формального определения экспертной системы, которое всех бы удовлетворило, не существует - приведенное выше тоже довольно расплывчато. Но, тем не менее, существует довольно много важных признаков, присущих в той или иной степени всем экспертным системам.
Экспертная система отличается от прочих прикладных программ наличием следующих признаков.
Моделирует не столько физическую (или иную) природу определенной проблемной области, сколько механизм мышления человека применительно к решению задач в этой проблемной области. Это существенно отличает экспертные системы от систем математического моделирования или компьютерной анимации. Нельзя, конечно, сказать, что программа полностью воспроизводит психологическую модель специалиста в этой предметной области (эксперта), но важно, что основное внимание все-таки уделяется воспроизведению компьютерными средствами методики решения проблем, которая применяется экспертом, т.е. выполнению некоторой части задач так же (или даже лучше), как это делает эксперт.
Система, помимо выполнения вычислительных операций, формирует определенные соображения и выводы, основываясь на тех знаниях, которыми она располагает. Знания в системе представлены, как правило, на некотором специальном языке и хранятся отдельно от собственно программного кода, который и формирует выводы и соображения. Этот компонент программы принято называть базой знаний.
При решении задач основными являются эвристические и приближенные методы, которые, в отличие от алгоритмических, не всегда гарантируют успех. Эвристика, по существу, является правилом влияния (rule of thumb), которое в машинном виде представляет некоторое знание, приобретенное человеком по мере накопления практического опыта решения аналогичных проблем. Такие методы являются приблизительными в том смысле, что, во-первых, они не требуют исчерпывающей исходной информации, и, во-вторых, существует определенная степень уверенности (или неуверенности) в том, что предлагаемое решение является верным.
Экспертные системы отличаются и от других видов программ из области искусственного интеллекта.
Экспертные системы имеют дело с предметами реального мира, операции с которыми обычно требуют наличия значительного опыта, накопленного человеком. Множество программ из области искусственного интеллекта являются сугубо исследовательскими и основное внимание в них уделяется абстрактным математическим проблемам или упрощенным вариантам реальных проблем (иногда их называют "игрушечными" проблемами), а целью выполнения такой программы является "повышение уровня интуиции" или отработка методики. Экспертные системы имеют ярко выраженную практическую направленность в научной или коммерческой области.
Одной из основных характеристик экспертной системы является ее производительность, т.е. скорость получения результата и его достоверность (надежность). Исследовательские программы искусственного интеллекта могут и не быть очень быстрыми, можно примириться и с существованием в них отказов в отдельных ситуациях, поскольку, в конце концов, - это инструмент исследования, а не программный продукт. А вот экспертная система должна за приемлемое время найти решение, которое было бы не хуже, чем то, которое может предложить специалист в этой предметной области.
Экспертная система должна обладать способностью объяснить, почему предложено именно такое решение, и доказать его обоснованность. Пользователь должен получить всю информацию, необходимую ему для того, чтобы быть уверенным, что решение принято "не с потолка". В отличие от этого, исследовательские программы "общаются" только со своим создателем, который и так (скорее всего) знает, на чем основывается ее результат.
Экспертная система проектируется в расчете на взаимодействие с разными пользователями, для которых ее работа должна быть, по возможности, прозрачной.
Зачастую термин система, основанная на знаниях (knowledge-based system), используется в качестве синонима термина экспертная система, хотя, строго говоря, экспертная система - это более широкое понятие. Система, основанная на знаниях, - это любая система, процесс работы которой основан на применении правил отношений к символическому представлению знаний, а не на использовании алгоритмических или статистических методов. Таким образом, программа, способная рассуждать о погоде, будет системой, основанной на знаниях, даже в том случае, если она не способна выполнить метеорологическую экспертизу. А вот чтобы иметь право называться метеорологической экспертной системой, программа должна быть способна давать прогноз погоды (другой вопрос - насколько он будет достоверен).
Суммируя все сказанное, отметим - экспертная система содержит знания в определенной предметной области, накопленные в результате практической деятельности человека (или человечества), и использует их для решения проблем, специфичных для этой области. Этим экспертные системы отличаются от прочих, "традиционных" систем, в которых предпочтение отдается более общим и менее связанным с предметной областью теоретическим методам, чаще всего математическим. Процесс создания экспертной системы часто называют инженерией знаний (knowledge engineering) и он рассматривается в качестве "применения методов искусственного интеллекта" (см. [Feigenbaum, 1977]). Далее, в главах 2 и 3, мы более пристально рассмотрим отличие между общепринятым в программировании подходом к решению проблем и тем, который предлагается при проектировании экспертных систем.
В оставшейся части этой главы мы рассмотрим следующие вопросы. Сначала будут перечислены четыре базовые функции, которые реализуются в экспертных системах. Эти функции здесь будут рассмотрены очень поверхностно, с единственной целью дать читателю общее представление о них и познакомить с соответствующей терминологией. Последний раздел главы даст читателю представление об общей структуре материала в этой книге и о его распределении по главам.
Бучанан следующим образом сформулировал функцию приобретения знаний [Buchanan et al, 1983]:
"[Приобретение знаний это] передача потенциального опыта решения проблемы от некоторого источника знаний и преобразование его в вид, который позволяет использовать эти знания в программе".
Передача знаний выполняется в процессе достаточно длительных и пространных собеседований между специалистом по проектированию экспертной системы (будем в дальнейшем называть его инженером по знаниям) и экспертом в определенной предметной области, способным достаточно четко сформулировать имеющийся у него опыт. По существующим оценкам, таким методом можно сформировать от двух до пяти "элементов знания" (например, правил влияния) в день. Конечно, это очень низкая скорость, а потому многие исследователи рассматривают функцию приобретения знаний в качестве одного из главных "узких мест" технологии экспертных систем [Feigenbaum, 1977].
Причин такой низкой производительности предостаточно. Ниже перечислены только некоторые из них.
Специалисты в узкой области, как правило, пользуются собственным жаргоном, который трудно перевести на обычный "человеческий" язык. Но смысл жаргонного "словечка" отнюдь не очевиден, а потому требуется достаточно много дополнительных вопросов для уточнения его логического или математического значения. Например, специалисты по военной стратегии говорят об "агрессивной демонстрации" иностранной военной мощи, но при этом не могут объяснить, чем такая "агрессивная" демонстрация отличается от демонстрации, не несущей угрозы.
Факты и принципы, лежащие в основе многих специфических областей знания эксперта, не могут быть четко сформулированы в терминах математической теории или детерминированной модели, свойства которой хорошо понятны. Так, эксперту в финансовой области может быть известно, что определенные события могут стать причиной роста или снижения котировок на фондовой бирже, но он ничего вам не скажет точно о механизмах, которые приводят к такому эффекту, или о количественной оценке влияния этих факторов. Статистические модели могут помочь сделать общий долговременный прогноз, но, как правило, такие методы не работают в отношении курсов конкретных акций на коротких временных интервалах.
Для того чтобы решить проблему в определенной области, эксперту недостаточно просто обладать суммой знаний о фактах и принципах в этой области. Например, опытный специалист знает, какого рода информацией нужно располагать для формулировки того или иного суждения, насколько надежны различные источники информации и как можно расчленить сложную проблему на более простые, которые можно решать более или менее независимо. Выявить в процессе собеседования такого рода знания, основанные на личном опыте и плохо поддающиеся формализации, значительно сложнее, чем получить простой перечень каких-то фактов или общих принципов.
Экспертный анализ даже в очень узкой области, выполняемый человеком, очень часто нужно поместить в довольно обширный контекст, который включает и многие вещи, кажущиеся эксперту само собой разумеющимися, но для постороннего отнюдь таковыми не являющиеся. Возьмем для примера эксперта-юриста, который принимает участие в судебном процессе. Очень трудно очертить количество и природу знаний общего рода, которые оказываются вовлечены в расследование того или иного дела [12].
Представление знаний - еще одна функция экспертной системы. Теория представления знаний - это отдельная область исследований, тесно связанная с философией формализма и когнитивной психологией. Предмет исследования в этой области - методы ассоциативного хранения информации, подобные тем, которые существуют в мозгу человека. При этом основное внимание, естественно, уделяется логической, а не биологической стороне процесса, опуская подробности физических преобразований.
Основная часть представления знаний, на которую часто даже не обращают особого внимания, состоит в том, что представление должно каким-то образом "стандартизировать" семантическое разнообразие человеческого языка. Вот несколько предложений.
"Сэм - отец Билла". "Сэм - Биллов отец". "Биллов отец - Сэм"
"Отцом Билла является Сэм"
Все эти фразы выражают одну и ту же мысль (семантически идентичны). При машинном представлении этой мысли (знания) мы стараемся найти более простой метод сопоставления формы и содержания, чем в обычном человеческом языке, т.е. добиться того, чтобы выражения с одинаковым (или похожим) содержанием были одинаковыми и по форме. Например, все приведенные выше фразы могут быть сведены к выражению в такой форме:
отец (сэм, билл).
В семантике этого выражения должно быть специфицировано (наряду с прочими вещами) и то, что первое имя принадлежит родителю, а второе - потомку, а не наоборот.
Можно также заметить, что предложения
"Сэм - отец Джилла".
"Отцом Билла является Сэм".
имеют похожий смысл, но более очевидно ранжировать их в такой форме:
отец (сэм, билл). отец (сэм, джилл).
В 70-х годах исследования в области представления знаний развивались в направлениях раскрытия принципов работы памяти человека, создания теорий извлечения сведений из памяти, распознавания и восстановления. Некоторые из достигнутых в теории результатов привели к созданию компьютерных программ, которые моделировали различные способы связывания понятий (концептов). Появились компьютерные приложения, которые могли некоторым образом отыскивать нужные "элементы" знания на определенном этапе решения некоторой проблемы. Со временем психологическая достоверность этих теорий отошла на второй план, а основное место, по крайней мере, с точки зрения проблематики искусственного интеллекта, заняла их способность служить инструментом для работы с новыми информационными и управляющими структурами.
В общем, вопрос представления знания был и, скорее всего, останется вопросом противоречивым. Философы и психологи зачастую бывают шокированы бесцеремонностью специалистов по искусственному интеллекту, которые бойко болтают о человеческом знании на жаргоне, представляющем дикую смесь терминологии, взятой из логики, логистики, философии, психологии и информатики. С другой стороны, компьютерный формализм оказался новаторским средством постановки, а иногда и поиска ответов на трудные вопросы, над которыми столетиями бились метафизики.
В области экспертных систем представление знаний интересует нас в основном как средство отыскания методов формального описания больших массивов полезной информации с целью их последующей обработки с помощью символических вычислений. Формальное описание означает упорядочение в рамках какого-либо языка, обладающего достаточно четко формализованным синтаксисом построения выражений и такого же уровня семантикой, увязывающей смысл выражения с его формой.
Символические вычисления означают выполнение нечисловых операций, в которых могут быть сконструированы символы и символьные структуры для представления различных концептов и отношений между ними.
В области искусственного интеллекта ведется интенсивная работа по созданию языков представления (representation languages). Под этим термином понимаются компьютерные языки, ориентированные на организацию описаний объектов и идей, в противовес статическим последовательностям инструкций или хранению простых элементов данных. Основными критериями доступа к представлению знаний являются логическая адекватность, эвристическая мощность и естественность, органичность нотации. Эти термины, скорее всего, нуждаются в пояснениях.
Логическая адекватность означает, что представление должно обладать способностью распознавать все отличия, которые вы закладываете в исходную сущность. Например, невозможно представить идею, что каждое лекарство имеет какой-либо побочный нежелательный эффект, если только нельзя будет провести отличие между предназначением конкретного лекарственного препарата и его побочным эффектом (например, аспирин усугубляет язвенную болезнь). В более общем виде выражение, передающее этот эффект, звучит так: "каждое лекарство обладает нежелательным побочным эффектом, специфическим для этого препарата".
Эвристическая мощность означает, что наряду с наличием выразительного языка представления должно существовать некоторое средство использования представлений, сконструированных и интерпретируемых таким образом, чтобы с их помощью можно было решить проблему. Часто оказывается, что язык, обладающий большей выразительной способностью в терминах количества семантических отличий, оказывается и больше сложным в управлении описанием взаимосвязей в процессе решения проблемы. Способность к выражению у многих из найденных формализмов может оказаться достаточно ограниченной по сравнению с английским языком или даже стандартной логикой. Часто уровень эвристической мощности рассматривается по результату, т.е. по тому, насколько легко оказывается извлечь нужное знание применительно к конкретной ситуации. Знать, какие знания более всего подходят для решения конкретной проблемы, - это одно из качеств, которое отличает действительно специалиста, эксперта в определенной области, от новичка или просто начитанного человека.
Естественность нотации следует рассматривать как некую добродетель системы, поскольку большинство приложений, построенных на базе экспертных систем, нуждается в накоплении большого объема знаний, а решить такую задачу довольно трудно, если соглашения в языке представления слишком сложны. Любой специалист скажет вам, что при прочих равных характеристиках лучше та система, с которой проще работать. Выражения, которыми формально описываются знания, должны быть по возможности простыми для написания, а их смысл должен быть понятен даже тому, кто не знает, как же компьютер интерпретирует эти выражения. Примером может служить декларативный программный код, который сам по себе дает достаточно четкое представление о процессе его выполнения даже тому, кто не имеет представления о деталях реализации компьютером отдельных инструкций.
За прошедшие годы было предложено немало соглашений, пригодных для кодирования знаний на языковом уровне. Среди них отметим порождающие правила (production rules) [Davis and King, 1977], структурированные объекты (structured objects) [Findler, 1979] и логические программы (logic programs) [Kowalski, 1979]. В большинстве экспертных систем используется один или несколько из перечисленных формализмов, а доводы в пользу и против любого из них до сих пор представляют собой тему для оживленных дискуссий среди теоретиков.
При проектировании экспертной системы серьезное внимание должно быть уделено и тому, как осуществляется доступ к знаниям и как они используются при поиске решения [Davis, 1980, а]. Знание о том, какие знания нужны в той или иной конкретной ситуации, и умение ими распорядиться - важная часть процесса функционирования экспертной системы. Такие знания получили наименование метазнаний - т.е. знаний о знаниях. Решение нетривиальных проблем требует и определенного уровня планирования и управления при выборе, какой вопрос нужно задать, какой тест выполнить, и т.д.
Использование разных стратегий перебора имеющихся знаний, как правило, оказывает довольно существенное влияние на характеристики эффективности программы. Эти стратегии определяют, каким способом программа отыскивает решение проблемы в некотором пространстве альтернатив. Как правило, не бывает так, чтобы данные, которыми располагает программа работы с базой знаний, позволяли точно "выйти" на ту область в этом пространстве, где имеет смысл искать ответ.
Большинство формализмов представления знаний может быть использовано в разных режимах управления, и разработчики экспертных систем продолжают экспериментировать в этой области. В последующих главах будут описаны системы, которые специально подобраны таким образом, чтобы проиллюстрировать отличия в существующих подходах к решению проблемы управления. В каждой из представленных систем есть что-нибудь полезное для студентов, специализирующихся в области разработки и исследования экспертных систем.
Представьте себе, что автомобиль с трудом заводится, а в пути явно чувствуется снижение мощности. Сами по себе эти симптомы недостаточны для того, чтобы принять решение, где же искать источник неисправности - в топливной или электросистеме автомобиля. Познания в устройстве автомобиля подсказывают - нужно еще поэкспериментировать, прежде чем звать на помощь механика. Возможно, плоха топливная смесь, поэтому присмотритесь к выхлопу и нагару на свечах. Возможно, сбоит распределитель - посмотрите, не повреждена ли его крышка. Эти довольно специфические эвристики не гарантируют, что отыщется действительная причина, но вдруг вам улыбнется фортуна, и вы найдете неисправность без утомительной процедуры последовательной проверки всех систем.
Скорее всего, ваших знаний достаточно для того, чтобы выполнить общую проверку, прежде чем заниматься доскональным изучением отдельных узлов. Например, посмотреть, достаточно ли мощная искра в свече (если это так, то подозрения с электросистемы можно снять), прежде чем проверять аккумулятор. При отсутствии специальных эвристик, чем более методично вы будете действовать, тем больше шансов быстро найти причину неисправности. Общее эвристическое правило гласит:
"Сначала проверь весь узел, а уже потом приступай к проверке его компонентов"
Это правило можно считать частью режима управления - систематической стратегии применения имеющихся знаний. Другое эвристическое правило можно сформулировать, например, так:
"Сначала меняй более дешевые детали, а уже потом берись за более дорогие"
В некоторых случаях эти две эвристики могут противоречить друг другу, так что нужно заранее выбрать, какая из них имеет приоритет в случае, если обе включены в один и тот же режим управления.
Вопрос о том, как помочь пользователю понять структуру и функции некоторого сложного компонента программы, связан со сравнительно новой областью взаимодействия человека и машины, которая появилась на пересечении таких областей, как искусственный интеллект, промышленная технология, физиология и эргономика. На сегодня вклад в эту область исследователей, занимающихся экспертными системами, состоит в разработке методов представления информации о поведении программы в процессе формирования цепочки логических заключений при поиске решения. искусственный интеллект экспертный система
Представление информации о поведении экспертной системы важно по многим причинам.
Пользователи, работающие с системой, нуждаются в подтверждении того, что в каждом конкретном случае заключение, к которому пришла программа, в основном корректно.
Инженеры, имеющие дело с формированием базы знаний, должны убедиться, что сформулированные ими знания применены правильно, в том числе и в случае, когда существует прототип.
Экспертам в предметной области желательно проследить ход рассуждений и способ использования тех сведений, которые с их слов были введены в базу знаний. Это позволит судить, насколько корректно они применяются в данной ситуации.
Программистам, которые сопровождают, отлаживают и модернизируют систему, нужно иметь в своем распоряжении инструмент, позволяющий заглянуть в "ее нутро" на уровне более высоком, чем вызов отдельных языковых процедур.
Менеджер системы, использующей экспертную технологию, который, в конце концов, несет ответственность за последствия решения, принятого программой, также нуждается в подтверждении, что эти решения достаточно обоснованы.
Способность системы объяснить методику принятия решения иногда называют прозрачностью системы. Под этим понимается, насколько просто персоналу выяснить, что делает программа и почему. Эту характеристику системы следует рассматривать в совокупности с режимом управления, о котором шла речь в предыдущем разделе, поскольку последовательность этапов принятия решения тесно связана с заданной стратегией поведения.
Отсутствие достаточной прозрачности поведения системы не позволит эксперту повлиять на ее производительность или дать совет, как можно ее повысить. Прослеживание и оценка поведения системы - задача довольно сложная и для ее решения необходимы совместные усилия эксперта и специалиста по информатике.
В одной известной загадке человек смотрит на портрет и говорит:
"У меня нет братьев и сестер, но отец этого человека - это сын моего отца"
Спрашивается: 'Кто изображен на портрете?" Во-первых, потратьте пару минут и решите эту загадку. Во-вторых, представьте себе, как вы будете объяснять ход решения кому-нибудь постороннему, но при этом нельзя пользоваться никакими вспомогательными средствами вроде карандаша и бумаги. Для многих эта загадка представляется головоломной, причем немало и таких, которые не могут проследить за ходом уже описанного решения (Smullyan, 1978].
Ответ прост: отец смотрит на портрет сына (человек, который смотрит на портрет, - отец человека, изображенного на портрете). Как мы пришли к такому заключению, станет ясно после того, как мы воспользуемся логическим представлением. Пусть Пит - человек на портрете, а Люк - человек, который смотрит на портрет.
"...это сын моего отца".
Сын (отец(люк)), отец(пит).
"У меня нет братьев и сестер..."
for all X,
if сын(отец(люк), X) then Х=люк.
Здесь сын - это отношение между двумя людьми, а отец - функция, поскольку каждый имеет только одного отца. Из этого утверждения после подстановки совершенно очевидно следует
отец(пит) = люк. Таким образом, Люк смотрит на портрет своего сына.
Правильное логическое представление зачастую значительно упрощает решение задачи и делает его более понятным. Но сформировать такое представление - это в значительной мере искусство [15].
Потенциальный пользователь экспертной системы чаще всего задается вопросом: "А сможет ли она решить мои проблемы?" Ответ уклончивый: "Смотря какие". Существуют три фактора, от которых зависит окончательный ответ, - природа проблемы, наличие определенного опыта в той предметной области, к которой относится проблема, и возможность сопоставления результатов анализа проблемы и имеющегося опыта методом, доступным компьютерной программе. Потенциальному пользователю следует сначала задуматься над следующим: есть ли у него на примете эксперт, который:
· способен решить проблему;
· знает, как решается проблема;
· способен объяснить другому, как решается проблема;
· располагает временем, чтобы объяснить другому, как решается проблема;
· имеет достаточные побудительные мотивы к активному участию в этом предприятии.
Например, предсказание погоды - это не та задача, которую может решить кто-либо, даже умудренный большим опытом эксперт. Распознавание речи - это задача, которую решает практически каждый, но никто из нас (включая и профессиональных лингвистов) не может вразумительно объяснить, как это делается. А потому использовать для решения этой проблемы методы, основанные на анализе знаний, вряд ли удастся. Здесь большего следует ожидать от статистического моделирования. Даже имея на примете гениального эксперта, знающего, как решается задача, нельзя рассчитывать на успех, если этот эксперт не может или не желает подробно и вразумительно объяснить, как он это делает. Эксперт может быть не расположен к общению с посторонними или слишком занят, чтобы терять время на длительные собеседования с инженером, которому поручено проектирование базы знаний. Как правило, эксперт высокого класса не испытывает недостатка в предложениях работы в той области, с которой он хорошо знаком, а потому предпочитает выполнять ее, а не вести пространные беседы о том, как он это делает. Есть еще и психологический фактор - многие эксперты весьма ревниво относятся к своему уникальному опыту и не склонны его разглашать, поскольку считают (и нам нечего возразить им), что, передавая опыт автоматизированным системам, они рубят сук, на котором сидят.
Но даже если удастся выполнить оговоренные выше условия, в задаче могут существовать факторы, ограничивающие возможность "машинного" воспроизведения человеческого опыта. Например:
· в процессе решения задачи используются способности органов чувств человека, недоступные на сегодняшний день в мире машин;
· в решение задачи вовлечены соображения здравого смысла человечества или большой объем знаний, само собой разумеющихся для любого человека.
Очень важно отделить те знания, владение которыми характерно именно для эксперта в определенной области, от тех знаний, которые известны любому, выполняющему в этой области рутинную работу. Управление автомобилем при езде по забитым транспортом улицам требует не столько знаний эксперта, сколько умения мгновенно оценивать ситуацию и быстро на нее реагировать. Хотя современные роботы такой скоростью и таким умением не владеют, вряд ли кто-нибудь назовет такого водителя "экспертом" (по крайней мере, в моем родном Рочестере, шт. Нью-Йорк).
Нельзя упускать из виду и огромный объем знаний об окружающем мире, которым мы все располагаем: знаниями о предметах и их свойствах, людях и мотивации их действий, взаимосвязях в физическом мире и наиболее вероятном течении событий в тех или иных условиях - список можно продолжать до бесконечности. Эту совокупность знаний мы не включаем в знания, отличающие эксперта, но до сих пор еще совсем не ясно, насколько они важны компьютеру для решения узкоспециальной проблемы. Таким образом, любая задача, которую не удается "инкапсулировать" в ограниченный перечень фактов и правил, на сегодняшний день не под силу экспертным системам.
С другой стороны, проблемы, которые могут быть решены перечислением ассоциативных связей между обозримыми совокупностями данных и классами событий, прекрасно подходят для экспертных систем. Например, проблемы, связанные с функционированием промышленных систем (тепловые, вентиляционные или кондиционирования)- диагностика, мониторинг состояния и т.д.,- могут решаться системами, основанными на анализе формальных правил, связывающих энергопотребление здания с параметрами окружающей среды. Уже на нынешнем этапе с помощью экспертных систем решаются задачи эскизного конструирования многокомпонентных объектов из заданного набора примитивов [16].
Определим знания как систему понятий и отношений между ними. Задача, подлежащая решению с помощью экспертной системы, формулируется в терминах принятых в этой системе. Будем различать в конкретной предметной области следующие типы знаний: понятийные, конструктивные, процедурные, фактографические и метазнания.
· Понятийные - набор понятий, которыми пользуются при решении данной задачи. Этот тип знаний вырабатываются в фундаментальных науках и теоретических разделах прикладных наук.
· Конструктивные - это знания о наборах возможных структур объектов и взаимодействии между их частями. Получение этого типа знаний характерно для техники и большей части прикладных наук.
· Процедурные знания - используемые в выбранной предметной области методы, алгоритмы и программы, полезные для данного конкретного приложения, которые можно использовать, передавать и объединять в библиотеки.
· Фактографические - количественные и качественные характеристики объектов и явлений.
· Метазнания - знания о порядке и правилах применения знаний.
Можно определить модель предметной области как:
(модель предметной области)=(понятийные знания)+(конструктивные
знания),
а базу знаний:
(база знаний)=(модель предметной области)+(процедурные
знания)+(метазнания)+(фактографические знания).
Существуют различные формы представления знаний. При практической разработке экспертных систем в настоящее время чаще всего используются эвристические модели - набор средств, (в принципе, любых) передающих свойства и особенности предметной области. Примером эвристической модели могут служить сетевые, фреймовые и продукционные модели.
В большинстве экспертных систем в базе знаний хранятся используемые в данный момент правила и сведения о проблемной области.
Подход, основанный на продукционных правилах, чрезвычайно распространен в экспертных системах. Как правило, они имеют форму ЕСЛИ ... ТОГДА ....ИНАЧЕ.... .
Например,
ЕСЛИ тип_эвм = микро И класс_эвм = средний
ТОГДА эвм = IBM_PC/XT CNF 65
ИНАЧЕ эвм = ДВК-3 CNF 20 .
В приведенном правиле заложено знание о том, что если выбираемый тип ЭВМ микро, а класс ее средний, то с уверенностью 65% желательно приобретение компьютера IBM PC/XT . В противном случае с уверенностью 20% допустим выбор ДВК-3. Набор правил подобной структуры - наиболее распространенное представление знаний в базе продукционного типа.
В основе представления знаний с помощью семантических сетей лежит формализация в виде графа с помеченными вершинами и дугами.
Вершины представляют собой некоторые сущности (объекты, события, процессы, явления и др.), а дуги - отношения между ними. Рассмотрим простейшую семантическую сеть, выражающую знания: произведена классификация ЭВМ по типам - в зависимости от производительности (микро, мини, мега) и по классам - по их стоимости (низкая, средняя, высокая, большая). Дуги данной сети обозначают соответствие.
В некоторых типах экспертных систем применяется представление знаний в виде фреймов. Это специфические объекты, соответствующие понятиям предметной области, имеющие внутреннюю структуру в виде слотов. Слотами могут быть данные, правила, другие фреймы. Фреймы - более сложный способ представления знаний, используемый в наиболее мощных экспертных системах.
Обычно считается, что прагматические требования к экспертной системе сводятся к тому, что она должна быть предназначена для удобной, квалифицированной поддержки информационной деятельности человека в определенной предметной области. Подразумевается наличие развитого диалога, обеспечивающего понимание входных сообщений, выполнение нужных процедур и выдача разумных сообщений в удобной форме. Считают, что сообщения разумны, если они заслуживают доверия и "прозрачны".
Как правило, в ее состав входят:
· Интерфейс, обеспечивающий общение пользователя с экспертной системой в удобной для него форме, он позволяет передавать ей информацию, составляющую содержание базы данных, обратиться к системе с вопросом или за объяснением.
· Рабочая память, хранящая данные (база данных), соответствующие объектам, связь между которыми задается правилами в базе знаний.
· Диспетчер, определяющий порядок функционирования экспертной системы, планирующий порядок постановки и достижения целей.
· Машина вывода - формально-логическая система, реализованная в виде программного модуля, позволяющая логически выводить необходимую для пользователя информацию, исходя из сведений, размещенных в базе знаний.
· База знаний - совокупность всех имеющихся сведений о проблемной области, для которой предназначена данная экспертная система, записанных с помощью определенных формальных структур представления знаний (набора правил, фреймов, семантических сетей и пр.)
Важной компонентой экспертной системы является блок объяснений, дающий возможность пользователю убедиться в обоснованности информации, получаемой им от экспертной системы, позволяющий задавать ей вопросы, и на основании разумных ответов проникаться к ней доверием.
Два подхода получили наибольшее распространение при создании машин логического вывода экспертных систем.
Системы с прямым логическим выводом, в которых производится многократное применение всех правил базы знаний к доступным данным, с возможностью запроса недостающих. Процесс преобразования данных под воздействием машины логического вывода происходит до тех пор, пока возможно изменение их значений.
Системы с прямым логическим выводом более просты в построении, результатом работы у них обычно является целый пакет данных, но их эффективность не всегда соответствует требованиям практических задач.
В системах обратного вывода намечается перечень конечных целей - переменных, значения которых необходимо получить. Далее производится поиск правил, определяющих эти цели. Вычисляются значения всех переменных, входящих в условия правила. Если переменные определяются другими правилами, происходит переход к выяснению истинности их условий, в противном случае значения переменных запрашиваются у пользователя. Процесс экспертизы заканчивается после того, как будут найдены все поставленные цели консультации. Это означает, что должна быть выяснена истинность всех переменных, входящих в задействованные правила. Упрощенный алгоритм функционирования экспертных систем обратного вывода можно представить в следующем виде.
Задается набор целей - переменных, значение которых требуется определить с помощью экспертной системы. Список этих переменных через интерфейс вводится в рабочую память.
В базе знаний машина логического вывода выделяет список правил, из которых можно найти неизвестные переменные в рабочей памяти.
Из условий выделенных правил, определяются остальные переменные, необходимые для применения правил.
По достижению всех первоначально поставленных целей диспетчер прекращает работу машины логического вывода и через интерфейс выводит пользователю значения этих переменных. Логический вывод прекращается также, если нельзя достичь поставленных целей.
В большинстве реально работающих экспертных систем, как правило, используются различные модификации и комбинации рассмотренных выше алгоритмов.
Проектирование экспертных систем имеет определенные отличия от создания традиционного программного продукта. Суть этого отличия в том, что разработчики не пытаются сразу построить конечный продукт, а создают прототип экспертной системы.
Прототип должен удовлетворять основным требованиям к системе при минимальной трудоемкости при его создании. Для удовлетворения этим требованиям используются разнообразные инструментальные средства (специализированные языки искусственного интеллекта, оболочки экспертных систем и др.) ускоряющие процесс разработки. Возможно, что может потребоваться создание не одного, нескольких прототипов, базирующихся на различных способах представления знаний, с последующим выбором наиболее удачного. B том случае, когда достигнута удовлетворительная работа прототипа по всему комплексу задач, возможно принятие решения об окончательном перепрограммировании всей системы на языках низкого уровня, с целью улучшения ее характеристик - увеличения быстродействия, уменьшения занимаемой памяти, повышения эргономических параметров интерфейса.
Опыт разработки экспертных систем позволяет выделить следующие этапы при их создании:
· Идентификация - определение проблемы, ресурсов, целей, экспертов, производится неформальное (вербальное) описание проблемы.
· Концептуализация - выделение ключевых понятий системы, отношений и характеристик, достаточных для полного и детального описания рассматриваемой проблемы.
· Формализация - выражение введенных понятий на некотором формальном языке, построение модели исследуемой области.
· Этап выполнения - создание одного или нескольких прототипов.
· Этап тестирования - оценка выбранного метода представления знаний и работоспособности всей системы в целом на основе проверки прототипа.
· Этап опытной эксплуатации - проверка пригодности системы для конечного пользователя.
· Модификация системы - полное перепрограммирование или доведение прототипа до состояния программного продукта.
· Известны три основные разновидности исполнения экспертных систем:
· Экспертные системы, выполненные в виде отдельных программ, на некотором алгоритмическом языке, база знаний которых является непосредственно частью этой программы. Как правило, такие системы предназначены для решения задач в одной фиксированной предметной области. При построении таких систем применяются как традиционные процедурные языки PASCAL, C и др., так и специализированные языки искусственного интеллекта LISP, PROLOG.
· Оболочки экспертных систем - программный продукт, обладающий средствами представления знаний для определенных предметных областей. Задача пользователя заключается не в непосредственном программировании, а в формализации и вводе знаний с использованием предоставленных оболочкой возможностей. Недостатком этих систем можно считать невозможность охвата одной системой всех существующих предметных областей. Примером могут служить ИНТЕРЭКСПЕРТ, РС+, VP-Expert.
· Генераторы экспертных систем - мощные программные продукты, предназначенные для получения оболочек, ориентированных на то или иное представление знаний в зависимости от рассматриваемой предметной области. Примеры этой разновидности - системы KEE, ART и др.
Не останавливаясь на подробном перечне многочисленных областей применения, отметим лишь некоторые отрасли народного хозяйства развитых стран, в которых методология экспертных систем была успешно опробована: химия, сельское хозяйство, электроника, образование, финансы, геология, медицина, военное дело, программное обеспечение и многие другие.
Из перечня основных типов решаемых ими задач можно выделить интерпретацию, прогноз, диагностику, проектирование, планирование, управление, наблюдение, отладка, ремонт, обучение.
В списке наиболее распространенных в настоящее время за рубежом экспертных систем и их оболочек можно выделить следующие наименования: INSIGT, LOGIAN, NEXPERT, RULE MASTER, KDS, PICON, KNOWLEDGE CRAFT, KESII, S1, TIMM и др.
В качестве критериев, по которым можно судить о возможности создания экспертной системы следует отметить следующие:
· Необходимость символьных рассуждений, очевидно, нет смысла разрабатывать экспертную систему для численных расчетов, например, для преобразований Фурье, интегрирования, решения систем алгебраических уравнений и др.
· Наличие экспертов, компетентных в избранном круге вопросов, которые согласны сотрудничать при создании ЭС.
· Поставленная проблема должна быть достаточно важной и актуальной. Это могут быть проблемы, требующие высокого уровня экспертизы, либо простые, но трудоемкие многократно повторяющиеся проверки. Нет смысла тратить время на решение проблем, которые возникают редко и могут быть разрешены человеком с обычной квалификацией.
· Необходимо четко ограничивать круг решаемых задач, т.е. предметная область выбирается достаточно "узкой", чтобы избежать "комбинаторного взрыва" объема информации необходимой для компетентного решения поставленной задачи.
· Необходима согласованность мнений экспертов о том, как следует решать поставленные задачи, какие факты необходимо использовать и каковы общие правила вынесения суждений. В противном случае невозможно расширить базу знаний за пределы опыта одного человека и осуществить сплав экспертных знаний из нескольких областей.
· Должно быть достаточно исходных данных для проверки работоспособности экспертной системы в выбранной предметной области, чтобы разработчики смогли убедиться в достижимости некоторого заданного уровня ее функционирования.
· Должна обеспечиваться возможность постепенного наращивания системы. База знаний должна легко расширяться и корректироваться, так как правила часто меняются с появлением новых фактов.
· В сборе, оперативном уточнении, кодировании и распространении экспертных знаний.
В эффективном решении проблем, сложность которых превышает человеческие возможности и для которых требуются экспертные знания нескольких областей.
В сохранении наиболее уязвимой ценности коллектива - коллективной памяти.
Создание баз знаний открывает широкие возможности, которые обусловлены безошибочностью и тщательностью, присущими ЭВМ и синтезом знаний экспертов. Если база знаний объединяет информацию по нескольким дисциплинам, то такой "сплав" знаний приобретает дополнительную ценность.
Экспертная система позволяет решить проблему сохранения экспертных знаний, связанную с утратой наиболее квалифицированных экспертов в результате их продвижения по службе, смерти, перехода на другую работу или выхода на пенсию, а также позволит сделать знания легко доступными для тех, кто займет места ушедших экспертов.
2.2 Организация взаимодействия пользователя с экспертной системой
Рассмотрим на конкретном примере организацию взаимодействия пользователя с экспертной системой. Предметная область этой экспертной системы - продажи бухгалтерских и правовых систем (режим диалога с пользователем для правильного выбора программного обеспечения). Предположим, что фрагмент базы знаний содержит следующий набор правил:
ЕСЛИ класс - бухгалтерские программы
И форма конфигурирования системы должна быть жесткой (пользователь не будет иметь возможности сам конфигурировать какие-либо входные или выходные документы)
ТО лучше всего для вас подходит бухгалтерская программа 1С версия 8.0.
ЕСЛИ класс - бухгалтерские программы
И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)
И программа разработана под операционную систему MS Windows.
ТО лучше всего для вас подходит система бухгалтерских программ «Бест».
ЕСЛИ класс - бухгалтерские программы
И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)
И программа разработана под операционную систему Windows Vista.
И программа одноуровневая.
ТО лучше всего вам подходит бухгалтерская программа «Инфо Бухгалтер».
ЕСЛИ класс - бухгалтерские программы
И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы).
И программа разработана под оболочку Windows95.
И программа не одноуровневая.
ТО лучше всего для вас подходит система бухгалтерских программ «Турбо Бухгалтер».
ЕСЛИ тип - правовые системы.
И пополнение информационной базы происходит еженедельно (минимум), посредством курьера.
ТО лучше всего вам подходит правовая программа «Гарант».
ЕСЛИ тип - правовые системы
И пополнение информационной базы происходит ежемесячно (минимум), через покупку нового CD-ROM.
ТО лучше всего вам подходит правовая программа «Кодекс».
ЕСЛИ тип - правовые системы.
И пополнение информационной базы происходит ежемесячно (минимум), через покупку нового CD-ROM или еженедельно (минимум), посредством курьера.
ТО лучше всего вам подходит правовая программа «Эталон».
ЕСЛИ тип - складские программы.
И форма конфигурирования системы должна быть жесткой (пользователь не будет иметь возможности сам конфигурировать какие-либо входные или выходные документы)
ТО лучше всего вам подходит правовая складская программа «Фолио».
ЕСЛИ тип - складские программы.
И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)
ТО лучше всего вам подходит правовая программа склад «1С версия 8.01».
Предположим, что перед пользователем стоит задача узнать какое обеспечение, из широкого спектра предлагаемого сейчас программного обеспечения ему наиболее подойдет, учитывая специфику ПК на который предполагается установить это ПО. С помощь некоторых базовых правил фирмы «Элком-Информ», составлена некоторая экспертная система, которая поможет пользователю в его нелегком выборе. Сеанс диалога может иметь следующий вид:
ЭС: Какое программное обеспечение вы хотели бы приобрести? (правовое, бухгалтерское, складское).
Пользователь: Бухгалтерское
ЭС: Форма конфигурирования системы должна быть жесткой (пользователь не будет иметь возможности сам конфигурировать какие-либо входные или выходные документы)? (да, нет).
Пользователь: Нет.
ЭС: Форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)?
Пользователь: Да
ЭС: Программа должна быть разработана под оболочку Windows95?
Пользователь: Да.
ЭС: Программа должна быть одноуровневая? (да, нет).
Пользователь: Нет.
ЭС: Программа должна быть не одноуровневая?
Пользователь: Да
ЭС: Лучше всего для вас подходит система бухгалтерских программ «Турбо Бухгалтер».
Если пользователь заинтересуется, почему сделаны такие выводы, то экспертная система выдаст эти правила и укажет соответствие между ответами пользователя, правилами и ответом экспертной системы.
2.3 Правила типа "если-то" для представления знаний
В качестве кандидата на использование в экспертной системе можно рассматривать, в принципе, любой непротиворечивый формализм, в рамках которого можно описывать знания о некоторой проблемной области. Однако самым популярным формальным языком представления знаний является язык правил типа "если-то" (или кратко: "если-то"-правил), называемых также продукциями. Каждое такое правило есть, вообще говоря, некоторое условное утверждение, но возможны и различные другие интерпретации. Вот примеры:
· если предварительное условие P то заключение (вывод) C
· если ситуация S то действие A
· если выполнены условия C1 и C2 то не выполнено условие C
"Если - то" - правила обычно оказываются весьма естественным выразительным средством представления знаний. Кроме того, они обладают следующими привлекательными свойствами:
Модульность: каждое правило описывает небольшой, относительно независимый фрагмент знаний.
Возможность инкрементного наращивания: добавление новых правил в базу знаний происходит относительно независимо от других правил.
Удобство модификации (как следствие модульности): старые правила можно изменять и заменять на новые относительно независимо от других правил.
Применение правил способствует прозрачности системы.
Последнее свойство - это важное, относительное свойство экспертных систем. Под прозрачностью мы понимаем способность системы к объяснению принятых решений и полученных результатов. Применение "если-то" - правил облегчает получение ответов на следующие основные типы вопросов пользователя:
· Вопросы типа "как": Как вы пришли к этому выводу?
· Вопросы типа "почему": Почему вас интересует эта информация?
"Если - то" - правила часто применяют для определения логических отношений между понятиями предметной области. Про чисто логические отношения можно сказать, что они принадлежат к "категорическим знаниям", "категорическим" - потому, что соответствующие утверждения всегда, абсолютно верны. Однако в некоторых предметных областях, таких как медицинская диагностика, преобладают "мягкие" или вероятностные знания. Эти знания являются "мягкими" в том смысле, что говорить об их применимости к любым практическим ситуациям можно только до некоторой степени ("часто, но не всегда"). В таких случаях используют модифицированные "если - то" - правила, дополняя их логическую интерпретацию вероятностной оценкой. Например:
если условие A, то заключение B с уверенностью F
Вообще говоря, если вы хотите разработать серьезную экспертную систему для некоторой выбранной вами предметной области, вы должны провести консультации с экспертами в этой области и многое узнать о ней сами. Достигнуть определенного понимания предметной области после общения с экспертами и чтения литературы, а затем облечь это понимание в форму представления знаний в рамках выбранного формального языка - искусство, называемое инженерией знаний. Как правило, это сложная задача, требующая больших усилий.
Рассмотрим небольшую базу знаний, которая может помочь локализовать неисправности в простой электрической схеме, состоящей из электрических приборов и предохранителей. Электрическая схема показана на рис. 6. Вот одно из возможных правил:
Подобные документы
Основные этапы математического моделирования. Метод Эйлера как наиболее простой численный метод решения обыкновенных дифференциальных уравнений. Написание компьютерной программы, которая позволит изучать графики системы дифференциальных уравнений.
курсовая работа [1,9 M], добавлен 05.01.2013Решение линейных дифференциальных уравнений численными и символьными методами в рамках пакета компьютерной математики MathCAD. Сравнения результов решений и применение их при исследовании функционирования автоматических систем и электрических агрегатов.
контрольная работа [51,5 K], добавлен 07.05.2009Решение системы дифференциальных уравнений, заданной в нормальной форме Коши. Определение аналитических зависимостей изменения переменных состояния системы с использованием преобразования Лапласа. Численный метод решения системы c помощью Mathcad.
практическая работа [657,1 K], добавлен 05.12.2009Классификация автоматизированных информационных систем; их использование для систем управления. Характеристика предоставляемых услуг ООО "Континент"; анализ эффективности применения информационных технологий конечного пользователя на предприятии.
дипломная работа [4,2 M], добавлен 05.12.2011Возможности математического пакета MathCad в среде Windows 98 для использования матричной алгебры и решения системы линейных алгебраических уравнений. Методы решения систем линейных алгебраических уравнений. Сравнение метода Гаусса с методом MathCad.
практическая работа [62,6 K], добавлен 05.12.2009Решение системы дифференциальных уравнений, создание функций и обработка экспериментальных данных с помощью языка программирования Mathematica. Сравнение между использованием циклических операций в системе Mathematica и в математическом пакете Maple.
отчет по практике [2,1 M], добавлен 09.12.2013Информационные технологии, сущность и особенности применения в строительстве. Анализ деятельности информационных технологий, основные направления совершенствования применения информационных технологий, безопасность жизнедеятельности на ООО "Строитель".
дипломная работа [1,7 M], добавлен 26.09.2010Анализ показателей оценки эффективности информационных систем и технологий. Расчет трудовых и стоимостных показателей и показателей достоверности информации, разработка программы для ускорения методов обработки данных. Интерфейс и листинг приложения.
дипломная работа [1,2 M], добавлен 14.01.2012Понятие, виды и принципы информационных технологий. Педагогические цели и методические возможности использования информационных технологий в обучении музыке. Классификация педагогических программных средств. Тенденции развития музыкальной педагогики.
реферат [221,8 K], добавлен 16.12.2010Области применения и реализации информационных систем. Анализ использования Web-технологий. Создание физической и логической модели данных. Проектирование информационных систем с Web-доступом. Функции Института Искусств и Информационных Технологий.
дипломная работа [3,8 M], добавлен 23.09.2013