ماشین سلولی چیست
ماشین سلولی صفحهای از خانههاست که هر کدام در یک حالت قرار دارند (اینجا زنده یا مرده) و در گامهایی به نام نسل تغییر میکنند. در هر گام، همهٔ خانهها همزمان با یک قانون بهروز میشوند که فقط به هشت همسایهٔ اطراف هر خانه نگاه میکند.
بازی زندگی برد و باخت ندارد: شما وضعیت اولیه را انتخاب میکنید و قانونها بقیهٔ کار را انجام میدهند. نکتهٔ جالب این است که از قانونهای اینقدر ساده رفتاری بسیار پیچیده و غیرقابلپیشبینی بیرون میآید و برای همین در ریاضی، علوم کامپیوتر و حتی زیستشناسی مطالعه میشود.
قانونها به زبان ساده
تعداد همسایههای زندهٔ هر خانه (هشت خانهٔ اطراف آن، با احتساب قطرها) را نگاه میکنیم و این قانونها را همزمان روی کل صفحه اجرا میکنیم:
- سلول زندهای که کمتر از دو همسایهٔ زنده دارد از تنهایی میمیرد.
- سلول زندهای که دو یا سه همسایهٔ زنده دارد زنده میماند.
- سلول زندهای که بیش از سه همسایهٔ زنده دارد از ازدحام میمیرد.
- خانهٔ مردهای که دقیقاً سه همسایهٔ زنده دارد زنده میشود.
نماد کوتاه این قانونها B3/S23 است: B (از birth، تولد) 3 یعنی با 3 همسایه تولد رخ میدهد و S (از survival، بقا) 23 یعنی با 2 یا 3 همسایه سلول زنده میماند. قانونهای جایگزین ابزار هم از همین نماد استفاده میکنند؛ مثلاً هایلایف B36/S23 و بذرها B2/S است.
محاسبهٔ یک نسل با دست
چشمکزن را در نظر بگیرید: سه سلول زنده در یک ردیف افقی. سلول وسط 2 همسایهٔ زنده دارد و میماند. سلولهای دو سر فقط 1 همسایه دارند و میمیرند. خانههای درست بالا و پایین سلول وسط 3 همسایهٔ زنده دارند (هر سه سلول ردیف) و زنده میشوند. نتیجه: یک ردیف عمودی از سه سلول.
در نسل بعد همین فرایند تکرار میشود و دوباره افقی میشود. برای همین چشمکزن نوسانگری با دورهٔ 2 است. همین را روی بلوک، یعنی مربع 2 × 2، امتحان کنید: هر سلول 3 همسایه دارد و همه میمانند، و هیچ خانهٔ خالی 3 همسایهٔ زنده ندارد. هرگز تغییر نمیکند و به همین دلیل «طبیعت بیجان» نام دارد.
تاریخچه: کانوی، گاردنر و مجله
جان کانوی، ریاضیدان بریتانیایی، این بازی را در سال 1970 ابداع کرد. مارتین گاردنر آن را در ستون بازیهای ریاضی مجلهٔ Scientific American، در شمارهٔ اکتبر 1970، معرفی کرد و از آن زمان جامعهای بزرگ از علاقهمندان شکل گرفته که الگوها را پیدا و فهرست میکنند.
با گذشت زمان ثابت شد این بازی تورینگکامل است: با شکلهای مناسب، در اصل میتواند هر چیزی را که یک رایانه حساب میکند حساب کند. این یکی از دلایلی است که هنوز مشهور است: پیچیدگی بیپایان از قانونهایی بسیار کوچک.
خانوادههای الگو و کدامها را امتحان کنیم
الگوها بر اساس رفتارشان دستهبندی میشوند. همه در منوی «الگو» ابزار با همین نامها هستند:
| خانواده | الگو | چه میکند |
|---|---|---|
| طبیعت بیجان | بلوک، کندوی زنبور | هرگز تغییر نمیکند: بلوک 4 سلول و کندو 6 سلول |
| نوسانگر | چشمکزن، وزغ، فانوس دریایی | دورهٔ 2: هر 2 نسل از نو شروع میشود |
| نوسانگر | پولسار | دورهٔ 3، با 48 سلول در فاز اولیه |
| نوسانگر | پنتادکاتلون | دورهٔ 15 |
| فضاپیما | گلایدر | 5 سلول؛ هر 4 نسل یک خانه بهصورت قطری جلو میرود |
| فضاپیما | فضاپیمای سبک | صفحه را در خط مستقیم طی میکند، با دورهٔ 4 |
| تفنگ | تفنگ گلایدر گاسپر | هر 30 نسل یک گلایدر تازه شلیک میکند |
| آشوب اولیه | R-پنتومینو | 5 سلول که در صفحهٔ بینهایت 1,103 نسل طول میکشد تا پایدار شوند |
تفنگ گاسپر را بیل گاسپر در سال 1970 پیدا کرد و اولین دلیل بود که نشان داد یک جمعیت میتواند بیحد رشد کند. افزون بر اینها، ابزار «بلوط» و «جانسخت» را هم دارد، دو الگوی کوچک که مدت بسیار زیادی طول میکشد تا تکلیفشان روشن شود.
چطور از ابزار بازی زندگی استفاده کنیم
- روی صفحه بزنید یا بکشید تا سلول زنده بکشید (برای برداشتن، دوباره روی خانهٔ زنده بزنید) یا از منوی «الگو» یک الگو انتخاب کنید.
- «شروع» را بزنید. با «یک نسل» هر بار یک گام جلو میروید تا تکامل را با آرامش دنبال کنید و با «توقف» همهچیز میایستد. وقتی صفحه انتخاب شده میتوانید از صفحهکلید هم استفاده کنید: Space شروع یا توقف میکند، N یک گام جلو میرود، R صفحه را تصادفی پر میکند و C آن را پاک میکند.
- «سرعت»، «اندازه صفحه» و «قانون» را تنظیم کنید و «تصادفی» را (با «تراکم حالت تصادفی») امتحان کنید تا با صفحهای پر از سلول شروع کنید. «پاک کردن» صفحه را خالی میکند.
- «رنگآمیزی بر اساس سن هر سلول» را روشن کنید تا ببینید کدام نواحی مدت بیشتری پایدار ماندهاند. بالای صفحه نسل و تعداد سلولهای زنده نمایش داده میشود و ابزار خبر میدهد که صفحه پایدار شده، وارد چرخه شده یا زندگیای باقی نمانده است.
همهچیز روی دستگاه شما محاسبه میشود و هیچ چیزی به سرور فرستاده نمیشود. ابزار تنظیمات (اندازه، سرعت، قانون) را در مرورگر شما نگه میدارد، اما نقشه را نه.
آزمایشهایی که میتوانید بکنید
- گلایدر را بارگذاری کنید و بشمارید چند نسل طول میکشد تا یک خانه بهصورت قطری جابهجا شود: 4 نسل. با لبههای متصل، دور صفحه میچرخد و از طرف دیگر دوباره ظاهر میشود.
- دو گلایدر را در مسیر برخورد بگذارید و ببینید چطور تمام میشوند: بسته به نحوهٔ رسیدن، ممکن است نابود شوند یا یک طبیعت بیجان باقی بگذارند.
- تفنگ گاسپر را روی صفحهای دستکم 48 × 48 بارگذاری کنید و بشمارید هر گلایدر چقدر طول میکشد: 30 نسل.
- R-پنتومینو را روی صفحهای بزرگ بارگذاری کنید و حالت با و بدون لبههای متصل را مقایسه کنید. در صفحهٔ بینهایت 1,103 نسل طول میکشد تا پایدار شود، اما در صفحهٔ محدود نتیجه فرق میکند.
- قانون را با همان نقشه عوض کنید. با بذرها (B2/S) هر سلول در هر نسل میمیرد و فقط تولدها میمانند، پس نقشه به بیرون پخش میشود؛ با پیچدرپیچ (B3/S12345) ساختارهایی شبیه راهرو پدید میآید.
محدودیتهای صفحهٔ محدود
بازی اصلی روی صفحهای بینهایت رخ میدهد. صفحهٔ ابزار اندازهٔ ثابتی دارد و هر چه به لبه برسد رفتار دیگری پیدا میکند: با لبههای متصل از سمت مقابل وارد میشود (صفحه شبیه یک دونات میشود) و بدون اتصال، به دیوار میخورد و خاموش میشود.
به همین دلیل الگوهای بزرگ جا لازم دارند (تفنگ گاسپر دستکم 48 × 48 میخواهد) و بعضی، مثل R-پنتومینو، ممکن است با آنچه در صفحهٔ نامحدود دیده میشود جور دیگری تمام شوند. اگر الگو جا نشود، ابزار از شما میخواهد صفحهای بزرگتر انتخاب کنید.
سؤالات متداول
قانونهای بازی زندگی کانوی چیست؟
سلول زنده با 2 یا 3 همسایهٔ زنده زنده میماند؛ با کمتر از 2 از تنهایی و با بیش از 3 از ازدحام میمیرد. خانهٔ مرده با دقیقاً 3 همسایهٔ زنده زنده میشود. این قانونها را با B3/S23 خلاصه میکنند.
B3/S23 یعنی چه؟
B تولد (birth) و S بقا (survival) است. B3 یعنی با 3 همسایهٔ زنده یک سلول متولد میشود و S23 یعنی سلولی که 2 یا 3 همسایه دارد زنده میماند.
گلایدر چیست؟
شکلی پنجسلولی که بهصورت قطری حرکت میکند، هر 4 نسل یک خانه. معروفترین الگوی بازی است.
بازی زندگی را چه کسی ابداع کرد؟
جان کانوی، ریاضیدان بریتانیایی، در سال 1970. مارتین گاردنر همان سال آن را در مجلهٔ Scientific American معرفی کرد.
چرا نقشهام ناپدید میشود یا ثابت میماند؟
این رایجترین حالت است: بسیاری از شکلهای کوچک در چند نسل از بین میروند یا پایدار میشوند. نقطهٔ شروع دیگری، صفحهای بزرگتر یا «تصادفی» را امتحان کنید.