موضوع مقاله: درخت رفتار (هوش مصنوعی، رباتیک و کنترل) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # درخت رفتار (هوش مصنوعی، رباتیک و کنترل) | مقدمه: درخت رفتار یک ساختار درختی است که از گره‌های مختلف تشکیل شده و برای کنترل تصمیم‌گیری در سامانه‌های خودکار مانند ربات‌ها و شخصیت‌های بازی‌های ویدیویی استفاده می‌شود. | ## بخش 1: درخت رفتار (هوش مصنوعی، رباتیک و کنترل) | این درخت شامل گره‌های کنترلی (مانند توالی و انتخاب) و گره‌های اجرایی (مانند اقدامات و شرایط) است. گره‌های کنترلی تعیین می‌کنند که کدام گره‌های فرعی باید اجرا شوند، در حالی که گره‌های اجرایی وظایف خاصی را انجام می‌دهند. درخت‌های رفتار به دلیل ساختار ماژولار و قابلیت استفاده مجدد، امکان طراحی و نگهداری آسان‌تر رفتارهای پیچیده را فراهم می‌کنند. همچنین، آن‌ها به توسعه‌دهندگان اجازه می‌دهند تا رفتارهای سیستم را به‌صورت بصری طراحی و اشکال‌زدایی کنند. درخت‌های رفتار ابتدا در صنعت بازی‌های ویدیویی برای کنترل شخصیت‌های غیرقابل‌بازی (NPCs) مورد استفاده قرار گرفتند و سپس در حوزه‌های دیگر مانند رباتیک، هواپیماهای بدون سرنشین (پهپادها) و سامانه‌های کنترل پیچیده گسترش یافتند. پیش‌زمینه و پیدایش درختان رفتار از صنعت بازی‌های رایانه‌ای به‌عنوان ابزاری قدرتمند برای مدل‌سازی رفتار شخصیت‌های غیرقابل‌بازی (NPC) منشأ گرفته‌اند. فعالیت‌ها و پژوهش‌های اخیر، درختان رفتار را به‌عنوان چارچوبی برای کنترل چند مأموریتی پهپادها، ربات‌های پیچیده، بازوی مکانیکی ربات و سامانه‌های چندرباته پیشنهاد می‌کنند. درختان رفتاری به‌دلیل الگوی توسعهٔ خود محبوب شده‌اند: اینکه بتوان با برنامه‌ریزی اقدامات NPC و سپس طراحی یک ساختار درختی (معمولاً از طریق کشیدن و رها کردن) که گره‌های برگ آن‌ها اعمال هستند و گره‌های داخلی تصمیم‌گیری NPC را تعیین می‌کنند، رفتاری پیچیده ایجاد کرد. از نظر بصری، درختان رفتاری شهودی‌اند و به‌آسانی طراحی، آزمایش و اشکال‌زدایی می‌شوند و نسبت به دیگر شیوه‌های ایجاد رفتار، ماژولار بودن، مقیاس‌پذیری و قابلیت استفادهٔ مجدد بیشتری فراهم می‌کنند. | ## بخش 2: درخت رفتار (هوش مصنوعی، رباتیک و کنترل) | در گذر سال‌ها، پیاده‌سازی‌های متنوع درختان رفتاری، هم از نظر کارایی و بهره‌وری و هم از نظر توانایی در تأمین خواسته‌های صنعت، بهبود یافتند تا اینکه به درختان رفتار رویدادمحور تکامل پیدا کردند. درختان رفتار رویدادمحور، با تغییر در شیوهٔ اجرای درونی درخت و با معرفی نوعی جدید از گره که می‌تواند به رویدادها واکنش نشان دهد و گره‌های در حال اجرا را متوقف کند، برخی از مسائل مقیاس‌پذیری در درختان رفتار کلاسیک را حل کردند. امروزه، مفهوم درخت رفتار رویدادمحور به‌عنوان یک استاندارد شناخته می‌شود و در بیشتر پیاده‌سازی‌ها به‌کار می‌رود، حتی اگر همچنان برای سادگی "درختان رفتار" نامیده شوند. مفاهیم کلیدی درخت رفتاری به‌صورت گرافیکی به‌صورت درختی جهت‌دار نمایش داده می‌شود که در آن، گره‌ها به‌عنوان ریشه، گره‌های روند کنترلی یا گره‌های عملیات (وظایف) طبقه‌بندی شده‌اند. برای هر جفت گره متصل به هم، گره بیرونی «والد» و گره درونی «فرزند» نامیده می‌شود. ریشه فاقد والد است و دقیقاً یک فرزند دارد؛ گره‌های روند کنترلی دارای یک والد و دست‌کم یک فرزند هستند و گره‌های عملیات دارای یک والد و بدون فرزند هستند. از لحاظ گرافیکی (از منظر گراف)، فرزندان گره‌های روند کنترل در زیر آن، به‌ترتیب از چپ به راست قرار می‌گیرند. آغاز عملیات یک درخت رفتار از ریشهٔ آن است، آن‌هم هنگامی که به گره‌های فرزند خود «تیک» (tick) یا علامت مشخصی را ارسال می‌کند. زمانی که به اجرای یک گره در درخت رفتار اجازه داده شود، آن گره، اگر عملیاتش هنوز پایان نیافته باشد، وضعیت «در حال اجرا» را به والدش بازمی‌گرداند؛ اگر به هدف برسد، وضعیت «موفقیت» و در غیر این صورت، وضعیت «شکست» را بازمی‌گرداند. | ## بخش 3: درخت رفتار (هوش مصنوعی، رباتیک و کنترل) | گرهٔ روند کنترل از یک گرهٔ روند کنترل برای کنترل وظایف فرعیِ زیرمجموعه‌اش استفاده می‌شود. پس از اجرای هر وظیفهٔ فرعی و بازگشت وضعیت (موفقیت یا شکست)، گرهٔ کنترل تصمیم می‌گیرد آیا وظیفهٔ بعدی اجرا شود یا خیر. گرهٔ Fallback بلافاصله وضعیت «موفقیت» یا «در حال اجرا» را بازمی‌گرداند، به‌محض اینکه یکی از فرزندانش چنین وضعیتی را بازگرداند (شکل I و شبه‌کد زیر را ببینید). گره های توالی برای یافتن و اجرای اولین فرزندی که هنوز موفق نشده است استفاده می شوند. یک گره توالی هنگامی که یکی از فرزندانش وضعیت خرابی یا در حال اجرا را بازگرداند ، بلافاصله کد وضعیت شکست یا کد وضعیت در حال اجرا را برمی گرداند (شکل 2 و شبه کد زیر را ببینید). که شاخص درخت است ، یک میدان برداری است که از سمت راست یک معادله تفاضلی عادی نشان می دهد ، یک واحد زمانی است و وضعیت بازگشت است که می تواند برابر با در حال اجرا ، موفقیت ، یا شکست باشد . عملیات درخت رفتار عملیات یک درخت رفتار توسط معادلات استاندارد تفاضلی معمول زیر شرح داده شده است: جایی که زمان مجزا را نشان می دهد ، و فضای حالت سیستم است که توسط درخت رفتار مدل شده است. | ## جمع‌بندی | ترکیب توالی دو درخت رفتار و می توانند با استفاده از یک عملگر Sequence به یک درخت رفتار پیچیده تر تبدیل شوند.