اتوماتای نخی
در نظریه اتوماتا، شاخهای از علوم کامپیوتر نظری، اتوماتای نخی (به انگلیسی: Thread automata) ماشینی قدرمتند است، که اولین بار در سال ۲۰۰۲ توسط اریک کلرگری (به انگلیسی: Eric Clergerie) معرفی شد. این ماشین، طیف گستردهای از زبانهای نیمه حساس به متن (به انگلیسی: Mildly context-sensitive languages) را میپذیرد.[1] بهطور خاص، اتوماتای نخی دستهٔ سیستم های بازنویسی مستقل از متن خطی (به انگلیسی: Linear Context-free Rewriting Systems) را بهطور کامل میپذیرد و حتی قدرت پذیرش زبانهایی فراتر از این دسته را نیز دارد.[2][3] اتوماتای نخی، نسخهای گستردهتر و سادهتر از ماشینهایی است که قبل از آن برای تجزیه زبانهای نیمه حساس به متن پیشنهاد شده بودند. از این قبیل ماشینها میتوان به اتوماتای دو پشتهای (به انگلیسی: Two-stack automata) که برای گرامرهای درخت مجاورت (به انگلیسی: Tree-adjoining grammars) پیشنهاد شده بود، اشاره کرد.[1]
ایده کلی
اتوماتای نخی غیرقطعی میباشد، و اگر تمام حالات ممکن، مستقل از یکدیگر دنبال شوند، پیچیدگی محاسباتی آنها نمایی خواهد شد. اما به همراه نمایش فشردهٔ زیراشتقاقها و نیز تکنیکهای جدولبندی، پیچیدگی محاسباتی آنها چندجملهای میشود. ایدهٔ کلی اتوماتای نخی بر این اساس است که در هر لحظه مجموعهای از نخها وجود دارند که یکی از آنها فعال است. حرکات در اتوماتا نیز به این صورت است که نخها ممکن است یک زیرنخ جدید را ایجاد کنند، تمام شوند، و یا معلق شده و کنترل را به پدر و یا یکی از فرزندان خود بازگردانند.[2]
تعریف رسمی
اتوماتای نخی به یک نهتایی گفته میشود، بدین صورت که:
- مجموعهٔ متناهی از نمادهای غیر-پایانه است.
- مجموعهٔ متناهی از نمادهای پایانه است.
- غیر-پایانهٔ ابتدایی است.
- غیر-پایانهٔ انتهایی است.
- یک تابع راه اندازی (به انگلیسی: Triggering function) است که یک تابع جزیی (به انگلیسی: Partial function) از به یک مجموعهٔ متناهی را تعریف میکند، که برای دریافت کردن اطلاعاتی که در یک نخ بهدست آمده در جهت راه اندازی درخواست برای نوعی از انتقالها (به انگلیسی: Transitions) استفاده میشود.
- مجموعهٔ متناهی از برچسبها است که برای شناسایی نخها از آن استفاده میشود. علاوه بر این، مجموعهٔ متناهی توسط تابع جزیی نیز استفاده میشود.
- یک تابع جزیی از به است که برای مشخص کردن نخهایی که ممکن است در زمانی ساخته شوند و یا ادامه یابند استفاده میشود.
- مجموعهای متناهی از انتقالها است.
حال اگر یک اتوماتای نخی باشد:
- یک نخ عبارت است از یک جفت که در آن یک مسیر نخ (به انگلیسی: Thread path) است که میتواند خالی باشد، و نیز یک نماد غیر-پایانه از است که محتوای آن نخ میباشد.
- یک انبار نخ (به انگلیسی: Thread store)، مجموعهای از نخها است که نمایانگر تابعی از به است که نسبت به پیشوند بسته است و یا در واقع .
- یک پیکربندی (به انگلیسی: Configuration) از یک سهتایی است که در آن مکان فعلی در رشتهٔ ورودی را مشخص میکند، یک انبار نخ است و یک مسیر نخ در است.
- عمل جابهجایی (به انگلیسی: SWAP) محتوای یک نخ فعال را تغییر میدهد.
- عمل PUSH یک زیرنخ جدید را ایجاد کرده و پدر آنرا معلق میکند.
- عمل POP نخ فعال را پایان داده و کنترل را به پدر آن نخ بازمیگرداند.
- عمل SPUSH یک زیرنخ معلق شده از نخ فعال فعلی را، دوباره فعال میکند.
- عمل SPOP پدر نخ فعال فعلی را، دوباره فعال میکند.
زبان یک اتوماتای نخی، مجموعهای از کلمات است که میتوان با شروع از مجموعه نخ و بعد از خواندن تمام ورودی به مجموعه نخ رسید.[1][2][4]
جستارهای وابسته
منابع
- Villemonte de la Clergerie، Éric (۲۰۰۲). «Parsing Mildly Context-Sensitive Languages with Thread Automata». COLING '02 Proceedings of the 19th international conference on Computational linguistics.
- Kallmeyer، Laura (۲۰۱۰). Parsing Beyond Context-Free Grammars. صص. ۲۰۰–۲۱۴.
- Laura Kallmeyer. «Mildly Context-Sensitive Grammar Formalisms: Thread Automata» (PDF). کاراکتر line feed character در
|عنوان=
در موقعیت 33 (کمک) - Laura Kallmeyer. «Mildly Context-Sensitive Grammar Formalisms: Thread Automata» (PDF). بایگانیشده از اصلی (PDF) در ۱۱ اوت ۲۰۱۷. دریافتشده در ۳۱ دسامبر ۲۰۱۷. کاراکتر line feed character در
|عنوان=
در موقعیت 33 (کمک)