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