Kolejde genel olarak hesaplama teorisi ve Turing makineleri hakkında daha spesifik bilgi ediniyoruz. Büyük teorik sonuçlardan biri, potansiyel olarak büyük bir alfabe (semboller) pahasına, eyalet sayısını sadece 2'ye indirebilmenizdir.
Farklı Turing Makineleri örnekleri arıyordum ve sunulan yaygın bir örnek Parantez eşleştiricisi / denetleyicisi. Esasen, örneğin bir parantez dizisinin (()()()))()()()
dengeli olup olmadığını kontrol eder (önceki örnek dengesiz için 0 değerini döndürür).
Belki bunu üç durumlu bir makine olarak alabilirim. Herkes bunu teorik minimum 2 ve aşağı yaklaşım / devletler / semboller ne kadar azaltabilir bilmek istiyorum!
Açıklığa kavuşturmak için, parantezler boş bant arasında "sandviçlenir", bu nedenle yukarıdaki örnekte
- - - - - - - (()()()))()()() - - - - - - -
bant üzerindeki girdi olacaktır. Alfabe yer alacağını (
, )
, 1
, 0
, -
, ve *halt*
devlet devlet olarak sayılmaz.
Referans olarak, sahip olduğum üç durum yaklaşımı aşağıdaki gibidir: Durumların tanımı:
State s1: Looks for Closing parenthesis
State s2: Looks for Open parenthesis
State s3: Checks the tape to ensure everything is matched
Symbols: ),(,X
Geçişler Listelenen:
Action: State Symbol NewState WriteSymbol Motion
// Termination behavior
Action: s2 - *halt* 0 -
Action: s1 - s3 - r
//Transitions of TM
Action: s1 ( s1 ( l
Action: s1 ) s2 X r
Action: s1 X s1 X l
Action: s2 ( s1 X l
Action: s2 X s2 X r
Action: s3 ( *halt* 0 -
Action: s3 X s3 X r
Action: s3 - *halt* 1 -
Tüm bunları yazmanın gayri resmi yolunu affedin. Hala bunun arkasındaki teorik yapıları öğreniyorum.