با توجه به اینکه سوال در موزد این الگوریتم زیاد شده کمی در مورد این الگوریتم در این تاپیک بحث می کنیم ، و به تدریج بحثهای قبلی را با این تاپیک ادغام خواهم کرد. عمده مطالب از دو مرجع زیر انتخاب شده اند :
سهراب امینی ، بهینه سازی ماشینهای DC مغناطیس دائم با جاروبک با استفاده از روشهای هوشمند ; دانشگاه صنعتی شریف، دانشکده برق ، پائیز 1377
رضا کیانی نژاد . جستاری در الگوریتم ژنی ; سمینار کارشناسی ارشد , دانشگاه تربیت مدرس , دانشکده مهندسی , گروه برق , قدرت 1 , پائیز 1373 .
-------------------------------
معرفی الگوریتم ها ژنتیک
الگوریتم ژنتیک، الگوریتم مبتنی بر تکرار است و اصول اولیه آن از علم ژنتیک اقتباس گردیده است. این الگوریتم که با تقلید از تعدادی فرایندهای مشاهده شده در تکامل طبیعی اختراع شده است، به طور مؤثری از دانش قدیمی موجود در یک جمعیت استفاده می کند، تا حلهای جدید و بهبود یافته ایجاد کند. این الگوریتم در مسائل متنوعی نظیر بهینه سازی، شناسایی و کنترل سیستم، پردازش تصویر و مسائل ترکیبی، تعیین توپولوژی و آموزش شبکههای عصبی مصنوعی و سیستم های مبتنی بر تصمیم و قاعده به کار میرود. الگوریتم ژنتیک به دلیل تقلید نمودن از طبیعت دارای چند اختلاف اساسی با روشهای جستجوی مرسوم میباشد که در زیر به تعدادی از آنها اشاره میکنیم:
1-الگوریتم ژنتیک با رشتههای بیتی کار میکند که هر کدام از این رشتهها کل مجموعه متغیرها را نشان میدهد. حال آنکه بیشتر روشها به طور مستقل با متغیرهای ویژه برخورد میکنند.
2-الگوریتم ژنتیک در هر تکرار چند نقطه از فضای جستجو را در نظر میگیرد.
3-الگوریتم ژنتیک برای راهنمایی جهت جستجو، انتخاب تصادفی انجام میدهد که به این ترتیب اطلاعات مشتق نیاز ندارد. مکانیسمهایی که تکامل روی موجود زنده را انجام میشوند تا کنون به طور کامل فهمیده نشدهاند. اما تعدادی از ویژگیهای این مکانیسم شناخته شده است.
در اینجا تعدادی از ویژگیهای یکی از تئوریهای بسیار پذیرفته شده است آورده میشود.
1- تکامل، فرایندی است که روی رشتهها صورت میگیرد، نه روی موجود زندهای که معرف آن رشته است.
2- انتخاب طبیعی، پیوندی ما بین رشتههای و عملکرد ساختمانهای رمزگشایی شده آنها میباشد.
3- فرایند تولید مثل، نقطهای است که تکامل صورت میگیرد. تکامل ممکن است سبب شود که فرزند بیولوژیکی با والدین خود متفاوت میباشد.
الگوریتم ژنتیک الگوریتم جستجویی است که از ویژگیهای ذکر شده برای تئوری تکامل، الهام گرفته است. همان گونه جان هلند مبتکر الگوریتم ژنتیک اعتقاد داشت، این الگوریتم به همان روشی که طبیعت، فرایند تکامل را انجام میدهد، تکامل را روی نمادهای ژنی مربوط به حلهای یک مسأله بهینهسازی انجام میدهد.
الگوریتم ژنتیک چندین نقطه از فضای جستجو را به صورت همزمان در نظر میگیرد و بنابر این شانس اینکه به یک بیشینه محلی همگرا شود، کاهش مییابد. در بیشتر روشهای جستجو مرسوم، قاعده تصمیم حاکم به این صورت عمل میکند که از یک نقطه به نقطه دیگر حرکت میکند این روشها میتوانند در مسئلههای جستجو دارای چند بیشینه خطرناک باشند. زیرا ممکن است آنها به یک بیشینه محلی همگرا شوند. لیکن الگوریتم ژنتیک جمعیتهای کاملی از نقاط ( رشتهها ) را تولید میکند سپس هر نقطه را به صورت انفرادی امتحان میکند و با ترکیب کیفیتهای ( محتویات ) نقاط موجود، یک جمعیت جدید را که شامل نقاط بهبود یافته است تشکیل می دهد. صرف نظر از انجام یک جستجو، ملاحظه همزمان تعدادی نقطه در الگوریتم ژنتیک، آن را با ماشینهای موازی قابل تطبیق میسازد، زیرا در اینجا تکامل هر نقطه یک فرایند مستقل است. لذا الگوریتم ژنتیک فقط نیاز به اطلاعاتی در مورد کیفیت حلهای ایجاد شده به وسیله هر مجموعه از متغیرها دارد. در صورتی که بعضی از روشهای بهینه سازی نیاز به اطلاعات مشتق یا حتی نیاز به شناخت کاملی از ساختمان مسأله و متغیرها دارند. چون الگوریم ژنتیک نیاز به چنین اطلاعات مشخصی از مسأله ندارد بنابراین قابل انعطافتر از بیشتر روشهای جستجو است. همچنین الگوریتم ژنتیک از روشهای جستجوی نوعی، که برای راهنمایی جهت روشهای جستجویشان از انتخاب تصادفی استفاده میکنند، متفاوت میباشد. زیرا اگر چه برای تعریف روشهای تصمیمگیری از تصادف و شانس استفاده میکند، ولی در فضای جستجو به صورت تصادفی قدم نمیزند. الگوریتم ژنتیک از تصادف به طور مناسب برای بهرهبرداری از معرفت پیشینی استفاده میکنند تا به سرعت به حلهای نزدیک بهینه برسد.
در ادامه به اصطلاحات موجود در این الگوریتم ها می پردازیم