Московский государственный университет путей сообщения
Опубликован: 06.09.2012 | Доступ: свободный | Студентов: 953 / 56 | Оценка: 5.00 / 5.00 | Длительность: 35:22:00
Специальности: Разработчик аппаратуры
Лекция 20:

Построение тестов с использованием алфавитов большой значности

< Лекция 19 || Лекция 20: 12 || Лекция 21 >

20.2. Построение тестов в шестнадцатизначном алфавите

Как уже отмечалось выше, повышение мощности алфавита позволяет в некоторых случаях снять неопределенность в схеме и тем самым ускорить генерацию теста. Это в наибольшей степени относится к алфавиту B_{16} [20.1,20.4-20.6]. Рассмотрим особенности выполнения основных этапов генерации тестов в универсальном алфавите B_{16}. Сначала, на этапе препроцессорной обработки, целесообразно, насколько это возможно, снять неопределенность, используя только структурные свойства схемы и значение местоположения неисправности, то есть, выполнить так называемую структурную импликацию. Алфавит B_{16} представляет для этого большие возможности, чем остальные алфавиты, рассмотренные выше.

Рассмотрим это на примере схемы, изображенной на рис. 20.1 для неисправности x_{6}\equiv 0. Сначала полагаем x_{6}=D. Как и в предыдущем примере, схема имеет один выход, поэтому полагаем f=D^{*}. Однако, здесь существует два пути от места неисправности до выхода схемы и заранее неизвестно, какой из них будет активизирован. Поэтому полагаем x_{9}=u, x_{10}=u. На все остальные элементы неисправность не оказывает влияния и поэтому x_{2}=x_{1}=x_{3}=x_{4}=x_{5}=x_{6}=x_{7}=x_{11}=C.

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

  1. Внести неисправность (значения D или D'), в зависимости от типа неисправности на неисправной линии).
  2. Присвоить D^{*} всем линиям схемы, которые должны изменить свое значение при наличии неисправности.
  3. Присвоить С всем линиям, значение на которых не может измениться при данной неисправности.
  4. Присвоить u всем остальным линиям.

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

Начальное присваивание выполняется безотносительно функций логических элементов. Учет свойств логических элементов в алфавите B_{16} позволяет эффективно выполнять процедуры импликации. Рассмотрим сначала прямую импликацию. Она может быть выполнена с помощью системы функций f^0, f^{D'}, f^D, f^1 [20.1,20.6], рассмотренной в "Система многозначных алфавитов и функций" . Эти функции позволяют проводить моделирование в алфавите B_{16}, к которому, собственно, и сводится прямая импликация. Кроме этого необходимо выполнить пересечение кодов значений сигналов до и после импликации. Рассмотрим элемент конъюнкции f=a\cdot b, находящийся в некоторой схеме. Пусть в результате предыдущих действий его входы и выход имеют соответствующие значения: a=C (a^{0}=1, a^{D'}=0, a^{D}=0, a^{1}=1), b=D(b^{0}=0, b^{D'}=0, b^{D}=1, b^{1}=0) и f=D^{*} (f ^{0}=0, f ^{D'}=1, f^{ D}=1, f ^{1}=0). С помощью функций f^0, f^{D'}, f^D, f^1 для вентиля И получаем новые значения f_{н}^{0}=1, f_{н}^{D'}=0, f_{н}^{D}=1, f_{н}^{1}=0. Далее, выполнив пересечение кодов старых и новых значений путем покомпонентной конъюнкции, получим f^{ 0}=f^{ 0}\cdot f_{н}^{0}=0\cdot 1=0, f^{ D'}=f ^{D'}\cdot f_{н}^{D'}=1\cdot 0=0, f^{ D}=f^{ D}\cdot f_{н}^{D}=1\cdot 1=1, f^{ 1}=f ^{1}\cdot f_{н}^{1}=0\cdot 0=0. Таким образом, в результате импликации неопределенность на выходе уменьшилась до единственной комбинации значений сигналов в исправном и неисправном ДУ. Если в результате покомпонентной конъюнкции получается символ 0 ( f^{ 0}=0, f^{ D'}=0, f^{ D}=0, f^{ 1}=0), то это говорит о противоречивой ситуации. Аналогично прямая импликация выполняется и для других элементов.

Для выполнения обратной импликации можно также построить аналог функций f^0, f^{D'}, f^D, f^1, которые позволяют проводить ее в универсальном алфавите B_{16}. Особенно эффективной обратная импликация является для двухвходовых элементов. В этом случае, считая заданными значение выхода и одного из входов, мы находим значение второго входа (пересекая, как и в предыдущем случае, код нового значения с кодом старого значения, по возможности уменьшаем неопределенность). Для основных вентилей эти функции представлены в табл. 7.7. Поскольку входы вентилей симметричны, то функции для второго входа можно получить из функций для первого входа простой заменой переменной.

Продолжим наш пример для вентиля f=a\cdot b. После прямой импликации f=D, a=С, b=D^{*}. Выполнив обратную импликацию для a с помощью функций табл. 7.7 для вентиля f=a\cdot b, получим a_{н}^{0}=0, a_{н}^{D'}=0, a_{н}^{D}=1, a_{н}^{1}=1. Далее следует, как и в случае прямой импликации, найти пересечение кодов a^{0}=a^{0}\cdot a_{н}^{0}=0\cdot 1=0, a^{D'}=a^{D'}\cdot a_{н}^{D'}=0\cdot 0=0, a^{D}=a^{D}\cdot a_{н}^{D}=1\cdot 0=0, a^{1}=a^{1}\cdot a_{н}^{1}=1\cdot 1=1. В данном случае неопределенность на входе a также уменьшилась до одной комбинации. Затем, считая значения a и f известными, следует выполнить обратную импликацию для b. Получаем b_{н}^{0}=0, b_{н}^{D'}=0, b_{н}^{D}=1, b_{н}^{1}=0. Пересекая со старыми значениями, получаем b^{0}=0, b^{D'}=0, b^{D}=1, b^{1}=0, то есть b=D. Таким образом, в результате прямой и обратной импликации на линиях вентиля установились все определенные значения. Для булевой функции многих переменных соответствующие функции могут быть получены из ее суперпозиции через булевы функции двух переменных.

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

В качестве примера рассмотрим схему рис. 20.1 с неисправностью x_{6}\equiv 0, Если мы выполним импликацию после начального присваивания, рассмотренного выше, то получим x_{1}=x_{2}=x_{3}=x_{4}=0, x_{5}=x_{7}=1, x_{6}=D, x_{9}=x_{10}= D', x_{8}=x_{11}=0 и f=D. Тo есть, в данном случае тест находится однозначно, в отличие от D-алгоритма, где необходим перебор. В общем случае, конечно, полностью поиска на дереве решений нельзя избежать и в алфавите B_{16}. Но для некоторых классов схем он существенно упрощается. Кроме этого, как отмечалось выше, этот подход удобен для интерактивных систем, где оператор, задавая для некоторых линий определенные значения, облегчает задачу поиска для компьютера.

Таким образом, повышение значности алфавита позволяет точнее описывать возможные комбинации значений сигналов в исправной и неисправной схеме, что повышает эффективность алгоритмов. Алфавит B_{16}, дает максимальное разрешение (для комбинационных ДУ). Кроме того, в этом алфавите не нужна процедура D-прохода и D-граница. Основной здесь является операция доопределения (обратная фаза). Здесь с помощью прямой импликации определяются для каждой линии схемы всевозможные комбинации значений сигналов для исправной и неисправной схемы. Таким образом, множество внешних выходов схемы, на которых может проявиться неисправность, также известны. Это те выходы, значения сигналов для которых в алфавите В_{16} содержат D или D'. Таким образом, задача, в основном, сводится к доопределению - поиску таких значений сигналов внешних входов ДУ, чтобы хотя бы на одном внешнем выходе из множества возможных комбинаций осталась только одно значение D или D'. Существенным для быстродействия является порядок линий, для которых выполняется доопределение. Теоретические и экспериментальные исследования показывают, что наиболее эффективна стратегия, при которой сначала выполняется доопределение для линий, расположенных ближе к внешним входам (в общем случае имеющих лучшую управляемость).

Ключевые термины:

Многозначный алфавит - множествосимволов, отражающих распределение сигналов в схеме.

Многозначная функция - определяется на произвольном k-значном алфавите A=\{a_{1},a_{2},...,a_{k}\} как отображение f_{i}: A^{n}\to A , где n -число аргументов функции.

Краткие итоги

В лекции рассматривается построение проверяющего теста с использованием алфавитов повышенной значности.

В "Построение тестов с использованием алфавитов большой значности" описано применение 9 и 10- значного алфавита для построения тестов. Повышение значности алфавитов в некоторых случаях позволяют сократить перебор в процессе поиска решения.

В "Построение тестов с использованием алфавитов большой значности" представлен метод построения тестов, основанный на использовании универсального 16-значного алфавита. Описана импликация в 16-значном алфавите, которая часто позволяет сократить число вариантов при переборе.

Вопросы и упражнения

  1. Какие алфавиты повышенной значности используются для построения тестов?
  2. Опишите физический смысл символов 10-значного алфавита.
  3. Что дает использование алфавитов большей значности?
  4. Приведите пример построения теста в 10-значном алфавите.
  5. Опишите физический смысл 16-значного алфавита.
  6. Что такое структурная импликация?
  7. Какие функции используются при построении теста в 16-значном алфавите?
  8. Как выполняется прямая импликация в 16-значном алфавите?
  9. Как выполняется обратная импликация в 16-значном алфавите?
  10. Приведите пример построения теста в 16-значном алфавите.
< Лекция 19 || Лекция 20: 12 || Лекция 21 >
Дмитрий Медведевских
Дмитрий Медведевских

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

Семен Дядькин
Семен Дядькин
Беларусь, Минск, БГУ, 2003