Асимптотична щільність неоднозначних безконтекстних граматик (CFG)


9

Яке співвідношення неоднозначних CFG до всіх CFG ?

Оскільки обидва набори помітно нескінченні, співвідношення не є чітко визначеним. А як щодо асимптотичної щільності :

limn# ambiguous CFG of size<n# CFG of size<n

де символи кінцевих та нетермінальних пристроїв походять з фіксованого налічуваного набору.

Розмір граматики - це будь-яке розумне поняття розміру для граматик, наприклад

  1. загальна кількість зустрічей змінних і терміналів у правилах виробництва, або
  2. загальна кількість випадків змінної, або
  3. загальну кількість правил виробництва, або
  4. кількість чітких змінних.

(Я припускаю, що визначення розміру не вплине на відповідь.)


3
В бік літератури були розглянуті такі поняття розміру CFG: Щодо понять розміру граматики, то в літературі з'явилися наступні. (1) Загальна кількість виникнень змінних і терміналів по обидва боки всіх виробництв у граматиці. (2) Кількість змінних входження в обидві сторони всіх виробництв у граматиці. (3) Кількість творів у граматиці. (4) Кількість різних змінних у граматиці.
Мартін Бергер

1
Див. Наприклад: С. Гінзбург, Н. Лінч, Складність розміру в безтекстових граматичних формах. Й. Груська, Про розмір граммарів без контексту. Й. Груська, Складність та однозначність безтекстових граматик та мов. А. Келеменова, Складність граматики нормальної форми.
Мартін Бергер

1
@Martin, якщо не бути обережними, то може бути нескінченно багато синтаксично різних граматик заданого розміру, і співвідношення не матиме сенсу. Безпечний спосіб - підрахувати довжину бітів деякого фіксованого кодування граматик.
Каве

1
Можливо, ви хочете визначити асимптотичну щільність як відношення логарифмів відповідних величин, оскільки обидві величини експоненціальні, ймовірно, з різними основами.
mobius dumpling

1
@MartinBerger Якщо припустити, що ми говоримо про те саме, тобто визначення , це очевидно вплине на щільність. Припустимо, що кількість однозначних CFG дорівнює а кількість CFG - , тоді щільність log - а асимптотична щільність - 0. Я майже впевнений, що асимптотична щільність буде або 0, або 1, але асимптотична щільність журналу, ймовірно, буде цікавим числом. logdensity=log(#unambiguousCFGs)/log(#CFGs)1.5n2nlog1.52
mobius dumpling

Відповіді:


4

Питання залежить від точного кодування. Однак, здається, що у багатьох розумних кодуваннях, оскільки довжина має тенденцію до нескінченності, кількість виробничих правил (для відповідної інтерпретації вихідного символу і терміналу ) буде більше, ніж одна з великою ймовірністю; тут я буквально маю на увазі той же термінал . Якщо ми розглядаємо це як неоднозначність, то я очікую, що «більшість» граматик будуть неоднозначними. Ми також можемо створити подібні ситуації, такі як правила і з'являються принаймні один раз.SаSааSSSа

Припускаючи цю загальну гіпотезу, що кожне (фіксоване) мислиме правило повинно з'являтися з великою часткою ймовірності, оскільки довжина має тенденцію до нескінченності, ми знаходимо, що "більшість" граматик генерують неоднозначно.Σ

Як приклад, розглянемо наступне кодування для граматик над . Алфавіт граматики складається з символів . Нетермінали індексуються двійковими рядками довжиною не менше 2. Правила розділені повними зупинками. Кожне правило - це послідовність двійкових рядків, розділених крапками з комою. Перший двійковий рядок - це нетермінальний лівий бік, а решта (якщо такі є) є правою; якщо перша двійкова рядок не є нетермінальною (тобто вона , 0,1), то припускається початковий нетермінальний. Стартовий нетермінальний завжди є 00.Σ={0,1}{0,1,;,.}ϵ

Під цим кодуванням кожен рядок у Описує деяку граматику. Випадкова граматика буде з великою часткою ймовірності містити багато примірниківі, і зокрема буде неоднозначним.{0,1,;,.}.00;00..00;0.


Так, я вважаю такими правила, як і (які з’являються не один раз) у граматиці, як дійсні. Дійсно, це робить граматику тривіально неоднозначною. Ура. SSSa
user18064

Але хіба це не так, що зі збільшенням розміру (CFG) кількість терміналів і нетерміналів зазвичай збільшується, тому нам потрібно більше бітів для їх представлення, отже, нам потрібно більше бітів для представлення окремих правил. Тож кількість CFG, які однозначно з тривіальних причин (наприклад, лише одне правило вписується в обмежений розмір), також збільшується.
Мартін Бергер

@Martin Це залежить від кодування. Можливо, ви можете придумати кодування, що підтримує вашу заяву, наприклад, якщо розмір алфавіту зростає з розміром граматики. Моє кодування використовує постійний розмір алфавіту, тому цього ефекту не відбувається.
Yuval Filmus

@MartinBerger Це достовірний момент щодо збільшення кількості термінальних та нетермінальних символів, оскільки ми збільшуємо розмір граматики. Для випадків використання, таких як мови програмування, це має сенс.
user18064

@ user18064 Мови програмування зазвичай використовують алфавіт постійного розміру, в більшості випадків - підмножину ASCII. Мені не відома жодна практична мова з необмеженим розміром алфавіту, хоча можна легко їх визначити.
Yuval Filmus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.