Глава 1. Саморазрушающиеся информационные структуры
Жизнь не терпит пустоты, не терпит смерти и при возможности заполняет собой все щели.
Гигантскими тиражами расходятся биологические особи по горизонталям жизни и, видоизменяясь, поднимаются по вертикали.Все сказанное относится и к человеку. Перестав карабкаться вверх и падать вниз, человечество заполняет собой даже те территории, где не смогли выжить все остальные представители земной фауны. Заполняет и скорбит об истощении земных недр.
Человек привык к избыточности природы и дефициту пищи. Страдая от взаимно противоречивых факторов, он жалуется и на дефицит и на избыточность, пытаясь по возможности устранить ее, убивая тараканов, мух, комаров и всех прочих, стремящихся быть рядом и надоедающих Человеку, который с большой буквы. Более того появляются нации, считающие себя избыточными и пытающиеся с этим бороться.
Принято считать, что избыточность на одной из горизонтальных плоскостей это почти гарантированное попадание (путем эволюции) на более высокий (вот только по сравнению с чем или кем?) уровень горизонта.
Обо всем этом было напомнено уважаемому читателю исключительно для того, чтобы представить на его суд иное понимание термина “избыточность”. А именно то понимание, которое является естественным для любого программиста, создающего свои труды на компьютерных языках.
Зададимся вопросом: «Что могут значить для разработчика программного комплекса такие понятия, как “избыточность кода микропроцессора”, “избыточность памяти”, “избыточность функциональных возможностей СУБД” и даже — “избыточность языка программирования?» Если этот вопрос задать программисту, то он скорее всего ответит так: «Избыточность функциональных возможностей позволяет решать поставленные задачи гораздо быстрее! Быстрее по той причине, что не надо придумывать приемлемый алгоритм, так как годится любой из определенного множества равносильных алгоритмов — была бы соответствующая память и производительность у ЭВМ. Быстрее еще и потому, что всегда существует несколько альтернативных вариантов, а найти хотя бы один способ из нескольких всегда проще, чем искать нечто уникальное, оптимальное или неповторимое и незнакомое».
Избыточное сообщение, передаваемое по шумящему каналу связи между двумя информационными системами, восстанавливается всегда быстрее, чем любое другое. И здесь информационная избыточность призвана экономить время.
Если у мастера избыток материала, то его мысль свободна и раскованна. Он берет и лепит или долбит, просто отбрасывая все ненужное, а значит лишнее.
Точно также обстоят дела при решении производственных и социальных задач.
Когда целые города населены физиками — любые физические задачи решаются мгновенно.
Когда города заселены бандитами и ворами — любые задачи по разграблению решаются мгновенно, намного быстрее, чем если бы там жили физики.
Таким образом, если требуется эффективно решать определенный класс задач, необходимо создание среды с соответствующей этому классу избыточностью. А уже затем, решая поставленные задачи, просто отбрасывать эту избыточность, точно так же, как делает скульптор, высекая из глыбы мрамора крохотную статуэтку.
В общем, человек обычно так и поступает, когда хочется все иметь сегодня и прямо сейчас.
В свете сказанного возникает резонный вопрос: «А почему нельзя попробовать технически реализовать подобную модель производства? Допустим, что есть связанные друг с другом дешевые элементы, каждый из которых что-то может делать самостоятельно, а надо в этой сети найти и оставить то, что решает конкретную задачу, выбросив все остальное.»
Ответом на поставленный вопрос, наверное, может стать конкретный алгоритм по “вырезанию”. Именно о нем и пойдет речь в дальнейшем.