المؤلفون : إنريكو ترومبيتا، فرانشيسكو بيروني
في علوم الكمبيوتر النظرية، النظام الانتقالي هو مفهوم يستخدم في دراسة الحساب. يتم استخدامه لوصف السلوك المحتمل للأنظمة المنفصلة. وهو يتألف من حالات وانتقالات بين الحالات، والتي يمكن تصنيفها بتسميات مختارة من مجموعة؛ قد تظهر نفس التسمية على أكثر من انتقال واحد. إذا كانت مجموعة التسميات عبارة عن مفردة، فسيكون النظام غير مسمى بشكل أساسي، ومن الممكن تعريف أبسط يحذف التسميات.
مأخوذة من ويكيبيديا.
هذا هو السيناريو الذي بدأت العمل عليه:
تتضمن المشكلة عميلين، هال وكارلا. هال، المصاب بالسكري، فقد الأنسولين عن طريق الصدفة ويحتاج بشكل عاجل إلى تناول بعض منه للبقاء على قيد الحياة. ليس لديه ما يكفي من الوقت لشراء إمدادات جديدة، لكنه يعلم أن كارلا تحتفظ ببعض الأنسولين في المنزل، بالقرب منه. ليس لدى هال إذن للوصول إلى ممتلكات كارلا، إلى جانب أن هال يعرف أن كارلا مصابة بالسكري أيضًا وقد يعرض حياتها للخطر من خلال أخذ إمداداتها. من ناحية أخرى، يعتقد هال أن كارلا قد تكون قادرة على شراء بعض الأنسولين لاحقًا.
يمكن العثور على مناقشة مختصرة حول هذا السيناريو في notes/LTS_insulin.pdf
(يتوفر مصدر LaTex ضمن مجلد src
).
يتم توفير رسم تخطيطي للتنفيذ في src/LTS.pl
في Prolog (على وجه الخصوص، قررنا اعتماد SWI Prolog).
لاستدعاء مسار، قم بتحميل قاعدة المعرفة في المترجم، وقم بتحميل الحالة الأولية وقم بتنفيذ المسار.
على سبيل المثال:
?- [LTS].
initial_state ( InitialState ), path( InitialState , Path ) .
InitialState = . ..
Path = . ..
[And a bunch of alternative paths]
true .
?- initial_state(InitialState), export_tree("tree.csv", InitialState).
InitialState = . ..
true .
يجب أن يقوم الأمر الأخير بتدوين قائمة CSV لكل مسار. تم توثيق التنسيق في src/LTS.pl
، ولكن (نأمل) أن يكون واضحًا ومباشرًا.
منعطف:
[ ] إنهاء تنفيذ LTS لوظيفة الشجرة.
[ ] تنفيذ المحلل اللغوي
[ ] تحسين مناقشة LTS
[ ] إضافة العلامات إلى التحولات.
[ ] ...