Ниже изображён автомат, распознающий все слова из букв a и b, задаваемые регулярным выражением (ab)*. Переделайте его так, чтобы он распознавал все слова в этом же алфавите, кроме этих.
Постарайтесь, чтобы автомат содержал как можно меньше состояний.
Возьмём за основу предложенный в начальном решении автомат. Когда он заканчивает работу в состоянии S0 это значит, что строка распозналась, а когда в S1 — что не распозналась. Нам же сейчас нужно сделать всё наоборот, поэтому S0 перестаёт быть конечным состоянием, зато им становится S1.
Кроме того, исходный автомат вообще не обрабатывал слова, к которых буквы а и b не чередовались. Теперь нам нужны эти слова, поэтому надо добавить их обработку. Как только мы в состоянии S0 встречаем букву b или в состоянии S1 букву а, это сразу означает, что нам встретилось нужное слово вне зависимости от того, что будет дальше. Поэтому в этом случае мы переходим в конечное состояние S2, которое уже не покидаем.
Ответ: см. рис.