Анализ типовых ошибок, совершаемых при выборе логических функций

 Анализ типовых ошибок, совершаемых при выборе логических функций"

Фальков Д.С., Мисюченко И.Л. ЦИТК «Алгоритм» г. Санкт-Петербург

 

Аннотация.

Рассмотрены особенности  применения логических операторов «И» и «ИЛИ» при построении причинно-следственных цепочек недостатков (СЕСА - Cause-Effect Chain Analysis). Выявлены типовые ошибки в использовании логических операторов, даны рекомендации по их корректному применению.

 

В статье рассмотрены следующие типовые ошибки

1.Отсутствие четкого понимания механизма перехода от цепочки недостатков к цепочке условий их устранения

2.Выбор логической функции на неполном наборе данных

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

 

1.Отсутствие четкого понимания механизма перехода от цепочки недостатков к цепочке условий их устранения

 

Данный тип ошибок при анализе причинно-следственных цепочек недостатков (далее - цепочек недостатков) возникает вследствие недостаточного понимания свойств логических операторов и преобразований, происходящих при переходе от модели с некоторыми переменными к модели с их отрицанием.

Например, иногда встречаются следующие рассуждения:

  1. «Так как, для устранения недостатка (Х) надо устранить все недостатки-причины (и Х1 и Х2), то эти недостатки связаны по «И»», и наоборот:
  2. «Так как, для устранения недостатка (Х) достаточно устранить хотя бы один любой недостаток-причину (Х1 или Х2), то эти недостатки связаны по «ИЛИ»»

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

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

Пусть каждый недостаток в цепочке выражается некоторой переменной (Х, Хi), при этом:

Х=1 при наличии недостатка, Х=0 в случае отсутствия (устранения) недостатка. 

Кроме того, введем операцию отрицания (¬), связывающие состояния «недостаток есть» и «недостаток устранен» следующим образом (см. табл.):

 

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

С учетом введенных обозначений утверждение 1 можно записать в виде следующего выражения:

¬Х = ¬Х1 И ¬Х2       (1)

Учитывая, что по закону Де Моргана [1, 2]

¬Х1 И ¬Х2 = ¬(Х1 ИЛИ Х2), получаем выражение        

¬Х = ¬(Х1 ИЛИ Х2),

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

Х = Х1 ИЛИ Х2        (2)

 

Полученное выражение показывает, что на самом деле недостатки-причины Х1 и Х2 связаны по «ИЛИ», что противоречит утверждению 1.  Причина выявленного несоответствия заключается в том, что в данном утверждении смешаны две разных модели –

первая часть утверждения «Так как, для устранения недостатка (Х) надо устранить все недостатки-причины (и Х1 и Х2)...» описывает модель условий устранения недостатков и соответствует формуле (1),

тогда как вторая часть (неверный вывод) относится к модели (цепочке) недостатков.

 

В том, что первая часть утверждения 1 соответствует выведенной формуле (2) можно дополнительно убедиться посмотрев на таблицу истинности, соответствующую формуле (2).

 

Учитывая, что Хi=0 означает отсутствие недостатка, приходим к тому же выводу о том, что для устранения недостатка Х необходимо устранить оба недостатка-причины и Х1=0 и Х2=0.

 

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

 

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

Рис 1

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

 

2.Выбор логической функции на неполном наборе данных

Рассмотрим пример.

Пусть анализируемая ТС (техническая система) – электробритва. Целевой недостаток – низкое качество бритья. 

Пусть анализ системы показал одновременное наличие в системе 2-х недостатков: «ножи недостаточно острые» и «волосы поднимаются плохо». *

На основании этих данных делается вывод о том, что в данном случае недостатки связаны логическим оператором «И».

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

Рис 2

Как видно из приведенной таблицы истинности в рассмотренном примере решение о выборе оператора «И» принято на основании реализации в конкретном ТС, в конкретных условиях одной строки (одной комбинации значений входных переменных) из 4-х возможных. При этом, заметим,  что данная строка справедлива  как для оператора «И», так и для оператора «ИЛИ».

Замечание! Одновременная реализация в технической системе 2-х и более недостатков не является достаточным основанием для выбора логического оператора «И».  Для корректного выбора типа логического оператора необходимо рассмотреть, как реализуется целевой недостаток при всех возможных комбинациях недостатков-причин.

 

Обратим внимание, что при принятии решения о выборе типа логического оператора учитываются не только представление аналитика о ТС, но и ограничения данного конкретного проекта. Например, в рассмотренном примере с бритвой можно показать, что в зависимости от требований к качеству бритья может быть выбран как логический оператор «И» (требуется более высокое качество), так и оператор «ИЛИ» (низкие требования к качеству).

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

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

 

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

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

 

Например, «Кинетическая энергия удара» зависит от «Массы бойка» и «Скорости бойка».

Рис 3

При этом, исходя из факта одновременной зависимости недостатка от нескольких переменных принимается решение о выборе логического оператора «И».

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

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

 

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

Литература

 

1.Григорьев Б.В. Классическая логика - М.:1996.

2. Владимиров Д. А. Булевы алгебры - М.: Наука, 1969

Алфавитный указатель: 

Рубрики: 

Комментарии

Re: Анализ типовых ошибок, совершаемых при выборе логических ...

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

Простейшая (и, как мне представляется, вполне работоспособная) реализация: после того, как пользователь введет формулировки целевого недостатка (например: низкое качество АБВГД) и предполагаемых причин (например: 1=недостаточная скорость ХХХ, 2=недостаточное время УУУ) и поставит галочку в бокс логического оператора "И" или "ИЛИ", программа сама заполняет таблицу соответствия и выдает решателю уже готовые предложения, например:

  • Если ЕСТЬ "недостаточная скорость ХХХ" и НЕТ "недостаточное время УУУ", то НЕ ВОЗНИКАЕТ "низкое качество АБВГД"
  • Если НЕТ "недостаточная скорость ХХХ" и ЕСТЬ "недостаточное время УУУ", то НЕ ВОЗНИКАЕТ "низкое качество АБВГД"
  • Если ЕСТЬ "недостаточная скорость ХХХ" и ЕСТЬ "недостаточное время УУУ", то ВОЗНИКАЕТ "низкое качество АБВГД"

Можно "возникает" и "не возникает" подсветить разными цветами, так же как "есть" и "нет".

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

И не нужно будет писать умных статей об ошибках неопытных решателей...

Re: Анализ типовых ошибок, совершаемых при выборе логических ...

priven wrote:
Казалось бы, все эти проблемы элементарно решаются с помощью очень несложного софта. Зачем заставлять решателя мучиться с булевой логикой? Метод (то бишь, компьютер) вроде как должен всю эту рутинную работу брать на себя.

...

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

И не нужно будет писать умных статей об ошибках неопытных решателей...

Александр Ильич, а можно попросить Вас не корить других за то, что они не сделали чего-то, что не сделали и Вы тоже?

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

Re: Анализ типовых ошибок, совершаемых при выборе логических ...

Александр Кудрявцев wrote:
Александр Ильич, а можно попросить Вас не корить других за то, что они не сделали чего-то, что не сделали и Вы тоже?

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

Александр Владимирович, а можно вопрос: что именно, на Ваш взгляд, в моем комментарии "нескерьезно" и/или "не по существу"?

То, чтоТАКИЕ ошибки, о которых написано в статье, ВООБЩЕ НЕ ДОЛЖНЫ ВОЗНИКАТЬ при использовании программных средств, - это "не по существу" или "несерьезно"?

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

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

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

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

 

P.P.S. Если предыдущее написано не очень понятно, просто скажите, что неопытному решателю будет проще сделать из нижеследующего.

Условие задачи: недостаток ААА вызван причинами ВВВ и ССС.

Вариант 1. Выберите один из двух ответов:

  1. Недостаток ААА вызван ВВВ И ССС
  2. Недостаток ААА вызван ВВВ ИЛИ ССС

Вариант 2: Выберите один из двух ответов:

(1)

  • Если ЕСТЬ ВВВ и НЕТ ССС, то ВОЗНИКАЕТ ААА
  • Если НЕТ ВВВ и ЕСТЬ ССС, то ВОЗНИКАЕТ ААА
  • Если Есть ВВВ и ЕСТЬ ССС, то ВОЗНИКАЕТ ААА

(2)

  • Если ЕСТЬ ВВВ и НЕТ ССС, то НЕ ВОЗНИКАЕТ ААА
  • Если НЕТ ВВВ и ЕСТЬ ССС, то НЕ ВОЗНИКАЕТ ААА
  • Если ЕСТЬ ВВВ и ЕСТЬ ССС, то ВОЗНИКАЕТ ААА

(программа подставит вмасто ААА, ВВВ и ССС формулировки пользователя, и в зависимости то того, выберет пользователь ответ (1) или (2), сама вставит нужный логический оператор)

Как лично Вам было бы удобнее? И могут ли возникнуть в варианте (2) ошибки, описанные в статье?..А главное - зачем мучить решателя булевой логикой, если можно всё объяснить "на пальцах", применительно к (каждой) конкретной задаче?..

Re: Анализ типовых ошибок, совершаемых при выборе логических ...

priven wrote:
Александр Владимирович, а можно вопрос: ...
Александр Ильич, нельзя вопрос. Просто постарайтесь по возможности принять к сведению мою просьбу. 

Re: Анализ типовых ошибок, совершаемых при выборе логических ...

Александр Кудрявцев wrote:

priven wrote:
Александр Владимирович, а можно вопрос: ...
Александр Ильич, нельзя вопрос. Просто постарайтесь по возможности принять к сведению мою просьбу. 

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

Re: Анализ типовых ошибок, совершаемых при выборе логических ...

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

Вот видите - там где появляются эмоции, уже не до булевой алгебры.

Re: Анализ типовых ошибок, совершаемых при выборе логических ...

Александр Кудрявцев wrote:

Вот видите - там где появляются эмоции, уже не до булевой алгебры.

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

Subscribe to Comments for "Анализ типовых ошибок, совершаемых при выборе логических функций"