ویرگول
ورودثبت نام
rohola zandie
rohola zandie
rohola zandie
rohola zandie
خواندن ۳ دقیقه·۷ سال پیش

بازی زندگی

"بازی زندگی" یک مدل ریاضی است که توسط جان کانوی ریاضیدان بریتانیایی اختراع شده است. بازی زندگی یک بازی است که بازیگری ندارد و شرایط آن را وضعیت اولیه مهره ها تعیین می کنند.

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

1- هر سلول زنده اگر کمتر از دو نفر در اطرافش باشد از تنهایی میمیرد!

2- هر سلول زنده اگر دو یا سه نفر اطرافش باشد به نسل بعد منتقل می شود.

3- اگر سلول زنده ای بیشتر از 3 نفر در اطرافش باشد از کمبود امکانات و جمعیت زیاد می میرد!

4- هر سلول با دقیقا 3 نفر در اطرافش یک سلول جدید را بوجود می آورد: تولید نسل جدید!

شاید این قواعد ساده به نظر برسد اما همین قوانین به ظاهر ساده الگو های عجیبی را به نمایش می گذارند. پیچیدگی رفتار این سلول ها به حدی زیاد است که بسیاری از باور های پذیرفته شده علمی را به زیر سوال می برد. مهمترین اصلی که بسیار شهودی هم به نظر می رسد وجود یک ناظم یا مدیر برای ایجاد و نگهداری رفتار های پیچیده است. در بازی زندگی پیچیدگی به صورت خود سازمانده(self organized) از درون سادگی به وجود می آید و فرگشت می یابد. دنیل دنت فیلسوف و متخصص علوم شناختی "بازی زندگی" را مثالی از ایجاد ساخت های پیچیده مانند "آگاهی" و "اراده آزاد"(اختیار) از قوانین نسبتا ساده فیزیکی و اندر کنش آن ها به هم می داند.


حالا چگونه این برنامه را پیاده سازی کنیم. اولین نکته آن است که می توان چهار قاعده بالا را به یک قاعده زیر ساده کرد:

"یک سلول زنده با دو همسایه زنده، یا هر سلولی با سه همسایه زنده و در نسل بعد زنده است و در غیر این صورت زنده نیست"

این جمله را می توان به صورت زیر برنامه نویسی کرد:


GRID = neighbours==3 | GRID & neighbours==2;

( به نحوه ی ارتباط آن ها فکر کنید!)


که در آن GRID همان مشبک جهان ماست و neighbours همسایه های هر خانه است.

این بازی به قدری ساده است که شما به راحتی می توانید آن را پیاده سازی کنید. در زیر یک نمونه از برنامه برای بازی زندگی را می بینید:

خود متلب هم به صورت آماده این برنامه را پیاده سازی کرده است که با زدن life در خط فرمان می توانید آن را ببینید.(در easter egg های آن)

هر اجرای برنامه یک جهان می سازد. این جهان با تعدادی سلول(افراد) به صورت تصادفی آغاز می شود و ادامه می یابد: سلول ها با هم ترکیب شده و فرزندان جدیدی بوجود می آورند. برخی از قحطی از بین می روند و برخی از آن ها شروع به "مهاجرت" می کنند. الگوهای زیادی در بازی زندگی کشف شده اند. یکی از جالب ترین آن ها الگوی جنگ و فرار است که در آن دو طرف به سمت هم شلیک کرده و تعدادی از سلول ها به صورت زیر فرار می کنند. شکل زیر این الگو را نشان می دهد:


متلبریاضیبرنامه نویسی
۶
۰
rohola zandie
rohola zandie
شاید از این پست‌ها خوشتان بیاید