Классификация кодов
Содержание |
коды коммутации
Рассмотрим некоторый объект, входящий в конструкцию из объектов. Этот объект имеет четыре связи с другими объектами, и все эти связи выражены одним из четырех символов: N, T, F, U. Теперь переименуем одну из связей. В этом случае объект будет иметь четыре связи, две из которых будут выражены одинаковым символом. Кроме того, у объекта «потеряется» одна из связей, поскольку у объекта уже не будет связи, выраженной переименованным символом. Мы имеем объект, с двумя одинаковыми связями. Данная ситуация недопустима, поскольку в соответствии с нашей аксиоматикой каждый объект может иметь только одну связь каждого логического типа. Существуют две возможности, чтобы исправить данную ситуацию:
- либо переименовать второй «одинаковый» символ в «потерянный» символ. Это эквивалентно коммутации связей между объектами, соединенными с рассматриваемым объектом. (1)
- либо каким-то образом реструктуризовать остальные объекты, связанные с рассматриваемым. Например «слепить» два объекта, связанные с рассматриваемым объектом одинаковыми связями, в новый объект.(2)
Первая возможность, приведет к иерархическим или каскадным структурным изменениям в конструкции. И в результате мы получим новую конструкцию из тех же самых объектов, скоммутированных по-новому. Вторая возможность приведет к изменению самих объектов: «слипанию» одних объектов и «разделению» других объектов. В результате мы получим не только новую конструкцию, но и новые объекты.
С точки зрения программирования мы выделяем четыре действия:
- выделение объектов из входной информации. Заметим, что генерация объектов, должна происходить таким образом, чтобы они могли быть лексически связаны с другими объектами. Построение первичного набора объектов. ('N-действие')
- построение конструкции и в частности замкнутую конструкцию из заданных объектов ('T-действие')
- 'коммутирование' связей между объектами. Это приводит к модификации конструкции из заданных объектов. ('F-действие')
- 'переименование' связей между объектами влечет модификации самих объектов: смешиванию нескольких в один и сепарации объекта на несколько. И одновременно к модификации конструкции. ('U-действие')
Таким образом, N-действие и U-действие, затрагивают объекты, а T-действие и F-действие только связи между ними.
С другой стороны, N-действие создает исходный набор объектов, T-действие - создает законченную структуру – замкнутую конструкцию из исходного набора объектов, F-действие - модифицирует конструкцию и создает новую конструкцию из исходного набора объектов, U-действие – модифицирует конструкцию и объекты конструкции («смешение» и «сепарация»), создает новую конструкцию и новые объекты.
Введем определение кода. Исходные символы связей будем обозначать строчными буквами n,t,f,u, а результирующие символы будем обозначать прописными буквами N,T,F,U. Удобно записывать сначала исходный символ, а затем результирующий, например код tU обозначает, что связь T будет переименована в связь U. А код tU_uT, будет обозначает, что связи T и U необходимо поменять местами.
Этот однопозиционный код будем называть кодом переименования. В общем случае код переименования будем записывать, как
xX , где x ∈ (n,t,f,u), а X ∈ (N,T,F,U) (3)
После переименования символа T в символ U, символы остальных связей объекта также изменятся согласно(1). Данный факт можно рассматривать одинаково и как процесс переименования связей либо как процесс переподключения (коммутации) связей объекта. Попробуем проследить это изменение. Удобно записать исходные символы в синтезирующем порядке и рядом с ними оставить позицию для результирующих символов.
n_ → t_ → f_ → u_ (4)
в общем случае, если мы ничего не коммутируем, объект будет выражен прямым кодом коммутации:
nN → tT → fF → uU (5)
в нашем случае код примет вид
nN → tU → fF → uU (6)
но этот код является кодом переименования, а не кодом коммутации, поскольку 2 исходные связи переименовываются в один символ. Таким образом, код коммутации будет выглядеть как:
nN → tU → fF → uT
возможны и более сложные коды коммутации, удовлетворяющие коду переименования tU, а именно:
nF → tU → fN → uT
nT → tU → fN → uN
можно составить список всех кодов коммутаций и переименований. Данный список удобно составлять, начиная с прямого кода коммутации, последовательно изменяя результирующий символ самого младшего исходного символа. См. приложение. Заметим, что коды коммутации являются подмножеством кодов переименования и, что однопозиционные коды являются надмножеством двух-, трех- и четырехпозиционных кодов. Все коды мы можем разделить на типы по количеству позиций и по их качеству: Например, код tU_uT - является кодом коммутации, а nN_tU – является только кодом переименования, также же как и tU. tU_uN – является кодом перестройки структуры, поскольку меняя T на U, мы не имеем возможности поменять U на T, поскольку код предписывает нам изменение U на N. Будем называть код uT - отражением кода tU.
В общем случае, для отражения некоторого кода необходимо переставить местами исходные и результирующие символы. Затем отсортировать полученный код в соответствии с синтезирующим направлением обхода символов.
Введем у объектов еще один символ V – код. Тогда vV – это говорит о том, что исходный код такой же как и отраженный. v = vV_nN_tT_fF_uU V=Vv_Nn_Tt_Ff_Uu= vV_nN_tT_fF_uU
v=vN_nV_tT_fF_uU - надо записать этот код - как код для объекта , связанный с текущим связью N , а код этого N-объекта установить как отраженный код текущего объекта.
Допустим, мы установили коды для всех объектов конструкции, тогда любой объект конструкции имеет собственный код, к тому же, существуют еще четыре кода, к которым он имеет отношение. Это коды объектов, связанных с заданным. Заметим, что заданный объект имеет доступ к отражениям этих кодов. Таким образом, у нас имеется внутренний v-код и его отражение V-код, а также коды N-связи, T-связи, F-связи, U-связи, как отражения соответствующих объектов на рисунке.
- Алфавит и база данных (таблицы кодов)
- Однопозиционный код переименования
- Алфавит-позиционный Код коммутации и индексные таблицы
- Код коммутации, код отражения, индекс в коде переименования
- Алфавит-позиционный Код переименования и индексные таблицы
- Код переименования, код отражения, код разделения и слипания
Типы кодов:
- константный код. Например, vV_nN_tT_fF_uU или tT_
- коммутационный код. Например, vV_nN_tT_fU_uF или tF_fT
- код переименования. Например, vV_nN_tN_fF_uU или tF_fF
- избыточный код. Например, vV_vN_vT_vF_vU или tF_tT
позиционность кода
- однопозиционный, Например, tT_ или nF_
- двухпозиционный, Например, tT_fF или nF_tU
- трехпозиционный, Например, tT_fF_uU или nF_tF_uF
- четырехпозиционный, Например, nN_tT_fF_uU или nF_tT_fN_uU
- пятипозиционный, Например, vV_nN_tT_fF_uU или vV_nF_tF_tU_tF
- многопозиционный.
Алфавит кода
- формальный: используются символы T, F
- абстрактный: используются символы T, F, U
- логический: используются символы N,T, F, U
- кодовый (0): используются символы V,N,T, F, U
- кодовый(1) : используются символы A,V,N,T, F, U
- кодовый(2) : используются символы B,A,V,N,T, F, U
- и т.д. - кодовый(n)
шаблон кода
- синтезирующий (прямой) шаблон
- анализирующий (обратный) шаблон
- нерегулярный (неопределенный) шаблон
свертка и распаковка кода
- свернутый: например, vV_ntfuU или vNT_tFU
- распакованный: например, для кодов выше это будет vV_nU_tU_fU_uU и vN_vT_tF_tU.
плоскости кодов и позиционность кода
отражение кода
при отражении кода переименования получаем избыточный код, который разделяется на коммутационные коды меньших позиционностей (меньших плоскостей). Таким образом если отражений больше 1 то это код переименования, иначе это код коммутации.