ماشین صف

از testwiki
نسخهٔ تاریخ ۹ مارس ۲۰۲۳، ساعت ۰۵:۴۶ توسط imported>Rezarafeezadeh (growthexperiments-addlink-summary-summary:2|0|0)
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به ناوبری پرش به جستجو

ماشین صف الگو:به انگلیسییک ماشین حالت متناهی است که توانایی ذخیره و بازیابی اطلاعات را از یک صف با حافظه بی‌نهایت دارد. این یک مدل محاسباتی معادل ماشین تورینگ است و بنابراین می‌تواند همان کلاس زبان رسمی را پردازش کند.

تئوری

یک ماشین صف با شش تایی زیر تعریف می‌شود:

M=(Q,Σ,Γ,$,s,δ)
  • Q مجوعه حالات متناهی
  • ΣΓ مجموعه متناهی الفبای ورودی
  • Γ صف محدود الفبا
  • $ΓΣ نماد اولیه صف است.
  • sQ حالت شروع
  • δ:Q×ΓQ×Γ* تابع انتقال

یک پیکر بندی ماشین، به صورت دوتایی حالت و محتوای صف است و به صورت (q,γ)Q×Γ* نشان داده می‌شود، کهΓ* به معنای ستاره کلین Γ می‌باشد. پیکربندی شروع با رشته ورودیx به صورت (s,x$) تعریف می‌شود و انتقال M1 از یک پیکربندی به پیکربندی بعدی به صورت زیر بیان می‌شود:

(p,Aα)M1(q,αγ)

که A نشانه ای از صف الفبا،α یک دنباله از نمادهای صف(αΓ*)، و (q,γ)=δ(p,A). توجه داشته باشید که ویژگی "first-in-first-out" از صف در رابطه وجود دارد.

ماشین رشته xΣ* را قبول می‌کند اگر پس از یک تعداد محدودی از انتقال، پیکربندی شروع آنقدر پیش برود تا رشته را تهی کند (به رشته صفر برسدϵ) یا(s,x$)M*(q,ϵ).[۱]

تکامل تورینگ

ما می‌توانیم ثابت کنیم که یک ماشین صف معادل یک ماشین تورینگ است. با نشان دادن اینکه ماشین صف می‌تواند دستگاه تورینگ را شبیه‌سازی کند و برعکس این امر اثبات می‌شود.

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

یک ماشین صف می‌تواند توسط یک ماشین تورینگ شبیه‌سازی شود، اما این شبیه‌سازی توسط ماشین تورینگ چندنواره بسیار راحت‌تر است. ماشین صف شبیه‌سازی شده ورودی را از یک نوار می‌خواند و در دومی ذخیره می‌کند و push و pop از صف با یک انتقال ساده به موقعیت آغاز و پایان نوار تعریف می‌شود.[۲]

کاربرد

ماشین‌های صف می‌توانند مدل ساده ای را برای ایجاد معماری‌های کامپیوتری،[۳][۴]زبان‌های برنامه‌نویسی یا الگوریتم ارائه دهند.[۵][۶]

منابع

الگو:پانویس الگو:فناوری‌های واحد پردازش مرکزی