ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.01.2024
Просмотров: 299
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Второй подход, называемый структурным, или когнитивным, осуществляется путем выделения элементов предметной области, их взаимосвязей и семантических отношений.
Этап формализации
Далее все ключевые понятия и отношения выражаются на некотором формальном языке, который либо выбирается из числа уже существующих, либо создается заново. Другими словами, на данном этапе определяются состав средств и способы представления декларативных и процедурных знаний, осуществляется это представление и, в итоге, формируется описание решения задачи ЭС на предложенном (инженером по знаниям) формальном языке.
Результатом этапа формализации является описание того, как рассматриваемая задача может быть представлена в выбранной или разработанной формальной системе. Сюда относится указание способов представления знаний (фреймы, сценарии, семантические сети и т. д.), а также определение способов манипулирования этими знаниями (логический вывод, аналитическая модель, статистическая модель и др.) и интерпретации знаний.
Этап выполнения
Цель этого этапа — создание одного или нескольких прототипов ЭС, решающих требуемые задачи. Затем по результатам их тестирования и опытной эксплуатации создается конечный продукт, пригодный для промышленного использования.
Разработка прототипа состоит в программировании его компонентов (или их выборе из известных инструментальных средств) и в наполнении базы знаний.
Главное в создании прототипа заключается в том, чтобы он обеспечивал проверку адекватности идей, методов и способов представления знаний решаемым задачам. Создание первого прототипа должно подтвердить, что выбранные методы решений и способы представления пригодны для успешного решения по крайней мере части задач из актуальной предметной области, а также должно продемонстрировать тенденцию к получению высококачественных и эффективных решений для всех задач предметной области по мере увеличения объема знаний.
После разработки первого прототипа («ЭС-1») круг предлагаемых для решения задач расширяется, собираются пожелания и замечания пользователей, которые должны быть учтены в очередной версии системы
(«ЭС-2» и т. д.).
Этап тестирования
В ходе данного этапа производится оценка выбранного способа представления знаний в ЭС в целом. Для этого инженер по знаниям подыскивает примеры, обеспечивающие проверку всех возможностей разработанной ЭС.
Различают следующие источники неудач в работе системы: тестовые примеры, ввод-вывод, правила вывода и управляющие стратегии.
Показательные тестовые примеры являются наиболее очевидной причиной неудачной работы ЭС. В худшем случае тестовые примеры могут оказаться вообще не из той предметной области, на которую рассчитана данная ЭС, однако гораздо чаще множество тестовых примеров оказывается слишком однородным и не охватывает всю требуемую предметную область.
Поэтому при подготовке тестовых примеров необходимо классифицировать их по подпроблемам предметной области, выделяя стандартные случаи, определяя границы трудных ситуаций и т. п.
Ввод-вывод характеризуется данными, приобретенными в ходе диалога с экспертом, и заключениями, предъявленными ЭС в ходе объяснений.
Методы приобретения данных могут не давать требуемых результатов из-за того, что, например, экспертной системой были заданы неправильные вопросы или собрана не вся необходимая информация. Кроме того, вопросы системы могут быть трудными для понимания, многозначными и не соответствующими знаниям пользователя. Ошибки при вводе могут возникать также и из-за неудобного для пользователя входного языка. В ряде приложений для пользователя удобен ввод не только в печатной, но и в графической или звуковой форме.
Выходные сообщения (заключения) системы могут оказаться непонятными пользователю (или эксперту) по разным причинам. Например, их может быть слишком много или, наоборот, слишком мало. Также причиной подобных ошибок может являться неудачная организация, упорядоченность заключений или не подходящий для пользователя уровень абстракций с непонятной ему лексикой.
Наиболее распространенный источник ошибок в рассуждениях касается правил вывода. Одна важная причина здесь часто кроется в отсутствии учета взаимозависимости сформированных правил. Другая причина заключается в ошибочности, противоречивости и/или неполноте используемых правил. Если неверна посылка правила, то это может привести к употреблению правила в неподходящем контексте. Если ошибочно действие правила, то трудно предсказать конечный результат. Правило также может быть ошибочно, если при корректности его условия и действия нарушено соответствие между ними.
Нередко к ошибкам в работе ЭС приводят и применяемые управляющие стратегии. Недостатки в них могут привести к чрезмерно сложным заключениям и объяснениям ЭС.
Этап опытной эксплуатации
На этом этапе проверяется пригодность ЭС для конечного пользователя, которая определяется в основном удобством работы с ней и ее полезностью. Под полезностью ЭС при этом понимается ее способность в ходе диалога определять потребности пользователя, выявлять и устранять причины неудач в работе ЭС, а также удовлетворять потребности пользователя (т. е. решать поставленные задачи). В свою очередь, удобство работы с ЭС подразумевает естественность взаимодействия с ней (общение в привычном, не утомляющем пользователя виде), гибкость ЭС (способность системы настраиваться на различных пользователей, а также учитывать изменения в квалификации одного и того же пользователя) и устойчивость системы к ошибкам (способность не выходить из строя при ошибочных действиях неопытного пользователя).
В ходе разработки ЭС почти всегда осуществляется ее модификация.
Выделяют следующие виды модификации системы: переформулирование понятий и требований, переконструирование представления знаний в системе и усовершенствование прототипа.
Вопросы для самопроверки:
1.
Назовите два основных направления искусственного интеллекта.
Какова основная идея каждого из этих направлений?
2.
Назовите два основных подхода к моделированию искусственного интеллекта.
3.
Назовите основные области применения систем искусственного интеллекта.
4.
Назовите три известных вам комплекса вычислительных средств систем искусственного интеллекта. Каково их назначение?
5.
Перечислите направления развития искусственного интеллекта.
6.
Что такое данные?
7.
Что такое знания?
8.
В чем состоит основное отличие базы знаний от базы данных?
9.
Что такое семантическая сеть? Приведите пример семантической сети.
10.
Что такое фрейм? Приведите пример фрейма.
11.
Назовите три уровня общности фреймов.
12.
Как представить знания в продукционной модели? Приведите пример продукционной модели.
13.
Что такое экспертная система?
14.
В чем состоит отличие экспертных систем от систем обработки данных?
15.
Перечислите основные компоненты статической экспертной системы. Для чего предназначен каждый из этих компонентов?
ГЛАВА 2.
ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
1 2 3 4 5 6 7 8 9
ТЕМА 2.1 МЕТОДОЛОГИИ ПРОГРАММИРОВАНИЯ
План лекции:
2.1.1 Методология императивного программирования
2.1.2 Методология объектно-ориентированного программирования
2.1.3 Методология функционального программирования
2.1.4 Методология логического программирования
2.1.5 Методология программирования в ограничениях
2.1.6 Методология нейросетевого программирования
2.1.1 Методология императивного программирования
На сегодня существует не так много методологий, особенно полных, т. е. учитывающих все стадии жизненного цикла программного обеспечения.
Именно методология определяет, какие языки и системы будут применяться для разработки программного обеспечения и какой технологический подход будет при этом использован.
Подход к методологиям заключается в том, что существует некоторое ядро методологии со своими методами, которое уточняется некоторыми дополнительными особенностями. Ядра же методологий определяются способом описания алгоритмов. Перечислим основные ядра методологий и посвятим следующие разделы книги их подробному анализу:
- методология императивного программирования;
- методология объектно-ориентированного программирования;
- методология функционального программирования;
- методология логического программирования.
Некоторые методологии имеют алгоритмическое происхождение.
Четыре главных модели алгоритма математически эквивалентны, но на практике они породили разные направления в программировании, в том числе некоторые основные методологии:
- абстрактные вычислительные машины Тьюринга и Поста — определяют методологию императивного программирования;
- рекурсивные функции Гильберта и Аккермана — от них унаследовала свои идеи и конструкции методология структурного программирования;
- лямбда-исчисление Черча, Шейнфинкеля и Карри — эти идеи активно развиваются в методологии функционального программирования;
- нормальные алгоритмы Маркова — эта модель послужила основой логического программирования и обработки символьной информации.
Данный подход характеризуется принципом последовательного изменения состояния вычислителя пошаговым образом. При этом управление изменениями полностью определено и полностью контролируемо.
Императивное программирование — это исторически первая аппаратно поддерживаемая методология программирования. Она ориентирована на классическую фон Неймановскую модель, остававшуюся долгое время единственной аппаратной архитектурой, получившей широкое практическое применение.
Императивное программирование основано на описании последовательного изменения состояний вычислителя.
Если под вычислителем понимать современный компьютер, то его состоянием будут значения всех его ячеек памяти, состояние процессора (в том числе значение указателя текущей команды) и всех сопряженных устройств. Единственная структура данных здесь — это последовательность ячеек (пар «адрес — значение») с линейно упорядоченными адресами.
Языки, поддерживающие данную вычислительную модель, являются компактным средством описания функции переходов между состояниями вычислителя.
В качестве математической модели императивное программирование использует машину Тьюринга—Поста — абстрактное вычислительное устройство, предложенное на заре компьютерной эры для описания алгоритмов.
Основным синтаксическим понятием здесь является оператор, причем возможно несколько разновидностей (групп) таких операторов. Первая группа — это атомарные операторы, у которых никакая часть не является самостоятельным оператором
(например, операторы присваивания, безусловного перехода, вызова процедуры и т. п.). Вторая группа — структурные операторы, объединяющие другие операторы в новый, более крупный оператор (например, составной оператор, оператор выбора, цикла и т. д.).
Операторы исполняются в порядке, предписанном объемлющим их структурным оператором. Если это составной оператор, то входящие в него операторы исполняются в том порядке, в котором они записаны.
Традиционное средство структурирования
— подпрограмма
(процедура или функция). Подпрограммы имеют параметры и локальные определения и могут быть вызваны рекурсивно. Функции же возвращают значения как результат своей работы.
Императивные языки программирования манипулируют данными в пошаговом режиме, используя последовательные инструкции и применяя их к тем или иным данным. Наиболее известные и распространенные императивные языки программирования — Fortran, Algol, Pascal, C.
Императивное программирование наиболее пригодно для решения задач, в которых последовательное исполнение каких-либо команд является естественным. Примером может служить управление современными
аппаратными средствами: поскольку практически все современные компьютеры императивны, эта методология позволяет получать достаточно эффективный исполняемый код. Однако с ростом сложности задачи императивные программы становятся все менее читабельными.
Важнейшим развитием императивной методологии является методология структурного императивного программирования — подход, заключающийся в отказе от использования глобальных данных и оператора безусловного перехода, в разработке модулей с сильной связностью и обеспечении их независимости от других модулей. Этот подход базируется на двух основных принципах:
- последовательная декомпозиция алгоритма решения задачи сверху вниз;
- использование структурного кодирования.
Создателем структурного подхода считается Эдсгер Дейкстра. Ему также принадлежит попытка (к сожалению, совершенно неприменимая для массового программирования) соединить структурное программирование с методами доказательства правильности программ.
2.1.2 Методология объектно-ориентированного программирования
Этот подход использует объектную декомпозицию, при которой статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами.
На возникновение объектного мышления оказали влияние моделирование и представление данных, графические пользовательские интерфейсы и системное программирование (с понятием «процесс»).
Исследования в области моделирования реальных систем привели к необходимости создания средств естественного описания сущностей, которые в них встречаются, — объектов и событий. Позже оказалось, что
Важнейшим развитием императивной методологии является методология структурного императивного программирования — подход, заключающийся в отказе от использования глобальных данных и оператора безусловного перехода, в разработке модулей с сильной связностью и обеспечении их независимости от других модулей. Этот подход базируется на двух основных принципах:
- последовательная декомпозиция алгоритма решения задачи сверху вниз;
- использование структурного кодирования.
Создателем структурного подхода считается Эдсгер Дейкстра. Ему также принадлежит попытка (к сожалению, совершенно неприменимая для массового программирования) соединить структурное программирование с методами доказательства правильности программ.
2.1.2 Методология объектно-ориентированного программирования
Этот подход использует объектную декомпозицию, при которой статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами.
На возникновение объектного мышления оказали влияние моделирование и представление данных, графические пользовательские интерфейсы и системное программирование (с понятием «процесс»).
Исследования в области моделирования реальных систем привели к необходимости создания средств естественного описания сущностей, которые в них встречаются, — объектов и событий. Позже оказалось, что