?

Log in

No account? Create an account

Previous Entry Share Next Entry
О классификации
nepejvoda_n_n
Одним из предрассудков логики (и не только ее) является требование, чтобы классификация была полной и однозначной, чтобы ничто нельзя было отнести к нескольким классам сразу. и чтобы любая ситуация, любое понятие были отнесены к некоторому классу.

Этот предрассудок был перенесен в языки программирования в виде условного оператора if then else. Первым обратил внимание на неприятности, причиняемые таким требованием, Э. Дейкстра. Он предложил недетерминированный условный оператор как множество охраняемых команд, включающий условие и действие, которое может быть выполнено при наступлении данного условия. Если выполнено сразу несколько условий, то можно выполнить любое из охраняемых ими действий, но лишь одно. Это позволяет избавиться от невидимых, и по такой причине особенно коварных подпорок. Ведь очень часто в программе нам все равно, какое из нескольких возможных действий выполнить, лишь бы результат обладал нужными свойствами (программа - не функция, а отношение). А при изменении условий и переделке программы дейкстровские конструкции (даже как комментарии) оказываются намного выигрышнее: сразу ясно, где по сути был выбор именно данного действия, а где на само деле было все равно, а вот теперь стало не все равно.

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

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

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

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

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

  • 1

Re: и ещё определения тоже

Согласен!

"Чтобы ничто нельзя было отнести к нескольким классам сразу. и чтобы любая ситуация, любое понятие были отнесены к некоторому классу."

В McKinsey этот принцип был возведен чуть ли не в ранг религии. Там его называют MECE (ВИСИ - взаимно исключающие, совместно исчерпывающие).

  • 1