Не совсем уверен, что это правильный форум, но в Theoretical Computer Science было предложено перенести его сюда...
Каков типичный размер алфавита конечных автоматов?
В настоящее время я занят реализацией высокопроизводительной библиотеки FA, и мне нужно высказать некоторые соображения по дизайну, прежде чем продолжить. Мое пространство состояния будет порядка 2 147 483 647 (Integer.MAX_VALUE
), что, как мне кажется, более чем достаточно даже для нестандартного использования. Теперь осталось только пространство алфавита.
Есть ли смысл полагать, что алфавит обычно состоит только из всех отображаемых символов (в этом случае его можно сохранить как byte
, что приведет к действительно хорошей производительности)? Или символы алфавита лучше перевести в String
s, чтобы у вас были метки алфавита? В этом случае мне нужно будет сохранить карту, которая переводит String
в int
, short
или byte
, в зависимости от того, насколько большим я хочу ее сделать.