يادگيري ماشين الگوريتمهاي ژنتيک نيمسال اول 83-1382

Download Report

Transcript يادگيري ماشين الگوريتمهاي ژنتيک نيمسال اول 83-1382

‫بسمه تعالي‬
‫يادگيري ماشين‬
‫الگوريتمهاي ژنتيک‬
‫نيمسال اول ‪1386-87‬‬
‫دکتر مازيار پالهنگ‬
‫آزمايشگاه هوش مصنوعي‬
‫دانشکدة مهندسي برق و کامپيوتر‬
‫دانشگاه صنعتي اصفهان‬
‫انگيزه‬
‫• الگوريتمهاي ژنتيک (ا‪.‬ژ‪ ).‬يک روش يادگيري مشابه تکامل زيست‬
‫شناختي است‪.‬‬
‫• به جاي جستجو از فرضيهاي عام به خاص‪ ،‬يا از فرضيه هاي ساده‬
‫به پيچيده‪ ،‬ا‪.‬ژ‪ .‬فرضيه هاي بعدي را بوسيلة مکررأ ترکيب‬
‫قسمتهائي از بهترين فرضيه هاي شناخته شدة فعلي توليد مي کنند‪.‬‬
‫‪2‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫انگيزه‬
‫• محبوبيت ا‪.‬ژ‪ .‬به چند دليل است که عبارتند از‪:‬‬
‫– تکامل به عنوان يک روش موفق و مقاوم براي تطابق در سيستمهاي‬
‫زيست شناختي شناخته شده است‪.‬‬
‫– ا‪.‬ژ‪ .‬مي توانند فضاي جستجوي فرضيه هائي را جستجو کنند که شامل‬
‫قسمتهاي متعامل پيچيده اي هستند‪ ،‬که اثر هر جزء روي برازندگي کلي‬
‫فرضيه ممکن است براي مدل کردن مشکل باشد‪.‬‬
‫– ا‪.‬ژ‪ .‬بسادگي موازي مي شوند و مي توانند از مزيت هزينه هاي رو به کاهش‬
‫سخت افزارهاي کامپيوتري نيرومند بهره ببرند‪.‬‬
‫‪3‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫جايگاه الگوريتمهاي ژنتيگ‬
‫روشهاي جستجو‬
‫روشهاي جستجوي تصادفي‬
‫روشهاي محاسباتي‬
‫آب فلز کاري‬
‫روشهاي شمارش ي‬
‫الگوريتمهاي تکاملي‬
‫روشهاي ديگر‬
‫الگوريتمهاي ژنتيک‬
‫متوالي‬
‫‪4‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫موازي‬
‫مازيار پالهنگ‬
‫الگوريتمهاي ژنتيک‬
‫• الگوريتمهاي ژنتيک معموأل مسئله را به يک مجموعه از رشته ها‪،‬‬
‫که هر رشته يک حل بالقوه مي باشد‪ ،‬تصوير مي کنند‪.‬‬
‫• يک ا‪.‬ژ‪ .‬بر روي يک چرخة ساده عمل مي کند‪:‬‬
‫– ايجاد يک جمعيت اوليه‬
‫– ارزيابي هر يک از اعضاء‬
‫– انتخاب بهترين اعضاء‬
‫– دستکاري ژنتيکي براي ايجاد جمعيت جديد‬
‫‪5‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫چرخة اصلي الگوريتمهاي ژنتيک‬
‫رشته هاي رمزگذاري شده‬
‫جمعيت‬
‫(کرمزمها)‬
‫فرزندان‬
‫والدين‬
‫ارزيابي‬
‫(برازندگي)‬
‫عملگرهاي ژنتيکي‬
‫توليد‬
‫انتخاب‬
‫(حوض جفتگيري)‬
‫‪6‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫جفتها‬
‫مازيار پالهنگ‬
‫الگوريتم ژنتيک (برازندگي‪ ،‬آستانة_ برازندگي‪)m ،r ،p ،‬‬
‫مقدار اوليه دهي جمعيت‪ p  P :‬فرضيه بصورت تصادفي توليد کن‬
‫ارزيابي‪ :‬براي هر ‪ h‬در ‪ ،P‬برازندگي(‪ )h‬را محاسبه کن‬
‫تا وقتيکه (حداکثر برازندگي(‪ < ))h‬آستانة_برازندگي انجام بده‬
‫•‬
‫•‬
‫•‬
‫•‬
‫يک نسل جديد ‪ PS‬ايجاد کن‬
‫‪ .1‬انتخاب‪ :‬بطور احتمالي ‪ (1-r)p‬عضو ‪ P‬را انتخاب کن که به ‪ PS‬اضافه شوند‪.‬‬
‫‪ .2‬ترکيب‪ :‬بطور احتمالي ‪ r.p/2‬جفت از فرضيه هاي ‪ P‬انتخاب کن‪ .‬براي هر‬
‫جفت )‪ (h1,h2‬دو فرزند با اعمال عملگر ترکيب توليد کن‪ .‬همة فرزندان را به‬
‫‪ PS‬اضافه کن‬
‫‪7‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫‪ .3‬جهش‪ m :‬درصد از اعضاي ‪ PS‬را با احتمال يکنواخت انتخاب کن‪ .‬براي‬
‫هر کدام‪ ،‬يک بيت تصادفي انتخاب شده را معکوس کن‪.‬‬
‫‪ .4‬به هنگام در آوري‪PS  P :‬‬
‫‪ .5‬ارزيابي‪ :‬براي هر ‪ h‬در ‪ P‬برازندگي(‪ )h‬را محاسبه کن‬
‫– فرضيه اي در ‪ P‬که داراي باالترين برازندگي است را بازگردان‪.‬‬
‫‪8‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫• در هر بار تکرار الگوريتم تعدادي فرضيه از جمعيت فعلي بصورت‬
‫احتمالي با مقدار احتمال زير انتخاب مي شوند‪:‬‬
‫) ‪Fitness(hi‬‬
‫) ‪Fitness(h j‬‬
‫‪9‬‬
‫‪p‬‬
‫‪j 1‬‬
‫‪‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫‪Pr(hi ) ‬‬
‫مازيار پالهنگ‬
‫نمايش فرضيه ها‬
‫• فرضيه ها در ا‪.‬ژ‪ .‬معموأل بصورت رشته هاي بيتي نمايش داده مي‬
‫شوند‪ ،‬چون آنها بدين طريق مي توانند بسادگي بوسيلة عملگرهاي‬
‫ژنتيکي تغيير داده شوند‪.‬‬
‫• به عنوان مثال فرض کنيدمي خواهيم کمترين مقدار تابع ‪ f(x)=x2‬را‬
‫براي ‪ x‬در بازة [‪ ]0-31‬بيابيم‪.‬‬
‫• مقدار ‪ x‬را مي توانيم توسط معادل دودوئي آن توسط ‪ 5‬بيت بين‬
‫[‪ ]00000-11111‬نمايش دهيم‪.‬‬
‫‪10‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫• حتي قوانين اگر‪-‬آنگاه را نيز مي توان بصورت رشته هاي بيتي نمايش‬
‫داد‪.‬‬
‫• مثال‪:‬‬
‫(پيش بيني=ابري ‪ ‬باراني) ‪( ‬باد=قوي)‬
‫‪)10‬‬
‫(‪011‬‬
‫• و‬
‫اگر باد=قوي آنگاه تنيس‪-‬بازي=بله‬
‫پيش بيني‬
‫(‪111‬‬
‫‪11‬‬
‫باد‬
‫‪10‬‬
‫تنيس‪-‬بازي‬
‫‪)10‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫عملگرهاي ژنتيکي‬
‫‪12‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫عملگرهای ژنتيکي‬
‫‪13‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫تابع برازندگي و انتخاب‬
‫• تابعي که گفته شد‪:‬‬
‫) ‪Fitness(hi‬‬
‫‪p‬‬
‫‪Fitness‬‬
‫(‬
‫‪h‬‬
‫)‪j‬‬
‫‪j 1‬‬
‫‪‬‬
‫‪Pr(hi ) ‬‬
‫• به تابع انتخاب چرخ رولت معروف است‪.‬‬
‫‪14‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫چرخ رولت‬
‫‪15‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫روشهاي ديگر انتخاب‬
‫• انتخاب تورنمنت‪:‬‬
‫– ‪ h1‬و ‪ h2‬را بصورت تصادفي و با توزيع يکنواخت انتخاب کن‬
‫– با احتمال ‪ ،p‬برازنده ترين را انتخاب کن‬
‫• انتخاب رتبه‪:‬‬
‫– همة فرضيه ها را بر اساس برازندگي آنها مرتب کن‬
‫– احتمال انتخاب متناسب با رتبة فرضیه در اين لیست است‬
‫‪16‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫انتخاب رتبه‬
‫قبل از رتبه بندي (بر اساس برازندگي)‬
‫بعد از رتبه بندي‬
‫‪17‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫يک مثال ‪GABIL -‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫يادگيري مجموعة فصلي قوانين گزاره اي‬
‫قابل مقايسه با ‪C4.5‬‬
‫برازندگي‪:‬‬
‫‪Fitness(h)  (correct(h))2‬‬
‫نمايش‪:‬‬
‫اگر ‪ a1=T  a2=F‬آنگاه ‪ ،c=T‬اگر ‪ a2=T‬آنگاه ‪c=F‬‬
‫بصورت‪:‬‬
‫‪c‬‬
‫‪1‬‬
‫‪18‬‬
‫‪a2‬‬
‫‪01‬‬
‫‪a1‬‬
‫‪10‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫‪c‬‬
‫‪0‬‬
‫‪a2‬‬
‫‪10‬‬
‫‪a1‬‬
‫‪11‬‬
‫مازيار پالهنگ‬
‫• عملگرهاي ژنتيکي‪:‬‬
‫– رشته هاي بيتي با طول متغير هستند‪.‬‬
‫– مي خواهيم رشته هاي توليد شده قوانين با معنائي باشند‪.‬‬
‫– با شروع از‪:‬‬
‫– و‬
‫‪c‬‬
‫‪0‬‬
‫‪c‬‬
‫‪1‬‬
‫‪a2‬‬
‫‪10‬‬
‫‪a2‬‬
‫‪01‬‬
‫‪a1‬‬
‫‪11‬‬
‫‪a1‬‬
‫‪10‬‬
‫‪c‬‬
‫‪1‬‬
‫‪c‬‬
‫‪0‬‬
‫‪a2‬‬
‫‪01‬‬
‫‪a2‬‬
‫‪11‬‬
‫‪a1‬‬
‫‪10‬‬
‫‪a1‬‬
‫‪01‬‬
‫– ابتدا نقاط تقاطع را براي ‪ h1‬بدست مي آوريم‪ :‬مثأل ‪1‬و ‪( 8‬ترکيب دو نقطه اي تصادفي)‬
‫– در اين حالت ‪ d1=1‬و ‪d2=3‬‬
‫– حال نقاط تقاطع در ‪ h2‬را محدود به حاالتي مي کنيم که توليد قوانين با معنائي نمايند‪:‬‬
‫مثأل <‪3‬و‪8< ، >1‬و‪ ،>1‬و <‪.8‬و‪>6‬‬
‫‪19‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫– با شروع از‪:‬‬
‫–و‬
‫‪a2‬‬
‫‪1]0‬‬
‫‪c‬‬
‫‪0‬‬
‫‪c‬‬
‫‪1‬‬
‫‪a2‬‬
‫‪01‬‬
‫‪a1‬‬
‫‪11‬‬
‫‪c‬‬
‫‪1‬‬
‫‪a1‬‬
‫‪10‬‬
‫‪a2‬‬
‫‪01‬‬
‫‪c‬‬
‫‪0‬‬
‫‪a2‬‬
‫‪1]1‬‬
‫‪a1‬‬
‫‪1[0‬‬
‫‪a1‬‬
‫‪0[1‬‬
‫‪h1‬‬
‫‪h2‬‬
‫– اگر <‪3‬و‪ >1‬را انتخاب کنيم خواهيم داشت‪:‬‬
‫‪c‬‬
‫‪0‬‬
‫‪a1 a2 c‬‬
‫‪10 01 1‬‬
‫‪20‬‬
‫‪a1 a2 c‬‬
‫‪11 11 0‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫‪a2‬‬
‫‪10‬‬
‫‪a1‬‬
‫‪11‬‬
‫‪a1 a2 c‬‬
‫‪00 01 1‬‬
‫‪h3‬‬
‫‪h4‬‬
‫مازيار پالهنگ‬
‫بسطهاي ‪GABIL‬‬
‫• اضافه کردن عملگرهاي ژنتيکي جديد‪:‬‬
‫‪ .1‬اضافة‪-‬ديگري )‪ :(AddAlternative‬عموميت دادن محدوديت روي‬
‫‪ ai‬با تغيير يک ‪ 0‬به ‪.1‬‬
‫‪ .2‬انداختن‪ -‬شرط )‪ :(DropCondition‬عموميت دادن محدوديت‬
‫روي ‪ ai‬با تغيير همة ‪ 0‬ها به ‪.1‬‬
‫‪ .3‬اضافه کردن محدوده هاي جديد به رشته هاي بيتي جهت نمايش‬
‫آنکه دو عملگر اول اجازة استفاده شدن دارند يا نه‪:‬‬
‫‪DC‬‬
‫‪0‬‬
‫‪21‬‬
‫‪AA‬‬
‫‪1‬‬
‫‪c‬‬
‫‪0‬‬
‫‪a2‬‬
‫‪11‬‬
‫‪a1‬‬
‫‪11‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫‪c‬‬
‫‪1‬‬
‫‪a2‬‬
‫‪01‬‬
‫‪a1‬‬
‫‪00‬‬
‫مازيار پالهنگ‬
‫نتايج ‪GABIL‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪22‬‬
‫کارآئي ‪ GABIL‬با ديگر روشهاي يادگيري نمادين همانند ‪،C4.5‬‬
‫‪ AQ14 ،ID5R‬مقايسه شد‪.‬‬
‫نتايج کارآئي متوسط روي يک مجموعه از ‪ 12‬مسئلة ساختگي‬
‫عبارت است از‪:‬‬
‫‪ GABIL‬بدون ‪ AA‬و ‪%92.1 DC‬‬
‫‪ GABIL‬با ‪ AA‬و ‪%95.2 DC‬‬
‫روشهاي نمادين بين ‪ %91.2‬تا ‪%96.6‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫ارزيابي جمعيت‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪23‬‬
‫چگونه تکامل جمعيت در يک ا‪.‬ژ‪ .‬را ارزيابي کنيم؟‬
‫شما = يک رشتة بيتي شامل ‪ ،1 ،0‬و *‬
‫يک شماي نوعي‪10**00 :‬‬
‫نمونه هائي از شماي فوق‪... ،101100 ،101000 ،100000 :‬‬
‫مشخص کردن جمعيت بوسيلة تعداد نمونه هائي که يک شماي‬
‫ممکن را نمايش مي دهند‪.‬‬
‫قضية شما تکامل يک جمعيت را بر اساس تعداد نمونه هائي که هر‬
‫شما را نمايش مي دهند مشخص مي کند‪.‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫فقط انتخاب را در نظر بگيريد‬
‫•‬
‫•‬
‫•‬
‫•‬
‫)‪ =m(s,t‬تعداد نمونه هاي شماي ‪ s‬در جمعيت در زمان ‪.t‬‬
‫) ‪ = f (t‬متوسط برازندگي همة افراد در جمعيت در زمان ‪.t‬‬
‫) ‪ =uˆ (s, t‬متوسط برازندگي نمونه هاي شماي ‪ s‬در جمعيت در زمان‬
‫‪.t‬‬
‫احتمال انتخاب ‪ h‬در يک مرحله از انتخاب‪:‬‬
‫)‪f ( h‬‬
‫) ‪f (hi‬‬
‫‪24‬‬
‫‪n‬‬
‫‪‬‬
‫‪P r(h) ‬‬
‫‪i 1‬‬
‫)‪f ( h‬‬
‫‪‬‬
‫نيمسال‪t‬او(ل ‪nf-‬‬
‫‪) 87-1386‬‬
‫يادگيری ماشين‬
‫مازيار پالهنگ‬
‫• مي دانيم که‪:‬‬
‫)‪f ( h‬‬
‫‪hs  pt‬‬
‫) ‪m( s, t‬‬
‫‪‬‬
‫‪uˆ ( s, t ) ‬‬
‫• احتمال انتخاب ‪ h‬متعلق به ‪f (h) :s‬‬
‫) ‪nf (t‬‬
‫‪‬‬
‫‪Pr(h  s) ‬‬
‫‪hs  pt‬‬
‫) ‪uˆ ( s, t‬‬
‫‪‬‬
‫) ‪m( s , t‬‬
‫) ‪nf (t‬‬
‫‪25‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫• تعداد مورد انتظار نمونه هاي ‪ s‬پس از ‪ n‬انتخاب‪:‬‬
‫) ‪uˆ ( s, t‬‬
‫‪Em( s, t  1) ‬‬
‫) ‪m( s, t‬‬
‫) ‪f (t‬‬
‫‪26‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫قضية شما‬
‫) ‪uˆ ( s, t‬‬
‫)‪d ( s‬‬
‫)‪o( s‬‬
‫‪Em( s, t  1) ‬‬
‫‪m( s, t )(1  pc‬‬
‫) ‪)(1  pm‬‬
‫) ‪f (t‬‬
‫‪l 1‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪27‬‬
‫‪ =pc‬احتمال ترکيب تک نقطه اي‬
‫‪ =pm‬احتمال عملگر جهش‬
‫‪ =l‬طول هر يک از رشته ها در جمعيت‬
‫)‪ =o(s‬تعداد بيتهاي تعريف شده در ‪s‬‬
‫)‪ =d(s‬فاصلة چپترين و راستترين بيتهاي تعريف شده در ‪s‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫انبوهي‬
‫• پرکردن جمعيت توسط فردي با برازندگي بيشتر‬
‫• مي تواند باعث کاستن تنوع جمعيت و کند کردن پيشرفت ا‪.‬ژ‪ .‬شود‪.‬‬
‫• راه حلها‪:‬‬
‫– تغيير تابع انتخاب‬
‫– اشتراک برازندگي (برازندگي يک فرد با حضور افراد همنوع کاسته شود‪).‬‬
‫– محدود کردن نوع افرادي که مي توانند با هم ترکيب شوند‪.‬‬
‫‪28‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫برنامه نويس ي ژنتيکي‬
‫• افراد به جاي رشته هاي بيتي‪ ،‬برنامه هاي کامپيوتري هستند‪.‬‬
‫• برنامه ها بصورت يک درخت نشان داده مي شوند‪.‬‬
‫• رئوس داراي دو نوع هستند‪:‬‬
‫– تابعها‬
‫– پايانه ها (ثابتها‪ ،‬وروديها)‬
‫• الزم است ابتدا تابعها و پايانه ها مشخص شوند‪.‬‬
‫‪29‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫برنامه نويس ي ژنتيکي‬
‫‪sin( x)  x  y‬‬
‫‪2‬‬
‫‪30‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫ترکيب‬
‫‪31‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫مسئلة بلوکها‬
‫• پايانه ها‪:‬‬
‫– )‪ :CS (current stack‬نام باالترين بلوک روي پشته‪ ،‬يا ‪ F‬اگر پشته اي‬
‫وجود ندارد‪.‬‬
‫– )‪ :TB (top correct block‬نام باالترين بلوک روي پشته بطوريکه آن و‬
‫بلوکهاي زير آن به ترتيب صحيح هستند‪.‬‬
‫– )‪ :NN (next necessary‬نام بلوک بعدي که باالي ‪ TB‬در پشته الزم است‪.‬‬
‫اگر بلوک ديگري الزم نيست ‪ F‬باز مي گرداند‪.‬‬
‫‪32‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫• توابع ابتدائي‪:‬‬
‫– )‪ :(MS x) (move to stack‬اگر بلوک ‪ x‬روي ميز است‪ x ،‬را به باالي پشته‬
‫حرکت مي دهد و مقدار ‪ T‬را باز مي گرداند‪ .‬در غير اينصورت‪ ،‬کاري انجام‬
‫نمي دهد و مقدار ‪ F‬را باز مي گرداند‪.‬‬
‫– )‪ :(MT x) (move to table‬اگر بلوک ‪ x‬جائي در پشته است‪ ،‬بلوک باالي‬
‫پشته را به روي ميز حرکت مي دهد و مقدار ‪ T‬را باز مي گرداند‪ .‬در غير‬
‫اينصورت‪ F ،‬باز مي گرداند‪.‬‬
‫– )‪ :(EQ x y)(equal‬اگر ‪ x‬برابر ‪ y‬باشد ‪ T‬باز مي گرداند و در غير اينصورت ‪F‬‬
‫باز مي گرداند‪.‬‬
‫– )‪ :(Not x‬اگر ‪ T x=F‬باز مي گرداند‪ ،‬در غير اينصورت ‪ F‬باز مي گرداند‪.‬‬
‫– )‪ :(DU x y)(do until‬عبارت ‪ x‬را مکررأ انجام مي دهد تا وقتيکه عبارت ‪y‬‬
‫مقدار ‪ T‬را بازگرداند‪.‬‬
‫‪33‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫برنامة يادگرفته شده‬
‫• ‪ 166‬مثال آموزش ي‬
‫• ‪ 300‬برنامة تصادفي در جمعيت اوليه‬
‫• بعد از ‪ 10‬نسل‬
‫)))‪(EQ(DU(MT CS)(NOT CS))(DU (MS NN)(NOT NN‬‬
‫‪34‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫‪EQ‬‬
‫‪DU‬‬
‫‪DU‬‬
‫‪35‬‬
‫‪NOT‬‬
‫‪MS‬‬
‫‪NOT‬‬
‫‪MT‬‬
‫‪NN‬‬
‫‪NN‬‬
‫‪CS‬‬
‫‪CS‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫برنامه نويس ي ژنتيک‬
‫• مثال جالبتر‪ :‬طراحي مدارهاي صافي الکترونيکي‬
‫– اعضا برنامه هائي هستند که مدار اوليه را به مدار نهائي بوسيلة‬
‫اضافه‪/‬کم کردن اجزاء و ارتباطات تبديل مي کنند‪.‬‬
‫– استفاده از يک جمعيت ‪ 640000‬تائي‪ ،‬که روي يک پردازندة موازي ‪64‬‬
‫رأس ي اجرا شد‪.‬‬
‫– مدارهائي قابل رقابت با بهترين طراح انساني يافت شد!!‬
‫‪36‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫موازي سازي ا‪.‬ژ‬
‫• بصورت دانه درشت‬
‫– هر واحد پردازش ی يک جمعيت را در بر دارد‪.‬‬
‫• بصورت دانه ريز‬
‫– هر واحد پردازش ي يک فرد را در بر دارد‪.‬‬
‫‪37‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬
‫‪38‬‬
‫‪87-1386‬نيمسال اول ‪-‬يادگيری ماشين‬
‫مازيار پالهنگ‬