![]() |
راهنمایی در مورد کاربرد ژنتیک در معادلات خطی
یک مجموعه از 1000رکورد به شکل زیر داریم که در هر سطر آن ،مقدار سه پارامترAو BوC ومقدار یک تابع بر حسب این سه متغیر آمده است.میدانیم که در هر سطر ، مقدار تابع یک ترکیب خطی از سه پارامتر گفته شده است :
result=A*X+B*Y+C*Z باتوجه به اینکه xوyوz برای تمام سطرها یکسان هستند میخواهیم با یک الگوریتم ژنتیک ،مقدارxوzوy را به شکلی پیدا کنیم که میزان خطای تقریب کمترین شود.ساختار ژنوم ، عملگرهای لازم ، توابع لازم و هر چیز دیگری که برای توضیح روند ضروری میدانید را بنویسید. A B C RESULT 6 3 7 56 4 9 2 45 11 5 6 67 |
سلام. اونطوری که من فهمیدم هدف یافتن مقادیر x,y,z هست به طوریکه کمترین خطا در تقریب وجود داشته باشد. باید توجه داشته باشید که تا آنجایی که من می دانم باید حدود x,y,z را هم داشته باشید به اضافه دقت هر کدام. بنابراین با دانستن بازه اعداد مثلا از a تا b و با دقت c (مثلا 0.01). اولین کاری که باید بکنی این است که بازه اعدادو به 0 تا b-a بیاری و پس از آن این اعدادو بر c تقسیم کنی. مثلا فرض کن اعدادت(x,y,z) بین 5 تا 15 باشند. اول این اعدادو به بازه 0 تا 10 میاری و اگه دقتت 0.01 باشه، این اعداد به 0 تا 1000 تبدیل میشن. برای نمایش این اعداد به 10 بیت نیاز داری. بنابراین با این 10 بیت که برای هر کدام از x,y,z نیاز داری در کل میشه 30 بیت. عملیات جهش و تقاطع رو میزنی و برای ارزیابی برای عمل انتخاب(تعیین درصدها برای انتخاب هر جمعیت)، می تونین با مشخص بودن مقادیر x,y,z که درمرحله اول به طور تصادفی تعیین میشه، آنها را در معادلات گفته شده قرار دهید و اختلاف آن را با مقدار result به دست بیاری. این کارو برای تک تک معادلاتت انجام بده(1000 تا) و مقادیر اختلاف رو با هم جمع کن. تابع برازشت میشه مجموع این اختلافها که اختلافها رو می تونی قبل از جمع زدن به توان 2 برسونی یا قدرمطلقشو بگیری تا علامتش حذف بشه و بعد با هم جمع بزنی. ما مایلیم این مقدار کمینه شود پس برای بیشینه کردن تابع برازش می تونی یا این مقدار معکوس کنی یا منهای اونو درنظر بگیری و این مقدار به عنوان تابع برازش بیشینه کنی. بقیش مثل الگوریتم ژنتیک هستش. فقط من نمی دونم چرا می خواین این مساله رو با ژنتیک حل کنین. ژنتیک در مواردی کاربرد دارد که مساله ما، مساله پیچیده ای باشد یعنی نتوان به راحتی بهینه سراسری اونو محاسبه کرد که در این مساله به راحتی قابل محاسبه است زیرا تابع خطای ما که می خواهیم کمینه شود، یک تابع محدب بوده و با روش های رگرسیون مانند LMS به راحتی حل می شود. اگه مشکلی بود در خدمتم.
|
مهندس اگر یکی با عدد واسم بگی ممنون میشم
|
زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۲:۴۲ قبل از ظهر ميباشد. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.