Automata Theoritical Lecture7
Automata Theoritical Lecture7
نظري
Turing Machine
7
9/05/2018 15
اللغات الصورية
مقدمة
رأينا في المحاضرات السابقة الـ DFAومشتقاتها مثل الـ NFAو 𝐴𝐹𝑁_ εوكلها أالت _ machinesتولد اللغات
المنتظمة (أو تقبل اللغات المنتظمة) ثم انتقلنا إلى push down automataو التي تقبل اللغات خارج السياق ويوجد
الكثير من اللغات التي ال يمكن قبولها في PDAمثل السلسلة التالية anbncnال يمكن قبولها في PDA
سنأخذ آلة جديدة اسمها 𝑇uring machineوهذه األلة بإمكانها أن تقبل مجموعة أوسع من اللغات فبإمكانها أن
تقبل 𝐸𝑅 و 𝑒𝑔𝑎𝑢𝑔𝑛𝑎𝐿 𝑒𝑒𝑟𝐹 𝑡𝑥𝑒𝑡𝑛𝑜𝐶 وتقبل أيضا مجموعة من التعابير التي ال تنتمي إلى هذه اللغات.
Turing Machine
إن turing machineهي آلة نظرية (آلة نمذجة) أي ليس لها أي وجود فيزيائي حقيقي وضعها آالن تورينغ عام 1936
وفي تلك الفترة لم يكن للحواسيب ظهور فعلي ولكن turing machineكانت تمتلك قدرات الحاسوب الفعلي أي كل
شيء باإلمكان إنجازه بالحاسوب العادي يمكن إنجازه باستخدام .turing machine
نالحظ أنه مع كل آلة أوتومات جديدة نجد زيادة في اإلمكانيات و في نفس الوقت نجد زيادة في القيود مثال في البداية
𝐴𝐹𝑁 𝐷𝐹𝐴,لم يكن لدينا ذاكرة ثم أضفنا ذاكرة في الـ𝐴𝐷𝑃 فأصبح لدينا إمكانيات أكبر أما هنا في
الـ turing machineأصبحت الذاكرة ال نهائية.
/ITE.RBCs
1
| TMد .محمد األحمد
فمثالً :قد نكون عند حالة معينة ويكون الرأس عند رمز معين فباالعتماد على الحالة و الرمز باإلمكان للرأس أن يغير
هذا الرمز (كون الرأس للقراءة و الكتابة ) الرأس يقرأ سلسلة الدخل الموجودة على الشريط ولدينا مجموعة حاالت
وبشكل عام عند الحالة االبتدائية يكون الرأس في أقصى اليسار الخاص بالشريط عندما يقرأ الرأس رمز معين باإلمكان
أن يكتب رمز آخر بدال منه أي يعمل updateلهذه القيمة أو يمكن أن يتركه على حاله وذلك حسب تابع االنتقال
transactionالخاص باألوتومات (أي هو يقرأ دائما وأحيانا يكتب وذلك حسب تابع االنتقال ) وبعد ذلك بإمكان
األوتومات أن يتحرك خلية واحدة نحو اليمين أو نحو اليسار .
كنا قد درسنا سابقا في مقرر بنيان الحواسيب تصميم "فان هوفمان" والذي كان عبارة عن CPUو Memoryحيث
الـ CPUيقوم بعمل Fetchللتعليمات الموجودة في الذاكرة ويقوم بتنفيذها وهنا نفس األمر ولكن في
الـ Turing Machineنحن نتحدث عن ذاكرة ال نهائية أي الشريط الخاص بنا هو شريط ال نهائي وفعليا هذا الشريط
هو شريط الدخل وبنفس الوقت هو شريط العمل أي نجد دخلنا على الشريط وعملنا بحد ذاته يتم على الشريط.
𝑝𝑎𝑇 𝑒𝑇ℎ
/ITE.RBCs
2
| TMد .محمد األحمد
مثال:
عند time0كان الـ Headموجودًا عند الرمز aفقام بقراءة aثم كتب kوتحرك خانة نحو اليسار التي هي 𝑏.
عند time1كان الـ Headموجودًا عند الرمز bفقام بقراءة bثم كتب fوتحرك خانة نحو اليمين فرجع ل 𝑘.
أبجدية الدخل وأبجدية الشريط
تختلف أبجدية الدخل عن أبجدية الشريط حيث أن أبجدية الدخل هي نفسها (Σسيغما) أي هي الرموز المكونة للغة
وهذه األبجدية محتواه ضمن أبجدية الشريط.
أما أبجدية الشريط ( Γغاما) فهي كل الرموز التي يمكن أن تتواجد على الشريط وهي تشمل أبجدية اللغة باإلضافة
blanckأي رمز فارغ وهو ليس من ابجدية اللغة بل من أبجدية الشريط. إلى رموز أخرى مثل
{=Γ فمثال قد تكون } Σ = { 0 , 1وتكون })∪ (0 , 1
/ITE.RBCs
3
| TMد .محمد األحمد
𝑛𝑜𝑖𝑡𝑐𝑛𝑢𝐹 𝑛𝑜𝑖𝑡𝑖𝑠𝑛𝑎𝑟𝑇
نعرف تابع االنتقال على أنه يأخذ ثنائية من حالة qويقرأ على الشريط رمز وينقلني إلى ثالثية وهي حالة أخرى ورمز
وجهة Rأو .L إدخال أو حتى
𝑠𝑛𝑜𝑖𝑡𝑖𝑠𝑛𝑎𝑟𝑇 𝑑𝑛𝑎 𝑠𝑒𝑡𝑎𝑡𝑆
مثال:1
• عند 𝑇𝑖𝑚𝑒1قام 𝑑𝑎𝑒𝐻 بقراءة 𝑎 وكتب 𝑏 مكانها ثم انتقل خانة نحو اليمين
مثال:2
/ITE.RBCs
4
| TMد .محمد األحمد
مثال:3
𝑚𝑠𝑖𝑛𝑖𝑚𝑟𝑒𝑡𝑒𝐷
/ITE.RBCs
5
| TMد .محمد األحمد
_Haltingالتوقف
ويعني الوصول بـ Turing machinesإلى حالة ال تملك انتقال)𝑛𝑜𝑖𝑡𝑖𝑠𝑛𝑎𝑟𝑡( فتسمى هذه الحالة حالة توقف.
The machine halts in a state if there is no transition machines
مثال:1
لدينا حالة haltingألننا وصلنا إلى حالة q1ال تملك انتقال )𝑛𝑜𝑖𝑡𝑖𝑠𝑛𝑎𝑟𝑡(
مثال:2
𝑒𝑡𝑎𝑡𝑠 𝑔𝑛𝑖𝑡𝑝𝑒𝑐𝑐𝐴
في 𝑠𝑒𝑛𝑖 𝑇𝑢𝑟𝑖𝑛𝑔 𝑚𝑎𝑐ℎال يمكنني االنتقال من حالة نهائية إلى حالة غير نهائية أي بمجرد الوصول إلى حالة نهائية
ال يمكنني الرجوع إلى حالة أخرى.
يتم قبول السلسلة المدخلة إذا توقفت الـ Turing mashinesعند حالة نهائية.
• يتم رفض سلسلة إذا توقفت الـ Turing machinesعند حالة غير نهائية أو إذا دخلت بحلقة النهائية.
𝑔𝑛𝑖𝑟𝑡𝑠 𝑒𝐼𝑛 𝑜𝑟𝑑𝑒𝑟 𝑡𝑜 𝑎𝑐𝑐𝑒𝑝𝑡 𝑎𝑛 𝑖𝑛𝑝𝑢𝑡 𝑆𝑡𝑟𝑖𝑛𝑔, 𝑖𝑡 𝑖𝑠 𝑛𝑜𝑡 𝑛𝑒𝑐𝑒𝑠𝑠𝑎𝑟𝑦 𝑡𝑜 𝑠𝑐𝑎𝑛 𝑎𝑙𝑙 𝑡ℎ𝑒 𝑆𝑦𝑛𝑏𝑜𝑙𝑠 𝑖𝑛 𝑡ℎ
/ITE.RBCs
6
| TMد .محمد األحمد
مثال:
الحالة البدائية هي نفسها الحالة النهائية ألن االبجدية هي فقط عبارة عن الرمز aبالتالي كل السالسل مقبولة.
/ITE.RBCs
7
| TMد .محمد األحمد
مالحظة :يوضح لنا هذا التمرين فكرة الحلقة الالنهائية من خالل مثال معين حيث اننا سنستمر في التجول دون الوصول
لحالة نهائية وبالتالي تكون السلسلة مرفوضة𝑡𝑐𝑒𝑗𝑒𝑟 .
الحل:
𝑎 → a ,R أوالً :نقوم باستخراج قواعد إيجاد هذه اللغة فنجد أنها:
𝑏 → b ,L ثانياً :نرسم مخطط الحاالت:
/ITE.RBCs
8
| TMد .محمد األحمد
شرح المخطط:
الفكرة االساسية من المخطط أننا نقابل كل aمع bحتى نتاكد انهما من نفس العدد.
حيث اننا من أجل كل خطوة نذهب ألقصى اليسار بحثاً عن اول 𝑎 نجدها فنبدلها بـ xثم نبحث عن اول bتليها
فنبدلها بـ yثم نعاود الذهب ألقصى اليسار بحثاً عن اول aغير محولة لـ xفنحولها ثم نبحث عن اول bلم يتم
تحويلها لـ yفنحولها وهكذا ...
/ITE.RBCs
9
| TMد .محمد األحمد
/ITE.RBCs
10
| TMد .محمد األحمد
Configuration
وهي طريقة من أجل تمثيل يربط بين رأس القراءة والكتابة والحاالت وشريط الدخل حيث تمثل بالطريقة التالية:
مثال:1
q1
حيث تقرأ كالتالي اننا في حالة 𝑞1والمؤشر ع 𝑏 وقبلها يوجد 𝑎𝑐 وبعدها aحيث نستطيع كتابتها ع الشكل التالي:
𝑎 𝑏 𝑐 𝑎 𝑞1
/ITE.RBCs
11
| TMد .محمد األحمد
مثال:2
• نقول عن اللغة المقبولة في 𝑒𝑛𝑖 𝑡𝑢𝑟𝑖𝑛𝑔 𝑚𝑎𝑐ℎبأنها Turing Recognizableكما يطلق عليها األسماء
التالية:
Turing Acceptable -
Recursively Enumerable -
/ITE.RBCs
12
| TMد .محمد األحمد
أن الـ 𝑠𝑛𝑜𝑖𝑡𝑐𝑛𝑢𝐹 𝑔𝑛𝑖𝑡𝑢𝑝𝑚𝑜𝑐 في 𝑠𝑛𝑖 𝑇𝑢𝑟𝑖𝑛𝑔 𝑚𝑎𝑐ℎتختلف عن عملية قبول سلسلة من لغة معينة ففي
عملية قبول سلسلة يجب االنتقال من حالة معينة واالنتهاء بأحد الحاالت التوقف وعندها نحكم عن هذه السلسلة بأنها
في 𝑠𝑛𝑜𝑖𝑡𝑐𝑛𝑢𝑓 𝑔𝑛𝑖𝑡𝑢𝑝𝑚𝑜𝑐 يجب علينا أيجاد ألية معينة من أجل ترميز الدخل وتمثيله ع شريط الـ 𝑀𝑇
وحيث يتم وضع الخرج على نفس الشريط الذي يحل محل ما كان موجود من قبل.
Example: Addition function
𝑦 𝑓(𝑥, 𝑦) = 𝑥 +
يجب علينا التوصل الى ألية من أجل ترميز الدخل فلتكن على النحو التالي :ولنأخذ الرقم 5على سبيل المثال:
Decimal: 5
Binary: 101
Unary: 11111
أي سوف نقوم بتمثل الرقم بعدد من الواحدات التي تساوي الرقم الممثل.
/ITE.RBCs
13
| TMد .محمد األحمد
مالحظة :ان الصفر األخير مهم من اجل استخدام الناتج في عمليات أخرى
/ITE.RBCs
14
| TMد .محمد األحمد
وسنقوم بالترميز كما في المثال السابق بعدد من الواحدات المساوي للرقم المدخل
حيث خوارزمية الحل على الشكل التالي:
.1من اجل كل 1على شريط الـ 𝑀𝑇 استبدله بـ $حتى نصل الى اخر السلسلة.
.2تكرار التالي:
• إيجاد الـ $في أقصى اليمين واستبداله بـ 1
بـ ،1ثم يعود خطوة الى اليسار • اذهب خطوة الى اليمين واستبدل
.3يتم التكرار حتى يحول كل الـ $على شريط الدخل الى القيمة .1
مالحظات:
إن الـ 𝑠𝑒𝑛𝑖 𝑡𝑢𝑟𝑖𝑛𝑔 𝑚𝑎𝑐ℎتتمتع بقدرة أكبر من األجهزة واألدوات التي مرت معنا سابقاً.
كما أنها تشبه بعملها إلى حد كبير عمل الحاسوب حيث أن الحاسوب يقوم بنفس الطريقة بحيث لديه ألية خاصة من
أجل ترميز األعداد والقيام بعمليات حسابية عليها.
في 𝑠𝑛𝑜𝑖𝑡𝑐𝑛𝑢𝑓 𝑔𝑛𝑖𝑡𝑢𝑝𝑚𝑜𝑐 الخرج عبارة عن شكل تمثيلي بحيث نحن نحتاج الى جهاز اخر من أجل فهم قيمة
الخرج.
/ITE.RBCs
15