OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 18 Апрель, 2024 06:43

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Автокатализ усложнения
СообщениеДобавлено: Среда, 01 Апрель, 2009 10:55 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Связано с программированием сложных систем, читать медленно.

Эволюционный прогресс
Александр Владимирович Марков,
доктор биологических наук, старший научный сотрудник Палеонтологического института РАН
«Экология и жизнь» №2, 2009
http://elementy.ru/lib/430776
Цитата:
...палеонтологическая летопись свидетельствует: чем сложнее организм, тем выше вероятность того, что какие-то из его потомков могут стать еще более сложными. Иными словами, наблюдается нечто вроде самоускорения (автокатализа) в эволюционном прогрессе.
Цитата:
...Справиться с этим побочным эффектом усложнения часто бывает возможно лишь путем дальнейшего усложнения (например, к «забарахлившей» регуляторной связи добавляется новая регуляторная связь, регулирующая прежнюю). Таким образом, и при таком подходе процесс усложнения оказывается автокаталитическим и идет с ускорением.
Цитата:
...прогрессивные эволюционные преобразования — вовсе не результат перебора всех возможных вариантов. Обычно во всех преобразованиях в живых системах используется блочный, или модульный, принцип сборки.
Цитата:
Если у него появятся еще две пары таких же ног, это нельзя считать усложнением строения организма — никакой новой регуляторной связи не появилось. Все просто свелось к некоторой новой «редакции» определения старого оператора условного перехода. Оператор типа «формировать ноги, пока их не станет 10 пар», заменился оператором «формировать ноги, пока их не станет 12 пар». Но вот если первая пара ног у этого организма стала отличаться от остальных, скажем, наличием дополнительного коготка, то это уже прогресс, поскольку это значит, что в программе онтогенеза появился новый оператор условного перехода типа «если я — зачаток ноги первой пары, то следует формировать дополнительный коготок».
В программировании тоже самое. Стоит где-то что-то (в программе) усложнить, так потом придётся усложнить ещё больше, а потом ещё, ещё и ещё -- автокатализ усложнения...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автокатализ усложнения
СообщениеДобавлено: Среда, 01 Апрель, 2009 12:49 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Сергей Губанов писал(а):
В программировании тоже самое. Стоит где-то что-то (в программе) усложнить, так потом придётся усложнить ещё больше, а потом ещё, ещё и ещё -- автокатализ усложнения...

Именно об этом писал Мартин Фаулер в книге Рефакторинг. Со временем программная система переходит в состояние превышения порога сложности. Если не заботиться о ее развитии. Что и делается типовыми приемами рефакторинга: упрощение системы без изменения функциональности.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автокатализ усложнения
СообщениеДобавлено: Пятница, 03 Апрель, 2009 10:00 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Темка богатая. Надо переместить в раздел "Психология...", который для точности переименовать в "Мета-проблемы сферы ИТ (психология, социология...)".

Что эволюция инженерных систем подчиняется неким общим законам эволюции -- люди понимают, например: Г.Зайниев. Эволюция и изобретатель. М. 2007. (Еще не прочел, но взял из-за хорошего бэкграунда автора -- выпускник физфака НГУ, но канд. биол. наук, "тризовец" с приличным академическим бэкграундом.)

Быстрота лепки софта делает, конечно, всё это кратно более сюда применимым.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автокатализ усложнения
СообщениеДобавлено: Пятница, 03 Апрель, 2009 16:18 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Сергей Губанов писал(а):
..... В программировании тоже самое. Стоит где-то что-то (в программе) усложнить, так потом придётся усложнить ещё больше, а потом ещё, ещё и ещё -- автокатализ усложнения...


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

Тут можно провести аналогию с некоторыми застойными культурами. Скажем, китайская культура в том виде, в котором она сложилась к концу первого тысячелетия н.э., отличалась крайней сложностью и одновременно – бесплодностью, она работала как бы “вхолостую”. Причем ее сложность и бесплодность явно связаны. К примеру, изучение сложной китайской письменности поглощало время, которое можно было бы потратить более рационально.

Таким образом, возможен “злокачественный рост” сложности, ведущий к утрате всякой способности к прогрессу. Чтобы этого избежать, элементы культуры должны быть относительно простыми, но эффективными. Как, например, эффективно фонетическое письмо по сравнению с иероглифическим, арабские цифры по сравнению с римскими, Десять Заповедей по сравнению с американским законодательством:).

Что касается причин - то, по-видимому, неконтролируемый рост сложности происходит, если она не служит никакой внешней по отношению к системе цели, а порождается внутренними причинами. В случае языков программирования – это стремление программистов к гибкости, богатству средств, универсальности, “изяществу” записи и.т.п. При этом – и это очень характерно для “айтишников” – средства (языки, ОС) становятся целями. Например, в 90-х было очень популярно “шареварение”. При этом большинство “шареварщиков” терпели поражение, потому что не могли предложить пользователем никаких решений ИХ проблем – все их мысли неизменно крутились вокруг “средств производства” – библиотек, сред, программистских утилиток и.т.п.; ничто другое их просто не интересовало.

То есть достаточно не забывать, что компьютер – лишь средство для достижения целей, лежащих за пределами системного блока:)
Те же китайцы, как только столкнулись с сильным ВНЕШНИМ противником, сразу перестали заниматься ерундой:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автокатализ усложнения
СообщениеДобавлено: Пятница, 03 Апрель, 2009 22:03 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Представленную цитату можно превратно понять. Поначалу я и сам тоже хотел сказать что-нибудь в опровержение, но взял себя в руки, прочёл статью : ) и понял, что понятие сложности автор статьи применил не в том смысле, в каком его поняли Вы.

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

В обоих случаях имеем один и тот же качественный процесс - усложнение. Но количественно он уже отличается. Правда, Алексей Донской сейчас может возразить, что последнее утверждение зависит от критериев, но это уже другой вопрос.

Пример: есть генератор отчётов. Он формирует по одному отчёту для каждого "запроса". Требуется по специальному запросу формировать группу довольно однородных отчётов. Усложнения не избежать, поскольку изначально этого не предусматривалось. Если усложнить генератор добавлением параллельной веткой, обрабатывающей только этот специальный запрос, то усложнение будет "линейным", а если добавить новый уровень, который в цикле формирует отчёты, то заданием числа итераций можно управлять всем этим чудом. : )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автокатализ усложнения
СообщениеДобавлено: Пятница, 03 Апрель, 2009 22:29 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Да что там, всё справедливо!
Правда, я так думаю, что как раз количественно оба подхода сравнимы, а именно качество (структура) разная.
Следствия иерархического подхода:
- сохранение управляемости (об этом уже сказано);
- определённый количественный эффект (аналог архивации, упаковка метаинформации).

Опять же при желании можно провести параллель с умотипами.
Первый подход характерен для первого, второй - для второго.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автокатализ усложнения
СообщениеДобавлено: Пятница, 03 Апрель, 2009 23:50 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Valery Solovey писал(а):
Есть разные способы уложнения. Одно дело усложнять "линейно" (насколько я понял, это то, про что пишите Вы) и совсем другое дело - усложнять добавлением уровней.

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

Alexey_Donskoy писал(а):
...аналог архивации, упаковка метаинформации.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автокатализ усложнения
СообщениеДобавлено: Пятница, 03 Апрель, 2009 23:54 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Alexey_Donskoy писал(а):
Опять же при желании можно провести параллель с умотипами.
Первый подход характерен для первого, второй - для второго.
Если я правильно понял о чем речь, то параллель правильная.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автокатализ усложнения
СообщениеДобавлено: Суббота, 04 Апрель, 2009 19:28 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Sergo писал(а):
Я имел в виду "паразитную сложность", свойственную многим явлениям культуры: от сложности обрядов до сложности ПО. "Паразитная" она потому, что не несет полезных функций. А структуру она может иметь самую разную - и многоуровневую в том числе (например, бюрократические иерархии).
Алгебраическое уравнение, с точки зрения человека, знакомого только с начальной арифметикой, выглядит как "паразитная сложность". Однако позволяет решить целый класс задач гораздо более эффективно и с меньшими затратами.
Более того, оно позволяет решить и такие задачи, которые раньше даже поставить было невозможно :)
Ну, Вы поняли, к чему я веду :)

Но есть и действительно паразитная сложность, которая проистекает из непонимания сути и нагромождения "комбинаторных решений". Беда в том, чтобы рассудить, какого рода перед нами сложность, необходимо преодолеть определённый порог вхождения, о котором тут уже много говорили по разным поводам...

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

И сложность порога вхождения многократно окупится! Хотя психологический тормоз силён, но преодолим - надо только заставить себя поверить в это!

Вот, кстати, к info21 - думаю, что любой человек способен применять стиль мышления второго умотипа. Научение в детстве, видимо, даётся легко, также как, скажем, научение плавать или ездить на велосипеде... Потом тормоз раз и навсегда будет снят, останется только лень :)
А взрослому труднее...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автокатализ усложнения
СообщениеДобавлено: Суббота, 04 Апрель, 2009 23:08 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Sergo писал(а):
... Я имел в виду "паразитную сложность", свойственную многим явлениям культуры ...
Хорошего словца пока не было для этого понятия. Были "мусорные знания" -- как раз знания о "паразитной сложности".


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB