الگوریتم بازی زندگی John Conway
تاریخ نشر:باسمه تعالی
شاید تیتر بازی زندگی این مطلب را تداعی کند که از تقلب احوال و بازی روزگار، شکایتی و یا حکایتی دارم. اما موضوع چیز دیگری است. John Conway درسال 1970 میلادی یک الگوریتم را مطرح کرد که نام آنرا Game of Life و یا بازی زندگی گذاشت.
صفحه بازی زندگی یک صفحه شطرنجی است که از 4 طرف نامتناهی فرض میشود. هر خانه جدول میتواند یکی از دو حالت زنده و یا مرده را داشته باشد. هر سلول صفحه شطرنج، 8 سلول مجاور دارد. فرض این بازی این است که زندگی و مرگ یک سلول با وضعیت زندگی و مرگ در 8 سلول مجاور تعیین میشود. بگذارید فرض کنیم که قوانین زیر بر زندگی و مرگ یک سلول جاری است:
- هر سلول زنده با کمتر از ۲ همسایه زنده، میمیرد. (به دلیل کمبود جمعیت)
- هر سلول زنده با بیش از ۳ همسایه زنده، میمیرد. (به دلیل ازدحام جمعیت)
- هر سلول زنده با ۲ و یا ۳ همسایه زنده، زنده میماند و به نسل بعد میرود.
- هر سلول مرده با دقیقاً ۳ همسایه زنده، دوباره زنده میشود.
الگوی آغازین بازی به عنوان بذر سیستم به حساب میآید و تغییر بذر اولیه میتواند نتایج کاملا متفاوتی را در پی داشته باشد. قوانین فوق بر تک تک سلولها به صورت همزمان اعمال میشود و در آن زاد و ولدها و مرگ و میرها اتفاق میافتد و این رویه بطور مستمر ادامه مییابد. بدین ترتیب هر نسل تابعی از نسل ما قبل خود خواهد بود.
با اینکه این مدل خیلی ساده است، حاصل کار بسیار خیره کننده است. در ویدیو کلیپ زیر نتیجه اجرای این الگوریتم نمایش داده شده است.
البته واضح است که حیات بسیار پیچیده تر از آن است که بشود با چنین الگوریتم هایی آنرا شبیه سازی کرد. اما این تلاش ها میتواند به درک بهتر ما از خلقت کمک کند. قرآن تفکر و تامل در چگونگی پیدایش خلقت را تشویق کرده است. آیه 20 سوره عنکبوت چنین میفرماید:
قُلْ سِيرُوا فِي الْأَرْضِ فَانظُرُوا كَيْفَ بَدَأَ الْخَلْقَ
یعنی ای پیامبر به مردم بگو که در زمین جستجو و سیر کنند و در اینکه چگونه خدا خلقت را شروع و هدایت کرده است، نظریه پردازی کنند.
اصل نظریه پردازی و تفکر در رفتار مخلوقات و نحوه گسترش خلقت امری پسندیده است، تا جایی که آدم فراموش نکند که بهرحال بذر اولیه خلقت و قوانین جاری بر آن نیاز به خالق دارد. اما انتظار اینکه به مدلی که تمام رفتارهای مخلوقات را تحلیل و پیش بینی کند برسیم، انتظار صحیحی نیست. البته رسیدن به مدلی که بتواند تا حدودی گویا باشد، باعث رشد ذهنی بشر میشود و به ما در حل بعضی مسایل فنی و ریاضی و طراحی بهتر بعضی سیستم ها کمک میکند و کاربردهای عملی فراوانی دارد. آقای Stephen Wolfram درباره کاربردهای عملی این مدلها مقاله ای نوشته است که علاقه مندان میتوانند درباره آن تحقیق کنند.
در خاتمه خوانندگان محترم را تشویق میکنم که درباره طراحی یک الگوریتم دیگر با قوانین متفاوت تفکر کنند و یافته های خود را با دیگران به اشتراک بگذارند.
سلام. بسیار زیبا و خیره کننده بود.
برای طرح چنین الگوریتمی از کجا باید شروع کرد؟
ضمن سلام و عرض تشکر،
مدل آقای کانوی در یک صفحه شطرنجی بود که میشد نتیجه کار آنرا به نمایش گذاشت. البته لزومی ندارد که خود را به این مدل محدود کنیم. اما میشود سلولی را فرض کنیم و برای زندگی و مرگ و زاد و ولد و یا حتی حرکت آن قوانینی را در نظر بگیریم. بعدا هم برای اینکه نتیجه شبیه سازی به نحوی بصورت بصری ارائه شود، فکری کنیم.
مدل باید مدل ساده ای باشد و لازم نیست آنرا پیچیده کنیم. تصور شخصی من این است که با همین مدل های ساده، بسیاری از رفتارهای حیوانات مانند مورچه ها و بسیاری از سیستم های فنی و اقتصادی را بشود تحلیل کرد.
اگر واقعا تمایل دارید چنین کاری کنید، توصیه میکنم با یک جلسه brainstorming با دوستان خود شروع کنید.
سلام.
من دانشجوی کامپیوتر هستم.
من باید همین بازی حیات کانوی رو با یک جدول 50*50 با دستورات نرم افزار متلب حل کنم. یعنی باید تک تک خانه ها را چک کرده و همسایه های آن را بررسی کند. می خواستم اگه امکان داره راهنماییم کنید. خیلی برام مهمه. ممنون میشم
ضمن عرض سلام و تشکر از عنایت جنابعالی
در Github دیگران مثالهای زیادی از این بازی گذاشته اند.
اگر با سرچ پیشرفته بگردید تعداد زیادی فقط مثال متلب آنرا پیدا میکنید
آدرس وبلاگم رو اصلاح کردم.
mojtaba110_choobaki@yahoo.com
بازم تشکر میکنم