توضیحات پایه
یک ماشین، یک مدل ریاضی از ماشین با حالات متناهی (FSM) است. یک ماشین شامل مجموعهای متناهی از حالات است که بر اساس ورودی و تابع گذار خود (که میتواند به صورت جدول باشد)، از یک حالت به حالت دیگر، تغییر وضعیت میدهد. این تابع انتقال به ماشین خودکار میگوید که به کدام حالت بعدی با توجه به حالت فعلی و نماد داده شده، برود.
به صورت کلی، یک ماشین شامل مجموعهای متناهی یا شمارا از حالات مختلف است.
در ادامه تعریفی مقدماتی از یک نوع اتوماتا میباشد که به فهم مفاهیم ضروری مورد بحث در نظریهٔ ماشینها کمک میکند.
تعاریف پایه نظریه ماشینها
شرح غیر قراردادی
یک ماشین خودکار قرار است که بر روی تعدادی ورودی از دنباله یا رشته در مراحل زمانی گسسته اجرا شود. در هر مرحله از زمان، ماشین یک ورودی که از مجموعهای از نمادها یا حرفها برداشته شدهاست را، میگیرد که به آن الفبا (Alphabet) گفته میشود. یک ماشین حاوی مجموعهٔ متناهی از حالتهاست. در هر لحظه از اجرا بسته به نوع ماشین، میتواند در یکی یا چند تا از حالتهایش باشد. در هر مرحلهٔ زمانی، هنگامی که ماشین یک نماد را میخواند، بر اساس حالت فعلی و نماد خوانده شده به حالت بعدی پرش یا گذر میکند. این تابع روی حالت فعلی و نماد ورودی تابع گذار گفته میشود. ماشین تا زمانی که یک ورودی کامل خوانده شود ورودی را نماد به نماد در دنبالهای میخواند و از حالتی به حالت دیگر بر اساس تابع گذار، گذر میکند. زمانی که ورودی نهایی خوانده میشود، اصطلاحاً ماشین متوقف شدهاست و به این حالت، حالت نهایی میگویند. بر اساس حالت نهایی گفته میشود که ماشین یک ورودی را قبول یا رد کردهاست. زیر مجموعهای از حالتهای ماشین وجود دارد که به عنوان مجموعهٔ حالتهای مورد قبول تعریف میشود. اگر حالت نهایی یک حالت مورد قبول باشد ماشین ورودی را پذیرفتهاست. در غیر این صورت ورودی رد میشود. به مجموعهای از ورودیها که توسط ماشین پذیرفته میشود زبان قابل تشخیص ماشین میگویند.
شرح قراردادی
واژگان
- نماد: کوچکترین و بنیادیترین موجودیتی که دارای معنی یا تأثیری بر ماشین است. برخی مواقع به نمادها حرف هم گفته میشود.
- الفبا: یک مجموعه متناهی از نمادها که در یک زبان تعریف شدهاند. الفبای زبان توسط Σ نشان داده میشود.
- کلمه: دنبالهای متناهی از نمادهای یک الفباست که با عمل الحاق به هم پیوستهاند.
- زبان: مجموعهای از رشتهها است. این مجموعه میتواند متناهی یا نامتناهی باشد.
ماشین
۵ تایی نمایندهٔ یک ماشین خودکار است که در آن:
- Q مجموعهای از حالات است.
- ∑ یک مجموعهٔ کراندار از نمادهاست که ما آن را الفبای زبانی که ماشین خودکار میپذیرد، مینامیم.
- δ تابع گذار است که
-
- (برای ماشین خودکار غیر قطعی، یک رشتهٔ خالی نیز یک ورودی قابل قبول است)
- q0 حالت شروع است، یعنی حالتی از ماشین خودکار که در آن، هیچ یک از ورودیها هنوز پردازش نشدهاست (بدیهی است که )
- F مجموعهای از حالات Q است (برای مثال F⊆Q) که وضعیتهای قبول نامیده میشوند.
با داشتن حرف ورودی a که میتوان تابع گذار را به صورت نوشت. که این کار با استفاده از ترفند سادهٔ مالش صورت میگیرد (ترفند مالش عبارت است از نوشتن δ(q,a) = δaq به ازای همهٔ ). با این روش، تابع گذار به فرم ساده تری تبدیل میشود. ترکیب تابع تکرار شده یک مونوئید را تشکیل میدهد. برای توابع گذار، این مونوئید تحت نام مونوئید گذار یا در بعضی مواقع نیم گروه دگرسازیشناخته میشود.
کلمهٔ ورودی
ماشین یک رشتهٔ متناهی از نمادهای a1,a2,....,an را که میخواند که کلمهٔ ورودی گفته میشود. مجموعهٔ تمام کلمات با *Σ مشخص میشود. گاهی اوقات یک کاراکتر خاص برای مشخص کردن انتهای یک رشته به کار میرود (بعضی اوقات با λ نمایش داده میشود) که همچنین در الفبا نیز موجود است.
اجرا
یک اجرا ماشین بر روی یک کلمهٔ ورودی، یک دنباله از حالت هایq0,q1,q2,....,qn است که ، به طوری که q0 حالت شروع است و برای داریم qi = δqi − 1,ai . به عبارت دیگر در ابتدا ماشین در حالت شروع q0 است و بعد ماشین دنباله وار نمادهای کلمهٔ ورودی را می خواند. وقتی ماشین نماد ai را می خواند به حالت qi = δqi − 1,ai جهش می کند. qn حالت نهایی اجرا گفته می شود.
کلمهٔ مورد قبول
یک کلمه توسط ماشین مورد قبول است اگر .
زبان شناخته شده
یک ماشین می تواند یک زبان رسمی(formal language) را تشخیص دهد. یک زبان شناخته شده توسط یک ماشین مجموعه ای از کلمات است که برای ماشین پذیرفته باشد.
زبانهای قابل تشخیص
زبانهای قابل تشخیص مجموعه ای از زبانها هستند که برای برخی از ماشینها شناخته شده باشند. برای تعریف بالا از ماشین زبانهای قابل تشخیص زبانهای با قاعده هستند. برای تعاریف متفاوت از ماشین، زبانها قابل تشخیص متفاوت هستند.
با داشتن یک جفت از حروف تابع جدید به صورت تعریف میشود که نشان دهندهٔ ترکیب توابع است. طبیعتا، این فرایند میتواند بطور بازگشتی ادامه یابد و بنابراین یک تعریف بازگشتی از تابع داریم که برای تمام کلمات تعریف شده است و به شرح زیر است
این ساختار میتواند معکوس هم بشود، با داشتن ، میتوان دوباره δ را ساخت و بنابراین، این دو توصیف هم ارزند.
سه تایی تحت نام ماشین نیمه خودکار شناخته میشود. ماشین نیمه خودکار همان ماشین خودکار است با این تفاوت که وضعیت شروع و مجموعهٔ وضعیتهای قبول آن نادیده گرفته شده اند. مفهومهای افزودهٔ وضعیت اولیه و وضعیت قبول باعث میشوند تا توانائی ماشین خودکار بیش از توانائی ماشین نیمه خودکار باشد، بدین شرح که ماشین نیمه خودکار نمیتواند یک زبانهای فرمال را شناسائی کند. زبان L که توسط ماشین خودکار قطعی کراندارپذیرفته شده است، این گونه تعریف میشود:
توضیح اینکه، زبان پذیرفته شدهٔ ماشین خودکار(یعنی L) مجموعهای از کلمات w است که با الفبای Σ ساخته شده اند و وقتی به عنوان ورودی به ماشین خودکار داده میشوند، نهایتا یکی از وضعیتهای F را نتیجه میدهند. زبانهایی را که توسط ماشین خودکار پذیرفته شده اند، زبانهای قابل تشخیص می نامند.
وقتی مجموعهٔ وضعیتهای Q کراندار است، ماشین خودکار به عنوان ماشین خودکار وضعیت محدود شناخته میشود و مجموعهٔ همهٔ زبانهای قابل تشخیص آن را، زبانهای باقاعده می نامیم. در واقع یک هم ارزی قوی وجود دارد: به ازای هر زبان باقاعده یک ماشین خودکار وضعیت محدود وجود دارد.
انواع ماشینهای خودکار کراندار
در زیر، سه نوع از ماشینهای خودکار کراندار ذکر شده است
- ماشینهای خودکار کراندار قطعی
- هر وضعیت از یک ماشین خودکار از این نوع، یک گذار برای هر نشانه دارد.
- ماشینهای خودکار کراندار غیر قطعی
- وضعیتهای یک ماشین خودکار کراندار غیر قطعی، ممکن است برای هر نشانه یک گذار داشته باشد و یا اصلا انتقالی نداشته باشد و یا حتی میتواند برای یک نشانه، گذارهای متعددی داشته باشد. این ماشین خودکار، کلمه را در صورتی می پذیرد که حداقل یک مسیر از q0 به وضعیتی از F وجود داشته باشد. اگر گذار تعریف نشده باشد، ماشین نمیداند که چگونه به خواندن ورودی ادامه دهد و در نتیجه کلمه پذیرفته نمیشود.
- ماشینهای خودکار کراندار غیر قطعی با ε-گذار
- علاوه بر اینکه میتوانند با هر نشانهای به وضعیتهای بیشتری( یا هیچ وضعیتی) پرش کنند، این ماشینها میتوانند که به روی هیچ نشانهای پرش نکنند. به این معنا که، اگر یک وضعیت گذارهای نامگذاری شده با ε را دارد، این ماشین میتواند در هر وضعیتی که به وسیلهٔ ε-گذار بدست آمده قرار گیرد که این کار میتواند با واسطه یا بدون واسطهٔ وضعیتهای دیگر صورت گیرد. مجموعهٔ وضعیت هایی که میتوان به وسیلهٔ این شیوه از وضعیت q بدست آورد، ε-بستار برای qنامیده میشود.
با این وجود میتوان نشان داد که تمام این ماشین ها، میتوانند زبانهای مشابهی را بپذیرند.
گسترهٔ ماشینهای متناهی
خانوادهٔ زبان هایی که با ماشینهای توصیف شده در بالا پذیرفته میشوند، خانوادهٔ زبانهای باقاعده نامیده میشوند. هر چه یک ماشین قوی تر باشد، میتواند زبانهای پیچیده تری را بپذیرد. ماشینهای خودکار این چنینی عبارتند از:
- ماشینهای خودکار پائین فشردنی
- این ماشینها همانند ماشینهای خودکار کراندار قطعی (یا ماشینهای خودکار کراندار غیر قطعی) هستند با این تفاوت که حافظه را به صورت پشتهبه دوش میکشند. و بنابراین تابع گذار δ نیز به نشانهای که در بالای پشته قرار دارد وابسته است و همین تابع مشخص میکند که در هر گذار، پشته چگونه باید تغییر داده شود. ماشینهای پائین فشردنی غیر قطعی، زبانهای مستقل از متنرا می پذیرند.
- ماشینهای خودکار کراندار خطی
- یک ماشین خودکار کراندار خطی، یک ماشین تورینگمحدود شده است که در آن، به جای یک نوار نامتناهی، فضایی متناسب با اندازهٔ رشتهٔ وارد شده، بر روی نوار وجود دارد. این ماشینها زبانهای حساس به متن را می پذیرند.
- ماشینهای تورینگ
- این ماشین ها، قدرتمندترین ماشینهای محاسباتی هستند. این ماشینها دارای یک حافظهٔ نامتناهی (به شکل یک نوار) و یک هد (که میتواند نوار را بخواند و تغییر دهد و در سرتاسر نوار در هر جهتی جابجا شود) هستند. ماشینهای تورینگ با الگوریتمها هم ارزند و پایهٔ نظری برای کامپیوترهای جدید میباشند. ماشینهای تورینگ زبانهای بازگشتی را می پذیرند و زبانهای بازگشت شمارش پذیر را شناسایی میکنند.
قبل از اینکه وارد دانشگاه شیم برای دانشگاه نظرهای زیادی داشتیم ولی حالا که وارد دانشگاه شدیم هیچ نظری نداریم!!!!!