﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>http://wiki.occc.ir/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=FundamentalGeneticAlgorithm</id>
	<title>OCCC Wiki - مشارکت‌های کاربر [fa]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.occc.ir/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=FundamentalGeneticAlgorithm"/>
	<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%D9%88%DB%8C%DA%98%D9%87:%D9%85%D8%B4%D8%A7%D8%B1%DA%A9%D8%AA%E2%80%8C%D9%87%D8%A7/FundamentalGeneticAlgorithm"/>
	<updated>2026-06-10T18:38:37Z</updated>
	<subtitle>مشارکت‌های کاربر</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=1421</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=1421"/>
		<updated>2014-09-16T20:31:20Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* gene */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل هرکدام از فعالیت های کوچک دانست. اگر به صورت اعداد آن را نشان دهیم،هر کدام از اعداد می تواند نشان دهنده یک ژن باشد.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم.این شش کار مجموعا می تواند یک کروموزوم واحد را تشکیل دهد.&lt;br /&gt;
هر کدام از این شش کار از شش فعالیت تشکیل شده اند. فعالیت های کوچک توسط ماشین ها انجام پذیر است.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;br /&gt;
&lt;br /&gt;
== مجموعه داده و محک ==&lt;br /&gt;
برای مسائل JSSP نمونه داده های استانداردی وجود دارد که با حل آنها میتوان الگوریتم های مختلف را با هم دیگر مقایسه کرد.&lt;br /&gt;
&lt;br /&gt;
نمونه محک های موجود:&lt;br /&gt;
&lt;br /&gt;
* [http://www.eii.uva.es/elena/JSSP/InstancesJSSP.htm Elena Prez]&lt;br /&gt;
&lt;br /&gt;
*    &amp;lt;references/&amp;gt;[http://mistic.heig-vd.ch/taillard/problemes.dir/ordonnancement.dir/ordonnancement.html taillard]&lt;br /&gt;
&lt;br /&gt;
== مراجع ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=1420</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=1420"/>
		<updated>2014-09-16T20:27:17Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* chromosome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال کار فوق را در نظر بگیرید : &lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 7) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
که (1, 3)  یک ژن را تشکیل می دهد. هرکدام از فعالیت ها یک ژن را تشکیل می دهند.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم.این شش کار مجموعا می تواند یک کروموزوم واحد را تشکیل دهد.&lt;br /&gt;
هر کدام از این شش کار از شش فعالیت تشکیل شده اند. فعالیت های کوچک توسط ماشین ها انجام پذیر است.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;br /&gt;
&lt;br /&gt;
== مجموعه داده و محک ==&lt;br /&gt;
برای مسائل JSSP نمونه داده های استانداردی وجود دارد که با حل آنها میتوان الگوریتم های مختلف را با هم دیگر مقایسه کرد.&lt;br /&gt;
&lt;br /&gt;
نمونه محک های موجود:&lt;br /&gt;
&lt;br /&gt;
* [http://www.eii.uva.es/elena/JSSP/InstancesJSSP.htm Elena Prez]&lt;br /&gt;
&lt;br /&gt;
*    &amp;lt;references/&amp;gt;[http://mistic.heig-vd.ch/taillard/problemes.dir/ordonnancement.dir/ordonnancement.html taillard]&lt;br /&gt;
&lt;br /&gt;
== مراجع ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=1419</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=1419"/>
		<updated>2014-09-16T20:20:48Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* مجموعه داده و محک */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال کار فوق را در نظر بگیرید : &lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 7) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
که (1, 3)  یک ژن را تشکیل می دهد. هرکدام از فعالیت ها یک ژن را تشکیل می دهند.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم :&lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 9) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
(J=2: (2, 8) (3, 5) (5, 9) (6, 5) (1, 10) (4, 4&lt;br /&gt;
&lt;br /&gt;
(J=3: (3, 5) (4, 4) (6, 8) (1, 9) (2, 1) (5, 7&lt;br /&gt;
&lt;br /&gt;
(J=4: (2, 5) (1, 5) (3, 5) (4, 3) (5, 8) (6, 7&lt;br /&gt;
&lt;br /&gt;
(J=5: (3, 9)  (2, 3)  (5, 5) (6, 4) (1, 2) (4, 1&lt;br /&gt;
&lt;br /&gt;
(J=6: (2, 3) (4, 3) (6, 8) (1, 10) (5, 4) (3, 1&lt;br /&gt;
&lt;br /&gt;
هر کدام از این شش کار از شش فعالیت تشکیل شده اند. یعنی در اینجا شش کروموزوم وجود دارد، &lt;br /&gt;
&lt;br /&gt;
به نام های کروموزوم  1=J تا کروموزوم 6=J.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;br /&gt;
&lt;br /&gt;
== مجموعه داده و محک ==&lt;br /&gt;
برای مسائل JSSP نمونه داده های استانداردی وجود دارد که با حل آنها میتوان الگوریتم های مختلف را با هم دیگر مقایسه کرد.&lt;br /&gt;
&lt;br /&gt;
نمونه محک های موجود:&lt;br /&gt;
&lt;br /&gt;
* [http://www.eii.uva.es/elena/JSSP/InstancesJSSP.htm Elena Prez]&lt;br /&gt;
&lt;br /&gt;
*    &amp;lt;references/&amp;gt;[http://mistic.heig-vd.ch/taillard/problemes.dir/ordonnancement.dir/ordonnancement.html taillard]&lt;br /&gt;
&lt;br /&gt;
== مراجع ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=1418</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=1418"/>
		<updated>2014-09-16T20:20:09Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* مجموعه داده و محک */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال کار فوق را در نظر بگیرید : &lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 7) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
که (1, 3)  یک ژن را تشکیل می دهد. هرکدام از فعالیت ها یک ژن را تشکیل می دهند.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم :&lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 9) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
(J=2: (2, 8) (3, 5) (5, 9) (6, 5) (1, 10) (4, 4&lt;br /&gt;
&lt;br /&gt;
(J=3: (3, 5) (4, 4) (6, 8) (1, 9) (2, 1) (5, 7&lt;br /&gt;
&lt;br /&gt;
(J=4: (2, 5) (1, 5) (3, 5) (4, 3) (5, 8) (6, 7&lt;br /&gt;
&lt;br /&gt;
(J=5: (3, 9)  (2, 3)  (5, 5) (6, 4) (1, 2) (4, 1&lt;br /&gt;
&lt;br /&gt;
(J=6: (2, 3) (4, 3) (6, 8) (1, 10) (5, 4) (3, 1&lt;br /&gt;
&lt;br /&gt;
هر کدام از این شش کار از شش فعالیت تشکیل شده اند. یعنی در اینجا شش کروموزوم وجود دارد، &lt;br /&gt;
&lt;br /&gt;
به نام های کروموزوم  1=J تا کروموزوم 6=J.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;br /&gt;
&lt;br /&gt;
== مجموعه داده و محک ==&lt;br /&gt;
برای مسائل JSSP نمونه داده های استانداردی وجود دارد که با حل آنها میتوان الگوریتم های مختلف را با هم دیگر مقایسه کرد.&lt;br /&gt;
&lt;br /&gt;
نمونه محک های موجود:&lt;br /&gt;
&lt;br /&gt;
* [http://www.eii.uva.es/elena/JSSP/InstancesJSSP.htm Elena Prez]&lt;br /&gt;
&lt;br /&gt;
*    &amp;lt;references/&amp;gt;[http://mistic.heig-vd.ch/taillard/problemes.dir/ordonnancement.dir/ordonnancement.html taillard]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== مراجع ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=1417</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=1417"/>
		<updated>2014-09-16T20:19:10Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* مجموعه داده و محک */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال کار فوق را در نظر بگیرید : &lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 7) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
که (1, 3)  یک ژن را تشکیل می دهد. هرکدام از فعالیت ها یک ژن را تشکیل می دهند.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم :&lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 9) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
(J=2: (2, 8) (3, 5) (5, 9) (6, 5) (1, 10) (4, 4&lt;br /&gt;
&lt;br /&gt;
(J=3: (3, 5) (4, 4) (6, 8) (1, 9) (2, 1) (5, 7&lt;br /&gt;
&lt;br /&gt;
(J=4: (2, 5) (1, 5) (3, 5) (4, 3) (5, 8) (6, 7&lt;br /&gt;
&lt;br /&gt;
(J=5: (3, 9)  (2, 3)  (5, 5) (6, 4) (1, 2) (4, 1&lt;br /&gt;
&lt;br /&gt;
(J=6: (2, 3) (4, 3) (6, 8) (1, 10) (5, 4) (3, 1&lt;br /&gt;
&lt;br /&gt;
هر کدام از این شش کار از شش فعالیت تشکیل شده اند. یعنی در اینجا شش کروموزوم وجود دارد، &lt;br /&gt;
&lt;br /&gt;
به نام های کروموزوم  1=J تا کروموزوم 6=J.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;br /&gt;
&lt;br /&gt;
== مجموعه داده و محک ==&lt;br /&gt;
برای مسائل JSSP نمونه داده های استانداردی وجود دارد که با حل آنها میتوان الگوریتم های مختلف را با هم دیگر مقایسه کرد.&lt;br /&gt;
&lt;br /&gt;
نمونه محک های موجود:&lt;br /&gt;
&lt;br /&gt;
* [http://www.eii.uva.es/elena/JSSP/InstancesJSSP.htm Elena Prez]&lt;br /&gt;
&lt;br /&gt;
*    [  http://mistic.heig-vd.ch/taillard/problemes.dir/ordonnancement.dir/ordonnancement.html taillard ]&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== مراجع ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=1416</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=1416"/>
		<updated>2014-09-16T20:16:09Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* مجموعه داده و محک */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال کار فوق را در نظر بگیرید : &lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 7) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
که (1, 3)  یک ژن را تشکیل می دهد. هرکدام از فعالیت ها یک ژن را تشکیل می دهند.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم :&lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 9) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
(J=2: (2, 8) (3, 5) (5, 9) (6, 5) (1, 10) (4, 4&lt;br /&gt;
&lt;br /&gt;
(J=3: (3, 5) (4, 4) (6, 8) (1, 9) (2, 1) (5, 7&lt;br /&gt;
&lt;br /&gt;
(J=4: (2, 5) (1, 5) (3, 5) (4, 3) (5, 8) (6, 7&lt;br /&gt;
&lt;br /&gt;
(J=5: (3, 9)  (2, 3)  (5, 5) (6, 4) (1, 2) (4, 1&lt;br /&gt;
&lt;br /&gt;
(J=6: (2, 3) (4, 3) (6, 8) (1, 10) (5, 4) (3, 1&lt;br /&gt;
&lt;br /&gt;
هر کدام از این شش کار از شش فعالیت تشکیل شده اند. یعنی در اینجا شش کروموزوم وجود دارد، &lt;br /&gt;
&lt;br /&gt;
به نام های کروموزوم  1=J تا کروموزوم 6=J.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;br /&gt;
&lt;br /&gt;
== مجموعه داده و محک ==&lt;br /&gt;
برای مسائل JSSP نمونه داده های استانداردی وجود دارد که با حل آنها میتوان الگوریتم های مختلف را با هم دیگر مقایسه کرد.&lt;br /&gt;
&lt;br /&gt;
نمونه محک های موجود:&lt;br /&gt;
&lt;br /&gt;
* [http://www.eii.uva.es/elena/JSSP/InstancesJSSP.htm Elena Prez]&lt;br /&gt;
&lt;br /&gt;
*    [  http://mistic.heig-vd.ch/taillard/problemes.dir/ordonnancement.dir/ordonnancement.html taillard ]&lt;br /&gt;
&lt;br /&gt;
== مراجع ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=930</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=930"/>
		<updated>2014-08-12T01:05:11Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* chromosome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال کار فوق را در نظر بگیرید : &lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 7) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
که (1, 3)  یک ژن را تشکیل می دهد. هرکدام از فعالیت ها یک ژن را تشکیل می دهند.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم :&lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 9) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
(J=2: (2, 8) (3, 5) (5, 9) (6, 5) (1, 10) (4, 4&lt;br /&gt;
&lt;br /&gt;
(J=3: (3, 5) (4, 4) (6, 8) (1, 9) (2, 1) (5, 7&lt;br /&gt;
&lt;br /&gt;
(J=4: (2, 5) (1, 5) (3, 5) (4, 3) (5, 8) (6, 7&lt;br /&gt;
&lt;br /&gt;
(J=5: (3, 9)  (2, 3)  (5, 5) (6, 4) (1, 2) (4, 1&lt;br /&gt;
&lt;br /&gt;
(J=6: (2, 3) (4, 3) (6, 8) (1, 10) (5, 4) (3, 1&lt;br /&gt;
&lt;br /&gt;
هر کدام از این شش کار از شش فعالیت تشکیل شده اند. یعنی در اینجا شش کروموزوم وجود دارد، &lt;br /&gt;
&lt;br /&gt;
به نام های کروموزوم  1=J تا کروموزوم 6=J.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=929</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=929"/>
		<updated>2014-08-12T01:02:08Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* chromosome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال کار فوق را در نظر بگیرید : &lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 7) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
که (1, 3)  یک ژن را تشکیل می دهد. هرکدام از فعالیت ها یک ژن را تشکیل می دهند.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم :&lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 9) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
(J=2: (2, 8) (3, 5) (5, 9) (6, 5) (1, 10) (4, 4&lt;br /&gt;
&lt;br /&gt;
(J=3: (3, 5) (4, 4) (6, 8) (1, 9) (2, 1) (5, 7&lt;br /&gt;
&lt;br /&gt;
(J=4: (2, 5) (1, 5) (3, 5) (4, 3) (5, 8) (6, 7&lt;br /&gt;
&lt;br /&gt;
(J=5: (3, 9)  (2, 3)  (5, 5) (6, 4) (1, 2) (4, 1&lt;br /&gt;
&lt;br /&gt;
(J=6: (2, 3) (4, 3) (6, 8) (1, 10) (5, 4) (3, 1&lt;br /&gt;
&lt;br /&gt;
 هر کدام از این شش کار از شش فعالیت تشکیل شده اند. یعنی در اینجا شش کروموزوم وجود دارد، &lt;br /&gt;
&lt;br /&gt;
به نام های کروموزوم  1=J تا کروموزوم 6=J.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=911</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=911"/>
		<updated>2014-08-11T03:03:26Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* chromosome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال کار فوق را در نظر بگیرید : &lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 7) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
که (1, 3)  یک ژن را تشکیل می دهد. هرکدام از فعالیت ها یک ژن را تشکیل می دهند.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم :&lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 9) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
(J=2: (2, 8) (3, 5) (5, 9) (6, 5) (1, 10) (4, 4&lt;br /&gt;
&lt;br /&gt;
(J=3: (3, 5) (4, 4) (6, 8) (1, 9) (2, 1) (5, 7&lt;br /&gt;
&lt;br /&gt;
(J=4: (2, 5) (1, 5) (3, 5) (4, 3) (5, 8) (6, 7&lt;br /&gt;
&lt;br /&gt;
(J=5: (3, 9)  (2, 3)  (5, 5) (6, 4) (1, 2) (4, 1&lt;br /&gt;
&lt;br /&gt;
(J=6: (2, 3) (4, 3) (6, 8) (1, 10) (5, 4) (3, 1&lt;br /&gt;
&lt;br /&gt;
این هر کدام از این شش کار از شش فعالیت تشکیل شده اند. یعنی در اینجا شش کروموزوم وجود دارد. یکی&lt;br /&gt;
&lt;br /&gt;
به نام های کروموزوم  1=J تا کروموزوم 6=J.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=910</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=910"/>
		<updated>2014-08-11T03:01:52Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* chromosome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال کار فوق را در نظر بگیرید : &lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 7) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
که (1, 3)  یک ژن را تشکیل می دهد. هرکدام از فعالیت ها یک ژن را تشکیل می دهند.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم :&lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 9) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
(J=2: (2, 8) (3, 5) (5, 9) (6, 5) (1, 10) (4, 4&lt;br /&gt;
&lt;br /&gt;
(J=3: (3, 5) (4, 4) (6, 8) (1, 9) (2, 1) (5, 7&lt;br /&gt;
&lt;br /&gt;
(J=4: (2, 5) (1, 5) (3, 5) (4, 3) (5, 8) (6, 7&lt;br /&gt;
&lt;br /&gt;
(J=5: (3, 9)  (2, 3)  (5, 5) (6, 4) (1, 2) (4, 1&lt;br /&gt;
&lt;br /&gt;
(J=6: (2, 3) (4, 3) (6, 8) (1, 10) (5, 4) (3, 1&lt;br /&gt;
&lt;br /&gt;
این هر کدام از این شش کار از شش فعالیت تشکیل شده اند. یعنی در اینجا شش کروموزوم وجود دارد. یکی&lt;br /&gt;
&lt;br /&gt;
به نام های کروموزوم  1=J تا مروموزوم 6=J.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=908</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=908"/>
		<updated>2014-08-11T03:00:17Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* gene */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال کار فوق را در نظر بگیرید : &lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 7) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
که (1, 3)  یک ژن را تشکیل می دهد. هرکدام از فعالیت ها یک ژن را تشکیل می دهند.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم :&lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 9) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
(J=2: (2, 8) (3, 5) (5, 9) (6, 5) (1, 10) (4, 4&lt;br /&gt;
&lt;br /&gt;
(J=3: (3, 5) (4, 4) (6, 8) (1, 9) (2, 1) (5, 7&lt;br /&gt;
&lt;br /&gt;
(J=4: (2, 5) (1, 5) (3, 5) (4, 3) (5, 8) (6, 7&lt;br /&gt;
&lt;br /&gt;
(J=5: (3, 9)  (2, 3)  (5, 5) (6, 4) (1, 2) (4, 1&lt;br /&gt;
&lt;br /&gt;
(J=6: (2, 3) (4, 3) (6, 8) (1, 10) (5, 4) (3, 1&lt;br /&gt;
&lt;br /&gt;
این هر کدام از این شش کار از شش فعالیت تشکیل شده اند. یعنی در اینجا شش کروموزوم وجود دارد. یکی&lt;br /&gt;
&lt;br /&gt;
به نام های کروموزوم  1=J تا مروموزوم 6=J.  در اینجا شش کروموزوم داریم.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=907</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=907"/>
		<updated>2014-08-11T02:57:22Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* gene */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال فرض شود :&lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 7) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
که (1, 3)  یک ژن را تشکیل می دهد. هرکدام از فعالیت ها یک ژن را تشکیل می دهند.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم :&lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 9) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
(J=2: (2, 8) (3, 5) (5, 9) (6, 5) (1, 10) (4, 4&lt;br /&gt;
&lt;br /&gt;
(J=3: (3, 5) (4, 4) (6, 8) (1, 9) (2, 1) (5, 7&lt;br /&gt;
&lt;br /&gt;
(J=4: (2, 5) (1, 5) (3, 5) (4, 3) (5, 8) (6, 7&lt;br /&gt;
&lt;br /&gt;
(J=5: (3, 9)  (2, 3)  (5, 5) (6, 4) (1, 2) (4, 1&lt;br /&gt;
&lt;br /&gt;
(J=6: (2, 3) (4, 3) (6, 8) (1, 10) (5, 4) (3, 1&lt;br /&gt;
&lt;br /&gt;
این هر کدام از این شش کار از شش فعالیت تشکیل شده اند. یعنی در اینجا شش کروموزوم وجود دارد. یکی&lt;br /&gt;
&lt;br /&gt;
به نام های کروموزوم  1=J تا مروموزوم 6=J.  در اینجا شش کروموزوم داریم.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=906</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=906"/>
		<updated>2014-08-11T02:51:37Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* chromosome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
هر (mi,ti) را ما در اینجا یک ژن در نظر می گیریم. یعنی هر فعالیت کوچکی که در نهایت منجر به ایجاد کار می شود.این فعالیت های کوچک هر کدام یک ژن فرض می شود.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. به عنوان مثال فرض شود که شش کار داریم :&lt;br /&gt;
&lt;br /&gt;
(J=1: (3, 1)  (1, 3)  (2, 6) (4, 9) (6, 3) (5, 6&lt;br /&gt;
&lt;br /&gt;
(J=2: (2, 8) (3, 5) (5, 9) (6, 5) (1, 10) (4, 4&lt;br /&gt;
&lt;br /&gt;
(J=3: (3, 5) (4, 4) (6, 8) (1, 9) (2, 1) (5, 7&lt;br /&gt;
&lt;br /&gt;
(J=4: (2, 5) (1, 5) (3, 5) (4, 3) (5, 8) (6, 7&lt;br /&gt;
&lt;br /&gt;
(J=5: (3, 9)  (2, 3)  (5, 5) (6, 4) (1, 2) (4, 1&lt;br /&gt;
&lt;br /&gt;
(J=6: (2, 3) (4, 3) (6, 8) (1, 10) (5, 4) (3, 1&lt;br /&gt;
&lt;br /&gt;
این هر کدام از این شش کار از شش فعالیت تشکیل شده اند. یعنی در اینجا شش کروموزوم وجود دارد. یکی&lt;br /&gt;
&lt;br /&gt;
به نام های کروموزوم  1=J تا مروموزوم 6=J.  در اینجا شش کروموزوم داریم.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=881</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=881"/>
		<updated>2014-08-10T01:56:58Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* gene */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
هر (mi,ti) را ما در اینجا یک ژن در نظر می گیریم. یعنی هر فعالیت کوچکی که در نهایت منجر به ایجاد کار می شود.این فعالیت های کوچک هر کدام یک ژن فرض می شود.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. چیدمانی که (m,t) مربوط به یک کار ایجاد می کند. در اینجا منظور این است که هر کار از مجموعه ای از&lt;br /&gt;
(m1,t1)...(mj1,mjn) تشکیل شده است که این مجموعه با هم یک کروموزوم را تشکیل می دهد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=880</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=880"/>
		<updated>2014-08-10T01:51:03Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* chromosome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. چیدمانی که (m,t) مربوط به یک کار ایجاد می کند. در اینجا منظور این است که هر کار از مجموعه ای از&lt;br /&gt;
(m1,t1)...(mj1,mjn) تشکیل شده است که این مجموعه با هم یک کروموزوم را تشکیل می دهد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=879</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=879"/>
		<updated>2014-08-10T01:35:38Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* بررسی موردی در یک مساله زمان بندی */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین در &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. چیدمانی که (m,t) مربوط به یک کار ایجاد می کند، در مجموع &lt;br /&gt;
باعث می شود که کل کار انجام شود و می تواند آن را معادل کروموزوم در علم ژنتیک دانست.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=878</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=878"/>
		<updated>2014-08-10T01:34:28Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* بررسی موردی در یک مساله زمان بندی */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
دو نمونه زمان بندی را می توان به عنوان نمونه نام برد.مورد اول مساله مغازه و کار است که این مساله به این صورت تعریف می شود که n کار محدود و هر کار شامل مجموعه ای از فعالیت ها است و هر ماشین فقط یک فعالیت را در هر واحد زمانی پردازش نماید. هر فعالیتی نیاز است که روی یک ماشین هر &lt;br /&gt;
هر واحد زمانی پردازش شود و هرچه زمان پردازش کوتاهتر شود بهتر است. مورد دوم مساله مغازه و کار&lt;br /&gt;
باز است. این مساله همانند مساله مغازه و کار است با این تفاوت که تخصیص فعالیت ها به ماشین ها &lt;br /&gt;
به ترتیب انجام نمی شود.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. چیدمانی که (m,t) مربوط به یک کار ایجاد می کند، در مجموع &lt;br /&gt;
باعث می شود که کل کار انجام شود و می تواند آن را معادل کروموزوم در علم ژنتیک دانست.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=771</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=771"/>
		<updated>2014-08-04T06:07:48Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* fitness-function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. چیدمانی که (m,t) مربوط به یک کار ایجاد می کند، در مجموع &lt;br /&gt;
باعث می شود که کل کار انجام شود و می تواند آن را معادل کروموزوم در علم ژنتیک دانست.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
سازنده زمان بندی از معیاری برای انتخاب فعالیت ها استفاده می کند که این معیار  fitness-function نام دارد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=770</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=770"/>
		<updated>2014-08-04T06:04:46Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* selection-method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. چیدمانی که (m,t) مربوط به یک کار ایجاد می کند، در مجموع &lt;br /&gt;
باعث می شود که کل کار انجام شود و می تواند آن را معادل کروموزوم در علم ژنتیک دانست.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
در مبحث زمان بندی، معادل سازنده زمان بندی کارها است که مشخص می کند که کدام فعالیت در کجا و&lt;br /&gt;
چه مقدار واحد زمانی تخصیص داده شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت بندی کارها مورد نیاز است و بر پایه متد انتخابی مشخص می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=769</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=769"/>
		<updated>2014-08-04T06:01:41Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* mutation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. چیدمانی که (m,t) مربوط به یک کار ایجاد می کند، در مجموع &lt;br /&gt;
باعث می شود که کل کار انجام شود و می تواند آن را معادل کروموزوم در علم ژنتیک دانست.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود. فرض شود که ما دو کار و شش ماشین داشته باشیم، می تواند جهش به&lt;br /&gt;
صورتی اتقاق بیفتد که باعث ایجاد زمان بندی خاصی شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر نقش ایفا می کند.&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت بندی کارها مورد نیاز است و بر پایه متد انتخابی مشخص می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=768</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=768"/>
		<updated>2014-08-04T05:48:41Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* crossover */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. چیدمانی که (m,t) مربوط به یک کار ایجاد می کند، در مجموع &lt;br /&gt;
باعث می شود که کل کار انجام شود و می تواند آن را معادل کروموزوم در علم ژنتیک دانست.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی| مثالی از نوعی از زمان بندی]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر نقش ایفا می کند.&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت بندی کارها مورد نیاز است و بر پایه متد انتخابی مشخص می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=767</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=767"/>
		<updated>2014-08-04T05:46:42Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* crossover */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. چیدمانی که (m,t) مربوط به یک کار ایجاد می کند، در مجموع &lt;br /&gt;
باعث می شود که کل کار انجام شود و می تواند آن را معادل کروموزوم در علم ژنتیک دانست.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|انگشتی|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر نقش ایفا می کند.&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت بندی کارها مورد نیاز است و بر پایه متد انتخابی مشخص می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=766</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=766"/>
		<updated>2014-08-04T05:45:38Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* crossover */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. چیدمانی که (m,t) مربوط به یک کار ایجاد می کند، در مجموع &lt;br /&gt;
باعث می شود که کل کار انجام شود و می تواند آن را معادل کروموزوم در علم ژنتیک دانست.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.مثلأ به عنوان&lt;br /&gt;
مثال ما اگر دو کار و دو ماشین داشته باشیم زمان بندی ما می تواند به این صورت باشد.&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر نقش ایفا می کند.&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت بندی کارها مورد نیاز است و بر پایه متد انتخابی مشخص می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=765</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=765"/>
		<updated>2014-08-04T05:39:47Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* population */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. چیدمانی که (m,t) مربوط به یک کار ایجاد می کند، در مجموع &lt;br /&gt;
باعث می شود که کل کار انجام شود و می تواند آن را معادل کروموزوم در علم ژنتیک دانست.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که کارها و ماشین ها می توانند در کنار یکدیگر قرار &lt;br /&gt;
بگیرند. مثلأ اگر سه کار و سه ماشین داشته باشیم، حاصلضرب آنها برابر جمعیت در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر نقش ایفا می کند.&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت بندی کارها مورد نیاز است و بر پایه متد انتخابی مشخص می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=764</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=764"/>
		<updated>2014-08-04T05:35:14Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* chromosome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. چیدمانی که (m,t) مربوط به یک کار ایجاد می کند، در مجموع &lt;br /&gt;
باعث می شود که کل کار انجام شود و می تواند آن را معادل کروموزوم در علم ژنتیک دانست.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job*Nj)&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر نقش ایفا می کند.&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت بندی کارها مورد نیاز است و بر پایه متد انتخابی مشخص می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=763</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=763"/>
		<updated>2014-08-04T05:30:16Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* gene */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
در مبحث زمان بندی، ژن را می توان معادل (m,t) دانست. به عنوان مثال، چند کار مختلف داریم که &lt;br /&gt;
هر کدام به صورت (m,t) بیان می شوند که در اینجا m به معنی شماره ماشین و t به معنی مقدار واحد&lt;br /&gt;
زمانی که برای تخصیص دادن کار مورد نظر به آن اختصاص داده می شود. مثلأ اگر (3,1)=(j=1, (m,t باشد&lt;br /&gt;
به این معنی است که کار شماره یک به اندازه یک واحد زمانی به ماشین شماره سه تخصیص داده شده است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job*Nj)&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر نقش ایفا می کند.&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت بندی کارها مورد نیاز است و بر پایه متد انتخابی مشخص می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=757</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=757"/>
		<updated>2014-08-02T11:50:49Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* fitness-function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job*Nj)&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر نقش ایفا می کند.&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت بندی کارها مورد نیاز است و بر پایه متد انتخابی مشخص می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=756</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=756"/>
		<updated>2014-08-02T11:48:26Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* selection-method */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job*Nj)&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر نقش ایفا می کند.&lt;br /&gt;
=== fitness-function ===&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=755</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=755"/>
		<updated>2014-08-02T11:46:26Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* mutation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job*Nj)&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=754</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=754"/>
		<updated>2014-08-02T11:46:06Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* mutation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job*Nj)&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که بر روی کروموزوم ایجاد می شود باعث می شود که ترتیب انجام فعالیت ها عوض شده و در نهایت &lt;br /&gt;
منجر به زمان بندی خاصی می شود.&lt;br /&gt;
=== selection-method ===&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=753</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=753"/>
		<updated>2014-08-02T11:40:09Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* crossover */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job*Nj)&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.&lt;br /&gt;
=== mutation ===&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=752</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=752"/>
		<updated>2014-08-02T11:39:33Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* crossover */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job*Nj)&lt;br /&gt;
=== crossover ===&lt;br /&gt;
بر مبنای نوع خاصی از انواع crossover که وجود دارد که ما آن را معین می کنیم، باعث به وجود آمدن &lt;br /&gt;
زمان بندی خاصی می شود. معادل چیدمان خاصی است که زمان بندی خاصی را به وجود می آورد.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=751</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=751"/>
		<updated>2014-08-02T11:35:06Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* population */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job*Nj)&lt;br /&gt;
=== crossover ===&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=750</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=750"/>
		<updated>2014-08-02T11:33:43Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* population */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job*Nj)&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=749</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=749"/>
		<updated>2014-08-02T11:32:42Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* population */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job)*(Nj&amp;gt;)&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=748</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=748"/>
		<updated>2014-08-02T11:31:39Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* population */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job)*(&amp;lt;sub&amp;gt;Nj&amp;lt;/sub&amp;gt;)&lt;br /&gt;
&amp;lt;sup&amp;gt;22&amp;lt;/sup&amp;gt;&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=747</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=747"/>
		<updated>2014-08-02T11:27:17Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* population */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;br /&gt;
در بحث زمان بندی، برابر است با تعداد حالاتی که می توانند کارها و فعالیت ها در کنار یکدیگر قرار&lt;br /&gt;
بگیرند. یا به عبارت دیگر برابر است با (job)*(&amp;lt;sub&amp;gt;Nj&amp;lt;/sub&amp;gt;)&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=746</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=746"/>
		<updated>2014-08-02T11:21:23Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* chromosome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
=== population ===&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=745</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=745"/>
		<updated>2014-08-02T11:19:08Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* chromosome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=744</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=744"/>
		<updated>2014-08-02T11:17:34Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* gene */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
== chromosome ==&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
برشی است که بر روی رشته ای از کارها ایجاد می شودو باعث می شود زمان بندی خاصی به وجود آید.&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی است که بر روی رشته ای از کارها ایجاد می شود یعنی وقتی گفته می شود به جای یک کار، کار دیگری&lt;br /&gt;
انجام شود خود آن باعث ایجاد زمان بندی جدیدی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت کارها در نظر گرفته می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=743</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=743"/>
		<updated>2014-08-02T11:16:32Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* population */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
 === chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
&lt;br /&gt;
== chromosome ==&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
برشی است که بر روی رشته ای از کارها ایجاد می شودو باعث می شود زمان بندی خاصی به وجود آید.&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی است که بر روی رشته ای از کارها ایجاد می شود یعنی وقتی گفته می شود به جای یک کار، کار دیگری&lt;br /&gt;
انجام شود خود آن باعث ایجاد زمان بندی جدیدی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت کارها در نظر گرفته می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=742</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=742"/>
		<updated>2014-08-02T11:15:01Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* chromosome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
 === chromosome ===&lt;br /&gt;
معادل انواع مختلف زمان بندی است. هر چیدمانی که صفرها و یک ها در کنار یکدیگر ایجاد می کنند به معنی &lt;br /&gt;
نوع خاصی از زمان بندی که معادل کروموزوم در علم ژنتیک است. ما به تعداد (تعداد فعالیت ها*کار) نوع زمان بندی داریم.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در یک مساله زمان بندی جمعیت را می توان معادل تمام کارهای بزرگ که باید انجام شود در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
برشی است که بر روی رشته ای از کارها ایجاد می شودو باعث می شود زمان بندی خاصی به وجود آید.&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی است که بر روی رشته ای از کارها ایجاد می شود یعنی وقتی گفته می شود به جای یک کار، کار دیگری&lt;br /&gt;
انجام شود خود آن باعث ایجاد زمان بندی جدیدی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت کارها در نظر گرفته می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=741</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=741"/>
		<updated>2014-08-02T11:07:30Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* gene */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها باعث ایجاد جایگشت های متفاوتی می شود. شاید بتوان هر کدام از فعالیت ها که ما آن را در کروموزوم با صفر و یک نشان می دهیم معادلی برای ژن در بحث زمان بندی دانست. یا به عبارت دیگر هر کدام از فعالیت ها در بحث زمان بندی معادل یک ژن در بحث ژنتیک است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
مجموعه یا رشته ای از صفر و یک ها یک کار بزرگ را تشکیل می دهند. اگر کارهای کوچک انجام نشود به این معنی است که هر کدام از صفر ویک ها انجام نشده و انجام شدن کار بزرگ امکان پذیر نیست. به نوعی انجام شدن کار بزرگ به انجام شدن کارهای کوچک وابسته است.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در یک مساله زمان بندی جمعیت را می توان معادل تمام کارهای بزرگ که باید انجام شود در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
برشی است که بر روی رشته ای از کارها ایجاد می شودو باعث می شود زمان بندی خاصی به وجود آید.&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی است که بر روی رشته ای از کارها ایجاد می شود یعنی وقتی گفته می شود به جای یک کار، کار دیگری&lt;br /&gt;
انجام شود خود آن باعث ایجاد زمان بندی جدیدی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت کارها در نظر گرفته می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=740</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=740"/>
		<updated>2014-08-02T10:54:44Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* genotype */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته می شود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها به معنی کارهای کوچک هستند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
مجموعه یا رشته ای از صفر و یک ها یک کار بزرگ را تشکیل می دهند. اگر کارهای کوچک انجام نشود به این معنی است که هر کدام از صفر ویک ها انجام نشده و انجام شدن کار بزرگ امکان پذیر نیست. به نوعی انجام شدن کار بزرگ به انجام شدن کارهای کوچک وابسته است.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در یک مساله زمان بندی جمعیت را می توان معادل تمام کارهای بزرگ که باید انجام شود در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
برشی است که بر روی رشته ای از کارها ایجاد می شودو باعث می شود زمان بندی خاصی به وجود آید.&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی است که بر روی رشته ای از کارها ایجاد می شود یعنی وقتی گفته می شود به جای یک کار، کار دیگری&lt;br /&gt;
انجام شود خود آن باعث ایجاد زمان بندی جدیدی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت کارها در نظر گرفته می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=739</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=739"/>
		<updated>2014-08-02T10:53:22Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* genotype */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فنوتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنوتایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته میشود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها به معنی کارهای کوچک هستند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
مجموعه یا رشته ای از صفر و یک ها یک کار بزرگ را تشکیل می دهند. اگر کارهای کوچک انجام نشود به این معنی است که هر کدام از صفر ویک ها انجام نشده و انجام شدن کار بزرگ امکان پذیر نیست. به نوعی انجام شدن کار بزرگ به انجام شدن کارهای کوچک وابسته است.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در یک مساله زمان بندی جمعیت را می توان معادل تمام کارهای بزرگ که باید انجام شود در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
برشی است که بر روی رشته ای از کارها ایجاد می شودو باعث می شود زمان بندی خاصی به وجود آید.&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی است که بر روی رشته ای از کارها ایجاد می شود یعنی وقتی گفته می شود به جای یک کار، کار دیگری&lt;br /&gt;
انجام شود خود آن باعث ایجاد زمان بندی جدیدی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت کارها در نظر گرفته می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=738</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=738"/>
		<updated>2014-08-02T06:29:57Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* crossover */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فناتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته میشود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها به معنی کارهای کوچک هستند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
مجموعه یا رشته ای از صفر و یک ها یک کار بزرگ را تشکیل می دهند. اگر کارهای کوچک انجام نشود به این معنی است که هر کدام از صفر ویک ها انجام نشده و انجام شدن کار بزرگ امکان پذیر نیست. به نوعی انجام شدن کار بزرگ به انجام شدن کارهای کوچک وابسته است.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در یک مساله زمان بندی جمعیت را می توان معادل تمام کارهای بزرگ که باید انجام شود در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
برشی است که بر روی رشته ای از کارها ایجاد می شودو باعث می شود زمان بندی خاصی به وجود آید.&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی است که بر روی رشته ای از کارها ایجاد می شود یعنی وقتی گفته می شود به جای یک کار، کار دیگری&lt;br /&gt;
انجام شود خود آن باعث ایجاد زمان بندی جدیدی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت کارها در نظر گرفته می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=737</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=737"/>
		<updated>2014-08-02T06:28:44Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* crossover */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فناتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-Point_Crossover.png|وسط|مثالی از One-Point Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته میشود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها به معنی کارهای کوچک هستند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
مجموعه یا رشته ای از صفر و یک ها یک کار بزرگ را تشکیل می دهند. اگر کارهای کوچک انجام نشود به این معنی است که هر کدام از صفر ویک ها انجام نشده و انجام شدن کار بزرگ امکان پذیر نیست. به نوعی انجام شدن کار بزرگ به انجام شدن کارهای کوچک وابسته است.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در یک مساله زمان بندی جمعیت را می توان معادل تمام کارهای بزرگ که باید انجام شود در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
برشی است که بر روی رشته ای از کارها ایجاد می شودو باعث می شود زمان بندی خاصی به وجود آید.&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی است که بر روی رشته ای از کارها ایجاد می شود یعنی وقتی گفته می شود به جای یک کار، کار دیگری&lt;br /&gt;
انجام شود خود آن باعث ایجاد زمان بندی جدیدی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت کارها در نظر گرفته می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=736</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=736"/>
		<updated>2014-08-02T06:25:29Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* crossover */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فناتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته میشود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها به معنی کارهای کوچک هستند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
مجموعه یا رشته ای از صفر و یک ها یک کار بزرگ را تشکیل می دهند. اگر کارهای کوچک انجام نشود به این معنی است که هر کدام از صفر ویک ها انجام نشده و انجام شدن کار بزرگ امکان پذیر نیست. به نوعی انجام شدن کار بزرگ به انجام شدن کارهای کوچک وابسته است.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در یک مساله زمان بندی جمعیت را می توان معادل تمام کارهای بزرگ که باید انجام شود در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
برشی است که بر روی رشته ای از کارها ایجاد می شودو باعث می شود زمان بندی خاصی به وجود آید.&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی است که بر روی رشته ای از کارها ایجاد می شود یعنی وقتی گفته می شود به جای یک کار، کار دیگری&lt;br /&gt;
انجام شود خود آن باعث ایجاد زمان بندی جدیدی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت کارها در نظر گرفته می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=735</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=735"/>
		<updated>2014-08-02T06:24:13Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* crossover */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فناتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
[[پرونده: One-PointCrossover.png|انگشتی|مثالی از One-PointCrossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته میشود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها به معنی کارهای کوچک هستند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
مجموعه یا رشته ای از صفر و یک ها یک کار بزرگ را تشکیل می دهند. اگر کارهای کوچک انجام نشود به این معنی است که هر کدام از صفر ویک ها انجام نشده و انجام شدن کار بزرگ امکان پذیر نیست. به نوعی انجام شدن کار بزرگ به انجام شدن کارهای کوچک وابسته است.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در یک مساله زمان بندی جمعیت را می توان معادل تمام کارهای بزرگ که باید انجام شود در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
برشی است که بر روی رشته ای از کارها ایجاد می شودو باعث می شود زمان بندی خاصی به وجود آید.&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی است که بر روی رشته ای از کارها ایجاد می شود یعنی وقتی گفته می شود به جای یک کار، کار دیگری&lt;br /&gt;
انجام شود خود آن باعث ایجاد زمان بندی جدیدی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت کارها در نظر گرفته می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
	<entry>
		<id>http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=734</id>
		<title>کاربر:FundamentalGeneticAlgorithm</title>
		<link rel="alternate" type="text/html" href="http://wiki.occc.ir/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:FundamentalGeneticAlgorithm&amp;diff=734"/>
		<updated>2014-08-02T06:21:42Z</updated>

		<summary type="html">&lt;p&gt;FundamentalGeneticAlgorithm: /* mutation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مفاهیم بنیادین در علم ژنتیک ==&lt;br /&gt;
&lt;br /&gt;
به طور کلی الگوریتم ژنتیک از یک سری مفاهیم پایه و کلی تشکیل شده است که عبارتند از :&lt;br /&gt;
* phenotype&lt;br /&gt;
*genotype&lt;br /&gt;
* gene&lt;br /&gt;
* chromosome&lt;br /&gt;
*population&lt;br /&gt;
*crossover&lt;br /&gt;
*mutation&lt;br /&gt;
*selection method&lt;br /&gt;
* fitness function&lt;br /&gt;
که هر کدام از این مفاهیم توضیح داده می شود.&lt;br /&gt;
&lt;br /&gt;
===phenotype ===&lt;br /&gt;
این پارامتر در بیولوژی و در زیست شناسی، ساختار کلی اعضای موجود زنده را مشخص &lt;br /&gt;
می کند.به عنوان مثال می توان به هر کدام از اعضای بدن انسان اشاره کرد.&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
این پارامتر در علم زیست شناسی، خواص ژنتیک تشکیل دهنده موجود زنده را شامل میشود. در شکل زیر نمونه ای از ژنوتایپ و فناتایپ معادل هم را در یک نمونه مربوط به زیست شناسی و یک نمونه مربوط به مساله زمان بندی فعالیت ها مشاهده میکنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:Genotype phenotype.jpg|وسط|نمونه ژنوتایپ و فنایپ متناظر با هم]]&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
ژن در واقع کوچکترین ساختاری که تشکیل دهنده موجود زنده است.ژن در علوم کامپیوتر معادل صفر و یک اعداد باینری است.&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
به مجموعه ای از ژن ها کروموزوم گفته می شود. کروموزوم را در علوم کامپیوتر معادل رشته ای از اعداد باینری می توان به حساب آورد.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در علم ژنتیک، جمعیتی که نمونه گیری از آن صورت می گیرد را نشان می دهد. در علوم کامپیوتر جمعیت را می توان معادل رشته های باینری که مورد بررسی قرار می گیرد در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
دو پارامترمهم عبارتند از  پارامترهای crossover و mutation.پارامتر crossover انواع مختلفی دارد.یکی از مهمترین آنها one point crossover نام دارد.به این معنی که برای هر کروموزومی که به عنوان parent ایجاد شده است یک برش به صورت تصادفی ایجاد می گرددو فرزند جدید شامل قسمت ابتدایی کروموزوم از parent اول و قسمت انتهایی از parent دوم را در بر می گیرد. نوع دیگری از crossover را می توان uniform crossover را نام برد. به این معنی که فرزندی که ایجاد می شود به صورت کاملأ تصادفی یا از کروموزوم های parent اول و یا از کروموزوم های parent دوم ایجاد می شود.&lt;br /&gt;
[[پرونده: Uniform-Crossover.png|وسط|مثالی از Uniform-Crossover]]&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی که به صورت تصادفی ایجاد شد و در نتیجه فرزند جدید به وجود می آید. مثلأ در علوم کامپیوتر ممکن است یک رقم صفر یا یک رقم یک باینری جابجا شود.&lt;br /&gt;
[[پرونده:Mutation.png|وسط|مثالی از Mutation]]&lt;br /&gt;
&lt;br /&gt;
=== selection method ===&lt;br /&gt;
متدی است که برای اینکه تابع شایستگی انجام شود، مورد استفاده قرار می گیرد. به عنوان مثال اگر از روش Tournament استفاده شود به این معنی است که پس از چند بار مسابقه، آن کروموزوم هایی که مقدار تابع شایستگی بیشتری دارند، به عنوان فرزند برای نسل بعدی انتخاب می شود. به عنوان مثال در علوم کامپیوتر، اگر چندین بار رشته های اعداد باینری به صورت جدا از هم به عنوان چندین parents ایجاد شده با شند، یک معیار سنجش بهینگی برای انتخاب بعدی برای هر یک از رشته های ایجاد شده وجود دارد به نام تابع شایستگی. هر کدام از رشته های ایجادشده که مقدار این تابع مقدار بیشتری داشته باشد، برای نسل بعدی انتخاب می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness function ===&lt;br /&gt;
بر پایه متد انتخابی، مقدار آن معین می شود.&lt;br /&gt;
&lt;br /&gt;
== بررسی موردی در یک مساله زمان بندی ==&lt;br /&gt;
&lt;br /&gt;
اگر بخواهیم در یک مساله زمان بندی بر پایه و مبنای الگوریتم ژنتیک بحث کنیم شاید بهتر باشد که ابتدا &lt;br /&gt;
یک تعریف کوتاهی از زمان بندی داشته باشیم. زمان بندی به طور خلاصه تخصیص دادن کارها به ماشین ها&lt;br /&gt;
به گونه ای که هرکدام از ماشین ها در هر واحد زمانی کاری را انجام داده و کار تکراری نداشته باشیم و &lt;br /&gt;
از تمام ماشین ها حداکثر استفاده به عمل آید.&lt;br /&gt;
&lt;br /&gt;
'''شرح مساله''': مساله زمان بندی منابع به این شکل تعریف میشود که مثلا N کار داریم که قرار است روی M ماشین انجام شود. هر کار از یک سری فعالیت تشکیل شده است. هر نوع فعالیت روی یک نوع ماشین خاص قابل انجام است و بین ترتیب انجام فعالیت های هر کار وابستگی وجود دارد که باید رعایت شود. در این مساله میبایست بهینه ترین حالت ممکن انجام این N کار روی M ماشین پیدا شود بطوریکه زمان انجام نهایی کل کارها مینیمم گردد. &lt;br /&gt;
معادل پارامترهای الگوریتم ژنتیک را در این مساله زمان بندی به این صورت میتوان تعریف کرد:&lt;br /&gt;
&lt;br /&gt;
=== phenotype ===&lt;br /&gt;
معادل خود مساله زمان بندی است. شکل نمایش این مساله معمولا بصورت گانت چارت می باشد. ترتیب انجام فعالیت های یک پروژه یا توجه به منابع و یا ترتیب انجام کارها در یک کارخانه با توجه به منابع موجود میتواند نمونه هایی از این مساله باشد. مثلا در شکل مقابل، بازنمایی یک نمونه زمان بندی با 10 وظیفه بر روی 10 ماشین را با شرحی که قبلا داده شد مشاهده می کنید.&lt;br /&gt;
&lt;br /&gt;
[[پرونده:JSSP.jpg|چپ|بندانگشتی|بازنمایی یک نمونه زمان بندی شامل 10 وظیفه بر روی 10 ماشین]]&lt;br /&gt;
&lt;br /&gt;
=== genotype ===&lt;br /&gt;
معادل بازنمایی کار مورد نظر در فضای مدل سازی بصورت ژنتیک گفته میشود. براي اینکار ابتدا نیاز داریم شکل مناسب بازنمایی مساله را بصورت یک کروموزوم ارائه نماییم. &lt;br /&gt;
اگر مجموعه کارها را بصورت مجموعه J فرض کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
J = {0,1,2,...}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و هر کار j از این مجموعه شامل Nj فعالیت باشد، بنابراین یک نمونه کروموزوم براي حالت J=2 و N0=N1=3 را میتوان بصورت زیر نمایش داد، که در آن هر بار تکرار شماره j در کروموزوم نشان دهنده انجام یکی از فعالیت هاي آن کار به ترتیب مشخص شده در Nj می باشد. مثلا k امین تکرار کار j نشان دهنده انجام k امین فعالیت j است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
[0, 0, 1, 1, 0, 1]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که طبق این کروموزوم، اولین فعالیت مربوط به کار شماره صفر ابتدا می آید، سپس دومین فعالیت آن انجام می شود، بعد سراغ اولین و دومین فعالیت کار یک می رود و به همین ترتیب ادامه پیدا می کند. این بازنمایی باعث می شود که هر جایگشتی بین ژن ها، منجر به یک زمان بندي معتبر گردد.&lt;br /&gt;
&lt;br /&gt;
=== gene ===&lt;br /&gt;
هر کدام از صفر و یک ها به معنی کارهای کوچک هستند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== chromosome ===&lt;br /&gt;
مجموعه یا رشته ای از صفر و یک ها یک کار بزرگ را تشکیل می دهند. اگر کارهای کوچک انجام نشود به این معنی است که هر کدام از صفر ویک ها انجام نشده و انجام شدن کار بزرگ امکان پذیر نیست. به نوعی انجام شدن کار بزرگ به انجام شدن کارهای کوچک وابسته است.&lt;br /&gt;
&lt;br /&gt;
=== population ===&lt;br /&gt;
در یک مساله زمان بندی جمعیت را می توان معادل تمام کارهای بزرگ که باید انجام شود در نظر گرفت.&lt;br /&gt;
&lt;br /&gt;
=== crossover ===&lt;br /&gt;
برشی است که بر روی رشته ای از کارها ایجاد می شودو باعث می شود زمان بندی خاصی به وجود آید.&lt;br /&gt;
&lt;br /&gt;
=== mutation ===&lt;br /&gt;
جهشی است که بر روی رشته ای از کارها ایجاد می شود یعنی وقتی گفته می شود به جای یک کار، کار دیگری&lt;br /&gt;
انجام شود خود آن باعث ایجاد زمان بندی جدیدی می شود.&lt;br /&gt;
&lt;br /&gt;
=== selection-method ===&lt;br /&gt;
متدی است که در اولویت بندی کارها به ماشین مورد نظر در نظر گرفته می شود.&lt;br /&gt;
&lt;br /&gt;
=== fitness-function ===&lt;br /&gt;
معیاری است که برای اولویت کارها در نظر گرفته می شود.&lt;/div&gt;</summary>
		<author><name>FundamentalGeneticAlgorithm</name></author>
	</entry>
</feed>