رزفایل

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

رزفایل

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

تشخیص بیماری آلزایمر با کمک سیستم خبره فازی مبتنی بر الگوریتم مورچگان

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

تشخیص بیماری آلزایمر با کمک سیستم خبره فازی مبتنی بر الگوریتم مورچگان


تشخیص بیماری آلزایمر با کمک سیستم خبره فازی مبتنی بر الگوریتم مورچگان

مقالات علمی پژوهشی کامپیوتر با فرمت    Pdf       صفحات      18

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

 


دانلود با لینک مستقیم


تشخیص بیماری آلزایمر با کمک سیستم خبره فازی مبتنی بر الگوریتم مورچگان

مقاله درباره الگوریتم های جستجو

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

مقاله درباره الگوریتم های جستجو


مقاله درباره الگوریتم های جستجو

لینک پرداخت و دانلود در "پایین مطلب"

 فرمت فایل: word (قابل ویرایش و آماده پرینت)

 تعداد صفحات:13

عدول کردن

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

این مسئله می تواند یک استراتزی برای یافتن راه حل هایی باشد که بتوان حل مسائل را محدود کرد.بحث

عدول کردن توسط ریاضی دان آمریکایی D. H. Lehmer in 1950s اختراع شد.

اجراء

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

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

تحلیل بروند ،جستجو دوباره به مورد قبلی باز می گردد و تبدیل بعدی را امتحان می کند.اگر مورد دیگری وجود نداشته باشد ،جستجو شکست می خورد.این مسئله اغلب در توابع بازگشتی به دست می آید جایی که هر

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

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

یا آن ارزش را از تعارض قلمروهای تخصیص داده نشده ،حذف کند یا همه محدودیت ها را برای مشاهده

اینکه دیگر ارزش های نو را از ارزش های تخصیص داده شده مستثنی کرد.این موثرترین تکنیک برای مسائل محقق مانند کوله پشتی 0/1 و مسئله n-queen می باشد.این قضیه نتایج بهتری را نسبت برنامه ریزی دینامیک برای این مسائل ارایه میدهد.

 

روش اکتشافی

روش های اکتشافی بسیاری برای تسریع پروسه معمول هستند .چرا که متغیرها به هر ترتیبی  پردازش می شوند ،به طور کلی ابتدا آزمایش موردهای اجباری موثرتر است (موردی که با گزینه های ارزشی کمتری است) همان گونه که درخت جستجو را زود قطع می کند.(تاثیر مورد اخیر را به حداکثر می رساند).

وقتی به دنبال انتخاب یک ارزش برای تخصیص هستیم ،بسیاری عملکردها را در آزمایش برای مشاهده اینکه

کدام ارزش حداقل شمار ارزش ها را محدود می کند،استفاده می کنیم ،در پیش بینی اینکه چنین موردی

1>بسیار محتمل در نگاه داشتن یک راه حل ممکن

2>یک راه حل زمانی پیدا می شود که شمار محدودیت های بسیار واضح به صفر کاهش پیدا کرده است.

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

تاثیرگزاری کلی الگوریتم اصلاح نشده است.توابع اتصالی تاثیرگذار با یک روش مشابه به دیگر توابع اکتشافی خلق می شوند-توسط تعدیل قوانین مسئله .وقتی عدول کردن در یک زبان برنامه ریزی محدودیتی  اتفاق می افتد،یک مقدار اضافی عملیاتی اتفاق می افتد زمانی که اطلاعات راجع به محدودیت ها وقتی توسط

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

اجرایی کافی می باشد،همتن گونه که در Planner & Prolog استفاد شد.به علاوه حصول کمینه بهبود ارزش ها در پشتیبانی استفاده می شود ،عملکرد های عدول کردن به طور معمول یک مسیر متفاوت را حفظ

می کنند، تا اینکه یک سابقه از تغییر ارزش ضبط گردد.یک پیشنهاد متناوب در مسیر متغیر ثبت نوار زمانی

اینکه آخرین تغییر چه زمانی در متغیر ایجاد شده است.نوار زمانی با نوار زمانی  نقطه گزینش مقایسه میشود.


دانلود با لینک مستقیم


مقاله درباره الگوریتم های جستجو

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

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

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


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

فرمت فایل :word (لینک دانلود پایین صفحه) تعداد صفحات 22 صفحه

 

الگوریتم کلونی زنبور عسل (ABC)

چندین الگوریتم اکتشافی جدید برای حل مسایل  بهینه سازی عددی و توابع ترکیبی توسعه یافته اند. این الگوریتم ها می توانند به گروههای مختلف طبقه بندی شوند با توجه به ضوابطی  که در نظر گرفته شده: مانند بر اساس جمعیت ، مبتنی بر تکرار شونده ، تصادفی ، قطعی ، و غیره. در حالی که الگوریتم با یک مجموعه راه حل هاکار میکند و در جهت بهبود آنها تلاش می کنند  که  مبتنی بر جمعیت نامیده می شوند ، یکی از کاربرد تکرار های چندگانه برای پیداکردن راه حل مطلوب که به عنوان الگوریتم تکرار شونده نام گذاری شده است. اگر یک الگوریتم یک قانون احتمالی را برای بهبود راه حل بکار بگیرد سپس آن را احتمال  یا اتفاقی نامیده میشود. یکی دیگر از طبقه بندی را می توان بسته به ماهیت پدیده توسط الگوریتم شبیه سازی کرد.این نوع طبقه بندی ، عمدتا دارای دو گروه مهم از الگوریتم جمعیت هستند که براساس : الگوریتم های تکاملی (EA) و الگوریتم های مبتنی بر هوش جمعی. از محبوب ترین الگوریتم های تکاملی الگوریتم ژنتیک(GA) است. درGA تلاش شده است تکامل طبیعی یک پدیده شبیه سازی شود. در تکامل طبیعی ، هر گونه جستجو برای سازگاری سودمند در یک محیط در حال تغییر است. به عنوان یک گونه تکامل یافته ، ویژگی های جدیدی در کروموزوم های فردی کد گذاری می شوند.  این اطلاعات توسط جهش تصادفی تغییرمی یابد ، اما بطورواقعی نیروی محرکه باعث توسعه تکاملی درترکیب و جایگزینی مواد کروموزومی در طول تولید مثل میشود. اگر چه تلاش های متعددی برای گنجاندن این اصول در روال بهینه سازی دراوایل دهه 1960انجام شده ، الگوریتم های ژنتیک برای اولین بار بر یک مبنای نظری صوتی  ایجاد شده بودند. این اصطلاح جمعی در حالت کلی برای اشاره به هر مجموعه دار از تعامل افراد مورد استفاده قرار می گیرد. به عنوان یک مثال کلاسیک از ازدحام زنبورهایی که در اطراف کندوی خود تجمع کردند ، اما در استعاره به راحتی می توان به سیستم هایی معماری مشابهی دارند توسعه داد. در کلونی مورچه ها،مورچه ها می توانند به عنوان گروهی ازعوامل تصور شوند ، همچنین ازدحام پرندگان گروهی از پرندگان است. یک سیستم ایمنی ، گروهی از سلول ها ومولکول ها است در حالی که یک جمعیت شامل گروهی از مردم است. الگوریتم بهینه سازی ازدحام ذرات (PSO) شبیه سازی می کند رفتار اجتماعی پرندگان یا ماهی ها توسط ابرهارت و کندی در سال 1995 معرفی شده است. روش های گوناگونی به مدل رفتار هوشمند خاص ازدحام زنبور عسل پیشنهاد شده است و برای حل مسایل از نوع ترکیبی استفاده شده است.آنها یک ایده روبات بر رفتار جستجوی غذا از زنبورها را ایجاد کرده اند . معمولا ، همه این ربات از لحاظ فیزیکی و عملکرد یکسان هستند ، به طوری که هر ربات را می توان به طور تصادفی جایگزین دیگری کرد. ازدحام دارای تحمل قابل توجهی است ؛ شکست در یک عامل عملکرد کل سیستم را متوقف نمی کند. روبات های فردی ، مانند حشرات ، دارای قابلیت های محدود و دانش محدود از محیط زیست است. از سوی دیگر ، توسعه ازدحام هوش جمعی است. آزمایشات نشان داد که رباتها مانند حشرات مانند در انجام وظایف واقعی رباتیک موفق هستند.

 آنها همچنین یک مدل انتخاب علوفه را توسعه داده اند که منجر به ظهور هوش جمعی می شود که متشکل از سه اجزای ضروری است: منابع غذایی ، کارگرهایی که پی علوفه می گردند و ، کارگرهایی که پی علوفه نمی گردند. این مدل دو رفتار برجسته را تعریف می کند: استفاده به یک منبع شهد و رها کردن یک منبع.


دانلود با لینک مستقیم


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

مکان یابی بهینه خازن ها در شبکه توزیع شعاعی با استفاده از الگوریتم کلونی زنبورعسل به منظور کاهش تلفات (کد 131)

اختصاصی از رزفایل مکان یابی بهینه خازن ها در شبکه توزیع شعاعی با استفاده از الگوریتم کلونی زنبورعسل به منظور کاهش تلفات (کد 131) دانلود با لینک مستقیم و پر سرعت .

مکان یابی بهینه خازن ها در شبکه توزیع شعاعی با استفاده از الگوریتم کلونی زنبورعسل به منظور کاهش تلفات (کد 131)


مکان یابی بهینه خازن ها در شبکه توزیع شعاعی با استفاده از الگوریتم کلونی زنبورعسل به منظور کاهش تلفات (کد 131)

چکیده مقاله

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

مقاله اصلی به همراه ترجمه+پاورپوینت

توجه: برای مشاهده مقالات می توانید وارد کانال تلگرام شوید و سپس مقاله مورد نظر خود را مشاهده نمایید.
توجه: با پرداخت مبلغ مقاله مورد نظر خود به صورت کارت به کارت از 10%  تخفیف بهره مند شوید.برای این منظور بعد از کسر 10% مبلغ مقاله مابقی را به شماره کارت ذیل واریز نمایید.سپس کد مقاله را تلگرام نمایید.
موبایل: 09210225047
تلگرام: 09210225047
کانال تلگرام: simulinkpaper@
ایمیل: lotfabadi.alireza@gmail.com
شماره کارت: 7412-7439-8110-6273  به نام علیرضا لطف آبادی


دانلود با لینک مستقیم


مکان یابی بهینه خازن ها در شبکه توزیع شعاعی با استفاده از الگوریتم کلونی زنبورعسل به منظور کاهش تلفات (کد 131)

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

اختصاصی از رزفایل الگوریتم ژنتیک دانلود با لینک مستقیم و پر سرعت .

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


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

فرمت :WORD                                                     تعداد صفحه :110

1-1- مقدمه

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

 از آنجایی که نتیجه ی کار با توجه به نوع انتخاب این متدها و روش ها حاصل می شود لذا به اهمیت موضوع انتخاب بهینه ( Optimum ) و بهینه سازی در همه ی مسائل پی می بریم پس:

(( هدف ما این است که در فضای جواب های ممکن به دنبال بهترین جواب بگردیم. ))

 

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

 

1. Simulated Annealing

2. Ant colony

                                                                                               3. Random Cost

4. Evolution strategy

5. Genetic Algorithm

6. Celluar Automata

 

در این پایان نامه به بررسی و استفاده از روش Genetic Algorithm می پردازیم.

 

 

فصل دوم

مقدمه ای بر الگوریتم ژنتیک

                                                                                                                                                                                                                                                           

2-1- مقدمه

الگوریتم های ژنتیک یکی از الگوریتم های جستجوی تصادفی است که ایده ی آن برگرفته از طبیعت می باشد . الگوریتم های ژنتیک در حل مسائل بهینه سازی کاربرد فراوانی دارند . به عنوان مثال می توان به مسئله فروشنده دوره گرد اشاره کرد . در طبیعت از ترکیب کروموزوم های بهتر ، نسل های بهتری پدید می آیند . در این بین گاهی اوقات جهش هایی نیز در کروموزوم ها روی می دهد که ممکن است باعث بهتر شدن نسل بعدی شوند. الگوریتم ژنتیک نیز با استفاده از این ایده اقدام به حل مسائل می کند .

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

 

شکل 2-1- مراحل الگوریتم ژنتیک

 

2-2- پیشینه

پیشینه ی الگوریتم ژنتیک به سال های حدود 1960 برمی گردد. در دهه های 50 و 60 تحقیقات متعددی برای استفاده از نظریه تکامل در بهینه سازی مسائل مهندسی به طور مستقل صورت گرفت. ایده ی اصلی در همه این سیستم ها، رشد یک جمعیت از پاسخ های اولیه یک مساله به سمت پاسخ بهینه با الهام گیری از عملگرهای انتخاب و تغییر ژنتیک طبیعی بود. در سال های 1965 تا 1973 رکنبرگ(Rechenberg ) کتاب خود را به نام  تکنیک های تکامل (Evolution strategies (Evolutionsstrategie in original) ) در زمینه محاسبات تکاملی منتشر کرد و در سال های بعد نظریه او توسط محققین دیگر توسعه یافت. الگوریتم ژنتیک نخستین بار توسط  جان هلند ( John Holland ) مطرح و به وسیله خود او و دانشجویان و همکارانش گسترش یافت. تلاش های او و اطرافیانش در این زمینه در نهایت به نشر کتاب سازگاری در طبیعت و سیستم های مصنوعی (Adaption in Natural and Artificial Systems ) انجامید. پس از آن تحقیقات گسترده ای توسط افراد مختلف در این زمینه انجام شد (به عنوان مثال در سال 1992 جان کزا (John Koza ) الگوریتم ژنتیک را به صورت عملیاتی در برنامه نویسی به کار برد و برنامه نویسی ژنتیک (genetic programming(GP) ) را به عنوان روش خود مطرح ساخت.) و الگوریتم ژنتیک به صورت امروزی خود رسید.

 

2-3- اصطلاحات زیستی

در راستای فهم کامل الگوریتم ژنتیک، ابتدا بهتر است با برخی از اصطلاحات زیستی به کار رفته در تئوری این الگوریتم آشنا شویم. همه موجودات زنده از واحدهای کوچکی به نام سلول تشکیل شده اند. هر سلول نیز به نوبه خود از مجموعه ای از یک یا چند کروموزوم (chromosome ) تشکیل شده است. کروموزوم ها رشته هایی از مولکول DNA می باشند که در حقیقت برنامه کاری موجود زنده را در خود ذخیره می کنند. هر کروموزوم شامل چندین ژن( gene ) می باشد، که هر ژن بلوکی از مولکول DNA می باشد که پروتئین خاصی را کدگذاری می کند. به طور کلی می توان گفت که هر ژن یک خصیصه (trait ) از موجود زنده (مانند رنگ چشم) را کد گذاری می کند. حالت های ممکن برای یک خصیصه را (allele  ) می گویند. هر ژن موقعیت مخصوص خود را در کروموزوم دارد که به آن (locus ) می گویند. بسیاری از موجودات زنده در هر سلول چندین کروموزوم دارند. مجموعه کامل مواد ژنتیکی در سلول (مجموعه همه کروموزوم ها) (genome ) نامیده می شوند. اصطلاح (genotype ) به مجموعه خاصی از کروموزوم های موجود در genome اتلاق می شود. Genotype ها در پی تحولات و تغییر، به phenotypeها خصوصیات فیزیکی و ذهنی موجود زنده (مانند رنگ چشم، بلندی، اندازه مغز و یا میزان هوش) تبدیل می شوند.

در طی تولید مثل جنسی(reproduction )، در اثر الحاق(recombination or crossover ) ژن ها از کروموزوم های والدین(parents ) با یکدیگر ترکیب شده تا کروموزوم کامل جدیدی را تشکیل دهند. در طی این تغییرات، ممکن است تغییرات کوچکی در برخی از بخش های DNA   ژن های فرزند، بوجود آمده و فرزند دچار جهش (mutation ) گردد. در نهایت تناسب (fitness ) یک موجود زنده با توجه به احتمال زیستن آن برای تکثیر(زیست پذیری(viability ) ) یا برحسب تابعی از تعداد فرزندان آن گونه (باروری(fertility )) تعیین می گردد.

 

2-4- تشریح کلی الگوریتم ژنتیک

یک تشریح کلی از الگوریتم ژنتیک را می‏توان به صورت زیر در نظر گرفت :

 -1 جمعیتی از رشته‏ها را به صورت تصادفی بسازید.
 -2 هررشته داخل جمعیت را ارزیابی کنید.
 -3 رشته‏های جدید را با ترکیب رشته‏های جاری ایجاد کنید. برای ترکیب رشتههای والد از عملگر‏های جهش و تبادل استفاده کنید.
 -4
اعضایی از جمعیت را برای ایجاد فضایی برای رشته‏های جدید حذف کنید.
 -5
رشته‏های جدید را ارزیابی نموده و آنها را داخل جمعیت قرار دهید.
 -6
اگر زمان اجرا تمام شده است توقف نمایید و بهترین رشته را باز گردانید. در غیر این صورت به مرحله سه بازگردید.

روند ذکر شده در بالا متداول‏ترین روش الگوریتم ژنتیک را تشریح می‏کند. اما محققین مختلف، آن را به روش‏های متفاوت پیاده سازی کردهاند.

دو روش متداول دیگر برای اختتام: (همگرا شدن الگوریتم، تولید تعداد خاص نسل می‏باشد).

 

2-5- حل مساله با استفاده از الگوریتم های ژنتیک

برای حل مساله با استفاده از الگوریتم های ژنتیک ، ابتدا جمعیت اولیه ای شامل K کروموزوم تولید می کنیم . هر کروموزوم نشان دهنده جواب مساله خواهد بود . سپس با استفاده از عملگر برازش میزان مطلوب بودن هر کرموزوم را محاسبه کرده و در مرحله بعد با استفاده از مقادیر محاسبه شده در مرحله برازش کروموزوم هایی را انتخاب کرده و جمعیت میانی را تولید می کنیم . تعداد کروموزوم های جمعیت میانی نیز K کروموزوم خواهد بود . در نهایت نیز عملگر جهش بر روی کروموزوم های جمعیت میانی اعمال می شود . پس از اعمال عملگر جهش ، جمعیت میانی جایگزین جمعیت اولیه می شود . دوباره مراحل برازش ، ادغام و جهش و جایگزینی بر روی آن انجام می شود . شبه کد زیر نحوه انجام مراحل فوق را نشان می دهد :

Population = GeneratePopulation(K) 

For I = 1 to MaxIterations Fitness(Population) If any of chromosomes is optimal Then  Break Offspring =  Crossover(Population) Mutate(Offspring)

EndFor

 

 

2-6- اجزای الگوریتم ژنبیک

با توجه به آنچه گذشت، الگوریتم ژنتیک بخشی از نظریه حسابگری تکاملی (evolutionary computing ) است که در حال حاضر به عنوان بخشی از هوش مصنوعی به سرعت در حال رشد می باشد. ایده اصلی این الگوریتم در نظریه تکامل داروین نهفته است.  از نظر کاربردی، الگوریتم ژنتیک یکی از روش های بهینه سازی مسائل است که اساس آن بر انتخاب طبیعی (natural selection) (عامل اصلی تکامل زیستی) و برخی مفاهیمی که از علم ژنتیک الهام گرفته شده اند، استوار است. در این روش به بیان ساده، برای بهینه سازی تابع هدف (تابع تناسب(fitness function )) مساله، در هر مرحله، از یک جمعیت (population) اولیه کروموزوم ها (افراد (individuals) ) که در حقیقت پاسخ های اولیه مساله می باشند، به یک جمعیت جدید از کروموزوم ها و یا یک نسل (generation) جدید که در حقیقت پاسخ های ثانویه مساله مفروض می باشند می رسیم. بنابراین با تکرار این عملیات و تولید جمعیت جدید از جمعیت قبلی در هر مرحله و در نتیجه رسیدن به نسل های موفق، جمعیت به سمت یک پاسخ بهینه رشد خواهد کرد.
در الگوریتم ژنتیک هر کروموزوم نشان دهنده پاسخی از مساله مورد نظر می باشد. این پاسخ بسته به نوع کدسازی مساله مورد نظر که  با توجه به خصوصیات مساله تعیین می شود، می تواند به صورت ماتریسی  از اعداد حقیقی (کدسازی حقیقی)، یک رشته از بیت های 0و1 ای (کدسازی باینری) و ... مطرح شود. بنابراین هر کدام از ژن ها که اجزاء کروموزوم ها میباشند، می توانند نشانگر یک عدد حقیقی، یک بیت و ... باشند.

اجزای الگوریتم ژنتیک عبارتند از:

  • جمعیت : جمعیتی از جوابهای ممکن که به کروموزوم و ژن تبدیل شده اند.
  • کدگذاری : نمایش اعضاء در الگوریتم ژنتیک
  • عملگرهای الگوریتم ژنتیک : عملگرهای ژنتیک که باعث ترکیب ساخت ژنتیکی فرزندان در طول تولید مثل می شوند.

 

2-6-1- جمعیت

مفهوم جمعیت در الگوریتم ژنتیک شبیه به چیزی است که در زندگی طبیعی وجود دارد. برای مساله گزاره هایی وجود دارند که می توانند به عنوان پاسخ، چه درست، چه غلط در نظرگرفته شوند. به این گزاره ها پاسخهای ممکن یا شدنی می گوییم. مثلا اگر مساله یافتن ماکزیمم یک تابع در مجموعه اعداد صحیح باشد، تمام اعداد صحیح می توانند به عنوان پاسخ شدنی مساله در نظر گرفته شوند.

در الگوریتم ژنتیک به عنوان اولین مرحله لازم است مجموعه ای از جوابهای شدنی به عنوان جمعیت اولیه ایجاد شود. اعضای این مجموعه معمولا به صورت تصادفی انتخاب می شوند اما در الگوریتمهای بهینه، از قیدهایی استفاده می شود تا جمعیت پراکندگی بیش از حد نداشته باشد. تعداد اعضای جمعیت به نوع مساله بستگی دارد. در واقع تعداد اعضا، پارامتری است که با تغییر آن می توان دقت جوابها و سرعت همگرایی جستجو را بهبود بخشید. در برخی مسائل یک جمعیت 8 عضوی کاملاٌ مناسب است در حالی که در برخی یک جمعیت 100 عضوی نیز کافی نیست. بر اساس تجربه بهتر است تعداد اعضای جمعیت عددی بین 10 تا 160 باشد.

بعد از انتخاب جمعیت، لازم است اعضای آن به شکل کروموزوم درآیند. هر کروموزوم آرایشی از چند ژن است. در مرحله تبدیل (کدگذاری) (Encoding) ، جوابها به ژنها تبدیل می شوند. روشهای مختلفی برای کدگذاری وجود دارد. انتخاب روش وابسته به نوع مساله ای است که به آن پرداخته می شود. نکته قابل ذکر در تبدیل جوابها به کروموزوم ها این است که طول کروموزوم ها باید برابر و ثابت باشد یعنی اگر یک جواب از مجموعه به کروموزومی با n ژن تبدیل شد، طول تمام کروموزومهای دیگر نیز باید n باشد. طول کروموزومها را نوع کدگذاری، جنس پاسخها و محدوده پاسخها تعیین می کند. کروموزومها در الگوریتم ژنتیک باید به گونه ای باشند که دقیقا تمام مشخصات پاسخ را در خود ذخیره کنند. مثلا اگر مساله با اعداد حقیقی کار می کند، کروموزوم باید شامل اطلاعات مربوط به علامت عدد، تعداد رقمهای اعشاری، محدوده عدد و ... باشد. مهمترین نوع کدگذاری، کدگذاری باینری است.

2-6-2- کدگذاری

بعد از انتخاب جمعیت، لازم است اعضای آن به شکل کروموزوم درآیند. هر کروموزوم آرایشی از چند ژن است. در مرحله تبدیل (کدگذاری) (Encoding) ، جوابها به ژنها تبدیل می شوند. روشهای مختلفی برای کدگذاری وجود دارد. انتخاب روش وابسته به نوع مساله ای است که به آن پرداخته می شود. نکته قابل ذکر در تبدیل جوابها به کروموزوم ها این است که طول کروموزوم ها باید برابر و ثابت باشد یعنی اگر یک جواب از مجموعه به کروموزومی با n ژن تبدیل شد، طول تمام کروموزومهای دیگر نیز باید n باشد. طول کروموزومها را نوع کدگذاری، جنس پاسخها و محدوده پاسخها تعیین می کند. کروموزومها در الگوریتم ژنتیک باید به گونه ای باشند که دقیقا تمام مشخصات پاسخ را در خود ذخیره کنند. مثلا اگر مساله با اعداد حقیقی کار می کند، کروموزوم باید شامل اطلاعات مربوط به علامت عدد، تعداد رقمهای اعشاری، محدوده عدد و ... باشد. مهمترین نوع کدگذاری، کدگذاری باینری (دودویی ) است.

 

  1. کدگذاری دودویی

  عمومی ترین روش وآشناترین نوع کدگذاری در GA ، همان روش کدگذاری دودویی است، زیرا در تحقیقات اولیه GA این روش مورد استفاده قرار گرفت که روش بسیار ساده ای است.

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

اغلب این روش کدگذاری برای اکثر مسائل طبیعی نیست و بعد از CrossOver و جهش باید تغییراتی درآن به وجود آورد.

 Chromosome A

101100101100101011100101

Chromosome B

111111100000110000011111

شکل 2-2- مثالی از کروموزوم ها به روش کدگذاری دودویی

  1. کدگذاری مقادیر

  شیوه ی کدگذاری مقادیر را در مواردی بکار می بریم که مسئله دارای مقادیر پیچیده ای است، مانند اعداد صحیح که استفاده از کد گذاری باینری در این حالت بسیار دشوار است .

 

Chromosome A

1.2324  5.3243  0.4556  2.3293  2.4545

Chromosome B

ABDJEIFJDHDIERJFDLDFLFEGT

Chromosome C

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

 

 

 

شکل 2-3- مثالی از کروموزوم ها با استفاده از روش کدگذاری مقادیر

 کدگذاری مقادیر روش خوبی برای کدگذاری مسئله های خاص است، ولی با این وجود برای اینگونه کد گذاری اغلب باید شیوه های توسعه یافته ی جدیدی در Crossover و جهش به کار برد .                     

2-6-2-3- کدگذاری درختی

  کدگذاری درختی اساساً برای استنتاج برنامه یا بیان طرح برنامه های الگوریتم ژنتیک مورد استفاده قرار می گیرد. کد گذاری درختی برای استنتاج برنامه ها یا هر راهبردی که بتواند به صورت درخت کدگذاری شود بسیار مفید است. زبان برنامه نویسیLISP  اغلب بدین منظور به کار میرود.  بنابراین Crossover و جهش را می توان به سادگی با این روش انجام داد.

 

2-6-3- عملگرهای الگوریتم ژنتیک

  • Fitness ( برازش، ارزیابی )
  • Selection ( انتخاب )
  • Crossover ( ترکیب )
  • Mutation ( جهش )

 

 

2-6-3-1- Fitness ( برازش )

با استفاده از این عملگر ، میزان بهینگی هر کروموزوم را تعیین می کنیم . به عنوان مثال در مسئله فروشنده دوره گرد ، تورهایی با مسافت کمتر بهینه تر هستند . و یا در مسئله n وزیر تعداد برخوردهای کمتر باعث بهینگی بیشتر کروموزوم می شود . بنابراین می توان نتیجه گرفت که عملگر Fitness برای هر کروموزوم احتمالی را نسبت می دهد که این احتمال ، همان احتمال ترکیب شدن کروموزم برای تولید نسل های آینده را نشان می دهد . بدیهی است که کروموزوم های بهینه تر شانس بیشتری برای ترکیب با دیگر کروموزوم ها خواهند داشت . بنابراین احتمالی که به آنها نیز نسبت می دهیم باید بیشتر باشد .

 

2-6-3-2-  selection (انتخاب)

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

شاید انتخاب مستقیم و ترتیبی به این شکل که بهترین اعضا دو به دو انتخاب شوند در نگاه اول روش مناسبی به نظر برسد اما باید به نکته ای توجه داشت. در الگوریتم ژنتیک ما با ژن ها روبرو هستیم. یک عضو با تطابق پایین اگرچه در نسل خودش عضو مناسبی نمی باشد اما ممکن است شامل ژنهایی خوب باشد و اگر شانس انتخاب شدنش 0 باشد، این ژنهای خوب نمی توانند به نسل های بعد منتقل شوند. پس روش انخاب باید به گونه ای باشد که به این عضو نیز شانس انتخاب شدن بدهد.

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

روشهای متداول انتخاب عبارتند از:

  • انتخاب چرخ رولت[1]
  • انتخاب ترتیبی[2]
  • انتخاب بولتزمن3
  • انتخاب حالت پایدار4
  • نخبه سالاری5
  • انتخاب رقابتی6

 

  • انتخاب چرخ رولت

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

 


[1]Roulette wheel Selection

                                                                                                                                                                            Rank Selection [2]

3 Boltzmann Selection

4 Steady-State Selection

5 Elitism

6 Tournament Selection


دانلود با لینک مستقیم


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