Персональные инструменты
 

Машина Тьюринга:Распознавание строки, с одинаковым количеством 0 и 1 — различия между версиями

Материал из CustisWiki

Перейти к: навигация, поиск
м (реплицировано из внутренней CustisWiki)
(Табличное представление МТ)
Строка 2: Строка 2:
  
 
==Табличное представление МТ==
 
==Табличное представление МТ==
 
+
<latex>
 +
\begin{tabular}{|cc|c|ccc|}
 +
\hline
 +
   
 +
2fail & * & $\Rightarrow$ & fail & * & R \\ \hline
 +
2fail & . & $\Rightarrow$ & 2fail & * & L \\ \hline
 +
2fail & 0 & $\Rightarrow$ & 2fail & * & L \\ \hline
 +
2fail & 1 & $\Rightarrow$ & 2fail & * & L \\ \hline
 +
2ok & * & $\Rightarrow$ & ok & * & R \\ \hline
 +
2ok & . & $\Rightarrow$ & 2ok & * & L \\ \hline
 +
2start & * & $\Rightarrow$ & <\textcolor{blue}{s}> & * & R \\ \hline
 +
2start & . & $\Rightarrow$ & 2start & . & L \\ \hline
 +
2start & 0 & $\Rightarrow$ & 2start & 0 & L \\ \hline
 +
2start & 1 & $\Rightarrow$ & 2start & 1 & L \\ \hline
 +
fail & * & $\Rightarrow$ & [\textcolor{red}{q}] & 0 & R \\ \hline
 +
ok & * & $\Rightarrow$ & [\textcolor{red}{q}] & 1 & R \\ \hline
 +
<\textcolor{blue}{s}> & * & $\Rightarrow$ & 2ok & * & L \\ \hline
 +
<\textcolor{blue}{s}> & . & $\Rightarrow$ & <\textcolor{blue}{s}> & . & R \\ \hline
 +
<\textcolor{blue}{s}> & 0 & $\Rightarrow$ & skip0 & . & R \\ \hline
 +
<\textcolor{blue}{s}> & 1 & $\Rightarrow$ & skip1 & . & R \\ \hline
 +
skip0 & * & $\Rightarrow$ & 2fail & * & L \\ \hline
 +
skip0 & . & $\Rightarrow$ & skip0 & . & R \\ \hline
 +
skip0 & 0 & $\Rightarrow$ & skip0 & 0 & R \\ \hline
 +
skip0 & 1 & $\Rightarrow$ & 2start & . & L \\ \hline
 +
skip1 & * & $\Rightarrow$ & 2fail & * & L \\ \hline
 +
skip1 & . & $\Rightarrow$ & skip1 & . & R \\ \hline
 +
skip1 & 0 & $\Rightarrow$ & 2start & . & L \\ \hline
 +
skip1 & 1 & $\Rightarrow$ & skip1 & 1 & R \\ \hline
 +
\end{tabular}
 +
</latex>
 
<code-python>
 
<code-python>
 
MT={
 
MT={

Версия 16:49, 5 марта 2007

Приведем пример машины Тьюринга, распознающей строчки с одинаковым количеством нулей и единиц.

Табличное представление МТ

MT={
 'k':1,
 'start': 's',
 'stop': 'q',
 'program': {
 #(Состояние, символы на лентах) -> (новое состояние, (действия по каждой ленте))
  ('s', ('.')):         ('s', (('.','R'))), #проматываем уничтоженные символы
  ('s', ('0')):         ('skip0', (('.','R'))), #стираем один ноль,
  ('s', ('1')):         ('skip1', (('.','R'))), #стираем одну единицу
  ('s', ('*')):         ('2ok',  (('*','L'))),  #не нашли 1 и 0 - видимо все ок...
  ('skip0', ('0')):     ('skip0', (('0','R'))), #проматываем 0-ли
  ('skip0', ('.')):     ('skip0', (('.','R'))), #проматываем уничтоженные символы
  ('skip0', ('*')):     ('2fail',  (('*','L'))), #так и не нашли симметричную единицу
  ('skip0', ('1')):     ('2start',  (('.','L'))), #стираем симметричную единицу
  ('skip1', ('1')):     ('skip1', (('1','R'))), #проматываем 1-цы.
  ('skip1', ('.')):     ('skip1', (('.','R'))), #проматываем уничтоженные символы
  ('skip1', ('*')):     ('2fail',  (('*','L'))), #так и не нашли симметричный ноль
  ('skip1', ('0')):     ('2start',  (('.','L'))), #стираем симметричный ноль
  ('2start', ('0')):    ('2start', (('0','L'))), #проматываем, все,
  ('2start', ('1')):    ('2start', (('1','L'))), #кроме маркера начала данных
  ('2start', ('.')):    ('2start', (('.','L'))), 
  ('2start', ('*')):    ('s', (('*','R'))),      #тогда становимся на первый символ  
  ('2ok', ('.')):       ('2ok', (('*','L'))),    #проматываем, в начало.
  ('2ok', ('*')):       ('ok', (('*','R'))),     #
  ('ok', ('*')):        ('q', (('1','R'))),      # пишем "1" и выходим.
  ('2fail', ('.')):     ('2fail', (('*','L'))),    #проматываем в начало.
  ('2fail', ('0')):     ('2fail', (('*','L'))),    #проматываем в начало.
  ('2fail', ('1')):     ('2fail', (('*','L'))),    #проматываем в начало.
  ('2fail', ('*')):     ('fail', (('*','R'))),    # до начала
  ('fail', ('*')):     ('q', (('0','R')))    # до начала
 }
}  

Графовое представление МТ

[svg]

Примеры выполнения МТ

На пустой строке

На «10»

На «00»

На «110»

На «1001»

На «1100»


Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».

Репликация: База Знаний «Заказных Информ Систем» → «Машина Тьюринга:Распознавание строки, с одинаковым количеством 0 и 1»