$A=(X,S,F,S_0,δ)$, где:
- $X=\{...\}$ - конечное множество входящих символов (входящий алфавит)
- $S=\{...\}$ - конечное непустое множество состояний
- $F⊂S$ - множество выделенных заключительных состояний
- $S_0$ - начальное состояние
- $δ$ - набор команд $X \times S→S$, $(S_i;x)→S_j$
  
Автомат, находясь в состоянии $S_i$, получает на вход $x$ и переходит в состояние $S_j$.  
*Замечание:* Функция $δ$ может быть частичной, то есть она может быть определена для некоторых значений ее $D$.  
Конечные автоматы могут быть:
- **Детерминированные (ДКА)** - существует единственная команда $(S_i;x)$ с переходом в состояние $S_j$
	![Детерминированный конечный автомат](../Pictures/03_01.%20Детерминированный%20конечный%20автомат.png)
- **Недетерминированные (НКА)** - команда $(S_i;x)$ может быть с переходом в несколько состояний: $(S_i,x)=S_j$, $(S_i,x)=S_k$
	![Недетерминированный конечный автомат](../Pictures/03_02.%20Недетерминированный%20конечный%20автомат.png)
  
Автомат **допускает слово** в заданном алфавите $X$, если, начав работу с заданным словом, он останавливается в одном из выделенных заключительных состояний.  
**Работа автомата над заданным словом** - это путь из начальной вершины $S_0$. Последовательность вершин этого пути - это последовательность состояний, принимаемых автоматом, а образ пути по дугам - это читаемое слово. Любой путь в графе автомата, начинающийся в вершине $S_0$ и заканчивающийся в вершине $F⊂S$ порождает слово, допускаемое состояние.  
Конечный автомат часто используется для задания множества допустимых входных последовательностей - **слов**.  
Конечный автомат может быть:
- распознавателем
- преобразователем
  
Конечный автомат является **распознавателем**, если он при работе с заданным словом, начав с состояния $S_0$, останавливается в одном из заключительных состояний этого автомата $F$.  
**Пример 1:**  
$A=(X,S,F,S_0,δ)$  
$X=\{a,b,c\}$  
$S=\{0,1,2,3,4,5\}$  
$F=\{3,5\}$  
$S_0=\{0\}$  
$δ:$  
$(S_0,a)→S_1$  
$(S_1,b)→S_2$  
$(S_2,c)→S_3$  
$(S_0,c)→S_4$  
$(S_3,c)→S_5$  
![Граф конечного автомата из примера 1](../Pictures/03_03.%20Граф%20конечного%20автомата%20из%20примера%201.png)  
**Пример 2:**  
$A=(X,S,F,S_0,δ)$  
$X=\{a,b\}$  
$S=\{0,1,2,3\}$  
$F=\{1,2\}$  
$S_0=\{0\}$  
$δ:$  
| $(S_0,a)→S_1$ | $(S_1,a)→S_3$ | $(S_1,c)→S_2$ | $(S_2,b)→S_0$ |
| ------------- | ------------- | ------------- | ------------- |
| $(S_0,b)→S_1$ | $(S_3,b)→S_3$ | $(S_2,c)→S_1$ | $(S_3,a)→S_0$ |
| $(S_0,c)→S_0$ | $(S_1,b)→S_2$ | $(S_2,a)→S_0$ | $(S_3,c)→S_0$ |
  
![Граф конечного автомата из примера 2](../Pictures/03_04.%20Граф%20конечного%20автомата%20из%20примера%202.png)  
Проверка слов:  
1) $aaba - S_0$ - не подходит
2) $abcc - S_2$ - подходит
3) $bcccc - S_1$ - подходит
4) $aabbcc - S_0$ - не подходит
5) $bacc - S_0$ - не подходит
  
**Пример 3.** Построить конечный автомат, распознающий множество констант  
1) Целые константы: 35, -35, +356
  
$A=(X,S,F,S_0,δ)$  
$X=\{0..9 (ц), +, -\}$  
$S=\{0,1,2\}$  
$F=\{2\}$  
$S_0=\{0\}$  
$δ:$  
$(S_0,+)→S_1$  
$(S_0,-)→S_1$  
$(S_0,ц)→S_2$  
$(S_1,ц)→S_2$  
$(S_2,ц)→S_2$  
![Граф конечного автомата из примера 3.1](../Pictures/03_05.%20Граф%20конечного%20автомата%20из%20примера%203.1.png)  
2) Вещественные константы: 35.14, +1.412, -356.12, .768
  
$A=(X,S,F,S_0,δ)$  
$X=\{0..9 (ц), +, -, .\}$  
$S=\{0,1,2,3,4\}$  
$F=\{2,4\}$  
$S_0=\{0\}$  
$δ:$  
$(S_0,+)→S_1$  
$(S_0,-)→S_1$  
$(S_0,ц)→S_2$  
$(S_1,ц)→S_2$  
$(S_2,ц)→S_2$  
$(S_0,.)→S_4$  
$(S_1,.)→S_3$  
$(S_3,ц)→S_2$  
$(S_2,.)→S_4$  
$(S_3,.)→S_4$  
$(S_4,ц)→S_4$  
![Граф конечного автомата из примера 3.2](../Pictures/03_06.%20Граф%20конечного%20автомата%20из%20примера%203.2.png)  
Распознавание констант:  
$35.14: 0→2→2→4→4→4$  
$-356.12: 0→1→2→2→2→4→4→4$  
$.768: 0→4→4→4→4$  
$+1.412: 0→1→3→4→4→4→4$  
3. Вещественные константы с плавающей точкой: 3.14E+00, 0.314E+01, 31.4E-01, 314.0E-02
  
![Граф конечного автомата из примера 3.3](../Pictures/03_07.%20Граф%20конечного%20автомата%20из%20примера%203.3.png)  