تبليغاتX
الگوریتم ژنتیک

الگوریتم ژنتیک

وبلاگی برای من

مقاله چین

سلام

امروز مقاله مون در چین پذیرفته شد و من اول خوشحال بودم ولی بعد که به هزینه رفت و برگشت هتل غذا هزینه خود کنفرانس فکر کردم وتازه فقط مسئله هزینه نیس که مسئله سربازی هم هس روند عجیب غریب نظام وظیفه بدبختی اینه که من تا تا 5 روز دیگه اعزام میشم می گن احتمالا یزد باشه  حالم بدجور گرفته شد . کلی تلاش کن آخرش یه مقاله بشه بعد به جای تشویق بایستی کلی بدبختی برای مراحل بعدیش بکشی .

خدا آخر عاقبت همه مون رو بخیر کنه

رفقا اگه نظر ندین شاید بی خیال بقیه مطالب بشم دوستانی که به بحث محاسبات زیستی ... علاقمند هستند لطفا وارد بحث بشن یعنی نظر شون رو در مورد مطالب بدن تا من هم بتونم  با کیفیت بهتری بحث رو ادامه بدم

+ نوشته شده در  سه شنبه بیست و نهم خرداد 1386ساعت 10:11  توسط محسن سیدکاظمی  | 

به نام خدا

سلام

و اما بعد

            شهادت حضرت فاطمه زهرا را بر همه عزیزان تسلیت عرض می کنم

     وفات حضرت آیت الله فاضل لنکرانی را بر همه عزیزان تسلیت عرض می کنم

+ نوشته شده در  دوشنبه بیست و هشتم خرداد 1386ساعت 18:45  توسط محسن سیدکاظمی  | 

ترجمه بعضی از متن ها

ترجمه بعضی از متن ها ممکن چندان جالب نباشه بعضی از کارها رو سه چهار سال قبل انجام دادم

ولی کلا فکر کنم قابل استفاده باشه 

در مورد عکس ها هم باید بگم اگر بالانمیان   بعد بالا امدن کامل وبلاگ راست کلیک کنید و شو پیکچر بزنید درس می شه انشاا.. البته اگه نشد برینhttp://seyedkazemi.blogspot.com

 

+ نوشته شده در  پنجشنبه بیست و چهارم خرداد 1386ساعت 14:14  توسط محسن سیدکاظمی  | 

DNA Computing on the Minimum Spanning Tree Problem

به نام خدا

چکیده مطالب

Leonard M.adleman آزمایش هایی در سال 1994 انجام دادو ثابت کرد که می توان ا ز DNA computing استفاده کرد در حل(direct Hamiltonain path) که یکی از  مسایل معروف NP-camplete problems در علم کامپیوتر است.

این مقاله شرح می دهد روشی را درDNA computing  برای حل مسالهء ((The minimum spanning tree  (مینیممدرخت گسترده).برای به کار بردن این روش باید مجموعهء شهرها کدگذاری شود در

رشته های منفرد  20-mer آلگونکلوتیدی(oligonucleotide) .

حالا فواصل متغیره راه ها بایدرمزگذاری شود در فواصل متفاوت در رشته های آلگونکلوتیدی با دو قسمت   10-mer  ی چسپیده به انتهاها با کدگذاری متناظر راه ها.

بعد از مراحل بعدی مانند:پیوندزنی(هیبرید شدگیhybridization).انعقاد ligation .تقویت بسط توسعه amplification  . بایدDNA  متناوب رمزگذاری شده مسله minimum spanning tree باید تصویه شود و متناوب شود ازباند شامل کوتاهترین طول DNA در ژل الکتروفرسیس   ( حرکت ذرات معلق مایع بوسیله نیروی برق) (electrophoresis) .

لغات کلیدی: DNA computing Hamiltonian path problem minimum spanning tree problem

مقدمه

محاسبات DNA اطلاق می شود به خط مشی DNA  برای محاسبه به وسیله تکنیک های زیست مولکولی برای: کد گذاری اطلاعات وتولید بالقوه راه حل ها و انتخاب وتشخیص درست راه حل.

آدلمان انجام داد آزمایش های پیشگامانه ای در سال 1994 برای ثابت کردن اینکه DNA computing میتواند مورد استفاده قرار گیرد در حل مسله راه مستقیم همیلتون direct Hamiltonian path این مسله اولین بار پیشنهاد شد توسط William Rowan Hamilton 1805-1865 این مسله یک مسله معروف NP-complete  است و به نظر می رسد که وجود ندارد الگوریتم کارایی برای حل این مسله در چند جمله ای های زمانی.

مسله راه همیلتون را می توان به صورت زیر  توصیف کرد:

مجموعه ی مفروض شهرها را با نقاط شروع و پایان  و راه های ارتباطی بین انها در نظر می گیریم . ایا ممکن است که با عبور فقط یک بار از هر شهری از  همه انها عبور کرد؟

قرارداد ادلمان  به این صورت است که :شهرها کد گذاری شود با رشته های منفرد 20-mer الگونکلوتیدی به صورت متمایز( یعنی کد شهرها منحصر به فرد باشد) وراه بین شهرها در رشته های 20-mer الگونکلوتیدی با تناوب تکمیل کنند برای نصف تناوب ارتباط شهرها.

تناوب DNA کدگذاری می کند همه راه حل های بالقوه ای که می تواند تولید شود از پیوند زنی الگونکلوتیدها به نمایندگی شهر ها وراه ها.

بعد از انعقاد پیوند زنی الگونکلوتیدها.تناوب DNA که شروع می شود وپایان می یابد درست در شهرها می تواند تقویت شود  به وسیله PCR polymerase chain reaction با استرهای primers مخصوص.

سپس محصولات PCR می توانند به صورت متناوب  خالص شوند در میان سیستم biotin-avidin magnetic beads به وسیله هر نماینده الگونکلوتیدی در میان شهرها.

تناوب DNA با طول های درست می توانند خالص سازی ژلی gel-purified شود بعد از کار کردن gel electrophoresis.

ترتیب دهی تصویه DNA با طول درست اشکار خواهد کرد جزئیات مسیررا.

عملکرد رله های محاسباتیDNA در منطق هیبریدی (پیوندی) :

توانایی کدگذاری و حل مسائل محاسباتی به وسیله درست جفت کردن و جلوگیری از اشتباه پایه گذاری جفت ها.

به علت اینکه پیوند زنی DNAوابسته است به محاسبات موازی زیادی از ان انتظار می رود که بسیا عالی تر باشد از کامپیوترهای بیس سلیکونی.

مقایسه کامپیوتر های  سیلیکونی متعارف با DNA computing  :

محاسبات سخت افزاریی مبنی بر مواد سیلیکونی – کد گذاری باینری- منطق بولی- وپردازش سریالی

DNA computing   مشخصات متمایزی دارد مثل محاسبات سخت افزاری مبنی بر ملکول های DNA- کد گذاری چهار گانه (کواترنری)-

 

[i.e. A(Adenine) T(Thymine) G(Guanine) C(Cytosine)]

منطق هیبریدی- محاسبات موازی – و غیره....

در طول چند سال گذشته محاسبات DNA پیشنهاد شده برای حل مسائل مثل: مسله راه  همیلتون – مسله حداکثر مجموعه max  - مسله سوارکار – ساختن جمع اعداد صحیح – برای شکستگی اطلاعات پنهان شده استاندارد متعارف (DES) 3-SAT problem   متغییر-20 – و در مسله کوتاهترین راه مسافرت فروشنده – و غیره...

این مقاله توضیح می دهد شیوه ی  محاسبات DNA شبیه قرار داد ادلمان در حل مسله مینیم گستردگی درخت .

قرار داد اصلی ادلمان مطرح شده بود برای یافتن راه در مسله راه درست همیلتون. بنابراین پارامترفاصله بین شهرها مورد ملاحضه نبود .

ما پیشنهاد می کنیم به الحاق کردن قطعه از جفت رشته های الگونکلوتیدی به نمایندگی از فاصله بین شهر ها  در رمزگذاری الگو نکلوتیدها ارتباط بین شهر ها.

 بعد از این تغییر اصلاحی در شکل محاسبات الگونکلوتیدی. قرار داد ادلمان می تواند مورد استفاده قرار گیرد در حل مسله ی کمترین گستردگی درخت.

2- دور نما( زمینه) (معلومات قبلی)  

مسله کوچکترین درخت گسترده  :

مسله ی کوچکترین درخت را می توان توضیح داد به صورت ساده به شرح زیر:

 فرض می کنیم مجموعه ای از شهرها را که همه شهرها مر تبط شده اند در درخت گسترده ای (درختی گسترده است که در گراف ان مرتبط شود همه شهرها به هم بدون اینکه گردشی (چرخشی) باشد) به این صورت که همه ی فاصله های درخت گسترده کوچکترین حالت شود.

شیوه مبنی است بر انتقال مستقیم برای پیدا کردن همه ی امکان های درخت گسترده و معیین ساختن همه طول ها.

بعد از مقایسه همهء براوردارزش ها کوچکترین درخت گسترده را می شود پیدا کرد.

با وجود این، این روش می تواند بسیار جامع باشد از انجایی که حالت های ممکن درخت گسترده تمایل دارد به افزایش زیاد همراه با افزایش در خصوص تعداد شهرها.

گراف مخصوص مضطرب در این مقاله نشان داده شده در تصویر  1-A 

و کوچکترین درخت گسترده برای مجموعه ی شهرها داده شده در شکل 1-B ما یازده شهر به عنوان مدل ومجموعه فاصله های بین شهرها را بطور قرار دادی انتخاب می کنیم .

الگوریتم برای مسله ی کوچکترین درخت گسترده :

مرحله اول : ساختن و تولید کردن راه های رندوم در میان گراف

مرحله دوم : نگه داشتن فقط مسیر هایی که عبور می کنند از همه شهرهای گراف فقط یکبار

مرحله سوم : پیدا کردن کوچکترین درخت گسترده

3- انجام الگوریتم .

3-1- کدگذاری طرح نقشه.

 شکل 2 تصویر کدگذاری درDNA است. ماکدگذاری می کنیم شهرهارا در رشته های منفرد 20-mer ی منحصربه فرد (شکل2-A ) الان متغییر فاصله های راه می تواند کد گذاری شود با فاصله های مختلف به وسیله ی رشته های جفت شده ی الگونکلوتیدی با دو برامدگی کد گذاری شده 10-mer  متناظر با راه که به انتها چسپیده شده است (شکل2-B).

برای مثال فاصله بین شهر های 3 و4 در مجموعه 10 بود بنابراین ما کد گذاری میکنیم 10-bp رشته جفت شده DNA  به نمایندگی فاصله ی  بخش (اینجا،ما تعریف می کنیم    1-bpرشته جفت شده   DNAبرای یک فاصله واحد) درازترین فاصله ما بین شهرها  کد گذاری می شود با درازترین طول رشته یجفت شده DNA.

علاوه بر این قسمت ذکر شده دوتا رشته 10-mer اضافی چسپیده به انتهاهای کدهای متناظر راه برای کدگذاری ما بین شهرها در ملکول DNA  خواهد بود.

برای هر راه مابین  شهرهای i to j رشته جفت شده  DNA  با دو بر جستگی چسپیده به انتها هامی تواند تولید شود به وسیله ی پیوند زن دو تا رشته الگونکلوتیدها:

یکی برای اینکه نماینده فاصله قطعه و نیز دیگری که شامل 3 تا 10-mer از Oi ( oligonucleotide i ) که دنبال شده به وسیله فاصله قطعه و 5 تا 10-mer از Oj

پیاده سازی :

برای پیاده سازیمرحله اول از الگوریتم همه الگونکلوتیدها کد گذاری می شوند  از اطلاعات شهر ها و راه ها (شامل فاصله ها ) .

برای  هر راه Oij ،الگونکلوتید سرویس میدهد به عنوان تراشه ای که به وجود می اورد اتحاد الگو نکلوتیدها را در جهت شهرهای مجاور با هم  برای بسته شدن (انعقاد) تصویر  .(2-c)

از این رو واکنش انعقاد نتیجه می دهد در شکل دادن از مبدا کد گذاری رندوم مولکولی DNA راه ها .پس محصول مرحله یک تقویت می شود توسط PCR استفاده شده اولیه همگانی.

بنا براین ،نمونه    DNAمی تواند تقویت شود .برای اجرا کردن مرحله دوم از الگوریتم محصول مرحله اول باید متناوبا خالص شود میان biotion-avidin magnetic beads  system 

با هر الگونکلوتید نماینده شهرهای در میان امده.فقط رشته منفرد مولکول DNA مکمل همه تناوبها کد گذاری شهرها باید نگه داری شود .

برای اجرای مرحله سوم الگوریتم محصول مرحله دوم باید تقویت شود توسط PCR و جدا شود توسط ژل الکتروفورسیس electrophoresis

بعد از اینکه اطلاعات مسافت ها کد گذاری  شد در راه های الگونکلوتیدها ، ما می توانیم بگوییم شاخه های درخت گسترده را از روی شاخه های موکلول DNA .

کد گذاری متناوب مسله کوچکترین درخت گسترده باید خالص شود و متوالی باشد از باند شامل کوتاه ترین طول از DNA در electrophoresis.

نتایج:

ایجا ما پیشنهاد دادایم روشی را برای محاسبات DNA شبیه قرار دادادلمان در حل مسله مینیم درخت گسترده.

محاسبات مولکو لی DNA نه تنها اطلاعات شهرها را بلکه همچنین اطلاعات فاصله میان شهر ها را کد گذاری می کند.

خالص سازی و توالی باند شامل کوچکترین طول DNA در electrophoresis می تواند پیداکند مسله کوچکترین درخت گسترده را.

               

 

 

                                        والسلام 

 

 

 

 

 

 

 

+ نوشته شده در  پنجشنبه بیست و چهارم خرداد 1386ساعت 13:59  توسط محسن سیدکاظمی  | 

سلام

این قسمت لینک و صفحه نخست و آرشیو وبلاگ ... رفته آخر صفحه

   فکر کنم بد شده  یا شایدم بهتر  ولی کلا من خوشم نمی آید

اگه از دوستان کسی می دونه چیکار باید بکنم راهنمایی کنه...

 

+ نوشته شده در  چهارشنبه بیست و سوم خرداد 1386ساعت 22:41  توسط محسن سیدکاظمی  | 

Permutation Encoding

Permutation Encoding

Crossover

 

 : Single point crossover يک نقطه Crossover  انتخاب مي شود . از والد اول تا نقطهCrossover  کپي مي شود و والد دوم جستجو مي شود اگر عددهاي والد دوم در فرزند جديد نباشد کپي مي شود .

 توجه : روش هاي زيادي براي ساختن بقيه رشته يعني از نقطه Crossover  به بعد و وجود دارد .

 

(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) = (1 2 3 4 5 6 8 9 7)

 

Mutation

Order changing : دو عدد انتخاب مي شود و تغيير مي يابند.

(1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)


 

Value Encoding

 

Crossover

همه انواعCrossover   را مي توان استفاده کرد

Mutation

به اعداد انتخاب  شده  براي Mutation  عداد کوچکي اضافه يا کاسته مي شود .

 (1.29  5.68  2.86  4.11  5.55) => (1.29  5.68  2.73  4.22  5.55)

 

 

+ نوشته شده در  چهارشنبه بیست و سوم خرداد 1386ساعت 3:10  توسط محسن سیدکاظمی  | 

سلام

سلام

 تا چند وقت دیگه باید برم سربازی یعنی دقیقا ۸ روز دیگه کلی کار باید انجام بدم ۵۰ روز آموزش احتمالا نتونم  ....

         نتونم چی ؟

 نتونم  به اینترنت دسترسی داشته باشم  و....

دو تا مقاله که یکی ۱۰۰٪ آماده ودیگری ۹۹٪ آماده است داریم باید هر دوشونو سابمیت کنم  این سایت کنفرانس هم آپلود نمی کنه  از دیروز چند بار تلاش کردم البته نمیدونم مشکل از سرعت کم شبکه ی ماست یا سایت اونا

+ نوشته شده در  چهارشنبه بیست و سوم خرداد 1386ساعت 2:23  توسط محسن سیدکاظمی  | 

mohsen.seyedkazemi@gmail.com

 

 

mohsen.seyedkazemi@gmail.com

+ نوشته شده در  سه شنبه بیست و دوم خرداد 1386ساعت 18:18  توسط محسن سیدکاظمی  | 

Crossover and Mutation

 

Crossover and Mutation


Binary Encoding

Crossover

 Crossoverبا نقطه ي منفرد :

ابتدا نقطه ي Crossover point) ) انتخاب مي شود بعد در رشته باينري کروموزوم اول از آغاز رشته تا  نقطه يCrossover  کپي مي شود و از رشته دوم  از نقطه ي Crossover تا پايان کپي مي شود  و فرزند به وجود مي آيد .

البته در شکل زير به وضوح مراحل ذکر شده قابل مشاهده است:

11001011+11011111 = 11001111

Crossover با دو نقطه :

ابتدا دو نقطه Crossover  انتخاب مي کنيم .در رشته ي باينري از ابتداي کورموزوم والد اول کپي مي کنيم تا اولين نقطه ي Crossover بعد  از رشته والد دوم از نقطه اول تا نقطه دوم Crossover کپي مي شود و ادامه رشته را نيز از نقطه دوم Crossover د ررشته اول کپي مي کنيم بنابراين فرزند به صورت زير به وجود مي آيد .

11001011 + 11011111 = 11011111

: Uniform crossover

                                     بيت ها به صورت رندوم از والدين کپي مي شوند .

11001011 + 11011101 = 11011111

 

 :Arithmetic crossover

با توجه به قواعد و دستورات رياضي خاصي فرزند ها توليد مي شوند مثل AND .

11001011 + 11011111 = 11001001 (AND)

+ نوشته شده در  چهارشنبه شانزدهم خرداد 1386ساعت 0:52  توسط محسن سیدکاظمی  | 

Encoding

 

 

 

Encoding


 

اولين قسمت حل مسئله در روش ژنتيک الگوريتم کدگذاري کوروموزوم ها است واين کدگذاري به نوع وسنگيني مسئله بستگي دارد .

در اين قسمت در مورد تعدادي از کد گذاري ها که قبل از اين توانسته اند موفقيت هايي به دست آورند صحبت مي کنيم .


 

Binary Encoding

عمومي ترين روش وآشناترين نوع  کدگذاري در GA  همان روش کدگذاري باينري است چونکه در تحقيقات اوليه که در GA انجام شد از اين روش استفاده شد و ثانيا اين روش بسيار ساده است.

 در روش کد گذاري به روش باينري همه ي کورموزم ها با رشته هايي که شامل بيت هايي از 0—1 است کد مي شوند .

اين کدگذاري اغلب براي بيشتر مسئله ها طبيعي نيست و بعد از   Crossover  و Mutation بايد تغييراتي درآن به وجود آورد.

 

Chromosome A

101100101100101011100101

Chromosome B

111111100000110000011111

Example of chromosomes with binary encoding


Value Encoding

از شيوه ي Value Encoding مي توانيم در حالت هايي  که مسئله ارزش هاي پيچيده هاي دارد استفاده کنيم ، مثل اعداد صحيح که استفاده از کد کذاري باينري در اين حالت بسيار سخت است .

 

Chromosome A

1.2324  5.3243  0.4556  2.3293  2.4545

Chromosome B

ABDJEIFJDHDIERJFDLDFLFEGT

Chromosome C

(back), (back), (right), (forward), (left)

 

 

 

 

 

Example of chromosomes with value encoding

Value Encoding روش خوبي براي کدگذاري مسئله هاي خاص است  ولي با اين وجود براي اينگونه کد گذاري اغلب بايد شيوه هاي توسعه يافته ي جديدي در Crossover در Mutation به کار برد .


 

 

                                            Tree Encoding

Tree Encoding اساساً استفاده مي شود براي استنتاج برنامه يا بيان طرح برنامه هاي ژنتيک الگوريتم .                                    د ر کدگذاري درختي هر کروموزمي يک درخت مثل زير است براي  توابع يا دستورات در زبان برنامه نويسي .

 

Chromosome A

Chromosome B

( +  x  ( /  5  y ) )

( do_until  step  wall )

Example of chromosomes with tree encoding

کد گذاري درختي بسيار مفيد است ؛ براي استنتاج برنامه ها يا هر استراتژي که  بتواند به صورت درخت کدگذاري بشود .

زبان برنامه نويسيLISP   اغلب براي اين منظور به کار مي رود . بنابراين       Crossoverو  Mutation  به سادگي مي تواند انجام با اين روش شود .

 

+ نوشته شده در  چهارشنبه شانزدهم خرداد 1386ساعت 0:27  توسط محسن سیدکاظمی  | 

Selection انتخاب

Selection

انتخاب


همان طور که در طرح کلي الگوريتم ژنتيک مطرح گشت ابتدا کروموزوم ها انتخاب مي شود تا والدين نسل بعد باشند و فرآيند هاي Crossover روي آن ها انجام گيرد حال يک سوال اساسي مطرح است که اين انتخاب والدين چگونه وبر چه معياري استوار است . با توجه به نظريه تکاملي داروين     بهترين ها زنده مي مانند براي تواليد نسل هاي آينده .

روش هاي مختلفي براي انتخاب وجود دارد براي مثال :

 (roulette wheel selection , Boltzman selection, tournament selection , rank selection, steady state selection )

چند روش مهم در اينجا توضيح داده مي شود .


 

Roulette Wheel Selection

والدين با توجه به Fitness انتخاب مي شوند  وبهترين کروموزوم ها درنتيجه شانس انتخاب شدن بيشتري دارند . تصوير زير همه ي کورموزوم هاي يک نسل نشان داده شده است . قسمت هاي مختلف اين نمودار براي هر کروموزوم در نظر گرفته شده است همانطور که ديده مي شود اندازه ي اين قسمت ها با هم برابر نيست بلکه اين اندازه ها به ارزشي که تابع Fitness به هر کورموزوم مي دهد وابسته است.

انتخاب در اين نوع انتخاب ازيک نوع بازي الهام گرفته شده روش به اين صورت است که گردونه را مي چرخانيم و بعد از مدتي گردونه مي ايستد و ما از قبل يک نشان در بيرون گردونه گذاشته ايم  کروموزومي را که نشان به آن اشاره مي کند را ما انتخاب مي کنيم آشکار است که کوروموزومي که ارزش Fitness بالايي دارد قسمت بزرگي از گردونه را به خود اختصاص داده است در نتيجه با توجه به علم آمار احتمال انتخاب شدن بيشتري دارد و دفعات بيشتري از انتخاب را به خود اختصاص مي دهد.

فرايند انتخاب شدن بالا را مي توان  با الگوريتم زير عملياتي کرد.

1-       [Sum] : ابتدا مجموع همه ارزش Fitness هاي کوروموزوم هاي يک نسل را حساب مي کنيم.

2-        :[Select]از فاصله ي (0,S) به صورت رندوم يک عدد را مثل r انتخاب مي کنيم.

3-       [Loop] :  برو به نسل يا جمعيت و جمع کن Fitness را از 0 هنگامي که جمع s بزرگتر از r است بايست و برگرد به به کورموزوم اي که روي آن بودي البته واضح است که مرحله اول براي هر نسل يک بار اجراء  مي شود .


Rank Selection

روش انتخاب قبلي که توضيح داده شد روش خوبي است ولي در حالتي که اختلاف ارزش هاي Fitness در کروموزوم ها زياد باشد دچار مشکل مي شود مثلاً اگر ارزش بهترين کورموزوم 90 % باشد مجموع کورموزوم هاي ديگر بسيار شانس کمتري براي انتخاب شدن دارند .

در شيوه  Rank Selection به اين صورت عمل مي کنيم که ابتدا جمعيت را يا نسل را مرتب مي کنيم سپس به هر کورموزوم با توجه به ارزش  Fitness آن عددي اختصاص مي دهيم مثلا بدترين کروموزوم1 کورموزوم ماقبل بدتري 2 الي آخرتا اينکه به بهترين کورموزوم N را مي دهيم (N تعداد کورموزوم هاي نسل) .

در تصاويرصفحه بعد به وضوح چگونگي تغييرات نمودار را از شيوه ي ارزش گذاري با Fitness به شيوه عدددهي مشاهده می کنيد .

Situation before ranking (graph of fitnesses)

Situation before ranking (graph of fitnesses)

Situation after ranking (graph of order numbers)

Situation after ranking (graph of order numbers)

 

الآن همه کورموزوم ها احتمال انتخاب شدن  دارند  البته در اين روش همگرايي بسيار آهسته اتفاق مي افتد به خاطر اينکه اختلاف کورموزوم ها کاهش پيدا کرده است .


 

Steady-State Selection

اين روش ، روش مخصوصي براي انتخاب والدين نيست و ايده آل اصلي اين روش  براي انتخاب جمعيت يا نسل جديد اين است ، که قسمت   بزرگ اي از کروموزوم ها بتوانند براي نسل جديد حفظ شوند .روش انتخاب Steady State در GA به صورت زير عمل مي کند  که در همه توليدها تعداد معدود کورموزوم خوب (با Fitness بالا) انتخاب مي شوند ،  براي ساختن فرزندان جديد و سپس تعدادي از کورموزوم هاي بعد (باFitness  پايين ) حذف مي شوند و به جاي آنها فرزندان جديد جايگذاري مي شود .  و نسل جديد به وجود آمده براي توليد جديد حفظ مي شود .

 


 

Elitism

ايده هاي اصلي نخبه گرايي در بحث هاي قبل مطرح شد .نخبه گرايي نام روشي است که در آن کپي هاي اوليه از بهترين کورموزوم ها است براي ساختن نسل جديد ساخت بقيه ي کوروموزوم ها با روش هاي توضيح داد شده در بحث هاي قبلي انجام مي گيرد . نخبه گرايي مي تواند  باعث افزايش سرعت الگوريتم ژنتيک شود چون اين روش باعث مي شود که احتمال انتخاب شدن بهترين کورموزوم ها افزايش يابد .

 

+ نوشته شده در  دوشنبه چهاردهم خرداد 1386ساعت 2:29  توسط محسن سیدکاظمی  | 

GP--John Koza

+ نوشته شده در  دوشنبه چهاردهم خرداد 1386ساعت 1:45  توسط محسن سیدکاظمی  | 

Computation in Cellular Automat :A Selected Review

Computation in Cellular Automat :A Selected Review

 

http://web.cecs.pdx.edu/~mm/ca-review.pdf

 

 

+ نوشته شده در  شنبه پنجم خرداد 1386ساعت 19:19  توسط محسن سیدکاظمی  | 

mohsen.seyedkazemi@gmail.com

در صورت نیاز داشتن به اطلاعات کاملتری در رابطه با ژنتیک الگوریتم به من ایمیل بزنید

mohsen.seyedkazemi@gmail.com

+ نوشته شده در  پنجشنبه سوم خرداد 1386ساعت 4:15  توسط محسن سیدکاظمی  | 

Operators of GA

 

Operators of GA

عملگرهاي ژنتيک الگوريتم


همان طور که گفته شدcrossover Mutation دوقسمت عمده GA هستند .

ودر اجراء بطور کلي از اين دو اپراتور زياد استفاده مي شود ، ولي قبل از توضيح اين دو اپراتور ما توضيح مي دهيم در مورد کدگذاري واطلاعات کروموزم .

 

 کدگذاري کورموزوم

          کروموزوم از راه هاي مختلفي مي توانند حاوي اطلاعات در مورد راه حل ها باشد معروف ترين روش کدگذاري روش باينري است البته جديداً از     روش هايي مثلDNA Computing   نيز براي کدگذاري استفاده مي شود در زير يک مثال براي روش کدگذاري باينري آمده است.

 

Chromosome 1

1101100100110110

Chromosome 2

1101111000011110

 

 

 

 

 

 

هر کروموزوم با يک رشته باينري نشان داده مي شود هر بيت در رشته    مي تواند نشان دهد تعداد کروموزوم را در راه حل .

البته واضح است که روش هاي کدگذاري متعددي وجود دارد ولي  اساساً کدگذاري به روش حل مسئله بستگي دارد براي مثال کدگذاري با اعداد صحيح يا حقيقي .

 

 


 

Crossover

بعد از اينکه ما تصميم گرفتيم که از چه روشي براي کد گذاري استفاده کنيم  مي توانيم از اپراتورcrossover استفاده کنيم . اپراتور crossover  ژني از کورموزم والدين را انتخاب مي کند و فرزند جديدي را مي سازد .

ساده ترين راه براي انجام دادن اين کار اين است که به صورت رندوم تعدادي نقطه ي crossover point انتخاب کنيم  و کپي کنيم از همه چيز قبل اين نقطه (يعني نقطه ي crossover point  ) را از روي والد اول و کپي کنيم از همه چيز بعد اين نقطه از روي والد دوم .   

 Crossoverرا مي توان به صورت زير نشان داد ( | خط محل نقطه  crossover point است) البته راه هاي ديگري هم براي crossover وجود دارد براي مثال ما مي توانيم چند نقطه crossover انتخاب کنيم نه يکي.

 

Chromosome 1

11011 | 00100110110

Chromosome 2

11011 | 11000011110

Offspring 1

11011 | 11000011110

Offspring 2

11011 | 00100110110

 

 

 

 

 

 

Mutation

بعد از اينکهcrossover   انجام شد مي توانيم  mutation  را انجام دهيم .

mutationباعث جلوگيري از افتادن همه راه حل ها د رمحل بهينه حل مسئله ما مي شود .

اپراتور mutation  به صورت تصادفي فرزندان معلول crossover   را تغيير مي دهد در کد گذاري باينري ما اين عمل را مي توانيم با تغيير 0به1 ، 1 به0 انجام دهيم به صورت زير:

 

Original offspring 1

1101111000011110

Original offspring 2

1101100100110110

Mutated offspring 1

1100111000011110

Mutated offspring 2

1101101100110110

 

 

تکنيک mutation (مثل crossover) بستگي به کد گذاري کروموزوم دارد .

 

 

 

احتمال Crossover   و Mutation

در GA دو پارامتر اساسي وجود دارد به نام هاي احتمال    Crossoverو احتمال Mutation .

احتمالCrossover  اگر  Crossoverنباشد فرزندان تنها کپي هستند از والدين . ولي اگر crossoverباشد فرزندان توليد مي شوند از قسمت هايي از کورموزم هاي هر دو والد .

اگر احتمال  Crossover100% باشد آنگاه همه فرزندان با Crossver   توليد مي شوند اگر احتمال  Crossver0% باشد همه فرزندان نسل جديد از روي کپي نسل قديم توليد مي شود . البته اين به معني اين نيست که نسل جديد مشابه نسل قبل است .

 Crossoverصورت مي گيرد با اين اميد که کروموزوم هاي جديد شامل قسمت هاي خوب کورموزوم هاي قديم باشد ودر نتيجه کروموزوم هاي جديد بهتر از کروموزوم هاي قبلي باشند .

با اين وجود خوب است که بعضي از قسمت هاي نسل قديم حفظ شود براي توليد نسل جديد .

احتمال Mutation : اگر  mutationنباشد فرزندان بدون هيچ تغييري مستقيماً و بدون واسطه بعد از Crossover توليد مي شود ولي اگر Mutaion صورت بگيرد  يک يا چند  قسمت از کروموزوم  تغيير مي کند .  اگر براي مثال احتمال  Mutation100% باشد همه کورموزوم ها تغيير     مي کنند ولي اگر احتمال Mutation0% باشد هيچ کروموزومي تغييرنمي کند.             


           

ديگر پارامترها:

البته پارامتر هاي ديگري نيز درGA وجود دارد يکي از پارامتر هاي خيلي مهم اندازه جمعيت است .

اندازه جمعيت (Population size) : اگر تعداد خيلي کمي کروموزوم داشته باشيم درGA امکان انجام دادنCrossover کمتر مي شود و تنها قسمت کوچکي از فضاي جستجو کاوش مي شود .

از طرف ديگر اگر تعداد خيلي زيادي کروموزوم داشته باشيمGA  کند پيش   مي رود. و در تحقيقات ثابت شده است که تعداد زياد کوروموزوم هم اصلا مناسب نيست چون سرعت حل مسئله را در مقايسه با جمعيت هاي متعادل خيلي پايين مي آورد و اين اصلاً براي ما مناسب يا بهتر است بگوييم بهينه نيست بنابراين بايد در انتخابPopulation size  دقت کافي به عمل آيد چون رابطه مستقيمي با حل مسئله دارد .

 

 

Selection

انتخاب


همان طور که در طرح کلي الگوريتم ژنتيک مطرح گشت ابتدا کروموزوم ها انتخاب مي شود تا والدين نسل بعد باشند و فرآيند هاي Crossover روي آن ها انجام گيرد حال يک سوال اساسي مطرح است که اين انتخاب والدين چگونه وبر چه معياري استوار است . با توجه به نظريه تکاملي داروين     بهترين ها زنده مي مانند براي تواليد نسل هاي آينده .

روش هاي مختلفي براي انتخاب وجود دارد براي مثال :

 (roulette wheel selection , Boltzman selection, tournament selection , rank selection, steady state selection )

 

+ نوشته شده در  پنجشنبه سوم خرداد 1386ساعت 4:0  توسط محسن سیدکاظمی  | 

Genetic Algorithm

Genetic Algorithm

ژنتيک الگوريتم     


                                                

 

توضيحات اوليه

الگوريتم ژنتيک از نظريه تکاملي داروين الهام گرفته شده است . در روش هاي حل مسله به وسيله يGA  از فرايند تکاملي براي حل مسله استفاده         مي شود.

الگوريتم با مجموعه راه حل هاي ممکن که با کروموزوم نشان داده مي شود  شروع مي شود و اين مجموعه را Population مي ناميم .

راه حل از يک نسل گرفته مي شود  وبکار مي رود براي توليد نسل جديد با اين اميد که نسل جديد بهتر از نسل قبلي باشد دوباره از نسل جديد با توجه به

(fitness) راه حل هايي جدا مي شود . براي ساختن نسل جديد و اين روند تا زماني ادامه مي يابد که به نتايج راضي کننده برسيم .

طرح کلي الگوريتم ژنتيک

1-       [Start]:ساخته شدن نسل اول به صورت رندوم ازn کروموزم (البته راه حل هاي مناسب براي مسئله) .

2-      [Fitness]: ارزيابي کردن تابع سازگاريf(x) با هر کورموزم x در يک نسل

3-     [New population]: ساختن نسل جديد در مراحل زير :

A. [Selection]: جدا کردن دو کورموزوم مولد براي ساختن نسل با توجه به fitness بهترينfitness انتخاب مي کنيم  که بيشترين شانس را براي انتخاب شدن داراست.

: [Crossover].B با crossover امکان اين را داريم که فرزندان جديدي را علاوه برفرزندان توليد شده به صورت مستقيم از پد ر ومادر توليد کنيم اگر crossover نبود فرزندان الزاماً کپي هايي از پدر و مادر بودند .

 [Mutation] .C     : با mutation امکان  اين را داريم که فرزندان جديد را  

تغيير دهيم در هر بيت ياlocus دلخواه .

.D [Accepting] : مکان فرزند جديد در نسل جديد است .

4-     [Replace]: بکار بردن توليد نسل جديد براي ادامه دوباره ي الگوريتم .

5-     [Test]: اگر شرايط راضي کننده بود بايست و بازگشت به بهترين راه حل در نسل جاري .

6-      [Loop]:رفتن به مرحله 2 .

 

 

توضيحات

همان طوري که در طرح کلي GA ديده شد اين الگوريتم خيلي عمومي و کلي است .در مسائل مختلف  مي تواند تعداد پارامترهاي زيادي بکار برده شود .

اولين سوالي که پيش مي آيد اين است که چگونه مي شود کروموزوم ها را ساخت واز چه نوع کدگذاري  استفاده کرد .

 Crossoverو mutation دو تا عملگر اوليه براي کدگذاري هستند در ادامه بحث به کدگذاري crossover و mutation اشاره مي شود .

سوال بعدي اينکه چگونه والدين  را براي crossover پيدا کنيم اين انتخاب مي تواند به چندين صورت انجام گيرد ولي ما مي خواهيم بهترين والدين را انتخاب کنيم به اميد اينکه بهترين فرزندان به وجود آيد .

توليد نسل فقط از دو کورموزوم نمي تواند جواب چندان مناسبي را به ما بدهد بنابراين  ما از Elitism استفاده مي کنيم و از نسل بهترين ها را انتخاب مي کنيم  (البته به تعداد مناسب ) و بدون هيچ تغييري در نسل بعد کپي مي کنيم بنابراين  بهترين راه حل ها در نسل بعدي  حفظ

 مي شود . واين روند ادامه پيدا مي کند .

 

+ نوشته شده در  پنجشنبه سوم خرداد 1386ساعت 3:7  توسط محسن سیدکاظمی  | 

Search Space

Search Space  

 

فضاي جستجو


 

وقتي ما مي خواهيم مسئله اي را حل کنيم در ميان راه حل هاي ممکن جستجو مي کنيم و بهترين آن را انتخاب مي کنيم . مجموعه و فضاي ممکن راه حل ها را(  Space Search  ) مي گوييم . هر عضو اين مجموعه يک روش حل مسئله را نشان مي دهد .

هر راه حل ممکن براي مسئله را با يک ارزش يا (  fitness  ) مارک گذاري   مي کنيم . در GA ما دنبال پيدا کردن بهترين راه حل هستيم  از ميان تعداد راه حل هاي ممکن که با يک نقطه در فضاي جستجو مشخص شده است . در جستجوي راه حل ما دنبال بيشترين يا کمترين ارزش فضاي جستجو هستيم در فضاي جستجو معمولاً ما تعداد محدودي از نقاط يا همان راه حل ها را     مي دانيم در فرايندGA براي پيدا کردن راه حل مناسب ديگر راه حل هاي ممکن يا همان نقاط فضاي جستجو نيزبا کمک فرضيه تکامل توليد مي شود.مسائل مورد جستجو ممکن است بسيار پيچيده باشد بنابر اين يک راه حل مشخص يا يک شروع معيني براي همه مسئله ها و جستجو ها وجود ندارد .راه هاي زيادي براي پيدا کردن راه حل مناسب وجود دارد ولي همه روش ها لزوماً براي ما بهترين راه را مهيا نمي کنند .

همه راه حل هاي ممکن پيدا شده توسط روش هايي مثل:

(hill climbing, tabu search, simulated annealing ,genetic algorithm  )

 

 اغلب روش هاي معقول خوب هستند براي اينکه معمولاً ما نمي توانيم ثابت کنيم که کدام بهينه است .

 

+ نوشته شده در  پنجشنبه سوم خرداد 1386ساعت 2:42  توسط محسن سیدکاظمی  | 

مقاله ما در کنفرانس یونان

+ نوشته شده در  پنجشنبه سوم خرداد 1386ساعت 1:55  توسط محسن سیدکاظمی  |