-
Notifications
You must be signed in to change notification settings - Fork 6
Лабораторная работа 5. Захарин Сергей #170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3175,5 +3175,136 @@ | |
|
|
||
| ' | ||
|
|
||
| - answer: 'Постовской системой соответствия над алфавитом Σ называется пара конечных последовательностей | ||
| ((x_1, ..., x_n), (y_1, ..., y_n)), где x_i ∈ Σ* и y_i ∈ Σ* для всех i. | ||
| То есть постовская система соответствия - это набор пар строк (x_i, y_i), где x_i и y_i - это строки над некоторым алфавитом Σ, | ||
| которые связаны друг с другом определённым образом. | ||
|
|
||
|
|
||
| ' | ||
| author: Захарин Сергей | ||
| id: 182 | ||
| questions: | ||
| - 'Что такое постовская система соответствий? | ||
|
|
||
| ' | ||
| - answer: 'Языком Лукасевича над n + 1 буквами называется контекстно-свободный язык над алфавитом {a_0, a_1,...,a_n}, порождаемый грамматикой: | ||
| S → a_0, S → (a_1)S, S → (a_2)SS, ..., S → (a_n)S^n. | ||
| Замечание: при любом n ∈ ℕ эта грамматика является однозначной. | ||
|
|
||
| ' | ||
| author: Захарин Сергей | ||
| id: 183 | ||
| questions: | ||
| - 'Что такое язык Лукасевича? | ||
|
|
||
| ' | ||
| - answer: 'Массовой задачей (problem) называется бесконечная серия “однотипных” индивидуальных задач (instance), | ||
| каждая из которых имеет определённый ответ. С каждой массовой задачей связана некоторая фиксированная схема кодирования (encoding scheme), | ||
| которая отображает индивидуальные задачи в их коды — слова в некотором фиксированном алфавите. При этом требуется, чтобы множество кодов всех | ||
| индивидуальных задач было разрешимым. | ||
|
|
||
| ' | ||
| author: Захарин Сергей | ||
| id: 184 | ||
| questions: | ||
| - 'Что такое массовая задача? | ||
|
|
||
| ' | ||
| - answer: 'Задачей распознавания (decision problem) называется массовая задача, в которой ответами индивидуальных задач могут быть только “да” и “нет” | ||
| (то есть существует только два возможных ответа). | ||
| Пример: Зафиксируем некоторый алфавит Σ. Рассмотрим следующие однотипные индивидуальные задачи: даны два слова x ∈ Σ* и y ∈ Σ*, необходимо выяснить, | ||
| является ли слово x подсловом слова y. Пусть # — новый символ, не принадлежащий алфавиту Σ. Кодом индивидуальной задачи про конкретные слова x и y будем считать | ||
| слово x#y в алфавите Σ ∪ {#}. Эта массовая задача является задачей распознавания. | ||
|
|
||
| ' | ||
| author: Захарин Сергей | ||
| id: 185 | ||
| questions: | ||
| - 'Что такое задача распознавания? | ||
|
|
||
| ' | ||
| - answer: 'Пусть x_0, x_1, ..., x_p при 0 ≤ p < ∞ — вектора в множестве ℕ^m. | ||
| Множество L = { b + \sum_{i=1}^{p} k_i x_i ⏐ b ∈ B, k ≥ 0, k_1, ..., k_p ∈ ℕ } = x_0 + { x_1, ..., x_p }* | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Что такое B? Также в примере показать, как L можно выразить посредством итерации. |
||
| называется линейным (англ. linear) подмножеством множества ℕ^m. Говоря проще, линейное подмножество ℕ^m может быть построено с помощью любого m-размерного | ||
| вектора x_0 добавлением к нему произвольного числа m-размерных векторов из конечного множества, например, 1 раз x_1 и 0 раз остальные вектора, | ||
| 1 раз x_1, 1 раз x_2 и 0 раз остальные, и так далее. Примечание: \sum_{i=1}^{p} обозначается сумма по i от 1 до p. | ||
| Пример: Множество L={(0,0)+k_1(0,2)+k_2(2,0) ∣ k_1,k_2∈ℕ} = {(2k_1,2k_2) ∣ k_1,k_2∈ℕ} является линейным. | ||
|
|
||
| ' | ||
| author: Захарин Сергей | ||
| id: 186 | ||
| questions: | ||
| - 'Что такое линейное множество? | ||
|
|
||
| ' | ||
| - answer: 'Множество A ⊆ ℕ^n называется полулинейным (semilinear), если оно является объединением конечного числа линейных множеств. | ||
| Пример: Пусть L1=(1,2)+{(3,5),(7,11)}* , L2=(1,1)+{(2,3),(5,7),(4,0)}*, L1 и L2 линейные подмножества ℕ^2, а L=L1∪L2 является полулинейным подмножеством ℕ^2. | ||
|
|
||
| ' | ||
| author: Захарин Сергей | ||
| id: 187 | ||
| questions: | ||
| - 'Какое множество называется полулинейным? | ||
|
|
||
| ' | ||
| - answer: 'Через Ψ_Σ будем обозначать функцию Ψ_Σ: Σ* → ℕ^m, определённую следующим | ||
| образом: Ψ_Σ(w) = 〈 |w|_{a_1}, ..., |w|_{a_m} 〉, где |w|_{a_i} — число появлений символа a_i в слове w. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. лучше - число вхождений |
||
| Аналогично, каждому языку L ⊆ Σ* ставится в соответствие множество Ψ_Σ(L) ⊆ ℕ^m, | ||
| определённое так: Ψ_Σ(L) = { Ψ_Σ(w) ⏐ w ∈ L }. Функция называется отображением Парика соответственно слова и языка. | ||
| Пример: Пусть Σ = {a,b} и L = {a,abb,bba}. Тогда Ψ_Σ(L)={⟨1,0⟩,⟨1,2⟩}. | ||
|
|
||
| ' | ||
| author: Захарин Сергей | ||
| id: 188 | ||
| questions: | ||
| - 'Что такое отображение Парика? | ||
|
|
||
| ' | ||
| - answer: 'Если язык L ⊆ Σ* является контекстно-свободным, то множество Ψ_Σ(L) является полулинейным. Где Ψ_Σ(L) - отображение Парика. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Чуть-чуть оживить примерами. Это не совсем дубль ответа Милены, т.к. там речь о коммутативных образах, а тут речь о векторах кратности только. |
||
| Множество A ⊆ ℕ^n называется полулинейным, если оно является объединением конечного числа линейных множеств. Определение линейного множества: | ||
| Пусть x_0, x_1, ..., x_p при 0 ≤ p < ∞ — вектора в множестве ℕ^m. | ||
| Множество L = { b + \sum_{i=1}^{p} k_i x_i ⏐ b ∈ B, k ≥ 0, k_1, ..., k_p ∈ ℕ } = x_0 + { x_1, ..., x_p }* | ||
| называется линейным (англ. linear) подмножеством множества ℕ^m. Говоря проще, линейное подмножество ℕ^m может быть построено с помощью любого m-размерного | ||
| вектора x_0 добавлением к нему произвольного числа m-размерных векторов из конечного множества, например, 1 раз x_1 и 0 раз остальные вектора, | ||
| 1 раз x_1, 1 раз x_2 и 0 раз остальные, и так далее. Примечание: \sum_{i=1}^{p} обозначается сумма по i от 1 до p. | ||
| Пример: Пусть Σ = {a, b}, тогда рассмотрим язык L = {(a^m)(b^n) | m > n или m простое}. Можно проверить, что множество Ψ_Σ(L) не является полулинейным. Следовательно, | ||
| язык L не является контекстно-свободным. | ||
|
|
||
| ' | ||
| author: Захарин Сергей | ||
| id: 189 | ||
| questions: | ||
| - 'Теорема Парика | ||
|
|
||
| ' | ||
| - answer: 'Произвольный язык L ⊆ Σ* является контекстно-свободным тогда и только тогда, когда существуют натуральное число n, | ||
| регулярный язык L_1 над алфавитом Σ^{(D)}_n = {a_1, b_1, a_2, b_2, ..., a_n, b_n} и гомоморфизм h: (Σ^{(D)}_n)* → Σ*, такие что | ||
| L = h(L^{(D)}_n ⋂ L_1), где L^{(D)}_n — язык Дика над 2n буквами. | ||
| Пример: Рассмотрим язык L = {a^n b^n | n ≥ 0}. Пользуясь теоремой Хомского-Шютценберже, докажем, что он КС. Возьмем n = 1, тогда | ||
| язык Дика строится над алфавитом {a_1, b_1} и включает, например, такие строки: L^{(D)}_1 = {ε, a_1 b_1, a_1 a_1 b_1 b_1, a_1 b_1 a_1 b_1, ...}. | ||
| Пусть регулярный язык L_1 над расширенным алфавитом {a_1, b_1}: L_1 = {a_1^m b_1^m | m ≥ 0}. Гомоморфизм h отображает символы a_1 и b_1 расширенного | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. L_1 всё ещё не регулярный ((( |
||
| алфавита в исходный алфавит Σ = {a, b}: h(a_1) = a, h(b_1) = b. Пересечение языка Дика и регулярного языка даёт строки, в которых количество a_1 равно | ||
| количеству b_1, причём все a_1 предшествуют всем b_1: L^{(D)}_1 ⋂ L_1 = {a_1^n b_1^n | n ≥ 0}. Применяя гомоморфизм h, мы получаем язык: | ||
| h(L^{(D)}_1 ⋂ L_1) = {a^n b^n | n ≥ 0}, который и равен L. Следовательно, L - КС язык. | ||
|
|
||
| ' | ||
| author: Захарин Сергей | ||
| id: 190 | ||
| questions: | ||
| - 'Теорема Хомского-Шютценберже о представлении контекстно-свободного языка | ||
|
|
||
| ' | ||
| - answer: 'Представление КС-языка через язык Дика и регулярный язык (КС-язык в представлении Хомского-Шютценберже): будем говорить, | ||
| что КС-язык над некоторым алфавитом задан в представлении Хомского-Шютценберже, если определены | ||
| 1) язык Дика, связанный с некоторым числом n ∈ ℕ | ||
| 2) регулярный язык, построенный над расширенным алфавитом, который состоит из символов вида a_1, b_1, a_2, b_2, ..., a_n, b_n | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. , где a_i соответствуют открывающим скобкам, а b_i - закрывающим |
||
| 3) морфизм, который отображает строки, составленные из символов расширенного алфавита, в строки исходного алфавита. | ||
| В итоге КС-язык получается как образ пересечения языка Дика и регулярного языка при применении этого морфизма. | ||
|
|
||
| ' | ||
| author: Захарин Сергей | ||
| id: 191 | ||
| questions: | ||
| - 'Представление КС-языка через язык Дика и регулярный язык. | ||
|
|
||
| ' | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Почти есть:
https://gist.github.com/stewkk/8710ffaf6cd200d4d7b86967d7401bd5
Надо объяснить словами, в чём её физический смысл, чтобы не дублировать инфу