مثالی از پیاده‌سازی الگوریتم ژنتیک در ActionScript 3

این روزها دامنه کاربرد نرم‌افزار Flash، خصوصا به دلیل قدرت بالای زبان ActionScript 3 و انعطاف پذیری آن، به سرعت در حال گسترش بوده و هر روز کاربردهای جدیدی برای آن پیدا می‌شود.
در این رابطه، حتی از محاسبات علمی و برنامه نویسی سیستم‌های هوشمند نیز به عنوان زمینه‌ای از کاربردهای AS3 می‌توان نام برد.
این مسئله در گذشته، به دلیل قدرت پردازش محدود و سرعت کم در اجرای کدهای ActionScript، واقعا دور از ذهن به نظر می‌آمد، اما اکنون شرایط تغییر کرده است.
البته کاملا واضح است که هنوز نمی‌توان قدرت پردازش Flash را در رده زبانهای برنامه‌نویسی واقعی قرار داد، اما اگر بخشی از پروژه مربوطه، به شبیه‌سازی بصری اجزای هوشمند مسئله اختصاص داشته باشد، نرم‌افزار Flash قدرت ارائه خوبی خواهد داشت.
معمولا در زبانهای برنامه نویسی عادی (مانند Delphi، VC++ و C#) برای ارائه و شبیه‌سازی چنین مواردی، ناگزیر از تعامل مستقیم با CANVAS ها و یا حتی توابع GDI هستیم. اما امکانات ترسیمی پویا و کدنویسی گرافیکی در Flash آنقدر گسترده و انعطاف پذیر است که لااقل می‌توان با اطمینان اظهار نمود که در این بخش، سرعت بیشتری در پردازش اطلاعات دارد.
به عنوان مثال:
– در ترسیمات فلش، چیزی به نام Flicker در تصویر وجود ندارد.
– همه چیز به صورت Object ترسیم شده و به راحتی قابل استفاده مجدد است.
– نیازی به Render نیست، این کار به صورت خودکار انجام می‌شود.
– بازسازی و پردازش تصویر در هر فریم، فقط در بخشهای تغییر کرده انجام می‌شود.
– جابه‌جایی، چرخش، تغییر اندازه و تغییر شکل هر شئ به سادگی و بدون نیاز به محاسبه شکل جدید اشیاء انجام می‌شود.
– امکان کار در فضای سه بعدی (3D) به سادگی کار در محیط دو بعدی (2D) است.
– به دلیل Interactive بودن ترسیمات، به پردازش کمتری نیاز داریم.
چند سال پیش، وقتی که برای اولین بار تصمیم گرفتم که یک برنامه مربوط به نمایش الگوریتم‌های هوشمند گراف را در ActionScript 2 پیاده‌سازی کنم، به برتری Flash در این زمینه پی بردم. از آن زمان همیشه به فکر استفاده از این محیط، برای شبیه‌سازی‌های پیچیده‌تر بودم تا اینکه به مثالی از شبیه‌سازی Genetic Algorithm در ActionScript 3 برخورد نمودم.
در این مثال با پیاده‌سازی الگوریتم ژنتیک در نرم‌افزار فلش، به شبیه‌سازی روند تکامل تدریجی در بهینه‌سازی فیزیک و داینامیک یک خودرو (یک Robot دو چرخه ساده) پرداخته شده است.
هدف از این شبیه‌سازی، پیدا کردن بهترین نقاط برای اتصال چرخها و فاصله مراکز ثقل Robot بوده است. تابع Fitness این الگوریتم هم، با بررسی شیوه حرکت Robot ساخته شده بر روی یک مسیر آزمایشی و موفقیت آن در حفظ تعادل در ناهمواری‌ها، ارزش کروموزومها را محاسبه می‌کند.

About محمد شمس

برنامه‌نویس، طراح انیمیشن و علاقمند به هوش مصنوعی

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


7 × 8 =