پروژه sugarscape

سوال

کد کد Sugarscape یک شبکه مسطح ۵۱ در ۵۱ است که به مربع هایی به نام patches تقسیم شده است. هر یک از
این patche ها حاوی دو متغیر sugar و maximum sugar capacity .هستند. در ابتدای برنامه maximum sugar capacity هر خانه (patche) تعیین میشود. همچنین مقدار sugar برابر با این مقدار تعیین خواهد شد. ما در رابط کاربری گرافیکی مقدار sugar در هر patche با رنگ آن مشخص میکنیم برای نشان دادن این رنگها از خانه ای با مقدار صفر شکر برابر سفید تا خانه ای با بیشترین شکر نارنجی پر رنگ همانند شکلهای اول داکیومنت استفاده کنید. توجه داشته باشید که برای نشان دادن عوامل در خانه ها کافیست یک نقطه قرمز در وسط آن خانه بگذارید. مقدار
شکر اولیه هر patche با توجه به یک توضیع احتمالی نرمال که در ادامه توضیح داده خواهد شد اختصاص میدهید. در مرحله بعد، خانه ها را را با عوامل یا agent ها پر میکنیم هر یک از این عوامل دارای ۳ متغیر sugar vision و sugarMetabolism هستند. در ابتدا بعد از ساخته شدن عوامل این مقادیر به صورت تصادفی داده میشود. ، sugarMetabolism و vision متغیرهای ثابتی هستند که در طول عمر عامل ثابت می مانند ما این دو متغیر را صفات ژنتیکی عامل می نامیم منظور از sugarMetabolism مقدار شکری است که عامل برای ادامه زندگی در یک بازه
زمانی باید مصرف .کند عاملها با یک مقدار اولیه شکر بدنیا میآیند که با متغیر initSugar مشخص میشود منظور از vision عددی است که شعاع دید عامل را برای مهاجرت مشخص میکند یعنی تا چند patche اطراف را میتواند ببیند و در صورت خالی بودن به آن مهاجرت کند در اینجا منظور از شعاع دید دایره ای یا شعاع دیدی که در شکل ۱ مشاهده میکنید .نیست منظور از این شعاع دید خانههای ،بالا پایین چپ و راست عامل تا مقدار vision است. به عنوان مثال اگر مقدار vision یک عامل برابر ۴ باشد؛ عامل میتواند ۴ خانه بالای خود ۴ خانه پایین خود ۴ خانه سمت راست خود و ۴ خانه سمت چپ خود را ببیند توجه داشته باشید منظور از همسایه در تمامی فازهای پروژه عواملی هستند که در خانههای بالا پایین چپ و راست عامل استقرار دارند.هر یک از agent و patche در هر بازه زمانی مشخص که ما آن را tick مینامیم از یک سری قوانین ساده پیروی میکنند. به عنوان مثال عامل برای ادامه زندگی خود مهاجرت میکند و بر سرمایه خود اضافه میکنند. از طرفی هر patche
در این tickها مقداری شکر تولید میکند این مسئله دارای ۸ فاز است که در ادامه به برسی هر فاز میپردازیم. توجه داشته باشید شما برای پروژه ۴ بایستی تا فاز ۳ این داکیومنت را پیاده سازی کنید پیاده سازی فازهای ۴ الی ۸ امتیازی هستند. همچنین پیشنهاد میکنم در تعطیلات تابستان فازهای ۴ تا ۸ را پیاده سازی کنید، متغیر ها را تغییر دهید و نتایج شبیه سازی را با هم مقایسه کنید
فاز اول مهاجرت
در فاز اول ما با استفاده از دو قانون پیمایش عامل (M) و رشد مجدد محصولات (G) ساده ترین شبیه سازی ممکن را انجام میدهیم در پایان این فاز شما بایستی نمایش انیمیشنی از دنیای شکر در هر tick ) تا (۸۰) و از . همچنین نمودار توضیع ثروت جمعیت – (ثروت در tick هشتادم را ارائه دهید
قانون رشد مجدد محصولات :(G)
در هر tick sugarrow BackInterval به میزان sugarrowbackRate واحد شکر را تا حداکثر patch maximumCapacity را به patch اضافه میکنیم به طور ساده یعنی هر وقت مثلا یک فصل یا sugarGrowBackInterval گذشت به مقداری محصول یا sugarGrowBackRate را تا حداکثر ظرفیت
زمین یا maximumCapacity به زمین یا patch اضافه میکنیم.)
قانون مهاجرت عامل (M)
۱. به patchهای دور عامل تا حداکثر میزان vision نگاه کنید.
patchهای خالی را بیشترین میزان شکر موجود پیدا کنید.
.. اگر چند patch با این شرایط پیدا کردید نزدیک ترینشان را انتخاب کنید.
۴. به خانه انتخاب شده مهاجرت کرده و تمامی شکرهای موجود در patch را برداشت .کنید .۵ شکرهای برداشت شده را به متغیر sugar عامل اضافه کنید.
.۶ به میزان متغیر sugarMetabolism شکر از متغیر sugar عامل کم کنید.
. اگر مقدار متغیر sugar عامل منفی شد عامل میمیرد و از دنیای شکر حذف میشود
در این فاز شما بایستی قوانین G و M را در هر tick برای هر patch و عامل اجرا کنید شما بایستى قانون G را در هر تیک در ۴ thread به صورت موازی اجرا کنید در نتیجه شما کل فضاها به ۴ قسمت تقسیم خواهید کرد. توجه داشته باشید که قبل از شروع بایستی پیش تنظیماتی که در ادامه توضیح داده میشوند را اجرا کنید به عوامل قند اولیه ای بین ۵ تا ۲۵ واحد بدهید بینایی هر عامل را عددی بین ۱ تا ۶ .بدهید همچنین متابولیسم عوامل را بین ۱ تا ۴ تنظیم کنید. کلیه این تنظیمات بایستی به صورت تصادفی انجام بگیرد. توجه داشته باشید که شما بایستی به اندازه numAgents عامل با شرایط بالا بسازید که در این پروژه ما مقدار متغیر numAgents را برار ۴۰۰ در نظر میگیریم پارامترهای محیط sugarGrowBackinterval و sugarGrowBackRate را روی تنظیم کنید. حالا که پیش
تنظیمات را انجام دادید عوامل را به صورت تصادفی در سر تا سر دنیای شکر پخش کنید. در جاوا

0
aida 10 ماه 0 پاسخ ها 85 دیده شده 0

ارسال یک پاسخ