نظریه ماشینها
در علوم نظری رایانه، نظریهٔ اتوماتا (به انگلیسی: Automata theory) یا نظریهٔ ماشینها عبارت است از بررسی ریاضی ماشینهای محاسبهگر انتزاعی و تواناییهای آنها برای حل مسایل. به این ماشینهای انتزاعی اتوماتا گفته میشود. این نظریه بسیار نزدیک به نظریهٔ زبان صوری است. بهطوریکه اتوماتا اغلب توسط دستهٔ زبانهای رسمی قابل تشخیص دستهبندی میشوند. اتوماتا نقش اساسی در طراحی کامپایلر و تجزیه کردن (parsing) ایفا میکند. زبانهایی که توسط این ماشینها بررسی میشوند زبانهای فرمال هستند.
توضیحات پایه
یک ماشین، یک مدل ریاضی از ماشین حالات متناهی (FSM) است. یک ماشین شامل مجموعهای متناهی از حالات است که بر اساس ورودی و تابع گذار خود (که میتواند به صورت جدول باشد)، از یک حالت به حالت دیگر، تغییر وضعیت میدهد. این تابع انتقال به ماشین خودکار میگوید که به کدام حالت بعدی با توجه به حالت فعلی و نماد داده شده، برود.
به صورت کلی، یک ماشین شامل مجموعهای متناهی یا شماری از حالات مختلف است.
تعاریف پایه نظریه ماشینها
شرح غیر قرار دادی
یک ماشین خودکار قرار است که بر روی تعدادی ورودی از دنباله یا رشته در مراحل زمانی گسسته اجرا شود. در هر مرحله از زمان، ماشین یک ورودی که از مجموعهای از نمادها یا حرفها برداشته شدهاست را، میگیرد که به آن الفبا (Alphabet) گفته میشود. یک ماشین حاوی مجموعهٔ متناهی از حالت هاست. در هر لحظه از اجرا بسته به نوع ماشین، میتواند در یکی یا چند تا از حالتهایش باشد. در هر مرحلهٔ زمانی، هنگامی که ماشین یک نماد را میخواند، بر اساس حالت فعلی و نماد خوانده شده به حالت بعدی پرش یا گذر میکند. این تابع روی حالت فعلی و نماد ورودی تابعگذار گفته میشود. ماشین تا زمانی که یک ورودی کامل خوانده شود ورودی را نماد به نماد در دنبالهای میخواند و از حالتی به حالت دیگر بر اساس تابع گذار، گذر میکند. زمانی که ورودی نهایی خوانده میشود، اصطلاحاً ماشین متوقف شدهاست و به این حالت، حالت نهایی میگویند. بر اساس حالت نهایی گفته میشود که ماشین یک ورودی را قبول یا رد کردهاست. زیر مجموعهای از حالتهای ماشین وجود دارد که به عنوان مجموعهٔ حالتهای مورد قبول تعریف میشود. اگر حالت نهایی یک حالت مورد قبول باشد ماشین ورودی را پذیرفتهاست. در غیر این صورت ورودی رد میشود. به مجموعهای از ورودیها که توسط ماشین پذیرفته میشود زبان قابل تشخیص ماشین میگویند.
شرح قرار دادی
واژگان
- نماد: کوچکترین و بنیادیترین موجودیتی که دارای معنی یا تأثیری بر ماشین است. برخی مواقع به نمادها حرف هم گفته میشود.
- الفبا: یک مجموعه غیر تهی و متناهی از نمادها که در یک زبان تعریف شدهاند. الفبای زبان توسط Σ نشان داده میشود.
همچنین به هر نماد الفبا یک حرف گفته میشود. به عنوان مثال، الفبای لاتین {a,b،c,... ,z}=∑ و الفبای باینری {۰و۱}=∑ مثالهایی از الفبا هستند که بیشترین کاربرد را برای ما دارند.
- کلمه یا رشته: دنبالهای متناهی از نمادهای یک الفباست که با عمل الحاق به هم پیوستهاند. به عنوان مثال english یک رشته روی الفبای زبان انگلیسی است. یک مثال از رشته به صورت مقابل است: w=aabc
طول رشته با علامت |w| نمایش داده میشود و به تعداد نمادهای موجود در رشته گفته میشود. رشتهٔ تهی با نماد ε یا ℷ نمایش داده میشود و طول آن برابر صفر در نظر گرفته میشود. به عنوان مثال اگر w=abcc آنگاه: ۴=|w|
- زبان: مجموعهای از رشتهها است. این مجموعه میتواند متناهی یا نامتناهی باشد.
تعریف قراردادی
۵ تایی
- Q مجموعهای از وضعیت هاست.
- ∑ یک مجموعهٔ کراندار از نشانه هاست که ما آن را الفبای زبانی که ماشین خودکار میپذیرد مینامیم.
- δ تابعگذار است که
- (برای ماشین خودکار غیر قطعی، یک رشتهٔ خالی نیز یک ورودی قابل قبول است)
- وضعیت شروع است، یعنی وضعیتی از ماشین خودکار که در آن وضعیت، هیچیک از ورودیها هنوز پردازش نشدهاست. (بدیهی است که)
- مجموعهای از حالاتاست (برای مثال F⊆Q) که وضعیتهای قبول نامیده میشوند.
با داشتن حرف ورودی
با داشتن یک جفت از حروف
این ساختار میتواند معکوس هم بشود، با داشتن
سه تایی
زبان پذیرفته شدهٔ ماشین خودکار (یعنی
وقتی مجموعهٔ وضعیتهای Q کراندار است، ماشین خودکار به عنوان ماشین خودکار کراندار شناخته میشود و مجموعهٔ همهٔ زبانهای قابل تشخیص آن را، زبانهای باقاعده مینامیم. در واقع یک همارزی قوی وجود دارد: به ازای هر زبان باقاعده یک ماشین خودکار وضعیت محدود وجود دارد.
انواع ماشینهای خودکار کراندار
در زیر، سه نوع از ماشینهای خودکار کراندار ذکر شدهاست.
- ماشینهای خودکار کراندار قطعی
- هر وضعیت از یک ماشین خودکار از این نوع، یکگذار برای هر نشانه دارد.
- ماشینهای خودکار کراندار غیر قطعی
- وضعیتهای یک ماشین خودکار کراندار غیر قطعی، ممکن است برای هر نشانه یکگذار داشته باشد یا اصلاً انتقالی نداشته باشد یا حتی میتواند برای یک نشانه، گذارهای متعددی داشته باشد. این ماشین خودکار، کلمه را در صورتی میپذیرد که حداقل یک مسیر از به وضعیتی ازوجود داشته باشد. اگرگذار تعریف نشده باشد، ماشین نمیداند که چگونه به خواندن ورودی ادامه دهد و در نتیجه کلمه پذیرفته نمیشود.
- ماشینهای خودکار کراندار غیر قطعی با ε-گذار
- علاوه بر اینکه میتوانند با هر نشانهای به وضعیتهای بیشتری (یا هیچ وضعیتی) پرش کنند، این ماشینها میتوانند که به روی هیچ نشانهای پرش نکنند. به این معنا که، اگر یک وضعیت گذارهای نامگذاری شده با ε را دارد، این ماشین میتواند در هر وضعیتی که به وسیلهٔ ε-گذار بدست آمده قرار گیرد که این کار میتواند با واسطه یا بدون واسطهٔ وضعیتهای دیگر صورت گیرد. مجموعهٔ وضعیتهایی که میتوان به وسیلهٔ این شیوه از وضعیت بدست آورد، ε-بستار برای q نامیده میشود.
با این وجود میتوان نشان داد که تمام این ماشینها، میتوانند زبانهای مشابهی را بپذیرند.
گسترهٔ ماشینهای متناهی
خانوادهٔ زبانهایی که با ماشینهای توصیف شده در بالا پذیرفته میشوند، خانوادهٔ زبانهای باقاعده نامیده میشوند. هر چه یک ماشین قویتر باشد، میتواند زبانهای پیچیدهتری را بپذیرد. ماشینهای خودکاری که از این ماشینها بهشمار میآیند، عبارتند از:
- ماشینهای خودکار پشتهای
- این ماشینها همانند ماشینهای خودکار کراندار قطعی (یا ماشینهای خودکار کراندار غیر قطعی) هستند؛ با این تفاوت که حافظه را به صورت پشته به دوش میکشند؛ و بنابراین تابعگذار نیز به نشانهای که در بالای پشته قرار دارد وابسته است و همین تابع مشخص میکند که در هر گذار، پشته چگونه باید تغییر داده شود. ماشینهای پائین فشردنی غیر قطعی، زبانهای مستقل از متن را میپذیرند.
- ماشینهای خودکار کراندار خطی
- یک ماشین خودکار کراندار خطی، یک ماشین تورینگ غیرقطعی است که در آن، به جای یک نوار نامتناهی، فضایی متناسب با اندازهٔ رشتهٔ وارد شده، بر روی نوار وجود دارد. این ماشینها زبانهای حساس به متن را میپذیرند.
- ماشینهای تورینگ
- این ماشینها، قدرتمندترین ماشینهای محاسباتی هستند. این ماشینها دارای یک حافظهٔ نامتناهی (به شکل یک نوار) و یک هد (که میتواند نوار را بخواند و تغییر دهد و در سرتاسر نوار در هر جهتی جابجا شود) هستند. ماشینهای تورینگ با الگوریتمها هم ارزند و پایهٔ نظری برای کامپیوترهای جدید میباشند. ماشینهای تورینگ زبانهای بازگشتی را میپذیرند و زبانهای شمارشپذیر بازگشتی را شناسایی میکنند.
پانوشتهها
- ↑ non-deteministic automaton
- ↑ currying
- ↑ monoid
- ↑ transition monoid
- ↑ transformation semigroup
- ↑ deterministic finite automata (DFA)
- ↑ nondeterministic finite automata (NFA)
- ↑ nondeterministic finite state machine|Nondeterministic finite automata, with ε transitions (FND-ε or ε-NFA)
- ↑ ε-closure of
- ↑ pushdown automata(PDA)
- ↑ stack
- ↑ non-deterministic PDA
- ↑ context-free languages
- ↑ Linear Bounded Automata (LBA)
جستارهای وابسته
منابع
- ریاضیات گسسته و کاربردهای آن (انگلیسی)
- Jackson, Jr. , Philip C. , Introduction to Artificial Intelligence, 2nd enlarged and slightly corrected ed. , Dover Publications, Inc. , New York, 1985. ISBN 0-486-24864-X
- An Introduction to Formal Languages and Automata, Peter Linz وبسایت کتاب