Сайт Информационных Технологий

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

Приложение 1

Краткий обзор способов самодеструкции программных систем или Общая Демонология

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

Условимся примеры обсуждать в рамках Cache’-технологии и с минимальным количеством подробностей. При этом мы не только ничего не теряем, но выигрываем – все так называемые “сложные таблицы”, “сети”, в том числе и “пространственные”, на самом деле нисколько не лучше, поскольку суть чистое “надувательство именованием”.

Для понимания этого не надо вникать в подробности. Даже при наличии многопортовой памяти и многопроцессорности обработка все равно все происходит при помощи адресных счетчиков и стековых механизмов, т.е. структур топологически линейных. А значит, мы имеем дело с теми же плоскими, топологически двумерными древовидными структурами. Там, где они “склеены в нечто более сложное”, эти самые “склейки” на самом деле спрятаны либо в программах ядра системы (иногда в виде просто каких-то коэффициентов), иногда в инструментальной системе в виде каких-то соглашений (эвристик), иногда даже в условностях, находящихся вне физической системы и даже вне формального описания языка программирования, т.е. в “чистой эвристике”.

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

Рассмотрим типичную информационную систему:

wpe1CE.jpg (14714 bytes)

Здесь: ПВХ, ПВЫХ – потоки входа и выхода;
ИС – инструментальная система;
СА – системный аналитик;
Г1…ГN – глобалы;
Г – память.

Если система спроектирована “достаточно грамотно”, то картинка принимает вид:

wpe1CF.jpg (11235 bytes)

Здесь ГИ – память “инструментальных” глобалов, структур, являющихся “правилами обращения” с входными данными (пополнениями и запросами), рабочей памятью Г, а также с сообщениями оператору системы и “внутренними коллизиями”.

Самая совершенная система, если она с динамикой, с пополнениями, неизбежно доживет до момента, когда один из глобалов Гn “наступит” на другой не из-за памяти, а из-за логики. Тут должен сработать глобал ГИК (из ГИ1…ГИn) и “позвать на помощь” системного аналитика – в нормальных ситуациях СА не нужен.

Это и есть вид демона простейшего или плоского ДП (поскольку он глобал). Его можно также относить к виду “демона полезного” ДПО. Заметим, что все эти ситуации можно (чисто технологически) именно уложить в глобал – потому он и плоский. Но можно потребовать и большего – чтобы было запрошено у аппаратной системы достаточно ресурсов и:

Ситуация вовсе не фантастическая и вполне разрешима с помощью демона соответствующего вида, но нужен уже демон процедурный ДПР, поскольку в ГИ эти требования просто “не влезут” по смыслу соглашений Cache’-технологии.

Но демон ДПР уже по существу не плоский, имеющий помимо своего глобала из ГИ еще и тело в ИС. Если это безобразие оператор будет терпеть достаточно долго, то по мере заполнения памяти ГИ система может “перевернуться вниз головой”, придти в состояние, когда ГИ станет “больше и важнее” Г.

Обратим внимание на следующее обстоятельство.

Если “развернуть во времени” трассы тел всех программ ИС, то “вместо” тел ИС мы получим также плоскую совокупность плоских “глобалов” – это трассы логики ИС, которые порождают попутно изменения глобалов в Г (основной памяти). Все до единой даже “простые петли” означают приостановы, а поэтому “расщепляются” либо демонами, либо системным аналитиком лично.

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

Отметим еще и следующее.

Во-первых, мы ничего не упоминали о конкретных размерах и количестве глобалов ни в Г, ни в ИС, ни в ГИ.

Во-вторых, если взять всю эту структуру “чистую”, т.е. с пустой памятью Г, минимальным рабочим набором в ИС и ГИ и “необходимым запасом места и структур” в ИС и ГИ для “демонов”, то мы получим “пустую метасистему” (конечно только для “подходящей предметной области” или “близко родственной”).

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

В некоторых случаях “из очевидности проблемной области” возникает соблазн жестко ограничить и число и сам набор глобалов ГИ (ведь очевидно же в данном имярек случае!). Одновременно можно, это уже и совсем очевидно, ограничиться жестким стандартным набором тел ИС.

Но и результат получим не менее очевидный. Очень скоро информационные глобалы станут заполняться “сверху” пустыми вершинами (но ради сохранения структуры – набор-то ГИ ограничен, их придется заводить).

Система начнет экспансивно потреблять память, а содержательный материал “погружаться в Г”. Это называется создать демон пирамидальный ДПИ.

Демон тем замечателен, что при всей очевидности встречается весьма часто, особенно в социальных системах.

И еще, при всей очевидной примитивности, он весьма коварен, так как объявлен может быть исключительно средствами косвенными, а на начальном этапе работы создает видимость очень разумно и эффективно устроенной системы, но обязательно засасывает систему всю целиком в один глобал Г – и поехали…

Следующим, самым распространенным в демонологии и самым любимым “по жизни” является демон гибридный ДГИ, состоящий из процедурной ДПР и пирамидальной ДПИ частей. Имеет большое видовое разнообразие из-за наличия процедурной части и поэтому бывает очень трудно уловим даже на этапе его “существования”, а создаваться может и “неявным способом”. Если имеет один глобал в ГИ и тело процедуры, имеющее доступ в Г – называется “вирусом”, т.к. может быть сделан компактным.

Очень любят ДГИ исследователи “искусственного интеллекта” за то, что он мастерски может притворяться, выдавая себя за совсем другого и “с виду” как будто “сбалансирован”.

Поставим мысленный эксперимент.

  1. Загрузим в глобал Г все шахматные партии, которые когда-либо были сыграны;
  2. В глобалы ГИ – все “классические” этюды и позиции.
  3. “Обратным ходом” соберем тела процедур, обеспечивающих победы (возможно для этого все ГИ и не понадобятся).

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

Вот “искусственники” за то ДГИ и любят, что он очень хорошо ДСОВ прикидывается, только пока незнакомую партию не встретил, тогда он мгновенно лапками кверху откидывается уже с вероятностью строго равной 1. Применять ДГИ для управления атомным реактором не стоит, да и всем прочим тоже, тем более, что вероятность наличия ДСОВ в естественных системах – строго меньше любого представимого числа. Тем не менее, ДГИ встречается в некоторых вполне реальных системах.

Здесь почти вся “общеупотребимая” компьютерная демонология и заканчивается, начинается еще не освоенная. Рассмотрим работу системного аналитика, после того как сработал ДП. Наш аналитик:

Представим эту акцию на рис. П1.3.

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

wpe1D0.jpg (15361 bytes)

При определенных условиях S1 – исчисление предикатов первого порядка. История S1 – теория предикатов первого порядка. Соответственно S2 и его история то же, но второго порядка.

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

Дело вот в чем. Через несколько шагов может получиться так, что вновь созданные на i-м шаге ГИ(i), ГИС(i) придется “вернуть на место” – просто логически получится, как очевидность. Т.е. здесь уже совсем без нашего “злого намерения” или даже ротозейства самостоятельно рождается демон кувыркающийся ДКУВ. Это из-за того, что теория стала второго порядка. Примеры всем знакомые – достославные апории и логические парадоксы.

Другие демоны тоже в долгу не останутся, ДПИ станет высоким ДВЫ, ДКУВ – трясущимся (программу может “затрясти”) ДТР, ДГИ можно теперь называть “гибким” понятно в силу его повышенной гибкости.

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

Во-первых, существенно возрастет время работы, т.к. все надо ограничить “периодом работы” демонов ДПП – иначе опасно.

Во-вторых, поскольку “история” S2 – суть “плотная упаковка” из “слоеных пирогов” – соответственно должен возрасти объем памяти, а если она виртуальная, то и время работы тоже.

Далее, не выходя из трехмерного представления, можно тем же способом надстроить еще одну ступеньку со своими соответственными особенностями, а именно:

  1. История S3 – уже не теория, а исчисление предикатов, поскольку сам уровень S3 нельзя делать более чем “перечислением” – читайте ТСС;
  2. Соответственно должна расти “книга расходов”;
  3. Демон полезный ДП остается по-прежнему одного вида, называется “демон памятливый”;
  4. Все демоны “увеличивают свои способности”;
  5. Сам по себе рождается еще один сорт – “демон вертящийся” ДВЕР, как потомок ДКУВ. Всем нам знакомый дорогой и близкий “диалектический материализм”;
  6. Появляются “зародыши” новых сортов демонов.

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

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

Далее демонология дается пояснительно.

Полезные – тот же ДП, только еще и “долгопамятливые” разновидности и минимальный набор этих полезных довольно большой (чтобы от них реальная польза была).

Вредные демоны:

ДТОТ – “тоталитарный”, потомок высокого ДВЫ;

ДЗМЕ – “змеящийся”, потомок трясущегося ДТР;

ДКОВ – “коварный”, потомок гибридного ДГИ.

Скорее всего, это будут уже не отдельные структуры, отдельные демоны, а целые семейства с указанными названиями.

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

ДЗЕР – “зеркальный” или “полированный”, от коего все ему не родственное отскакивает как от стенки горох, например классическая механика с электродинамикой;

ДВС – всасывающий или всеобъемлющий – т.е. общая теория относительности или теория решений, т.к. они будут “всасывать” все факты и артефакты, пока сами не лопнут.

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

Вот и все, хотя могут быть и другие демоны, изощрения “неестественного интеллекта”, исходя же из свойств интеллекта нормального – сколько надо, по мере его изощрения.

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

Итак, в демонологии мы с позиции ТСС рассмотрели свойства программных систем, которые появляются, когда эти системы и вправду становятся сложными. На уровне того, что уже достигла Cache’-технология в целом, теория может дать очень мало “позитивных” результатов, а именно:

Чуть больше результатов негативных:

Посмотрим, что еще можно извлечь из сказанного выше.

  1. Описания демонов, т.е. “негативный” результат, суть инструкция, как нельзя действовать ни при каких обстоятельствах и как бы этого ни хотелось, так как крах на этом пути неотвратим. Это одинаково касается и Cache’-технологии, и любой информационной технологии, и любой теории вообще.
  2. Подсказка, как “правильно” устроить систему, чтобы она могла развиваться – это максимум, что может сказать теория. Все остальное зависит от искусства аналитика, т.е. конструктора системы (есть теория живописи, а есть живопись). Но ровно то же самое касается любых систем и теорий, которые где-то и когда-то можно во Вселенной встретить.
  3. Оценки, заключенные в “демонах полезных”, это тот минимум, который надо “заплатить” за возможность развития системы, за ее уровень развития.
  4. На рассматриваемом уровне сложности и далее, нет вообще теорий, которые выдают прямые инструкции для “штамповки гвоздей”, т.е. прикладные уравнения, функционалы и т.п. В этом смысле все теории одинаково хороши и одинаково плохи, какую выбрать – воля конструктора. И не потому, что “не хватает” метатеории – потому, что сами “гвозди” приобрели такое свойство, т.е. такой уровень сложности.
  5. Все это происходит не оттого, что “неверно” выбран путь познания и есть другие, “более правильные” метатеории и пути. Но оттого, что само совокупное знание и сама Вселенная, в коей это все вместе существует, так устроены.
  6. Любая строгая теория имеет актуально двойственный предел развития и по строгости (точности) и по общности (охвату). Строгий порядок “до бесконечности и до бесконечно малой” может развиваться только в вырожденном виде – в виде фракталов и только на топологической плоскости. Сверните плоскость во что-нибудь замкнутое и фракталы от единственного “бесконечно малого” сбоя начнут “наступать себе на хвосты” и друг на друга.

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

Единственная возможная суперсистема – та, которая “заняла все, что можно занять вообще” и, устроившись в совершенной топологии, поддерживает равновесие этого всего, постоянно порождая и подправляя всевозможные метрики, но пользуясь при этом только топологическими “правилами игры”.


Site of Information Technologies
Designed by  inftech@webservis.ru.