С конца 1960-х годов изучается задача минимизации недетерминированных конечных автоматов. В практических программах для больших размерностей получение точного ответа обычно занимает неприемлемо большое время. В связи с этим нас интересуют, среди прочих, эвристические алгоритмы решения задачи - алгоритмы, <<ничего не обещающие>>, однако на практике в большинстве случаев дающие за приемлемое время работы решение, близкое к оптимальному.
Предлагаемый школьникам проект направлен на частичное решение одной из вспомогательных задач, возникающих в упомянутой оптимизационной задаче. Для этого мы специальным образом определяем отношение эквивалентности на множестве таблиц заданного размера M x N, заполненных элементами 0 и 1. Получение количества неэквивалентных таблиц размерности 8 x 10 будет являться серьёзным шагом на пути к доказательству того факта, что описанный ещё в 1970 г. пример <<плохого>> автомата (так называемого автомата Ватерлоо) - минимально возможный пример, не имеющий <<меньших>> аналогов.
Для решения задачи мы сначала предлагаем плохой алгоритм, заключающийся в~простом переборе матриц. Этот алгоритм хорошо работает на матрицах малых размерностей, но, как обычно в подобных ситуациях, при переходе к большим размерностям он работает неприемлемо долго. Для уменьшения времени работы алгоритма мы предлагаем несколько эвристик и приводим результаты работы разных версий программы. Цель проекта - создание новых эвристик, ещё большее убыстрение времени работы программы и, по возможности, получение ответа (количества таблиц) для размерности 8 x 10.
Для большинства описываемых в статье вариантов алгоритма мы приводим реализацию на языке C#, использующую принципы объектно-ориентированного программирования. Мы предполагаем, что дальнейшая работа над проектом будет заключаться в дальнейшей модификации приведённых нами программ. C. 87-107.
Since the late 1960s, the problem of minimizing non-deterministic finite automata has been studied. In practical programs for large dimensions, obtaining an exact answer usually takes an unacceptably long time. In this regard, we are interested in, among others, heuristic algorithms for solving the problem, i.e. in algorithms that ``do not promise anything'', which, however, in practice in most cases, they give a solution that is close to optimal for an acceptable working time. The project proposed for schoolchildren is aimed at a partial solution of one of the auxiliary tasks arising in the mentioned optimization problem. To do this, we define in a special way the equivalence relation on the set of tables of a given size M x N filled with elements 0 and 1. Obtaining the number of nonequivalent tables of dimension 8 x 10 will be a serious step on the way to proving the fact that the example of the ``bad'' automaton described in 1970 (the so-called Waterloo automaton) is the minimal possible example, not having ``lesser'' analogues. To solve the problem, we first propose a bad algorithm, which consists in a simple enumeration of matrices. This algorithm works well on matrices of small dimensions, but, as usual in such situations, it works unacceptably long when moving to large dimensions. To reduce the operating time of the algorithm, we offer several heuristics, and present the results of the work of different versions of the program. The goal of the project is the creation of new heuristics, an even greater increase in the operating time of the program and, if possible, obtaining an answer (the number of tables) for the dimension 8 x 10. For the majority of variants of the algorithm described in the paper, we present the implementation in C# using the principles of the object-oriented programming. We assume that further work on the project will consist in further modification of the programs we have provided.
Ключевые слова: оптимизационная задача, конечный автомат, эвристический алгоритм, первый шаг в науке.
Keywords: optimization problem, finite automaton, heuristic algorithm, the first step in science.