این معادله را می توان با روشهایی مانند نیوتن و روشهای عددی دیگر حل کرد. ریشه های آن 1-،2- و 20 است.
اگر بخواهید توسط ژنتیک حل کنید، کافیست یک کروموزوم برای x و با تعدادی مثلا 5 ژن تعریف کنید. چون x شما بین 0 تا 31 است بنابراین به 5 بیت نیاز دارید. ابتدا یک تعداد جمعیت اولیه مثلا 50 کروموزوم که هر کدام دارای 5 بیت هستند، ایجاد می کنید با مقادیر تصادفی صفرو یک. و سپس با توجه به مقدار این کروموزومها و گذاشتن آن در تابع مقدار آن را به دست می آورید. مثلا فرض کنید که یک کروموزوم شما به شکل 10001 باشد. این مقدار برابر 17 است آن را در معادله می گذارید می بینید مقدار آن 1026- می شود. بر اساس این مقادیر تابع ارزیابی و درصد انتخاب کروموزومها مشخص می شوند (selection)تا در گامهای بعدی کروموزومهای بهتر با درصد بیشتری بتوانند انتخاب شوند. عمل جهش و تقاطع نیز با احتمالاتی بر روی این کروموزومها انجام می شود. و در نهایت جمعیت جدید ایجاد می شود و این کار تا رسیدن به جواب ادامه پیدا می کند. مشاهده می کنید که اگر یک کروموزوم دارای مقدار 10100 باشد یعنی 20 مقدار معادله صفر خواهد بود که مدنظر ماست بنابراین باید تابع ارزیابی طوری انتخاب شود که اگر معادله دارای مقدار صفر شد بیشترین و در مکانهای دیگر مقدار کمی بگیرد. تا در صورت مواجه شدن با این کروموزوم(20) بیشترین احتمال برای انتخاب آن را داشته باشد. همچنین این روش تنها مقادیر صحیح بین 0 تا 31 را درنظر گرفته است. برای دقت بیشتر می توان با اضافه کردن بیتهای بیشتر، مقادیر اعشاری را نیز درنظر گرفت که در این مساله با توجه به اینکه جوابها خود صحیح هستند لازم نمی باشد.
تو رو خدا اگه کسی میتونه ای معادله رو حل کنه؟؟؟؟؟؟؟؟؟؟؟؟/خواهـــــــــــــــــــــ ــــــش
سلام - فقط کافیه تابع رو با تولباکس ژنتیک در متلب بدی - تابع رو در یک تابع بنویس و اون تابع رو در تولباکس در رنج 0 تا 31 اجرا بگیر . بازم سئوال داشتی بهم میل بزن mansor.small@gmail.com
سلام - فقط کافیه تابع رو با تولباکس ژنتیک در متلب بدی - تابع رو در یک تابع بنویس و اون تابع رو در تولباکس در رنج 0 تا 31 اجرا بگیر . بازم سئوال داشتی بهم میل بزن mansor.small@gmail.com