X
تبلیغات
chemometrics

کمومتریکس

انتخاب چرخه رولت در الگوریتم ژنتیک
نحوه انتخاب چرخه رولت در الگوریتم ژنتیک را میتوانید با استفاده از فایل زیر مطالعه فرمایید.

لینک دانلود:

http://www.megaupload.com/?d=CR1MIAZR

|+| نوشته شده در  جمعه پانزدهم خرداد 1388 ساعت 23:47  توسط بهزاد احمدی _ حمید رشیدی  | 

انتخاب ترتیبی در الگوریتم ژنتیک
انتخاب ترتیبی در الگوریتم ژنتیک. با استفاده از لینک زیر می توانید این مطلب را دانلود کنید.


http://www.megaupload.com/?d=MOW8G3J2


|+| نوشته شده در  جمعه پانزدهم خرداد 1388 ساعت 23:44  توسط بهزاد احمدی _ حمید رشیدی  | 

انتخاب(الگوریتم ژنتیک)
در این قسمت عمل انتخاب در الگوریتم ژنتیک را میتوانید مطالعه بفرمایید برای راحتی کار آن را به صورت فایل پی دی اف در آورده ام که می توانید آن را دانلود کنید. لینک دانلود:

http://www.megaupload.com/?d=0KBOX7RI


|+| نوشته شده در  جمعه پانزدهم خرداد 1388 ساعت 23:32  توسط بهزاد احمدی _ حمید رشیدی  | 

الگوریتم ژنتیک (1)
الگوریتمهای تکاملی
در طبیعت تمام موجودات زنده در حال تکاملند. تکامل برای سازگار شدن با محیطی که در حال تغییر است. در واقع موجودات زنده به سمتی حرکت می کنند که به بهترین گونه ها تبدیل شوند. در زندگی طبیعی، اساس تکامل، ژنها هستند. ژنها با قرار گرفتن در کنار یکدیگر، کروموزومها را تشکیل میدهند. به طور خلاصه، برای بوجود آمدن یک موجود جدید از دو موجود والد، کروموزومها و در واقع ژنها با یکدیگر ترکیب میشوند. به عبارت بهتر موجود جدید شامل ژنهایی از والدین خود است که با آرایشی تازه در کنار هم قرار گرفته اند. تقریبا این آرایش به صورت تصادفی شکل میگیرد و در بعضی موجودات، ژنها جهش می یابند و تبدیل به ژنهایی می شوند که در والدین نبوده اند. اگرچه این روند به صورت تصادفی رخ می دهد، موجودات همیشه به سمت بهتر شدن پیش می روند و فرزندان ضعیف به تدریج از چرخه زندگی حذف می شوند.
براساس تئوری داروین که بیان می کند در طبیعت بهترین گونه ها زنده می مانند، الگوریتم هایی بنا شده که آنها را به عنوان الگوریتم ها تکاملی می شناسیم. این الگوریتمها، الگوریتمهای جستجوی تصادفی هستند که تکامل زیست شناسی را تقلید می کنند. این روشها بر جمعیتی از پاسخ های ممکن مساله با در نظر گرفتن اصل زنده ماندن بهترین اعضا، اعمال می شوند تا پاسخهای بهتر و بهتر مساله را تولید کنند. پاسخهای جدید پتانسیل مساله در یک نسل جدید متولد می شوند. در هر نسل مجموعه ای از پاسخهای شدنی با پروسه انتخاب اعضای نسل قبل بر اساس تطابقشان (بهتر بودنشان) و ترکیب آنها با تقلید از آنچه در طبیعت رخ می دهد، بوجود می آیند. این روند، یعنی انتخاب ژنهای بهتر، زنده ماندن ژنهای بهتر و از بین رفتن ژنهای نامناسب، مجموعه پاسخها را با تکرار پروسه به سمت تکامل می برد. در الگوریتمهای تکاملی اتفاقاتی مثل جفت یابی، ترکیب، جهش، مهاجرت و.... شبیه سازی می شوند.
الگوریتمهای تکاملی به سه دسته اصلی تقسیم می شوند:
  • الگوریتم ژنتیک
  • استراتژیهای تکاملی
  • برنامه ریزی تکاملی
الگوریتم ژنتیک
الگوریتم ژنتیک یکی از الگوریتمهای تکاملی است که اگرچه به شکلهای مختلفی ارائه شده است اما پایه تمام این شکلها چهار فرایند است که در ادامه به آنها پرداخته می شود. الگوریتم ژنتیک یک بهینه سازی غیر جبری است که مناسب برای توابعی است که بهینه سازی آنها با روشهای جبری کاری طاقت فرسا است. الگوریتم ژنتیک برای مسایلNP-Hard بسیار مناسب می باشد. همچنین این الگوریتمها قادر به حل مسایلی هستند که در فضای حلشان ناپیوستگی وجود دارد. یکی دیگر از مزایای این روش، توانایی اعمال آن به مسایلی است که دارای متغیرهای زیاد می باشند.
از طرف دیگر، الگوریتم ژنتیک ضعفهایی نیز دارد. این روش غیر جبری است بنابراین پاسخ دقیق مساله را نمی یابد و حتی ممکن است برای یک مساله مشخص با هر بار بکارگیری پاسخی متفاوت ارائه دهد. اگرچه تمامی این پاسخها می توانند پاسخهایی باشند که دقت مورد نیاز را برآورده کنند. الگوریتمهای ژنتیک قابل اعمال به تمام مسایل بهینه سازی هستند اما در مسایلی این روشها نسبت به سایر روشها بسیار کندتر عمل می کنند. بنابراین ژنتیک، روشی عمومی برای تمام جستجوها نمی باشد.
با این وجود این الگوریتم (و سایر الگوریتمهای تکاملی) فضای پاسخ را به صورت موازی و خوشه به خوشه و نه به صورت عضو به عضو می کاوند به همین دلیل امکان رخ دادن اپتیمم های محلی از بین می رود. این روشها نیازی به اطلاعات مربوط به مشتقات تابع هدف ندارند. تنها شکل اصلی تابع مورد نیاز می باشد.
چهار فرایند اصلی در الگوریتم ژنتیک عبارتند از
  • ایجاد جمعیت کروموزومها (تبدیل مجموعه ای از پاسخهای ممکن به شکل کروموزوم و ژن)
  • انتخاب (جفت یابی) (Selection)
  • ترکیب (CrossOver)
  • جهش (Mutation)
در شکل (ضمیمه ها، Pic1) چگونگی مراحل الگوریتم ژنتیک، نشان داده شده است.
قبل از ادامه بحث لازم است قسمتی بسیار مهم از الگوریتم ژنتیک، تابع تطابق (تابع هدف) (Fitness function - Objective function) را معرفی کنیم. این تابع شاید قلب الگوریتم ژنتیک باشد. انتخاب اعضاء بهتر یا به عبارتی زنده ماندن ژنهای بهتر با این تابع کنترل می شود. در ادامه به صورت مفصل درباره تابع تطابق صحبت خواهد شد.عناصر الگوریتم ژنتیک
الگوریتمهای ژنتیک اگرچه در شکلهای مختلفی وجود دارند اما حداقل شامل چهار قسمت زیر می باشند:
  • جمعیتی از جوابهای ممکن که به کروموزوم و ژن تبدیل شده اند.
  • عملگر انتخاب
  • عملگر ترکیب
  • عملگر جهش
طراحی یک الگوریتم ژنتیک برای مساله ای خاص دارای سه مرحله است:
  • طراحی شیوه کدگذاری
  • طراحی تابع تطابق
  • طراحی عملگرهای ژنتیک

جمعیت
مفهوم جمعیت در الگوریتم ژنتیک شبیه به چیزی است که در زندگی طبیعی وجود دارد. برای مساله گزاره هایی وجود دارند که می توانند به عنوان پاسخ، چه درست، چه غلط در نظرگرفته شوند. به این گزاره ها پاسخهای ممکن یا شدنی می گوییم. مثلا اگر مساله یافتن ماکزیمم یک تابع در مجموعه اعداد صحیح باشد، تمام اعداد صحیح می توانند به عنوان پاسخ شدنی مساله در نظر گرفته شوند.
در الگوریتم ژنتیک به عنوان اولین مرحله لازم است مجموعه ای از جوابهای شدنی به عنوان جمعیت اولیه ایجاد شود. اعضای این مجموعه معمولا به صورت تصادفی انتخاب می شوند اما در الگوریتمهای بهینه، از قیدهایی استفاده می شود تا جمعیت پراکندگی بیش از حد نداشته باشد. تعداد اعضای جمعیت به نوع مساله بستگی دارد. در واقع تعداد اعضا، پارامتری است که با تغییر آن می توان دقت جوابها و سرعت همگرایی جستجو را بهبود بخشید. در برخی مسایل یک جمعیت 8 عضوی کاملا مناسب است در حالی که در برخی یک جمعیت 100 عضوی نیز کافی نیست. بر اساس تجربه بهتر است تعداد اعضای جمعیت عددی بین 10 تا 160 باشد.
بعد از انتخاب جمعیت، لازم است اعضای آن به شکل کروموزوم درآیند. هر کروموزوم آرایشی از چند ژن است. در مرحله تبدیل (کدگذاری) (Encoding) ، جوابها به ژنها تبدیل می شوند. روشهای مختلفی برای کدگذاری وجود دارد. انتخاب روش وابسته به نوع مساله ای است که به آن پرداخته می شود. نکته قابل ذکر در تبدیل جوابها به کروموزوم ها این است که طول کروموزوم ها باید برابر و ثابت باشد یعنی اگر یک جواب از مجموعه به کروموزومی با n ژن تبدیل شد، طول تمام کروموزومهای دیگر نیز باید n باشد. طول کروموزومها را نوع کدگذاری، جنس پاسخها و محدوده پاسخها تعیین می کند. کروموزومها در الگوریتم ژنتیک باید به گونه ای باشند که دقیقا تمام مشخصات پاسخ را در خود ذخیره کنند. مثلا اگر مساله با اعداد حقیقی کار می کند، کروموزوم باید شامل اطلاعات مربوط به علامت عدد، تعداد رقمهای اعشاری، محدوده عدد و ... باشد. مهمترین نوع کدگذاری، کدگذاری باینری است.
|+| نوشته شده در  چهارشنبه بیست و سوم اردیبهشت 1388 ساعت 16:45  توسط بهزاد احمدی _ حمید رشیدی  | 

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

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

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

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

تابع برازش، نمایش، انتخاب و تغییر. که در ادامه آنها را توضیح خواهیم داد.

الگوریتم ژنتیک (GA) ، یک تکنیک برنامه نویسی است که از تکامل ژنتیک به عنوان یک الگوی حل مسئله استفاده می کند. مسئله ای که باید حل شود ورودی است و راه حل ها طبق یک الگو کدگذاری می شوند. الگوریتم های ژنتیک یکی از انواع الگوریتم های تکاملی است که از علم زیست شناسی مثل وراثت، جهش، انتخاب ناگهانی، انتخاب طبیعی و ترکیب الهام گرفته شده است.عموماً راه حل ها به صورت 2 تایی صفر و یک نشان داده می شوند ولی روشهای نمایش دیگری هم وجود دارد. تکامل از یک مجموعه کاملاً تصادفی از موجودیت ها شروع می شود و در نسل های بعدی تکرار می شود. در هر نسل، مناسب ترین ها انتخاب می شوند نه بهترین ها.

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

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

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

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

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

بعضی از شرایط خاتمه الگوریتم های ژنتیک عبارتند از:

-        به تعداد ثابتی از نسل ها برسیم

-        بودجه اختصاص داده شده تمام شود (زمان محاسبه، پول)

-        یک فرد (فرزند تولید شده) پیدا شود که مینیمم (کمترین) ملاک را برآورده کند.

-        بیشترین درجه برازش فرزندان حاصل شود یا دیگر نتایج بهتری حاصل نشود.

-        بازرسی دستی.

 

1- ایده اصلی

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

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

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

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

 

2- روش های نمایش

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

سومین روش برای نمایش صفات در یک GA، رشته ای از حروف است که هر حرف نمایش دهنده یک خصوصیت می باشد.

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

 

3- روشهای انتخاب

روش های مختلفی برای الگوریتم های ژنتیک وجود دارد که می توان برای انتخاب ژنوم ها از آنها استفاده کرد. امام روش های لیست شده در پایین بعضی از معمولترین روش ها هستند.

-         نخبه گزینی: مناسبترین عضو هر اجتماع انتخاب می شود.

-   انتخاب چرخان: یک روش انتخاب است که در آن عنصری که عدد برازش (تناسب) بیشتری داشته باشد، انتخاب می شود.

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

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

 

4- روش های تغییر

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

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

3-3-5 نقاط قوت الگوریتم های ژنتیک

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

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

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

5- محدودیت های الگوریتم ژنتیک

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

6- کاربردها

از مهمترین کاربردهای الگوریتم ژنتیک در شیمی می توان به موارد زیر اشاره کرد:

-        بهینه سازی ساختار مولکولی

-        تشخیص الگو و استخراج داده[1]

-        آموزش شبکه های عصبی مصنوعی

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

-        تخمین پارامترهای سینتیکی

-        بهینه سازی پارامترهای کنترل کیفی

-        روابط کمی ساختار – فعالیت

-        طبقه بندی سریهای مولکولی بزرگ

-        انتخاب طول موج برای کالیبراسیون چند متغیره

-        بررسی رفتار کروماتوگرافی غیرخطی

-        نمایش ساختارهای شیمیایی .

 

 



 

|+| نوشته شده در  سه شنبه یکم اردیبهشت 1388 ساعت 16:28  توسط بهزاد احمدی _ حمید رشیدی  |