<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>بایگانی‌های فایل متلب - ايران متلب</title>
	<atom:link href="https://matlab1.ir/tag/%d9%81%d8%a7%db%8c%d9%84-%d9%85%d8%aa%d9%84%d8%a8/feed/" rel="self" type="application/rss+xml" />
	<link>https://matlab1.ir/tag/فایل-متلب/</link>
	<description>مرجع فیلم های آموزشی فارسی دانشگاهی و مهندسی</description>
	<lastBuildDate>Wed, 22 May 2024 14:20:47 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://matlab1.ir/wp-content/uploads/2017/08/ref_a2-150x150.png</url>
	<title>بایگانی‌های فایل متلب - ايران متلب</title>
	<link>https://matlab1.ir/tag/فایل-متلب/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>الگوریتم ژنتیک 1</title>
		<link>https://matlab1.ir/%d8%a7%d9%84%da%af%d9%88%d8%b1%db%8c%d8%aa%d9%85-%da%98%d9%86%d8%aa%db%8c%da%a9/</link>
					<comments>https://matlab1.ir/%d8%a7%d9%84%da%af%d9%88%d8%b1%db%8c%d8%aa%d9%85-%da%98%d9%86%d8%aa%db%8c%da%a9/#respond</comments>
		
		<dc:creator><![CDATA[ایران متلب]]></dc:creator>
		<pubDate>Thu, 10 Jul 2014 22:24:41 +0000</pubDate>
				<category><![CDATA[آموزش]]></category>
		<category><![CDATA[دانلود]]></category>
		<category><![CDATA[الگوریتم ژنتیک]]></category>
		<category><![CDATA[فایل متلب]]></category>
		<guid isPermaLink="false">http://am19.siteground.biz/~matlab18/matlab1.ir/?p=443</guid>

					<description><![CDATA[<p>الگوریتم ژنتیک  محدوده کاري الگوريتم ژنتيک  بسيار وسيع مي باشد و هر روز با پيشرفت روزافزون علوم و تکنولوژي استفاده از اين روش در بهينه سازي و حل مسائل بسيار گسترش يافته است. الگوريتم ژنتيک يکي از زير مجموعه هاي محاسبات تکامل يافته مي باشد که رابطه مستقيمي با مبحث هوش مصنوعي دارد در واقع [&#8230;]</p>
<p>نوشته <a href="https://matlab1.ir/%d8%a7%d9%84%da%af%d9%88%d8%b1%db%8c%d8%aa%d9%85-%da%98%d9%86%d8%aa%db%8c%da%a9/">الگوریتم ژنتیک 1</a> اولین بار در <a href="https://matlab1.ir">ايران متلب</a>. پدیدار شد.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-family: verdana, geneva;">الگوریتم ژنتیک</span></p>
<p><span style="font-family: verdana, geneva;"> محدوده کاري الگوريتم ژنتيک  بسيار وسيع مي باشد و هر روز با پيشرفت روزافزون علوم و تکنولوژي استفاده از اين روش در بهينه سازي و حل مسائل بسيار گسترش يافته است. الگوريتم ژنتيک يکي از زير مجموعه هاي محاسبات تکامل يافته مي باشد که رابطه مستقيمي با مبحث هوش مصنوعي دارد در واقع الگوريتم ژنتيک  يکي از زير مجموعه هاي هوش مصنوعي مي باشد.  الگوريتم ژنتيک را مي­توان يک روش جستجوي کلي ناميد که از قوانين تکامل بيولوژيک طبيعي تقليد مي­کند .الگوريتم ژنتيک برروي يکسري از جواب­هاي مساله به اميد بدست آوردن جوابهاي بهتر قانون بقاي بهترين را اعمال مي کند. در هر نسل به کمک فرآيند انتخابي متناسب با ارزش جواب­ها و توليد مثل جواب-هاي انتخاب شده به کمک عملگرهايي که از ژنتيک طبيعي تقليد شده­اند ,تقريب­هاي بهتري از جواب نهايي بدست مي­آيد. اين فرايند باعث مي­شود که نسلهاي جديد با شرايط مساله سازگارتر باشد .</span></p>
<p>&nbsp;</p>
<p><span style="font-family: verdana, geneva;"><strong>2- تاریخچه</strong></span></p>
<p><span style="font-family: verdana, geneva;"><strong>   </strong>حساب تکاملي ,براي اولين بار در سال 1960 توسط آقاي ريچنبرگ ارائه شد که تحقيق وي در مورد استراتژي تکامل بود.بعدها نظريه او توسط محققان زيادي مورد بررسي قرار گرفت تا اينکه الگوريتم ژنتيک  (GA  ) توسط جان هولند(John Holland ) و در سال 1975 در دانشگاه ميشيگان ,ارائه شد.</span></p>
<p><span style="font-family: verdana, geneva;">در سال 1992 نيز جان کوزا (John Koza ) از الگوريتم ژنتيک  (GA  ) براي حل و بهينه سازي مسائل مهندسي پيشرفته استفاده کرد و توانست براي اولين بار روند الگوريتم ژنتيک  (GA  )  را به زبان کامپيوتر در آورد و براي آن يک زبان برنامه نويسي ابداع کندکه به اين روش برنامه نويسي ,برنامه نويسي ژنتيک ( GP ) گويند و نرم افزاري که توسط وي ابداع گرديد به نرم افزار LISP مشهور است که هم اکنون نيز اين نرم افزار کاربرد زيادي در حل و بهينه سازي مسائل مهندسي پيدا کرده است .</span></p>
<p>&nbsp;</p>
<p><span style="font-family: verdana, geneva;">2-1<strong><em>  تاريخچه بيولوژيکي </em></strong></span></p>
<p><span style="font-family: verdana, geneva;">بدن  هر موجود زنده اي از سلول تشکيل يافته است و هر سلول هم از کروموزوم تشکيل يافته است.کروموزومها نيز از رشته هاي DNA تشکيل يافته اند.کروموزومها هم از ژن تشکيل يافته اند.و به هر بلوک DNA يک ژن مي گويند و هر ژن نيز از يک پروتئين خاص ومنحصر به فرد تشکيل يافته است.و به مجموعه از ژنها يک ژنوم (Genome ) مي گويند.</span></p>
<p>&nbsp;</p>
<h4><span style="font-family: verdana, geneva;"><strong>3- ساختار الگوريتم‏هاي ژنتيكي</strong></span></h4>
<p><span style="font-family: verdana, geneva;">به طور كلي, الگوريتم‏هاي ژنتيكي از اجزاء زير تشكيل مي‏شوند:</span></p>
<p><span style="font-family: verdana, geneva;"> <strong>3-1</strong><strong> كروموزوم<strong>[1]</strong></strong></span></p>
<p><span style="font-family: verdana, geneva;">در الگوريتم‏هاي ژنتيكي, هر كروموزوم نشان دهنده يك نقطه در فضاي جستجو و يك راه‏حل ممكن براي مسئله مورد نظر است. خود كروموزوم‏ها (راه حل‏ها) از تعداد ثابتي ژن[2] (متغير) تشكيل مي‏شوند. براي نمايش كروموزوم‏ها, معمولاً از كدگذاري‏هاي دودويي (رشته‏هاي بيتي) استفاده مي‏شود.</span></p>
<p><span style="font-family: verdana, geneva;"><strong>3-2  جمعيت<strong>[3]</strong></strong></span></p>
<p><span style="font-family: verdana, geneva;">مجموعه‏اي از كروموزوم‏ها يك جمعيت را تشكيل مي‏دهند. با تاثير عملگرهاي ژنتيكي  بر روي هر جمعيت, جمعيت جديدي با همان تعداد كروموزوم تشكيل مي‏شود.</span></p>
<p><span style="font-family: verdana, geneva;"> </span></p>
<p><span style="font-family: verdana, geneva;"><strong>3-3  تابع برازندگي<strong>[4]</strong></strong></span></p>
<p><span style="font-family: verdana, geneva;">به منظور حل هر مسئله با استفاده از الگوريتم‏هاي ژنتيكي, ابتدا بايد يك تابع برازندگي براي آن مسئله ابداع شود. براي هر كروموزوم, اين تابع عددي غير منفي را برمي‏گرداند كه نشان دهنده شايستگي يا توانايي فردي آن كروموزوم است.</span></p>
<p><span style="font-family: verdana, geneva;"> </span></p>
<h6><span style="font-family: verdana, geneva;"><strong>3-4 عملگرهاي الگوریتم  ژنتيك</strong></span></h6>
<p><span style="font-family: verdana, geneva;">در الگوريتم‏هاي ژنتيكي, در طي مرحله توليد مثل[5] ازعملگرهاي ژنتيكي استفاده مي‏شود. با تاثير اين عملگرها بر روي يك جمعيت, نسل[6] بعدي آن جمعيت توليد مي‏شود. عملگرهاي انتخاب[7] , آميزش[8]  و جهش[9] معمولاً بيشترين كاربرد را در الگوريتم‏هاي ژنتيكي دارند.</span></p>
<p><span style="font-family: verdana, geneva;"> </span></p>
<p><span style="font-family: verdana, geneva;"><strong>3-4-1     </strong><strong>عملگر انتخاب</strong><strong>  </strong><strong>(</strong><strong>Selection</strong><strong> ):</strong></span></p>
<p><span style="font-family: verdana, geneva;">اين عملگر از بين كروموزوم‏هاي موجود در يك جمعيت, تعدادي كروموزوم را براي  توليد مثل انتخاب مي‏كند. كروموزوم‏هاي برازنده‏تر شانس بيشتري دارند تا براي توليد مثل انتخاب شوند.</span></p>
<p><span style="font-family: verdana, geneva;"> </span></p>
<p><span style="font-family: verdana, geneva;"><strong>روش های انتخاب :</strong></span></p>
<ul>
<li><span style="font-family: verdana, geneva;"><strong>: Elitist Selection</strong><strong> (انتخاب نخبگان)</strong></span></li>
</ul>
<p><span style="font-family: verdana, geneva;">o       مناسب‌ترین عضو هر اجتماع انتخاب می‌شود. با توجه به مقدار شایستگی که از تابع ارزیاب دریافت کرده است.</span></p>
<p><span style="font-family: verdana, geneva;"> </span></p>
<ul>
<li><span style="font-family: verdana, geneva;"><strong>نمونه‏برداري به روش چرخ رولت</strong></span></li>
</ul>
<p><span style="font-family: verdana, geneva;">در اين روش, به هر فرد قطعه‏اي از يك چرخ رولت مدور اختصاص داده مي‏شود. اندازه اين قطعه متناسب با برازندگي آن فرد است. چرخ N بار چرخانده مي‏شود كه N تعداد افراد در جمعيت است. در هر چرخش, فرد زير نشانگر چرخ انتخاب مي‏شود و در مخزن والدين نسل بعد قرار مي‏گيرد. اين روش مي‏تواند به صورت زير پياده‏سازي شود:</span></p>
<p><span style="font-family: verdana, geneva;">1-    نرخ انتظار كل افراد جمعيت را جمع كنيد و حاصل آن را T بناميد.</span></p>
<p><span style="font-family: verdana, geneva;">2-    مراحل زير را N بار تكرار كنيد:</span></p>
<p><span style="font-family: verdana, geneva;">يك عدد تصادفي r بين 0 و T  انتخاب كنيد.</span></p>
<p><span style="font-family: verdana, geneva;">در ميان افراد جمعيت بگرديد و نرخ‏هاي انتظار( مقدار شایستگی) آنها را با هم جمع كنيد تا اين كه مجموع بزرگتر يا مساوي r شود. فردي كه نرخ انتظارش باعث بيشتر شدن جمع از اين حد مي‏شود, به عنوان فرد برگزيده انتخاب مي‏شود.</span></p>
<p>&nbsp;</p>
<ul>
<li><span style="font-family: verdana, geneva;"><strong>Tournament Selection</strong><strong> (انتخاب تورنومنت) :</strong></span></li>
</ul>
<p><span style="font-family: verdana, geneva;">یک زیر مجموعه از صفات یک جامعه انتخاب می‌شوند و اعضای آن مجموعه با هم رقابت می‌کنند و سرانجام فقط یک صفت از هر زیر‌گروه برای تولید انتخاب می‌شوند.</span></p>
<p><span style="font-family: verdana, geneva;"><strong>3-4-1    </strong><strong>عملگر آميزش </strong><strong>(</strong><strong>Crossover</strong><strong> ):</strong></span></p>
<p><span style="font-family: verdana, geneva;"> در جریان عمل تلفیق  به صورت اتفاقی بخشهایی از کروموزوم ها با یکدیگر تعویض می شوند. این موضوع باعث می شود که فرزندان ترکیبی از خصوصیات والدین خود را به همراه داشته باشند و دقیقاً مشابه یکی از والدین نباشند.</span></p>
<p><span style="font-family: verdana, geneva;">هدف تولید فرزند جدید می باشد  به این امید که خصوصیات خوب دو موجود در فرزندشان جمع شده و یک             موجود بهتری را تولید کند.</span></p>
<p><span style="font-family: verdana, geneva;">روش کار به صورت زیر است:</span></p>
<p><span style="font-family: verdana, geneva;">بصورت تصادفی یک نقطه از کروموزوم را انتخاب می کنیم</span></p>
<p><span style="font-family: verdana, geneva;">ژن های مابعد آن نقطه از کروموزوم ها را جابجا می کنیم</span></p>
<ul>
<li><span style="font-family: verdana, geneva;"><strong>تلفیق تک نقطه ای (</strong><strong>Single Point Crossover</strong><strong>) </strong></span></li>
</ul>
<p><span style="font-family: verdana, geneva;"> اگر  عملیات تلفیق را در یک نقطه انجام دهیم به آن تلفیق تک نقطه ای می گویند.</span></p>
<p><span style="font-family: verdana, geneva;"> تلفیق بدين صورت انجام مي گيرد که حاصل ترکيب کروموزومهاي پدر و مادر مي باشد.روش توليد مثل نيز بدين صورت است که ابتدا بصورت تصادفي ,نقطه اي که قرار است توليد مثل از آنجا آغاز گردد ,انتخاب مي گردد.سپس اعداد بعد از آن به ترتيب از بيت هاي کروموزومهاي پدر و مادر قرار مي گيرد که در شکل زير نيز نشان داده شده است.</span></p>
<p><span style="font-family: verdana, geneva;">شکل 3 یک نمونه تلفیق (آمیزش)</span></p>
<p><span style="font-family: verdana, geneva;">در شکل بالا کروموزومهاي 1 و2 در نقش والدين هستند. و حاصل توليد مثل آنها در رشته هائي بنام Offspring ذخيره شده است.دقت شود که علامت  &#8220;|&#8221; مربوط به نقطه شروع توليد مثل مي باشد و در رشته هاي Offspring اعدادي که بعد از نقطه شروع توليد مثل قرار مي گيرند مربوط به کروموزومهاي مربوط به خود مي باشند.بطوريکه اععدار بعد از نقطه شروع مربوط به Offspring1  مربوط به اعداد بعد از نقطه شروع مربوط به کرومکوزوم 1 و اعداد بعد از نقطه شروع توليد مثل مربوط به Offspring2 مربوط به اعداد بعد از نقطه شروع توليد مثل مربوط به کروموزوم 2 مي باشند</span></p>
<ul>
<li><span style="font-family: verdana, geneva;"><strong>روش ادغام دو نقطه ای(</strong><strong>(Two-point CrossOver</strong><strong> :</strong></span></li>
</ul>
<p><span style="font-family: verdana, geneva;">در این روش دو مکان را به صورت تصادفی انتخاب کرده و مقادیر بین این دو نقطه را جابجا می کنیم.</span></p>
<ul>
<li><span style="font-family: verdana, geneva;"><strong>تلفیق نقطه ای (</strong><strong>Multipoint Crossover</strong><strong>) :</strong></span></li>
</ul>
<p><span style="font-family: verdana, geneva;">می توانیم این عملیات را در چند نقطه انجام دهیم ، که به آن بازترکیبی چند نقطه ای می گویند</span></p>
<ul>
<li><span style="font-family: verdana, geneva;"><strong>.تلفیق جامع (</strong><strong>Uniform Crossover</strong><strong>) :</strong></span></li>
</ul>
<p><span style="font-family: verdana, geneva;">  اگر تمام نقاط کروموزوم را بعنوان نقاط بازترکیبی انتخاب کنیم به آن بازترکیبی جامع می گوئیم.  مثال)</span></p>
<p><span style="font-family: verdana, geneva;"><strong>3-4-3.</strong><strong>عملگر جهش </strong><strong><em>(</em></strong><strong>Mutation</strong><strong><em> ):</em></strong></span></p>
<p><span style="font-family: verdana, geneva;">پس از اتمام عمل آميزش, عملگر جهش بر روي كروموزوم‏ها اثر داده مي‏شود. اين عملگر يك ژن از يك كروموزوم را به طور تصادفي انتخاب نموده و سپس محتواي آن ژن را تغيير مي‏دهد. اگر ژن از جنس اعداد دودويي باشد, آن را به وارونش تبديل مي‏كند و چنانچه متعلق به يك مجموعه باشد, مقدار يا عنصر ديگري از آن مجموعه را به جاي آن ژن    قرار مي‏دهد. در شكل 2 چگونگي جهش يافتن پنجمين ژن يك كروموزوم نشان    داده شده است.</span></p>
<p><span style="font-family: verdana, geneva;">پس از اتمام عمل جهش, كروموزوم‏هاي توليد شده به عنوان نسل جديد شناخته شده و براي دور بعد اجراي الگوريتم ارسال مي‏شوند.</span></p>
<p><span style="font-family: verdana, geneva;"> </span></p>
<p>&nbsp;</p>
<p><span style="font-family: verdana, geneva;"><strong>4- روند كلي الگوريتم‏هاي ژنتيكي</strong></span></p>
<p><span style="font-family: verdana, geneva;">قبل از اين كه يك الگوريتم ژنتيكي بتواند اجرا شود, ابتدا بايد كدگذاري (يا نمايش) مناسبي براي مسئله مورد نظر پيدا شود. معمولي ترين شيوه نمايش کروموزومها در الگوريتم ژنتيک به شکل رشته هاي دودويياست. هر متغير تصميم گيري به صورت دودويي در آمده و سپس با کنار هم قرار گرفتن اين متغيرها کروموزوم ايجاد مي­شود .گرچه اين روش گسترده ترين شيوه کدگذاري است اما شيوه هاي ديگري مثل نمايش با اعداد حقيقي در حال گسترش هستند.همچنين يك تابع برازندگي نيز بايد ابداع شود تا به هر راه‏ حل كدگذاري شده ارزشي را نسبت دهد. در طي اجرا, والدين براي توليد مثل انتخاب مي‏شوند و با استفاده از عملگرهاي آميزش و جهش با هم تركيب مي‏شوند تا فرزندان جديدي توليد كنند. اين فرآيند چندين بار تكرار مي‏شود تا نسل بعدي جمعيت توليد شود. سپس اين جمعيت بررسي مي‏شود و در صورتي كه ضوابط همگرايي رآورده شوند, فرآيند فوق خاتمه مي‏يابد.</span></p>
<p><span style="font-family: verdana, geneva;">شکل 5 کد برنامه مجازي الگوريتم ژنتيک ساده و فلوچارت آن</span></p>
<p><span style="font-family: verdana, geneva;"><strong>5- روند کلي بهينه سازي و حل مسائل در </strong><strong>الگوريتم ژنتيک :</strong></span></p>
<p><span style="font-family: verdana, geneva;">5-1 شروع(Start ) : توليد تصادفي يک جمعيت(Population ) که شامل تعداد زيادي کروموزم(روشهاي حل مسئله است) مي باشد.</span></p>
<p><span style="font-family: verdana, geneva;">5-2-صحت و درستي(Fitness ): ارزيابي صحت براي تابع f(x) به ازائ هر کروموزوم x درجمعيت.</span></p>
<p><span style="font-family: verdana, geneva;">شکل 6 نحوه ارزیابی تابع شایستگی در چرخ رولت</span></p>
<p><span style="font-family: verdana, geneva;">5-3-ايجاد يک جمعيت جديد(New Population ):توليد يک جمعيت جديد با انجام تمامي زير گروههاي زير  تا آنکه يک جمعيت جديد ايجاد گردد.</span></p>
<p><span style="font-family: verdana, geneva;">5-3-1 : انتخاب(Selection ):انتخاب کروموزومهاي پدر و مادر  از جمعيت قبلي با توجه به صحت و درستي آن (Fitness ).بطوريکه هر چه Fitnees بهتر باشد (دقت جواب در همگرائي بيشتر باشد) شانس بيشتري براي انتخاب دارد.</span></p>
<p><span style="font-family: verdana, geneva;">5-3-2 :توليد مثل(Crossover ):انجام زادو ولد و ايجاد يک نسل جديد.</span></p>
<p><span style="font-family: verdana, geneva;">5-3-3 :جهش(Mutation ):مشخص شدن مکان فرزند توليد شده در کروموزوم</span></p>
<p><span style="font-family: verdana, geneva;">5-3-4 :پذيرش(Accepting ): جا دادن فرزند جديد در داخل جمعيت.</span></p>
<p><span style="font-family: verdana, geneva;">5-4-جايگزيني(Replace ):جايگزيني جمعيت جديد به حاي جمعيت قبلي و مورد استفاده قرار دادن جمعيت جديد در مراحل بعدي الگوريتم</span></p>
<p><span style="font-family: verdana, geneva;">5-5-امتحان: (Test ): اگر شرائط مطلوب در حل مسئله ارضا شد اعلام ميکنيم که به بهترين جواب رسيده ايم و از الگوريتم خارج مي شويم در غير اين صورت به مرحله 2 يعني Fitneess ميرويم و دوباره همين روند را تکرار مي کنيم.</span></p>
<p><span style="font-family: verdana, geneva;"> </span></p>
<p><span style="font-family: verdana, geneva;"><strong>6- شرط پايان الگوريتم</strong></span></p>
<p><span style="font-family: verdana, geneva;">چون که الگوریتم های ژنتیک  بر پایه تولید و تست می باشند، جواب مساله مشخص نیست و نمی دانیم که کدامیک از جواب های تولید شده جواب بهینه است تا شرط خاتمه را پیدا شدن جواب در جمعیت تعریف کنیم. به همین دلیل، معیارهای دیگری را برای شرط خاتمه در نظر میگیریم:</span></p>
<ol>
<li><span style="font-family: verdana, geneva;">تعداد مشخصی نسل: میتوانیم شرط خاتمه را مثلاً 100 دور چرخش حلقه اصلی برنامه قرار دهیم.</span></li>
<li><span style="font-family: verdana, geneva;">عدم بهبود در بهترین شایستگی جمعیت در طی چند نسل متوالی</span></li>
<li><span style="font-family: verdana, geneva;">بهترین شایستگی جمعیت تا یک زمان خاصی تغییری نکند.</span></li>
</ol>
<p><span style="font-family: verdana, geneva;">ü      شرایط دیگری نیز میتوانیم تعریف کنیم و همچنین میتوانیم ترکیبی از موارد فوق را به عنوان شرط خاتمه به کار ببندیم.</span></p>
<p><span style="font-family: verdana, geneva;"><strong> </strong></span></p>
<p><span style="font-family: verdana, geneva;"><strong>يک مثال ساده</strong>:</span></p>
<p><span style="font-family: verdana, geneva;"> ما يک مربع 3*3 داريم که مي خواهيم اعدادي بين 1تا15 را در اين مربع قرار دهيم به طوري که جمع اعداد در هر سطرو ستون برابر 24 شود.</span></p>
<p><span style="font-family: verdana, geneva;"> ابن مسئله تا حدودي پيچيده است.ممکن است يک انسان بتواند آن را در مدت زماني مشخص حل کند ولي هيچ گاه يک کامپيوتر نخواهد توانست آن رادر مدت زمان کوتاهي با استفاده از اعداد تصادفي حل کند. ولي الگوريتم ژنتيک مي تواند اين مشکل را حل کند.</span></p>
<p><span style="font-family: verdana, geneva;"><strong>نسل اول</strong></span></p>
<p><span style="font-family: verdana, geneva;">اولين گام ايجاد کردن يک نسل ابتدايي براي شروع کار است که شامل تعدادي ژنوم تصادفي است.اين ژنوم ها به صورت باينري(0و1) نشان داده مي شوند. حالا مثال مان:</span></p>
<p><span style="font-family: verdana, geneva;">اول يکسري عدد به صورت تصادفي توليد مي شوند. هر ژنوم يا کروموزوم  شامل اطلاعاتي براي هر 9 جاي خالي است .چون اين اعداد مقادير بين 0تا15 دارند مي توان آنها را با 4 بيت يا ژن داده نمايش داد. پس هر ژنوم شامل 36 بيت است.</span></p>
<p><span style="font-family: verdana, geneva;">يک نمونه ژنوم مي تواند به شکل زير باشد:</span></p>
<p><span style="font-family: verdana, geneva;"><strong>Bits (Genes)    </strong><strong>0110    1100    1111    1011    0100    1010    0111    0101   1110</strong></span></p>
<p><span style="font-family: verdana, geneva;"><strong>Values(Traits)    </strong><strong>6          12         15       11         4         10         7            5          14</strong></span></p>
<p><span style="font-family: verdana, geneva;">حالابايد به هر ژنوم در مجموعه يک عدد تناسب(Fitness) بنابر تاثير آن در حل مسئله نسبت داد.فرآيند وروش محاسبه اين عدد براي هر مسئله فرق مي کند.انتخاب الگوي مناسب براي مسئله مشکلترين و حساسترين بخش در حل مسئله ژنتيک است.دراين مثال ما اعداد را در مکان هايشان جايگذاري مي کنيم و بررسي مي کنيم که چقدر با جواب اصلي فاصله دارند.</span></p>
<p><span style="font-family: verdana, geneva;">     </span></p>
<p><span style="font-family: verdana, geneva;">مقادير معادل عبارتند از 33و25و26و24و21و39.واضح است که اين مقادير مسئله را حل نمي کنند.پس بايد مقادير تناسب را براي اين ژنوم محاسبه کرد.براي اين کار ابتدا فاصله هرمجموع را از24 محاسبه کرده،سپس معکوس مجموع تفاصل آنها را محاسبه مي کنيم .</span></p>
<p><span style="font-family: verdana, geneva;">بنابراين درجه تناسب براي اين ژنوم تقريباً برابر 0.033 است.هرچقدر که اعداد ما به جواب نزديکتر باشند عدد تناسب بزرگتر خواهد شد.اما اگر مخرج ما برابر 0شود چه اتفاقي مي افتد؟ دراين صورت همه اعداد ما برابر 24 شده اند وما به جواب رسيده ايم.</span></p>
<p><span style="font-family: verdana, geneva;"><strong>نسل بعدي:   دو ژنوم (کروموزوم) به طور تصادفي براي توليد نسل بعدي انتخاب مي شوند. اين اصلي ترين بخش الگوريتم ژنتيک است که از 3 مرحله تشکيل شده:</strong></span></p>
<p><span style="font-family: verdana, geneva;"><strong>1-انتخاب</strong></span></p>
<p><span style="font-family: verdana, geneva;"> دو ژنوم به طور تصادفي از نسل قبل انتخاب مي شوند.اين ژنوم ها داراي اعداد تناسب بزرگتري هستند و بعضي صفات آنها به نسل بعدي منتقل مي شوند. اين بدين معني است که عدد تناسب در حال افزايش خواهد بود.</span></p>
<p><span style="font-family: verdana, geneva;">بهترين روش براي تابع انتخاب(Fitness) در اين مسئله روشي به نام رولت(Roulette) است.اول يک عدد تصادفي بين 0 وعدد تناسب نسل قبلي انتخاب مي شود. تابع انتخاب به صورت زير خواهد بود:</span></p>
<p><span style="font-family: verdana, geneva;">RouletteSelection(){    <strong>float</strong> ball  = rand_float_between(0.0, total_fitness);    <strong>float</strong> slice = 0.0;     <strong>for</strong> each genome in population    {     slice += genome.fitness;//مقدار شایستگی هر ژنوم( کروموزوم) با ژنوم های بعدی جمع میشود         <strong>if</strong> slice &gt; ball            <strong>return</strong> genome;    }}</span></p>
<p><span style="font-family: verdana, geneva;"><strong>2- تلفیق</strong>(Crossover)  </span></p>
<p><span style="font-family: verdana, geneva;">  حالا دو ژنوم بخشي از ژنهايشان را براي ايجاد نسل بعدي اهدا مي کنند. اگر آنها تغيير پيدا نکنند همانطور بي تغيير به نسل بعدي منتقل خواهند شد.درجهCrossover نشان دهنده اين است که هر چند وقت يکبار ژنوم ها تغيير پيدا خواهند کرد و اين عدد بايد در حدود 65-85% باشد.</span></p>
<p><span style="font-family: verdana, geneva;">عملگر تغيير در ژنوم هاي باينري مثال ما با انتخاب يک مکان تصادفي در ژنوم براي تغيير آغاز مي شود. بخش اول ژنهاي پدر و بخش دوم ژنهاي مادر با هم ترکيب مي شوند(و بالعکس) تا2 فرزند توليد شوند. در زيريک عمل تغيير را مي بينيم.</span></p>
<p><span style="font-family: verdana, geneva;"><strong> </strong></span></p>
<p><span style="font-family: verdana, geneva;"><strong> </strong></span></p>
<p><span style="font-family: verdana, geneva;"><strong>Before Crossing</strong></span></p>
<p><span style="font-family: verdana, geneva;"><strong>Father</strong> 011110010011 001011011000111011010000</span></p>
<p><span style="font-family: verdana, geneva;"><strong>Mother</strong> 010100111110 010101111101000100010010</span></p>
<p><span style="font-family: verdana, geneva;"><strong>After Crossing</strong></span></p>
<p><span style="font-family: verdana, geneva;"><strong>Child1 </strong>011110010011 010101111101000100010010</span></p>
<p><span style="font-family: verdana, geneva;"><strong>Child2 </strong>010100111110 001011011000111011010000</span></p>
<p><span style="font-family: verdana, geneva;"><strong>3- جهش</strong><strong>(Mutation) </strong></span></p>
<p><span style="font-family: verdana, geneva;">قبل از اين که ژنوم ها در نسل بعدي قرار بگيرند،احتمال دارد دچار جهش يا تغيير ناگهاني شوند شوند.جهش يک تغيير ناگهاني در ژن است.در ژنهاي باينري اين تغيير به معناي تغيير يک بيت از 0به 1 يا از 1 به 0 است. درجه جهش نشان دهنده احتمال بروز جهش در يک ژن است و تغريباً بين 1-5% براي ژنهاي باينري و 5-20%براي ژنهاي عددي است.</span></p>
<p><span style="font-family: verdana, geneva;">این روند تا تولید نسل های متعددی ادامه می یابد تا در نهایت به جواب برسیم.</span></p>
<p><span style="font-family: verdana, geneva;"><strong>7- برخي از كاربرد الگوريتم‏هاي ژنتيكي</strong></span></p>
<p><span style="font-family: verdana, geneva;">توپولوژي هاي شبکه هاي کامپيوتي توزيع شده.</span></p>
<p><span style="font-family: verdana, geneva;">بهينه سازي ساختار ملکولي شِميايي (شيمي)</span></p>
<p><span style="font-family: verdana, geneva;">مهندسي برق براي ساخت آنتنهاي Crooked-Wire Genetic Antenna</span></p>
<p><span style="font-family: verdana, geneva;">مهندسي نرم افزار</span></p>
<p><span style="font-family: verdana, geneva;">بازي هاي کامپيوتري</span></p>
<p><span style="font-family: verdana, geneva;">مهندسي مواد</span></p>
<p><span style="font-family: verdana, geneva;">مهندسي سيستم</span></p>
<p><span style="font-family: verdana, geneva;">رباتيک(Robotics)</span></p>
<p><span style="font-family: verdana, geneva;">تشخيص الگوو استخراج داده(Data mining)</span></p>
<p><span style="font-family: verdana, geneva;">حل مسئله فروشنده دوره گرد</span></p>
<p><span style="font-family: verdana, geneva;">آموزش شبکه هاي عصبي مصنوعي</span></p>
<p><span style="font-family: verdana, geneva;">ياددهي رفتار به رباتها با GA .</span></p>
<p><span style="font-family: verdana, geneva;">يادگيري قوانين فازي با استفاده از الگويتم هاي ژنتيک.</span></p>
<p><span style="font-family: verdana, geneva;"><strong>8- نتيجه گيري‌</strong></span></p>
<p><span style="font-family: verdana, geneva;">الگوريتم‌هاي ژنتيك الگوريتم‌هايي هستند كه داراي قدرت بسيار زيادي در يافتن جواب مسئله هستند، اما بايد توجه داشت كه شايد بتوان كاربرد اصلي اين الگوريتم ها را در مسائلي در نظر گرفت كه داراي فضاي حالت بسيار بزرگ هستند و عملاً بررسي همه حالت‌ها براي انسان در زمان‌هاي نرمال (در حد عمر بشر) ممكن نيست. از طرفي بايد توجه داشت كه حتماً بين حالات مختلف مسئله بايد داراي پيوستگي مناسب و منطقي باشيم. در نهايت الگوريتم‌هاي ژنتيك اين امكان را به ما مي‌دهد كه داراي حركتي سريع در فضاي مسئله به سوي هدف باشيم. به گونه‌اي كه مي‌توانيم تصور كنيم كه در فضاي حالات مسئله به سوي جواب مشغول پرواز هستيم.</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p class="Titr" style="text-align: center;"><a title="الگوریتم ژنتیک 1" href="https://s3.afranet.net/matlab1ir/file1/genetic3%5Bmatlab1.ir%5D.rar" target="_blank" rel="noopener noreferrer">لینک دانلود اصل فایل</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>[1] Chromosome</p>
<p>[2] Gene</p>
<p>[3] Population</p>
<p>[4] Fitness Function</p>
<p>[5] Reproduction</p>
<p>[6] Generation</p>
<p>[7] Selection</p>
<p>[8] Crossover</p>
<p>[9] Mutation</p>
<p>&nbsp;</p>
<p>نوشته <a href="https://matlab1.ir/%d8%a7%d9%84%da%af%d9%88%d8%b1%db%8c%d8%aa%d9%85-%da%98%d9%86%d8%aa%db%8c%da%a9/">الگوریتم ژنتیک 1</a> اولین بار در <a href="https://matlab1.ir">ايران متلب</a>. پدیدار شد.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://matlab1.ir/%d8%a7%d9%84%da%af%d9%88%d8%b1%db%8c%d8%aa%d9%85-%da%98%d9%86%d8%aa%db%8c%da%a9/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
