Giter Club home page Giter Club logo

formal-lang-course's Issues

Актуализировать баллы за задачи и оценки

В частности, после удаления некоторых задач получилось странное: максимальный балл за все задачи 140, а на тройку надо хотя бы 40. По крайней мере, в табличке так сейчас получается.

Добавить гарантированно содержательные тесты

С текущим генератором графов для RPQ и CFPQ легко нарваться на ответы типа [set(), set(), set(), set()] в большой части тестов. Это может привести к адекватным на первый взгляд решениям, которые на самом деле некорректны.
Эту проблему можно попробовать решить двумя путями:

  1. Curated набор тестов. Буквально по одному-двум на задачку, с гарантировано не пустым ответом.
  2. Попробовать использовать генератор более плотных графов. Можно в комбинации.

Изменить неудачные названия

Некоторые названия функций и классов получились не очень. Все пункты скорее всего требуют обсуждения.

  • FiniteAutomaton клэшится с оным в pyformlang, предлагаю MatrixFA (ещё есть мысль просить не конструкторы, а статические методы типа from_pyformlang, иначе там какая-то дичь в конструкторе вылезает)
  • project -> flc (formal lang course)
  • paths_ends -> ???
  • reachability_with_constraints -> ???
  • TestReachability -> TestRPQ & TestCFPQ

Список будет пополняться

Выделить общие части тестов

Уже сейчас дублируются штуки типа

LABEL = "label"
IS_FINAL = "is_final"
IS_START = "is_start"

Точно можно смотреть вот сюда как на хороший пример того, что требует рефакторинга.

Точно можно

  • выделить всю работу с графами
  • собрать общую коллекцию запросов: регулярок, грамматик и т.д.
  • унифицировать цункции проверки эквивалентности результатов

Может, если внимательно подумать, ещё что-то можно будет выделить и собрать в одном месте.

Удалить CYK из задач

Он мало зачем нуден, а его удаление позволит сделать дедлайны более разумными, а не дотягивать до 30 декабря.

Уточнить размер плотного графа

Из #141. Пока что размер графа ограничен 40, потому что в нашей реализации задача 6 тормозит. Стоит выяснить как дела у других решений, и от этого плясать с размером графа

Задание 13, типизация `Get_start` для `RSM`

Сейчас типизация Get_start для RSM описывается так:

[e](b) => RSM<t>
____________________________
[Get_start (e)](b) => RSM<t>

Это опечатка (кажется, что снизу должно быть [Get_start (e)](b) => Set<t>) или поразумевается не просто возврат вершин, а что-то другое (например, также возврат информации о том, для какого нетерминала каждая вершина является стартовой, но тогда все равно не ясно, почему именно RSM<t>)?

Чётче описать, что замеряем в экспериментах

Сейчас в функцию КС достижимости попадает шаг построения троек вида (вершина, вершина, нетерминал). При постановке экспериментов этот шаг из некоторых функций пропадает, а из некоторых --- нет. Получаются не очень честные замеры.

Как решение --- на уровне домашек чётко разделять шаг построения матриц и преобразование матриц в тройки.

Дайте записи видео лекций!

Братишки, родненькие! 🥺 Поделитесь видеолекциями курса, пожалуйста! Хочу написать парсер SQL, не хватает формальных знаний.

Ваши записи (не читал, но пробежался) "Материалы по достижимости с ограничениями в терминах формальных языков" это прям бомба! Лучшее что я находил на просторах русско и англоязычного интернета. Но полноценных лекций, конечно, не хватает.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.