Обобщение строк в информатике
В информатике трассировка — это набор строк , в которых некоторым буквам строки разрешено коммутировать , а другим — нет. Он обобщает концепцию строки, не заставляя буквы всегда находиться в фиксированном порядке, но допуская определенные перетасовки. Следы были введены Пьером Картье и Домиником Фоата в 1969 году, чтобы дать комбинаторное доказательство основной теоремы Мак-Магона . Трассировки используются в теориях параллельных вычислений , где коммутирующие буквы обозначают части задания, которые могут выполняться независимо друг от друга, а некоммутирующие буквы обозначают блокировки, точки синхронизации или соединения потоков . [1]
Моноид следов или свободный частично коммутативный моноид является моноидом следов. В двух словах оно устроено следующим образом: множества коммутирующих букв задаются отношением независимости . Они вызывают отношение эквивалентности эквивалентных строк; элементами классов эквивалентности являются следы. Затем отношение эквивалентности разбивает свободный моноид (множество всех строк конечной длины) на набор классов эквивалентности; результат по-прежнему остается моноидом; это фактормоноид и называется моноидом следа . Моноид следа является универсальным , поскольку все моноиды, гомоморфные по зависимостям (см. ниже), фактически изоморфны .
Моноиды трассировки обычно используются для моделирования параллельных вычислений , образуя основу для вычислений процессов . Они являются объектом изучения теории следов . Полезность моноидов трассировки исходит из того факта, что они изоморфны моноиду графов зависимостей ; тем самым позволяя применять алгебраические методы к графам , и наоборот. Они также изоморфны моноидам истории , которые моделируют историю вычислений отдельных процессов в контексте всех запланированных процессов на одном или нескольких компьютерах.
След
Обозначим через свободный моноид, то есть множество всех строк, записанных в алфавите . Здесь звездочкой обозначена, как обычно, звезда Клини . Отношение независимости на тогда индуцирует (симметричное) бинарное отношение на , где тогда и только тогда, когда существуют , и пара такая, что и . Здесь под и понимаются строки (элементы ), а под буквами (элементы ).![{\displaystyle \Сигма ^{*}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle I}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \Сигма }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \sim }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \Сигма ^{*}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle u\sim v}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle x,y\in \Sigma ^{*}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle (a,b)\in I}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle u=xaby}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle v=xbay}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\ displaystyle u, v, x}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle y}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \Сигма ^{*}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle а}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle б}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \Сигма }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
След определяется как рефлексивное транзитивное замыкание . Таким образом, след является отношением эквивалентности на , и обозначается , где – отношение зависимости, соответствующее этому, и наоборот. Очевидно, что разные зависимости дадут разные отношения эквивалентности.![{\displaystyle \sim }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \Сигма ^{*}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \equiv _{D}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle D}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle I,}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle D=(\Sigma \times \Sigma)\setminus I}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle I=(\Sigma \times \Sigma)\setminus D.}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Транзитивное замыкание подразумевает, что тогда и только тогда, когда существует последовательность строк такая, что и и для всех . След устойчив относительно операции моноида на ( конкатенации ) и, следовательно, является отношением конгруэнтности на .![{\displaystyle u\equiv v}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle (w_{0},w_{1},\cdots,w_{n})}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle u\sim w_{0}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle v\sim w_ {n}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle w_{i}\sim w_{i+1}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle 0\leq я <n}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \Сигма ^{*}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \Сигма ^{*}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Моноид трассы, обычно обозначаемый как , определяется как фактормоноид![{\displaystyle \mathbb {M} (D)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \mathbb {M} (D)=\Sigma ^{*}/\equiv _{D}.}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Гомоморфизм
![{\displaystyle \phi _{D}:\Sigma ^{*}\to \mathbb {M} (D)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
обычно называют естественным гомоморфизмом или каноническим гомоморфизмом . Заслуженность терминов «естественный» или «канонический» следует из того факта, что этот морфизм воплощает в себе универсальное свойство, как обсуждается в следующем разделе.
Также можно найти моноид следа, обозначаемый как где - отношение независимости. Что сбивает с толку, можно также найти отношение коммутации, используемое вместо отношения независимости (оно отличается включением всех диагональных элементов).![{\displaystyle M(\Sigma,I)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle I}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Примеры
Рассмотрим алфавит . Возможным отношением зависимости является![{\displaystyle \Sigma =\{a,b,c\}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle {\begin{matrix}D&=&\{a,b\}\times \{a,b\}\quad \cup \quad \{a,c\}\times \{a,c\} \\&=&\{a,b\}^{2}\cup \{a,c\}^{2}\\&=&\{(a,b),(b,a),(a ,c),(c,a),(a,a),(b,b),(c,c)\}\end{matrix}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Соответствующая независимость
![{\displaystyle I_{D}=\{(b,c)\,,\,(c,b)\}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Поэтому буквы коммутируют. Так, например, класс эквивалентности трассировки для строки будет иметь вид![{\displaystyle b,c}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle абабаббка}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle [abababbca]_{D}=\{abababbca\,,\;abababcba\,,\;ababacbba\}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Класс эквивалентности является элементом моноида следа.![{\displaystyle [abababbca]_{D}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Характеристики
Свойство отмены утверждает, что эквивалентность сохраняется при отмене по праву . То есть если , то . Здесь обозначение означает правую отмену, удаление первого вхождения буквы a из строки w , начиная с правой части. Эквивалентность также поддерживается за счет левого сокращения. Далее следуют несколько следствий:![{\displaystyle w\equiv v}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle (w\div a)\equiv (v\div a)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle w\div a}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- Встраивание: тогда и только тогда, когда для строк x и y . Таким образом, моноид трассировки является синтаксическим моноидом. [ non sequitur См. обсуждение:Trace monoid#As Syntactic Monoids ]
![{\displaystyle w\equiv v}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle xwy\equiv xvy}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- Независимость: если и , то a не зависит от b . То есть, . Более того, существует строка w такая, что и .
![{\displaystyle ua\equiv vb}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle а\neq b}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle (a,b)\in I_{D}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle u\equiv wb}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle v\equiv ва}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- Правило проекции: при проекции строки сохраняется эквивалентность , так что если , то .
![{\displaystyle w\equiv v}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \pi _{\Sigma }(w)\equiv \pi _{\Sigma }(v)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Для следов справедлива сильная форма леммы Леви . В частности, если для строк u , v , x , y , то существуют строки и такие, что
для всех букв и такие, которые встречаются в и встречаются в , и![{\displaystyle uv\equiv xy}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle z_{1},z_{2},z_{3}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle z_{4}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle (w_{2},w_{3})\in I_{D}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle w_{2}\in \Sigma }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle w_{3}\in \Sigma }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle w_{2}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle z_{2}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle w_{3}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle z_{3}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle u\equiv z_{1}z_{2},\qquad v\equiv z_{3}z_{4},}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
[2]
Универсальная собственность
Морфизм зависимости ( относительно зависимости D ) — это морфизм
![{\displaystyle \psi :\Sigma ^{*}\to M}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
к некоторому моноиду M , такому, что выполняются «обычные» свойства следа, а именно:
- 1. подразумевает, что
![{\displaystyle \psi (w)=\psi (\varepsilon)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle w=\varepsilon }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- 2. подразумевает, что
![{\displaystyle (a,b)\in I_{D}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\ displaystyle \ psi (ab) = \ psi (ba)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- 3. подразумевает, что
![{\ displaystyle \ psi (ua) = \ psi (v)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \psi (u)=\psi (v\div a)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
- 4. и подразумевать, что
![{\ displaystyle \ psi (ua) = \ psi (vb)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle а\neq b}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle (a,b)\in I_{D}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Морфизмы зависимостей универсальны в том смысле, что для данной фиксированной зависимости D , если это морфизм зависимости моноида M , то M изоморфен моноиду следа . В частности, естественный гомоморфизм является морфизмом зависимостей.![{\displaystyle \psi :\Sigma ^{*}\to M}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \mathbb {M} (D)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Нормальные формы
Существуют две хорошо известные нормальные формы слов в следовых моноидах. Одна из них — это лексикографическая нормальная форма, созданная Анатолием В. Анисимовым и Дональдом Кнутом , а другая — нормальная форма Фоата , созданная Пьером Картье и Домиником Фоата , которые изучали моноид следа в целях его комбинаторики в 1960-х годах. [3]
Каноническое разложение формы нормализации Юникода (NFD) является примером лексикографической нормальной формы - порядок заключается в сортировке последовательных символов с ненулевым каноническим комбинирующим классом по этому классу.
Трассировка языков
Точно так же, как формальный язык можно рассматривать как подмножество множества всех возможных строк, так и язык трассировки определяется как подмножество всех возможных трасс.![{\displaystyle \Сигма ^{*}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \mathbb {M} (D)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Альтернативно, но эквивалентно, язык является языком трассировки или считается совместимым с зависимостью D , если![{\displaystyle L\subseteq \Sigma ^{*}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle L=[L]_{D}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
где
![{\displaystyle [L]_{D} =\bigcup _{w\in L}[w]_{D}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
— это замыкание трассировки набора строк.
Смотрите также
Примечания
- ^ Шандор и Крстичи (2004) стр.161
- ^ Предложение 2.2, Дикерт и Метивье, 1997.
- ^ Раздел 2.3, Дикерт и Метивье, 1997.
Рекомендации
Общие ссылки
- Дикерт, Волкер; Метивье, Ив (1997), «Частичная коммутация и следы», Розенберг, Г.; Саломаа А. (ред.), Справочник по формальным языкам, том. 3; Beyond Words , Springer-Verlag, Берлин, стр. 457–534, ISBN. 3-540-60649-1
- Лотер, М. (2011), Алгебраическая комбинаторика слов , Энциклопедия математики и ее приложений, том. 90, С предисловием Жана Берстеля и Доминика Перрена (перепечатка издания в твердом переплете 2002 г.), Cambridge University Press, ISBN 978-0-521-18071-9, Збл 1221,68183
- Антони Мазуркевич, «Введение в теорию следов», стр. 3–41, в «Книге следов» , В. Дикерт, Г. Розенберг, ред. (1995) World Scientific, Сингапур ISBN 981-02-2058-8
- Волкер Дикерт, Комбинаторика следов , LNCS 454, Springer, 1990, ISBN 3-540-53031-2 , стр. 9–29.
- Шандор, Йожеф; Крстичи, Борислав (2004), Справочник по теории чисел II , Дордрехт: Kluwer Academic, стр. 32–36, ISBN 1-4020-2546-7, Збл 1079.11001
Основополагающие публикации
- Пьер Картье и Доминик Фоата, Комбинированные проблемы коммутации и перестановок , Конспекты лекций по математике 85, Springer-Verlag, Берлин, 1969, бесплатное переиздание 2006 г. с новыми приложениями.
- Антони Мазуркевич, Схемы параллельных программ и их интерпретации , Отчет DAIMI PB 78, Орхусский университет, 1977 г.