نظرية التشغيل الذاتي

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
آلة ذاتية التشغيل.

نظرية التشغيل الذاتي أو نظرية الآلات ذاتية التشغيل أو نظرية الآلات المجرّدة (الإنجليزية: Automata Theory) هي نظرية تهتم بتعريف ودراسة خواص الآلات الحاسوبية المجرّدة. تاريخيّا دُرست قضايا هذه النظرية كتصوّر للحساب الإلكتروني قبل ظهور الحواسيب الحديثة لكنّها أثبتت قدرتها على تمثيل العديد من العمليات الحاسوبيّة في وقتنا الحالي، وتستخدم بكثرة كأداة للبرهان الرياضي الحاسوبي، لذلك فهي تعتبر من أهمّ ركائز علوم الحاسوب النظرية والأنظمة المنهجية.

آلة ذاتية التشغيل[عدل]

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

استعمالات النظرية[عدل]

تستعمل نظرية الآلات الذاتية التشغيل في علوم الحاسوب في حلول كثيرة منها:

مثال آلة بسيطة ذاتية التشغيل[عدل]

  • لنفرض مثلا أننا نريد تمثيل مصباح كهربائي بسيط يمكن إطفاؤه وتشغيله بالضغط على زر إلكتروني. يمكن تمثيل حالتي المصباح المنطفئة والمشتغلة بالحالتين "منطفئ" و"مشتغل" على التّرتيب. يبقى المصباح في إحدى الحالتين حتى يقوم أحدهم بالضغط على الزر ليتحوّل المصباح إلى الحالة الأخرى.

يبين هذا الشكل الأول آلة المصباح السّابق وصفها:

آلة ذاتية التشغيل تمثّل المصباح.

تبدأ الآلة في حالة "منطفئ" ولذلك هناك السهم "ابدأ" الذي يشير لهذه الحالة. تسمّى الدوائر المرسومة حالات، جمع "حالة"، كلّ حالة تصف وضع المصباح في وقت ما. تمثل الأسهم الظاهرة ما يسمّى بالدّخل، وهذا بدوره يمثّل التأثيرات الخارجية على الآلة، فلدينا هنا رمز دخْل واحد يسمى "اضغط"، يقوم بنقل الآلة بين حالتي الانطفاء والاشتغال.

في بعض الآلات يمكن أيضا تحديد الحالات التي تنتهي عندها الآلة بنجاح، فيمكن إذن تسميتها الحالات القابلة أو النهائية. لنفرض مثلا أن لنا مصباحا آخر متطوّرا له ثلاث حالات للتشغيل: "ضعيف"، "متوسّط" و"قويّ"، ولدينا أيضا زرين: أحدهما يقوم بإطفاء المصباح دائما فنسمي هذه العملية "أطفئ"، والآخر يزيد من شدّة المصباح فنسمّي تأثيره "اضغط". ينتقل المصباح بين حالات شدّة الضوء المختلفة بإرسال عمليّة "اضغط".

إذا أردنا جعل هدفنا هو تشغيل المصباح إلى أقصى قوة يمكن تمثيله بالشّكل التّالي:

آلة ذاتية التشغيل تمثّل مصباحا متطورا.

تمثّل الدائرة المضاعفة الحالة النهائية للآلة. تقبل هذه الآلة سلاسل الدّخل الآتية:

  • اضغط-اضغط-اضغط
  • أطفئ-اضغط-اضغط-اضغط-اضغط
  • اضغط-اضغط-اضغط-أطفئ-اضغط-اضغط-اضغط

لأنها تنتهي كلها عند الحالة النهائية. لكنها لا تقبل السلاسل التالية:

  • اضغط-اضغط-اضغط-أطفئ
  • اضغط-أطفئ-اضغط-اضغط

لأنها تنتهي عند حالات غير نهائية.

التعريف الرياضي للآلات الذاتية التشغيل[عدل]

أولا سنقوم بتعريف الآلة الذاتية التشغيل المحدّدة، وهي الآلة التي تكون دائما في حالة واحدة بعد قراءة أي رمز دخْل معيّن، وذلك لأنه عند كل حالة لا يوجد سوى نقلة واحدة لكل رمز دخْل. هناك أيضا الآلات غير المحدّدة، سيتم التفصيل في الفرق بين الإثنين في الأقسام التالية.

تعرّف الآلة الذاتية التشغيل المحدّدة A رياضيات بأنها خماسية \langle Q, \Sigma, \delta, q_0, F\rangle بحيث أن:

  1. Q هي مجموعة محدودة من الحالات.
  2. \Sigma هي مجموعة محدودة من رموز الدخْل.
  3. \delta هي دالة للنقل (أو التحول) معرفة بـ \delta:Q \times \Sigma \rightarrow Q، يكون مدخلها ثنائية من حالة (q) ورمز دخل (a)، ومخرجها حالة (q\prime)، أي \delta(q,a)=q\prime.
  4. q_0 هي حالة البدأ التي يبدأ منها التشغيل، وهي تنتمي إلى المجموعة Q.
  5. F هي مجموعة من الحالات النهائية، وهي مجموعة محتواة في Q.

مثال المصباح المتقدم[عدل]

في مثال المصباح المتقدّم السابق لدينا:

  1. مجموعة الحالات Q هي {منطفئ، ضعيف، متوسط، قوي}.
  2. مجموع رموز الدخل \Sigma هي {أطفئ، اضغط}.
  3. تم تمثيل الدالة \delta في الشكل السابق بالأسهم التي تنتقل من حالة إلى أخرى، ويمكن تعداد هذه الدالّة:
    • (منطفئ، أطفئ) \leftarrow منطفئ
    • (منطفئ، اضغط) \leftarrow ضعيف
    • (ضعيف، أطفئ) \leftarrow منطفئ
    • (ضعيف، اضغط) \leftarrow متوسط
    • (متوسط، أطفئ) \leftarrow منطفئ
    • (متوسط، اضغط) \leftarrow قوي
    • (قوي، أطفئ) \leftarrow منطفئ
    • (قوي، اضغط) \leftarrow قوي
  4. حالة البدء q_0 هي منطفئ.
  5. مجموعة الحالات النهائية F هي مجموعة وحيدة العنصر وهي: {قوي}.

أنواع الآلات الذاتية التشغيل[عدل]

هناك ثلاث أنواع للآلات الذاتية التشغيل:

1- آلات ذاتية التشغيل (حتمية)[عدل]

كما ذكرنا سابقا فإن الآلات الذاتية التشغيل الحتمية (بالإنجليزية Determinisic Finite State Automaton أو باختصار DFA) تكون دائما في حالة واحدة فقط مهما كانت سلسلة الدخل التي قامت بتصريفها، وذلك لأنه لا توجد سوى نقلة واحدة لكل رمز دخل عند كل حالة.

كل الأمثلة السابقة هي آلات محدّدة.

2- آلات ذاتية التشغيل (غير محددة)[عدل]

الآلات غير المحدّدة (بالإنجليزية Nondeterminisic Finite State Automaton أو باختصار NFA) هي آلات يمكن أن تكون في حالات محتملة عدّة عند كل لحظة، حيث يمكن لها أن تشتغل في جهات عدّة عند كلّ رمز دخل. يتم تحديد الاتجاه المناسب خطوة بعد خطوة عند كل رمز كلما رفض اتجاه ما هذا الرمز.

تكون الآلة غير المحدّدة في حالة نهائية (أي حالة قبول) إذا كانت أي من الحالات المحتملة الحالية حالة قبول.

مثال آلة غير محدّدة "لا حتمية"

الشكل التالي يوضح آلة غبر محدّدة. لاحظ أن هذه الآلة تقبل كل السلاسل المتكونة من الأرقام 0 و 1 والمنتهية بالسلسلة 1-0 (تُقرأ السلسلة من اليمين إلى اليسار). لاحظ انه في الحالة ح0، عند إدخال الرمز 1 هناك حالتين محتملتين هما ح0 نفسها وح1.

آلة ذاتية التشغيل غير محددة.

التعريف الرياضي

رياضياً التعريف هو نفس تعريف الآلة المحددة مع اختلاف وحيد في الدالة. الدالة \delta للآلة المحددة تنتج حالة واحدة فقط عند كل ثنائية حالة ورمز، أما دالة الآلة غير المحددة فتنتج مجموعة من الحالات. يمكن استبدال العنصر الثالث في قائمة التعريف السابقة بالتعريف:

  • \delta هي دالّة للنقل (أو التحول) معرفة بـ \delta:Q \times \Sigma \rightarrow \mathcal{P}(Q)، يكون مدخلها ثنائية من حالة (q) ورمز دخل (a)، ومخرجها مجموعة حالات (Q\prime) تنتمي إلى المجموعة (Q)، أي \delta(q,a)=Q\prime.

يرمز \mathcal{P}(Q) إلى مجموعة كل المجموعات التي يمكن تكوينها من عناصر المجموعة Q.

مثال الآلة غير المحددة السابق

  1. مجموعة الحالات Q هي { ح0، ح1، ح2}.
  2. مجموع رموز الدخل \Sigma هي {0، 1}.
  3. الدالة \delta:
    • (ح0، 0) \leftarrow {ح0}
    • (ح0، 1) \leftarrow {ح0, ح1}
    • (ح1، 0) \leftarrow {ح2}
  4. حالة البدأ q_0 هي ح0.
  5. مجموعة الحالات النهائية F هي مجموعة وحيدة العنصر وهي: {ح2}.

3- آلات ذاتية التشغيل غير محددة بنقلات معدومة الرمز[عدل]

بالإنجليزية Nondeterministic finite automata with ε transitions أو ε-NFA.

هذه الآلات مشابهة للآلات غير المحددة مع إمكانية تنقلها من حالة إلى أخرى من دون إدخال أي رمز. يرمز للتنقل المعدوم بـ ε. وهذا يعني أن الآلة يمكن أن تكون في مجموعة الحالات التي يمكن التنقل إليها من الحالة الحالية باستعمال هذا الرمز.

تساوي الآلات[عدل]

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

فمثلاً، الآلة التالية لها نفس قوة الآلة غير المحدّدة السابقة. يمكن التحقق من ذلك بسهولة بتجريب مجموعة من السلاسل.

آلة ذاتية التشغيل محددة مساوية للآلة السابقة.

مراجع[عدل]

  • John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman (2003). Introduction to Automata Theory, Languages, and Computation. 
  • Michael Sipser (1997). Introduction to the Theory of Computation. PWS Publishing. ISBN 0-534-94728-X. 

وصلات خارجية[عدل]