Болезни Военный билет Призыв

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

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

Общие принципы обследования

При обследовании хирургического больного надо решить три вопроса:

Срочность проведения обследования;

Рациональный объём обследования;

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

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

1. Никогда инструментальное исследование не должно быть опаснее болезни.

2. Если опасное исследование можно заменить менее опасным или совсем безопасным без ущерба для результативности, надо сделать это.

3. Следует помнить о противопоказаниях к тем или иным опасным инструментальным исследованиям.

Срочность проведения обследования

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

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

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

Рациональный объём обследования

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


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

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

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

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

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

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

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

Основные диагностические методы

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

Лабораторные методы

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

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

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

- клинические анализы - определение вида и количества клеток, удельного веса, цвета, прозрачности;

- биохимические анализы - исследование содержания различных химических веществ: белка, креатинина , билирубина , ионов;

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

- гистологическое исследование - микроскопическое исследование биоптата , позволяющее наиболее точно определить характер патологического процесса;

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

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

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

Что, например, может дать для обследования хирургического больного клинический анализ крови?

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

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

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

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

Подобные примеры можно привести и в отношении других лабораторных методов.

Рентгенологические методы

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

Трудно переоценить значение рентгенологического метода для оценки состояния лёгких и костей. В пульмонологии, травматологии и ортопедии это основной метод диагностики.

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

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

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

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

Рентгенологическое обследование используют как в плановой, так и в экстренной хирургии.

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

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

КТ успешно применяют для диагностики опухолей печени, головного мозга, почек, поджелудочной железы и других внутренних органов. Метод обладает высокой разрешающей способностью, позволяет диагностировать новообразования внутренних органов размерами до 0,5 см. Из-за высокой стоимости и сложности в алгоритме обследования хирургических больных КТ стоит на одном из последних мест, её применяют в качестве метода уточняющей диагностики.

Ультразвуковое исследование

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

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

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

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

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

Эндоскопические методы

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

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

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

Лапароскопию, медиастиноскопию, торакоскопию, цистоскопию, ректороманоскопию производят эндоскопами с металлическими оптическими трубками.

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

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

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

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

Электрофизиологические методы

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

Радиоизотопное исследование

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

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

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

Магнитно-резонансная томография

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

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

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 - Схема процесса отладки методом дедукции

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

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

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

Индукции;

Дедукции;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Механизм вывода сопоставляет каждое правило, хранящееся в БЗ с фактами, содержащимися в БД. Когда часть правила если (условие) подходит факту, правило срабатывает и его часть тогда (действие) исполняется . Срабатывающее правило может изменить множество фактов путем добавления нового факта, как показано на рис.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. Последовательность процесса развития и настройки искусственной нейронной сети.

«Тема 4: Лекция 9: Методы вывода и поиска решений в продукционных системах. Методы вывода на основе прямой и обратной цепочек. При продукционном...»

Сахнюк П.А.

Тема 4:

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

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

При продукционном представлении область знаний представляется множеством

продукционных правил а данные представляются множеством фактов о

ЕСЛИ ТОГДА,

текущей ситуации.

Механизм вывода сопоставляет каждое правило, хранящееся в БЗ с фактами,

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

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

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

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

X&B&EY Правило 3. AX Цепочка вывода на рис. 2. показывает, как ЭС применяет правила для вывода факта Z.

Сахнюк П.А.

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

Сначала срабатывает Правило 3 для вывода нового факта Х изданного факта A.

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



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

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

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

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

Альтернативным типом архитектуры, которая достаточно часто используется в экспертных системах, являются целе-выводимые (действие-выводимые или консеквентвыводимые) продукционные системы. Например, правило вида А&В&СD может быть интерпретировано, как «Логическая конъюнкция А, В и С влечет D» или «Чтобы доказать D, необходимо установить А, В, С».

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

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

Сахнюк П.А.

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

БД: АF Правило 1: A&B&CD Правило 2: D&FG Правило 3:A&JG Правило 4: ВС Правило 5: FB Правило 6: LJ Правило 7: GH Предположим, цель состоит в том, чтобы вывести истинность Н.

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

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

Примерами целе-выводимой архитектуры является MYCIN.

Общие методы поиска решений в пространстве состояний.

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

Сахнюк П.А.

Задачу поиска в пространстве состояний можно сформулировать в общем виде так:

Пусть исходная задача описывается тройкой (S, F, T), где S – множество начальных состояний; F – множество операторов, отображающих одни состояния в другие; T – множество целевых состояний. Решение задачи состоит в нахождении (fi F), которые преобразуют начальные последовательности операторов f1,f2,…,fk состояния в конечные. Задача поиска в пространстве состояний описывается с помощью понятий теории графов . Задается начальная вершина (исходное состояние) и множество целевых вершин T. Для построения пространства состояний используются операторы F. Последовательно от корня к вершинам дерева применяются операторы, относящиеся к этому уровню, для построения вершин-преемников следующего уровня (раскрытие вершин). Дуги идентифицируются как операторы преобразования.

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

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

Поиск в ширину. Вершины раскрываются в последовательности их порождения.

Поиск идет по ширине дерева, т. к. раскрытие вершины происходит вдоль одного уровня.

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

Сахнюк П.А.

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

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

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

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

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

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

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

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

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

Кроме того, эвристический поиск с использование оценочной функции предполагает Сахнюк П.А.

достоверное знание пространства состояний. Однако в реальной практике при принятии решений сталкиваются с фактами и знаниями недостаточно полными и определенными.

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

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

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

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

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

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

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

Сахнюк П.А.

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

Процесс поиска решения исходной задачи при таком описании представляет собой направленный граф редукции задач. Этот граф называется графом И/ИЛИ. Вершины этого графа представляют описания задач и подзадач. Граф И/ИЛИ содержит вершины двух типов. Тип “И” – соответствует задаче, решаемой при условии реализации всех ее подзадач в соответствующих вершинах – преемниках. Тип “ИЛИ” – соответствует задаче, решение которой возможно получить при решении одной из альтернативных подзадач в соответствующих вершинах – преемниках. На рис. 4. представлены фрогменты графов типа И/ИЛИ.

б) Рис. 4. Представление разбиения исходной задачи на подзадачи в виде графа И/ИЛИ (а) и преобразование графа И/ИЛИ (б).

Исходная задача S0 разбивается на группы подзадач. Она может быть решена путем решения подзадач либо S1 и S2; либо S3; S4 и S5. Вершины N, S3, M, S5 – это вершины типа “И”. Штриховой линией показан вариант решающего графа исходной задачи. Решения подзадач S2, S7, S9, S10, S11 - предполагают известными. Решения других подзадач неизвестны. В структуру обычно вводятся дополнительные вершины, чтобы каждое множество подзадач формировалось под своей собственной родительской вершиной.

Сахнюк П.А.

Вершина графа И/ИЛИ может принадлежать к типу И либо ИЛИ. Поэтому исходный граф преобразуется и вводятся дополнительные вершины N и M, которые служат отдельными родительскими вершинами для подзадач {S1, S2} и {S4, S5. Таким образом, вершина S0 преобразуется в вершину ИЛИ.

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

Процесс поиска на графе И/ИЛИ заключается в построении решающего графа (или дерева решений), который является подграфом графа редукции.

Методы поиска решений в больших пространствах состояний.

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

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

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

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

Сахнюк П.А.

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

Такие ситуации характерны для задач перспективного планирования и проектирования.

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

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

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

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

Переход к более конкретному уровню осуществляется лишь после завершения решения на рассматриваемом уровне абстракции.

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

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

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

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