TonitaN / FormalLanguageTheory

Slides and tasks for theory of formal languages course BMSTU IU9 (in Russian)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Рубежный контроль I

TonitaN opened this issue · comments

Типы задач

  1. Проанализировать язык на регулярность (база - 3 балла, максимум - 4 балла).
  • В случае, если нерегулярен, то доказательство и накачкой, и таблицей - 4 балла; что-то одно - 3 балла
  • В случае, если регулярен, то доказательство и предъявлением регулярки (произвольной), и произвольным ДКА - 4 балла; что-то одно - 3 балла. Дополнительно нужно полуформальное обоснование, почему данное описание действительно адекватно языку.
  1. Проанализировать язык (база - 6 баллов, максимум - 7 баллов)
  • Если он не КС - опровергнуть это леммой о накачке и свойствами замыканий. Дополнительно опровергнуть регулярность посредством анализа классов эквивалентности - +1 балл.
  • Если он КС, но не регулярный - построить КС-грамматику или PDA и опровергнуть регулярность (любым способом). При использовании больше, чем одного способа опровержения - +1 балл.
  • Если он регулярный - построить минимальный ДКА (база) и его синтаксический моноид (+1 балл)
  • Если язык не КС, но вы опровергли его регулярность (а не КС-свойство) - то получаете за эту задачу 2 балла при чистом доказательстве нерегулярности, неважно, сколькими способами.
  1. Определить, описывает ли данная грамматика регулярный язык (база = максимум = 3 балла)
  • Для опровержения регулярности не обязательно строить полное описание языка. Можно найти инварианты в его словах и показать, что инвариант не сохраняется при накачке, либо показать, что таблица классов эквивалентности бесконечна.
  • Для доказательства регулярности подойдёт любое регулярное представление + обоснование, почему оно адекватно.
  1. Дано неформальное описание языка. Построить распознаватель для него и проанализировать его детерминированность (база - 3 балла, максимум - 5 баллов)
  • Если язык регулярный - то распознаватель здесь: однозначная регулярка, которую нельзя сделать короче комбинациями переписываний по Конвею-Кробу. В этой регулярке необходимо указать позиции, где происходит недетерминированный разбор (т.е. в которых есть неоднозначности в автомате Глушкова). Альтернативный подход - построить минимальный НКА ( за него будет дано 2 балла сверх стоимости задачи, если минимальность обоснована). То есть если решать её двумя способами, то можно получить 5 баллов, только минНКА - 4 балла, только регулярка - 3 балла. Если вы предъявляете просто какую-нибудь регулярку или какой-нибудь НКА (без анализа свойств) - то получаете всего 1 балл за соответствующее представление.
  • Если язык КС - то КС-грамматика в ГНФ (НФ Грейбах), либо с указанием всех правил, неоднозначных при заглядывании вперёд на 1 и на 2 символа, либо PDA (и указать в PDA все недетерминированные переходы). Не обязательно приводить грамматику к ГНФ классическими алгоритмами, лучше сразу такую строить с нуля. Если предъявляется и ГНФ (либо грамматика с анализом на 2-lookahead), и PDA - 5 баллов. Если строится просто какая-нибудь КС-грамматика без анализа свойств - 1 балл.
  • Если язык регулярный, но вы решили задачу про него как для КС - в этом пункте решение будет засчитываться, но на 2 балла вместо 3. Если решили задачу как для КС, но просто предъявив КС-грамматику (без анализа её свойств) - на 0 баллов.

На зачёт нужно 6 баллов. Самый максимум, можно набрать 19 баллов. Кто наберёт, я ещё один балл добавлю от себя как приз зрительских симпатий и чтобы стало круглое число.

Если вы делаете РК как домашнее задание (то есть не очно), то должны решить все задачи на базу, и стоимость всё равно будет минимум (6 баллов). Дополнительные задания в ДЗ не оцениваются. Если вы заранее решили сдавать РК как ДЗ, то 28 октября можно не приходить: достаточно попросить выдать вам вариант РК по электронной почте (или красивой табличкой в этой теме).

РК даётся с расчётом на две пары: семинар и лекцию. Поскольку 51Б потерпела лишения (и не раз) в связи с комиссиями по компиляторам, то могут чуть-чуть задержаться сверх этого времени, но не больше, чем на 15 минут. Пользоваться можно любыми материалами, включая лабораторные работы (не обязательно свои, и не обязательно этого года), но исключая подсказчиков в чатах - кого увижу за этим, репутация упадёт на 50 баллов. Лучше уж вполголоса обсудить задачу с соседом. И помним, что просто аргумент "лабораторная так отработала" не является полноценным обоснованием корректности решения.

Всё проверено. По данному РК лидеры:

Процент зачётов - чуть больше, чем в прошлом году (9+11 против 8+9). В некоторых случаях (где по смыслу верно, но дурацкая опечатка) я зачла "в долг", учитывая, что этот долг будет доделан.

Важное сообщение для тех, у кого чуть-чуть не хватило баллов на зачёт.
Если вы прорешаете задачи, которые не добили на РК, до среды и сумеете мне доказать, что 100% в них разобрались, то я поставлю вам зачёт по РК. Речь о тех задачах, которые вы решали-решали, но не дорешали, дойдя до середины.

Список несчастных: Балтаева (задача 2 или 3), Караник (задача 1), Новак (задача 1), Задворных (задача 2 или 3). В скобках указано то, что нужно дорешать. Если "или" - значит, одну из двух.

Почти: Алешин (1, 2 и 4), Ключник (1), Банников (3), Дужеева (1, 3 и 4), Слесарев (1 и 2). Поскольку вы дальше от желаемого, чем те, кто в первом списке, то с вас требуется доделать всё недоделанное, а не "или одно, или другое", а в случае Ключника и Банникова - ещё одну задачу дополнительно.

Но лично я рекомендую для пользы дела людям из второго списка сдавать полноценное ДЗ, чтобы прокачать ТФЯ получше. Как решил сделать, например, Гречко, не щадя собственных сил.