برنامه EvoPic را میتوان به عنوان جلوهای از هنرهای تکاملی (Evolutionary Arts) به حساب آورد. در این نوع برنامهها هدف، تولید یک اثر هنری مانند تصویر یا صوت، با استفاده از الگوریتمهای هوشمندی است که از استراتژی یا نظریه تکامل تدریجی (Evolution) برای رسیدن به هدف مسئله استفاده میکنند.
الگوریتمهای تکاملی، مجموعه قوانینی هستند که شیوه شبیهسازی فرآیند تکامل طبیعت را به وسیله نرمافزارهای کامپیوتری تعریف میکنند.
این رده از الگوریتمها، از آن جهت حایز اهمیت هستند که معمولا قادرند تا مسائل پیچیده را در زمانهای بسیار کمتری نسبت به روشهای سیستماتیک و اصولی حل کنند.
به طور کلی در روشهای سیستماتیک، برای حل مجموعه مسائلی که حاوی فضای جستجوی بسیار گستردهای هستند (مثلا فضایی که برای جستجوی تمام حالات آن، به اجرای n فاکتوریل دستور یا تکرار نیاز باشد) ممکن است که الزاما به جستجوی تمام حالات ممکن بپردازیم، اما الگوریتمهای تکاملی، مشخصا با هدف اجتناب از همین جستجوی فراگیر طراحی و ابداع شدهاند.
- اما این فرآیند تکامل تدریجی، چگونه در یک نرمافزار کامپیوتری پیادهسازی میشود؟
+ پاسخ، روشن است. استفاده از عامل تصادف (Randomness).
- اما استفاده از تصادف چگونه ممکن است که به راهحلی صحیح و بهینه بیانجامد؟!!
+ باز هم پاسخ روشن است. با جهتدهی و هدفمند کردن رویداد تصادف، که به آن تکامل میگویند.
عموما روال کار تمامی الگوریتمهای تکاملی به این صورت است که در ابتدا با استفاده از عامل تصادف، یک حدس اولیه کاملا اتفاقی (بنا به مصلحت ممکن است که مطلقا تصادفی هم نباشد) ایجاد میشود.
پس از آن با اجرای فرآیند تکامل تدریجی و ایجاد تغییراتی تصادفی در حدس اولیه، بهبود کیفیت حدس اولیه آغاز شده و پس از گذشت مدتی، حدس تصادفی به یک راهحل تبدیل میشود.
سلسله الگوریتمهای ژنتیکی، معروفترین نماینده الگوریتمهای تکاملی هستند که به دلیل اثبات کارایی و کارآمد بودنشان در حل مسائل پیچیده، از اهمیت بالایی برخوردار هستند.
در این برنامه (EvoPic) هم من با استفاده از الگوریتم ژنتیک پایدار (Steady-State)، به طراحی سیستمی پرداختهام که میتواند تصاویر ورودی را با استفاده از ترسیم کاراکترهای مختلف (با قلمها و زبانهای دلخواه) در صفحه، شبیهسازی کند. البته اولین بار ایده این کار توسط Roger Alsing پیادهسازی شده است، اما برنامه من در بیشتر جهات با ایده وی تفاوت دارد. (خصوصا که به دلیل سرعت بیستر، از روش steady-state و عدم تغییر مستقیم کروموزومهای والد استفاده کردهام)
برنامه EvoPic قابلیت کار با تمام قلمهای Unicode را داشته و حتی میتوان محدوده کاراکترهای مورد استفاده در آن را به صورت دلخواه تعیین نمود. (مثلا فقط اعداد، یا علائم نگارشی و غیره)
در زیر برخی از تصاویر ساخته شده به وسیله EvoPic 1.0 را مشاهده مینمایید:
An evolutionary picture creator that uses Steady-State Genetic Algorithm, to produce evolutionary pictures by drawing uni-code characters in a picture box.
Features V1.0:
- Switch between Normal/High priority mode to running EvoPic process.
- English/Persian/Custom alphabet selection.
- Custom fonts selection.
- Resume capability by using “Import EvoPic” option in the file menu.
Persian post in my blog, about EvoPic
Screenshots:




اردیبهشت ۱۸م, ۱۳۹۱ موضوع: ۱۰:۱۷ ب.ظ
سلام مهندس
موضوع سمینار من مقایسه evopic شما با کد راجر هست.اما نه از کد راجر سردرمیارم نه کد و حتی برنامه شما در دسترسه .میشه به من کمک کنید؟
با تشکر
خرداد ۱۴م, ۱۳۹۱ موضوع: ۱۲:۲۱ ب.ظ
برنامه را میتوانید از همین جا دانلود نمایید.