Основные способы синтеза

Основные способы синтеза

sergey shishkin

В работе при рассмотрении прикладных областей алгоритмической модели выделяются и детально описываются различные примеры синтеза. Хочется уже здесь отметить, что при всём разнообразии разобранных примеров, они все являются реализацией или одного способа, или совокупности основных способов синтеза, представленных в следующем списке:

  • Случайный поиск алгоритма - проверка наличия взаимодействия между существующими на текущий момент времени объектами в существующих на текущий момент локальных областях, характеризуемых различными динамическими параметрами объектов с изменяющимся во времени множеством классов эквивалентности объектов.
  • Группировка алгоритмов - объединение множества ранее независимых или иначе объединённых алгоритмов в единую структуру нового макро-алгоритма;
  • Эволюция алгоритма - изменение макро-алгоритма независимым дополнением или изменением его малой специализированной части (например, работника) без изменения остальных частей макро-алгоритма;
  • Трансляция алгоритма - формирование алгоритма исполнением алгоритмов, принадлежащих некоторой системе трансляции, комплементарно сопоставляющей объекты и их параметры для двух алгоритмических систем (например, прикладной области модели и пространства модели).
  • Абстрактный перенос алгоритма - перенос универсального алгоритма, работающего с одними классами объектов и некоторыми реализациями под-алгоритмов, в новую ситуацию для исполнения с участием других классов объектов и других реализаций под-алгоритмов, возможный в силу сходства конструкций этих объектов и совпадения базовых интерфейсов под-алгоритмов;
  • Интерполяция алгоритма - построение модели для некоторого обучающего набора образцов процессов и объектов, для того чтобы в пространстве построенной модели применить интерполяционные алгоритмы выявления и описания закономерностей (алгоритмичности) присущих каждому образцу и на этой основе выполнить синтез универсального алгоритма, исполнимого на каждом экземпляре обучающего набора, а в силу выявленной алгоритмичности переносимого и на иные экземпляры подобных процессов и объектов вне обучающего набора.

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

Отметим особый случай для синтеза и опишем его следующим термином.

Метод синтеза — это способ синтеза, осуществляемый исполнением "порождающего" алгоритма, уже существующего в пространстве.

Формальное определение методов синтеза — одна из задач, решение которой необходимо для достижения поставленной в работе цели.

В пространстве для процессов, в которых происходят изменения экземпляров алгоритма, можно указать значимые результаты в отношении этого экземпляра и их влияние на множество алгоритмов в целом:

  • создание экземпляра нового алгоритма (добавление элемента в множество),
  • разрушение последнего экземпляра алгоритма (удаление элемента из множества).

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

Здесь предваряя приведенное в следующей главе, формальное определение важных типов опорных объектов алгоритма, стоит указать на признак этих объектов, который является одним из основополагающих для возможности само-развития в алгоритмическом пространстве. Этот признак закрепляет возможность в пространстве отсутствия изменения опорного объекта при исполнении алгоритма. На основе этого признака опорные объекты алгоритма делятся на два класса:

  • материал алгоритма — это опорные объекты алгоритма, изменяющиеся в ходе его исполнения;
  • работники алгоритма — это опорные объекты, не изменяющиеся при исполнении алгоритма.

Здесь в выделении классов объектов по некоторому признаку используется один из универсальных способов, обеспечивающих развитие алгоритмического пространства. Этот способ — специализация. И его применение встречается на всех этапах развития пространства, рассмотренных в работе.

Специализация (в широком смысле) - разделение процессов пространства по некоторому признаку на несколько классов и упрощение за счёт этого структуры процессов внутри каждого выделенного класса с повышением в нём вероятности развития.

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

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

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

Рефакторинг — изменение работника алгоритма, синтезирующее тождественный алгоритм.

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

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

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

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

С использованием последнего термина можно уточнить, что сохранение основного функционала алгоритма при эволюционном синтезе — это в большинстве случаев сохранение его организации.

Требуется

Анализ полноты системы динамики и преобразований необходимой для само-развития в элементарном состоянии пространства.
Анализ целесообразности рефакторинга, на основе специализации и организации

Случайный поиск алгоритма может быть представлен примерами:

  • метод проб и ошибок подбором компонентов;
  • смешивание различных веществ в химической лаборатории;
  • перестановка строк кода неопытным программистом;
  • мутация кодирующей последовательности.
  • ? процессы "зарождения жизни" в мировом океане.

Группировка алгоритмов может быть представлена примерами:

  • выработка последовательности химических реакций;
  • цикл Кальвина;
  • последовательность движений для завязывания узла;
  • последовательность действий для сборки мебели;
  • метод проб и ошибок удалением компонентов;
  • вызов подпроцедуры из основной процедуры;
  • эндосимбиоз цианобактерий в клетку водорослей.

Эволюция алгоритма может быть представлена примерами:

  • наращивание функционала редактора фотографий;
  • эволюция вида (на основе скрещивания кодирующих последовательностей — кроссинговер);
  • обучение ученика в школе;
  • развитие промышленности;
  • изобретение рецепта хлеба;
  • развитие государства (без переворотов).

Трансляция алгоритма моделью может быть представлена примерами:

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

Абстрактный перенос алгоритма может быть представлен примерами (с использованием сигнальных объектов):

  • подсчёт карточек вместо книг в библиотеке;
  • сортировка фамилий по значению роста в таблице вместо выстраивания учеников по росту в шеренге;
  • специализация сигнала опасности в группе соплеменников на основе сигнальных элементов убегания;
  • использованием с разными данными шаблонного метода (STL) быстрой сортировки.

Интерполяция алгоритма может быть представлена примерами:

  • аппроксимация функции по заданному набору данных;
  • обучение классифицирующей искусственной нейронной сети на заданной наборе данных;
  • обучение поведению запоминанием удачной последовательности признаков и действий

Специализация может быть представлена примерами разделения:

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

Тождественные алгоритмы могут быть представлены примерами:

  • алгоритмы сортировки;
  • подогревание воды на огне и в микроволновке;
  • обнаружение объекта('мама') братом и сестрой;
  • решение геометрической задачи равенства фигур с использованием координатной системы и с опорой на аксиомы

Специализация алгоритма может быть представлена примерами (обособление с отдельной эволюцией):

  • врач анестезиолог по отношению ко врачу общей практики (в услугах организаций здравоохранения);
  • клетки печени по отношению к стволовой клетке (в организме);
  • сегмент кода в памяти по отношению к свободной странице памяти (в работе ЭВМ);
  • сорт яблок Апорт по отношению к дикому виду (в сельском хозяйстве).

Организация алгоритма может быть представлена примерами:

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

https://telegra.ph/Obshchaya-teoriya-algoritmov-01-20

Report Page