OberonCore https://forum.oberoncore.ru/ |
|
Автокатализ усложнения https://forum.oberoncore.ru/viewtopic.php?f=57&t=1434 |
Страница 1 из 1 |
Автор: | Сергей Губанов [ Среда, 01 Апрель, 2009 10:55 ] |
Заголовок сообщения: | Автокатализ усложнения |
Связано с программированием сложных систем, читать медленно. Эволюционный прогресс Александр Владимирович Марков, доктор биологических наук, старший научный сотрудник Палеонтологического института РАН «Экология и жизнь» №2, 2009 http://elementy.ru/lib/430776 Цитата: ...палеонтологическая летопись свидетельствует: чем сложнее организм, тем выше вероятность того, что какие-то из его потомков могут стать еще более сложными. Иными словами, наблюдается нечто вроде самоускорения (автокатализа) в эволюционном прогрессе. Цитата: ...Справиться с этим побочным эффектом усложнения часто бывает возможно лишь путем дальнейшего усложнения (например, к «забарахлившей» регуляторной связи добавляется новая регуляторная связь, регулирующая прежнюю). Таким образом, и при таком подходе процесс усложнения оказывается автокаталитическим и идет с ускорением. Цитата: ...прогрессивные эволюционные преобразования — вовсе не результат перебора всех возможных вариантов. Обычно во всех преобразованиях в живых системах используется блочный, или модульный, принцип сборки. Цитата: Если у него появятся еще две пары таких же ног, это нельзя считать усложнением строения организма — никакой новой регуляторной связи не появилось. Все просто свелось к некоторой новой «редакции» определения старого оператора условного перехода. Оператор типа «формировать ноги, пока их не станет 10 пар», заменился оператором «формировать ноги, пока их не станет 12 пар». Но вот если первая пара ног у этого организма стала отличаться от остальных, скажем, наличием дополнительного коготка, то это уже прогресс, поскольку это значит, что в программе онтогенеза появился новый оператор условного перехода типа «если я — зачаток ноги первой пары, то следует формировать дополнительный коготок». В программировании тоже самое. Стоит где-то что-то (в программе) усложнить, так потом придётся усложнить ещё больше, а потом ещё, ещё и ещё -- автокатализ усложнения...
|
Автор: | Валерий Лаптев [ Среда, 01 Апрель, 2009 12:49 ] |
Заголовок сообщения: | Re: Автокатализ усложнения |
Сергей Губанов писал(а): В программировании тоже самое. Стоит где-то что-то (в программе) усложнить, так потом придётся усложнить ещё больше, а потом ещё, ещё и ещё -- автокатализ усложнения... Именно об этом писал Мартин Фаулер в книге Рефакторинг. Со временем программная система переходит в состояние превышения порога сложности. Если не заботиться о ее развитии. Что и делается типовыми приемами рефакторинга: упрощение системы без изменения функциональности. |
Автор: | Info21 [ Пятница, 03 Апрель, 2009 10:00 ] |
Заголовок сообщения: | Re: Автокатализ усложнения |
Темка богатая. Надо переместить в раздел "Психология...", который для точности переименовать в "Мета-проблемы сферы ИТ (психология, социология...)". Что эволюция инженерных систем подчиняется неким общим законам эволюции -- люди понимают, например: Г.Зайниев. Эволюция и изобретатель. М. 2007. (Еще не прочел, но взял из-за хорошего бэкграунда автора -- выпускник физфака НГУ, но канд. биол. наук, "тризовец" с приличным академическим бэкграундом.) Быстрота лепки софта делает, конечно, всё это кратно более сюда применимым. |
Автор: | Sergo [ Пятница, 03 Апрель, 2009 16:18 ] |
Заголовок сообщения: | Re: Автокатализ усложнения |
Сергей Губанов писал(а): ..... В программировании тоже самое. Стоит где-то что-то (в программе) усложнить, так потом придётся усложнить ещё больше, а потом ещё, ещё и ещё -- автокатализ усложнения... Это происходит не всегда. Скажем, если сохранять интерфейсы модулей неизменными, то при любых изменениях рост сложности будет ограничен пределами модуля. А неконтролируемый рост сложности ПО вызван, скорее всего, социальными причинами. Тут можно провести аналогию с некоторыми застойными культурами. Скажем, китайская культура в том виде, в котором она сложилась к концу первого тысячелетия н.э., отличалась крайней сложностью и одновременно – бесплодностью, она работала как бы “вхолостую”. Причем ее сложность и бесплодность явно связаны. К примеру, изучение сложной китайской письменности поглощало время, которое можно было бы потратить более рационально. Таким образом, возможен “злокачественный рост” сложности, ведущий к утрате всякой способности к прогрессу. Чтобы этого избежать, элементы культуры должны быть относительно простыми, но эффективными. Как, например, эффективно фонетическое письмо по сравнению с иероглифическим, арабские цифры по сравнению с римскими, Десять Заповедей по сравнению с американским законодательством:). Что касается причин - то, по-видимому, неконтролируемый рост сложности происходит, если она не служит никакой внешней по отношению к системе цели, а порождается внутренними причинами. В случае языков программирования – это стремление программистов к гибкости, богатству средств, универсальности, “изяществу” записи и.т.п. При этом – и это очень характерно для “айтишников” – средства (языки, ОС) становятся целями. Например, в 90-х было очень популярно “шареварение”. При этом большинство “шареварщиков” терпели поражение, потому что не могли предложить пользователем никаких решений ИХ проблем – все их мысли неизменно крутились вокруг “средств производства” – библиотек, сред, программистских утилиток и.т.п.; ничто другое их просто не интересовало. То есть достаточно не забывать, что компьютер – лишь средство для достижения целей, лежащих за пределами системного блока:) Те же китайцы, как только столкнулись с сильным ВНЕШНИМ противником, сразу перестали заниматься ерундой:) |
Автор: | Valery Solovey [ Пятница, 03 Апрель, 2009 22:03 ] |
Заголовок сообщения: | Re: Автокатализ усложнения |
Представленную цитату можно превратно понять. Поначалу я и сам тоже хотел сказать что-нибудь в опровержение, но взял себя в руки, прочёл статью : ) и понял, что понятие сложности автор статьи применил не в том смысле, в каком его поняли Вы. Есть разные способы уложнения. Одно дело усложнять "линейно" (насколько я понял, это то, про что пишите Вы) и совсем другое дело - усложнять добавлением уровней. Если осторожно пользоваться вторым подходом, то можно избежать проблем резкого увеличения объёма единственного "линейного" уровня, проблемы управления, проблемы синхронизации. Возможно, ещё какую проблему забыл... В обоих случаях имеем один и тот же качественный процесс - усложнение. Но количественно он уже отличается. Правда, Алексей Донской сейчас может возразить, что последнее утверждение зависит от критериев, но это уже другой вопрос. Пример: есть генератор отчётов. Он формирует по одному отчёту для каждого "запроса". Требуется по специальному запросу формировать группу довольно однородных отчётов. Усложнения не избежать, поскольку изначально этого не предусматривалось. Если усложнить генератор добавлением параллельной веткой, обрабатывающей только этот специальный запрос, то усложнение будет "линейным", а если добавить новый уровень, который в цикле формирует отчёты, то заданием числа итераций можно управлять всем этим чудом. : ) |
Автор: | Alexey_Donskoy [ Пятница, 03 Апрель, 2009 22:29 ] |
Заголовок сообщения: | Re: Автокатализ усложнения |
Да что там, всё справедливо! Правда, я так думаю, что как раз количественно оба подхода сравнимы, а именно качество (структура) разная. Следствия иерархического подхода: - сохранение управляемости (об этом уже сказано); - определённый количественный эффект (аналог архивации, упаковка метаинформации). Опять же при желании можно провести параллель с умотипами. Первый подход характерен для первого, второй - для второго. |
Автор: | Sergo [ Пятница, 03 Апрель, 2009 23:50 ] |
Заголовок сообщения: | Re: Автокатализ усложнения |
Valery Solovey писал(а): Есть разные способы уложнения. Одно дело усложнять "линейно" (насколько я понял, это то, про что пишите Вы) и совсем другое дело - усложнять добавлением уровней. Я имел в виду "паразитную сложность", свойственную многим явлениям культуры: от сложности обрядов до сложности ПО. "Паразитная" она потому, что не несет полезных функций. А структуру она может иметь самую разную - и многоуровневую в том числе (например, бюрократические иерархии). Alexey_Donskoy писал(а): ...аналог архивации, упаковка метаинформации. Ну а поскольку "упаковка метаинформации" требует дополнительных усилий, тем больших, чем сложнее система, то, пока позволяют ресурсы - идет "линейный" рост сложности. Тем более что "неупакованная" система тоже худо-бедно работает. |
Автор: | Info21 [ Пятница, 03 Апрель, 2009 23:54 ] |
Заголовок сообщения: | Re: Автокатализ усложнения |
Alexey_Donskoy писал(а): Опять же при желании можно провести параллель с умотипами. Если я правильно понял о чем речь, то параллель правильная.
Первый подход характерен для первого, второй - для второго. |
Автор: | Alexey_Donskoy [ Суббота, 04 Апрель, 2009 19:28 ] |
Заголовок сообщения: | Re: Автокатализ усложнения |
Sergo писал(а): Я имел в виду "паразитную сложность", свойственную многим явлениям культуры: от сложности обрядов до сложности ПО. "Паразитная" она потому, что не несет полезных функций. А структуру она может иметь самую разную - и многоуровневую в том числе (например, бюрократические иерархии). Алгебраическое уравнение, с точки зрения человека, знакомого только с начальной арифметикой, выглядит как "паразитная сложность". Однако позволяет решить целый класс задач гораздо более эффективно и с меньшими затратами.Более того, оно позволяет решить и такие задачи, которые раньше даже поставить было невозможно ![]() Ну, Вы поняли, к чему я веду ![]() Но есть и действительно паразитная сложность, которая проистекает из непонимания сути и нагромождения "комбинаторных решений". Беда в том, чтобы рассудить, какого рода перед нами сложность, необходимо преодолеть определённый порог вхождения, о котором тут уже много говорили по разным поводам... Sergo писал(а): Ну а поскольку "упаковка метаинформации" требует дополнительных усилий, тем больших, чем сложнее система, то, пока позволяют ресурсы - идет "линейный" рост сложности. Тем более что "неупакованная" система тоже худо-бедно работает. Ну, линейный рост сложности от экспоненциального всё ж-таки отличается, не так ли?И сложность порога вхождения многократно окупится! Хотя психологический тормоз силён, но преодолим - надо только заставить себя поверить в это! Вот, кстати, к info21 - думаю, что любой человек способен применять стиль мышления второго умотипа. Научение в детстве, видимо, даётся легко, также как, скажем, научение плавать или ездить на велосипеде... Потом тормоз раз и навсегда будет снят, останется только лень ![]() А взрослому труднее... |
Автор: | Info21 [ Суббота, 04 Апрель, 2009 23:08 ] |
Заголовок сообщения: | Re: Автокатализ усложнения |
Sergo писал(а): ... Я имел в виду "паразитную сложность", свойственную многим явлениям культуры ... Хорошего словца пока не было для этого понятия. Были "мусорные знания" -- как раз знания о "паразитной сложности".
|
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |