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

2-الگوریتم ژنتیک در هر تکرار چند نقطه از فضای جستجو را در نظر می‏گیرد.

3-الگوریتم ژنتیک برای راهنمایی جهت جستجو، انتخاب تصادفی انجام می‏دهد که به این ترتیب اطلاعات مشتق نیاز ندارد. مکانیسم‏هایی که تکامل روی موجود زنده را انجام می‏شوند تا کنون به طور کامل فهمیده نشده‏اند. اما تعدادی از ویژگی‏های این مکانیسم شناخته شده است.

در اینجا تعدادی از ویژگی‏های یکی از تئوری‏های بسیار پذیرفته شده است آورده می‏شود.
1- تکامل، فرایندی است که روی رشته‏ها صورت می‏گیرد، نه روی موجود زنده‏ای که معرف آن رشته است.
2- انتخاب طبیعی، پیوندی ما بین رشته‏های و عملکرد ساختمان‏های رمز‏گشایی شده آنها می‏باشد.
3- فرایند تولید مثل، نقطه‏ای است که تکامل صورت می‏گیرد. تکامل ممکن است سبب شود که فرزند بیولوژیکی با والدین خود متفاوت می‏باشد.

الگوریتم ژنتیک الگوریتم جستجویی است که از ویژگی‏های ذکر شده برای تئوری تکامل، الهام گرفته‏ است. همان گونه جان هلند مبتکر الگوریتم ژنتیک اعتقاد داشت، این الگوریتم به همان روشی که طبیعت، فرایند تکامل را انجام می‏دهد، تکامل را روی نماد‏های ژنی مربوط به حل‏های یک مسأله بهینه‏سازی انجام می‏دهد.
الگوریتم ژنتیک چندین نقطه از فضای جستجو را به صورت همزمان در نظر می‎گیرد و بنابر این شانس اینکه به یک بیشینه محلی همگرا شود، کاهش می‏یابد. در بیشتر روش‏های جستجو مرسوم، قاعده تصمیم حاکم به این صورت عمل می‏کند که از یک نقطه به نقطه دیگر حرکت می‏کند این روش‏ها می‏توانند در مسئله‏های جستجو دارای چند بیشینه خطرناک باشند. زیرا ممکن است آنها به یک بیشینه محلی همگرا شوند. لیکن الگوریتم ژنتیک جمعیت‏های کاملی از نقاط ( رشته‏ها ) را تولید می‏کند سپس هر نقطه را به صورت انفرادی امتحان می‏کند و با ترکیب کیفیت‏های ( محتویات ) نقاط موجود، یک جمعیت جدید را که شامل نقاط بهبود یافته است تشکیل می دهد. صرف نظر از انجام یک جستجو، ملاحظه همزمان تعدادی نقطه در الگوریتم ژنتیک، آن را با ماشین‏های موازی قابل تطبیق می‏سازد، زیرا در اینجا تکامل هر نقطه یک فرایند مستقل است. لذا الگوریتم ژنتیک فقط نیاز به اطلاعاتی در مورد کیفیت حل‏های ایجاد شده به وسیله هر مجموعه از متغیرها دارد. در صورتی که بعضی از روش‏های بهینه سازی نیاز به اطلاعات مشتق یا حتی نیاز به شناخت کاملی از ساختمان مسأله و متغیرها دارند. چون الگوریم ژنتیک نیاز به چنین اطلاعات مشخصی از مسأله ندارد بنابراین قابل انعطاف‏تر از بیشتر روش‏های جستجو است. همچنین الگوریتم ژنتیک از روش‏های جستجوی نوعی، که برای راهنمایی جهت روش‏های جستجویشان از انتخاب تصادفی استفاده می‏کنند، متفاوت میباشد. زیرا اگر چه برای تعریف روش‏های تصمیم‏گیری از تصادف و شانس استفاده می‏کند، ولی در فضای جستجو به صورت تصادفی قدم نمی‏زند. الگوریتم ژنتیک از تصادف به طور مناسب برای بهره‏برداری از معرفت پیشینی استفاده می‏کنند تا به سرعت به حل‏های نزدیک بهینه برسد.

در ادامه به اصطلاحات موجود در این الگوریتم ها می پردازیم