// چهار شنبه, ۸ آذر ۱۴۰۲ ساعت ۱۹:۰۱

هوش مصنوعی بازی The Sims چگونه عمل می‌کند؟

هوش مصنوعی نیازمحور (Need-Based AI) تمام تصمیمات بازی The Sims را برعهده دارد و بهترین نتایج را کنترل می‌کند.

The Sims بازی شبیه‌ساز زندگی اجتماعی است که نسخه اول آن توسط الکترونیک آرتز در سال ۲۰۰۰ رونمایی شد. بازی اجازه می‌داد که بازیکنان شخصیت مجازی خودشان را ( که آن‌ها را سیمز می‌نامند) درست کنند و زندگی روزمره‌شان را کنترل کنند. وظیفه بازیکن این است که سیمزها را زنده نگه دارد، راضی کند و خانه‌شان را با وسایل پر‌ کند.

بعد از موفقیت این سری، دنباله آن نیز منتشر شد، در سال ۲۰۰۴ بازی The Sims 2، در ۲۰۰۹ بازی The Sims 3 و در ۲۰۱۴ بازی The Sims 4.

ساختار بازی یک برنامه عامل‌محور (Agent-Base) است که هوش مصنوعی آن هر سیمز را وادار می‌کند که نسبت به شرایط بیرونی به‌طور مستقل واکنش نشان دهد. هر سیمز تحت تاثیر بازیکن قرار می‌گیرد و می‌تواند با اشیا یا سیمزهای دیگر تعامل داشته باشد. اما مدیریت خرده نیازها و خواسته‌های کل خانواده می‌تواند بسیار خسته‌کننده باشد. بنابراین توسعه‌دهندگان به‌زودی متوجه شدند که باید به این افراد مقدار مشخصی اراده آزاد دهند. اگر بازیکن از دادن دستورها مستقیم دست بردارد سیمزها باید برای خودشان قدرت فکر کردن داشته باشند. این شخصیت ها باید به انسان های قابل باور تبدیل شوند.

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

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

این مقادیر دائماً پایین می‌آیند، هرکدام با نرخ‌های کمی متفاوت از بین می‌روند و اگر سیمز یک عمل مرتبط انجام دهد سرعت تغییر سریع‌تر می‌شود. برای مثال وقتی سیمز در حال غذا خوردن است، انرژی کندتر افت می‌کند. سازندگان بازی با دقت تمام این نرخ‌ها را تنظیم کردند تا با برنامه‌های عادی انسان مطابقت داشته باشد - مانند نیاز به هشت ساعت خواب و سه وعده غذایی در روز. بنابراین اگر بازیکن دستوری به سیمز ندهد، خودش تصمیم می‌گیرد که چه کاری انجام دهد - و این تصمیم ناشی از تمایل به تحقق این انگیزه‌ها است. درواقع سطح شادی هر سیمز، تابعی از این عوامل است. اما تعریف تابع چیست؟

تابع یک رابطه بین یک متغیر ورودی و یک مقدار در خروجی است. مثلا تابعی که هر عدد را به دوبرابر آن ربط می‌دهد با f(x) = 2x نمایش داده می‌شود که x هر عدد دلخواه می‌تواند باشد و f خروجی تابع را به ازای مقدار x تولید می‌کند. اگر x = 5 باشد آنگاه f(5) = 10. پس تابع f یک رابطه بین ۵ و ۱۰ ایجاد کرده است. معمولا فرایندی که در این بین اتفاق می‌افتد تا ورودی را به خروجی تبدیل کند، ضابطه f نامیده می‌شود. در اینجا ضابطه f همان f(x) = 2x است. مقادیر ورودی و خروجی هر تابع را می‌توان با کمک یک نمودار هم نشان داد. محور افقی مقدار ورودی است و محور عمودی مقدار خروجی تابع است.

حال اگر این نمودار را به ازای مقادیر مختلف رسم کنیم به همچین شکلی می‌رسیم:

برای هر نمودار یک شیب هم تعریف می‌کنیم که نسبت تغییرات خروجی به تغییرات ورودی است. شیب نمودار درواقع سرعت تغییرات خروجی نسبت به ورودی را نشان می‌دهد.

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

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

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

از منحنی های مشابه برای سایر نیازها نیز می‌توان استفاده کرد.

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

هرکدام از این نمودارها شیب متفاوتی دارند یعنی میزان تغییرات متفاوتی در طول زمان خواهند داشت.

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

اما اینطور نیست و درواقع برعکس است! در عوض تمام اشیا موجود در محیط دارای این داده‌ها هستند و آنچه را که می‌توانند ارائه دهند به‌عنوان یک ویژگی در اختیار دارند.

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

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

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

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

در The Sims 1 ویژگی‌های اخلاقی بر تصمیم گیری تاثیر می‌گذارند که باعث می‌شود شخصیت هر سیمز تا حدودی متمایز باشد. اما برای The Sims 3 این ایده به‌طور چشمگیری گسترش یافت. صفاتی مانند منظم بودن، افسرده بودن و ... حدود 5 میلیون سیمز متفاوت را ایجاد می‌کنند بطوریکه تصمیم‌گیری هر سیمز منحصربه‌فرد است. درواقع هر سیمز نیازهای اولیه معمول خودش را دارد، مانند گرسنگی، نیاز به سرگرمی و ... و همچنین 5 انگیزه دیگر که مربوط‌به صفاتش است. این صفات تاثیر مستقیمی بر نمودار تابع نیاز شخص دارد. مثلا نمودار تابع گرسنگی یک سیمز شکمو متفاوت از نمودار تابع گرسنگی یک سیمز معمولی است.

مثلا در نمودار سمت چپ شیب نمودار گرسنگی تقریبا ثابت است ولی برای سیمز شکمو شیب نمودار سریع‌تر تغییر می‌کند.

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

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

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

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


اسپویل
برای نوشتن متن دارای اسپویل، دکمه را بفشارید و متن مورد نظر را بین (* و *) بنویسید
کاراکتر باقی مانده