Бритва Оккама

Классическая формулировка

"Не изобретать сущностей сверх необходимого."

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

Возьмем, к примеру, свойство рычага.

Чем длиннее плечо рычага, тем меньшее усилие требуется к нему приложить.

Мы коротко сформулировали общеизвестное свойство. А теперь сформулируем его иначе.

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

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

Бритва Оккама - хорошее психологическое средство, помогающее унять безудержное словоблудие некоторых не в меру говорливых людей. Обычная (и естественная) защитная реакция: сказать, что Бритва Оккама в данном случае неприменима. Что ж, тогда мы сейчас докажем ее, чтобы было понятно, когда она применима, а когда нет.

Доказательство

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

Исходное утверждение - простое повторение (тавтология); считаем его за аксиому:

"Нужно столько, сколько нужно"          A = A

Здесь буквой A обозначено количество чего-то, что нам "нужно".

Две части равенства одинаковы по смыслу, но разные по написанию. Обозначим их как A и B для большей наглядности, помня, что A = B (равны, но тоже по-разному написаны).

"Нужно столько, сколько нужно"          A = B

Теперь сделаем два раза отрицание утверждения:

"Не не нужно столько, сколько нужно"          ~(~(A = B))

не (A равно B) - все равно, что A не равно B:

"Не нужно не столько, сколько нужно"          ~(A ≠ B)

Теперь рассмотрим утверждение неравенства: оно означает, что A меньше или больше B:

"Не нужно больше или меньше, чем нужно"          ~(A > B A < B )

Раскорем скобки по правилу Де Моргана (булева алгебра):

"Не нужно больше, чем нужно и не нужно меньше, чем нужно"         ~(A > B) & ~(A < B)

Утверждение X & Y, то каждое из утверждений X и Y тоже верно. В нашем случае X = ~(A > B), а Y = ~(A < B). Оставим пока в стороне случай Y (мы его рассмотрим позднее). Тем самым мы будем рассматривать только одну из возможных ситуаций, как говорится "частный случай".

"Не нужно больше, чем нужно"          ~(A > B)

До сих пор мы рассматривали количество чего-то неопределенного. Это могли быть деньги, слова или мамонты. Например понятно, что для покупки арбуза не нужно денег больше, чем нужно денег для покупки арбуза. В утверждении есть место, куда можно вставить любое слово, которое можно сравнивать на больше или меньше. Это место отметим символом *:

"Не нужно * больше, чем нужно *"          ~(A > B)

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

"Не нужно * сверх того, сколько нужно *"          ~(A > B)

Звучит чуть более напыщенно, но по смыслу то же самое. Теперь применим обычный прием естественного языка: уберем вторую звездочку (когда слово повторяется его обычно опускают):

"Не нужно * сверх того, сколько нужно"          ~(A > B)

Теперь заменим "нужно" на "необходимо":

"Не нужно * сверх того, сколько необходимо"          ~(A > B)

Теперь заменим одну форму слова на другую, не меняя смысл:

"Не нужно * сверх необходимого"          ~(A > B)

Осталось подставить вместо * слова "изобретать сущностей". Это можно сделать, когда количество сущностей можно сравнить (как в примере выше).

"Не нужно изобретать сущностей сверх необходимого"          ~(A > B)

Если теперь заменить констатацию факта "Не нужно изобретать" на лозунг "не изобретать", то мы прийдем к утверждению Оккама. Что и требовалось доказать.

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

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

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

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

Еще одно условие: не всегда можно сравнить два варианта точно, как в математике. Например, можно сформулировать правило рычага чуть по-другому, чуть-чуть короче. Что ж - разумно не тратить на упрощение времени сверх необходимого. Заметили, как последняя фраза похожа на Бритву Оккама? Об этом - читайте дальше!

Еще несколько "бритв"

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

Если рассмотреть случай "меньше", то, выполнив все рассуждения точно по аналогии, получим брата-близнеца Бритвы Оккама:

"Не изобретать сущностей меньше необходимого."

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

Далее, если вместо * подставлять разные другие слова и выражения, то получим множество других "бритвоподобных правил". Не нужно тратить денег больше, необходимого. Не нужно спать меньше, чем необходимо. И так далее. Можно даже заменить слово "нужно" на что-то другое и получить правила вроде: неохота спать больше, чем хочется.

И последнее. В условиях, когда нельзя точно сравнить два варианта, небольшое (но именно небольшое!) нарушение Бритвы Оккама неизбежно. То ли мы потратим чуть-чуть больше ресурсов "про запас" (больше, чем необходимо), то ли пожертвуем чем-то несущественным (меньше, чем необходимо). Относитесь к этому так же спокойно, как к тому, что в магазине вам не взвешивают арбузы с точностью до миллиграмма.