وأوضح آلة الدولة المحدودة

آلة الحالة المحدودة (FSM) هي نمط تصميم برمجي حيث ينتقل نموذج معين إلى حالات سلوكية أخرى من خلال المدخلات الخارجية.

فهم آلة الدولة المحدودة

وتعرف ولايات ميكرونيزيا الموحدة من قبل في الدول ، في الحالة الأولية و التحولات .

تأتي قوة ولايات ميكرونيزيا الموحدة من القدرة على تحديد السلوكيات المختلفة بوضوح في ظروف مختلفة. عادةً ما تُستخدم FSM مع البرامج النصية السلوكية الحلقية التي تقيِّم الوضع الحالي باستمرار في حلقة أو مع أحداث.

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

الرسم التخطيطي للدولة

آلة القهوة آلة الدولة محدودة الرسم التخطيطي

يوضح هذا الرسم البياني ثلاث حالات محتملة لآلة القهوة:

  • افتح
  • جاهز للشراء
  • قطع التيار الكهربائي عنه

توضح الخطوط بين هذه الحالات التحولات الممكنة بين الدول وفي أي اتجاه. هذه التحولات لها شروط عندما تحتاج ولايات ميكرونيزيا الموحدة للتغيير بين الدول.

  • StartUpMachine من حالة PoweredOff إلى الحالة Open ، يجب أن يبدأ الجهاز في التشغيل. يتم ذلك يدويًا في هذه الحالة.
  • إيداع> = تكلفة القهوة تقيم FSM مبلغ النقد المودع إما في حلقة أو عندما يتغير المبلغ (موصى به في هذه الحالة) إذا قمت بإيداع نقود كافية في آلة القهوة ، ستنتقل FSM من "فتح" إلى "جاهز للشراء" ".
  • ShutdownMachine سينتقل الجهاز تلقائيًا من Open إلى PoweredOff من خلال طريقة ShutDownMachine إذا تم استيفاء شرط "عدم ترك المزيد من القهوة".
  • الاستغناء عن القهوة في حالة الاستعداد للشراء ، يمكن للمستخدم شراء القهوة ثم يتم تحضيرها وتوزيعها بعد ذلك. الحالة هي عندما ينطلق حدث BuyCoffee (! Link to the Observer!) (لا يظهر في الرسم التخطيطي)
  • CancelCoffee إذا اختار المستخدم الإلغاء ، فسوف ينتقل الجهاز من ReadyToBuy إلى Open.
  • ShutDownMachine سينتقل الجهاز إلى حالة PoweredOff

تنص على

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

الحالة الأولية

كل ولايات ميكرونيزيا الموحدة لها حالة أولية ، وهذا يعني الحالة التي تبدأ بها عند إنشائها ويجب تحديدها عند إنشائها أو إنشاء مثيل لها. بالطبع من الممكن تغيير الحالة مباشرة إذا تم استيفاء الشروط.

الانتقالات

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

DFA و NFA

هناك نوعان من الأوتوماتيكية المحدودة ، الحتمية (DFA) وغير الحتمية (NFA). كلاهما يقبل اللغات العادية ويعملان بشكل أو بآخر بنفس الطريقة الموضحة أعلاه ولكن مع بعض الاختلافات.

يقبل DFA أو يرفض سلسلة من الرموز وينتج فقط حسابًا فريدًا أو آليًا واحدًا لكل سلسلة إدخال. الحتمية تشير إلى تفرد الحساب. تسمى آلة الحالة المحدودة بـ DFA إذا كانت تلتزم بالقواعد التالية:

  1. يتم تحديد كل من انتقالاته بشكل فريد من خلال حالة المصدر ورمز الإدخال
  2. قراءة رمز الإدخال مطلوب لكل حالة انتقالية.

لا يحتاج NFA إلى الامتثال لهذه القيود ، مما يعني أن كل DFA هو أيضًا NFA. ونظرًا لأن كلاهما لا يتعرف إلا على اللغات العادية ، يمكن تحويل كل NFA إلى DFA مكافئ باستخدام خوارزمية إنشاء مجموعة الطاقة.

إذن ما نوع القواعد التي يمكن أن نتوقع العثور عليها في NFAs وليس DFAs؟

  1. يمكن أن يحتوي NFA على انتقال سلسلة فارغ (يُشار إليه عمومًا بواسطة إبسيلون). بمعنى أنه في حالة معينة باستخدام إبسيلون لقاعدة انتقال ، يمكن للآلة الانتقال إلى الحالة التالية دون قراءة رمز الإدخال
  2. في NFA ، يمكن أن يكون لكل زوج من رموز الحالة والانتقال حالات وجهة متعددة بدلاً من الوجهات الفريدة للأزواج في DFAs
  3. ينتج كل زوج من رموز الحالة والانتقال "فرعًا" من الحساب لكل وجهته المحتملة مما يؤدي إلى إنشاء نوع من النظام متعدد مؤشرات الترابط.
  4. سيرفض DFA سلسلة الإدخال إذا هبطت في أي ولاية بخلاف حالة القبول. في NFA ، نحتاج فقط إلى "فرع" واحد للوصول إلى حالة القبول من أجل قبول السلسلة.

إذا كنت تريد معرفة المزيد ، فإليك دليلًا متعمقًا رائعًا حول أجهزة الحالة.