Перенос цепочки

Перенос цепочки

sergey shishkin
  • Способы построения и использования абстракций;
  • Использование внутренних абстракций для аналогий (использование алгоритма в другой ситуации среды);
  • Абстрактный перенос на внутренних абстракциях
  • Способ использования внутренних абстракций для расширения набора базовых действий

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

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

Первоначально применение алгоритма поведения на основе детектированных признаков ориентировалось на выработку реакции на конкретную ситуацию среды. Но с развитием системы детекторов и с появлением группировки макро-признаков появилась возможность выполнять попытки исполнения алгоритма поведения для ситуации не в точности совпадающей с исходной, а только "похожей", то есть тождественной по некоторому подмножеству активированных признаков. Эти общие признаки закрепленные цепочкой для исполнения полезных алгоритмов поведения становятся первыми предвестниками алгоритма нового типа — универсального алгоритма, в котором условия исполнения опираются не на полное указание участвующих во взаимодействии объектов, а на частичное закрепление условия указанием признаковых объектов ("маркеров"). А если наличие этих признаковых объектов встречается в разных ситуациях и конструкциях среды, но при любом окружении обеспечивается Повторимость алгоритма, то получаем новую универсальную специализацию алгоритма.

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

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

Важно

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

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

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

Реализация базы (реализация интерфейса) — это алгоритмический блок, содержащий в своём интерфейсе указываемый базовый интерфейс.

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

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

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

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

  1. Шаблонная функция template<typename t> t Do();
  2. Функция сортировки, по отношению к конкретным сортируемым объектам и сравниваемым ключам;
  3. Сложение по отношению к конкретным объектам, подсчет которых ведется.

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

  1. алгоритмы сравнения элементов и изменения позиций для алгоритма сортировки;
  2. круглая форма для алгоритмов качения предмета по поверхности;
  3. PostScript — язык описания страниц, используемый в настольных издательских системах.

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

  1. сравнение чисел и прямая адресация массива и обмен с локальной переменной — для сортировки массива чисел;
  2. сопоставление по росту и перемещение детей по спортивной площадке для построения в шеренгу по росту;
  3. круглая форма бревна для алгоритма "тащить корабль волоком";
  4. принтер реализующий PostScript.

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

  1. вызов подфункции для исполнения основной функции;
  2. процесс замешивания цемента в процедуре строительства дома;
  3. варка яиц для приготовления салата.

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

Report Page