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

Методы вывода и поиска решений в продукционных системах.

Методы вывода на основе прямой и обратной цепочек.

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

Механизм вывода сопоставляет каждое правило, хранящееся в БЗ с фактами, содержащимися в БД. Когда часть правила если (условие) подходит факту, правило срабатывает и его часть тогда (действие) исполняется . Срабатывающее правило может изменить множество фактов путем добавления нового факта, как показано на рис.6.1. Буквы в БД и БЗ используются для представления ситуаций и понятий.

Рис.6.1. Цикл механизма вывода через процедуру «сопоставление – срабатывание»

Сопоставление частей если правил с фактами создает цепочку вывода. Цепочка вывода показывает как ЭС применяет правила для получения заключения. Для иллюстрации метода вывода на основе цепочки, рассмотрим простой пример.

Допустим, БД первоначально включает факты А,В,С,D и Е, а БЗ содержит только три правила:

Правило 1. Y&D → Z

Правило 2. X&B&E→Y

Правило 3. A→X

Цепочка вывода на рис. 6.2. показывает, как ЭС применяет правила для вывода факта Z.

Рис.6.2. Пример цепочки вывода.

Сначала срабатывает Правило 3 для вывода нового факта Х изданного факта A. Тогда Правило 2 выполняется для вывода факта Y из первоначально фактов В и Е, а также уже известного факта Х. И наконец, Правило 1 применяет первоначально известный факт D и только что полученный факт Y для прихода и заключению Z.

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

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

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

Продукционные системы, в которых сначала анализируется антецедентная часть (условия), имеют так называемую условно-выводимую архитектуру. Примером экспертной системы такой ар­хитектуры является META-DENDRAL.

Альтернативным типом архитектуры, которая достаточно час­то используется в экспертных системах, являются целе-выводимые (действие-выводимые или консеквент-выводимые) продукци­онные системы. Например, правило вида

может быть интерпретировано, как

«Логическая конъюнкция А, В и С влечет D» или

«Чтобы доказать D, необходимо установить А, В, С».

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

Рассмотрим упрощенный пример продукционной системы с консеквент-выводимой архитектурой. Буквами здесь обозначе­ны элементы БД и они считаются истинными, если содержатся в ней.

Правило 1: A&B&C→D

Правило 2: D&F→G

Правило 3:A&J→G

Правило 4: В→С

Правило 5: F→B

Правило 6: L→J

Правило 7: G→H

Предположим, цель состоит в том, чтобы вывести истинность Н. В первую очередь проверяется, находится ли Н в БД? Так как в данном случае это не так, то система пытается вывести истин­ность Н, используя правила, имеющие Н в правой части. Таким является правило 7. Теперь система пытается вывести истинность G, так как истинность последнего влечет за собой истинность Н. Снова проверяется БД: в БД нет G, следовательно, организуется полек правила, содержащего G в правой части. Таких правил несколько (два или три). В качестве стратегии «разрешения кон­фликта» будем считать, что правила упорядочены по приоритету, причем правилу с наименьшим номером соответствует больший приоритет.

В данном случае выбирается правило 2, поэтому целью теперь становится вывести истинность D и F. Для этого достаточно по­казать, что А - истинно (так как находится в БД), В - истинно (согласно правилу 5), С - истинно (согласно правилу 4). Так как истинность D и F доказана, то из правила 2 следует истинность G, а из истинности G - следует истинность Н (правило 7). Таким образом цель достигнута. Элементы, истинность которых доказана, добавляются в БД. В данном случае это - элементы Н, G, D, С. В. Примерами целе-выводимой архитектуры является MYCIN.

Выводы на фреймах и в семантических сетях.

Вывод на фреймах.

Структура данных фрейма.

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

Фреймовая система – это иерархическая структура, узлами, которой являются фреймы с определенной структурой данных.

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

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

3. Указатели наследования. Эти указатели касаются только фреймовых систем иерархического типа, основанных на отношениях иерархического типа, основанных на отношениях «абстрактное - конкретное». Они показывают, какую информацию об атрибутах слотов во фрейме верхнего уровня наследуют слоты с такими же именами во фрейме нижнего уровня.

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

5. Значение слота. Здесь вводится значение слота. Значение слота должно совпадать с указанным типом данных этого слота, кроме того, должно выполняться условие наследоваия.

6. Процедура – демон. Существуют следующие типы процедур – демонов: если-необходимо, если-изменено, если-добавлено, если-удалено.

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

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

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

Вывод во фреймовой системе.

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

Таким образом, можно выделить три основных процесса, про­исходящих во фреймовых системах:

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

2. Активация фреймов. В том случае, когда фрейм считается подходящим для описания данной ситуации, осуществляется его активация глобальным процессом. Если обнаруживается слишком много отличий содержимого фреймов от специфических особен­ностей рассматриваемой ситуации или они носят достаточно серь­езный характер, организуется поиск другого, более подходящего фрейма. При этом «отвергнутый» фрейм может содержать указа­ния на то, какие именно фреймы следует исследовать вместо дан­ного (например, более общие или наоборот, более специализиро­ванные). Часть данных, используемых для заполнения слотов «от­вергнутого» фрейма, может быть использована при рассмотрении новых кандидатов.

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

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

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

1. Когда активировать фрейм? Подобно «демонам» фреймы могут активировать сами себя в случае, если распознана соответ­ствующая ситуация.

3. Когда осуществлять заполнение слотов - в момент вызова или позднее, по мере необходимости?

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

Неопределенность.

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

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

Хотя неопределенность широко распространена в реальном мире, ее обработка в практических системах ИИ является весьма ограниченной.

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

Поэтому необходимо улучшать методы работы с неопределенностью.

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

Вероятностный вывод.

Вероятностный подход.

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

Рассмотрим основные положения байесовского метода и правило Байеса.

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

Условная вероятность математически обозначается как Р(А |B) , в которой вертикальная черта изображает «имело место», а полное выражение вероятности интерпретируется как «Условная вероятность того, что произойдет событие А В ».

p(А |B)= (6.1)

Количество возможных совместный проявлений А и В , или вероятность того, что А и В произойдут совместно, называется совместной вероятностью А и В .

Математически это представляется Р(АÇВ) .

Количество способов возможного проявления В является вероятностью В , Р(В) , и тогда

(6.2)

Так же, условная вероятность того, что произойдет событие В при условии, что имело место событие А определяется

(6.3)

p(ВÇА) =p(В|А)´p(А) (6.4)

Совместная вероятность является коммутативной, таким образом

p(АÇВ)= p(ВÇ А)

Следовательно

p(АÇВ) =p(В|А)´Р(А) (6.5)

Подстановка (6.5) в (6.2) приводит к следующему уравнению:

(6.6)

p(А|В) А при условии, что имело место событие В ;

p(В|А) – условная вероятность того, что произойдет событие В при условии, что имело место событие А ;

p(А) А;

p(В) - вероятность того, что произойдет событие В .

Уравнение (6.6) известно как правило (или формула) Байеса, которое названо именем Томаса Байеса, британского математика XVIII века, который предложил это правило.

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

Следующее множество уравнений может быть выведено из (6.2):

p(АÇВ 1) =p(А|В 1)´p(В 1)

p(АÇВ 2) =p(А|В 2)´p(В 2)

p(АÇВ n) =p(А|В n)´p(В n)

Или после объединения.

(6.7)

Если (6.7) просуммировано по всему полному перечню событий B i , мы получаем

(6.8)

Это приводит к следующему уравнению условной вероятности, т.е. Р(А) выражается с помощью формулы полной вероятности:

(6.9)

Если проявление события А зависит только от двух взаимно исключающих событий, например В и НЕ В , тогда (6.9) будет выглядеть так:

p(А)=p(А|B)´p(B)+p(A\ØB)´p(ØB) (6.10)

Где Ø - логическое НЕ.

p(В)=p(В|А)´p(А)+p(В\ØА)´p(ØА) (6.11)

Подставим теперь (6.11) в формулу Байеса (6.6), что приводит к

Уравнение (6.12) обеспечивает основу использования теории вероятности для управления неопределенностью в интеллектуальных системах.

Байесовский вывод.

Используя уравнение (6.12) мы можем теперь от теории вероятностей обратить наше внимание вновь к интеллектуальным системам . Допустим все правила в БЗ представлены в следующей форме:

Если Н истинно

Тогда С истинно {с вероятностью р }.

Это правило подразумевает, что если событие Н происходит, тогда вероятность, что событие С произойдет р .

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

Уравнение (6.12) позволяет нам это сделать. Мы просто используем Н и С вместо А и В . В интеллектуальных системах Н обычно обозначает гипотезы, а С – свидетельства в поддержку этих гипотез.

Таким образом, уравнение (6.12), выраженное в терминах гипотез и свидетельств, выглядит так

p(Н) априорная (безусловная) вероятность того, что гипотеза Н является истинной;

p(С|Н) – вероятность того, что гипотеза Н является истинной, будет результатом свидетельства С ;

p(ØН) - априорная (безусловная) вероятность того, что гипотеза Н является ложной;

p(С|ØН) – вероятность нахождения свидетельства С даже когда гипотеза Н ложна.

Уравнение (6.13) предполагает, что вероятность гипотезы Н , p(Н) должна быть определена перед тем, как проверены какие-либо свидетельства.

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

Рассмотрим ситуации, когда эксперт, основываясь на простом свидетельстве С , не может выбрать простую гипотезу, но скорее обеспечивает многочисленные гипотезы Н 1 , Н 2 ,…, Н т. Или когда имеются многочисленные свидетельства С 1 , С 2 , …, С n и эксперт также выдает множество гипотез.

Мы можем обобщить уравнение (6.13) принимая во внимание и многочисленные гипотезы Н 1 , Н 2 , …, Н т и многочисленные свидетельства С 1 , С 2 , …, С n . Но гипотезы, так же как и свидетельства должны быть взаимно исключающими.

Для простого свидетельства С и многочисленных гипотез Н 1 , Н 2 , …, Н т следует:

(6.14)

Для многочисленных свидетельств С 1 , С 2 , …, С n и многочисленных гипотез Н 1 , Н 2 , …, Н т следует:

(6.15)

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

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

Следовательно, вместо неосуществимого уравнения (6.15) мы получаем

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

Предположим, что эксперт, имея три условно независимых свидетельства С 1 , С 2 и С 3 , создает три взаимно исключающие гипотезы Н 1 , Н 2 и Н 3 и обеспечивает априорные вероятности для этих гипотез – p(Н 1) , p(Н 2) и p(Н 3) соответственно. Эксперт также определяет условные вероятности каждого отмеченного свидетельства для всех возможных гипотез.

В Таблице 6.1. показаны априорные и условные вероятности, обеспеченные экспертом.

Таблица 6.1.

Априорные и условные вероятности.

Вероятности Гипотезы
i=1 i=2 i=3
P(H i) P(C 1 |H i) P(C 2 |H i) P(C 3 |H i) 0.4 0.3 0.9 0.6 0.35 0.8 0.0 0.7 0.25 0.5 0.7 0.9

Допустим, что мы сначала наблюдаем свидетельство С 3 . Интеллектуальная система вычисляет апостериорные вероятности для всех гипотез по уравнению (6.14):

Таким образом

Как можно видеть, после того, как наблюдается свидетельства С 3 , доверие гипотезе Н 2 и становится равным доверию гипотезе Н 1 . Доверие гипотезе Н 3 также возрастает и даже приблизительно достигает доверию гипотезам Н 1 и Н 2 .

Предположим теперь, что мы наблюдаем свидетельство С 1 . Апостериорные вероятности рассчитываются по уравнению (6.16):

Таким образом

Гипотеза Н 2 теперь рассматривается как наиболее вероятная, т.к. доверие гипотезе резко уменьшается.

После наблюдения свидетельства С 2 интеллектуальная СПР также вычисляет последние апостериорные вероятности для всех гипотез:

Таким образом

Хотя первоначальное ранжирование, предложенное экспертом было Н 1 , Н 2 и Н 3 , только гипотезы Н 1 и Н 3 остались для рассмотрения после всех свидетельств (С 1 , С 2 и С 3 ), которые наблюдались. Гипотеза Н 2 теперь может быть полностью исключена.

Заметим, что гипотеза Н 3 теперь рассматривается как более предпочтительная, чем гипотеза Н 1 .

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

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

Дуда, Харт и Нильсон видоизменили формулы Байеса для выводов в инженерии знаний и предположили метод выводов, названный субъектным байесовским методом.

Основные цели этого метода были успешно реализованы ими в экспертной системе PROSPECTOR .

Приближенные рассуждения.

В классической теории исчисления высказываний выражение «Если А , Тогда В », где А и В – пропозициональные переменные (пропозициональная переменная – это переменная для предложений, которые рассматриваются лишь с точки зрения их истинности или ложности), записывается как А®В , где импликация (®) рассматривается как связка, смысл которой определяется таблицей истинности.

Таким образом А®ВºØАÚВ (6.17)

В том смысле, что А®В (А влечет В) и ØАÚВ (не А или В) имеют идентичные таблицы истинности. Более важным в нашем случае является неопределенное высказывание «Если А , Тогда В », коротко А®В , в котором А (антецедент) и В (консеквент) – нечеткие множества, а не пропозициональные переменные («пропозиция» означает предложение, выражение, высказывание).

Типичные примеры высказываний:

Если «большой», Тогда «малый»

Если «скользкий», Тогда «опасный;»

Они являются сокращениями предложений:

Если х-«большой», Тогда у-«малый»;

Если дорога «скользкая», Тогда езда «опасна».

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

Здесь целесообразно определить сначала декартово произведение двух нечетких множеств.

Пусть А -нечеткое подмножество области рассуждений U и пусть В - нечеткое подмножество другой области рассуждений V. Тогда декартово произведение А и В , обозначаемое А´В , определяется следующим образом

(6.18)

где U´V означает декартово произведение множеств U и V , т.е.

Заметим, что когда А и В – не нечеткие, (6.18) преобразовывается в обычное определение декартова произведения множеств.

Иными словами, (6.18) означает, что А´В нечеткое множество упорядоченных пар (u,v ), , со степенью принадлежности (u,v) к (А´В), задаваемой формулой . В этом смысле А´В есть нечеткое отношение U и V .

Пример 6.1. Пусть

U=1+2 (6.19)

V=1+2+3 (6.20)

A=1/1+0,8/2 (6.21)

B=0,6/1+0,9/2+1/3 (6.22)

А´В=0,6/(1,1)+0,9/(1,2)+1/(1,3)+0,6/(2,1)+0,8/(2,2)+0,8/(2,3) (6.23)

Отношение, определенное в (6.17) можно представить матрицей отношения

Смысл нечеткого высказывания вида «Если А , Тогда В » становится ясен, если рассматривать его как специальный случай условного высказывания «Если А , Тогда В , Иначе С », где А , В и С – нечеткие подмножества, возможно, различных областей U и V , соответственно.

В терминах декартова произведения последнее предложение определяется так:

Если А , Тогда В , Иначе С (6.25)

Где + означает объединение нечетких множеств А´В и (ØА´С).

Чтобы обобщить понятие материальной импликации на нечеткие множества, предположим, что U и V – два возможно различных универсальных множества, а А, В и С – нечеткие подмножества множеств U, V и V соответственно.

Сначала определим смысл высказывания

Если А , Тогда В , Иначе С , и затем определим

Если А , Тогда В как частный случай высказывания Если А , Тогда В , Иначе С .

Определение. Высказывание Если А , Тогда В , Иначе С есть бинарное нечеткое отношение в U´V , определяемое следующим образом:

Если А, Тогда В, Иначе С=А´В+ØА´С (6.26)

То есть, если А,В и С – унарные нечеткие отношения в U, V и V , тогда Если А , Тогда В , Иначе С – бинарное нечеткое отношение в U´V , которое является объединением декартова произведения А и В (см.(5.23)) и декартова произведения отрицания А и С .

Далее высказывание Если А , Тогда В можно рассматривать как частный случай высказывания Если А , Тогда В , Иначе С при допущении, что С – полное множество V .

Т.о. Если А , Тогда В Если А , Тогда В , Иначе V=А´В+ØА´V (6.27)

В сущности это равнозначно интерпретации высказывания Если А , Тогда В высказыванием Если А , Тогда В , Иначе безразлично.

Пример 6.2. Иллюстрация (6.26) и (6.27)

Предположим, что

А=малый=1/1+0,4/2

В=большой=0,4/2+1/3

С=не большой=1/1+0,6/2

Тогда Если А , Тогда В , Иначе С=(1/1+0,4/2)´(0,4/2+1/3)+(0,6/2+1/3)´ (1/1+0,6/2)=0,4/(1,2)+1/(1,3)+0,6/(2,1)+0,6/(2,2)+0,4/(2,3)+1/(3,1)+0,6/(3,2)

Что можно представить в виде матрицы отношения

Если А , Тогда В , Иначе С=

Аналогично

Если А , Тогда В=(1/1+0,4/2)´(0,4/2+1/3)+(0,6/2+1/3)´(1/1+1/2+1/3) =0,4/(1,2)+1/(1,3)+0,6/(2,1)+0,6/(2,2)+0,6/(2,3)+1/(3,1)+1/(3,2)+1/(3,3)

Или эквивалентно

Если А , Тогда В=

Вывод в нейронных сетях.

Сеть Хопфилда.

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

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

Ассоциативная память

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

Ассоциативная память обычно работает в двух режимах: хранения и восстановления. В режиме хранения веса связей в сети определяются так, чтобы аттракторы запомнили набор p n -мерных образцов {x 1 , x 2 ,..., x p }, которые должны быть сохранены. Во втором режиме входной пример используется как начальное состояние сети, и далее сеть эволюционирует согласно своей динамике. Выходной образец устанавливается, когда сеть достигает равновесия.

Сколько примеров могут быть сохранены в сети с n бинарными элементами? Другими словами, какова емкость памяти сети? Она конечна, так как сеть с n бинарными элементами имеет максимально 2n различных состояний, и не все из них являются аттракторами. Более того, не все аттракторы могут хранить полезные образцы. Ложные аттракторы могут также хранить образцы, но они отличаются от примеров обучающей выборки.

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

Некоторые другие обучающие алгоритмы из таблицы 6.3 описаны в следующих работах: Adaline и Madaline , линейный дискриминантный анализ , проекции Саммона , анализ главных компонентов .

Процесс развития ИНС.

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

Как показано на рис. 6.8., процесс развития приложения ИНС имеет девять шагов.

На шаге 1 собираются данные, которые должны использоваться для обучения и проверки сети.

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

На шаге 2 должны быть установлены обучающие данные и должен быть создан план для проверки выполнения сети.

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

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

На шагах7-8 обучение и проверка проводятся как интервальный процесс представления входных и желаемых выходных данных в сеть.

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

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

Рис.6.8. Последовательность процесса развития и настройки искусственной нейронной сети.

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

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

Следует отличать научное и обыденное познание. Научное познание в отличие от обыденного предполагает использование особых методов исследования. В связи с этим возникает необходимость постоянного поиска новых методов для изучения неисследованных объектов.

Что такое методы исследования

Методы исследования – это способы достижения цели в научной работе. Наука, занимающаяся изучением данных методов называется “Методология”.

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

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

Отличие метода от методики и методологии

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

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

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

Классификация методов научного исследования

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

Философские методы

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

Общенаучные методы

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

  1. Анализ – расчленение единого целого на отдельные части, стороны и свойства для дальнейшего их детального изучения.
  2. Синтез – соединение отдельных частей в единое целое.
  3. Абстрагирование – мысленное выделение каких-либо существенных свойств рассматриваемого предмета при одновременном отвлечении от ряда других присущих ему признаков.
  4. Обобщение – установление объединяющего свойства предметов.
  5. Индукция – способ построения общего вывода на основе известных отдельных фактов.

Примеры методов исследования

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

Дедукция – способ построения частного вывода, опираясь на общее суждение.

Например, известно два факта: 1) все металлы обладают свойством электропроводности; 2) медь – металл. Можно сделать вывод о том, что медь обладает свойством электропроводности.

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

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

Моделирование – создание модели (копии) объекта изучения с целью его исследования.

Помимо методов теоретического уровня, выделяют методы эмпирического уровня.

Классификация общенаучных методов

Методы эмпирического уровня

Метод Определение Пример
Наблюдение Исследование, опирающееся на органы чувств; восприятие явлений С целью изучения одной из стадий развития детей Ж.Пиаже наблюдал за манипулятивными играми детей с определенными игрушками. На основе наблюдения им был сделан вывод о том, что способность ребенка составлять предметы друг в друга возникает позже, чем необходимые для этого моторные навыки.
Описание Фиксация сведений Антрополог записывает все факты з жизни племени, не оказывая никакого влияния на него
Измерение Сравнение по общим признакам Определение температуры тела с помощью термометра; определение веса с помощью уравновешивания гирь на рычажных весах; определение расстояния с помощью радиолокатора
Эксперимент Исследование, основанное на наблюдении в условиях, созданных специально для этого На оживленной городской улице останавливались группы людей в различных количествах (2,3,4,5,6 и т.д. человек) и смотрели вверх. Рядом останавливались прохожие и также начинали смотреть вверх. Выяснилось, что процент присоединившихся значительно возрастал при достижении экспериментальной группы 5 человек.
Сравнение Исследование, основанное на изучении сходств и различий предметов; сопоставление одного предмета с другим Сопоставление экономических показателей базового года с прошедшим, на основе чего делается вывод об экономических тенденциях

Методы теоретического уровня

Метод Определение Пример
Формализация Раскрытие сущности процессов за счет их отображения в знаково-символическом виде Моделирование полета на основе знаний основных характеристик летательного аппарата
Аксиоматизация Применение аксиом для построения теорий Геометрия Эвклида
Гипотетико-дедуктивный Создание системы гипотез и выведение из этого заключений Открытие планеты Нептун было основано на выдвижении нескольких гипотез. В результате их анализа было сделано заключение, что Уран не является последней планетой солнечной системы. Теоретическое обоснование нахождения новой планеты в определенном месте, подтвердилось затем эмпирическим путем

Конкретно-научные (специальные) методы

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

Биология:

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

Юриспруденция:

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

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

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

Экономика:

  • экономический анализ – изучение составных частей изучаемого целого;
  • статистико-экономический метод – анализ и обработка статистических показателей;
  • социологический метод – анкетирование, опрос, интервьюирование и т.д.
  • расчетно-конструктивный, экономическое моделирование и т.д.

Психология:

  • метод эксперимента – создание таких обстоятельств, которые провоцируют проявление какого-либо психического явления;
  • метод наблюдения – путем организованного восприятия явления объясняют психическое явление;
  • биографический метод, сравнительно-генетический метод и т.д.

Анализ данных эмпирического исследования

Эмпирическое исследование направлено на получение эмпирических данных – данных, полученных путем опыта, практики.

Анализ таких данных происходит в несколько этапов:

  1. Описание данных. На этом этапе описываются обобщенные результаты с помощью показателей и графиков.
  2. Сравнение. Происходит выявление сходств и различий двух выборок.
  3. Изучение зависимостей. Установление взаимозависимостей (корреляционный, регрессионный анализ).
  4. Уменьшение объема. Изучение всех переменных при наличии их в большом количестве, выявление наиболее информативных.
  5. Группировка.

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

Вместо заключения

А. М. Новиков и Д. А. Новикова в книге “ ” в методах теоретического и эмпирического исследования выделяет также методы-операции (способ достижения цели) и методы-действия (решение конкретное задачи). Такая конкретизация не случайна. Более жесткая систематизация научного познания увеличивает его эффективность.

Методы исследования, как они есть обновлено: Февраль 15, 2019 автором: Научные Статьи.Ру

Ввод и вывод данных можно осуществлять тремя различными способами (рис 11.1)

Рис. 11.1. Способы ввода-вывода

1. Управление в/в осуществляет ЦП – программный канал обмена данными между ОП и ВУ

2. Управление в/в осуществляет специальное дополнительное оборудование – канал прямого доступа.

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

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

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

Состояние . Используется для проверки состояния контроллера ввода-вывода и соответствующих периферийных устройств.

Передача. Используется для чтения и/или записи данных в регистры процессора и внешние устройства и из регистров процессора и внешних устройств.

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

Процесс ввода-вывода в этом случае состоит из следующих шагов (рис. 11.2):

Рис. 11.2. Ввод-вывод, управляемый прерыванием

шаг 1. Драйвер передает команду контроллеру, записывая информацию в регистры устройства. Затем контроллер запускает устройство

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

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

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

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

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

Максимальный интервал времени, в течение которого устройство ввода/вывода или его контроллер должны выдать сигнал запроса на прерывание, часто называют установкой тайм-аута .

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

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

секцию запуска ,

одну или несколько секций продолжения

● и секцию завершения .

Секция запуска инициирует операцию ввода/вывода. Эта секция запускается для включения устройства ввода/вывода либо просто для инициации очередной операции ввода/вывода.

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

Секция продолжения, собственно говоря, и является основным обработчиком прерывания.

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

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

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

Секция завершения обычно выключает устройство ввода/вывода либо просто завершает операцию.

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

Примером тому может служить ситуация с драйверами, обеспечивающими печать. Так, в ОС Windows (и Windows 9x, и Windows NT) драйвер печати через параллельный порт работает не в режиме с прерываниями, как это сделано в других ОС, а в режиме опроса готовности, что приводит к 100%-й загрузке центрального процессора на все время печати. При этом, естественно, выполняются и другие задачи, запущенные на исполнение, но исключительно за счет того, что ОС Windows реализует вытесняющую мультизадачность и время от времени прерывает процесс управления печатью и передает центральный процессор остальным задачам.

3. Прямой доступ к памяти. Третий метод ввода-вывода информации заключается в использовании специального контроллера прямого доступа к памяти (DMA, Direct Memory Access), который управляет потоком битов между оперативной памятью и некоторыми контроллерами без постоянного вмешательства центрального процессора. Процессор вызывает микросхему DMA, говорит ей, сколько байтов нужно передать, сообщает адреса устройства и памяти, а также направление передачи данных и позволяет дальше действовать ей самой. По завершении работы DMA инициирует прерывание, которое обрабатывается так же, как было описано выше.

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

Где бы он ни располагался физически, DMA-контроллер может получать доступ к системной шине независимо от центрального процессора (рис. 11.3) . Он содержит несколько регистров, доступных центральному процессору для чтения и записи.

Рис. 11.3. Ввод-вывод с использованием прямого доступа

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

какой порт ввода-вывода должен быть использован,

направление переноса данных (чтение из устройства ввода-вывода или запись в него),

единицу переноса (осуществлять перенос данных побайтно или пословно),

число байтов, которые следует перенести за одну операцию .

Сначала центральный процессор программирует DMA-котроллер, устанавливая его регистры и указывая, таким образом, какие данные и куда следует переместить (шаг 1 на рис. 11.3 ).

Затем процессор дает команду дисковому контроллеру прочитать данные во внутренний буфер и проверить контрольную сумму. Когда данные получены и проверены контроллером диска, DMA может начинать работу.

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

Запись в память является еще одним стандартным циклом шины (шаг 3 ).

Когда запись закончена, контроллер диска также по шине посылает сигнал подтверждения контроллеру DMA (шаг 4 ).

Затем контроллер DMA увеличивает используемый адрес памяти и уменьшает значение счетчика байтов.

После этого шаги со 2-го по 4-й повторяются, пока значение счетчика не станет равно нулю.

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

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

Эмпирический уровень познания включает в себя:

Наблюдение явлений,

Накопление и отбор фактов

Установление связей между ними.

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

1. Наблюдение

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

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

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

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

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

Планомерность;

Целенаправленность;

Активность;

Систематичность.

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

Определение задач и цели (для чего, с какой целью ведется наблюдение);

Выбор объекта, предмета и ситуации (что наблюдать);

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

Выбор способов регистрации наблюдаемого (как вести записи);

Обработка и интерпретация полученной информации (каков результат).

Различают наблюдение включенное, когда исследователь становится членом той группы, в которой ведется наблюдение, и невключенное - «со стороны»; открытое и скрытое (инкогнито); сплошное и выборочное.

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

2. Сравнение

Oдин из наиболее распространенных методов познания. Недаром говорится, что «все познается в сравнении». Оно позволяет установить сходство и различие между предметами и явлениями.

Для того чтобы сравнение было плодотворным, оно должно удовлетворять двум основным требованиям:

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

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

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

3. Измерение

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

4. Эксперимент

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

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

Экспериментальное изучение объектов по сравнению с наблюдением имеет ряд преимуществ:

1) в процессе эксперимента становится возможным изучение того или иного явления в «чистом виде»;

2) эксперимент позволяет исследовать свойства объектов действительности в экстремальных условиях;

3) важнейшим достоинством эксперимента является его повторяемость.

Любой эксперимент может осуществляться как непосредственно с объектом, так и с «заместителем» этого объекта - моделью.

Использование моделей позволяет применять экспериментальный метод исследования к таким объектам, непосредственное оперирование с которыми затруднительно или даже невозможно. Поэтому моделирование является особым методом и широко распространено в науке.

5. Материальное моделирование

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

6. Методы опроса - беседа, интервью, анкетирование.

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

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

Анкетирование - метод массового сбора материала с помощью анкеты. Те, кому адресованы анкеты, дают письменные ответы на вопросы. Беседу и интервью называют опросом «лицом к лицу», анкетирование - заочным опросом.

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

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

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

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

Внутренняя структура и закономерности развития систем и явлений

Их взаимодействие и обусловленность.

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

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

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

1. Абстрагирование

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

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

2. Аксиоматический

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

3. Анализ и синтез

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

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

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

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

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

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

4. Идеализация

Это мысленное создание понятий об объектах, не существующих в природе, но для которых имеются прообразы в реальном мире. Примерами понятий, которые возникли в процессе использования метода идеализации, являются «Идеальный газ», «Идеальный раствор», «Точка». Метод идеализации широко применяется не только в естественных науках, но и в общественных дисциплинах.

5. Индукция и дедукция

Индукция – вывод, рассуждение от «частного» к «общему». Умозаключение от фактов к некоторой общей гипотезе.

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

6. Восхождения от абстрактного к конкретному

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

На первом этапе происходит переход от чувственно-конкретного к его абстрактным определениям. Единый объект расчленяется, описывается при помощи множества понятий и суждений. Он как бы «испаряется», превращаясь в совокупность зафиксированных мышлением абстракций, односторонних определений.

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

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

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

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

Классификация ошибок

Internet-ресурсы

План лекции

Отладка программного обеспечения

Лекция №8.

Тамбов 2011

Курс, группы БИС-11, БИС-12

Тема 6. Отладка программного обеспечения

Лекция 8

Дисциплина Технология программирования

Направление 230400 «Информационные системы и технологии»

Преподаватель: Минин Юрий Викторович

Цель лекции

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

1. Классификация ошибок

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

3. Методы и средства получения дополнительной информации об ошибке

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

Список литературы

Основная литература

1. Иванова Г.С. Технология программирования М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. - 320 с.

2. Жоголев Е.А. Технология программирования М.: Научный мир, 2004. - 216 с.

3. Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология разработки программного обеспечения. М.: ИД "ФОРУМ" - ИНФРА-М, 2008. - 400с.

Дополнительная литература

1. Канер С., Фолк Д., Нгуен Е. Тестирование программного обеспечения. М.: ДиаСофт, 2001. - 544с.

2. Брауде Э. Технология разработки программного обеспечения. СПб.: Питер, 2004. - 655 с.

3. Баранов С.Н., Домарацкий А.Н., Ласточкин Н.К., Морозов В.П. Процесс разработки программных изделий. М.: ФИЗМАТЛИТ, Наука, 2000. - 176с.

1. www.intuit.ru - Интернет-университет информационных технологий.

2. http://citforum.ru/ - Центр информационных технологий.

3. http://www.tstu.ru/r.php?r=education - Электронная библиотека ТГТУ.

4. http://www.edu.ru/ - Библиотека Федерального портала «Российское образование»

Отладка программы - один их самых сложных этапов разработки программного обеспечения, требующий глубокого знания:

Специфики управления используемыми техническими средствами,

Операционной системы,

Среды и языка программирования,

Реализуемых процессов,

Природы и специфики различных ошибок,

Методик отладки и соответствующих программных средств.

Обсуждению последних двух вопросов и посвящается данная лекция.

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



В целом сложность отладки обусловлена следующими причинами:

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

Психологически дискомфортна, так как необходимо искать собственные ошибки и, как правило, в условиях ограниченного времени;

Возможно взаимовлияние ошибок в разных частях программы, например, за счет затирания области памяти одного модуля другим из-за ошибок адресации;

Отсутствуют четко сформулированные методики отладки.

В соответствии с этапом обработки, на котором проявляются ошибки, различают (рис. 1):

- синтаксические ошибки - ошибки, фиксируемые компилятором (транслятором, интерпретатором) при выполнении синтаксического и частично семантического анализа программы;

- ошибки компоновки - ошибки, обнаруженные компоновщиком (редактором связей) при объединении модулей программы;

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

Рисунок 1 - Классификация ошибок по этапу обработки программы

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

Следует иметь в виду, что чем лучше формализованы правила синтаксиса языка, тем больше ошибок из общего количества может обнаружить компилятор и, соответственно, меньше ошибок будет обнаруживаться на следующих этапах. В связи с этим говорят о языках программирования с защищенным синтаксисом и с незащищенным синтаксисом. К первым, безусловно, можно отнести Pascal, имеющий очень простой и четко определенный синтаксис, хорошо проверяемый при компиляции программы, ко вторым – C/C++ со всеми их модификациями. Чего стоит хотя бы возможность выполнения присваивания в условном операторе в С/С+, например:

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

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

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

Появление сообщения об ошибке, зафиксированной схемами контроля выполнения машинных команд, например, переполнении разрядной сетки, ситуации “деление на ноль”, нарушении адресации и т. п.;

Появление сообщения об ошибке, обнаруженной операционной системой, например, нарушении защиты памяти, попытке записи на устройства, защищенные от записи, отсутствии файла с заданным именем и т. п.;

- «зависание» компьютера, как простое, когда удается завершить программу без перезагрузки операционной системы, так и «тяжелое», когда для продолжения работы необходима перезагрузка;

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

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

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

Неверное определение исходных данных,

Логические ошибки,

Накопление погрешностей результатов вычислений (рис. 2).

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

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

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

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

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

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

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

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

Опосредованного проявления ошибок;

Возможности взаимовлияния ошибок;

Возможности получения внешне одинаковых проявлений разных ошибок;

Отсутствия повторяемости проявлений некоторых ошибок от запуска к запуску (стохастические ошибки);

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

Написания отдельных частей программы разными программистами.

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

Ручного тестирования;

Индукции;

Дедукции;

Обратного прослеживания.

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

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

Данный метод часто используют как составную часть других методов отладки.

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

Рисунок 3 - Схема процесса отладки методом индукции

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

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

Метод дедукции . По методу дедукции вначале формируют множество причин, которые могли бы вызвать данное проявление ошибки. Затем анализируя причины, исключают те, которые противоречат имеющимся данным. Если все причины исключены, то следует выполнить дополнительное тестирование исследуемого фрагмента. В противном случае наиболее вероятную гипотезу пытаются доказать. Если гипотеза объясняет полученные признаки ошибки, то ошибка найдена, иначе - проверяют следующую причину (рис. 4).

Рисунок 4 - Схема процесса отладки методом дедукции

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