Вы находитесь на странице: 1из 150

среда, Ноябрь 18, 2009

Министерство образования и науки Российской Федерации


Московский государственный институт электронной техники
(технический университет)

На правах рукописи

Чжо Чжо Кхаин

РАЗРАБОТКА АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ УПРАВЛЕНИЯ


ОБУЧЕНИЕМ ТЕХНОЛОГИЧЕСКИМ ПРОЦЕССАМ
ДИАГНОСТИРОВАНИЯ В ПРИБОРОСТРОЕНИИ

05.13.06 – Автоматизация и управление технологическими процессами


и производствами
(в области приборостроения)

Диссертация на соискание ученой степени


кандидата технических наук

Научный руководитель:
д.т.н., профессор Лисов Олег Иванович

Москва – 2009

среда, Ноябрь 18, 2009


2
Введение.........................................................................................................................................4
Методы исследования. Теоретическую и методологическую базу исследования
составили элементы общей теории систем, методы интеллектуальных технологий,
методы и алгоритмы технической диагностики, теория построения обучающих систем,
методы генерации заданий, а также объектно-ориентированная технология
программирования. При решении конкретных задач использовались труды
отечественных и зарубежных ученых в области e-learning и технической диагностики...7
Глава 1. Современное состояние технической диагностики и систем поддержки процесса
повышения квалификации сотрудников...................................................................................13
1.1. Современное состояние технической диагностики.......................................................13
1.2. Автоматизация процесса подготовки специалистов....................................................19
1.3. Имитационное, проблемное и эвристическое обучение...............................................22
1.4. Информационные средства поддержки процесса обучения........................................23
1.5. Выводы..............................................................................................................................27
......................................................................................................................................................27
Глава 2. Структура трехуровневой системы диагностирования изделий электронной
техники в технологическом процессе........................................................................................28
2.1. Общие принципы диагностики, их место в системных исследованиях......................28
2.2. Трехуровневая система диагностических мероприятий в технологическом процессе
...................................................................................................................................................32
2.2.1. Применение базы данных.........................................................................................33
2.2.2. Использование нейронной сети ..............................................................................35
2.2.3. Построение экспертной системы............................................................................35
2.3. Основные принципы диагностирования изделий в процессе производства в
приборостроении.....................................................................................................................37
2.4. Диагностирование логических и одиночных константных неисправностей..............39
2.5. Применение нейронных сетей и экспертных систем для распознавания неявно
выраженных неисправностей в технологическом процессе................................................40
2.5.1. Установка критериев для определения порогового значения переключения
элементов нейронной сети..................................................................................................42
2.5.2. Обучение нейронной сети.........................................................................................49
2.5.3. Настройка экспертной системы................................................................................53
2.5.4. Последовательность диагностических мероприятий в технологическом
процессе изделий в приборостроении...............................................................................56
2.6. Формализация модели области знаний..........................................................................58
2.7. Выводы..............................................................................................................................58
Глава 3. Интеллектуальный тренажер как основа автоматизированной обучающей
системы.........................................................................................................................................59
3.1. Принципы построения интеллектуального тренажера для обучения
диагностированию электронных схем ..................................................................................59
3.1.1. Дедуктивный метод изучения теории......................................................................60
3.1.2. Индуктивный метод изучения теории.....................................................................63
3.2. Структура интеллектуального тренажёра как основы автоматизированной
обучающей системы................................................................................................................65
3.2.1. Блок, содержащий теоретические сведения............................................................67
3.2.2. Интерфейс пользователя...........................................................................................69
3.2.3. Генератор заданий.....................................................................................................70
3.2.4. Построение автоматического "решателя"...............................................................70
3.2.5. Блок настройки на компетентностные особенности обучаемого.........................70
3.2.6. Блок графического отображения объекта диагностирования...............................71
3.3. Автоматическая генерация тестовых заданий...............................................................71
3.4. Способы генерации тестовых заданий...........................................................................73
3
3.4.1. Древовидная структура схемы.................................................................................73
3.4.2. Послойная структура схем........................................................................................75
3.5. Настройка автоматизированной обучающей системы на компетентностные
особенности обучаемого.........................................................................................................78
3.6. Разработка способа оценки уровня подготовки обучаемого и настройка
автоматизированной обучающей системы на этот уровень ..............................................79
3. 7. Интеллектуальные средства разрабатываемого тренажера.........................................81
3.8. Выводы..............................................................................................................................81
Глава 4. Реализация интеллектуального тренажера контроля электронных схем в
технологическом процессе..........................................................................................................82
4.1. Выбор среды и языка программирования......................................................................82
4.2. Особенности реализации автоматического генератора и автоматического
"решателя" в АОС....................................................................................................................84
4.3. Представление реализации предметной области..........................................................87
4.3.1. Представление подсистемы "Диагностика комбинационных схем" ...................87
4.3.2. Пошаговая проверка построения теста обучаемым..............................................91
4.3.3. Представление подсистемы "Диагностика синхронных последовательностных
схем" .....................................................................................................................................93
4.3.4. Представление подсистемы "Диагностика асинхронных последовательностных
схем" .....................................................................................................................................95
4.3.5. Интерфейс пользователя...........................................................................................95
4.4. Апробация работы и ее практическое применение....................................................100
4.5. Выводы............................................................................................................................104
Заключение.................................................................................................................................105
Список литературы....................................................................................................................106
Приложение 1 ............................................................................................................................113
Акт о внедрении результатов диссертационной работы......................................................113
Приложение 2 ............................................................................................................................115
Дипломы, полученные на научных конференциях................................................................115
Приложение 3.............................................................................................................................118
Фрагменты теоретического блока АОС..................................................................................118
Приложение 4 ............................................................................................................................124
Фрагменты листинга программной реализации АОС...........................................................124
Приложение 5.............................................................................................................................148
Страница электронной почты отчетов по выполнению контрольных мероприятий .........148
4

Введение
Актуальность проблемы. В настоящее время весьма остро встает
вопрос обеспечения качества производимой продукции вообще и
электронных систем в частности. Если раньше разработка новых
электронных приборов и систем была ориентирована на 10-15-летний срок
эксплуатации и диагностические тесты формировались
специализированными подразделениями разработчиков аппаратуры, то
теперь моральное старение изделий электронной техники происходит
гораздо быстрее, объемы производства стали меньше, поэтому все этапы от
разработки до изготовления часто выполняются непосредственно на
предприятии-изготовителе. Вместе с тем, в условиях жесткой конкуренции
предприятие не может позволить себе снижать качество продукции.
Наилучшим выходом в данном случае является создание
автоматизированной обучающей системы (АОС), предназначенной для
повышения квалификации обслуживающего персонала без отрыва от
производства и представляющей собой систему интеллектуальной
поддержки процессов обучения и переподготовки инженерно-технического
персонала в технологическом процессе производства.
Кроме того, подготовка специалистов по технической диагностике в
рамках программ высшей школы, очевидно, никогда не потеряет своей
актуальности. Поэтому еще одной сферой применения АОС является ее
использование при подготовке специалистов в вузовской и
профессиональной сферах.
Проблемы диагностики электронных приборов решали как российские,
так и зарубежные ученые. Известны работы Пархоменко П.П., Карибского
В.В., Согомоняна Е.С., Каравая М.Ф., Лобанова А.В., Schlichting R., Rennels
D.A., Dolev D. и мн. др.
Вопросами e-learning и создания автоматизированных обучающих
систем занимаются, в частности Савельев А.Я., Тихомиров В.П., Солдаткин
5
В.И., Гусева А.И., Игнатова И.Г., Дэ-Джун Кванг, Мьюнг-Сук Дженни Панг и
др.
Актуальность работы, посвященной повышению квалификации
обслуживающего персонала, как условия обеспечения надежности и
отказоустойчивости, и связанной с ними диагностикой технических
объектов, не вызывает сомнений, если учесть возрастающее число и
масштабы техногенных катастроф, обусловленных ненадежным
функционированием технических объектов, а также увеличение
себестоимости разработок технических объектов с возрастанием их
сложности и повышением степени интеграции.
Актуальность проблемы обусловлена тем, что в условиях увеличения
числа малых предприятий с быстро меняющимся ассортиментом
производимой продукции нет возможности обеспечить длительную
подготовку специалистов нужной квалификации. Поэтому использование
АОС позволяет решить проблему ускорения процесса повышения
квалификации специалистов, в том числе и с использованием методов
электронного образования (e-learning).
Построение АОС, осуществляемое на основе разработки структуры,
алгоритмов генерации заданий, создание интеллектуального модуля
контроля результатов обучения является, следовательно, актуальной задачей.
Объектом исследования является структура АОС.
Предметом исследования являются методы и средства построения
интеллектуальных тренажеров как одного из видов или компонентов АОС для
обучения инженерно-технического персонала, участвующего в
технологическом процессе производства изделий электронной техники
методам технической диагностики.
Техническая диагностика - отрасль научно-технических знаний,
сущность которой составляют [1] теория, методы и средства обнаружения и
поиска дефектов объектов технической природы (в частности, электронных,
6
компьютерных систем), а также на основе синергетического подхода –
биологических, экономических и других типов систем.
Диагностический аспект обеспечения и поддержания надежности
электронных и компьютерных систем состоит в рассмотрении и реализации
совокупности мероприятий по своевременному обнаружению неисправностей
и поиску дефектов с целью их последующего устранения (или исключения
недопустимого влияния) и тем самым восстановления работоспособного
состояния объекта [1]. Специалистов в этой области не так много и от их
квалификации зависит качество выпускаемой продукции, а так же ее
себестоимость, поэтому предметная область интеллектуального тренажера
представляется весьма актуальной.
Целью диссертации является разработка и программная реализация
методов и средств для повышения квалификации обслуживающего персонала
в области диагностики электронных приборов за счет создания
интеллектуальной АОС.
Для достижения поставленной цели необходимо решение следующих
задач.
1. Разработка требований к функционированию АОС и ее структуры.
2. Анализ существующих методов подготовки специалистов в рамках
технологии e-learning.
3. Формализация модели области знаний (диагностирование электронных
приборов).
4. Разработка схемы алгоритма интеллектуального тренажера для
подготовки специалистов в области технической диагностики (на
первом этапе реализации – рассмотрение общих вопросов технической
диагностики, а так же построение диагностических тестов для
комбинационных схем (d-алгоритм Рота)).
5. Разработка подходов к реализации способов построения
диагностических тестов для синхронных последовательностных схем.
7
6. Разработка алгоритма автоматической генерации заданий для
интеллектуального тренажера.
7. Разработка алгоритма автоматического решения сгенерированных
заданий.
8. Программная реализация разработанных методов и алгоритмов для
решения практических задач обучения и повышения квалификации
специалистов в области технической диагностики.
Методы исследования. Теоретическую и методологическую базу
исследования составили элементы общей теории систем, методы
интеллектуальных технологий, методы и алгоритмы технической
диагностики, теория построения обучающих систем, методы генерации
заданий, а также объектно-ориентированная технология программирования.
При решении конкретных задач использовались труды отечественных и
зарубежных ученых в области e-learning и технической диагностики.

Научная новизна. Диссертационная работа представляет собой


совокупность научно обоснованных технических разработок, направленных
на создание АОС, обеспечивающих повышение уровня квалификации
обслуживающего персонала в сфере диагностирования изделий
приборостроения.
В процессе исследований и разработок получены следующие новые
научные результаты.
1. Разработана структура интеллектуального тренажера, входящего в
АОС.
2. Разработан алгоритм формирования заданий в интеллектуальном
тренажере (с помощью автоматического генератора заданий),
предназначенном для технической поддержки процесса повышения
квалификации специалистов с учетом уровня их подготовки.
3. Разработан алгоритм автоматического «решателя», который выполняет
сгенерированные в автоматическом режиме задачи, учитывая
особенности каждой из них.
8
4. Разработана схема алгоритма взаимодействия АОС с обучаемым.
5. Формализована структура модели области знаний, обеспечивающая
применение двух технологий обучения - основанных на индуктивном
и дедуктивном методах процесса обучения, в зависимости от
индивидуальных компетентностных качеств обучаемых.

Достоверность полученных результатов подтверждается


результатами успешных экспериментальных исследований и внедрения АОС
в учебный процесс кафедры ИПОВС МИЭТ.

Практическая ценность работы заключается в том, что основные


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

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


9
моделирования неисправностей в реально производимых
комбинационных схемах;
• разработаны подходы для использования предлагаемых методов для
диагностики и моделирования неисправностей в последовательностных
схемах.
По результатам выступления на Научной сессии МИФИ-2007 получен
диплом Х Московской международной телекоммуникационной конференции
студентов и молодых ученых «МОЛОДЕЖЬ И НАУКА», за работу
«Актуализация знаний при обучении методам генерации тестов для
электронных схем».
На Всероссийском смотре научных и творческих работ иностранных
студентов и аспирантов (Томск-2007) получен диплом участника в
номинации "За актуальность и практическую значимость" за работу
"Автоматическая генерация тестов для автоматизированной обучающей
системы".
Личный вклад автора. Все основные результаты получены автором
лично. Главными из них являются:
1) разработана структура АОС как средства увеличения надежности
выпускаемой продукции в приборостроении путем повышения уровня
квалификации инженерно-технического персонала;
2) разработана структура интеллектуального тренажера, являющегося
основой АОС;
3) формализована структура модели области знаний, обеспечивающая

применение двух технологий изучения дисциплины, основанных на


индуктивном и дедуктивном подходах;
4) разработан алгоритм формирования заданий (с помощью
автоматического генератора заданий), предназначенных для
технической поддержки процесса повышения квалификации
специалистов с учетом уровня их подготовки;
10
5) проведен сравнительный анализ методов автоматической генерации
схем при формировании заданий: древовидного и послойного, на
основе которого выбор остановлен на послойном методе, как более
эффективном и имеющем большие возможности;
6) разработан алгоритм автоматического "решателя", который выполняет
сгенерированные в автоматическом режиме задачи, учитывая
особенности каждой из них;
7) реализованы первые две подсистемы АОС, связанные с изучением
основных положений технической диагностики и диагностированием
комбинационных схем;
8) разработаны подходы для использования предлагаемых методов для
диагностирования неисправностей в последовательностных схемах.

Реализация полученных результатов. Диссертационная работа


выполнялась в соответствии с планом научно-технических исследований
кафедры "Информатика и программное обеспечение вычислительных
систем» Московского государственного института электронной техники
(технического университета) и являлась составной частью исследовательских
мероприятий в рамках НИОКР «Разработка методологии практической
подготовки студентов в рамках инновационных образовательных программ»
Федеральной целевой программы развития образования на 2006-2010 годы.
Все работы по программной реализации АОС проводились под
руководством или при непосредственном участии автора. Результаты
диссертационной работы используются в учебном процессе кафедры в
материалах курсов «Теория систем» и «Системный анализ и математическое
моделирование».
В результате проведенных исследований получены и выносятся на
защиту следующие основные научные результаты:
1. Структура АОС, использующая интеллектуальные технологии.
2. Алгоритм работы интеллектуального тренажера для обучения методам
технической диагностики в приборостроении.
11
3. Алгоритм формирования заданий, предназначенных для повышения

квалификации специалистов и контроля за этим процессом с точки


зрения технологии обучения методам технической диагностики.
4. Способ оценки уровня подготовки специалиста и настройки
интеллектуального тренажера на этот уровень, обеспечивающий
применение двух технологий представления информации, основанной
на индуктивном и дедуктивном методах.
5. Программная реализация разработанных алгоритмов и моделей для
решения практических задач обеспечения процесса подготовки
специалистов в области технической диагностики.
Апробация работы и публикации. Материалы диссертации
обсуждались на Всероссийских межвузовских научно-технических
конференциях МИЭТ 2005 - 2007 гг., на ежегодных научных сессиях МИФИ
2006 - 2008 гг., на Всероссийской межвузовской научно-практической
конференции «Актуальные проблемы информатизации. Развитие
информационной инфраструктуры, технологий систем». МИЭТ, ноябрь,
2007, на научно-практической конференции «Инновации в условиях развития
информационно-коммуникационных технологий» (ИНФО-2007), г. Сочи.
По теме диссертации опубликовано 15 работ, полностью отражающих
основные научные результаты, в том числе 3 статьи (из них 1 - в журнале
“Известия вузов. Электроника”, входящем в перечень ВАК), 10 тезисов
докладов на конференциях, 2 методические разработки в рамках
инновационной образовательной программы МИЭТ “Современное
профессиональное образование для Российской инновационной системы в
области электроники”. Автор принимал участие в НИР "Исследование
направлений информационной поддержки деятельности предприятий
социально-культурной сферы и вопросов организации учебного процесса
подготовки и переподготовки кадров на основе E-learning технологии"
Московского института искусств и информационных технологий в качестве
исполнителя.
12
Программные средства. При проведении работы используется
объектно-ориентированный подход. Реализация программной части
интеллектуального тренажера проводится на языке С# в среде Visual C#.NET
2005, для разработки экранных форм используется VB 0.6.
Структура и объем работы.
Диссертация состоит из введения, четырех глав, заключения,
библиографического списка из 69 наименований и 5 приложений. Работа
изложена на 150 страницах (112 страниц основного текста), содержит 6
таблиц и 43 рисунка. В приложениях приведены основные результаты работы
АОС, акт о внедрении, фрагменты листинга разработанной АОС.
Во введении обоснована актуальность темы, дана общая харак-
теристика работы, определена цель работы, приведена структура и краткое
содержание диссертации.
В первой главе рассматривается роль и место технической
диагностики производства электронных приборов, а также вопросы,
связанные с построением автоматизированных обучающих систем.
Вторая глава посвящена анализу предметной области АОС.
Предметной областью АОС являются подходы и методы технической
диагностики. В данной главе рассматриваются основные из них.
В третьей главе приводится структура разработанного
интеллектуального тренажёра с точки зрения информационной и
интеллектуальной поддержки управления процессом повышения уровня
квалификации инженерно-технического персонала.
Четвертая глава посвящена программной реализации
интеллектуального тренажера и его экспериментальному применению.
Обосновывается выбор среды программирования.
Заключение содержит краткие выводы по проделанной работе и
основные полученные результаты.
13

Глава 1. Современное состояние технической диагностики и систем


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

1.1. Современное состояние технической диагностики


Техническая диагностика – отрасль научно-технических знаний,
сущность которой составляют [1] теория, методы и средства обнаружения и
поиска дефектов объектов технической природы.
Основное назначение технической диагностики состоит в повышении
надежности объектов на этапе их эксплуатации, а также в предотвращении
производственного брака на этапе изготовления объектов и их составных
частей [2].
Согласно [1] под дефектом будем понимать любое несоответствие
свойств объекта заданным, требуемым или ожидаемым его свойствам.
Неисправное и неработоспособное техническое состояние может быть
детализировано путем указания соответствующих дефектов, нарушающих
исправность или работоспособность и относящихся к одной или нескольким
частям объекта или к объекту в целом.
Диагностический аспект обеспечения и поддержания надежности
состоит в рассмотрении и реализации совокупности мероприятий по
своевременному обнаружению и поиску дефектов с целью их последующего
устранения или исключения недопустимого влияния и тем самым
восстановления работоспособного состояния объекта [2].
В теории технической диагностики выделяют два типа объектов –
дискретные и аналоговые.
На начальных этапах развития технической диагностики основной
моделью неисправностей был класс константных неисправностей, а
основным методом построения тестов – полный перебор вариантов с
последующей оптимизацией и построением минимального теста.
Увеличение размерности решаемых задач привело к отказу от
оптимизации тестов и переходу к вероятностным методам построения тестов.
14
Дальнейшее увеличение степени интеграции схем, появление
микропроцессоров и других схем с большой и сверхбольшой степенью
интеграции привело к необходимости функционального представления
объектов на макроуровне и, соответственно, функционального
диагностирования.
Современные многопроцессорные вычислительные системы,
используемые в распределенных вычислениях, требуют новых подходов к
обеспечению их надежности и методам диагностики.
В настоящее время существует широкий спектр средств тестового
диагностирования – от простейших внешних или встроенных средств до
универсальных многофункциональных внешних средств. Последние часто
бывают предназначены не только для диагностирования, но и для решения
других задач, и содержат в своем составе управляющую ЭВМ с развитым
программным обеспечением.
Тем не менее, интерес к детерминированному построению тестов не
потерял своей актуальности до настоящего времени, и служит базой для
последующих, более современных методов. А современные мощные и
сверхмощные вычислительные системы позволяют существенно увеличить
размерность решаемых задач.
В процессе поиска неисправностей выделяют шесть этапов:
▪ выявление признаков неисправности;
▪ системный анализ признака неисправности;
▪ составление перечня возможных неисправных функций;
▪ локализация неисправной функции;
▪ локализация неисправности в схеме;
▪ анализ полученных результатов [2].
Обобщая сведения из литературы по поиску неисправностей [3, 4, 5, 6]
построим классификацию неисправностей (рис. 1.1).
15

Неисправности

Разл ичаю щ иеся повед ением во Различаю щ иеся вид ом искажения


врем ени ф ункции

Неустойчивы е Устойчивы е Кратны е О д иночны е

Дискретные Непрерывные Изменение


Комбинированные Константные
(обусловленные (обусловленные ф ункции
катастроф ическими
) процессами износа
)
Рис. 1.1. Классификация неисправностей
Кроме того, различают неисправности враждебные и дружественные.
Под дружественной неисправностью понимают произвольное поведение
неисправного элемента системы, но одинаковое по отношению к другим
элементам. Под враждебной (Византийской) неисправностью понимают
произвольное поведение неисправного элемента системы, и не одинаковое по
отношению к другим элементам. В том числе, элемент, имеющий
неисправность Византийского характера, в определенных ситуациях может
вести себя как исправный.
Методы диагностирования подразделяются на [7]:
▪ тестовые и функциональные;
▪ динамические, статические, параметрические;
▪ со штатными и дополнительными контрольными точками;
▪ с временной заменой блоков (эмуляцией) на время проверок;
▪ внешние и внутренние;
▪ с преобразованием структуры объекта и без преобразования;
▪ постоянные и периодические;
▪ поэлементные и в целом всего блока;
▪ детерминированные и вероятностные.
Для сокращения времени анализа неисправностей в классических
случаях принимаются следующие меры:
▪ сокращение списка неисправностей путем исключения из рассмотре-
ния заведомо необнаруживаемых неисправностей и нахождения
подмножеств эквивалентных неисправностей, оставляя в списке
16
неисправностей одного представителя каждого подмножества;
▪ разбиение всех неисправностей на независимые классы, характери-
зующиеся тем, что при моделировании неисправностей схемы в нее
можно вводить по одной неисправности каждого класса.
Остановимся на рассмотрении неисправностей объектов
приборостроения, различающихся поведением во времени:
▪ дискретные: катастрофические отказы, вызванные нарушениями
в физической структуре объекта контроля;
▪ непрерывные: отказы, обусловленные процессами старения,
уходом параметров из области допустимых значений;
▪ перемежающиеся: отказы, наличие или отсутствие которых
проявляется случайным образом и является следствием
ненадежной установки элементов, появления микротрещин в
токопроводящих дорожках, плохо отрегулированных зазоров, износа
деталей и т.д.
Идентификация неисправностей осуществляется с определенной
глубиной. Как правило, выделяют три следующих уровня:
▪ до причины;
▪ до компонента;
▪ до ремонтного блока.
Поскольку объект называют сложным [7] если в его составе можно
выделить ряд взаимосвязанных подсистем, имеющих самостоятельное
значение, то будем считать однородными неисправности, возникающие
внутри одной подсистемы и имеющие единую физическую природу. Тогда
неоднородные (разнохарактерные) неисправности определим как
принадлежащие к разным подсистемам или различные по физической
природе.
Методы для проверки корректного функционирования микропро-
цессорных устройств, особенно микро-ЭВМ, рассматриваются с трех точек
зрения, каждая из которых имеет свои специфические аспекты.
17
Точка зрения изготовителя современных электронных устройств: он
должен проверить качество производимой продукции. Эта задача сильно
отличается от тестирования классических логических схем: хорошо
известные гипотетические неисправности (обрывы, короткие замыкания)
составляют лишь малую часть от возможных неисправностей в столь
сложных объектах. Нельзя так же построить полную модель неисправностей,
которая позволила бы использовать логическую схему объекта контроля.
Точка зрения изготовителя оборудования, в состав которого входят
электронные устройства (или микро-ЭВМ): ему необходимо проверить
правильное функционирование электронного блока в составе производимого
оборудования. В большинстве случаев это ситуация, когда логическая схема
электронного блока неизвестна, так как она является промышленным
секретом.
Точка зрения пользователя: ему нужно, чтобы приобретенная им
микро-ЭВМ надежно работала, решая возложенные на нее задачи. При этом у
пользователя нет возможности (да и необходимости) проверять каждый блок
отдельно. Такие проверки не входят в состав входного контроля [8].
Для контроля и диагностики микропроцессорных и электронных
устройств применяется различное оборудование и разные методики,
зависящие от конкретных условий производства. Но есть основополагающие
моменты, общие для всех случаев. Одним из них является логический подход
к поиску неисправностей. Использование его позволяет сэкономить много
времени, избежать ошибок, свести помощь более опытных специалистов к
минимуму [9].
При диагностировании радиоэлектронных устройств или микросхем с
низкой и средней степенью интеграции поиск неисправностей
осуществляется с точностью до логического элемента. В таких случаях
используются следующие известные методы обнаружения неисправностей [7,
10, 11]: модификация схем дублирования и сравнения:
▪ метод дублирования схем и сравнения выходных сигналов;
18
▪ двухпроводная логика;
▪ псевдодублирование;
▪ воспроизведение входных символов;
▪ применение специальных кодов;
▪ алгебраический метод;
▪ определение погрешностей срабатывания.
Для обнаружения неисправностей в более сложных объектах ис-
пользуются различные методы моделирования, включающие как
моделирование неисправностей объекта, так и моделирование его поведения в
процессе функционального контроля.
Так, в [4, 12] введены модели неисправностей для аналоговых
элементов, описанных функциональными моделями. Рассмотренная в
указанных работах модель неисправностей дает основу для разработки
методов построения проверяющих тестов аналоговых элементов и схем; при
этом элемент описывается на функциональном уровне.
В модели неисправностей ПЛМ [13] используются четыре типа
неисправностей:
▪ F1: однонаправленная константная неисправность на
множественных параллельных линиях;
▪ F2: короткие замыкания между множественными
параллельными линиями;
▪ F3: обрыв линий;
▪ F4: снижение или повышение параметров активности устройства.
Основной современной тенденцией в вычислительной технике является
создание многопроцессорных (многомашинных) вычислительных систем. В
связи с этим все большую актуальность приобретает требование высокой
надежности вычислительных систем. Надежность и отказоустойчивость таких
систем обеспечивается процессом взаимного информационного согласования,
основанного на многораундовом обмене сообщениями между процессорами
(ЭВМ). Эта задача – еще один, наиболее сложный и трудно формализуемый
19
ракурс современной технической диагностики. Обеспечить отказоустойчивую
работу таких систем в течение достаточно длительного времени можно
только при условии динамического резервирования процессоров [14].
При разработке систем диагностирования необходимо решение
следующих задач:
▪ изучение объекта с точки зрения поиска дефектов, а также условия и
признаки их проявления;
▪ выбор и построение диагностической модели объекта;
▪ построение алгоритма тестового или функционального
диагностирования, обнаруживающий данный класс неисправностей;
▪ разработка или создание средств диагностирования,
обеспечивающих реализацию разработанного алгоритма [2].
Задачей данной диссертации является разработка АОС, основу которой
составляет интеллектуальный тренажер для обучения инженерно-
технического персонала методам и приемам контроля и диагностики изделий
электронной техники, содержащей в качестве своей основы
интеллектуальный тренажер для подготовки специалистов [15].
Основополагающие элементы разрабатываемой АОС – теоретические
основы диагностики и d-алгоритм Рота [16, 17].
Для создания АОС совместно решаются вопросы в двух направлениях:
▪ формализация предметной области знаний, необходимой для
эффективного построения интеллектуального тренажера как основы
АОС;
▪ методы и средства информационной поддержки процесса
подготовки специалистов в области технической диагностики.

1.2. Автоматизация процесса подготовки специалистов


Основными функциями преподавателя являются:
▪ разработка содержания (контента) курса;
▪ передача нового учебного материала от преподавателя к ученику;
20
▪ обучение решению задач под управлением преподавателя;
▪ проверка знаний и контроль умений в решении задач.
В нашем случае, "преподавателем" выступает АОС, а "учеником" –
сотрудник предприятия, основной функцией которого является выполнение
своих профессиональных обязанностей, а обучение – только средство,
обеспечивающее выполнение этих обязанностей. Поэтому разработкой
контента занимается кто-то из ведущих специалистов предприятия, так же как
и разработкой способов передать остальные из перечисленных функций
преподавателя интеллектуальному тренажеру АОС.
Интеллектуальный тренажер является основой АОС, которая, по сути
дела, представляет собой систему для разработки, модификации и
использования обучающих программ, управления учебным процессом в
диалоге с обучаемым, сбора и обработки информации о результатах
обучения. Такая система предназначена для выполнения некоторых из
функций преподавателя-человека [18].
Основными составляющими в классификации АОС являются:
▪ обучающие программы [19] – обеспечивают пошаговое получение
по заранее разработанному автором программы сценарию новой
учебной информации с учетом в той или иной степени
индивидуальных особенностей обучаемого;
▪ тренировочные программы – реализуют повторение ранее
полученных знаний, получение и закрепление умений и навыков в
решении задач;
▪ контролирующие программы – диагностируют, проверяют и
оценивают знания, способности и умения обучаемого;
▪ информационно-поисковые, справочные системы, базы данных и
знаний – обеспечивают хранение и представление информации в
соответствии с требованиями обучаемого;
▪ имитирующие, моделирующие и демонстрационные программы
представляют какой-то аспект действительности посредством
21
реализации в компьютере некоторой его модели для изучения
основных свойств этой действительности;
▪ микромиры – аналогичны моделирующим и имитирующим
программам, но не для представления действительности, а для
представления вымышленных учебных сред;
▪ игровые программы дидактическим содержанием – развивают
логическое мышление, внимание, скорость реакции;
▪ инструментальные системы - обеспечивают выполнение конкретных
действий по обработке информации (текстовые и графические
редакторы, электронные таблицы, математические пакеты, системы
программирования и другие [20].
С технической точки зрения интеллектуальный тренажер – это
совокупность связанных в единое целое технических, программно-
алгоритмических, лингвистических и информационно-методических средств,
предназначенных для автоматизации обучающего диалога, поиска и
обработки учебной информации.
Техническое обеспечение включает в себя, прежде всего базовую ЭВМ
со средствами диалогового взаимодействия. В качестве средств диалогового
взаимодействия выступают алфавитно-цифровые и графические дисплеи или
телевизионные установки.
Лингвистическое обеспечение выражается совокупностью языковых
средств, используемых в интеллектуальном тренажере.
Информационное обеспечение - совокупность сведений, необходимых
для обеспечения процесса обучения. Основную часть информационного
обеспечения составляет база знаний.
Методическое обеспечение - представляет собой совокупность
документов, устанавливающих состав и правила функционирования
интеллектуального тренажера.
Если иметь в виду, что одной из целевых задач повышения уровня
квалификации инженерно-технического персонала является формирование
22
таких качеств, как умение самостоятельно ориентироваться в обстановке,
добывать новые знания, активно мыслить, проявлять творческую инициативу,
продуктивно решать проблемные задачи, то становится ясно, что
использование АОС в рамках технологического процесса с целью поддержки
повышения уровня квалификации инженерно-технического персонала может
дать определенный эффект на пути к достижению этой цели.

1.3. Имитационное, проблемное и эвристическое обучение


Признано, что наиболее эффективными являются комбинированные
методы управления познавательной деятельностью, которые сочетают в себе
принцип жесткого (детерминированного) управления и самоорганизации.
Элементы самоорганизации проявляются в развиваемых в настоящее время
методах имитационного и проблемного обучения с помощью ЭВМ. Под
имитационным понимают обучение с помощью различного рода учебно-
исследовательских и тренировочных моделей. Моделирование - это
процедура, направленная на опосредствованное познание реальных объектов
и процессов. Изменяя параметры модели, можно определить влияние
отдельных параметров на свойства различных изучаемых объектов,
наблюдать изменения этих свойств в выбранном масштабе времени. Как
правило, машинное (имитационное) моделирование применяют в тех случаях,
где непосредственное исследование или физическое моделирование
невозможно или нецелесообразно. ЭВМ дает возможность моделировать
процессы любой сложности, в том числе и такие, которые невозможно
наблюдать в обычной обстановке. Например, при моделировании
растягивают быстротекущие процессы и, наоборот, сжимают медленные.
Условно различают учебные модели объектного (предметного) и
мыслительного типа. Если одни из них предназначены в основном для
познания некоторого объекта или приобретения навыков работы с ним, то
другие - для развития мышления обучаемого, умения самостоятельно
ориентироваться в проблемных ситуациях и принимать целесообразные
решения. Для имитационного обучения характерны модели первого типа, а
23
для проблемного я эвристического - второго типа, хотя характер объектных
моделей и алгоритмы работы с ним могут быть и такими, что создаются
условия для реализации проблемных и эвристических методик обучения.
Четкое разграничение здесь затруднительно. Тренировочные модели могут
выходить за рамки имитационного обучения, создавая проблемные ситуации,
требующие от обучаемого самостоятельного принятия решений и
развивающие тем самым творческие начала, т.е. эвристики [10].

1.4. Информационные средства поддержки процесса обучения


С точки зрения решения поставленных в данной диссертации задач,
наибольший интерес представляют собой оболочки, сочетающие в себе
средства по созданию обучающих курсов, ведению процесса обучения,
управлению учебным процессом и организующие взаимодействие между
всеми участниками процесса обучения. Среди зарубежных средств можно
выделить Learning Space 4.0 (LS, фирма Lotus Development Corporation,
http://www.lsibm.ru/) и WebCT 3.6 (корпорация WebCT Университета
Британской Колумбии, http://www.webct.com/).
Примерами отечественных оболочек являются сертифицированные
системы ОРОКС. 2.0 (Московский областной центр новых информационных
технологий, http://www.mocnit.miee.ru) и «Прометей» 2.0 (компания
«Прометей», http://www.prometeus.ru), а также системы «Аванта»
(Владивостокский государственный университет экономики и сервиса,
http://www.avanta.vvsu.ru/), eLearning Server 3000 (eLS3000, компания
ГиперМетод, http://www.hypermethod.ru) и появившаяся сравнительно
недавно система xDLS (Пермский государственный университет,
http://www.xdlsoft.com).
Системы имеют идентичные функциональные возможности. Они
позволяют создавать обучающие ресурсы, проводить обучение, управлять
образовательным процессом, осуществлять интерактивную связь со всеми
пользователями системы и выполнять, администрирование самой системы
[21].
24
Среди пользователей обучающих систем можно выделить четыре
основные категории: администраторы системы, авторы учебных ресурсов,
преподаватели, сопровождающие учебный процесс, и обучаемые (студенты).
В случае использования АОС в рамках технологического процесса ситуация
несколько иная. Администратор системы может присутствовать. В качестве
авторов блока повышения квалификации, как правило, выступают ведущие
специалисты или эксперты в области разработки изделий электронной
техники. Преподавателями в случае необходимости оказываются они же. А в
роли обучаемых выступают сотрудники предприятия.
Система «Прометей» имеет дополнительную категорию пользователей -
организаторов, которым предоставляются дополнительные возможности по
решению организационных вопросов, связанных с обучением. В системе
eLS3000 общее администрирование учебного процесса возложено на
пользователя с правами категории «Деканат». В системах WebCT, ОРОКС и
xDLS автором при создании курса может быть преподаватель или
администратор системы. В дополнение к имеющимся категориям
пользователей системы LS и ОРОКС позволяют создавать новые категории,
права для которых выбираются из общего перечня прав всех категорий.
Кроме того, в системе LS категории объединяются в группы, а пользователю
системы может быть присвоено несколько категорий. При этом пользователь
будет обладать правами всех этих категорий.
Одним из способов проверки знаний обучаемых являются тесты [22].
Тест представляет собой набор вопросов, которые выдаются пользователю в
определенной последовательности. Самый простой способ организации
тестов - выдача обучаемому вопросов теста последовательно одного за
другим, пока не исчерпается весь набор. Тесты с такой последовательностью
выдачи вопросов имеют линейную структуру. При линейной структуре
вопросы могут выдаваться и в случайном порядке. Тесты с линейной
структурой могут быть разбиты на секции. При тестировании сначала
выдаются вопросы из набора первой секции, затем из набора второй и т. д.
25
Возможна и так называемая случайно-линейная выдача вопросов. В этом
случае из каждой секции случайным образом выбирается заданное при
создании теста число вопросов.
Другой способ организации тестов заключается в том, что вопросы
теста выбираются по заданному автором количеству или по ключевым
словам. Тесты могут быть созданы и с более сложной структурой —
древовидной. Древовидная структура позволяет организовать тестирование в
зависимости от уровня подготовленности обучаемого, с переходом от более
простого вопроса к более сложному при успешном ответе на вопрос и,
наоборот, с переходом к более простому вопросу в случае неверного ответа.
Такая структура позволяет получать многовариантные тесты [21].
Системы LS, WebCT, eLS3000 и «Аванта» ограничиваются
организацией тестов только с линейной структурой. Система eLS3000
позволяет выбирать вопросы по определенной теме. В системе «Аванта»
тесты состоят из фиксированного набора вопросов, которые выдаются
последовательно или случайным образом. В системе WebCT [23] вопросы
выбираются случайным образом, и они могут выдаваться не все, а только
указанное автором количество. Система LS в рамках создания тестов с
линейной структурой отличается от систем WebCT, eLS3000 и «Аванта» тем,
что предоставляет пользователям расширенные возможности по компоновке
набора вопросов.
В системах «Прометей» и xDLS тесты имеют линейно-секционную
структуру. В системе «Прометей» допускается последовательная и случайно-
линейная выдача вопросов. Система ОРОКС позволяет создавать тесты как
линейной, так и древовидной структуры. В системах LS, WebCT, ОРОКС,
eLS3000 и xDLS можно задать ограничение по времени выполнения теста.
Во всех системах оценки за выполненные тесты вычисляются
автоматически. Системы WebCT, ОРОКС, eLS3000 и «Аванта» допускают
также участие преподавателя в выставлении оценок [21].
26
При выполнении тестов в системе «Аванта» пользователь может
получить подсказку при ответе на вопрос, это учитывается при формировании
оценки, однако данная система не протоколирует ход тестирования.
Все перечисленные системы используются для дистанционной
технологии обучения. Они в большей или меньшей степени подходят для
комплексного подхода к обучению, но достаточно удобно организованы для
преподавания отдельных учебных дисциплин.
Как показал анализ существующих обучающих систем, они в основном
обладают следующими свойствами:
1) предлагают разработанные преподавателем обучающие и
контрольные задания в определенной комплектации, в различных выборках;
2) есть возможность вставить заранее подготовленный рисунок;
3) при проверке заданий используются ответы, заранее
вычисленные и подготовленные преподавателем;
4) для изучения предлагается один теоретический блок,
освещающий данную тему.
В результате проведенного анализа основное внимание в диссертации
уделяется разработке интеллектуального тренажера, создание которого
направлено на достижение следующих преимуществ:
1) наличие блока автоматической генерации заданий,
позволяющего генерировать обучающие и контрольные задания в
автоматическом режиме;
2) возможность графического изображения сгенерированных схем в
динамическом режиме;
3) наличие механизма автоматической проверки сгенерированных
заданий – автоматического "решателя";
4) два подхода к представлению теоретической части по каждой
теме – индуктивный и дедуктивный, ориентированные на индивидуальные
психологические особенности обучаемого и уровень его подготовки.
27
1.5. Выводы
В первой главе диссертации рассматривается современное состояние
технической диагностики. Приводится классификация неисправностей,
описываются приемы, модели и методы диагностирования неисправностей
различных типов.
Одной из основных задач данной диссертации является разработка АОС
для обучения методам контроля и диагностики в приборостроении. Поэтому в
рамках первой главы рассматриваются также средства автоматизации
процесса обучения. Приводится сравнительный анализ автоматизированных
обучающих систем и тренажеров с целью сформулировать необходимый
набор функций, способных обеспечить повышение квалификации
сотрудников без отрыва от производства.
28

Глава 2. Структура трехуровневой системы диагностирования


изделий электронной техники в технологическом процессе

2.1. Общие принципы диагностики, их место в системных исследованиях


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

Объекты диагноза

Объекты с непрерывно Объекты с дискретно


изменяющимися изменяющимися
параметрами параметрами
(непрерывные) (дискретные )

Комбинационные С памятью
Рис. 2.1. Классификация объектов диагностирования
Проверка технического состояния предполагает проверку исправности,
проверку работоспособности и проверку правильности функционирования.
Диагностирование технического состояния объекта осуществляется при
помощи тех или иных диагностических средств. Взаимодействующие между
собой объект и средства диагностирования образуют систему
диагностирования. Протекающий в системе диагностирования процесс в
общем случае представляет собой многократную подачу на объект
определенных воздействий (входных сигналов) и многократное измерение и
анализ ответов (выходных сигналов) объекта на эти воздействия. Воздействия
на объект либо поступают от средств диагностирования, либо являются
внешними (по отношению к системе диагностирования) сигналами,
29
определяемыми рабочим алгоритмом функционирования объекта. Измерение
и анализ ответов объекта всегда осуществляются средствами
диагностирования.
Диагностические системы различаются на системы тестового
диагностирования (рис.2.2) и системы функционального диагностирования
(рис.2.3).
Часто тестовое диагностирование выполняют после проверки
исправности объекта в случае, если объект признан неисправным. Оно
заключается в подаче на входы объекта тестовых воздействий, направленных
на поиск возможной неисправности.
При функциональном диагностировании тестовые воздействия на
объект не подаются, объект работает в составе функционального блока с
подачей на него рабочих воздействий. Функциональный блок может быть
реальным или смоделированным.

Блок
управления

Основные
входы
Источник
воздействий
Устройство связи

Объект диагноза

Физическая
Измерительное
модель
устройство
объекта

Основные
выходы

Блок расшифровки
результатов

Система
диагностирования
Результаты
Рис. 2.2. Система тестового диагностирования
диагноза
30

Основные
Блок входы
управления

Устройство

диагноза
Объект
связи
Физическая
Измерительное
модель
устройство
объекта

Основные
выходы

Блок расшифровки
результатов
Система
диагностирования
Результаты
Рис. 2.3. Система функционального
диагноза
диагностирования
Неисправность преобразует устройство A в устройство A' и
поддерживает его в этом состоянии в течение интервала времени ∆t . Если
этот интервал не меньше длительности процесса диагностирования
технического состояния устройства и, кроме того, начинается не позже, чем
процесс диагностирования, то неисправность считается устойчивой. Это
значит, что в течение времени диагностирования техническое состояние
устройства не изменяется, т.е. в частности, в нем не возникают новые и не
исчезают имеющиеся неисправности. Если же за время диагностирования
техническое состояние устройств изменяется за счет появления в нем новых
или исчезновения имевшихся неисправностей, то последние будем называть
неустойчивыми, независимо от абсолютных значений их интервалов ∆t .
Неустойчивая неисправность называется сбоем, если для нее ∆t значительно
меньше длительности процесса диагностирования.
Под одиночной понимается неисправность, принимаемая в качестве
элементарной, т. е. такой, которая не может быть представлена (или не
подлежит представлению) совокупностью нескольких других, более
«мелких», неисправностей. Кратная неисправность является совокупностью
одновременно существующих двух или большего числа одиночных
неисправностей.
31
Под логическими неисправностями понимают неисправности
логических элементов, а также неисправности связей, сводящиеся к
изменению логических функций, реализуемых элементами. Константные
неисправности - это неисправности элементов и связей, которые
эквивалентны такому изменению функций, реализуемых логическими
элементами, которое соответствует подаче на один или несколько входов хотя
бы одного элемента или на его выход постоянного сигнала (константы) 0 и 1.
Объект, состояние которого определяется, называется объектом
диагноза. Диагноз представляет собой процесс исследования объекта
диагностирования. Завершением этого исследования является получение
результата диагностирования, т.е. заключения о состоянии объекта
диагностирования. Характерными примерами результатов диагностирования
состояния технического объекта являются заключения вида: объект исправен,
объект неисправен, в объекте имеется такая-то неисправность.
Классификации основных задач технической диагностики показана на
рис. 2.4.
Техническая диагностика

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

Экспериментальное
Физические Объекты Алгоритмы Средства опробование и
объекты диагноза диагноза диагноза промышленное
внедрение

Математические Теория и методы Принципы


модели построения построения
Рис. 2.4. Дерево классификации основных задач технической
диагностики
Различают системы тестового диагностирования, отличительная
особенность которых состоит в возможности подачи на объект
диагностирования специально организуемых (тестовых) воздействий от
средств диагностирования, и системы функционального диагностирования в
которых подачи воздействий на объект от средств диагностирования не
32
производится (поступают только рабочие воздействия, предусмотренные
рабочим алгоритмом функционирования объекта).
Часто при использовании методов технической диагностики строят
модели диагностируемых объектов. Формализованной моделью объекта
является его описание в аналитической, графической, табличной или другой
форме [27].
Модели объектов бывают:
1. явные и неявные,
2. функциональные и структурные,
3. детерминированные и вероятностные.
Классификация видов диагностирования цифровых устройств:
1. тестирование с хранимой программой,
2. метод вероятностного тестирования,
3. метод логического анализа,
4. метод сигнатурного анализа,
5. метод поэлементного диагностирования,
6. метод внутрисхемной эмуляции.

2.2. Трехуровневая система диагностических мероприятий в


технологическом процессе
Идентификацию неисправностей трактуют как решение задачи
распознавания образов, то есть распознавание неисправности по имеющимся
признакам неисправности. При этом возможны два подхода к задачам
распознавания [28, 29, 30]. Первый - выявление одного или небольшого числа
диагностических признаков, позволяющих применить правило распознавания
или оценки, например, полученное с помощью корреляционно-регрессионных
зависимостей между параметрами состояний и диагностическими
признаками. Второй - принятие решений на основе комплекса исходных
физических диагностических признаков со сжатием этой информации в
одном или нескольких обобщенных признаках.
33
Контроль логических или константных неисправностей предполагает
обнаружение их с точностью до вентиля.
При контроле более сложных объектов, например, материнских плат
компьютеров, состоящих в основном из БИС, нет возможности
идентифицировать неисправности с точностью до логического элемента. Но
при этом нет и такой необходимости, т.к. микросхема не ремонтируется, а
заменяется. Поэтому в данной ситуации полезной является информация,
позволяющая идентифицировать неисправность с точностью до сменного
компонента, в частности, до микросхемы в корпусе.
Аналогичная ситуация наблюдается в случае диагностирования других
сложных объектов, когда нет необходимости (или возможности)
идентификации неисправности с точностью до причины, ее идентифицируют
до ремонтного блока.
Для успешной настройки, регулировки и ремонта таких объектов
необходимо иметь информацию о признаке неисправности данного
устройства и проведенных ранее проверках. Но в этом случае редко удается
по признаку неисправности однозначно определить вид ремонта, поэтому
встает проблема обращения к прошлому опыту обслуживания таких же
объектов или аналогичных [31]. При этом часто приходится пользоваться не
только личным опытом, а всеми доступными наработками в данной области.

2.2.1. Применение базы данных


Одним из наиболее распространенных и простых способов
использования прошлого опыта является обращение к статистическим
данным. Границы применимости вероятностно-статистических методов
определяются требованием соблюдения в исследуемой реальной дейст-
вительности условий статистического ансамбля, а именно:
▪ возможностью многократного повторения экспериментов или
наблюдений в одних и тех же условиях;
34
▪ наличием большого числа случайных факторов,
характеризующих условия проведения экспериментов и не позволяющих
делать полностью предопределенного (детерминированного) заключения о
том, произойдет или не произойдет в результате этих экспериментов
интересующее нас событие [32]. В задаче контроля и диагностики эти
условия выполняются, так как появление конкретной неисправности является
случайным событием. Поэтому использование методов теории вероятности и
математической статистики для обработки результатов диагностирования
вполне обосновано.
Наиболее удобной формой хранения и обработки статистических
данных является организация их в базу данных.
Для эффективного использования информации, хранящейся в базе
данных, необходимо, чтобы эти данные удовлетворяли следующим тре-
бованиям [33, 34].
▪ Целостность и достоверность данных.
▪ Непротиворечивость данных.
▪ Универсальность данных.
▪ Неизбыточность данных.
▪ Возможность внесения в базу данных новой информации.
▪ Представление данных в форме, максимально удобной для
использования.
Использование статистических данных позволяет учитывать прошлый
опыт только для ситуаций, имевших место ранее. Если ситуация встретилась
впервые, то статистические методы не могут помочь в ее обработке. Кроме
того, эти методы становятся достоверными при больших объемах выборки.
Если статистических данных мало, результат ненадежен. Все это заставляет
задуматься о возможности использования других методик для обработки
результатов диагностирования объектов контроля.
35
2.2.2. Использование нейронной сети
Использование нейронных сетей предполагает переход к
вероятностным характеристикам, поскольку степень принадлежности
рассматриваемого объекта к определенному классу оценивается с некоторой
вероятностью. Поэтому в качестве направления развития процесса
диагностирования сложных объектов обратимся к использованию нейронных
сетей [35].
Особенности использования нейронных сетей в процессе обработки
результатов диагностирования рассмотрены далее.
Несмотря на определенные преимущества, которые дает использование
нейронных сетей при распознавании неисправностей, существуют ситуации,
когда бывает необходимо обращение к неформализованным знаниям о
диагностируемом объекте.

2.2.3. Построение экспертной системы


Во многих случаях основным источником знаний является эксперт. Это
приводит к тому, что информация выражается неточно, не всегда полно, а
порой (в случае нескольких экспертов) противоречиво. Следовательно,
значительная часть этой информации непредставима в числовой форме. Не
всегда возможной бывает и символьная обработка данных.
Для этой ситуации рассматриваются [36] два классических подхода к
представлению неполной информации: теория ошибок и теория вероятностей.
Но их возможностей оказалось недостаточно при появлении новых
потребностей. Ограниченность теории ошибок состоит в том, что она не
отражает оттенков неполноты информации и применима лишь к числовым
величинам. А теория вероятностей предлагает слишком нормативные рамки
для учета субъективных суждений.
С прогрессом информатики и с развитием методов искусственного
интеллекта возникла потребность в теории субъективных суждений,
выходящей за рамки теории вероятностей.
36
Для создания математических моделей нечетко определенных образов,
необходимо их формализовать. Как показано в [37], существует пять
основных признаков, с помощью которых классифицируют и формализуют
нечеткие высказывания:
▪ по виду представления нечеткой субъективной оценки какой-либо
величины (нечеткого множества);
▪ по виду области значений функции принадлежности;
▪ по виду области определения функции принадлежности;
▪ по виду соответствия между областью определения и областью
значений (однозначное, многозначное);
▪ по признаку однородности или неоднородности области значений
функции принадлежности.
В области исследований нечетких множеств существует одна
особенность. С самого начала главной прагматической целью осно-
воположника теории нечетких множеств Л.А.Заде было создание аппарата,
способного моделировать человеческие рассуждения [37].
Эта особенность теории нечетких множеств позволяет использовать их
математический и логический аппарат для построения экспертной системы
диагностики неисправностей сложных объектов.
По своему характеру задачи технической диагностики, и в особенности
задача диагностики микропроцессорных устройств, в большинстве случаев
оперируют нечеткой информацией вследствие их сложной структуры.
Неоднозначность входных данных для процесса диагностики приводит к
неоднозначной идентификации неисправностей. Поэтому в ситуациях, когда
неисправность не распознается статистическими методами и с помощью
нейронных сетей, требуется некоторое эвристическое решение.
По сложности решаемых задач техническую диагностику можно
поставить в один ряд с медицинской диагностикой, в которой успешно
используются экспертные системы.
37
Имеющееся в наличии технологическое оборудование и
вычислительная техника позволяют решать задачи технической диагностики
вполне успешно. То есть, задача по своему объему и сложности не выходит за
пределы возможностей современных вычислительных систем, применяемых
на промышленных предприятиях.
Основная черта, отличающая интеллектуальные системы, большую
часть которых составляют системы экспертного типа, от всех остальных,
заключается в том, что они обладают знаниями о той проблемной области, в
которой работают, и о своих возможностях по решению задач в ней. Говорить
об интеллектуальности искусственной системы позволяет именно
возможность использования знаний, заложенных в ней. Понятие знания
является ключевым термином в этой области.
Активность информации предполагает использование смешанных
представлений, в которых декларативные и процедурные знания понимаются
единообразно и могут активизировать друг друга [38], что является
непременным признаком интеллектуальных систем, основанных на знаниях,
то есть таких систем, в которых механизмы интеллектуальных рассуждений
применяются к явным представлениям знаний.
Экспертные системы представляют собой вид интеллектуальных
систем, основанных на знаниях, специально предназначенный для мо-
делирования человеческих знаний и опыта в некоторой конкретной
проблемной области. Как правило, экспертная система обладает обширной
базой знаний, составленной из фактов, правил и эвристик, относящихся к этой
области [39].

2.3. Основные принципы диагностирования изделий в процессе


производства в приборостроении
Основными характеристиками объекта контроля, определяющими
уровень его контролепригодности, являются [7]:
▪ число контролируемых параметров;
38
▪ чувствительность контролируемых параметров к дефектам и
неисправностям;
▪ стабильность измеряемых физических, величин при контроле
исправных изделий;
▪ доступность конструкции изделия для применения средств
неразрушающего контроля.
Диагностические показатели, которыми характеризуются сложные
технические объекты, обычно выражены:
▪ электрическими величинами;
▪ механическими величинами;
▪ логическими величинами;
▪ оцениваемые визуально.
Так как почти все современное оборудование относится к сложным
техническим объектам, то создание для него диагностической системы
включает следующие этапы [7]:
▪ классификацию оборудования, которое в свою очередь
представляется совокупностью элементов, подлежащих проверке;
▪ определение иерархических уровней диагностики;
▪ определение диагностических параметров для каждого
объекта диагностирования по видам оборудования;
▪ определение диагностических параметров, имеющих значение
для диагностики системы в целом.
Согласно [42] под дефектом будем понимать любое несоответствие
свойств объекта заданным, требуемым или ожидаемым его свойствам.
Неисправное и неработоспособное техническое состояние может быть
детализировано путем указания соответствующих дефектов, нарушающих
исправность или работоспособность и относящихся к одной или нескольким
частям объекта или к объекту в целом.
Для сокращения времени анализа неисправностей в классических
случаях принимаются следующие меры:
39
▪ сокращение списка неисправностей путем исключения из
рассмотрения заведомо не обнаруживаемых неисправностей и
нахождения подмножеств эквивалентных неисправностей, оставляя
в списке неисправностей одного представителя каждого
подмножества;
▪ разбиение всех неисправностей на независимые классы,
характеризующиеся тем, что при моделировании неисправностей
схемы в нее можно вводить по одной неисправности каждого
класса;
▪ использование алгоритмов "быстрого завершения".

2.4. Диагностирование логических и одиночных константных


неисправностей
Для контроля и диагностики микропроцессорных и радиоэлектронных
устройств применяется различное оборудование и разные методики,
зависящие от конкретных условий производства. Но есть основополагающие
моменты, общие для всех случаев. Одним из них является логический подход
к поиску неисправностей. Использование его позволяет сэкономить много
времени, избежать ошибок, свести помощь более опытных специалистов к
минимуму.
При диагностировании радиоэлектронных устройств или микросхем с
низкой и средней степенью интеграции поиск неисправностей
осуществляется с точностью до логического элемента. В таких случаях
используются следующие известные методы обнаружения неисправностей
[10, 11, 38], относящиеся к методам модификации схем дублирования и
сравнения:
▪ метод дублирования схем и сравнения выходных сигналов;
▪ двухпроводная логика;
▪ псевдодублирование;
▪ воспроизведение входных сигналов;
40
▪ применение специальных кодов;
▪ алгебраический метод;
▪ определение погрешностей срабатывания.
Для обнаружения неисправностей в более сложных объектах ис-
пользуются различные методы моделирования, включающие как
моделирование неисправностей объекта, так и моделирование его поведения в
процессе функционального контроля.
Так, в [5, 39] введены модели неисправностей для аналоговых
элементов, описанных функциональными моделями. Рассмотренная в
указанных работах модель неисправностей дает основу для разработки
методов построения проверяющих тестов аналоговых элементов и схем; при
этом элемент описывается на функциональном уровне.
Однако, в основе всех перечисленных методов, на первом уровне
диагностирования лежит диагностирование константных неисправностей.
Поэтому представляется логичным начать обучение методам технической
диагностики именно с них. Основным методом построения тестов для
диагностирования константных неисправностей является d-алгоритм Рота.
Поэтому первой из реализуемых в АОС задач является обучение применению
d-алгоритма Рота.

2.5. Применение нейронных сетей и экспертных систем для


распознавания неявно выраженных неисправностей в технологическом
процессе
Использование нейронных сетей предполагает переход к
вероятностным методам диагностирования, т.к. степень принадлежности
рассматриваемого объекта к определенному классу в этом случае оценивается
с некоторой вероятностью. Поэтому в качестве направления развития
процесса диагностирования сложных объектов обратимся к использованию
нейронных сетей [35].
41
В классических случаях нейронные сети тесно связаны с
распознаванием образов. Но задача соотнесения каждой конкретной
неисправности с определенным классом неисправностей - это тоже
распознавание образа, которым является имеющаяся неисправность.
Нейрон – это двоичный элемент, состояния которого определяют как х
= (0,1) или k=(-1,1) в зависимости от условий
1
x= (1 + k )
2
Сеть состоит из N нейронов, связи между которыми определяют ее
структуру. Компоненты сети определяются как одномерные массивы [43]:
x ≡ X ≡ {x1 , x 2 ,..., x N }, x h = 0,1

k ≡ K ≡ {k 1 , k 2 ,..., k N }, k h = 0,1

На рис. 2.5. показана структура элемента нейронной сети [44]. х -


входной вектор, w - вектор весовых коэффициентов, у -выход, S - функция
нелинейности.

x 1 , w 1n
W0

Sn
x 2 , w 2n Σ S yn

x k , w kn

Рис.2.5. Структура элемента нейронной сети


В нейронной сети с N элементами, в которой выходы обозначены как
yn (n = 1,..., N ) , а внешние входы xk (k = 1,..., K ) , обозначим через wkn - веса связей

от внешнего входа k к выходу n , а через w0 - пороговое значение элемента n


. Тогда уровни активности элементов будут:
N
sn = ∑ wkn xk + w0 (n = 1,..., N )
n =1

и выходы элемента
y n = S n ( sn ) (n = 1,..., N ) ,
42

где Sn - функция нелинейности элемента n .


Нейронная сеть - обучаемая система. Обучение сети происходит путем
пересчета весовых коэффициентов [35, 45, 46, 47].
В данном случае нейронная сеть используется для распознавания класса
неисправностей - области, в которой способности к распознаванию зависят от
степени обучения и накопленного опыта.

2.5.1. Установка критериев для определения порогового значения


переключения элементов нейронной сети
Существует три способа обучения нейронных сетей: обучение с
учителем, обучение без учителя, усиление обучения.
Обучение с учителем происходит методом подбора весовых
коэффициентов на основе различий между значениями на выходных узлах
данных входов и ожидаемыми значениями, указанными внешним агентом,
обычно называемым учителем [46, 48]. Процедура определения ошибки
обратной связи является способом наблюдения за процессом обучения.
Обучение без учителя предполагает отсутствие внешнего агента в
процессе обучения. Такой алгоритм обучения осуществляется только на
основе внутренних статистических свойств входного набора, без обращения к
учителю и без каких-либо сообщений.
Усиление обучения - это тип обучения с учителем, в алгоритме
которого в первый момент фигурирует очень маленькое количество
информации, часто всего один бит, имеющий, тем не менее, большое
значение, если вход, который предоставляет нейронная сеть, является
подходящим для данных воздействий. Этот тип обучения работает более
медленно, чем обычное обучение с учителем вследствие меньшего
количества исходной информации и напоминает способ изучения языка
детьми.
Так как при контроле технических объектов в конечном счете вид
ремонта будет определен верно, то в нейронной сети предусмотрена обратная
43
связь, позволяющая в будущем учитывать приобретенный опыт, который
играет большую роль в процессе обучения нейронной сети. Для данного
случая этот метод обучения наиболее предпочтителен, т.к. имеется явно
выраженный момент коррекции поведения нейронной сети посредством
вмешательства внешнего сигнала, поступающего от учителя, что очень
быстро приводит сеть в "обученное" состояние. Поэтому выберем этот путь
подбора весовых коэффициентов.
Нейронная сеть, кроме способа обучения, характеризуется типом
закона, по которому осуществляется расчет уровня активности элементов
сети. Обычно активность выхода y j является некоторой функцией f

обобщенного взвешенного входа, связанного с этим выходом, то есть


функцией линейного выхода:
S j = ∑ xi × wij ,

где xi - i-й элемент входного вектора, wij - вес связи входа i с выходом j .
Обычно рассматриваются три правила расчета уровня активности,
используемые в нейронных сетях:
1. Линейный закон (рис.2.6,а):
Y = kS , где k - некоторая константа.

2. Закон двоичного порога (рис.2.6,б):


1, если S ≥ Th 1, если S ≥ Th
Y = или Y = 
0, если S < Th  −1 если S < Th

где Th - порог переключения элемента нейронной сети.


2. Полулинейный или сигмоидный закон (рис.2.6,в):
1
Y=
1 + β −S

Линейный закон имеет ограничения по числу функций, которые


используются при построении сети и ее расчетах [46].
Основным элементом, используемым во многих нейронных сетях,
является адаптивный линейный элемент. Это - пороговый логический
элемент, состоящий из адаптивного линейного сумматора, на выходе
44
которого установлен жестко настроенный селектор, который служит для
получения двоичного выхода, имеющего значение ±1, то есть Yk=sgn(Sk). Вес
смещения W0, связанный с константным входом x0=+1, управляет уровнем
порога селектора.

y
y
y = kS =0 S
yпри Th <
=1 S
yпри Th≥

S S
а) Линейный закон б) Закон двоичного порога
y

y
1
y=
1 + e− S

= −1S
yпри Th <
=1 S
yпри Th >
Рис.2.6. Законы переключения
S элементов нейронной сети
в) сигмоидный закон
Двухвходовой адаптивный линейный элемент может реализовать
практически все возможные логические функции. Но при возрастании числа
входов количество логических функций резко сокращается. Комбинации
элементов сети могут быть реализованы с помощью нелинейных
(сигмоидных) селекторов, которые предполагают наличие "насыщения" при
получении решения, к тому же они имеют дифференцируемые харак-
теристики входов/выходов, что облегчает процесс адаптации.
В задаче распознавания класса неисправностей обратная связь
нейронной сети реализуется в форме входного сигнала, поступающего от
"учителя", ретроспективно указывающего их правильную классификацию
[49]. В качестве входных данных для такой сети служат признаки
прохождения диагностических тестов.
Результат работы нейронной сети зависит от порога переключения
элементов этой сети.
45
Подозреваемые области неисправностей могут находиться в следующих
отношениях:
▪ пересечение областей недопустимо;
▪ допускается небольшое пересечение областей;
▪ полное включение одной области в другую, не допускающее их
частичного пересечения [50].
Оптимальным вариантом является первый случай, но это соответствует
диагностированию одиночных константных неисправностей. При
диагностировании более сложных ситуаций он, вероятнее всего, окажется
недостижимым. Третий вариант не позволяет идентифицировать часть
неисправностей. В данном случае оптимальным является второй случай,
допускающий частичное пересечение областей с минимизацией этого
пересечения.
Критерием принадлежности неисправности к данной области является
превышение порогового значения переключения элементов нейронной сети,
то есть если значение 1-го выхода после нормирования к сотому значению
равно 1, то это является признаком принадлежности неисправности к области
1.
С целью выбора оптимального значения порога было введено понятие
качества распознавания неисправности Q. Для этого была принята следующая
классификация событий [51].
Событие "1" - неисправность существует и определена в результате
работы нейронной сети, то есть распознавание неисправности прошло
успешно.
Событие "2" - неисправность существует, но не определена в результате
работы нейронной сети - "пропуск цели" [52].
Событие "3" - неисправность существует и определена в результате
работы нейронной сети + неисправность не существует, но определена в
результате работы нейронной сети, то есть, успешное распознавание +
46
"ложная тревога" [53]. Здесь "+" означает, что учены оба результата,
коррелирующие между собой.
Событие "4" - неисправность не существует, но определена в результате
работы нейронной сети + неисправность существует, но не определена в
результате работы нейронной сети: "ложная тревога" + "пропуск цели".
Событие "5" - неисправность не существует, но определена в результате
работы нейронной сети - "ложная тревога".
Целью данной работы не является получение значений переключения
порогового значения нейронной сети для конкретного объекта, поэтому
воспользуемся для примера результатами, полученными в [51]. Для каждого
значения порога было определено количество появлений из перечисленных
событий и построена динамическая картина (рис. 2.7).
а) Порог =0.3 б) Порог =0.4

“2” “2”

“1” “1”
4 3
7 5
2 “3” 1 “3”
“6” “6” 2
2
1 “4” “4”

1 д) Расположение областей ,
полученное непосредственно
в) Порог =0.5 г) Порог =0.6 из базы данных

“2” “2” “2”

“1” “1” “1”


4 2 4 3 2
“ 3
“3” 3 1 “3”

“6” 2 “6” 2 “6” 1
“4” “4” “4”

Рис 2.7. Корреляция вида ремонта при разных порогах переключения


элементов нейронной сети
Появление каждого из событий определяется критерием качества
распознавания неисправностей. Каждому событию поставлена в соответствие
некоторая величина (положительная или отрицательная), характеризующая
47
критерий качества распознавания и определенная ее как весовое значение
события.
С помощью экспертных оценок установлена величина весового
значения каждого события. Методика получения экспертных оценок
заключается в следующем [10, 54].
Экспертам предлагалось в некотором интервале (здесь [-5,+5])
назначить весовым значениям событий определенную балльную оценку.
В результате работы экспертов получены оценки, приведенные в таб-
лице 2.1.
Таблица 2.1
Событие
"1" "2" "3" "4" "5"

Весовые значения (эксперт 1) 5 -4 0 -5 -5

Весовые значения (эксперт 2) 5 -5 3 -5 -3


Весовые значения (эксперт 3) 5 -4 1 -4 -2

Весовые значения (эксперт 4) 5 0 4 -5 -3


Весовые значения (эксперт 5) 5 -4 3 -5 -4

Весовые значения (эксперт 6) 5 -3 2 -5 -3

В данном случае в качестве экспертов выступали главный конструктор


изделия, ведущий технолог изделия, мастер участка контроля,
диагностирования и регенерации, программист-разработчик программного
обеспечения диагностической системы, специалист по настройке и
регулировке изделия, начальник лаборатории специального оборудования
[51].
Среднее весовое значение каждого события показано в таблице 2.2.
Таблица 2.2

Событие “1” “2” “3” “4” “5”


Среднее весовое значение 5 -4 2 -5 -3
48
Степень согласия (отклонение от среднего) каждого эксперта приведена в
таблице 2.3.

Таблица 2.3
Событие
"1" "2" "3" "4" "5"
Степень согласия (эксперт 1) 0 0 - 0 -
Степень согласия (эксперт 2) 0 - -1 0 0
Степень согласия (эксперт 3) 0 0 1 -1 -
Степень согласия (эксперт 4) 0 - - 0 0
Степень согласия (эксперт 5) 0 0 -1 0 1
Степень согласия (эксперт 6) 0 -1 0 0 0

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


вычислен как:
5
Q = ∑ ( Neventi × Weventi ) ,
i =1

где Nevent - количество событий "i" , Wevent - весовое значение i-го события.
Зависимость критерия качества распознавания неисправностей Q в
приведенном примере [51] от величины порога переключения элементов
нейронной сети показана в таблице 2.4.
Таблица 2.4
Th 0.32 0.34 0.36 0.38 0.42 0.44 0.46 0.48 0.52 0.54 0.56 0.58
Q 20 27 22 22 22 13 36 21 22 10 13 14

Чувствительность качества распознавания к весовым значениям


событий проявляется в том, что при изменении весовых значений в
определенных пределах, значение величины Q изменяется, а положение
локальных экстремумов остается прежним.
Как видно из таблицы 2.4, максимальное значение качества
распознавания соответствует порогу переключения элементов сети, равному
0.46. Это значение выбрано пороговым значением переключения элементов
нейронной сети [51].
49
При оптимальном значении порога переключения элементов нейронной
сети корреляция кластеров неисправностей может исчезнуть, но чаще всего
она остается в минимизированном варианте. С помощью нейронных сетей
такая ситуация неразрешима, так как за ней обычно скрываются
конструктивные особенности объекта контроля [51].

Построение графа распределения событий при грубом определении


порогового значения элементов нейронной сети

Определение качества распознавания

Построение графика зависимости качества распознавания


неисправности от порога переключения элементов нейронной сети

Построение графа распределения событий при уточненном


определении порогового значения элементов нейронной сети

Построение уточненного графика зависимости качества


распознавания неисправности от порога переключения элементов
нейронной сети

Определение порога переключения элементов нейронной сети

Рис. 2.8. Последовательность действий при


Расчет весовых коэффициентов расчете
нейронной порога
сети переключения
при установленном
значении порога переключения
элементов нейронной сети [51]

2.5.2. Обучение нейронной сети


Определение весовых коэффициентов нейронной сети предполагает
установку их предварительных значений с последующим уточнением в
процессе обучения.
Точность установки предварительных значений определяет количество
итераций в процессе обучения для получения уточненных значений весовых
50
коэффициентов. Однако это условие выполняется только в случае полного
распознавания, когда процесс обучения имеет сходящийся характер.
Так как при распознавании видов неисправностей сложных объектов
контроля полное распознавание чаще всего недостижимо, то процесс
обучения нейронной сети не является полностью сходящимся, а приходит в
колебательное движение вокруг некоторых оптимальных значений весовых
коэффициентов.
Алгоритм обучения с учителем, использующий обратную связь,
является наиболее подходящим методом решения поставленной в
диссертации задачи, поэтому остановимся на его рассмотрении более
подробно.
Андерсон [46, 55] использовал алгоритм конвергенции персептрона для
обучения системы, реализующей сложную функцию. Он определил ошибку
на k -м шаге итерации ε k (t ) как
ε k (t ) = ∑ (d j (t ) − y j (t )) ,
j∈O

где O - набор выходных элементов, t - время, d j (t ) - ожидаемое

значение на выходе j и y j (t ) - его реальное значение.


Реализация этого алгоритма заключается в суммировании ошибок ε k (t )
по всем отрезкам времени в процедуре индивидуальной конвергенции
каждого элемента, затем усреднении этой суммы по всей серии временных
отрезков для получения представления меры
1 r τ
µ= ∑∑ ε k (t )
r k =1 t =1

Так как µ трактует все временные интервалы одинаково, Андерсон [46,


55] предлагает еще одно представление меры ν , которое учитывает влияние
окружающей среды по отношению к концу временного отрезка. Этот способ
предполагает работу при "замороженных" значениях весов на конце
временного интервала и затем представление системы со всеми возможными
51
входами и суммирования ошибок для всех случаев с целью получения общей
ошибки hk для отрезка k :
1
hk = ∑ ∑ d xj − yxj ,
k x∈X j∈J

где X - набор всех возможных входов, J - набор выходных элементов, drj -


ожидаемый выход j-го элемента для входа x и yrj - реально полученное
значение выхода. Усредняя по всем r временным отрезкам, получаем
1 r
ν= ∑ hk
r k =1

Здесь ν - мера качества решения, в то время как µ является мерой


скорости нахождения решения в системе.
Поскольку в задачу нейронной сети как компонента диагностической
системы входит поиск области, к которой принадлежит предполагаемая
неисправность, то считается задача статической, то есть не зависящей от
временных параметров. В процессе обучения нейронной сети используют
итерационные методы, такие как метод наименьших квадратов, метод
скорейшего спуска и т.д. Согласно [35] введем следующие обозначения.
Входным вектором считается вектор X k = [ x0 k , x1k , x2 k ,..., xnk ] . Ожидаемый
отклик d k представляет собой вход, используемый для обучения. В
предположении, что каждому входу соответствует некоторый весовой
коэффициент, то есть Wk = [ w0 k , w1k , w2 k ,..., wnk ]T , линейный выход определен как

сумма взвешенных входов: sk = X kTWk . Под линейной ошибкой понимается


разница между ожидаемым откликом и линейным выходом: в случае
нелинейной нейронной сети находят нелинейную (нормированную) ошибку
как разницу между ожидаемым откликом и линейным выходом.
Сигмоидная связь между входом и выходом обозначена через
yk = sgm( sK ) .

Существует несколько функций, носящих сигмоидный характер. К ним,


в частности, относятся:
52
y = 1 (1 + e − x ), y = arctg ( x), y = th( x)

Все они имеют прямые, параллельные оси абсцисс, к которым


асимптотически стремятся графики этих функций и точку, относительно
которой эти графики симметричны. То есть, в качестве сигмоидной функции
можно выбрать любую из трех, приведенных здесь. Однако отличие, с точки
зрения решаемой задачи, состоит в том, что график функции у = arctg(x) в
качестве асимптот имеет прямые y = π 2 и y = −π 2 , для графика функции
y = 1 (1 + e − X ) асимптотами служат прямые у = 0 и у = 1, а график функции

y = th( x) стремится к прямым у = -1 и у = 1. Не являясь принципиальным, для

решения задачи более удобно условие стремления графика к прямым у = -1 и


у = 1. Кроме того, на выбор функции гиперболического тангенса оказало
влияние подробное описание его в литературе в качестве сигмоидной
функции.
Мгновенное значение градиента выражается через дифференциал
квадрата линейной ошибки как показано в [35]. Для определения
оптимальных весовых коэффициентов необходимо минимизировать значение
средней квадратичной ошибки сигмоидной функции:
ε k* = d k − yk = d k − sgm( sK ) (1)
Так как в качестве функции, вносящей нелинейность, выбрана функция
гиперболический тангенс, то
∂ (th( sk )) 1
sgm '( sk ) = = 2 = sch 2 ( sk ) (2)
∂sk ch ( sk )

sch 2 ( sk ) = 1 − th 2 ( sk ) = 1 − yk2 (3)


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

2.5.3. Настройка экспертной системы


В построении базы знаний принимают участие два главных
действующих лица - это эксперт, знания которого используются при строении
экспертной системы и разработчик системы или инженер-когнитолог.
Как правило, заполнение базы знаний системы происходит путем
внесения в нее известных эксперту данных о закономерностях, основных
элементах, структуре взаимосвязей и других важных моментах изучаемой
предметной области.
На этапе анализа предметной области происходит "вхождение в задачу"
разработчика диагностической системы. При этом ему необходимо получить
от эксперта информацию об основных особенностях поставленной задачи, об
имеющихся закономерностях и функциональных связях и о требованиях
специалистов к разрабатываемой системе.
Информация, полученная от эксперта в этот период, как правило,
фрагментарная, бессистемная, в ней присутствуют элементы различных
уровней знаний. Впоследствии эта информация дополняется и
структурируется [56].
54
При работе с экспертом определяется круг признаков неисправностей
объекта контроля, в том числе и тех, которые не входят явным образом в
результаты прохождения тестов. На этом же этапе уточняются условия
тестирования, особенности диагностического оборудования, состав и
технологические параметры тестового программного обеспечения. Эта
информация непосредственно служит для формирования базы знаний,
состоящей из фактов и правил.
Эксперты, решающие задачи диагностики, сталкиваются с необ-
ходимостью определять классы принадлежности диагностируемых объектов.
При этом в один и тот же класс, как правило, попадает несколько объектов,
обладающих диагностируемым свойством, однако степень выраженности
этого свойства у них может быть различна. Предполагается, что по каждому
признаку эксперт может упорядочить его значения по их характерности для
данного класса, причем это упорядочение не зависит от значений других
признаков [57]. Вследствие этого вводится понятие коэффициента доверия
[56], который является степенью уверенности в принимаемом решении.
Существует множество способов оценки коэффициента доверия, но в
задачах диагностирования наиболее часто применяются два из них: метод,
основанный на теории вероятностей и математической статистике и метод
экспертных оценок. Выбор этих методов объясняется наличием, как правило,
большой выборки контролируемых изделий, а следовательно, хорошей
надежностью статистического метода. При наличии же опытного эксперта в
области технической диагностики, с большой достоверностью используется
метод экспертных оценок.
Результатом работы экспертной системы является непосредственно
создание гипотезы о возможном виде неисправности и соответствующем ей
коэффициенте доверия. Гипотеза генерируется в результате обработки базы
знаний логической машиной вывода.
Как правило, в процессе работы генерируется несколько гипотез с
разными коэффициентами доверия. Поэтому пользователю самому
55
приходится принимать окончательное решение. На рис.2.9 показан вид
сообщения экспертной системы.

Если
<Информация об объекте контроля >
то <Выводы о возможном виде неисправности , сделанные
на основании имеющейся информации и
коэффициенты доверия , присвоенные каждому
выводу>
Рис.2.9. Вид сообщения экспертной системы диагностирования
Основой для построения гипотез служат экспертные знания,
содержащиеся в базе знаний и конкретная информация о данном объекте
контроля, сообщаемая оператором в интерактивном режиме работы с
экспертной системой.
Главный источник знаний экспертной системы - это специалист-
эксперт. К сожалению, для приобретения знаний пока не существует никаких
автоматических методов.
Приобретением знаний называется процесс выявления знаний из
различных источников, преобразование их в нужную форму и занесение в
базу знаний.
При приобретении знаний важную роль играют поле знаний, основные
понятия предметной области, и свойства отношений, устанавливающих связи
между понятиями. Эта фаза построения экспертной системы носит название
концептуализации [28, 58].
Следующим этапом является формализация качественных знаний. Для
преобразования качественных знаний в формализованные необходимо
построить функции принадлежности, которые чаще всего строятся на
основании экспертных оценок [28].
Процесс внесения знаний в экспертную систему осуществляется двумя
способами. В первом из них участвует инженер-когнитолог, который вносит
новые знания в базу знаний. Во втором присутствие инженера знаний не
обязательно, так как в экспертной системе предусмотрен модуль накопления
56
знаний. Остановимся на втором способе, так как он более предпочтителен для
работы в условиях эксплуатации системы.
Модуль накопления знаний формирует вспомогательный файл, в
котором хранятся новые знания, требующие проверки, обработки и
систематизации. Основным критерием при включении новых знаний в базу
знаний является их непротиворечивость. Поэтому из вспомогательного файла
в базу знаний информацию может переносить эксперт, инженер знаний или
главный конструктор контролируемого объекта. Вспомогательный файл и
файл базы знаний организованы таким образом, что для работы с ними
достаточно минимальных знаний в области компьютерной техники.

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


технологическом процессе изделий в приборостроении
В процессе изготовления изделия электронной техники подвергаются
промежуточному контролю на протяжении всего технологического цикла.
При изготовлении микросхем на начальных этапах процесса
производства контролируется состояние специальных тестовых структур,
расположенных на определенных площадках кремниевой пластины, на
которой формируются кристаллы. Входными данными для трехуровневой
системы диагностирования (диагностического блока) являются результаты
вольт-амперных, вольт-фарадных и других физических характеристик,
измеренных на специальном тестово-диагностическом оборудовании.
Диагностическая информация здесь больше относится к качеству
поставляемых пластин и к качеству технологии изготовления (соблюдение
технологии, соответствие технологического оборудования указанным
требованиям и т.д.). На завершающем этапе изготовления микросхем
происходит контроль каждого сформированного кристалла. При этом подача
тестовых воздействий и считывание результатов происходит через
специальные контактные площадки, которые после запайки кристалла в
корпус становятся входами и выходами микросхемы. Поэтому входными
данными для диагностического блока служит информация о сигналах,
57
подаваемых на входы микросхемы и о результатах, считанных с ее выходов.
Диагностическая информация в этом случае может помочь выявить ошибки в
логике микросхемы, или в ее топологии, или нарушения технологии ее
изготовления [16].
Аналогичный контроль происходит после запайки кристалла в корпус.
При изготовлении микросхем контроль подразумевает их разбраковку
по принципу “годен”/”не годен”/”частично годен”, а диагностика
подразумевает не исправление микросхемы, что в принципе невозможно, а,
скорее, корректировку данного этапа технологического процесса во
избежание появления брака в дальнейшем.
Когда речь идет об изготовлении приборов электронной техники, то
есть конечного продукта, такого как калькулятор, телефон и т.д., диагностика
приобретает большую актуальность уже в отношении данного изделия, т.к.
эти предметы уже ремонтопригодны, и можно довести их до исправного
состояния путем замены комплектующих, более качественной пайкой и т.д. В
данном случае с успехом может применяться трехуровневая технология
диагностирования, описанная в начале текущей главы. Входными данными
для блока диагностирования здесь служит информация, полученная на
каждом из уровней диагностирования, а результатом – подозреваемая область
неисправностей с вероятностью неисправности каждого конкретного
элемента из этой области.
Следующий уровень диагностики относится к многопроцессорным
вычислительным системам. Особенностью таких систем является то, что
очень часто в них в некоторый данный момент времени более необходимо
“замаскировать” неисправность, а не идентифицировать и исправлять ее, что
достигается путем применения специальных алгоритмов, основанных на
использовании избыточных данных.
58
2.6. Формализация модели области знаний
В целях формализации представим модель области знаний
(диагностирование электронных приборов):
ПО={Т, Р, ДТ, ДН, ДЭ } – предметная область,
Т={Т1, Т2, …, ТN} – последовательность элементарных тестов,
Р={Р1, Р2, …, РN} – реакция на тесты,
Рi – реакция на элементарный тест,
ДТ – идентификация неисправности по совокупности тестов,
ДН – идентификация неисправности с использованием нейронной сети,
ДЭ - идентификация неисправности на основе экспертной системы,
Тi={tвхi , tвыхПi , tвыхРi , fi } – i-й элементарный тест,
tвхi – вектор входных сигналов,
tвыхПi – правильное значение выходного сигнала,
tвыхРi – реальное значение выходного сигнала,
fi = {0,1} – фактор правильности прохождения теста.
Структура АОС ориентирована на описанную в данной главе
трехуровневую систему диагностирования, использующуюся в
технологическом процессе и предполагающую наличие трех компонент:
базы данных, содержащей статистические данные о результатах проверок
предыдущих изделий, нейронной сети, предполагающей использование
вероятностных методов диагностирования, и экспертной системы для
диагностирования наиболее сложных случаев неисправности.

2.7. Выводы.
Описана трехуровневая система диагностических мероприятий, в
технологическом процессе, на применение которой ориентирована разработка
АОС. Приведены основные особенности каждого из уровней – базы данных,
нейронной сети и экспертной системы.
Выполнена формализация модели области знаний.
59

Глава 3. Интеллектуальный тренажер как основа


автоматизированной обучающей системы

3.1. Принципы построения интеллектуального тренажера для обучения


диагностированию электронных схем
В соответствии с общей теорией систем в иерархических
многоуровневых системах управления выделяются два встречных потока:
поток информации и поток управляющих директив. В зависимости от связей
и первичности потоков выделяются два метода управления, которые можно
назвать дедуктивный и индуктивный.
В общем научном смысле область знаний представляется
ограниченным естественным языком, образованным грамматикой G:
G → {T,M,П,Н}, где T - терминальный алфавит, М - полный словарь
терминов, П - правила подстановки, Н - начальный символ.
Язык может разбиваться на несколько тематических языковых групп
(подъязыков) в соответствии со структурой разделов дисциплин.
К терминальным символам (терминам) в частности относятся:
▪ элемент,
▪ связь,
▪ вход,
▪ выход,
▪ сигнал,
▪ состояние объекта,
▪ неисправность,
▪ поиск,
▪ обнаружение и т.п.
Полный язык теории диагностирования электронных схем
подразделяется на разделы:
1) таблицы истинности;
2) определение значения на выходе;
60
3) константные неисправности;
4) одиночные неисправности;
5) кратные неисправности;
6) обнаружение неисправностей;
7) парирование неисправностей.
Построение теоретического блока основывается на модели области
знаний и обеспечивает две технологии изучения дисциплины.
Рассматриваются следующие разделы предметной области, соответствующие
блокам АОС:
S1) основные принципы диагностирования;
S2) диагностирование комбинационных схем;
S3) диагностирование последовательностных схем (синхронных и
асинхронных);
S4) диагностирование ПЛМ;
S5) нейронные схемы;
S6) экспертные системы;
S7) диагностирование микропроцессорных устройств;
S8) дальнейшие вопросы для изучения (кратные, враждебные
неисправности, маскирование неисправностей).
ДТ = {S1, S2, S3, S4} - идентификация неисправности по совокупности
тестов,
ДН = {S5} - идентификация неисправности с использованием нейронной
сети,
ДЭ = {S6, S7, S8} - идентификация неисправности на основе экспертной
системы.

3.1.1. Дедуктивный метод изучения теории


В дедуктивном методе управления, который осуществляется по
принципу "от общего к частному", на верхнем уровне сначала формируется
общая цель, ради которой создана система и определяется средства
достижения поставленной цели. После этого, осуществляется распределение
61
функций между нижестоящими подсистемами и директивы спускаются на
следующий в иерархии уровень. На этом уровне формируются частные
подцели, также определяются средства и способы достижения подцелей и
управляющие директивы спускаются на следующий в иерархии уровень. При
выполнении директив на нижнем уровне собирается информация о том, как
идет процесс достижения цели на этом уровне. Эта информация обобщается
и передается на вышестоящий уровень, где она обрабатывается и передается
на более высокий иерархический уровень. Общий процесс обработки
информации, ее анализ и принятие решений осуществляется на верхнем
уровне. Далее происходит процесс либо изменения цели, либо изменения
средств достижения целей. Формируются новые директивы, которые
спускаются по иерархической схеме вниз.
На рисунке 3.1 представлена схема взаимодействия уровней при
дедуктивном способе принятия решений.
На рисунке 3.2 представлена схема информационных потоков при
дедуктивном способе управления.
Основным направлением являются директивы от подсистем верхнего
уровня к подсистемам нижнего уровня. Встречный поток — это
информационный поток, который является следствием применения данных
директив управления.
Формирование цели Формирование директивных указаний

Отчёт о выполнении Принятие решений по выполнению задачи

Директивы для управления

Рис. 3.1. Схема взаимодействия уровней


Анализ информации при дедуктивном способе

принятия решений
62
Подсистема
верхнего Формирование Уточнение
уровня цели системы целей

Определение
Изменение средств
средств
достижения целей
достижения цели

Д И
и н Формирование
Уточнение
р ф подцелей для
целей
е о подсистемы
к р
т м
и а
в ц
ы и Выдача директив в Анализ возможного
я нижестоящие подсистемы достижения цели

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

управления
Схемы процесса обучения с использованием АОС, соответствующие
последовательностям шагов при дедуктивном методе, представлены на
рис.3.3.
Последовательности шагов при дедуктивном методе:
M1 = {S8,S7,S6,S5,S4,S3,S2,S1}
M2 = {S8,S7,S6,S5,S2,S1}
M2 = {S7,S6,S5,S2,S1}
M1 = {S7,S6,S5,S4,S3,S2,S1,S8}
M1 = {S1,S7,S6,S5,S4,S3,S2,S8}

6
вход

вход
выход
выход 1 2 3 5 7 8
вход

вход выход

4 выход

Рис. 3.3. Последовательность прохождения блоков АОС при


дедуктивном методе
63
3.1.2. Индуктивный метод изучения теории
При индуктивном методе управления процесс идет в обратном
направлении, т.е. цели, ради которых строится подсистема, и которые
обеспечиваются её функционированием, определяются по мере поступления,
обработки, накопления информации о функционировании подсистем
нижестоящих уровней. В этом процессе так же наблюдается определенная
иерархия. Сначала идет сбор и обработка информации на нижних уровнях,
потом она собирается на вышестоящем уровне, где систематизируется,
обрабатывается и передается на верхний уровень. На верхнем уровне
производится анализ этой информации. По результату анализа
вырабатываются корректирующие директивы, которые спускаются
последовательно на нижестоящие уровни.
Обе эти схемы могут в какой-то мере объединяться, но всем им
присущи некоторые недостатки в определенных условиях. Одним из таких
условий является фактор времени выполнения работ по достижению целей.
Передача директив от одного уровня к другому, сбор и обработка
информации требуют часто в конкретных системах достаточно больших
непроизводительных затрат времени. В результате нарушается один из
принципов организации иерархических систем, гласящий, что необходимо
принимать решения сразу же при возникновении условий для принятия этих
решений.
На рис. 3.4 представлена схема взаимодействия уровней при
индуктивном способе принятия решений.
Схема информационных потоков при индуктивном способе управления
представлена на рис. 3.5.
64
Анализ информации Принятие решений

Управляющие директивы
Обобщение информации

Директивы для управления

Информация

Рис. 3.4. Схема взаимодействия уровней при индуктивном


Сбор информацииспособе

принятия решений
Подсистема
Сбор информации нижнего
о состоянии уровня
подсистем

Передача
информации в И
вышестоящие н Р
подсистемы ф е
о ш
Выдача директив р е
на подсистемы м н
а и
Составление ц я
директив в и
подсистемах я

Анализ информации . Принятие Подсистема


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

управления
Схемы процесса обучения с использованием АОС, соответствующие
последовательностям шагов при дедуктивном методе, представлены на
рис.3.6.
Последовательности шагов при индуктивном методе:
M1 = {S1,S2,S3,S4,S5,S6,S7,S8}
M2 = {S1,S2,S3,S4,S5,S6,S7}
M3 = {S1, S5,S6,S7,S8}
M4 = {S1,S2,S3, S7, S6, S5}
65

6
выход выход

вход
вход 1 2 3 5 7 8
вход
вход

выход
4
Рис. 3.6. Последовательность прохождения блоков АОС при
индуктивном методе

3.2. Структура интеллектуального тренажёра как основы


автоматизированной обучающей системы
Интеллектуальный тренажер состоит из нескольких функциональных
блоков, взаимодействующих между собой (рис.3.7) [9, 62]. Блок, содержащий
теоретические сведения, подключается в начале работы тренажера с целью
ознакомления с теоретической базой предметной области. Для
автоматической генерации тренировочных и тестовых заданий
интеллектуальный тренажер содержит генератор заданий.
Поскольку задания генерируются в автоматическом режиме и в
большом количестве [63, 64, 65], проверка таких заданий может оказаться
весьма трудоемким процессом. Поэтому интеллектуальный тренажер
предусматривает наличие "автоматического решателя", позволяющего в
автоматическом же режиме проверять правильность выполнения задания
обучаемым, в том числе контролировать процесс выполнения задания по
шагам (по промежуточным контрольным точкам).
Подготовка сотрудников может отличаться достаточно сильно.
Использование интеллектуального тренажера призвано приблизить процесс
обучения к индивидуальному подходу к каждому сотруднику, поэтому
интеллектуальный тренажер содержит в своем составе блок настройки на
уровень компетентности обучаемого.
66
Вспомогательным блоком интеллектуального тренажера является блок
графического отображения электрических схем как часть интерфейса
пользователя.
Блок настройки на
Блок, содержаший
компетентностные
теоретические
особенности
сведения
обучаемого

Блок
Блок генерации Графический
взаимодействия
заданий интерфейс
с обучаемым

Автоматический
решатель

Рис.3.7. Структурная схема интеллектуального тренажера


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

Начало

Изучение теории

ni -число входов
j
Задание числа входов j-го элемента
в i-м слое

Генерация схемы

Формирование Исправная или с


условий анализа неисправностями
схемы

Вычисление
результата на
выходе схемы
(студентом и
решателем )

Формирование
Нет Результаты Да
данных для более
совпали
простой схемы
Внесение в схему
неисправностей

Вычисление результата на выходе


схемы (студентом и решателем )

Нет Попытка Да
3-я
Нет Результаты Да
совпали

Построение теста

Нет Результаты Да
Сообщение оценки совпали
Рис. 3.8. Обобщенная схема алгоритма работы интеллектуального
тренажера
Конец

3.2.1. Блок, содержащий теоретические сведения


Блок, содержащий теоретические сведения, активизируется в самом
начале процесса обучения. Он представляет собой теоретические основы
предметной области, в данном случае - описание методов и средств
технической диагностики.
Исключить возникновение дефектов в любом техническом объекте в
принципе невозможно. Поэтому вопросы технической диагностики стоят
68
весьма остро в современном мире, уже почти полностью зависящем от
вероятности возникновения техногенных катастроф.
Диагностирование представляет собой процесс определения
технического состояния объекта с определенной точностью. Различают
следующие задачи диагностирования:
▪ проверка исправности,
▪ проверка работоспособности,
▪ проверка правильности функционирования,
▪ поиск дефектов, нарушающих исправность, работоспособность,
правильность функционирования.
С точки зрения разработчика диагностических систем система
тестового диагностирования является управляющей системой, а система
функционального диагностирования - системой контроля.
С точки зрения пользователя любая диагностическая система
представляет собой систему контроля технического состояния объекта.
Техническая диагностика требует формализации подхода к процессу
обнаружения неисправностей.
В качестве предметной области для которой строится
интеллектуальный тренажер, а следовательно, и модель области знаний
рассматриваются методы диагностики электронных схем.
Модель области знаний, необходимая для функционирования контента
интеллектуального тренажера, обеспечивает:
▪ учет степени компетентности по обеспечивающим дисциплинам;
▪ автоматизация генерации заданий;
▪ автоматический «решатель» задач;
▪ использование трех технологий обучения;
▪ развитие и корректировку структуры и контента интеллектуального
тренажера в процессе эксплуатации.
Интеллектуальный тренажер реализует указанные концепции.
69
3.2.2. Интерфейс пользователя
Интерфейс пользователя обеспечивает процесс взаимодействия
интеллектуального тренажера и обучаемого в интерактивном режиме.
Разрабатываемый интеллектуальный тренажер имеет систему меню,
позволяющую обучаемому в определенных рамках регулировать процесс
обучения.
Графический интерфейс дает возможность вывести на экран
диагностируемый объект в виде электронной схемы, графовой модели или
структурной схемы, что повышает наглядность задачи и позволяет избежать
длинного текстового описания, которое не всегда позволяет адекватно судить
об особенностях объекта.
Интерфейс пользователя должен обладать свойствами эргономичности,
дружественности, быть понятным на интуитивном уровне.
Для нормального общения пользователя с интеллектуальным
тренажером, необходимо, чтобы интерфейс пользователя удовлетворял
следующим условиям:
▪ сообщения должны быть краткими, информативными и
исключающими неоднозначное толкование;
▪ язык сообщений должен соответствовать уровню подготовки
пользователя;
▪ словарь интерфейса пользователя должен быть контекстно связан с
проблемной областью;
▪ на одном экране желательно размещать всю необходимую
информацию по данному вопросу, избегая при этом ее
избыточности;
▪ следует избегать большого количества мигающих элементов на
экране, а при использовании цветных мониторов - слишком ярких
цветов;
▪ по возможности следует представлять информацию в графическом
виде.
70
3.2.3. Генератор заданий
Автоматический генератор заданий обеспечивает генерацию заданий
заданного класса. Задания генерируются случайным образом, т.е.
автоматический генератор заданий повышает степень автоматизации
интеллектуального тренажера.
Генератор заданий работает по квазислучайному принципу. Несмотря
на то, что схемы генерируются случайным образом, они состоят из
ограниченного количества заранее определенных вентилей. Кроме того,
генерируемая схема должна быть ограниченного размера, чтобы обучаемый
мог решить предлагаемую задачу за разумный промежуток времени.
Недостаток автоматической генерации, заключающийся в сложности
проверки таких заданий, устраняется наличием автоматического решателя.

3.2.4. Построение автоматического "решателя"


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

3.2.5. Блок настройки на компетентностные особенности обучаемого


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

3.3. Автоматическая генерация тестовых заданий


АОС может использоваться как в рамках технологического процесса,
так и самостоятельно при подготовке специалистов соответствующих
специальностей в вузах. В этом случае автоматическая генерация
контрольных заданий в интеллектуальном тренажере приобретает еще
большую актуальность по следующим причинам.
1) Если интеллектуальный тренажер используется как
вспомогательное средство, призванное улучшить качество обучения, в рамках
очного учебного процесса, автоматическая генерация контрольных заданий
гарантирует их достаточно большое количество, чтобы избежать
повторяемости и освобождает преподавателя от трудоемкой работы по
формированию и проверке заданий.
2) Если интеллектуальный тренажер используется в рамках
технологического процесса, количество заданий может быть несколько
меньше, но автоматическая генерация заданий повышает степень
автоматизации и позволяет выдерживать определенную методологию,
связанную с индивидуализацией процесса подготовки специалистов.
К достоинствам автоматической генерации заданий можно отнести
следующие.
72
1. Типовые задания с предопределенными ответами рано или
поздно становятся известны обучаемым, поэтому их приходится обновлять.
2. Индивидуальные задания, генерируемые в автоматическом
режиме, предполагают индивидуальный подход при их решении, то есть
невозможность воспользоваться стандартным или чужим решением.
Недостатком автоматической генерации заданий является то, что
преподаватель или специалист по подготовке кадров должен сам с точностью
до значений проверять сгенерированные задания, что требует от него
дополнительных усилий и времени.
Разрабатываемый интеллектуальный тренажер предназначен для
обучения приемам и методам технической диагностики. Контрольные задания
для него представляют собой диагностируемый объект среднего уровня
сложности, на который подаются входные воздействия. Требуется определить
поведение объекта. После этого в предлагаемый объект вводится
неисправность и обучаемый должен определить поведение объекта в
контрольных точках и выделить неисправный элемент или подозреваемую
область неисправности. Если обучаемый справился с этой задачей,
генерируется более сложный объект, если нет - менее сложный. По
результатам выполнения контрольной задачи делается вывод о степени
готовности специалиста к выполнению данной работы.
В качестве первого этапа реализации выбрано рассмотрение общих
вопросов технической диагностики, второго - построение диагностических
тестов для комбинационных схем (d-алгоритм Рота) [16, 17] (рис.3.9).
В том случае, когда обучаемый оказывается в состоянии определить
неисправный элемент в схеме достаточного уровня сложности, перед ним
ставится задача сгенерировать минимальную тестовую последовательность
для определения неисправности предлагаемой схемы.
73
1
v2 &
x2
&1

1
v3
x3

& 1
&2 y
x1

&
&3

Рис. 3.9. Пример контрольного задания

3.4. Способы генерации тестовых заданий


Для автоматической генерации схемы возможны следующие подходы
[63, 64, 66]:
▪ генерация древовидной структуры,
▪ послойная генерация схемы.

3.4.1. Древовидная структура схемы


Этот метод может быть реализован средствами процедурного
программирования и средствами объектно-ориентированного
программирования [67, 68].
Процедурный подход предполагает построение динамического дерева,
узел которого, описывающий вентиль, состоит из следующих полей:
struct node
{
int sign; //признак того, сколько входов имеет вентиль
int *fn_done(int I1, int I2, int I3); // указатель на функцию, реализующую
// работу вентиля
void *fn_visual(int I1, int I2, int I3); // указатель на функцию визуализации
node *left; //указатель на левую ветвь дерева
node *right; //указатель на правую ветвь дерева
node *middle; //указатель на среднюю ветвь дерева
74
node *reverse; //указатель на предыдущий узел
};
Указатель на функцию, реализующую работу вентиля нужен потому,
что при автоматической генерации схемы невозможно заранее предусмотреть,
какая именно функция (какой именно вентиль) окажется в данном узле.
Существование указателя на предыдущий узел обусловлено тем, что
древовидная структура в её стандартом представлении - это направленная
динамическая структура, направление которой - от корневого узла. Но
рассмотрение схемы имеет противоположное направление - от входов к
выходу. Указатель reverse делает дерево двунаправленным, что дает
возможность обрабатывать его точно так же, как обрабатывается
прохождение сигналов по схеме (рис.3.10).
Указатель на функцию визуализации используется, т.к. не известно,
какой вентиль будет изображен в данном месте.

reverse

info

left middle right

reverse reverse

info info

left middle right left middle right

reverse reverse reverse reverse

info info info info

left middle right left middle right left middle right left middle right

Рис.3.10. Дерево, моделирующее схему


Объектно-ориентированный подход. При объектно-ориентированном
подходе создается базовый класс, содержащий число виртуальные функции,
который описывает узел дерева.
75
сlass node
{ protected:
int I1, I2, I3;
public:
node () {I1=I2=I3=0;}
node (int i1,int i2, int i3)
{I1=i1; I2=i2; I3=i3;}
virtual int fn_done()=0;
virtual void fn_visual()=0;
node(){}
};
node *Ptr;
Использование чисто виртуальных функций позволяет создать
древовидную иерархию классов, в каждом производном классе чисто
виртуальные функции переопределяются таким образом, чтобы реализовать
один из пяти возможных вентилей, перечисленных выше.
В процессе работы программы на каждом шаге возможна случайная
генерация одного вентиля, а использование технологии RTTI (Runtime Type
Information) позволяет в процессе работы программы определить, какой
именно вентиль используется.
В остальном объектно-ориентированный подход для данной задачи
аналогичен процедурному подходу.

3.4.2. Послойная структура схем.


Послойная генерация схемы – это другой подход, имеющий
алгоритмическую основу, отличающуюся от древовидной структуры (рис.
3.11).
Задается количество входов в 1 слое схемы (случайным образом, но не
очень большое значение). Далее случайным образом генерируются вентили из
заранее определенного набора. Входы каждого из вентилей занимают входы 1
слоя схемы. 1 слой вентилей генерируется до тех пор, пока не останется
76
входов меньше, чем в очередном сгенерированном вентиле. После этого
можно поступить один из двух способов:
1) генерировать вентили до тех пор, пока количество входов
вентиля не станет меньше или равно количеству свободных входов слоя. Если
меньше, действия повторяются, если равно, первый слой считается
сгенерированным и переходим к генерации второго слоя, входами для
которого служат выходы 1 слоя;
2) второй способ состоит в том, что оставшиеся свободными
выходы 1 слоя переходят в качестве входов во 2 слой. Эти действия
выполняются до тех пор, пока не будет сформирован последний слой,
содержащий один вентиль с одним выходом.
Если схема последовательностная, то выходы имеющихся в ней
триггеров соединяются с их соответствующими входами.
При послойной генерации порядок обхода схемы совпадает с порядком
её генерации, т.е. её анализ происходит последовательно от входов к выходу.
Поэтому указатель, реализующий обратное прохождение схемы, не нужен.
При послойной генерации схемы также возможна реализация
средствами процедурного и объектно-ориентированного программирования.
Узел, реализующий вентиль при послойной генерации отличается от
узла, реализующего вентиль при древовидной генерации схемы лишь тем, что
в нем отсутствует указатель reverse.
Поскольку предполагается, что АОС должна быть в состоянии не
только проверить правильность полученного результата на выходе, но и
контролировать ход решения задачи, необходим встроенный "решатель",
способный проходить схему как целиком, так и в пошаговом режиме. Этот
решатель может быть отдельной функцией, или встраиваться в функцию
fn_done(), реализующую работу вентиля.
Основной задачей, связанной с предметной областью, является
обучение сотрудников строить тестовые последовательности для схем. Для
этого нужно иметь возможность в сгенерированную схему внести
77
неисправность в процессе работы программы, также случайным образом. Эти
действия будет производить функция-эмулятор ошибки, которая в
зависимости от выбранного случайным образом параметра type_error (0/1)
будет создавать одну из ошибок "константный 0" или "константная 1" на
выбранном вентиле.
После того, как эмулирована ошибка, обучаемому предлагается снова
определить значение на выходе схемы (в том числе и в пошаговом режиме).
Если он справился с этой задачей, можно переходить к формированию
им тестовой последовательности [62].

Начало

Число входов
Ввод параметров для генерации
схемы n

i=1

nij -число входовj-го


Генерация элемента вi-м слое
очередного
элементаi-го слоя ni ост– оставшиеся
входы вi-ом слое

Н ет i i Да
n ост>= n j

Элемент считается
сгенерированным

метод генерации

Остались
Да
свободные входы
слоя

1 2 3 Н ет

Добавляются Добавляются
Элемент
входы из входы из своего Да Число выходов
игнорируется
предыдущего слоя слоя слоя=1

Нет
Элемент считается
сгенерированным i=i+1

Конец

Рис. 3.11. Схема алгоритма генерации электронных схем


78
3.5. Настройка автоматизированной обучающей системы на
компетентностные особенности обучаемого
Разрабатываемый блок подготовки специалистов реализует алгоритм
настройки на компетентностные возможности обучаемого. В рамках этого
алгоритма предусмотрено наличие двух подходов к изложению
теоретической части – дедуктивного и индуктивного [61, 62].
Как правило, инженерно-технические кадры предприятий электронной
техники обладают достаточно высоким образовательным уровнем и способны
быстро усваивать предлагаемый материал, поэтому слишком просто
изложенный материал с избыточным количеством примеров и пояснений
оказывается для них неинтересным и в результате освоенным хуже, чем тот
же материал, представление которого ориентировано на более высокий
уровень слушателей. Поэтому первоначальное представление теоретического
материала происходит в соответствии с дедуктивным подходом. Однако часть
сотрудников имеет менее высокий уровень предварительной подготовки, по
сравнению с коллегами, кроме того, встречаются люди с медленным, но более
основательным восприятием новой информации. Для них больше подходит
индуктивный способ изложения.
Режим тренинга предполагает наличие нескольких задач разной
сложности и возможность досрочного выхода из этого режима, если
обучаемый считает, что его уровень подготовки позволяет ему перейти к
выполнению контрольного задания. По желанию обучаемого, он может
перейти к выполнению контрольного задания, минуя режим тренинга.
В случае, когда обучаемый после изучения теоретической части не в
состоянии решить даже самую простую задачу в режиме тренинга или
получает неудовлетворительную оценку при выполнении контрольного
задания, ему предлагается для повторного изучения теоретический блок, но
уже в изложении по индуктивной технологии.
Таким образом, происходит настройка блока подготовки специалистов
на индивидуальные особенности обучаемого и его уровень подготовки.
79
3.6. Разработка способа оценки уровня подготовки обучаемого и
настройка автоматизированной обучающей системы на этот уровень
Будем рассматривать привычный критерий постановки оценок по
пятибалльной системе. Каждая оценка может служить степенью соответствия
специалиста определенному уровню квалификации, и в соответствии с этим
уровнем может быть принято решение, например, о возможности поручить
данному сотруднику определенную работу [61].
Выполнение контрольного задания начинается с задачи средней
сложности с целью минимизации количества решаемых задач. Если
обучаемый успешно выполнил эту задачу, он получает оценку "4" по
пятибалльной шкале и может претендовать на получение оценки "5". Для
этого ему предлагается более сложная задача, правильное выполнение
которой гарантирует ему получение максимального балла. Если более
сложная задача не была решена, остается оценка "4".
В случае, когда обучаемый не смог выполнить предложенную задачу,
интеллектуальный тренажер предоставляет ему возможность получить
положительную оценку "3" путем выполнения менее сложной задачи. Если и
эта задача не была решена, ему предлагается вернуться к изучению
теоретической части. Схема алгоритма взаимодействия АОС с обучаемым
показана на рис. 3.12.
При выполнении контрольного задания "по шагам", т.е. с
промежуточным контролем в заранее указанных точках происходит
сравнение правильного результата, вычисленного встроенным "решателем", с
ответом обучаемого и протоколирование допущенных ошибок.
Протоколирование ошибок осуществляется с целью их последующего
анализа в случае необходимости разбора ошибок.
80

Начало
5
1

Усложнение схемы
Изучение теории

2 4

Упрощение схемы Режим Упрощение схемы

Выход 3
Тренинг Контроль
6

Генерация схемы Генерация схемы


Оценка

Нет Конец Нет


Режим пошаговый Режим пошаговый

Да Да

Вычисление Вычисление
результата результата
Вычисление
i = i+1 результата
Результат в i-ой КТ
Результат в i-ой КТ Нет правильный Нет
правильный
Протоколиров
Коррекция ошибки Да ание ошибки

Вычисление Да
результата
i = i+1
КТ последняя
Нет
КТ последняя
Да

Да
Да Результат на выходе Нет
правильный
Нет Результат на выходе
правильный Схема Схема

Попытка Нет max mid min max mid min


последняя Да
Оценка=5 5 Оценка=3 Оценка=4 4 1
Да
1 2 3 6

Рис. 3.12. Схема алгоритма взаимодействия АОС с обучаемым


81
3. 7. Интеллектуальные средства разрабатываемого тренажера
Интеллектуальные средства разрабатываемого тренажера могут быть
представлены следующим образом [25].
Среди непосредственно разработанных методов и программных средств
можно отметить следующие интеллектуальные возможности, составляющие
научную новизну предлагаемой к защите диссертационной работы.
Встроенный автоматический генератор заданий формирует большое
количество однотипных, неповторяющихся заданий. Одной из
функциональных особенностей разработанного генератора заданий является
проверка их корректности в плане непротиворечивости и возможности
выполнения.
Автоматический "решатель" выполняет сгенерированные в
автоматическом режиме задачи, учитывая особенности каждой из них, и
позволяет не только проверять правильность полученного обучаемым
конечного результата, но и отслеживать процесс выполнения предложенного
ему задания. Таким образом, разработанный тренажер принимает на себя
часть функций преподавателя по обнаружению ошибок обучаемого в
процессе выполнения задания, т.к. имеется возможность пошагового режима
проверки тестовой работы.

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

Глава 4. Реализация интеллектуального тренажера контроля


электронных схем в технологическом процессе

4.1. Выбор среды и языка программирования


При написании программного кода всегда возникает вопрос выбора
среды и языка программирования.
Вместе с выпуском новой платформы .NET компания Microsoft
представила новый язык, подходящий для новой платформы - C#. C# имеет
стиль синтаксиса языка С (для управляющих конструкций, блоков кода,
описания сигнатуры методов и др.), много общего с Java (отсутствие
множественного наследования и шаблонов, наличие сборщика мусора),
Delphi и C++ Builder (ориентированность на создание компонент), в то же
время он обладает своими особенностями.
Одним из важнейших факторов, позволяющим избежать ошибок
является безопасность работы с типами.
C# объектно-ориентированный язык, как и вся платформа .NET. Более
того, это язык, ориентированный на написание компонент. C# создан для
программирования в управляемой среде с присутствующим сборщиком
мусора, но позволяет писать и неуправляемый (unmanaged) код.
Целостность концепции видна, например, в реализации
упаковки/распаковки. Это позволяет рассматривать все типы (даже
примитивные) как объекты, что разрешает многие проблемы дизайна
приложений. При создании языка рассматривалась не только простота
написания приложений, но и их поддержки, в связи с чем в язык включили
поддержку XML комментариев и контроля версий.
Помимо сборщика мусора и безопасности работы с типами во
избежание ошибок в языке также применяется автоматическая инициализация
переменных. Все типы, которые размещаются в стеке (value types, к которым
относятся примитивные типы, структуры и прочие наследники класса
ValueType) инициализируются нулями. Объекты остальных типов
83
размещаются в куче, доступ к ним осуществляется по объектной ссылке, и
ссылки эти инициализируются в значение null (которая говорит, что данная
ссылка не имеет ассоциированного объекта в куче).
В C# представлена концепция пространств имен, аналогичная пакетам в
Java. Это позволяет иерархически структурировать систему типов, делая код
намного более понятным и позволяя избежать проблем с именованием.
Существует возможность рассматривать пространства имен как директории, а
языковые типы как файлы в этих директориях.
Microsoft Visual Basic – это средство разработки программного
обеспечения, включающее в себя язык программирования и среду разработки.
Visual Basic позволяет работать как с объектно-ориентированным, так и с
компонентно-ориентированным стилем программирования. Среда разработки
Visual Basic включает инструменты для визуального конструирования
пользовательского интерфейса.
Visual Basic считается средством быстрой разработки программ,
приложений баз данных и другого программного, работающего под
управлением операционных систем семейства Microsoft Windows.
Visual Basic .NET при почти полной внешней идентичности с Visual
Basic по сути является совершенно другим языком, поскольку платформа
.NET обладает новыми уникальными возможностями, и требует
соответствующего подхода от языков и методов программирования. Поэтому
на сегодняшний день более актуально говорить не о классическом Visual
Basic, а о его диалекте Visual Basic for Applications (VBA) и о языке для
платформы .NET - Visual Basic .NET.
Visual Basic for Applications покрывает и расширяет функциональные
возможности использовавшихся ранее специализированных макро-языков,
таких как WordBasic.
Visual Basic for Applications является интерпретируемым языком. Как и
следует из его названия, он близок к Visual Basic, но может выполняться лишь
в рамках тех приложений, в которые он встроен. Кроме того, он может
84
использоваться для управления одним приложением из другого, с помощью
технологии OLE Automation [69].
Поскольку платформа .NET позволяет в рамках одного программного
проекта объединять модули, написанные на разных языках
программирования, ориентированных на работу в рамках платформы .NET,
экранные формы разрабатывались с использованием языка Visual Basic for
Applications вследствие простоты его использования, а содержательная часть
АОС – на C# благодаря его мощным возможностям объектно-
ориентированного языка программирования.
Сегодня платформа .NET — лучшее решение для разработки
корпоративных приложений и Интернет-систем. Платформа предоставляет
возможность писать программы любого уровня сложности и назначения с
использованием единой среды разработки. Платформа .NET вообще и
ASP.NET в частности, являются сейчас одними из наиболее популярных
технологий разработки приложений.

4.2. Особенности реализации автоматического генератора и


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

АОС
Подсистема
Подсистема
“диагностика
“Основные определения и
комбинационных схем , d-
понятия технической
алгоритм Рота генерация
диагностики ”
тестов”

Теоретический Контрольный Теоретический Тренажер Контрольный


блок блок блок блок

Подсистема Подсистема
“Диагностика “Диагностика
последовательностных последовательностных
асинхронных схем ” синхронных схем ”

Теоретический Тренажер Контрольный Теоретический Тренажер Контрольный


блок блок блок блок

Подсистема
“Диагностика
Подсистема микропроцессорных
“Диагностика ПЛМ ” устройств. Нейронные
сети. Экспертные системы ”
Рис. 4.1. Общая структура АОС
Теоретический Контрольный Теоретический Контрольный
блок блок блок блок

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


входах (или выходах) и цепочка булевых выражений снова вычисляется
автоматическим "решателем".
В случае необходимости анализа контрольных точек значения в этих
точках выдаются на экран или сравниваются со значениями, вычисленными и
введенными в интерактивном режиме обучаемым [61, 62].
Пример 4.1 (рис. 4.2) демонстрирует работу генерации схемы,
формирования цепочки булевых выражений и внесения неисправности в
сгенерированную схему с последующим повторным вычислением значения
на ее выходе.
86
Пример 4.1.
1 &

6
2 1
G6 ≡1
9
7 G9
1 1
11
3 G7 G11
&

10
4 1 8 G10

5 G8

G 6 = G1 • G 2
G7 = G2 + G3
G8 = G 4 + G 5
G9 = G6 + G7
G10 = G 7 • G8
G11 = G 9 + G10
G11 = ((G1 • G 2) + (G 2 + G 3)) + ((G 4 • G 5) + (G 2 + G 3))

Рис. 4.2. Пример сгенерированной схемы и соответствующей ей


цепочки булевых выражений
При подаваемом на входы наборе (0,0,0,0,0) при отсутствии
неисправности выход G11 равен 0, при неисправности "константная 1" на
вентиле G6 выход G11 равен 1.
В данной реализации обучаемый "не видит" сформированную цепочку
булевых выражений. Но задание сформировать ее для сгенерированной
схемы может рассматриваться как одно из направлений дальнейшего
развития разработанной АОС.
Первый этап реализации АОС (подсистема "Основные определения и
понятия технической диагностики") связан с обучением теоретическим
основам технической диагностики.
Наиболее простым случаем является поиск одиночных константных
неисправностей в электронных схемах. Поэтому вторым этапом реализации
АОС (подсистема "Диагностика комбинационных схем, d-алгоритм Рота
генерация тестов") является методика обучения основам технической
87
диагностики и построению тестовых последовательностей для одиночных
константных неисправностей комбинационных схем в соответствии с d-
алгоритмом Рота [16, 17].
Следующим по сложности является диагностирование
последовательностных (синхронных и асинхронных) схем, поэтому в
процессе работы определены подходы к реализации соответствующих
подсистем.

4.3. Представление реализации предметной области.


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

4.3.1. Представление подсистемы "Диагностика комбинационных схем"


D-алгоритм является развитием концепции активизации путей
проверяемой схемы. Данный алгоритм основан на возможности
одновременной активизации всевозможных путей от места возникновения
неисправности ко всем выходам схемы. Формальное описание алгоритма
базируется на D-исчислении - модифицированном кубическом исчислении
булевых функций.
Пример 4.2. иллюстрирует последовательность действий при изучении
d-алгоритма.
Пример 4.2.
Рассмотрим основные положения d-алгоритма [17] на примере схемы,
показанной на рис. 4.3.
88

1
G6
2

G9
d d
G7 X G11
3 ≡0

G10
4
G8
5
Рис. 4.3. Схема для анализа по d–алгоритму Рота
Вырожденное покрытие представляет собой несколько
видоизмененную таблицу истинности (рис. 4.4), записанную в более
компактной форме (рис. 4.5). Каждая строка вырожденного покрытия
определяет причинную связь между значениями входных и выходных
сигналов рассматриваемого вентиля.
1 2 3 4 5 6 7 8 9 1 11
0
0 0 0
0 1 0
G6
1 0 0
1 1 1
0 0 0
0 1 1
G7
1 0 1
1 1 1
0 0 0
0 1 1
G8
1 0 1
1 1 1
0 0 0
0 1 1
G9
1 0 1
1 1 1
0 0 0
G1 0 1 0
0 1 0 0
1 1 1
0 0 0
G1 0 1 0
1 1 0 0
1 1 1
Рис. 4.4. Таблица истинности схемы
89

1 2 3 4 5 6 7 8 9 1 11
0
G6 1 1 1
x 0 0
0 x 0
G7 1 x 1
x 1 1
0 0 0
G8 1 x 1
x 1 1
0 0 0
G9 1 x 1
x 1 1
0 0 0
G1 1 1 1
0 x 0 0
0 x 0
G1 1 1 1
1 x 0 0
0 x 0

Рис. 4.5. Вырожденное покрытие схемы


После того, как построено вырожденное покрытие, приступают к
построению d-кубов. Идея построения d-куба состоит в том, чтобы
сделать один из входов ответственным за значение выходного сигнала
вентиля.
Вырожденное покрытие и d-куб схемы (рис. 4.6) представляют
собой в совокупности, соответственно, вырожденные покрытия и d-кубы
вентилей, из которых состоит схема.
Далее будем строить тестовую последовательность для обнаружения
неисправности "константный 0" на выходе вентиля G7.
Построение тестовой последовательности для обнаружения
неисправности "константный 0" на выходе вентиля G7.
Условием проявления заданной неисправности является подача любого
из наборов (1,1), (1,0), (0,1) на выходы 2 и 3. На выходе вентиля G7 ожидаем
90
появление значения d. Согласно d-алгоритму d=1 соответствует отсутствию
неисправности, d=0 наличию неисправности.

1 2 3 4 5 6 7 8 9 1 11
0
G6 d 1 d
1 d d
G7 d 0 d
0 d d
G8 d 0 d
0 d d
G9 d 0 d
0 d d
G1 d 1 d
0 1 d d
G1 d 1 d
1 1 d d

Рис. 4.6. d-куб схемы


Далее определяем чувствительные пути для продвижения d от выхода
вентиля G7 к выходу схемы (выходу вентиля G11).
Для получения значения d на выходе вентиля G9 необходимо на вход
G6, являющийся выходам вентиля G6 вентиля G9 подать значение 0, тогда
при значении d на входе 7 вентиля G9 на его выходе будет значение d.
Для получения значение d на выходе G10 необходимо подать значение
1 на вход 8 вентиля G10, являющийся выходам вентиля G8, тогда при
значении d на выходе вентиля G7 (вход 7 вентиля G10) на выходе G10
появляется значение d.
Подача значений d на входы 9 и 10 вентиля 11 дает значение d на его
выходе.
Т.е. мы продвинули значение d от точки предлагаемой неисправности
до выхода схемы.
Обратный ход алгоритма призван обеспечить условия для продвижения
d от точки предлагаемой неисправности к выходу и создать тестовый набор
входных сигналов для обнаружения предполагаемой неисправности.
91
Получение значения d на выходе схемы (на выходе вентиля G11)
обеспечивается подачей сигналов d на его выходы 9 и 10.
Для получения сигнала d на выходе G9 при значении d на его входе 7,
на вход G6 нужно подать значение 0.
Получение значения 0 на выходе G6 обеспечивается подачей
следующих наборов значений на входы 1 и 2: (0, 1), (1, 0), (0, 0).
Для получения значения d на выходе 7 обеспечивается подачей
следующих входных наборов сигналов на входы 2 и 3: (1, 1), (1, 0), (0, 1).
Получение значения d на выходе вентиля 10 обеспечивается подачей
значения d на его 7 входе и значения 1 на его 8 входе. Получение 1 на выходе
G8 обеспечивается следующими входными наборами на входы 4 и 5 вентиля
G8: (1, 0), (0, 1), (1, 1).
Исходя из сказанного выше, можно сформировать следующие тестовые
последовательности, показанные на рис. 4.7 и обнаруживающие
неисправность "константный 0" на выходе G7.
1 0 0 0 0 0 0 0 0 0 1 1 1
2 0 0 0 1 1 1 1 1 1 0 0 0
входы

3 1 1 1 1 1 1 0 0 0 1 1 1
4 1 1 0 1 1 0 1 1 0 1 1 0
5 1 0 1 1 0 1 1 0 1 1 0 0

Рис. 4.7. Тестовые наборы для диагностирования схемы

Полный перебор составляет 25 =32 входных набора. С помощью d-


алгоритма Рота найдены 12 тестовых наборов, каждый из которых
гарантирует обнаружение неисправности "константной 0" на выходе 7 и при
этом позволяет избежать анализа полного перебора входных наборов.

4.3.2. Пошаговая проверка построения теста обучаемым.


Алгоритм проверки построения тестового набора для обнаружения
неисправности "константный 0" на выходе вентиля G7 приведенной схемы
АОС состоит из следующих шагов [22, 23, 60].
92
1. Номер тестового набора Nt=1.

2. Номер попытки Np = 0.

3. Построение таблицы истинности схемы.

4. Если таблица истинности схемы не содержит ошибок, то переход к

шагу 7.
5. Np= Np+1.
6. Если Np<3 то переход к шагу 3, иначе – изучение теории.

7. Номер попытки Np = 0.

8. Построение вырожденного покрытия схемы.

9. Если вырожденное покрытие не содержит ошибок, то переход к

шагу 11.
10. Np= Np+1.

11. Если Np<3 то переход к шагу 8, иначе – изучение теории.

12. Номер попытки Np = 0.

13. Построение чувствительного пути к выходу схемы.

14. Если чувствительный путь не содержит ошибок, то переход к шагу

17.
15. Np= Np+1.

16. Если Np<3 то переход к шагу 13, иначе – изучение теории.

17. Номер попытки Np = 0.

18. Выполнение обратного хода d-алгоритма и построение тестового

набора
19. Если тестовый набор не содержит ошибок, то переход к шагу 22.

20. Np= Np+1.

21. Если Np<3 то переход к шагу 18, иначе – изучение теории.

22. Если можно построить еще один тестовый набор, то Nt= Nt+1,

переход к шагу 18.


23. Завершение алгоритма.
93
В результате работы с подсистемой "Диагностирование
комбинационных схем" интеллектуального тренажера обучаемые должны
приобрести следующую квалификацию [59,69]:
▪ они должны иметь понятие о теории технической диагностики, о
технических средствах, моделях и методах, используемых в
технической диагностике;
▪ обучаемые должны уметь построить таблицу истинности
предложенной схемы, вычислить выходной сигнал при заданных
значениях входных сигналов, определить место и вид
неисправности по измененным значениям выходных сигналов (на
выходе схемы и в контрольных точках), построить тестовую
последовательность для данной схемы и минимизировать ее.
При проектировании электронных схем необходимо быть уверенным в
их правильном функционировании. Для этого проводят тестирование, которое
бывает функциональным и диагностическим. Функциональное тестирование
предполагает проверку функционирования схемы при рабочих воздействиях.
Диагностическое тестирование предполагает построение диагностических
тестовых последовательностей, т.е. наборов входных сигналов, подаваемых
на входы для обнаружения и идентификации неисправностей. Полный
перебор входных воздействий гарантирует обнаружение немаскированной
одиночной неисправности. Однако полный перебор входных воздействий для
даже не очень большой схемы может оказаться слишком большим. Поэтому
построение тестовых последовательностей выполняют в соответствии с
определенными алгоритмами и методами, обычно предполагающими их
минимизацию.

4.3.3. Представление подсистемы "Диагностика синхронных


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

Рис. 4.8. Синхронный RS-триггер и его таблица состояний


При диагностировании последовательностных схем одной из наиболее
существенных проблем является проблема начальной установки. Поэтому
прежде, чем строить тестовую последовательность для таких схем, следует
построить установочную последовательность, что само по себе является
непростой задачей. Кроме того, для достаточно сложных схем установочная
последовательность может вообще не существовать.
Другим подходом является наличие специальной схемы сброса.
Еще один подход состоит в размыкании цепей обратной связи объекта
при его проверке, т.е. в преобразовании последовательностной схемы в
комбинационную. Этот подход с успехом может применяться для
диагностирования синхронных последовательностных схем благодаря
наличию в них тактового сигнала [17].
Таким образом, для диагностирования синхронных
последовательностных схем вполне подходит использование простой
активизации одномерного пути, лежащей в основе d-алгоритма Рота.
Автоматическая генерация схем, содержащих триггеры, возможна при
наличии соответствующих базовых элементов в библиотеке элементов.
95
4.3.4. Представление подсистемы "Диагностика асинхронных
последовательностных схем"
При диагностировании асинхронных последовательностных схем
возможно использование эвристических методов, которые можно
использовать как для синхронных, так и для асинхронных
последовательностных схем, причем размер этих схем может быть достаточно
большим. Однако эвристические методы не гарантируют получение
оптимальной последовательности [17].

4.3.5. Интерфейс пользователя.


В процессе разработки интеллектуального тренажера, были
разработаны экранные формы для обеспечения интерфейса пользователя.
Интеллектуальный тренажер содержит экранные формы следующих видов
[25, 61].
Начальная заставка (рис. 4.9) содержит название тренажера и начальное
меню, позволяющее выбрать один из режимов работы: изучение теории,
тренинг, контроль.

Рис. 4.9. Начальная заставка


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

Рис. 4.10. Описание таблиц истинности логических элементов

Рис. 4.11. Влияние неисправностей на таблицу истинности схемы


97

Рис. 4.12. Понятие о сумматорах и их таблицах истинности

Рис. 4.13. Таблиц истинности сумматора с учетом переноса разряда

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


формированию тестовой последовательности в пошаговом режиме. Каждый
шаг контролируется интеллектуальным тренажером, и в контрольных точках
схемы происходит коррекция ошибок в случае их возникновения.
Предусмотрено несколько попыток решения задачи в режиме тренинга до
безошибочного выполнения задачи.
98
В случае успешного завершения режима тренинга обучаемый может
перейти к выполнению контрольного задания. Если после оговоренного числа
попыток в режиме обучения он не в состоянии перейти к выполнению
контрольного задания, ему предлагается еще раз вернуться к изучению
теоретического блока, но уже построенного по индуктивному методу. Затем
вся последовательность действий повторяется.
Экранные формы обучающего блока показаны на рис. 4.14 – 4.16.

Рис. 4.14. Обучение построению таблиц истинности логических


элементов

Рис. 4.15. Обучение построению d-кубов логических элементов


99

Рис. 4.16. Правила выполнения операций при построении d-кубов и d-


кубов неисправностей

Экранные формы режимов тренинга и контроля (рис. 4.17) содержат


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

Рис. 4. 17. Результат работы подсистемы "Диагностирование


комбинационных схем"
Преимуществом интеллектуального тренажера является абсолютное
отсутствие субъективности выставленной оценки.

4.4. Апробация работы и ее практическое применение


Разработанная в процессе написания диссертации АОС была
апробирована в учебном процессе в курсах "Теория систем" и "Системный
анализ и математическое моделирование" (САиММ).
Суть эксперимента заключается в следующем. По курсу САиММ (2
учебных группы, 45 человек) в течение семестра предусмотрено выполнение
трех контрольных мероприятий (контрольные работы сдаются на 4 неделе (1-
я контрольная работа), на 8 неделе (2-я) и на 12 неделе (3-я)). До
использования АОС выполнение и сдача контрольных мероприятий
происходило в соответствии с рис. 4.18 (сплошные линии), результат
использования АОС показан на рис. 4.18 (пунктирные линии) и в таблице 4.1.
Сравнение происходило с предыдущим годом, когда АОС еще не
использовалась.
101
Соотношение разных категорий обучаемых (отличники, успевающие на
"хорошо" и успевающие на "удовлетворительно") показано на рис. 4.19 и в
таблице 4.2.
Интенсивность сдачи контрольных мероприятий. Таблица 4.1
Задачи I II III
Число студентов, сдавших контрольное 2 3
32
мероприятие в срок (до использования АОС) 5 0
Число студентов, сдавших контрольное 3 3
40
мероприятие в срок (использование АОС) 0 6
Контрольные недели 4 8 12

Кол-студентов

1-задание
45 2-задание
3-задание
40

35

30

25

20

15

10

недели

Рис. 14.18.
2 3 4 5
График 6 7
сдачи8 9 10 11 12 13 14 15 16
контрольных заданий 17

Улучшение оценок при сдаче контрольных мероприятий. Таблица 4.2.


До использования Использование Дельта
АОС АОС
Задач I II III I II III I II III
и
Оценки Отл 9 6 9 12 14 14 3 7 5
Хор 11 17 15 20 20 19 9 3 4
Удовл 25 22 21 13 11 12
Графическое отображение результатов сдачи контрольных
мероприятий, приведенных в таблице 4.2, показано на рис. 4.19 – 4.21 в виде
столбчатых диаграмм.
102
Как показали результаты внедрения, обучающая система позволила
ускорить процесс выполнения контрольных мероприятий за счет того, что
обучаемые получили возможность доступа к информации в любое время и без
обращения к преподавателю. Дополнительная возможность повысить свой
уровень в режиме тренинга в удобное время, в том числе дома, также
повышает уровень активности части обучаемых.

До использования АОС

25
45 22 21
40
Кол.студентов

35
30 17
15
25 11
20
9 9
удовл-но
15
6
10 хорошо
5
отлично
0
4 8 12

Недели
Рис. 4.19. Соотношение оценок, полученных при сдаче контрольных
мероприятий до использования АОС

В результате использования АОС

45
40
20 19 18
Кол.студентов

35

30
13 13
25 12
20 14 14
12 хорошо
15
10 удовл-но
5
отлично
0
4 8 12

Недели
Рис. 4.20. Соотношение оценок, полученных при сдаче контрольных
мероприятий с использованием АОС
103

В результате использования АОС

45
40

Кол.студентов
35
30 9
25 3 4
20
15 7 5
хорошо
3
10
5 отлично
0
4 8 12

Недели
Рис. 4.21. Увеличение количества отличников и успевающих на "хорошо" в
результате использования АОС
В результате использования АОС интенсивность сдачи контрольных
мероприятий увеличилась на 15%, успеваемость улучшилась на 12%.
Применяемая технология e-learning предполагает возможность сдачи
контрольных мероприятий без личного присутствия обучаемого путем
отправки выполненного задания на электронный адрес преподавателя.
Еще один эффект использования интеллектуального тренажера –
меньшее количество студентов, приходящих на консультацию с целью
выяснения непонятных моментов, что также обусловлено возможностью в
любое время получить доступ к информации, а также проверить правильность
её восприятия путем включения режима тренинга.
Эффект от использования интеллектуального тренажера с точки зрения
каждой из групп, определяемых их мотивациями, следующий.
Отличники и студенты, успевающие на "хорошо" – это люди, которые
реально хотят получить знания, поэтому стараются выполнить контрольные
мероприятия в максимально короткие сроки. Для них использование
интеллектуального тренажера наиболее актуально, т.к. дает дополнительные
возможности реализации их целей.
Часть студентов, успевающих на "удовлетворительно" (старательные)
также интенсивно использует интеллектуальный тренажер, т.к.
104
психологически им проще лишний раз запустить обучающую систему, чем
неоднократно задавать одни и те же вопросы преподавателю.
Ленивая часть студентов, успевающих на "удовлетворительно" на
использование интеллектуального тренажера не реагирует.
Разработанный интеллектуальный тренажер, в отличие от
существующих АОС, имеет:
1. Блок автоматической генерации заданий, позволяющий
генерировать обучающие и контрольные задания в автоматическом режиме.
2. Возможность графического изображения сгенерированных схем
в динамическом режиме.
3. Автоматический "решатель" сгенерированных заданий.
4. Два подхода к представлению теоретической части по каждой
теме – индуктивный и дедуктивный, ориентированные на индивидуальные
компетентностные особенности обучаемого.

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

Заключение
В диссертационной работе решена научная проблема создания АОС на
основе разработанных алгоритмов, обеспечивающих повышение уровня
квалификации инженерно-технического персонала в приборостроении, при
этом получены следующие основные научные и практические результаты.
 Разработана структура АОС, ориентированная на трехуровневую
систему диагностирования изделий электронной техники.
 Разработана структура интеллектуального тренажера,
являющегося основой АОС.
 Сформирована структура модели области знаний,
обеспечивающая применение двух технологий изучения дисциплины:
основанных на индуктивном и дедуктивном методах процесса
обучения.
 Реализованы подсистемы АОС "Основные определения и
понятия технической диагностики", "Диагностика комбинационных
схем (d-алгоритм Рота)", разработаны подходы для реализации
подсистем "Диагностика синхронных последовательностных схем" и
"Диагностика асинхронных последовательностных схем".
 Разработан алгоритм автоматического генератора заданий,
который формирует большое количество однотипных,
неповторяющихся заданий и проверяет их корректность.
 Разработан алгоритм автоматического "решателя", который
выполняет сгенерированные в автоматическом режиме задачи,
учитывая особенности каждой из них.
 Результаты диссертационной работы внедрены в учебный
процесс кафедры ИПОВС Московского государственного института
электронной техники.
 Результаты экспериментальных исследований использования
АОС показали, что интенсивность сдачи контрольных мероприятий
увеличилась на 15%, успеваемость улучшилась на 12%.
106

Список литературы
1. Основы технической диагностики. М., “Энергия”, 1976, 454 с.
2. Диагностическое обеспечение и надежность технических объектов.
Пархоменко П.П. Надежность. №1, 2002, - С. 9 - 14.
3. ДЖ..Джейкокс. Руководство по поиску неисправностей в электронной
аппаратуре. Перевод с английского А.И.Зильбермана. М.Мир, 1989.
4. А.М.Малышенко. Определение матриц состояния, входов и выходов
линейных динамических систем по их структурным схемам. АиТ,
№,1991, М., Наука.
5. Ю.В.Малышенко. Функциональные модели неисправностей
аналоговых элементов. Аит, №2, 1992, М., Наука.
6. Сперанский Д.В. О совмещенных схемах для функционального и
тестового диагностирования дискретных устройств. АиТ, №1 (1985), -
С. 122 - 126.
7. Технические средства диагностирования. Справочник. В.В.Клюев,
П.П.Пархоменко, В.Е.Абрамчук и др. М.,машиностроение , 1989г.
8. Microprocessor Functional Testing: Ch.Robach, G.Saucier./IEEE Test
Conference, Proceedings, p. 433 - 443.
9. Чжо Чжо Кхаин. Принципы разработки обучающей системы по
диагностике. Тез.докл. Научная сессия МИФИ, 23-27 январь, 2006г. – С.
22, секция И-1 «Технологии разработки программных систем».
10.Ш.Граф, М.Гессель. Системы поиска неисправностей. Перевод с
немецкого под ред. Д.А.Поспелова. М.,Энергоатомиздат, 1989.
11.Литиков И.И., Согомонян Е.С. Тестово-функциональное
диагностирование цифровых устройств и систем. АиТ, № 3 (1985), - С.
111 - 121.
12. Ю.В.Малышенко, В.П.Чипулис, С.Г.Шаршунов. Автоматизация
диагностирования электронных устройств. М., Энергоатомиздат, 1988.
107
13. Design of Fully Exercised SFS/SCD Logic Networks. T.Nanya,
S.Hatakanaka, R.Onoo/FTCS. The Twenty Second Annual. International
Sympos. On Fault-Tolerant Computing. July 8-10, 1992, Boston,
Massachusetts, USA.
14. Ашарина.И.В., Чжо Чжо Кхаин. Алгоритмы получения
согласованных значений в двухкомплексной системе. Тез.докл. Научная
сессия МИФИ, 23-27 январь, 2006г. – С. 18, секция И-1 «Технологии
разработки программных систем».
15. Чжо Чжо Кхаин. Интеллектуальная система поддержки процесса
обучения по дисциплине «Диагностика сложных систем». Тез.докл. 13-
й Всерос.межвуз. науч-техн.конф. «Микроэлектроника и информатика-
2006». – М.:МИЭТ, 2006. - С. 223.
16. J. Paul Roth. Diagnosis of Automata failures: A calculus and a method.
IBM journal, July 1966. – C. 278-291.
17. Г.Чжен, Е.Мэннинг, Г.Метц. Диагностика отказов цифровых
вычислительных систем. М., Мир, 1972, 232с.
18. Гагарина.Л.Г., Лисов.О.И., Чжо Чжо Кхаин. Исследование
направлений информационной поддержки деятельности предприятий
социально-культурной сферы и вопросов организации учебного
процесса подготовки и переподготовки кадров на основе E-learning
технологий, Отчет. «Московский институт искусств и информационных
технологий (Филиал Санкт-петербургского гуманитарного
университета профсоюзов)».
19. Р.Лаутербах, К.Фрей. Программное обеспечение процесса обучения.
Перспективы. Вопросы образования. 1988, N 3, - С. 70 - 79.
20. Д.Френд. Интеграция вычислительной техники в школы. Перспективы.
Вопросы образования. 1988, N 3, - С.46 - 59.
21. Игнатова И.Г., Соколова Н.Ю. Информационные и
коммуникционные технологии в образовании. Информатика и
образование, №3 – 2003, - С. 52 - 61.
108
22. Иванов В. Л. Электронный учебник: системы контроля
знаний//Информатика и образование, 2002. № 1.
23. Контроль результатов обучения с использованием системы
автоматического проектирования компьютерного обучения курсов
WebCT/Материалы конференции «Анализ качества образования и
тестирование» (22 марта 2001 года, Москва). М.: Изд-во МЭСИ.
24. Чжо Чжо Кхаин. Создание автоматизированной обучающей системы
для изучения методов технической диагностики. Тез, докл. (Сочи).
Материалы научно-практической конференции ИНФО-2007
«Инновации в условиях развития информационно-коммуникационных
технологий» 1-10 октября 2007г, Россия, г.Сочи, - С. 283 - 286.
25. Чжо Чжо Кхаин. Актуализация знаний при обучении методом
генерации тестов для электронных схем. Тез, докл. Научная сессия
МИФИ, 22-27 января, 2007г. – С. 102, секция И-1 «Технологии
разработки программных систем».
26. В.В. Карибский, П.П. Пархоменко, Е.С. Согомонян, В.Ф. Халчев.
Основы технической диагностики. 1976г. Энергия.
27. Технические средства диагностирования. Справочник. Под общ. ред.
В.В.Клюева. – М.: Машиностроение, 1989. – 672 с.
28. Искусственный интеллект. Справочник. Под ред. Д.А.Поспелова. М.,
Радио и связь, 1990.
29. А. Кафман. Введение в теорию нечетких множеств. Перевод с
французского под ред. С.И.Травкина. М., Радио И связь, 1982.
30. Нечеткие множества и теория возможностей. Под ред. Р.Р.Ягера.
Перевод с английского под ред. С.И. Травкина. М., Радио и связь, 1986.
31. Тиори Т., Фрай Дж. Проектирование структур баз данных. Перевод с
английского. М., Мир, 1985.
32. С.А.Айвазян, И.С.Енюков, Л.Д.Мешалкин. Прикладная статистика.
Основы моделирования и первичная обработка данных. М., Финансы м
статистика, 1983.
109
33. Требования и спецификации в разработке программ. Сборник статей.
Перевод с английского под ред. В.Н.Агафонова. М., Мир, 1984.
34. Дж Ульман. Основы систем баз данных. Перевод с английского под
ред. Р.М.Когаловского. М., Финансы и статистика, 1983.
35. 30 Years of Adaptive Neural Networks: Perceptron, Madaline and
Backpropagation. B.Widrow, M.A.Lehr. Proceedings of the IEEE, vol.78,
№9, September, 1990.
36. Д.Дюбуа, А.Прад. Теория возможностей. Перевод с французского под
ред. С.А.Орловского. М., Радио и связь, 1990.
37. Нечеткие множества в моделях управления искусственного интеллекта.
Под ред. Д.А.Поспелова. М., Наука, 1986.
38. Е.Ю.Кандрашина, Л.В.Литвинцева, Д.А.Поспелов. Представление
знаний о времени и пространстве в интеллектуальных системах. М.,
Наука, 1989.
39. К.Хоггер. Введение в логическое программирование. Перевод с
английского под ред. Ю.И.Янова. М., Мир, 1988.
40. Пархоменко П.П., Согомонян Е.С. Основы технической диагностики.
М., Энергоиздат, 1981.
41. Ю.В.Малышенко, В.П.Чипулис, С.Г.Шаршунов. Автоматизация
диагностирования электронных устройств. М., Энергоатомиздат, 1986.
42. Ашарина И.В. Выбор маршрута диагностирования одноплатных
микро-ЭВМ, Моск. гос. инт- электронной техники. М., 1994. 14 с., Деп.
В ВИНИТИ 16.06.94, № 1491-В94.
43. E.A.Caianiello. A theory of neural networks. Neural Computing
Architectures. The design of brain-like machines, 1989.
44. Caudill M. Using Neural Nets. Pt.6. Hybrid Expert Networks. AI Expert.
1990, v.5, № 11, p. 49 - 54.
45. Нейрокомпьютеры и интеллектуальные роботы под ред. Н.М.Амосова,
Киев, “Наукова думка”, 1991.
110
46. Vemuri V. Artificial Neural Networks: Theoretical Conceptions. IEEE
Publications. Computer Soc. Press Technology. Ser. Neural Networks,
Washington, 1988.
47. Zeidenberg M. Neural Network Models in Artificial Intelligence. 1990,
Madison, USA.
48. В.П.Третьяков., С.Г.Михайлов. Адаптивно-резонансная нейронная
сеть с расширенной областью принятия решения. Автометрия, № 2,
1993, - С. 80-86.
49. L.B.Almeida. Backpropagation in non-feedforward networks. Neural
Computing Architectures. The design of brain-like machines, 1989.
50. Классификация и кластер. Ред. Дж Ван Райзин. Перевод с английского
П.П.Кольцова под ред. Ю.И.Журавлева. М., Мир, 1980.
51. Ашарина И.В. Разработка интеллектуальных систем
диагностирования сложных технических объектов. Диссертация на
соискание ученой степени кандидата технических наук. Москва, 1995 г.
52.И.А.Биргер. Техническая диагностика. М., «Машиностроение», 1978.
53. Экспертные системы. Под ред. Р.Форсайта. Перевод с английского под
ред. В.Л.Стефанюка. М., Радио и связь, 1987.
54.Ф.И.Перегудов, Ф.П.Тарасенко. Введение в системный анализ. М.,
«Высшая школа», 1989.
55. Anderson C. Learning and Problem Solving with Multilayer Connectionist
Systems. Ph.D Thesis, University of Massachusetts, 1986.
56. Выявление экспертных знаний. О.И.Ларичев, А.И.Мечитов,
Е.М.Мошкович, Е.М.Фуремс. М., Наука, 1989.
57. Б.Сойер, Д.Л.Фостер. Программирование экспертных систем на
Паскале. Перевод с английского. М., Финансы и статистика, 1990.
58. Д.Уотермен. Руководство по экспертным системам. Перевод с
английского под ред. В.Л.Стефанюка. М., Мир, 1989.
59. Ашарина И.В. Чжо Чжо Кхаин. Автоматизированная обучающая
система диагностирования электронных схем. Тез, докл. Всерос.межвуз.
111
науч-техн.конф. «Актуальные проблемы информатизации. Развитие
информационной инфраструктуры, технологий систем». – М.:МИЭТ,
29-30 ноября, 2007. - С. 175.
60. Чжо Чжо Кхаин. Способы представления информации в обучающей
системе диагностирования электронных схем Тез, докл. Научная сессия
МИФИ, 21-27 января, 2008г. – С.16 - 17, секция И-1 «Технологии
разработки программных систем».
61. Ашарина И.В. Чжо Чжо Кхаин. Интеллектуальная система
поддержки квалификации персонала в структуре АСУТП. «Оборонный
комплекс».
62. Чжо Чжо Кхаин. Программный комплекс формирования заданий при
изучении методов технической диагностики. Статья . Электроника.
Известия вузов. Электроника.№5, 2007г., - С. 74 - 79.
63.Чжо Чжо Кхаин. Автоматическая генерация тестов обучающей
системы с помощью древовидной структуры. Тез.докл. Научная сессия
МИФИ, 22-27 январь, 2007г. – С. 100, секция И-1 «Технологии
разработки программных систем».
64. Чжо Чжо Кхаин. Послойная генерация тестовых схем в обучающей
системе. Тез.докл. Научная сессия МИФИ, 22-27 январь, 2007г. – С.
102, секция И-1 «Технологии разработки программных систем».
65. Чжо Чжо Кхаин. Автоматическая генерация тестов для
автоматизированной обучающей системы. Статья. Сборник научных
трудов «Системный анализ и информационно-управляющие системы».
– М.:МИЭТ, 2006. - С. 197.
66. Чжо Чжо Кхаин. Способы генерации тестов в обучающей системе при
дистанционном обучении. Тез.Докл. 14-й Всерос.межвуз. науч-
техн.конф. «Микроэлектроника и информатика-2007». – М.:МИЭТ,
2007. - С. 220.
67. Ашарина И.В. Чжо Чжо Кхаин. Учебно-методическое пособие для
проведения практических занятий по курсу (Программирование на
112
языках высокого уровня). Учебно-методическое пособие для
проведения практических занятий, 66с.
68. Ашарина И.В. Чжо Чжо Кхаин. Учебно-методическая разработка для
самостоятельной работы студентов по курсу (Объектно-
ориентированное программирование). Учебно-методическая разработка
для самостоятельной работы студентов, 97с.
69. Слепцова Л. Д. Программирование на VBA в Microsoft Office 2007.
Самоучитель. - М.:Диалектика, 2007. – 432 с. – ISBN 978-5-8459-1268-8.
113

Приложение 1

Акт о внедрении результатов диссертационной работы


114
115

Приложение 2
Дипломы, полученные на научных конференциях
116
117
118

Приложение 3
Фрагменты теоретического блока АОС
119
120
121
122
123
124

Приложение 4
Фрагменты листинга программной реализации АОС
125
AbstractNode.cs
using System;
using System.Collections.Generic;
using Circuit.Exceptions;

namespace Circuit.Model
{
internal abstract class AbstractNode
{
private int level;
private int position;
private string name;
private int size;
private bool? result;
private IList<Entrance> entries;
private Exit exit;

//added
private bool error;
private bool errorOut;

protected AbstractNode(int size)


{
Size = size;
Entries = new List<Entrance>(Size);
for (int i = 0; i < Size; i++)
{
Entries.Add(new Entrance(this));
};
Exit = new Exit(this);
}
public int Level
{
get { return level; }
set { level = value; }
}

public int Position


{
get { return position; }
set { position = value; }
}

public string Name


{
get { return name; }
protected set { name = value; }
}

public int Size


{
get { return size; }
126
protected set { size = value; }
}
//modifiy
public bool Result
{
get
{
if (error)
return errorOut;

if (result == null)
{
result = Calculate();
}
return result.Value;
}

set
{
result = new bool?(value);
}
}

public IList<Entrance> Entries


{
get { return entries; }
protected set { entries = value; }
}

public Exit Exit


{
get
{
return exit;
}
set
{
exit = value;
}
}

protected virtual bool Calculate()


{
throw new NotImplementedException();
}

public void Reset()


{
result = null;
}

public void Init(IList<Exit> list)


127
{
if (list.Count != Size)
{
throw new InvalidSizeException();
}
else
{
for (int i = 0; i < list.Count; i++)
{
Entries[i].Exit = list[i];
}
}
}

public IList<Entrance> NotConectedEntries()


{
IList<Entrance> result = new List<Entrance>();
foreach (Entrance entrance in Entries)
{
if (entrance.Exit == null)
{
result.Add(entrance);
}
}
if (result.Count > 0)
{
return result;
}
return null;
}

public void setPlace(int level, int position)


{
Level = level;
Position = position;
}

protected string getPlace()


{
return "[" + Level + "," + Position + "]";
}

public override string ToString()


{
string result = "";
result = getPlace() + Name;

if (Entries != null && Entries.Count > 0)


{
result = result + "(";
foreach (Entrance entrance in Entries)
{
128
result = result + entrance.Exit.Node.getPlace();
result = result + ",";
}
result.Remove(result.Length - 1);
result = result + ")";
}

return result;
}

//added
public int GetEntriesCountFrom(int needLevel) {
int res = 0;
for (int i = 0; i < this.Entries.Count; i++) {
if (entries[i].Exit.Node.Level == needLevel)
res++;
}
return res;
}
public bool Error
{
get { return error; }
set { error = value; }
}
public bool ErrorOut
{
get { return errorOut; }
set { errorOut = value; }
}

}
}

And2Node.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace Circuit.Model
{
class And2Node : AbstractNode
{
public And2Node():base(2)
{
Name = "And2";
}
protected override bool Calculate()
{
return Entries[0].Exit.Node.Result && Entries[1].Exit.Node.Result;
}
}
}
129

And3Node.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace Circuit.Model
{
class And3Node : AbstractNode
{
public And3Node():base(3)
{
Name = "And3";
}
protected override bool Calculate()
{
return Entries[0].Exit.Node.Result
&& Entries[1].Exit.Node.Result
&& Entries[2].Exit.Node.Result;
}
}
}

Or2Node.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace Circuit.Model
{
class Or2Node : AbstractNode
{
public Or2Node():base(2)
{
Name = "Or2";
}
protected override bool Calculate()
{
return Entries[0].Exit.Node.Result || Entries[1].Exit.Node.Result;
}
}
}

Or3Node.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace Circuit.Model
{
class Or3Node : AbstractNode
{
130
public Or3Node():base(3)
{
Name = "Or3";
}
protected override bool Calculate()
{
return Entries[0].Exit.Node.Result
|| Entries[1].Exit.Node.Result
|| Entries[2].Exit.Node.Result;
}
}
}

NotNode.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace Circuit.Model
{
class NotNode : AbstractNode
{
public NotNode():base(1)
{
Name = "Not";
}
protected override bool Calculate()
{
return !Entries[0].Exit.Node.Result;
}
}
}
Constant.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace Circuit.Model
{
class Constant : AbstractNode
{
public Constant():base(0)
{
Name = "Const";
}
protected override bool Calculate()
{
return Result;
}
}
}
131
Entrance.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace Circuit.Model
{
class Entrance
{
AbstractNode node;
Exit exit;

public Entrance(AbstractNode node)


{
Node = node;
Exit = null;
}
public AbstractNode Node
{
get
{
return node;
}

set
{
node = value;
}
}

public Exit Exit


{
get
{
return exit;
}
set
{
exit = value;
}
}

public bool ConnectExit(Exit exit)


{
if (Exit == null)
{
foreach (Entrance entrance in this.Node.Entries)
{
if (entrance.Exit != null && entrance.Exit.Equals(exit))
{
return false;
}
132
}
Exit = exit;
exit.AddEntrance(this);
return true;
}
else
{
return false;
}
}
}
}

Exit.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace Circuit.Model
{
class Exit
{
AbstractNode node;
IList<Entrance> entrances;

public Exit(AbstractNode node)


{
Node = node;
entrances = null;
}

public AbstractNode Node


{
get
{
return node;
}

set
{
node = value;
}
}

public IList<Entrance> Entrances


{
get
{
return entrances;
}

set
133
{
entrances = value;
}
}

public void AddEntrance(Entrance entrance)


{
if (Entrances == null)
{
Entrances = new List<Entrance>();
}
Entrances.Add(entrance);
}
}
}

RotAlgoritm.cs
using System;
using System.Collections.Generic;
using System.Text;
using Circuit.Model;
using System.IO;

namespace RotAlgoritm
{
class RotAlgoritm
{
private Circuit.Model.Circuit circuit;
private DegeneratedCover[] covers;
private DCube[] cubes;

public RotAlgoritm(Circuit.Model.Circuit circuit) {


this.circuit = circuit;
covers = new DegeneratedCover[circuit.TotalNodes];
cubes = new DCube[circuit.TotalNodes];

int cur = 0;
for (int i = 0; i < circuit.LastLevel; i++) {
for (int j = 0; j < circuit[i].Count; j++) {
covers[cur] = new DegeneratedCover(circuit[i][j]);
cur++;
}
}

cur = 0;
for (int i = 0; i < circuit.LastLevel; i++)
{
for (int j = 0; j < circuit[i].Count; j++)
{
cubes[cur] = new DCube(circuit[i][j]);
cur++;
}
134
}
}
public DegeneratedCover GetCover(int level, int pos) {
return covers[circuit.GetNodeNumber(level, pos) - 1];
}
public DCube GetCube(int level, int pos)
{
return cubes[circuit.GetNodeNumber(level, pos) - 1];
}
public void CoversToFile(string fileName)
{
// StreamWriter file = new StreamWriter(fileName,false,Encoding.GetEncoding("ASCII"));
StreamWriter file = new StreamWriter(fileName);

file.Write(CoversToString);
file.Close();
}
public void CubesToFile(string fileName)
{
// StreamWriter file = new StreamWriter(fileName, false, Encoding.GetEncoding("ASCII"));
StreamWriter file = new StreamWriter(fileName);

file.Write(CubesToString);
file.Close();
}
public string CoversToString
{
get
{//возвращаем все в одной строке
String result = String.Empty;
bool drawX = true;
bool endOfLine = false;
bool firstDrawn = false;
for (int i = 1; i < covers.Length + 1; i++)
{
result += i + " ";
}
result += System.Environment.NewLine;
for (int curCover = 0; curCover < covers.Length; curCover++)
{//по всем покрытиям
for (int curString = 0; curString < covers[curCover].LinesCount; curString++)
{//по строкам
if (curCover < circuit[0].Count)
{//по всем покрытиям,кроме нулевого уровня
result += " ";
continue;
}

endOfLine = false;
firstDrawn = false;
for (int curNodeNum = 1; curNodeNum < circuit.TotalNodes + 1; curNodeNum+
+)
135
{//по символьно
drawX = true;
for (int curNodeSymb = 0; curNodeSymb <
covers[curCover].InputNodes.Count + 1; curNodeSymb++)
{
if (circuit.GetNodeNumber(covers[curCover].GetNode(curNodeSymb)) ==
curNodeNum)
{
if (!firstDrawn)
firstDrawn = true;

result += covers[curCover].GetLine(curString)[curNodeSymb];
drawX = false;
if (curNodeSymb == covers[curCover].LinesCount - 1)
{
endOfLine = true;
break;
}
}
}
if (endOfLine)
break;
if (drawX && firstDrawn)
result += "x";
if (!firstDrawn)
result += " ";

result += " ";


if (curNodeNum > 9)
result += " ";
}
result += System.Environment.NewLine;
}
}
return result;
}
}
public string CubesToString
{
get
{//возвращаем все в одной строке
String result = String.Empty;
bool drawX = true;
bool endOfLine = false;
bool firstDrawn = false;
for (int i = 1; i < cubes.Length + 1; i++)
{
result += i + " ";
}
result += System.Environment.NewLine;
for (int curCube = 0; curCube < cubes.Length; curCube++)
{//по всем покрытиям
136
for (int curString = 0; curString < cubes[curCube].LinesCount; curString++)
{//по строкам
if (curCube < circuit[0].Count)
{//по всем покрытиям,кроме нулевого уровня
result += " ";
continue;
}

endOfLine = false;
firstDrawn = false;
for (int curNodeNum = 1; curNodeNum < circuit.TotalNodes + 1; curNodeNum+
+)
{//по символьно
drawX = true;
for (int curNodeSymb = 0; curNodeSymb < cubes[curCube].InputNodes.Count
+ 1; curNodeSymb++)
{
if (circuit.GetNodeNumber(cubes[curCube].GetNode(curNodeSymb)) ==
curNodeNum)
{
if (!firstDrawn)
firstDrawn = true;

result += cubes[curCube].GetLine(curString)[curNodeSymb];
drawX = false;
if (curNodeSymb == cubes[curCube].LinesCount)
{
endOfLine = true;
break;
}
}
}
if (endOfLine)
break;
if (drawX && firstDrawn)
result += " ";
if (!firstDrawn)
result += " ";

result += " ";


if (curNodeNum > 9)
result += " ";
}
result += System.Environment.NewLine;
}
}
return result;
}
}

private string GetSpacesCount(int cur,int need)


{//возвр. кол-во пробелов от начала до текущего узла(ToString)
137
string temp = String.Empty;
for (int i = 0; i < (need - cur) + (need - cur - 1); i++)
temp += " ";

return temp;
}

internal Circuit.Model.Circuit Circuit


{
get { return this.circuit; }
set { this.circuit = value; }
}
}

internal class DegeneratedCover


{//вырожденное покрытие
private List<AbstractNode> inputNodes;
private AbstractNode outputNode;
private List<List<String>> value;

public DegeneratedCover(AbstractNode node) {


inputNodes = new List<AbstractNode>();
for (int i = 0; i < node.Entries.Count; i++) {
inputNodes.Add(node.Entries[i].Exit.Node);
}
outputNode = node;

Sort();
Calculate();
}
private void Fill() {
String type = outputNode.Name.Substring(0, outputNode.Name.Length - 1);

for (int i = 0; i < inputNodes.Count + 1; i++)


{
value.Add(new List<String>());
for (int j = 0; j < inputNodes.Count + 1; j++)
{
if (i != inputNodes.Count)
{
if (j == i)
value[i].Add("x");
else
{
if(type == "And")
value[i].Add("0");
else
value[i].Add("1");
}
}
else
{
138
if (type == "And")
value[i].Add("1");
else
value[i].Add("0");
}
}
}

}
private void Calculate()
{
value = new List<List<String>>();
switch (outputNode.Name.Substring(0, outputNode.Name.Length - 1))
{
case "And":
case "Or":
Fill();
break;
default :
#warning
//если это не "и" и не "или",то вырожденное покрытие не строится!
break;
}
}

public String[] GetLine(int Line) {


return value[Line].ToArray();
}
public int LinesCount {
get { return value.Count; }
}
public AbstractNode GetNode(int Num) {
if (Num < inputNodes.Count)
return inputNodes[Num];
else
return outputNode;
}
public List<AbstractNode> InputNodes {
get { return inputNodes; }
}
private void Sort() {
inputNodes.Sort(SortNodes);
}
private static int SortNodes(AbstractNode node1, AbstractNode node2) {
if (node1.Level < node2.Level)
return -1;
else if (node1.Level > node2.Level)
return 1;
else
if (node1.Position < node2.Position)
return -1;
else if (node1.Position > node2.Position)
139
return 1;
else
return 0;
}
}
internal class DCube
{//d-куб
private List<AbstractNode> inputNodes;
private AbstractNode outputNode;
private List<List<String>> value;

public DCube(AbstractNode node)


{
inputNodes = new List<AbstractNode>();
for (int i = 0; i < node.Entries.Count; i++)
{
inputNodes.Add(node.Entries[i].Exit.Node);
}
outputNode = node;

Sort();
Calculate();
}
private void Fill()
{
String type = outputNode.Name.Substring(0, outputNode.Name.Length - 1);

for (int i = 0; i < inputNodes.Count; i++)


{
value.Add(new List<String>());
for (int j = 0; j < inputNodes.Count + 1; j++)
{
if (j == i)
value[i].Add("d");
else if (j != inputNodes.Count)
{
if (type == "And")
value[i].Add("1");
else
value[i].Add("0");
}
else {
value[i].Add("d");
}
}
}

}
private void Calculate()
{
value = new List<List<String>>();
switch (outputNode.Name.Substring(0, outputNode.Name.Length - 1))
140
{
case "And":
case "Or":
Fill();
break;
default:
#warning
//если это не "и" и не "или",то вырожденное покрытие не строится!
break;
}
}

public String[] GetLine(int Line)


{ return value[Line].ToArray(); }
public int LinesCount
{
get { return value.Count; }
}
public AbstractNode GetNode(int Num)
{
if (Num < inputNodes.Count)
return inputNodes[Num];
else
return outputNode;
}
public List<AbstractNode> InputNodes
{
get { return inputNodes; }
}
private void Sort()
{
inputNodes.Sort(SortNodes);
}
private static int SortNodes(AbstractNode node1, AbstractNode node2)
{
if (node1.Level < node2.Level)
return -1;
else if (node1.Level > node2.Level)
return 1;
else
if (node1.Position < node2.Position)
return -1;
else if (node1.Position > node2.Position)
return 1;
else
return 0;
}
}
}
Circuit.cs
using System;
using System.Collections.Generic;
141
using System.Text;
using Circuit.Exceptions;

namespace Circuit.Model
{
class Circuit
{
private IList<IList<AbstractNode>> circuit = null;
private Random generator;
//added
private AbstractNode curErrorNode;
private int[][] nodeNumber;
private int totalNodes;
//modified
public Circuit()
{
generator = new Random(DateTime.Now.Second);
}
public int LastLevel
{
get
{
return circuit.Count;
}
}
public void Generate()
{
circuit = new List<IList<AbstractNode>>(3);

IList<Exit> temp;

IList<AbstractNode> level = new List<AbstractNode>(3);


level.Add(new Constant());
level.Add(new Constant());
level.Add(new Constant());
circuit.Add(level);

level = new List<AbstractNode>(1);


level.Add(new And2Node());
temp = new List<Exit>(2);
temp.Add(circuit[0][0].Exit);
temp.Add(circuit[0][1].Exit);
level[0].Init(temp);
circuit.Add(level);

level = new List<AbstractNode>(1);


level.Add(new Or2Node());
temp = new List<Exit>(2);
temp.Add(circuit[1][0].Exit);
temp.Add(circuit[0][2].Exit);
level[0].Init(temp);
circuit.Add(level);
142

CalculateNodeNumber();
}
public void Generate(int size)
{
int levelSize = 0;
circuit = new List<IList<AbstractNode>>(size);
for (int i = 0; i < size; i++)
{
circuit.Add(new List<AbstractNode>());
}

circuit[size - 1].Add(GetRandomNode());
circuit[size - 1][0].setPlace(size - 1, 0);

int entranceNumber;
IList<Entrance> notConnectedEntries;
for (int i = size - 2; i > 0; i--)
{
levelSize = generator.Next(1, GetNotConnectedEntries(i + 1).Count);
for (int j = 0; j < levelSize; j++)
{
circuit[i].Add(GetRandomNode());
circuit[i][j].setPlace(i, j);
notConnectedEntries = GetNotConnectedEntries(i + 1);
do
{
entranceNumber = generator.Next(0, notConnectedEntries.Count);
}
while (!notConnectedEntries[entranceNumber].ConnectExit(circuit[i]
[circuit[i].Count - 1].Exit));
}
}

int maxEntries = GetMaxEntries(circuit[1]);

levelSize = generator.Next(maxEntries, GetNotConnectedEntries(1).Count);

for (int j = 0; j < levelSize; j++)


{
circuit[0].Add(new Constant());
circuit[0][j].setPlace(0, j);
notConnectedEntries = GetNotConnectedEntries(1);
do
{
entranceNumber = generator.Next(0, notConnectedEntries.Count);
}
while (!notConnectedEntries[entranceNumber].ConnectExit(circuit[0][circuit[0].Count
- 1].Exit));
}
143
for (int i = 1; i < circuit.Count; i++)
{
IList<Exit> exits = GetExits(i);
IList<Entrance> entries = GetNotConnectedEntries(circuit[i]);
int exitNumber;
foreach (Entrance entrance in entries)
{
do
{
exitNumber = generator.Next(0, exits.Count);
}
while (!entrance.ConnectExit(exits[exitNumber]));
}
}

CalculateNodeNumber();
}
public bool Calculate()
{
return circuit[LastLevel - 1][0].Result;
}
public void InitFirstLevel(bool[] level)
{
if (circuit[0].Count != level.Length)
{
throw new InvalidSizeException();
}
foreach (IList<AbstractNode> list in circuit)
{
foreach (AbstractNode node in list)
{
node.Reset();
}
}
for (int i = 0; i < level.Length; i++)
{
circuit[0][i].Result = level[i];
}
}
public int EntiresSize
{
get
{
if (circuit.Count > 0)
{
return circuit[0].Count;
}
throw new InvalidSizeException();
}
}
private AbstractNode GetRandomNode()
{
144
int nodeType = generator.Next(5);
switch (nodeType)
{
case 0: return new NotNode();
case 1: return new Or2Node();
case 2: return new Or3Node();
case 3: return new And2Node();
case 4: return new And3Node();
default: throw new InvalidNodeTypeException();
};
}
private IList<Entrance> GetNotConnectedEntries(int sinceLevel)
{
List<Entrance> result = new List<Entrance>();
for (int i = sinceLevel; i < circuit.Count; i++)
{
IList<AbstractNode> level = circuit[i];
result.AddRange(GetNotConnectedEntries(level));
}
return result;
}
private IList<Entrance> GetNotConnectedEntries(IList<AbstractNode> level)
{
List<Entrance> result = new List<Entrance>();
foreach (AbstractNode node in level)
{
if (node.NotConectedEntries() != null)
{
result.AddRange(node.NotConectedEntries());
}
}
return result;
}
private int GetMaxEntries(IList<AbstractNode> level)
{

if (level == null || level.Count < 1)


{
throw new InvalidSizeException();
}

int result = level[0].Size;

foreach (AbstractNode node in level)


{
if (node.Size > result)
{
result = node.Size;
}
}
return result;
}
145
private IList<Exit> GetExits(int tillLevel)
{
IList<Exit> result = new List<Exit>();
for (int i = 0; i < tillLevel; i++)
{
IList<AbstractNode> level = circuit[i];
foreach (AbstractNode node in level)
{
result.Add(node.Exit);
}
}
return result;
}
public override string ToString()
{
string result = "";
foreach (IList<AbstractNode> level in circuit)
{
foreach (AbstractNode node in level)
{
result = result + node.ToString();
result = result + " ";
}
result = result + "\n";
}
return result;
}

//added
public IList<AbstractNode> this[int index] {
get {
return circuit[index];
}
}
public int MaxBlocksNum {
get {
int max = 0;
for (int i = 0; i < circuit.Count; i++) {
if (max < circuit[i].Count) {
max = circuit[i].Count;
}
}
return max;
}
}
public void GetNextErrorNode() {
if (curErrorNode == null)
{//first
curErrorNode = circuit[1][0];
curErrorNode.Error = true;
curErrorNode.ErrorOut = false;
return;
146
}
if (curErrorNode == circuit[circuit.Count - 1][circuit[circuit.Count - 1].Count - 1])
{//last
if (curErrorNode.ErrorOut)
{
curErrorNode.Error = false;
curErrorNode = null;
}
else
{
curErrorNode.ErrorOut = true;
}
return;
}
else
{
if (!curErrorNode.ErrorOut)
curErrorNode.ErrorOut = true;

else {
curErrorNode.Error = false;
curErrorNode = GetNextNode(curErrorNode);
curErrorNode.Error = true;
curErrorNode.ErrorOut = false;
}
}
}
private AbstractNode GetNextNode(AbstractNode current)
{
if (current == circuit[circuit.Count - 1][circuit[circuit.Count - 1].Count - 1])
return null;

if (current.Position == circuit[current.Level].Count - 1) {
return circuit[current.Level + 1][0];
}
return circuit[current.Level][current.Position + 1];
}
private void CalculateNodeNumber()
{
int cur = 1;

nodeNumber = new int[circuit.Count][];


for (int i = 0; i < circuit.Count; i++)
{
nodeNumber[i] = new int[circuit[i].Count];
for (int j = 0; j < circuit[i].Count; j++)
{
nodeNumber[i][j] = cur;
cur++;
}
}
totalNodes = cur - 1;
147
}
public int GetNodeNumber(int level, int position) {
return nodeNumber[level][position];
}
public int GetNodeNumber(AbstractNode node)
{
return GetNodeNumber(node.Level,node.Position);
}
public int TotalNodes
{
get { return totalNodes; }
}
}
}
148

Приложение 5
Страница электронной почты отчетов по выполнению
контрольных мероприятий
149

Приложение 5 содержит страницу электронной почты, содержащую


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

Вам также может понравиться