
فریم ورک داروین (Darwin Framework)
این فریم ورک بر اساس الگوریتم ژنتیک (Genetic Algorithm) ساخته شده است و نام گذاری آن به افتخار چارلز داروین می باشد. اولین نسخه از این فریم ورک در سال 2003 عرضه شد و نسخه بعدی آن که پایدارتر بوده و دارای تغییرات جزئی نسبت به نسخه اول آن است در ماه مارچ 2007 با عنوان نسخه 1.2 عرضه شده است.لایسنس این فریم ورک BSD است بدین معنی که برای هر دو کاربرد آکادمیک و تجاری همیشه رایگان و توسعه پذیر است. این فریم ورک در حوزه الگوریتم های تکاملی، یادگیری ماشین، بینایی ماشین و علوم مرتبط به کار می رود. البته شایان ذکر است بین علوم هوش مصنوعی مرز دقیقی وجود ندارد و می توان این فریم ورک که دارای پویایی بسیاری است را با توسعه، در هر حوزه ای به کار گرفت. از مهمترین خصوصیات این فریم ورک می توان به موارد زیر اشاره کرد:
-
توسعه از کد، یعنی کاربر می تواند مطابق با نیازش و داده ها، ساختار فریم ورک را تغییر دهد.
-
جدایی کلاس های فریم ورک (هسته فریم ورک) از کلاس های نرم افزار.
-
حفظ تشابه با مکانیزم با مکانیزم تکامل طبیعی.
فریم ورک داروین برای محاسبات تکاملی سریع و کارآمد بهینه نشده است، اما می توان از آن برای ذخیره سازی مناسب نتایج محاسبه شده استفاده کرد. جدیدترین نسخه این فریم ورک با نام داروین 2 موجود است که نسخه آن 2.1.9 می باشد که دارای 342 کلاس فریم ورکی است که همراه با تست های واحدها و منابعش، شامل 34000 خط کد می شود. سه هسته فریم ورکی مهم که در نسخه آخر آن به روزرسانی کامل شده اند عبارتند از BeanPot با 4800 خط کد، toString با 1200 خط کد و Jexpression با 4200 خط کد.
از این فریم ورک که بر پایه الگوریتم ژنتیک است می توان برای بهینه ساز توابع استفاده کرد. پشتیبانی از قابلیت پردازش موازی یکی دیگر از مزیت های این فریم ورک می باشد. رابط گرافیکی کاربر یکی از نقاط قوت این فریم ورک می باشد که کنترل را دست کاربر می سپرد و می توان عملیاتی تعاملی با فریم ورک برقرار کرد.
فریم ورک داروین بر پایه جاوا نوشته شده است و در کامپایلرهای جاوا، C و ++C قابل استفاده در سیستم عامل های لینوکس، ویندوز و مکینتاش می باشد. در تصویر 1 می توان ساختار پایه که نرم افزار داروین و پروژه ها با کتابخانه داروین پیوند داده می شوند را مشاهده کرد که مانند یک third-party و مجموعه کوچکی از کتابخانه های خارجی است.
تصویر 1 – ساختار پایه داروین
افراد زیر کمک شایانی به کدهای داروین کرده اند:
-
Paul Baumstarck (drwnBitArray کلاس)
-
David Breeden (drwnThreadPool کلاس)
-
Jason Corso (drwnHistogram کلاس)
-
Ian Goodfellow (drwnThreadPool کلاس)
-
Stephen Gould (توسعه دهنده هسته داروین)
-
Hendra Gunadi (drwnTRWSInference کلاس)
-
Kevin Guo (drwnGrabCutInstance کلاس)
-
Robin Liang (drwnInPaint کلاس)
-
Jimmy Lin (drwnSLICSuperpixels تابع)

