Jump to content

Язык шаблонов (формальные языки)

В теоретической информатике язык шаблонов — это формальный язык , который можно определить как набор всех конкретных экземпляров строки констант и переменных. Языки шаблонов были представлены Даной Англуин в контексте машинного обучения . [1]

Определение

[ редактировать ]

Учитывая конечное множество Σ постоянных символов и счетное множество X переменных символов , не пересекающихся с Σ, шаблон представляет собой конечную непустую строку символов из Σ∪ X .Длина шаблона p , обозначаемая | p |, — это просто количество его символов.Набор всех шаблонов, содержащих ровно n различных переменных (каждая из которых может встречаться несколько раз), обозначается P n , набор всех шаблонов вообще - P * .Подстановкой называется такое отображение f : P * P * , что [примечание 1]

  • f гомоморфизм относительно конкатенации строк (⋅), формально: ∀ p , q P * . ж ( п q ) знак равно ж ( п )⋅ ж ( q );
  • f не стирает, формально: ∀ p P * . f ( p ) ≠ ε, где ε обозначает пустую строку ; и
  • f соблюдает константы, формально: ∀ s ∈Σ. ж ( s ) знак равно s .

Если p = f ( q ) для некоторых шаблонов p , q P * и некоторой замены f , то p называется менее общим, чем q , и пишется p q ;в таком случае обязательно | р | ≥ | д | держит.Для шаблона p его язык определяется как набор всех менее общих шаблонов, которые построены только из констант, формально: L ( p ) = { s ∈ Σ + : s p }, где Σ + обозначает множество всех конечных непустых строк символов из Σ.

Например, используя константы Σ = { 0, 1 } и переменные X = { x , y , z , ... }, шаблон 0 x 10 xx 1 ∈ P 1 и xxy P 2 имеет длину 7 и 3. , соответственно.Примером первого шаблона является 00 z 100 z 0 z 1 и 01 z 101 z 1 z 1. Он получается путем замены, которая отображает x в 0 z и в 1 z соответственно, а каждый другой символ сам в себя. Оба 00 z 100 z 0 z 1 и 01 z 101 z 1 z 1 также являются экземплярами xxy . Фактически, L (0 x 10 xx 1) является подмножеством L ( xxy ). Язык шаблона x 0 и x 1 представляет собой набор всех битовых строк, которые обозначают четное и нечетное двоичное число соответственно. Язык xx — это набор всех строк, которые можно получить путем объединения битовой строки с самой собой, например 00, 11, 0101, 1010, 11101110 ∈ L ( xx ).

Характеристики

[ редактировать ]
NP-трудность принадлежности к языку шаблонов путем сокращения из NP-полной задачи 1-в-3-SAT : дана КНФ из m предложений с n переменными, шаблон длины 3 n +4 m +1 с 2 n переменными и строку длины 4 n+5 m +1 можно построить, как показано ( m =3 и n в примере =4). Переменные в верхнем регистре в шаблоне соответствуют отрицательным переменным в CNF. Строка соответствует шаблону тогда и только тогда, когда существует присвоение, такое, что в каждом предложении ровно один литерал равен 1 (что означает « истина » в CNF). В левой части, например, «0 wW 0» соответствует «01110», только если одному из w , W соответствует «1» (соответствует « false »), а другому — «11» (соответствует « true ») . ), т.е. если w соответствует отрицанию W . В правой части, например, «0 xYZ 0» соответствует «011110», только если ровно одному из x , Y , Z соответствует «11», а остальным — «1», т.е. если ровно один литерал соответствует « true». ".

Проблема определения того, является ли s L ( p ) для произвольной строки s ∈ Σ + и шаблон p является NP-полным (см. рисунок),и, следовательно, возникает проблема определения p q для произвольных шаблонов p , q . [2]

Класс языков шаблонов не закрывается под...

  • объединение: например, для Σ = {0,1}, как указано выше , L (01) ∪ L (10) не является языком шаблонов;
  • дополнение: Σ + \ L (0) не является языком шаблонов;
  • пересечение: L ( x 0 y ) ∩ L ( x 1 y ) не является языком шаблонов;
  • Клини плюс : L (0) + не является языком шаблонов;
  • гомоморфизм: f ( L ( x )) = L (0) + не является языком шаблонов, если предположить, что f (0) = 0 = f (1);
  • обратный гомоморфизм : f −1 (111) = {01, 10, 000} не является языком шаблонов, если предположить, что f (0) = 1 и f (1) = 11.

Класс языков шаблонов закрыт под...

  • конкатенация: L ( п )⋅ L ( q ) знак равно L ( п q );
  • разворот: L ( п ) оборот = L ( п оборот ). [3]

Если p , q P1 L — шаблоны, содержащие ровно одну переменную, то p q тогда и только тогда, когда ( p ) L ( q );та же эквивалентность справедлива для шаблонов одинаковой длины. [4] Для шаблонов разной длины приведенный выше пример p = 0 x 10 xx 1 и q = xxy показывает, что L ( p ) ⊆ L ( q ) может выполняться, не подразумевая p q .Однако любые два шаблона p и q произвольной длины генерируют один и тот же язык тогда и только тогда, когда они равны с точностью до последовательного переименования переменных. [5] Каждый шаблон p является общим обобщением всех строк в сгенерированном им языке L ( p ) по модулю ассоциативности (⋅).

Место в иерархии Хомского

[ редактировать ]

В уточненной иерархии Хомского класс языков шаблонов является собственным суперклассом и подклассом синглтона. [примечание 2] и индексированные языки соответственно, но несравнимы с промежуточными языковыми классами; из-за последнего класс языка шаблонов явно не показан в таблице ниже .

Класс шаблонных языков несравним с классом конечных языков , с классом регулярных языков и с классом контекстно-свободных языков :

  • язык шаблонов L ( xx ) не является контекстно-свободным (следовательно, не является ни регулярным , ни конечным ) из-за леммы о накачке ;
  • конечный (следовательно, также регулярный и бесконтекстный) язык { 01, 10 } не является языком шаблонов.

Каждый одноэлементный язык, по сути, является языком шаблонов, созданным по шаблону без переменных.

Каждый язык шаблонов может быть создан с помощью индексированной грамматики :Например, используя Σ = { a , b , c } и X = { x , y },шаблон a x b y c x a y b генерируется грамматикой с нетерминальными символами N = { S x , S y , S } ∪ X , терминальными символами T = Σ, индексными символами F = { a x , b x , c x , a y , by , x c y , начальный символ S } и следующие правила производства:

S х [σ] S x [ a x σ] | S х [ б х σ] | S x [ c x σ] | S y [σ]
S y [σ] S y [ a y σ] | s y [ by ] σ | s y [ c y σ] | SS ]
SS ] a x [σ] b y [σ] c x [σ] a y [σ] b
х [ а х σ] а х [с]  у [ а х σ] й [с] 
х [ б х с] б х [с] у [ б х с] й [с]
х [ с х с] с х [с] у [ с х с] й [с]
х [ а у σ] х [с] y [ а y σ] а й [с]
х [ у σ ] х [с] y [ by ] σ б й [с]
х [ с у σ] х [с] y [ c y σ] с й [с]
х [] → е и [] → е

Пример вывода:

С х [] S х [ б х S x [ а x b x S y [ а х б х S y [ c y a x b x S [ c y a x b x a x [ c y a x b x ] b y [ c y a x b x ] c x [ c y a x b x ] a y [ c y a x b x ] b a x [ a x b x ] b y [ c y a x b x ] c x [ c y a x b x ] a y [ c y a x b x ] b a a x [ b x ] b y [ c y a x b x ] c x [ c y a x b x ] a y [ c y a x b x ] b a ab x [] b y [ c y a x b x ] c x [ c y a x b x ] a y [ c y a x b x ] b a ab b y [ c y a x b x ] c x [ c y a x b x ] a y [ c y a x b x ] b ⇒ … ⇒ а ab b c y [] c x [ c y a x b x ] a y [ c y a x b x ] b a ab b c x [ c y a x b x ] a y [ c y a x b x ] b ⇒ … ⇒ а ab b c c ab x [] a y [ c y a x b x ] b a ab b c ab a y [ c y a x b x ] b ⇒ … ⇒ а ab b c c ab a c y [] b а аб б в с б а с б

Аналогичным образом индексная грамматика может быть построена на основе любого шаблона.

Шаблоны обучения

[ редактировать ]

Учитывая выборочный набор строк S , шаблон p называется описательным для S, если S L ( p ), но не S L ( q ) ⊂ L ( p ) для любого другого шаблона q .

Учитывая любой набор выборок S , описательный образец для S можно вычислить с помощью

  • перечисление всех шаблонов (вплоть до переименования переменных) не длиннее самой короткой строки в S ,
  • выбирая из них шаблоны, которые порождают надмножество S ,
  • выбирая из них шаблоны максимальной длины, и
  • выбрав из них образец, минимальный по ≤. [6]

На основе этого алгоритма класс языков шаблонов можно в пределе выделить из положительных примеров. [7]

Примечания

[ редактировать ]
  1. ^ Понятие замены Англуина отличается от обычного понятия замены строки .
  2. ^ т.е. языки, состоящие из одной строки; они соответствуют прямолинейным грамматикам
  1. ^ Дана Англуин (1980). «Нахождение закономерностей, общих для набора строк» . Журнал компьютерных и системных наук . 21 : 46–62. дои : 10.1016/0022-0000(80)90041-0 .
  2. ^ Теорема 3.6, стр.50; Следствие 3.7, с.52
  3. ^ Теорема 3.10, стр.53
  4. ^ Лемма 3.9, стр.52; Следствие 3.4, с.50
  5. ^ Теорема 3.5, стр.50
  6. ^ Теорема 4.1, стр.53
  7. ^ Дана Англуин (1980). «Индуктивный вывод формальных языков на основе положительных данных» (PDF) . Информация и контроль . 45 (2): 117–135. дои : 10.1016/s0019-9958(80)90285-5 . ; здесь: Пример 1, стр.125
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 2cb9a5c3674bf4aca9f3b527bd7a22b8__1721620380
URL1:https://arc.ask3.ru/arc/aa/2c/b8/2cb9a5c3674bf4aca9f3b527bd7a22b8.html
Заголовок, (Title) документа по адресу, URL1:
Pattern language (formal languages) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)