Реализованы алгоритмы построения ДКА и МПДКА по НКА. Для построения ДКА используется алгоритм Томпсона, построение МПДКА осуществляется выделением классов эквивалентности.
Основной класс DOA находится в prac_1/DOA.py, в prac_1/parser.py реализованы функции чтения и записи файлов в формате .doa, для графического отображение автоматов используется библиотека graphviz в prac_1/drawer.py.
Юнит-тесты реализованы в prac_1/test/test_DOA.py. Тесты прогоняются на 6 автоматах, каждый метод проверяется на корректность (автомат проверяется на выводимость и невыводимость конкретных слов), также проверяется изоморфность с МПДКА. В prac_1/test/graphs генерируются графики всех промежуточных этапов тестирования. Покрытие тестами основного класса составляет 98%.
- Установите необходимые библиотеки с prac_1/requirements.txt
- Введите НКА в prac_1/input.doa в нужном формате (считается, что ввод корректный).
- Запустите prac_1/main.py из prac_1
- Выберите нужную опцию
- Результат будет записан в prac_1/output.doa, графическое изображение будет в prac_1/graph.pdf