Skip to content

Task3 - #3

Open
ns-58 wants to merge 11 commits into
mainfrom
Task3
Open

Task3#3
ns-58 wants to merge 11 commits into
mainfrom
Task3

Conversation

@ns-58

@ns-58 ns-58 commented Sep 21, 2025

Copy link
Copy Markdown
Owner
  • Реализовать тип (AdjacencyMatrixFA), представляющий конечный автомат в виде разреженной матрицы смежности из sciPy (или сразу её булевой декомпозиции) и информации о стартовых и финальных вершинах. У типа должны быть конструктор от DeterministicFiniteAutomaton и NondeterministicFiniteAutomaton (первый является подклассом второго, так что можно не различать их явно) из Задачи 2.
  • Реализовать функцию-интерпретатор для типа AdjacencyMatrixFA, выясняющую, принимает ли автомат заданную строку и является ли язык, задающийся автоматом, пустым. Для реализации последней функции рекомендуется использовать транзитивное замыкание матрицы смежности.
    • Требуемые функции:
      def accepts(self, word: Iterable[Symbol]) -> bool:
       pass
      def is_empty(self) -> bool:
       pass
  • Используя разреженные матрицы из sciPy реализовать функцию пересечения двух конечных автоматов через тензорное произведение.
    • Требуемая функция:
      def intersect_automata(automaton1: AdjacencyMatrixFA,
              automaton2: AdjacencyMatrixFA) -> AdjacencyMatrixFA:
         pass
  • На основе предыдущей функции реализовать функцию выполнения регулярных запросов к графам: по графу с заданными стартовыми и финальными вершинами и регулярному выражению вернуть те пары вершин из заданных стартовых и финальных, которые связанны путём, формирующем слово из языка, задаваемого регулярным выражением.
    • Требуемая функция:

      def tensor_based_rpq(regex: str, graph: MultiDiGraph, start_nodes: set[int],
            final_nodes: set[int]) -> set[tuple[int, int]]:
         pass
    • Для конструирования регулярного запроса и преобразований графа использовать результаты Задачи 2.

@ns-58
ns-58 marked this pull request as draft September 21, 2025 21:39
@ns-58
ns-58 marked this pull request as ready for review January 22, 2026 23:16
@ns-58

ns-58 commented Apr 8, 2026

Copy link
Copy Markdown
Owner Author

@aartdem, готово к ревью

@aartdem aartdem left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants