Неодушевлённые исполнители это природные вещества или машины, компьютеры и другие технические устройства. Они выполняют алгоритмы для решения разных задач человечества. Например, спутник летает по орбите Земли по определённому алгоритму: он получает сигналы от земных станций, обрабатывает их и передаёт обратно.
Исполнитель играет важную роль в алгоритме. Без исполнителя алгоритм это просто набор слов или символов, который не имеет смысла и ценности. Исполнитель делает алгоритм живым и действенным. Преобразует входные данные в выходные данные с помощью правил и операций, описанных в алгоритме.
Абстрактный исполнитель это способ представления алгоритма на высоком уровне мысленного отвлечения. Это значит, что мы указываем не конкретные характеристики исполнителя, а лишь его общие свойства и возможности. Например, мы определяем, что «объект» может двигаться, поворачиваться, поднимать и опускать что-то. Мы не говорим, какой он формы, размера, цвета или материала. Не указываем, каким образом он двигается, поворачивается или поднимает. А прописываем только то, что он может делать.
«Объект» позволяет нам обобщить алгоритмы для разных областей и задач. Это значит, что мы можем задать один и тот же алгоритм разным исполнителям, если они имеют схожие свойства и возможности. Например, мы можем прописать алгоритм построения дома для разных объектов: человека, робота или муравья. Или использовать алгоритм перемещения по лабиринту для мыши, робота или автомобиля. Мы не меняем сам алгоритм, а только подставляем нужного исполнителя вместо «объекта».
Абстрактный исполнитель это мощный инструмент для создания и понимания алгоритмов. Он помогает нам видеть суть и логику алгоритма без лишних деталей и ограничений, находить общее и непохожее в разных алгоритмах и исполнителях, создавать новые решения на основе старых.
Интересно, что даже художественные произведения можно рассматривать как алгоритмы. Например, главный герой это тот, кто ведёт нас по истории. Он имеет цель, которую достигает по сюжету. Алгоритм это набор действий, которые образуют сюжет. Сюжет может быть сложным и изменчивым. Исполнитель истории обладает своими свойствами и возможностями. Он влияет на алгоритм и, наоборот, учится, меняется и развивается, вызывает у нас интерес и симпатию, заставляет нас следить за алгоритмом истории и ждать его конца.
Возьмём для примера сказку «Золушка» Шарля Перро. Главная героиня Золушка, добрая и красивая девушка, которая живёт со злой мачехой и её дочерями. Из этой сказки можно выделить абстрактный объект. Алгоритм поведения абстрактного объекта можно описать так:
1. Терпеть обиды и унижения от других объектов.
2. Мечтать о том, чтобы попасть в лучшие условия.
3. Получить помощь, которая преобразит объект под лучшие условия.
4. Отправиться в место, где есть лучшие условия.
5. Оказаться нужным объектом для принимающего решения в новых условиях.
6. Уехать обратно, оставив после себя загадку.
7. Снова терпеть обиды и унижения в старых условиях.
8. Дождаться, когда принимающий решение найдёт и заберёт к себе.
Подобный алгоритм используют все сценаристы, которые создают современные истории с сюжетом о «Золушке».
С помощью алгоритмов мы можем лучше понимать происходящее. Например, если мы хотим узнать, как растёт дерево, то попытаемся описать этот процесс в виде алгоритма:
1. Определить тип образовательной ткани меристемы (от др.-греч. μεριστός «делимый»): первичная или вторичная. Первичные меристемы отвечают за увеличение дерева в длину, вторичные за утолщение дерева.
2. Определить местоположение меристемы: на конце корня или стебля (верхушечная меристема) или под корой ствола или ветвей (боковая меристема).
3. Определить направление роста меристемы: вверх или вниз для верхушечных меристем, наружу или внутрь для боковых меристем.
4. Делить клетки меристемы с определённой скоростью и частотой, зависящими от условий окружающей среды и гормонов растений.
5. Дифференцировать новые клетки в разные типы тканей, такие как эпидермис, корковая ткань, древесина, камбий и т. д., в зависимости от типа и местоположения меристемы.
6. Образовывать новые элементы дерева из дифференцированных клеток, такие как почки, цветки, плоды, семена и т. д., в зависимости от типа и местоположения меристемы.
Это алгоритм роста дерева за счёт деления клеток в меристемах. Он показывает основные этапы и механизмы формирования разных частей дерева из клеток-предшественников.