AMD>INTEL (20-08-14), fakhravary (01-11-14), M A H R A D (13-06-13), Rezasam1 (24-06-12), SajjadKhati (12-11-14), مهدی بهادرفر (12-11-14), zahra.mm (01-01-15)
در مبحث آخر به سراغ بهينه سازي هاي چندهدفه رفتيم و 3 الگوريتم را نيز معرفي كرديم. يكي از متداول ترين الگورتيم ها در اين زمينه NSGA II است كه توسط Deb ارايه شده است. در اين الگوريتم جمعيت ها جبهه بندي مي شوند و سپس معيار شلوغي در هر جبهه محاسبه مي گردد. با استفاده از روش تورنومنت، كروموزوم ها انتخاب مي شوند و در توليد مثل و جهش شركت مي كنند. مجددا" جبهه بندي و معيار شلوغي براي جمعيت هاي توليد شده ي جديد تعريف مي شود و اين روند همچنان ادامه خواهد يافت.
سورس VB.NET اين الگوريتم پيوست شده و سورس متلب آن نيز در اين بخش انجمن موجود است.
AMD>INTEL (20-08-14), fakhravary (01-11-14), M A H R A D (13-06-13), Rezasam1 (24-06-12), SajjadKhati (12-11-14), مهدی بهادرفر (12-11-14), zahra.mm (01-01-15)
اجازه دهید که یک بار دیگر این مسئله و نحوه ی تعریف آن با GA را مرور کنیم:
در مسئله ی فروشنده ی دوره گرد (TSP) مجاز نیستیم از یک شهر بیش از یک بار عبور کنیم. در نتیجه اگر براساس تولید مثل های معرفی شده در این بخش بخواهیم این مسئله را حل کنیم در کروموزوم فرزند ممکن است یک شهر دو یا چند بار تکرار شود که برخلاف فرض مسئله خواهد بود. در چنین مواردی از تولید مثل هایی تحت عنوان Order Crossover استفاده می شود. روند کامل حل TSP با GA را می توانید از پیوست دریافت نمایید.در اين مسئله فروشنده بايد فرضا" از هشت جزيره ي A، B تا H به ترتيبي عبور كند كه حداقل فاصله ي ممكن براي سفر به تمام اين جزيره ها را پيموده باشد. در اين مسئله ترتيب پيمايش جزيره ها، متغير طراحي است و مسافت طي شده، تابع هدف خواهد بود كه مقدار آن بايد كمينه شود. براي كد كردن متغير طراحي مي توان اين ايده را به كار بست:
يك كروموزوم 8 بيتي تعريف مي كنيم كه بيت اول آن از سمت چپ، نام اولين جزيره اي است كه فروشنده به آن سفر مي كند. بيت دوم نام دومين جزيره اي خواهد بود كه فروشنده به آن مي رود و الي آخر. پس كروموزوم زير نشان مي دهد:
كه فروشنده سفر خود را از جزيره ي B آغاز كرده است. بعد به جزيره ي A رفته است و طبق همين روند، سفر او در جزيره ي G خاتمه يافته است.
B|A|C|E|H|F|D|G
fakhravary (01-11-14), M A H R A D (13-06-13), Rezasam1 (02-04-13), مهدی بهادرفر (12-11-14)
سلام.خستاه نباشيد..
با تشكر از سايت خوبتون ميخواستم خواهش كنم در مورد الگوريتم ژنتيك چند هدفي و NSGA و SPEA و نمودارهاي PDF و CDF بيشتر توضيح بدين..22 خرداد امتحان دارم...اكه ميتونين واسم ميل كنين..با تشكر
porebrahimisadegh@Gmail.com
سلام!برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط sina6866 برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
عضویت تون رو در شهر سخت افزار تبریک می گم. برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
الگوریتم ژنتیک چند هدفی (MOGA) بهینه سازی یه مسئله با الگوریتم ژنتیک هستش که در اون بیش از یک تابع هدف (Cost Function) وجود داشته باشه؛ فرضا" یه سازه رو چه جوری بهینه کنیم که هم جرم مناسبی داشته و هم مقاومت مناسبی. در این صورت بهینه کردن جرم و مقاومت به عنوان دو تابع هدف در تزاحم، یه بهینه سازی چند هدفی به حساب میاد. غالبا" در MOGA از مفهومی به نام Pareto جهت شناسایی نقاط بهینه ی طراحی استفاده میشه.
NSGA نسخه ای از الگوریتم ژنتیک برای بهینه سازی مسائلی با دو تابع هدف هستش. نسخه ی اولیه ی این الگوریتم سال 2002 توسط Deb ارایه شد و بعدا" نسخه ی بهبود یافته ی اون تحت عنوان NSGA-II توسط ایشون مطرح شد. در NSGA-II توسط مفهومی به نام معیار شلوغی، نقاط طراحی در جبهه ها (Pareto Front) انتخاب میشن به طوری که نفاط نزدیک به هم حذف و نقاط تنها به نسل بعد منتقل میشن. مفهوم معیار شلوغی تنها در فضای دو بعدی قابل تصوره. این الگوریتم پاسخ های بهتری رو نسبت به الگوریتم های هم رده ی خودش ارایه میده. برای اطلاعات بیش تر
SPEA نسخه ای از الگوریتم ژنتیک برای بهینه سازی مسائلی با بیش از یک تابع هدف هستش. در این الگوریتم با مفهومی به نام فضای غالب (قابل تعریف در هر فضای n بعدی) نقاط طراحی در جبهه ها انتخاب میشن. برای اطلاعات بیش تر
PDF یا تابع چگالی احتمالات نحوه ی توزیع احتمالاتی مقادیر یه متغیر رو بیان می کنه. فرضا" این تابع میگه اگه شما برید بازار و یه میله ی یک متری بخرید چقدر احتمال داره که این میله دقیقا" یک متر باشه و چقدر احتمال داره که این میله یک متر و دو سانتی متر باشه. برای اطلاعات بیش تر
CDF یا تابع توزیع تجمعی انتگرال زیر سطح PDF هستش. طبق مثال این تابع بهتون میگه میله ی یک متری که شما خریدید چقدر احتمال داره که طولش از یک متر و دو سانتی متر بیش تر باشه و یا چقدر احتمال داره که طول از یک متر کم تر باشه. برای اطلاعات بیش تر
لازم به ذکره که PDF و CDF دو تابع پرکاربرد در الگوریتم های بهینه سازی مقاوم (Robust) نظیر RDO یا RBDO محسوب میشن که نمونه ای از سورس متلب این نوع بهینه سازی ها از این پیوند قابل دریافته.
موفق باشید
آرمین
آخرین ویرایش توسط ravegoat در تاریخ 09-06-13 انجام شده است علت: نگارشی
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
AMD>INTEL (12-11-14), designme (10-06-13), M A H R A D (13-06-13), nima_hl (10-06-13), Rezasam1 (09-06-13), مهدی بهادرفر (12-11-14)
در دو مقاله ی پیوست شده معیار هایی جهت تعیین تعداد نسل ها در الگوریتم ژنتیک و به عبارتی شرط توقف الگوریتم بهینه سازی ارایه شده است. این معیار ها با در نظر گرفتن پارامتر های مساله بهینه سازی تک هدفه و یا چند هدفه، کم ترین تعداد تکرار الگوریتم جهت همگرایی آن ارایه می کنند.
*MoJtAbA* (20-08-14), AMD>INTEL (20-08-14), nima_hl (20-08-14), Rezasam1 (20-08-14), مهدی بهادرفر (12-11-14)
سلام ببخشید این مثال میشه بگید چطور حل میشه
اعداد یک تا هفتاد به صورت هشت بیتی تعداد ژن سی تایی هفت عملگر جمع منها ضرب تقسیم رادیکال فاکتوریل رادیکال انجام بده
خیلی فوری
- - - Updated - - -
ایمیل من aria.abounouri@Gmail.com
با سلام!برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط ariael برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
به شهر سخت افزار خوش آمدید.
بنده فقط بخش اول سوالتون رو متوجه شدم:
اگر بخواهیم اعداد بین 1 تا 70 را با یک کروموزوم 8 بیتی بیان کنیم باید از یک نگاشت بهره ببریم. برای رمز کردن عدد آن را از یک کم کرده و سپس جز صحیح حاصل ضرب آن را در 3.71 می یابیم. در نهایت حاصل را از مبنای 10 به مبنای 2 می بریم.
برای رمز گشایی ما ابتدا کروموزوم 8 بیتی را از مبنای 2 به مبنای 10 می بریم و حاصل را بر 256 تقسیم می کنیم. عدد به دست آمده را در 69 ضرب کرده و در نهایت با یک جمع می کنیم.
موفق باشید
آرمین
آخرین ویرایش توسط ravegoat در تاریخ 12-11-14 انجام شده است علت: نگارشی
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
AMD>INTEL (12-11-14), nima_hl (12-11-14), Rezasam1 (12-11-14), مهدی بهادرفر (12-11-14)
2 کاربر در حال مشاهده این موضوع. (0 عضو و 2 میهمان)
Bookmarks