Выбрать главу

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

Формальный критерий имплементации КоА выглядит таким образом:

Физическая система Р имплементирует КоА М, если можно разложить внутренние состояния Р на компоненты [s1,…, sn] и установить соответствие f между подсостояниями sj и соответствующими подсостояниями Sj в М, а также произвести сходную операцию разложения и установления соответствия для данных на входе и на выходе, так, что для каждого правила перехода от состоянию к состоянию

([I1,…, Ik], [S1,…, Sn]) —> ([S'1,…, S'n], [О1,…, Оl])

в М: если Р находится во внутреннем состоянии [s1,…sn] и получает на входе [i1…., iп], соответствующие формальному состоянию и данным на входе [S1,…, Sn] и [I1,…, Ik], то это каузальным образом с неизбежностью приводит к тому что она переходит к такому внутреннему состоянию и порождает такие данные на выходе, которые надлежащим образом соответствуют [S'1,…, S'n] и [О1,…, Оl].

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

Могло бы показаться, что КоА немногим лучше КА. В конце концов, для любого конечного КоА мы можем найти соответствующий ему КА с тем же поведением на входе — выходе. Но между ними все же есть существенные различия. Первое и главное из них состоит в том, что условия имплементации для КоА гораздо более ограничены, чем аналогичные условия для КА. Имплементация КоА предполагает сложное каузальное взаимодействие множества отдельных частей; и поэтому КоА-описание может передавать каузальную организацию системы с гораздо большей степенью детализации. Во-вторых, КоА позволяют сформулировать единое объяснение условий имплементации, значимое как для конечных, так и для бесконечных машин. И, в-третьих, КоА может напрямую отражать комплексную формальную организацию вычислительных объектов, таких как машины Тьюринга и клеточные автоматы. В соответствующих КА была бы утрачена большая часть этих структурных моментов.

На деле мы можем использовать эту дефиницию имплементации для прямого получения критериев имплементации для других видов вычислений. К примеру, для конкретизации условий имплементации машины Тьюринга нам нужно просто переописать машину Тьюринга как КоА и применить данную выше дефиницию. Для этого мы описываем состояние машины Тьюринга как громадный вектор. Один из элементов этого вектора репрезентирует состояние ее управляющего устройства, есть элементы и для каждой ячейки ее ленты, репрезентирующие символ в этой ячейке и указывающие, находится ли управляющее устройство на ней. Правила перехода от состояния к состоянию для векторов естественным образом извлекаются из механизмов, специфицирующих поведение управляющего устройства машины и ленты. Разумеется, векторы здесь бесконечны, но условия имплементации для случая с бесконечностью являются непосредственным расширением условий для конечных случаев. При переводе с языка формализма машины Тьюринга на язык формализма КоА мы сможем сказать, что машина Тьюринга имплементируется всякий раз, когда имплементируется соответствующий КоА. Аналогичные переводы можно сделать и для вычислений в других формализмах, таких как клеточные автоматы или программы на Паскале, что позволит сформулировать условия имплементации для вычислений в каждом из этих классов.