Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания к практическим работам.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
28.01 Mб
Скачать

2. Построение оптимального безусловного алгоритма поиска неисправностей

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

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

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

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

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

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

Предположим, что объект диагностирования состоит из n элементов. Тогда существует только n+1 состояний объекта: s0, s1,…, sn, из которых s0 соответствует исправному объекту, а любое другое состояние sj – неисправности j-го элемента при исправных остальных элементах. Существует также n допустимых проверок объекта π1,…, πn, где проверка πi означает диагностирование i-го элемента. Матрица допустимых проверок объекта имеет n строк и n+1 столбцов и почти диагональный вид (таб.2.1).

Таблица. 2.1.

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

s0

s1

sn-1

sn

π 1

1

0

1

1

π 2

1

1

1

1

...

π n-1

1

1

0

1

π n

1

1

1

0

Кроме этого заданы вероятности qj , пребывания объекта в состоянии sj , и времена τi, необходимые для проведения i-ой проверки. Поскольку матрица допустимых проверок содержит все возможные состояния объекта, то вероятности qj обладают свойством

Число различных последовательностей проверок равно n!, однако при сформулированной постановке задачи нет необходимости их все перебирать для отыскания оптимальной последовательности. Нет необходимости даже пользоваться матрицей допустимых тестов.

Рассмотрим алгоритм П1, осуществляющий последовательность проверок [π 1, π 2, π 3,…, π n]. Время t диагностирования равно сумме времен τi тех проверок из этой последовательности, которые придется произвести. Следовательно, t зависит от состояния sj объекта и может принимать n различных значений. Если объект находится в состоянии s1 (неисправен первый элемент), то первая же проверка π 1 это выяснит, и на диагностирование будет потрачено время τ1. Если объект находится в состоянии s2 (неисправен второй элемент), то это выяснит только вторая проверка π 2, поэтому на диагностирование будет потрачено время τ1 + τ2, и так далее. Наконец, если объект находится в состояниях sn или s0, то для выяснения этого потребуются все проверки, то есть на диагностирование будет потрачено время τ1 + τ2 + ... τn. Таким образом, величина t принимает значения t1 = τ1, t2 = τ1 + τ2,…, tn = τ1 + τ2 + ...+ τn с вероятностями q1, q2,…, qn + q0 соответственно. Следовательно, среднее время диагностирования по алгоритму П1 равно:

Рассмотрим другой алгоритм диагностирования П2, осуществляющий последовательность проверок [π 2, π 1, π 3,…, π n]. Если объект находится в состоянии s1 (неисправен первый элемент), то на диагностирование по алгоритму П2 будет потрачено время t1 = τ1 + τ2. Если объект находится в состоянии s2, то на диагностирование будет потрачено время t2 = τ2. Остальные значения t3, t4, …, tn останутся такими же, как у алгоритма П1. Следовательно, среднее время диагностирования по алгоритму П2 равно:

Разность найденных математических ожиданий равна:

Алгоритм П1 будет лучше алгоритма П2, если эта разность отрицательна, то есть выполняется условие

Рассмотрим алгоритм диагностирования П3, осуществляющий последовательность проверок [π 1, π 3, π 2, π 4,…, π n], отличающийся от алгоритма П1 только последовательностью проверок π 2 и π 3. Повторяя рассуждения приходим к выводу, что алгоритм П1 будет лучше алгоритма П3, если выполняется условие

Теперь очевидно, что алгоритм П1 будет оптимальным, то есть при его использовании среднее время диагностирования объекта будет наименьшим, если соблюдается условие:

(2.1)

Условие (2.1) говорит о том, что диагностирование объекта будет производиться по оптимальному алгоритму, если проверки элементов упорядочить в соответствии с этим условием.

Если заранее известно, что объект неисправен, то есть неисправен один (но только один) элемент объекта, то состояние s0 становится невозможным, а его вероятность q0 станет равной нулю. Остальные qj увеличатся, так как их сумма по-прежнему будет равна единице. Оптимальный алгоритм остается практически тем же. Изменения коснутся только последнего элемента: если первые n – 1 элемента оказались исправными, то последний элемент можно не проверять, так как он заведомо должен быть неисправен. Это уменьшает среднее время диагностирования объекта на