ویرگول
ورودثبت نام
مجتبی میر یعقوب زاده
مجتبی میر یعقوب زاده
خواندن ۱۱ دقیقه·۴ سال پیش

همه ما ماشین تورینگ هستیم

این مطلب به بررسی نظریه ای درمورد اثرگذاری طبیعی ماشین های محاسباتی در سیستم های بزرگ پویا، می پردازد. اگر این نظریه درست باشد، دیدگاه تازه ای درمورد منشا زندگی ارائه می‌دهد.

توجه کنید که این مطلب به نظریه ثابت نشده زیر تکیه می‌کند:

ماشین های محاسباتی، جاذب ریاضی در سیستم های بزرگ پویا هستند


ماشین تورینگ

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

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

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

ما میتوانیم ماشین تورینگ(با نوار محدود) را روی کامپیوتر هایمان شبیه سازی کنیم، اما برنامه‌نویسی آن پیچیده است. اگر ساده بخواهم بگویم، کامپیوتر های ما بر اساس معماری فون نویمان کار می‌کنند که برنامه نویسی در آنها ساده تر است.

نظریه

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

روند تکامل را هم میتوان شبیه این طرح دانست. چون از یک الگوریتم اول‌سطح پیروی می‌کند. درست مثل روند طراحی از پایین به بالا برای ماشین هایی که باید به بهترین نحو روی زمین زنده بمانند. اگر الگوریتم های ساده ای برای زنده ماندن ماشین ها وجود داشت، مطمئناً تکامل تا به حال این ماشین ها و الگوریتم ها را پیدا کرده بود. اگر چنین است، پس تکامل روند انتخاب بهترین الگوریتم ها و ماشین ها برای زنده ماندن است و زندگی، نتیجه این روند است.

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

ماشین های شبیه تورینگ

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

قبول دارم که در اینجا و در عنوان مطلب، از تعریف اصلی ماشین تورینگ سوء استفاده شده است. هدف از این کار احترام گذاشتن به یافته های آلن تورینگ است. همچنین عنوان همه ما ماشین های شبیه تورینگ هستیم زیاد جذاب نیست.

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

1- یک نوار با تعدادی نماد

2-یک کلاهک. جنس این کلاهک میتواند هر چیزی که بتواند نماد ها را ذخیره کند باشد. کلاهک بر اساس قواعدی می‌تواند نماد های نوار را بخواند و واکنشی نشان دهد.

تفاوت های ماشین های شبیه تورینگ

می‌توانیم با اعمال تغییراتی ماشین تورینگ را ویرایش کنیم. مثلا این تغییرات را در نظر بگیرید:

  • مجموعه متفاوتی از نماد ها (دودویی،عدد،حروف،کلمات)
  • قواعد متفاوت کلاهک برای خواندن و نوشتن
  • حالت های اولیه متفاوت
  • چندین کلاهک
  • کلاهک های پشته‌ای
  • کلاهکی که به یک منبع خارجی متصل است
  • نواری که به‌طور مداوم در حال حرکت است که حرکتش مستقل از کلاهک است
  • نوار هایی که در چند ماشین تورینگ در ارتباط هستند

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

ممکن است اعمال تغییرات در ماشین ساختار آن را پیچیده تر کند اما بعضی تغییرات می‌تواند قدرت زبان آن ماشین را افزایش دهد. با انتخاب درست تغییرات، می‌توان زبانی را تولید کرد که کارآمد ترین نسخه دستگاه را ارائه دهد. اعمال تغییرات می‌تواند برنامه های بزرگ و پیچیده را به یک برنامه ساده و کوچکتر تبدیل کند.

فرضیه

برای کاوش در نظریه، این سوال ها را می‌پرسیم:

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

بخش های پایین اکتشافات تخیلی از شرایطی است که ممکن است باعث ایجاد اولین ماشین شبیه تورینگ در زمین شده است.

اولین ماشین شبیه تورینگ روی زمین

زمین یک سیستم بزرگ پویا است. خورشید به طور مداوم نور و گرمای خود را به زمین در حال چرخش ما می‌تاباند، انرژی آن در سرتاسر اتمسفر ما پخش و باعث ایجاد باد، باران، رود و چرخه های مختلف می‌شود.

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

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

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

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

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

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

تکامل ماشین ها

در یک برهه ای از تاریخ، یک ماشین خاص تولید شد که یک کد درست داشت، کدی برای تکثیر خود. هر ماشینی را می‌توان در این کد توصیف کرد، و اینطور شد که تکامل راهی برای رمزگذاری یک ماشین بقای قابل تکثیر درون DNA یافت. مطمئناً تصادفی نیست که ساختار DNA شبیه جبر لاندا است. اگر متداول ترین ماشین ها، ماشین های شبیه تورینگ باشند، پس می‌توان انتظار داشت که متداول ترین کد ها و زبان ها هم شبیه جبر لاندا باشند.

اینجا بود که زندگی آغاز شد. تکامل ماشین های محاسباتی تکثیر شونده که به دنبال کد ها و تغییراتی برای بقا هستند. در ابتدای مطلب این موضوع پیش‌بینی شد چون نظریه ما بیان می‌کند که ماشین های محاسباتی به‌طور طبیعی درحال اثرگذاری در محیط پیرامون هستند.

بعضی پیشرفت ها میلیون ها سال طول کشیده اند. مثل پیشرفت پروکاریوت ها و یوکاریوت ها. بعضی پیشرفت ها احتیاج به یک جزء یا کد دیگر دارند که ویژه هستند و پیدا کردن آنها سخت است.

اجداد ما یک ماشین شبیه تورینگ بودند. درخت زندگی یک نقشه از انواع DNA ها برای ماشین ها و الگوریتم هایی هست که منجر به زنده ماندن روی زمین می‌شوند.

ماشین های تورینگ تا ابد

اگر تا به حال انیمیشن های سه بعدی مولکول ها در سلول ها را ندیده اید‌، پس خواهشا همین حالا این کار را انجام دهید. قبول دارید که ریبوزوم شبیه کلاهک یک ماشین تورینگ مولکولی است؟ و رشته mRNA کد این ماشین است؟ رگ های ما شبیه به یک نوار اشتراکی عمل می‌کنند، یک راه ارتباطی بین میلیارد ها ماشین محاسباتی درون سلول های بدن مان. یک شهر پر از ماشین که پیام های سلولی نوشته شده به زبان آمینواسید، پروتئین و کدون را منتقل می‌کند.

خلاصه

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

سیستم پویا ← زبان← محاسبات← تکثیر

از آنجایی که این یک نظریه ریاضی است، انتظار میرود که یک اثبات وجود داشته باشد. اگرچه که ترکیب کار های داروین،چرچ و تورینگ با هم بسیار با معنی است اما تعداد کار هایی که در این زمینه انجام شده است بسیار کم هستند.



منبع

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