**ماشین امگا** ({\displaystyle \omega -{\textbf {automaton}}})(انگلیسی: Omega-Automaton) گونه‌ای از ماشین حالات متناهی است که ورودی آن رشته‌های نامتناهی به جای رشته‌های متناهی می‌باشد. از آنجایی که رشته‌های ورودی نامتناهی می‌باشند، ماشین‌های امگا به جای مجموعه وضعیت‌های قبول، شرایط قبول دارند.

با توجه به ورودی ماشین‌های امگا که نامتناهی است، می‌توان از آن‌ها برای توصیف وضعیت سامانه‌هایی از قبیل سخت‌افزارها، سیستم‌های عامل، سیستم‌های کنترلی، تصدیق سیستم‌ها و محاسبات استفاده کرد.

ماشین‌های امگا همانند ماشین‌های حالت متناهی به دو گونهٔ قطعی و غیرقطعی تقسیم می‌شوند. انواع گوناگون ماشین‌های امگا عبارتند از: ماشین بوخی، ماشین رابین، ماشین زوجیت، ماشین مولر و … تمامی این ماشین‌ها به هر دو صورت قطعی و غیرقطعی وجود دارند و تفاوت آن‌ها در شرایط قبولی می‌باشد. به غیر از ماشین بوخی قطعی که از تمامی مدل‌های دیگر ضعیف‌تر است، تمامی این مدل‌ها زبان‌های منظم امگا را تشخیص می‌دهند.

معرفی و مقدمه
-------------

مجموعه اعداد صحیح نامنفی را با \omega  نشان می‌دهیم، یعنی {\displaystyle \omega =\{0,1,2,...\}}. الفبای ورودی متناهی را نیز با \Sigma  نمایش می‌دهیم. در حالی که {\displaystyle \Sigma ^{\*}} مجموعهٔ تمام کلمات متناهی بر روی الفبای \Sigma  است، {\displaystyle \Sigma ^{\omega }} مجموعهٔ تمام کلمات نامتناهی بر روی الفبای مذکور می‌باشد. زبان L را یک \omega -زبان گوییم هرگاه کلمات آن زیرمجموعه‌ای از {\displaystyle \Sigma ^{\*}} باشند، یعنی {\displaystyle L\subseteq \Sigma ^{\omega }}.

ماشین امگا قطعی
---------------

یک ماشین امگا قطعی A یک چندتایی به صورت {\displaystyle A=(Q,\Sigma ,\delta ,Q\_{0},Acc)} است. در ادامه به تبیین هر کدام از مؤلفه‌ها می‌پردازیم:

* Q مجموعه‌ای متناهی است که وضعیت‌های ماشین امگا را نشان می‌دهد.
* \Sigma  مجموعه‌ای متناهی است که الفبای ماشین امگا را نشان می‌دهد.
* {\displaystyle \delta :Q\times \Sigma \rightarrow Q} تابع انتقال ماشین امگا است.
* {\displaystyle Q\_{0}\in Q} وضعیت اولیه ماشین است.
* {\displaystyle Acc} شرایط قابل قبول را نشان می‌دهد که به صورت خاص {\displaystyle Acc\subseteq Q^{\omega }} است.
* یک ورودی به ماشین قطعی A مثل \alpha  به صورت رشته‌ای نامتناهی {\displaystyle \alpha =a\_{0}a\_{1}a\_{2}a\_{3}...\in \Sigma ^{\omega }} است. اجرای A بر روی \alpha  برابر با دنباله‌ای نامتناهی از وضعیت‌ها مثل s و به صورت مقابل است:
* {\displaystyle s\_{0}=Q\_{0}}
* {\displaystyle \forall i\geq 1\quad s\_{i}=\delta (s\_{i-1},a\_{i-1})}

ماشین امگا غیرقطعی
------------------

یک ماشین امگا غیرقطعی A یک چندتایی به صورت {\displaystyle A=(Q,\Sigma ,\triangle ,Q\_{0},Acc)} است. در ادامه به تبیین هر کدام از مؤلفه‌ها می‌پردازیم:

* Q مجموعه‌ای متناهی است که وضعیت‌های ماشین امگا را نشان می‌دهد.
* \Sigma  مجموعه‌ای متناهی است که الفبای ماشین امگا را نشان می‌دهد.
* {\displaystyle \triangle } زیرمجموعه‌ای از {\displaystyle Q\times \Sigma \times Q} است و رابطه انتقال ماشین امگا نام دارد.
* {\displaystyle Q\_{0}\subseteq Q} وضعیت اولیه ماشین است.
* {\displaystyle Acc} شرایط قابل قبول را نشان می‌دهد که به صورت خاص {\displaystyle Acc\subseteq Q^{\omega }} است.

در اینجا بر خلاف ماشین امگا قطعی برای انتقال بین وضعیت‌های مختلف به جای یک تابع از یک رابطه استفاده می‌کنیم. در این حالت وضعیت بعدی لزوماً به صورت یکتا تعیین نمی‌شود بلکه می‌تواند حالات گوناگونی داشته باشد و به صورت غیرقطعی وارد تمامی آن‌ها می‌شود. یک ورودی به ماشین غیرقطعی A مثل \alpha  به صورت رشته‌ای نامتناهی {\displaystyle \alpha =a\_{0}a\_{1}a\_{2}a\_{3}...\in \Sigma ^{\omega }} است. اجرای A بر روی \alpha  برابر با دنباله‌ای نامتناهی از وضعیت‌ها مثل s و به صورت مقابل است:

* {\displaystyle s\_{0}\in Q\_{0}}
* {\displaystyle \forall i\geq 1\quad s\_{i}\in \triangle (s\_{i-1},a\_{i-1})}

شرایط قبول
----------

در ماشین‌های حالات متناهی، اجرای هر ماشین بر روی رشتهٔ ورودی در یک وضعیت خاص پایان می‌یابد و بنا بر آنکه آن وضعیت عضوی از مجموعه وضعیت‌های قابل قبول باشد، رشته ورودی تأیید یا رد می‌شود. در ماشین‌های امگا، بر خلاف ماشین‌های حالت متناهی، باید به اجرای ماشین بر روی رشته توجه کرد و با توجه به وضعیت‌هایی که اجرا به خود می‌بیند تصمیم به تأیید یا رد رشته گرفت. یک رشته دلخواه مورد قبول ماشین قرار می‌گیرد هرگاه خروجی وضعیت‌های اجرای مربوط به آن درون {\displaystyle Acc} باشد. زبان ماشین امگای A برابر است با تمامی کلماتی که توسط این ماشین قبول می‌شوند و با {\displaystyle L(A)} نشان داده می‌شود. برای هر اجرا مانند s مجموعهٔ {\displaystyle Inf(s)} را برابر با وضعیت‌هایی از ماشین در نظر می‌گیریم که هر کدام نامتناهی بار در اجرا ظاهر می‌شوند، یعنی {\displaystyle Inf(s)=\{q\in Q|\forall i\geq 0\quad \exists j\geq i:s\_{j}=q\}}. حال با استفاده از این تعریف به بیان انواع گوناگون ماشین‌های امگا می‌پردازیم.

### ماشین بوخی

در این ماشین مجموعه {\displaystyle Acc} برابر با زیرمجموعه‌ای از وضعیت‌ها مانند {\displaystyle F\subseteq Q} است و در آن اجرای s قبول می‌شود هرگاه شرط {\displaystyle Inf(s)\cap F\neq \emptyset } برقرار باشد. به تعبیری دیگر یک وضعیت مورد قبول باشد که در اجرای s بینهایت بار ظاهر شود.

### ماشین رابین

در این ماشین مجموعه {\displaystyle Acc} برابر است با {\displaystyle \Omega =\{(E\_{i},F\_{i})|E\_{i},F\_{i}\subseteq Q\}}. در این ماشین اجراهایی مورد قبول واقع می‌شوند که در آن‌ها عضوی از \Omega  مانند {\displaystyle (E\_{i},F\_{i})} وجود داشته باشد که {\displaystyle Inf(s)\cap E\_{i}=\emptyset } و {\displaystyle Inf(s)\cap F\_{i}\neq \emptyset }.

### ماشین زوجیت

در این ماشین مجموعه وضعیت‌ها را به صورت {\displaystyle Q=\{0,1,...k\}} در نظر می‌گیریم و شرط قبول شدن اجرای s آن است که {\displaystyle \min {Inf(s)}{\bmod {2}}=0}.

### ماشین مولر

در این ماشین مجموعه {\displaystyle Acc} برابر با زیرمجموعه‌ای از مجموعه توانی وضعیت‌ها مانند {\displaystyle F\subseteq P(Q)} است و در آن اجرای s قبول می‌شود هرگاه شرط {\displaystyle Inf(s)\in F} برقرار باشد. به تعبیری دیگر تمام وضعیت‌هایی که بینهایت بار تکرار می‌شوند مجموعه‌ای را تشکیل دهند که در F آمده باشد.

مثال
----

مثالی از ماشین قطعی بوخییک ماشین قطعی بوخی
در اینجا مثالی از ماشین امگای قطعی بوخی آورده‌ایم. توصیف این ماشین به صورت مقابل است:

* {\displaystyle Q=\{q\_{1},q\_{2}\}}
* {\displaystyle \Sigma =\{a,b\}}
* {\displaystyle \delta (q\_{1},a)=a}، {\displaystyle \delta (q\_{1},b)=q\_{2}}، {\displaystyle \delta (q\_{2},a)=q\_{1}} و {\displaystyle \delta (q\_{2},b)=q\_{2}}
* {\displaystyle Q\_{0}=q\_{1}}
* {\displaystyle Acc=\{q\_{1}\}}

زبان این ماشین برابر است با تمام کلمات امگایی که در آن‌ها بینهایت بار حرف a آمده باشد. حال اگر داشته باشیم {\displaystyle Acc=\{q\_{2}\}} آنگاه زبان ماشین برابر است با تمام کلمات امگایی که در آن‌ها بینهایت بار حرف b آمده باشد.

منابع
-----

1. 1 2 3  Thomas Wilke (۱۰ سپتامبر ۲۰۱۶). "ω-Automata" (به انگلیسی). `{{cite journal}}`: Cite journal requires `|journal=` (help)
2. ↑  "ω-Automata" (PDF). *Technical University of Munich* (به انگلیسی).
3. ↑  Paritosh K. Pandya. "Automata on Infinite Words" (PDF). *دانشگاه TIFR* (به انگلیسی).