DNA Computing and Molecular Programming

DNA Computing and Molecular Programming

DNA Computing and Molecular Programming

DNA Computing and Molecular Programming

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

تابع f(x)=-X2+6X-3 را در نظر بگیرید.

می خواهیم مقدار ماکزیمم را برای بیابیم.

مراحل حل مسئله به روش الگوریتم ژنتیک

1) کد کردن

برای اینکار  چون ما می خواهیم اعداد بین 0 تا 15 را برای X مورد بررسی قرار دهیم پس بزگترین مقدار ما 15 هست که می توانیم آنرا به معادل باینری تبدیل کنیم که می شود 1111  یعنی حداکثر 4 بیت لازم داریم که می شود طول کروموزوم برای حل مسئله

2)تابع برازش

تابعی است که مقدار FINNESS را محاسبه می کند که از خود تابع F(X) استفاده می کنیم یعنی به ازای a , b اگر f(a) بزرگتر از f(b) باشد آنگاه a از b بهتر است.


3) انتخاب

فرض کنیم که در جمعیت اولیه:

3   ---->              0011                ----->            f(3)=6

8  ---->                1000                  ---->             f(8)=-19


4) ترکیب

فرض کنید که ترکیب عمل زیر را انجام می دهد

point 3       ---->  1000     ---->1001

point 3       ---->  0011     ---->0010


5) جهش

عمل جهش را نیز به صورت زیر انجام می دهیم

point 2     ---->  0010       -----> 0110=6

point 2     ---->  1001      -----> 1101=13

حال کروموزوم های متولد شده به جمعیت اولیه اضافه می شوند و دوباره جوابها با fitness  های پایین حذف می شوند برای اینکه جوابهایی مانند x=6 که بهترین جواب است در مراحل بعدی به نحوی از بین نرود بهترین جوابها را در جایی کنار می گذاریم


روشهایی مختلفی برای توقف الگوریتم وجود دارد مثلا اینکه اگر در طی چند مرحله جواب بهتری بدست نیامد و یا اینکه میانگین برازندگی جواب های موجود همان برازندگی بهترین جواب است

منبع : الگوریتم‌های ژنتیک و حل مسئله TSP


نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.