أمثلة على آلة تورينج

فيما يلي أمثلة لتكملة مقال آلة تورينج .

المثال الأول لتورينج

الجدول التالي هو أول مثال قدمه تورينج (تورينج 1937):

"1. يمكن بناء آلة لحساب التسلسل 0 1 0 1 0 1..." (0 <فراغ> 1 <فراغ> 0...) [ 1 ]
إعداداتسلوك
التكوين m (الحالة)رموز الشريطعمليات الشريطالتكوين النهائي (الحالة)
بفارغP0، Rج
جفارغRهـ
هـفارغP1، Rو
وفارغRب

فيما يتعلق بالأفعال التي تقوم بها الآلة فعلياً، يذكر تورينج (1936) [ 2 ] ما يلي:

"يُفهم من هذا الجدول [المثال] (وجميع الجداول اللاحقة من نفس النوع) أنه بالنسبة للتكوين الموصوف في العمودين الأولين، يتم تنفيذ العمليات في العمود الثالث بالتتابع، ثم تنتقل الآلة إلى التكوين m في العمود الأخير." [ 2 ]

يوضح ذلك جليًا عندما يختزل الجدول أعلاه إلى تعليمة واحدة تُسمى "b"، [ 3 ] ، مع أن تعليمته تتكون من 3 أسطر. للتعليمة "b" ثلاثة احتمالات رمزية مختلفة {لا شيء، 0، 1}. يتبع كل احتمال سلسلة من الإجراءات حتى نصل إلى العمود الأيمن، حيث يكون التكوين النهائي هو "b".

التكوين الحالي (التعليمات)رموز الشريطالعمليات المسجلة على الشريطالتكوين النهائي (التعليمات)
بلا أحدP0ب
ب0R، R، P1ب
ب1R، R، P0ب

كما لاحظ عدد من المعلقين بما في ذلك تورينج (1937) نفسه، (على سبيل المثال، بوست (1936)، بوست (1947)، كلين (1952)، وانغ (1954)) فإن تعليمات تورينج ليست ذرية - يمكن إجراء المزيد من التبسيطات على النموذج دون تقليل قوته الحسابية؛ انظر المزيد في آلة بوست-تورينج .

كما ورد في مقال آلة تورينج ، اقترح تورينج تجزئة طاولته بشكل أكبر من خلال السماح بعملية طباعة/مسح واحدة فقط متبوعة بحركة شريط واحدة لليسار/اليمين/اليسار. ويقدم لنا هذا المثال لأول طاولة صغيرة تم تحويلها: [ 4 ]

التكوين الحالي (حالة تورينج)رموز الشريطعملية الطباعةالحركة الشريطيةالتكوين النهائي m (حالة تورينج)
س 1فارغP0Rس 2
س 2فارغP فارغ، أي ERس 3
س 3فارغP1Rس 4
س 4فارغP فارغ، أي ERس 1

لا يزال بيان تورينج يشير إلى خمس عمليات ذرية. عند تعليمة معينة (تكوين m)، فإن الآلة:

  1. يلاحظ رمز الشريط أسفل الرأس
  2. بناءً على الرمز المرصود، يتم الانتقال إلى تسلسل التعليمات المناسب للاستخدام
  3. يطبع الرمز S j أو يمسحه أو لا يفعل شيئًا
  4. يحرك الشريط إلى اليسار أو اليمين أو لا يحركه على الإطلاق
  5. ينتقل إلى التكوين النهائي m لهذا الرمز

لأن عمليات آلة تورينج ليست ذرية، يجب على محاكاة الآلة تقسيم كل خماسية إلى سلسلة من العمليات الأبسط. أحد الاحتمالات - المستخدمة في الأمثلة التالية لسلوكيات هذه الآلة - هو كما يلي:

(q i ) اختبار رمز الشريط أسفل الرأس: إذا كان الرمز S 0 انتقل إلى q i .01، وإذا كان الرمز S 1 انتقل إلى q i .11، وإذا كان الرمز S 2 انتقل إلى q i .21، إلخ.
(q i .01) اطبع الرمز S j 0 أو امسح أو لا تفعل شيئًا، ثم انتقل إلى q i .02
(q i .02) حرك الشريط يسارًا أو يمينًا أو لا تحركه على الإطلاق، ثم انتقل إلى qm0
1.11 ) اطبع الرمز S j 1 أو امسحه أو لا تفعل شيئًا، ثم انتقل إلى س 1.12
1.12 ) حرك الشريط يسارًا أو يمينًا أو لا تحركه على الإطلاق، ثم انتقل إلى س1
1.21 ) اطبع الرمز S j 2 أو امسح أو لا تفعل شيئًا، ثم انتقل إلى س 1.22
1.22 ) حرك الشريط يسارًا أو يمينًا أو لا تحركه على الإطلاق، ثم انتقل إلى س2
(إلخ - يجب احتساب جميع الرموز)

تقوم ما يسمى بآلات الحالة المحدودة "النموذجية" بإجراء اختبارات الرموز "بالتوازي"؛ انظر المزيد في البرمجة المصغرة .

في المثال التالي لما تقوم به الآلة، سنشير إلى بعض خصائص نماذج تورينج:

إن عادة كتابة الأرقام على مربعات متبادلة فقط مفيدة للغاية: سأستخدمها دائماً. [ 2 ]

لذا، عند الطباعة، يتخطى مربعًا واحدًا من كل مربعين. تُسمى المربعات المطبوعة مربعات F؛ أما المربعات الفارغة بينها فتُستخدم كعلامات وتُسمى مربعات E، أي قابلة للمسح. مربعات F بدورها هي مربعات الأرقام، ولا تحمل إلا الرمزين 1 أو 0، وهما رمزان أطلق عليهما اسم "الأرقام" (كما في "الأعداد الثنائية").

في هذا المثال، يبدأ الشريط فارغًا، ثم تُطبع عليه الأرقام. وللاختصار، تُعرض هنا فقط بنود الجدول.

تسلسلمعرّف التعليماترأس
..................
11..................
22.....0............
33......0...........
44.....1.0..........
51......1.0.........
62.....0.1.0........
73......0.1.0.......
84.....1.0.1.0......
91......1.0.1.0.....
102.....0.1.0.1.0....
113......0.1.0.1.0...
124.....1.0.1.0.1.0..
131......1.0.1.0.1.0.
142.....0.1.0.1.0.1.0

يتم عرض نفس "التشغيل" مع جميع عمليات طباعة الشريط الوسيطة والحركات هنا:

إن إلقاء نظرة فاحصة على الجدول يكشف عن بعض المشاكل في مثال تورينج نفسه - لم يتم احتساب جميع الرموز.

على سبيل المثال، لنفترض أن شريطه لم يكن فارغًا في البداية. ماذا سيحدث؟ ستقرأ آلة تورينج قيمًا مختلفة عن القيم المقصودة.

روتين فرعي للنسخ

هذا روتين فرعي مهم للغاية يستخدم في روتين "الضرب".

تتعامل آلة تورينج النموذجية مع سلسلة من الأصفار والآحاد، حيث يُمثل الصفر برمز الفراغ. وتتمثل مهمتها في مضاعفة أي سلسلة من الآحاد التي تصادفها على الشريط بكتابة صفر بينها. على سبيل المثال، عندما يقرأ رأس القراءة "111"، سيكتب صفرًا، ثم "111". وسيكون الناتج "1110111".

لإنجاز مهمتها، ستحتاج آلة تورينج هذه إلى 5 حالات تشغيل فقط، والتي تسمى {s1 ، s2 ، s3 ، s4 ، s5 } . كل حالة تقوم بـ 4 إجراءات:

  1. اقرأ الرمز الموجود أسفل العنوان
  2. اكتب رمز الإخراج الذي تحدده الحالة
  3. حرك الشريط إلى اليسار أو إلى اليمين حسب ما تقرره الدولة
  4. يتم الانتقال إلى الحالة التالية التي تحددها الحالة الحالية
التكوين الأولي m

(التعليمات الحالية)

رموز الشريطعملية الطباعةحركة الشريطالتكوين النهائي m

(التعليمات التالية)

s 10شمالشمالح
s 11هـRs 2
s 20هـRs 3
s 21P1Rs 2
s 30P1لs 4
s 31P1Rs 3
s 40هـلs 5
s 41P1لs 4
s 50P1Rs 1
s 51P1لs 5
ح

عملية الطباعة : يطبع الرمز S أو E ، أو يمسح، أو لا يفعل شيئًا.

تشغيل تسلسلات الآلة عبر 16 تكوينًا للآلة (المعروفة أيضًا باسم حالات تورينج):

تسلسلمعرّف التعليماترأس
1s 100001100000
2s 200000100000
3s 200000010000
4s 300000001000
5s 400001010000
6s 500010100000
7s 500101000000
8s 100010110000
9s 200001001000
10s 300000100100
11s 300000010010
12s 400001100100
13s 400011001000
14s 500110010000
15s 100011011000
16ح00011011000

يمكن وصف سلوك هذه الآلة بأنه حلقة تكرارية: تبدأ من s1 ، وتستبدل أول 1 بـ 0، ثم تستخدم s2 للتحرك إلى اليمين، متجاوزةً 1 وأول 0 تصادفه. بعد ذلك، تتخطى s3 التسلسل التالي من 1 (لا يوجد تسلسل في البداية) وتستبدل أول 0 تجده بـ 1. تعود s4 إلى اليسار، متجاوزةً 1 حتى تجد 0 وتنتقل إلى s5 . ثم تتحرك s5 إلى اليسار، متجاوزةً 1 حتى تجد 0 الذي كتبته s1 في الأصل .

يستبدل ذلك الصفر بالواحد، وينتقل موضعًا واحدًا إلى اليمين، ويدخل s 1 مرة أخرى لجولة أخرى من الحلقة.

يستمر هذا حتى يجد s 1 الرقم 0 (وهو الرقم 0 الموجود في منتصف سلسلتي الرقم 1) وعندها تتوقف الآلة.

وصف بديل

يصف وصف آخر المشكلة بأنها كيفية تتبع عدد مرات ظهور الرقم "1". لا يمكننا استخدام حالة واحدة لكل عدد ممكن (حالة لكل من 0، 1، 2، 3، 4، 5، 6، إلخ)، لأنه سيتطلب ذلك عددًا لا نهائيًا من الحالات لتمثيل جميع الأعداد الطبيعية، وآلة الحالة محدودة - لذا سيتعين علينا تتبع ذلك باستخدام الشريط بطريقة ما.

تعتمد آلية عملها الأساسية على نسخ كل "1" إلى الجانب الآخر، بالتحرك ذهابًا وإيابًا - فهي ذكية بما يكفي لتذكر موقعها في مسارها. بتفصيل أدق، تنقل كل "1" إلى الجانب الآخر، من خلال التعرف على "0" الفاصل في المنتصف، ثم التعرف على "0" في الجانب الآخر لمعرفة أنها وصلت إلى النهاية. تعود بنفس الطريقة، فتكتشف "0" في المنتصف، ثم "0" في الجانب الأصلي. هذا "الصفر" في الجانب الأصلي هو مفتاح حل لغز كيفية تتبع عدد "1".

يكمن السر في أنه قبل نقل الرقم "1"، يتم وضع علامة "مأخوذ" عليه باستبداله بالرقم "0". وعند العودة، يتم ملء الفراغ "0" بالرقم "1"، ثم ينتقل إلى الفراغ التالي ، ويضع علامة "0" عليه، ويكرر العملية، ناقلاً الرقم "1" إلى الفراغ التالي، وهكذا. مع كل عملية نقل ذهابًا وإيابًا، يقترب المؤشر "0" خطوة واحدة من المركز . بهذه الطريقة يتم تتبع عدد الأرقام "1" التي تم نقلها.

عندما يعود، تبدو العلامة "0" بالنسبة له بمثابة نهاية مجموعة "1" - أي "1" تم أخذها بالفعل غير مرئية بالنسبة له (على الجانب الآخر من العلامة "0")، وهكذا يكون الأمر كما لو أنه يعمل على عدد (N-1) من "1" - على غرار البرهان بالاستقراء الرياضي .

تشغيل كامل يوضح نتائج "الحركات" الوسيطة.

بيفر المشغول ذو الثلاث ولايات

استُخلص جدول تعليمات تورينج التالي من بيترسون: [ 5 ] "يكتب قندس مشغول ثلاثي الحالات 6 آحاد قبل أن يتوقف". يُحرّك بيترسون رأس القراءة/الكتابة؛ وفي النموذج التالي، يتحرك الشريط. الصفر هو الحرف الفارغ: يبدأ الشريط بجميع الخلايا أصفارًا.

رموز الشريطالحالة الحالية أالحالة الحالية بالحالة الحالية ج
كتابة الرموزنقل الشريطالولاية التاليةكتابة الرموزنقل الشريطالولاية التاليةكتابة الرموزنقل الشريطالولاية التالية
01لب1Rأ1Rب
11Rج1لب1شمالوقف

يُظهر رسم "الحالة" لآلة القندس المشغولة ذات الحالات الثلاث التسلسلات الداخلية للأحداث اللازمة لتنفيذ "الحالة" فعليًا. وكما ذُكر سابقًا، أوضح تورينج (1937) تمامًا أن هذا هو التفسير الصحيح للخماسيات التي تصف التعليمات. [ 1 ] لمزيد من المعلومات حول تجزئة خماسيات تورينج، انظر آلة ما بعد تورينج .

يوضح الجدول التالي التشغيل "المضغوط" - حالات تورينج فقط:

تسلسلمعرّف التعليماترأس
1ب00000000000000
2ب00000001000000
3أ00000110000000
4ج00001100000000
5ب00011100000000
6أ00111100000000
7ب00011111000000
8ب00001111100000
9ب00000111110000
10ب00000011111000
11ب00000001111100
12أ00000111111000
13ج00001111110000
14ح00001111110000

الدورة الكاملة لآلة القندس المشغولة ذات الحالات الثلاث. تظهر حالات تورينج الناتجة (ما أسماه تورينج "تكوينات-م" - "تكوينات الآلة") مُظللة باللون الرمادي في العمود أ، وكذلك تحت تعليمات الآلة (الأعمدة من أ إلى أ):

مراجع

فهرس

  • بيترسون، إيفارز (1988). السائح الرياضي: لمحات من الرياضيات الحديثة . نيويورك: دبليو إتش فريمان وشركاه. ISBN 0-7167-2064-7.
  • ديفيس، مارتن (1965). غير القابل للتقرير: أوراق أساسية حول القضايا غير القابلة للتقرير، والمسائل غير القابلة للحل، والدوال القابلة للحساب . نيويورك: دار رافين للنشر.
  • تورينج، آلان (1937). حول الأعداد القابلة للحساب، مع تطبيق على مسألة القرار . ص  116.
  • تورينج، آلان (1937). حول الأعداد القابلة للحساب، مع تطبيق على مسألة القرار. تصحيح . ص  152-154.