Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ВОПРОСЫ ГОСУДАРСТВЕННОГО ЭКЗАМЕНА

.pdf
Скачиваний:
22
Добавлен:
12.04.2015
Размер:
4.23 Mб
Скачать

171

К оглавлению ↑

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

Примеры задач, решаемых экспертными системами.

Перечень типовых задач, решаемых экспертными системами, включает:

извлечение информации из первичных данных (таких как сигналы, поступающие от гидролокатора);

диагностика неисправностей (как в технических системах, так и в человеческом организме);

структурный анализ сложных объектов (например, химических соединений);

выбор конфигурации сложных многокомпонентных систем (например, распределенных компьютерных систем);

планирование последовательности выполнения операций, приводящих к заданной цели (например, выполняемых промышленными роботами).

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

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

Рис. 1.7 Этапы разработки ЭС.

Этап идентификации

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

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

172

К оглавлению ↑

ключевые понятия (объекты), их входные (выходные) данные; предположительный вид решения, а также знания, относящиеся к решаемой задаче.

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

Этап концептуализации

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

Существует два подхода к процессу построения модели предметной области, которая является целью разработчиков ЭС на этапе концептуализации. Признаковый или атрибутивный подход предполагает наличие полученной от экспертов информации в виде троек объект — атрибут — значение атрибута, а также наличие обучающей информации. Этот подход развивается в рамках направления, получившего название формирование знаний или "машинное обучение" (machine learning).

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

Этап формализации

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

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

Этап выполнения

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

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

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

Этап тестирования

173

К оглавлению ↑

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

Различают следующие источники неудач в работе системы: тестовые примеры, ввод-вывод, правила вывода, управляющие стратегии.

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

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

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

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

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

Этап опытной эксплуатации

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

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

Системы с нечеткой логикой.

Нечеткая логика (fuzzy logic) является обобщением привычной булевой логики, оперирующей с двоичными числами, которые соответствуют понятиям истина и ложь. В нечеткой логике эти понятия обобщаются и на все промежуточные между истиной и ложью состояния. В соответствии с этим нечеткая логика оперирует числами из интервала [0,1], которые отражают степень истинности

174

К оглавлению ↑

высказывания. Впервые теория нечетких множеств была сформулирована профессором Калифорнийского университета Заде.

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

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

Рассмотрим пример такого обобщения. Пусть имеются нечеткие числа a и b. Суммой двух нечетких чисел называется нечеткое число, совпадающее с максимальным операндом: c = a + b = max(a,b). Произведением двух нечетких чисел называется нечеткое число, равное минимальному операнду: c = a * b = min(a,b). В соответствии с введенными определениями множество нечетких чисел является замкнутым относительно данных операций.

Одним из важных применений нечеткой логики выступают нечеткие экспертные системы (НЭС), в которых логические правила вывода оперируют с нечеткими операциями. Для знакомства с НЭС и другими приложениями нечеткой логики можно порекомендовать книгу японских авторов Т.Тэрано, К.Асаи и М.Сугэно.

В этой части книги мы остановимся на формулировке нейросетевых моделей на языке нечеткой логики. В модели Хопфилда с обучением сети по правилу Хэбба все вычисления основаны на операциях сложения и умножения. Если описывать значения весов и активности нейронов нечеткими числами, то правило Хэбба может быть сформулировано на языке нечетких операций. Вклад в матрицу связей от образа x(k) принимает вид:

Полная матрица связей получается нечетким суммированием отдельных вкладов:

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

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

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

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

Литература: [1], [5].

4. Логическое программирование

Методология логического программирования.

175

К оглавлению ↑

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

Логическое программирование начинает свой отсчет времени с конца 60-х годов XX века, когда Корделл Грин предложил использовать резолюцию как основу логического программирования. Алан Колмеро создал язык логического программирования Prolog в 1971 году. Логическое программирование пережило пик популярности в середине 80-х годов XX века, когда оно было положено в основу проекта разработки программного и аппаратного обеспечения вычислительных систем пятого поколения.

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

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

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

Нелинейность структуры программы является особенностью декларативного подхода и, строго говоря, представляет собой оригинальную особенность, а не объективный недостаток.

в качестве примеров языков логического программирования можно привести Prolog (название возникло от слов PROgramming in LOGic) и Mercury.

Методы и концепции.

Метод единообразия заключается в одинаковом применении механизма логического доказательства ко всей программе.

Метод унификации - это механизм сопоставления с образцом для создания и декомпозиции структур данных.

Общие сведения о языке Prolog, связь с исчислением предикатов.

ПРОЛОГ является языком исчисления предикатов. Предикат – это логическая формула от одного или нескольких аргументов. Можно сказать, что предикат – это функция, отображающая множество произвольной природы в множество {ложно, истинно}.

Обозначаются предикаты F(x), F(x, y), F(x, y, z) и т. д..

Одноместный предикат F(x), определенный на предметной области M, является истинным, если у объекта x есть свойство F, и ложным – если этого свойства нет.

Двухместный предикат F(x, y) является истинным, если объекты x и y находятся в отношении

F.

Многоместный предикат F(x1 , x2 , x3 ,..., xN ) задает отношение между элементами x1 , x2 , ..., xN и интерпретируется как обозначение высказывания: “Элементы x1 , x2, x N находятся между собой в отношении F”.

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

Примеры предикатов: хищник (Х)

супруги (X,Y)

фио (X,Y,Z)

Предикаты, которые нельзя разбить на отдельные компоненты, называют атомарными. Сложные формулы строятся путем комбинирования атомарных предикатов логическими соединителями И, ИЛИ и НЕ.

176

К оглавлению ↑

Пролог (Prolog) - это программирование на языке логики.

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

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

Пролог - это декларативный язык. Он отличается от процедурных (императивных) языков:

императивный - как делать

декларативный - что делать Порядок выполнения Пролог программы определяется:

семантикой языка

новыми фактами, которые Пролог выводит из имеющихся

отчасти той управляющей информацией, которую задает программист Пролог - это логический язык, в котором реализована логика предикатов 1-го порядка.

Всамом языке предусмотрены элементы интеллектуальности:

сопоставление с образцом

поиск с возвратом

недетерменизм

Модель вычислений

Система реализующая логический вывод в исчислении предикатов 1-го порядка

Хорнова модель вычислений: доказательство некоторых формул исчисления как вычисление

"Выражение Хорна" (дизъюнкты,клаузы) + принцип резолюции (как логический вывод)

1.A(t1,t2...tn) - факт

A - формула t1,t2...tn - термы

2.~A1V~A2V...~AnVAm

(тут используют только имена формул, скобки и термы опущены) 3. Правило преобразования дизъюнкции в конъюнкции:

A1&A2&...&An-->Am

"Из A1 и ... An следует Am"

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

A1VA2...VAn

Это регулярная процедура последовательного сопоставления с образцом (алгоритм унификации)

A1&A2&...&An-->Am A1,A2,...,An - подцели

Am - цель

Доказательство правила выполняется от подцели к цели.

Этапы программирования на Прологе

объявление фактов об объектах и отношениях

определение правил

формировки вопросов Пример 1:

Факты

Объекты

Отношение

 

 

 

 

 

 

"Иван - отец Алексея"

"Иван","Алексей"

отец

"Серебро - ценное"

серебро

ценное

"Петр дает книгу Ольге"

"Петр",книга,"Ольга"

дает

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

Отношение: отец("Иван","Алексей").

177

К оглавлению ↑

ценное(серебро). дает("Петр","Ольга",книга).

? - отец("Иван",Y). Y - переменная

Концепция резолюции в языке Prolog.

Логическое программирование основывается на логическом выводе и доказательстве теорем, которые позволяет осуществлять исчисление предикатов. Одним из используемых для этого методов является резолюция — правило логического вывода, позволяющее получать одни высказывания из других. Для использования принципа резолюции логические высказывания должны быть приведены к дизъюнктивной форме, имеющей следующий общий вид: A1ÙA2Ù…ÙAm®B1ÚB2Ú…ÚBn или, сокращенно, A®B, где Ai и Bj — термы. Ограниченный вид дизъюнктивных форм,

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

Концепция резолюции заключается в следующем. Предположим, что заданы два следующих высказывания: A®B и B®C. Логически из этого следует, что A®C. Процесс вывода этого высказывания представляет собой резолюцию и в упрощенном виде выглядит следующим образом. Образуется новое высказывание, левая часть которого есть конъюнкция левых частей исходных высказываний, а правая часть — конъюнкция их правых частей, т.е. (AÙB)®(BÙC). Затем термы, появляющиеся в обеих частях нового высказывания, удаляются из него, в результате чего получается выводимое высказывание. Наличие переменных в высказываниях приводит к необходимости выполнять в процессе резолюции поиск их значений, позволяющих установить соответствие между термами. Алгоритм определения необходимых подстановок значений переменных с целью приведения в соответствие двух выражений исчисления предикатов называетсяунификацией. Временное присваивание значений переменным с целью унификации называется конкретизацией. Обычно во время резолюции переменная конкретизируется неким значением, не полностью удовлетворяющим требуемому соответствию. В этом случае надо конкретизировать эту переменную новым значением. Процесс возврата к предыдущему состоянию

называетсябектрекингом (backtracking).

Предикаты (факты), правила, цели.

Все операторы в языке Prolog образуются из термов. Терм может быть константой, переменной или структурой, составленной из других термов. Константа — это атом или целое число. Переменная — это любая строка букв, цифр и символов подчеркивания, начинающаяся с прописной буквы. Связывание переменной со значением и типом называется конкретизацией и происходит только в процессе резолюции. Конкретизации осуществляются только для того, чтобы удовлетворить некую цель, представляющую собой доказательство или опровержение некоторого высказывания. Структура соответствует атомарному высказыванию исчисления предикатов и имеет ту же форму: функтор(терм1, …, термn). Функтор может быть любым атомом и служит для

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

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

178

К оглавлению ↑

соответствующий хорновскому дизъюнкту с головой и называемый правилом, имеет следующий общий вид:

<структура0> :- <структура1>, …, <структураn>

где <структура0> представляет собой заключение, а <структура1>, …, <структураn> — предпосылки. Разделяющая предпосылки запятая соответствует оператору конъюнкции. Если высказывания содержат переменные, то подразумевается, что переменные неявно связаны с квантором всеобщности. Данный оператор интерпретируется как правило «если то», а именно: если предпосылка является истинной или она может быть сделана истинной путем некоторой конкретизации её переменных, то следствие считается истинным.

Факты и правила представляют сведения, необходимые для решения задачи. Для описания того, что требуется получить, служат высказывания, называемые целямиили запросами. В языке Prolog цель имеет синтаксическую форму, эквивалентную форме хорновского дизъюнкта без головы. Определение цели соответствует формулировке теоремы, которую система должна доказать или опровергнуть на основе заданных фактов и правил. На любой корректный запрос система реализации языка Prolog должна дать ответ “yes” или “no”. Ответ “yes” означает, что система доказала, что цель была истинной при заданных фактах и правилах. Ответ “no” указывает, что либо было доказано, что цель ложна, либо система неспособна ни доказать, ни опровергнуть её на основе имеющихся сведений. В качестве целей могут выступать высказывания в форме конъюнкции и высказывания, включающие переменные. Если цель включает в себя конъюнкцию фактов или структур, то они называются подцелями. При наличии переменных система пытается найти их конкретизации, делающие цель истинной.

Организация повторов в языке Prolog.

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

БАЗИС РЕКУРСИИ - это предложение, определяющее некую начальную ситуацию или ситуацию в момент прекращения. Как правило, в этом предложении записывается некий простейший случай, при котором ответ получается сразу даже без использования рекурсии.

ШАГ РЕКУРСИИ - это правило, в теле которого обязательно содержится, в качестве подцели, вызов определяемого предиката. Если мы хотим избежать зацикливания, определяемый предикат должен вызываться не от тех же параметров, которые указаны в заголовке правила. Параметры должны изменяться на каждом шаге так, чтобы в итоге либо сработал базис рекурсии, либо условие выхода из рекурсии, размещенное в самом правиле.

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

НЕДОСТАТОК: может не хватать для работы стека. При каждом рекурсивном вызове предиката в специальном стековом фрейме запоминаются все промежуточные переменные, которые могут понадобиться. Максимальный размер стека при работе под управлением операционной системы MS DOS всего 64 Кб. Этого достаточно для размещения около трех-четырех тысяч стековых фреймов (в зависимости от количества и размера промежуточных переменных). При больших входных значениях стека может не хватить.

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

179

К оглавлению ↑

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

Литература: [1], [5].

180

К оглавлению ↑

ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ В ОБРАЗОВАНИИ

1. Процесс проектирования информационных систем в образовании

Понятие «проектирование», «проект».

В самом общем виде проект (англ. project) — это «что-либо, что задумывается или планируется, например, большое предприятие»

Согласно ISO 21500, проект — это уникальный набор процессов, состоящих из скоординированных и управляемых задач с начальной и конечной датами, предпринятых для достижения цели. Достижение цели проекта требует получения результатов, соответствующих определённым заранее требованиям, в том числе ограничения на получения результатов, таких как время, деньги и ресурсы.

С точки зрения системного подхода, проект может рассматриваться как процесс перехода из исходного состояния в конечное — результат при участии ряда ограничений и механизмов.

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

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

Понятие «проектирование» не включает в себя стадию реализации проекта.