Специализация прикладного участия
sergey shishkinВ завершение рассмотрения примеров специализаций в рамках этой главы обратим внимание на специализацию алгоритмов по наличию взаимодействия работника с материалом.
Для этого выберем такие алгоритмы, в которых есть минимум два работника и один из них не взаимодействует с материалами, но только с другими работниками. Такого работника будем называть идентификатором, а остальных работников — реализаторами.
Идентификатор - это специализированный работник id, который не взаимодействует с материалами своего алгоритма AlgId во время исполнения.
AlgId(Alg,t1…t2)
∃ id∈Alg:WorkerAlgId(id)
∃ M⊂Alg:MaterialAlgId(M)
∀ t∈[t1…t2]:∀[Neart(id,M)]
Для обозначения факта, что объект objid является идентификатором алгоритма AlgId введем запись IdAlgId(objid).
Реализатор - это специализированный работник impl, который обязательно взаимодействует с материалами своего алгоритма AlgImpl, но может взаимодействовать и с другими работниками для исполнения алгоритма.
AlgImpl(Alg,t1…t2)
∃ impl∈Alg:WorkerAlgImpl(impl)
∃ M⊂Alg:MaterialAlgImpl(M)
∃ t∈[t1…t2]:∃[Neart(impl,M)]
Для обозначения факта, что объект objimpl является реализатором алгоритма AlgImpl введем запись ImplAlgImpl(objimpl).
Важным свойством идентификатора является то, что при его отсутствии невозможно исполнение алгоритма даже при наличии всех требуемых материалов и остальных работников. На основе этого свойства возможно управление стартом исполнения конкретного алгоритма в локали, наполненной материалами и реализаторами, производимое внесением в локаль идентификатора этого алгоритма.
Примеры специализации, описанные в работе в следующих главах, обеспечат пространство еще большими возможностями развития, но и приведённых здесь уже достаточно для построения очень сложных макро-алгоритмов.
Специализированная в конструкционных алгоритмах совокупность материалов и работников, резидентов и посетителей, идентификаторов и реализаторов формируют основу практически любой существующей программной среды.
Идентификатор может быть представлен примерами:
- имя функции в тексте программы на языке программирования;
- "1 кг сахара" - в рецепте варенья;
- A, G, T и C в цепочке ДНК как описание белка;
- команда процессора ЭВМ;
- 0 или 1 в передаче цифровых дынных по каналу связи.
Реализатор может быть представлен примерами:
- тело функции в тексте программы на языке программирования по отношению к точке вызова этой функции;
- процессор, реализующий процесс вычисления по некоторому алгоритму;
- белок выполняющий некоторую функцию в организме по отношению к участку ДНК, на основе которого этот белок был собран.
https://telegra.ph/Obshchaya-teoriya-algoritmov-01-20