Thursday, 11 December 2014

Шаблоны проектирования ПО в свете распознавания паттернов дизайна

Насколько я имел возможность выяснить, распознавание паттернов дизайна (т.н. Intelligent Design) преподносится с двух значительно различающихся точек зрения. Согласно первому взгляду, при определенных условиях по данному паттерну можно абдуктивно предположить (с определенной вероятностью) его искусственное происхождение. Второй подход основан на рассмотрении дихотомии порядок vs. организация.

Может быть, читателям это уже известно, но я вдруг подумал, что примером применения принципов ID в технологии может служить известная практика использования стандартных шаблонов проектирования при разработке программного обеспечения. Готовые шаблоны используются с целью повышения эффективности разработки кода, его читабельности, структурированности, а также обеспечения легкости поддержки на всех этапах его жизненного цикла. Этот пример настолько яркий, на мой взгляд, что я как-то не мог пройти мимо него.

Тем не менее, я все же думаю, что распознавание паттернов само по себе абдуктивное и поэтому очень слабое. Рассуждения, основанные на анализе колмогоровской сложности паттернов могут равным образом относиться и к случайно сгенерированным/хаотическим паттернам. С точки зрения сжимаемости, лингвистически осмысленные паттерны могут выглядеть более сложными (то есть более "случайными", менее сжимаемыми), чем паттерны, сгенерированные псевдослучайным образом, а может быть и наоборот. Не здесь лежит различие между осмысленностью неких конфигураций и лишенностью смысла. Это постоянно вылезает в качестве критики в беседах с сильными оппонентами ID. Эти замечания вполне справедливы. Единственным ответом на критику такого рода является рассмотрение функциональности как таковой. А для этого необходимо ввести в рассмотрение категории семантики и прагматики знаковых систем, то есть подняться в рассуждениях на уровень выше физического (вспомним стэк протоколов TCP/IP - тут то же самое!).

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

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

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

Код - архетипический пример организации. Код определяет последовательность принятия воспринимающей и интерпретирующей его системой решений по достижению заданных прагматических целей (например, операционной системой ПК, системой биологического синтеза белка или нервной системой живого организма). Решения, принимаемые системой по схеме "ЕСЛИ-ТО-ИНАЧЕ", свидетельствуют об отсутствии физически детерминированных причинно-следственных связей, или о том, что называется в англоязычной литературе по этому предмету контингентностью, то есть нестестенностью физическими законами природы. Как такое может быть и что я имею в виду?

Система не стеснена физическими ограничениями в некотором важном аспекте тогда, когда имеется более одного возможного физически безразличного состояния. В этом случае физически система вполне может принять любое из состояний, соответствующих альтернативным решениям в точке выбора. Поэтому об этих состояниях и говорят как о безразличных состояниях динамического равновесия. Переключатель между двумя состояниями "ДА/НЕТ" - простейший тому пример. Как в одном, так и в другом его состоянии на выключатель действуют одни и те же законы природы. В таких случаях не существует никакой физически детерминированной связки между принятием данного решения (например, переведение переключателя в состояние "ДА") и физическими условиями в момент его принятия. В физическом мире нет никаких схем "ЕСЛИ-ТО-ИНАЧЕ".

Но именно "ЕСЛИ-ТО-ИНАЧЕ" и определяет суть организации. Организация возможна только когда существует свобода выбора между физически эквивалентными безразличными состояниями динамического равновесия. Множественность этих состояний равновесия и их безразличность как раз и обеспечивают возможность наделения некоторых произвольно выбранных состояний смысловой нагрузкой. В результате, выбранные состояния и соответствующие им конфигурации (паттерны материи) семантически нагружены в контексте целостной функциональной системы. Например, цифровой замок программируется ключом, то есть определенной последовательностью цифр, открывающих его. Именно эта, а не иная последовательность не обусловлена законами природы, поскольку вместо нее могла бы быть выбрана любая другая из возможных при заданных длине ключа и алфавите.

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

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

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


Литература:
  1. David Abel, The First Gene, 2011.
  2. The difference between organization and order, uncommondescent.com.
  3. свящ.Е.Селенский, "Живые организмы как системы принятия решений", Православие.Ру.

No comments:

Post a Comment