X
تبلیغات
وکیل جرایم سایبری

IDS: Intrusion Detection System

مجموعه داده KDD CUP 1999 چیست - کاربرد ویژگی های یک اتصال شبکه برای تشخیص نفوذ

در این پست به معرفی جامع تر مجموعه داده های جمع آوری شده برای تست سیستم هایش تشخیص نفوذ تحت نام KDD CUP 1999 می پردازم و نشان خواهم داد که یک سیستم تشخیص نفوذ چگونه با استفاده از ویژگی های اتصلات شبکه پی به برای تشخیص حمله استفاده می کند  و  آخر نیز لینک  دانلود مجموعه داده KDD CUP 1999 را قرار می دهم.

نرم‌افزار های طراحی شده برای تشخیص نفوذ در شبکه ها ، کامپیوتر را در برابر کاربران غیر مجاز و یا حتی کابران خودی  محافظت می کند.وظیفه یک سیستم خود فراگیر تشخیص نفوذ ایجاد یک مدل احتمالی ( مثلاً طبقه بندی) است که توانایی تشخیص بین اتصلات بد که نفوذ یا حمله نامیده می‌شوند و اتصلات نرمال و خوب را داشته باشند.
برنامه ارزیابی تشخیص نفوذ دارپا 1998 (DARPA 1998) بوسیله آزمایشگاههای  MIT Lincoln تهیه و مدیریت شد.هدف هم بررسی و ارزیابی سیستم‌های تشخیص نفوذ بود. یک مجموعه استاندارد از داده‌ها مورد بررسی قرار گرفت ، که شامل طیف گسترده ای از نفوذ های شبیه سازی شده در یک محیط نظامی می باشد.مجموعه داده  تشخیص نفوذ KDD 1999 از نسخه‌ای از این دیتاست استفاده و بهره برداری می کند.
آزمایش  گاه های لینکولن محیطی را برای بدست آوردن ۹ هفته‌ای داده‌ای خام TCP برای یک شبکه محلی که  شبکه محلی نیروی هوایی آمریکا را شبیه سازی می‌نمود پیاده‌سازی نمودند.این شبکه کاملاً همانند شبکه نیروی هوایی عمل می‌نمود ، اما  توسط چنیدن حمله مورد ارزیابی قرار می گرفت.داده های خام آزمایشی تقریباً ۴ گیگا بایت بود که شامل دادهای خام دودویی TCP بود که از ترافیک ۷ هفته‌ای شبکه بدست آمده بود.که حاصل پردازش ۵ میلیون رکورد های مربوط به اتصلات در این شبکه بودند. به طور مشابه دو هفته داده آزمایشی دو ملیون رکورد اتصال را به همراه داشت. یک اتصال دنباله ای از بسته های TCP است که در زمان های تعریف شده شروع و پایان می یابند و جریان انتقال داده از آدرس آی پی منبع به آدرس آی پی مقصد تحت پروتکل های شناخته شده‌ای انجام میشود.هر اتصال به عنوان نرمال یا حمله برچسب می‌خورد که دقیقاً مشخص کننده یکی از انواع حملات می باشد.هر رکورد اتصال تقریباً  شامل 100 بایت است.


حملات در ۴ دسته اصلی دسته بندی می شوند.

۱- حملات DOS (denial of service) برای مثال  syn flood
۲-R2L: دسترسی غیر مجاز از یک ماشین راه دور .برای مثال حدس زدن رمز عبور
3-U2R : دسرسی غیر مجاز مجاز به دسترسی های کاربر ارشد محلی (ROOT) مثل حملات سر ریز بافر.
۴- نظارت و کاوش برای مثال اسکن نمودن پورت ها

مهم است که یاآوری کنیم که داده‌های آزمایشی(Test Data) از توزیع مشابه داده‌های آموزشی نیستند و ممکن است شامل انواع حملات خاصی باشند که در داده آموزشی( Training Data) وجود ندارد.برخی از متخصصین نفوذ معتقدند که حملات جدید نوعی از  حملات شناخته شده هستند و داشتن ردپایی از حملات شناخته شده برای شناخت انواع جدید آن‌ها کافی است.مجموعه داده شامل ۲۴ نوع حمله آموزشی و مضافا ۱۴ نوع دیگر که تنها در داده آزمایشی وجود داردند.

 انواع ویژگی‌های مشتق شده( derived features)


Stolfo et al ویژگی‌های سطح بالاتری را که برای تشخیص اتصال های نرمال از اتصلات غیر نرمال( حملات) به ما کمک  می نماید را تعریف می کند.چندین دسته بندی برای ویژگی‌های مشتق شده وجود دارد.ویژگی Same Host تنها اتصالاتی  را که  در دو ثانیه قبل  مقصد مشابهی در اتصال جاری داشته‌اند را مورد آزمایش قرار می‌دهد و آمار های وابسته به پروتوکل رفتاری آن را محاسبه می نماید.به شکل مشابهی ویژگی Same Service تنها اتصالات در دو ثاینه قبل را که سرویس مشابهی در اتصال جاری داشته‌اند را مورد آزمایش قرار می دهد.ویژگی های same host و same service در کنار یکدیگر ویژگی‌های ترافیکی مبتنی بر زمان (Time Based) از رکورد های اتصال نامیده می شوند.
برخی از حملات نظارت و کاوش (probing) هاست ها ( یا پورتها) را با استفاده از فاصله زمانی بزرگ‌تر از دو ثاینه اسکن می‌کنند ، برای مثال یک بار در دقیقه.بنابراین رکورد های اتصال براساس هاست مقصد نیز مرتب می‌شوند ، و بدین صورت ویژگی‌ها با استفاده از یک پنجره از ۱۰۰ اتصال که هاست مشابهی دارند ساخته می‌شوند و از پنجره زمانی استفاده نمی شود. این مجموعه  ویژگی‌های ترافیکی بر پایه هاست نیز نامیده می شود. بر عکس حملات DOS و نظارت و کاوش هیچ الگوی ترتیبی  در رکوردهای  مربوط به حملات R2L و U2R مشاهده نمی شود.و علت آن این است که حملات DOS و نظارت وکاوش درگیری تعدای زیادی اتصلات به تعدادی هاست در یک بازه زمانی کوتاه هستند ولی حملاتR2L و U2R در قسمت داده بسته ها خود را جاسازی می‌کنند و تنها درگیر  یک اتصال خواهند بود.
در زیر لیست کاملی از رکورد های یک اتصال را در سه جدول مشاهده می کنیم.


ویژگی های ترافیکی محاسبه شده با استفاده از پنجره زمان دو ثانیه ای

نام ویژگیشرح نوع
count  تعداد اتصلات به هاست مشابه در  اتصال حاری در دو دقیقه قبل continuous

Note: The following  features refer to these same-host connections.
نکته : ویژگیهای زیر به اتصلات same host ارجاع داده می شوند

serror_rate  % of connections that have ``SYN'' errors  continuous
rerror_rate  % of connections that have ``REJ'' errors  continuous
same_srv_rate  % of connections to the same service  continuous
diff_srv_rate  % of connections to different services  continuous
srv_count  number of connections to the same service as the current connection in the past two seconds  continuous

Note: The following features refer to these same-service connections.
srv_serror_rate  % of connections that have ``SYN'' errors  continuous
srv_rerror_rate  % of connections that have ``REJ'' errors  continuous
srv_diff_host_rate  % of connections to different hosts  continuous 


ویژگی های محتوایی یک اتصال که پیشنهاد داده شده اند

نام ویژگیشرح نوع
hot  تعداد شاخص های hot continuous
num_failed_logins  تعداد تلاش های برای ورود که با شکست مواجه شده اند continuous
logged_in  اگر با موفقیت وارد شده باشد مقدار ۰ در غیر اینصورت ۱ discrete
num_compromised  تعداد شرایط در معرض خطر continuous
root_shell  اگر پوسته روت بدست آمده باشد ۰ در غیر اینصورت ۱ discrete
su_attempted  اگر دستور su root به کار گرفته شده باشد ۰ در غیر اینصورت ۱ discrete
num_root  تعداد دسترسی های root continuous
num_file_creations  تعداد عملیات های ایجاد فایل continuous
num_shells  number of shell prompts  continuous
num_access_files  تعداد عملیات های دسترسی کنترل فایل ها continuous
num_outbound_cmds تعداد دستورات خارجی در یک نشست ftp continuous
is_hot_login  اگر ورود متعلق به لیست hot باشد ۰ در غیر اینصورت ۱ discrete
is_guest_login  1 if the login is a ``guest''login; 0 otherwise
اگر ورود میهمان باشد  ۰ در غیر اینصورت ۱
discrete


 ویژگی های پایه یک اتصال منحصر به فرد TCP

نام ویژگیشرح نوع
duration  طول اتصال ( تعداد ثانیه ها) continuous
protocol_type  نوع پروتوکل مثل TCP , UDP و غیره discrete
service  سرویس شبکه در مقصد برای مثال http , telnet و غیره discrete
src_bytes  تعداد بایت های داده از منبع به مقصد continuous
dst_bytes  تعداد بایت های داده از مقصد به منبع continuous
flag  حالت نرمال یا خطای یک اتصال discrete 
land  اگر اتصال از /به هاست مشابهی بود آنگاه پورت ۰ در غیر اینصورت پورت ۱ discrete
wrong_fragment  تعداد فرگمنت های اشتباه continuous
urgent  تعداد بسته های فوری conti


برای دانلود فایل های مربوط به مجموعه داده KDD CUP 1999  به لینک زیر مراجعه نمایید :

KDD CUP 1999

استفاده از الگوریتم های ژنتیک برای تشخص نفوذ در شبکه

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

چکیده :
این متن تکنیک اعمال نمودن الگوریتم ژنتیک را در سیستم‌های تشیخص نفوذ شرح می دهد.یک مرور کلی و خلاصه از سیستم‌های تشخیص نفوذ و تکنیک های تشخیص و الگوریتم های ژنتیک نیز آورده خواهد شد.پارامتر ها و پروسه تکامل الگوریتم ژنتیک نیز به صورت تشریحی و با جزییات مورد بحث قرار داده می شود.بر عکس دیگر مسایل مشابه ، این پیاده‌سازی هر دو نوع اطلاعات زمانی و فضایی از اتصال شبکه را به صورت رمز نمودن اطلاعات اتصال شبکه به قوانین در سیستم تشخیص نفوذ مورد بحث قرار می دهد.این شیوه برای تشخیص رفتار های ناهنجار پیچیده مفید است.این پرژه بر روی پروتوکل های شبکه TCP/IP متمرکز شده است.

مقدمه :
در سال‌های اخیر سیستم‌های تشخیص نفوذ (IDS) به یکی از داغترین زمینه‌های تحقیقاتی در بحث امنیت کامپیوتر تبدیل شده اند. این شیوه یک تکنوإوژ‌ی مهم تشخیص است و یک راه مقابله برای حفظ جامعیت داده‌ها و در در دسترسی بودن سیستم در خلال یک عملیات نفوذ می باشد.
هنگامی که یک نفوذ کرد تلاش می‌کند به یک سیستم اطلاعاتی را هم بشکند و یا یک عمل غیر قانونی را که مجاز نیست انجام بدهد ،  این فعالیت به عنوان یک نفوذ در نظر گرفته می شود.نفوذگرا را می‌توان در دو گروه قرار داد داخلی و خارجی که اشاره به آن‌هایی دارد که دسترسی مجاز(تصویب شده) به سیستم دارند و آن‌هایی که با استفاده از یکسری تکنیک های نفوذ به سیستم حمله می کنند.
تشخیص نفوذ می‌تواند با استفاده از اشکالات نرم‌افزار ، تنظیمات نادرست ، در هم شکستن رمز عبور ، مانیتور نمودن ترافیک شبکه ای غیر ایمن شده و یا بهره برداری از عیب های طراحی پروتوکل ی معین انجام شود
یک سیستم تشخیص نفوذ سیستمی است برای تشخیص نفوذ و گزارش آن‌ها با دقت کامل به فرد مناسب.
سیستم‌های تشخیص نفوذ معمولاً به سیستم‌های اطلاق می‌شوند که به عنوان ابزاری مهم در همه امور مربوط به خط مشی امنیتی یک سازمان عمل می‌کنند و عمل‌کرد سازمان را بوسیله تعریف قوانین مربوطه برای فراهم آوردن امنیت ، مدیریت نفوذ و بازیابی آسیب های ایجاد شده بوسیله نواقص امنیتی را منعکس می نماید.
دو شاخه اصلی از تکنیک های مربوط به تشخص نفوذ وجود دارند که مورد تأیید عمومی می باشد.
تشخص سو استفاده (misuse) و تشخیص ناهنجاری (anomaly) .تشخیص سوء‌استفاده به تکنیک های اطلاق می‌شود که متد های شناخته شده برای نفوذ به یک سیستم را مشخص می کند. این نفوذ ها به عنوان الگو(pattern) یا امضا(signature) مشخص می‌شوند که سیستم تشخیص نفوذ به دنبال آن است.امضا/الگو ممکن است که یک رشته ایستا باشند (static string) یا دنباله ای از عملیات هاست و پاسخ سیستم بر اساس نفوذ تشخیص داده شده می باشد.تشخیص ناهنجاری به تکنیک هایی اطلاق می‌شود که رفتار های قابل قبول و نرمال یک سیستم را تعریف و مشخص می‌کنند ( برای مثال میزان مصرف پردازنده ، زمان اجرا ، فراخوانی های سیستم) و رفتار هایی که از رفتار های نرمال و مورد انتظار سیستم خارج می‌شوند به عنوان نفوذ مورد بررسی قرار می گیرند.
 سیستم‌های تشخیص نفوذ را می‌توان با توجه به مکانی که برای جستجوی رفتار های نفوذی قرار می‌گیرند را به دو گروه تقسیم نمود. سیستم‌های تشخیص نفوذ بر پایه شبکه (NIDS) و سیستم‌های تشخیص نفوذ بر پایه هاست (HIDS) .سیستم های تشخیص نفوذ بر پایه شبکه به سیستم‌های اطلاق می‌شوند که نفوذ را بوسیله نظارت بر ترافیک ورودی و خروجی دستگاههای شبکه انجام می دهند(برای مثال کارت رابط شبکه NIC) .سیستم های تشخیص نفوذ بر پایه هاست فایل‌ها و پردازش های  فعال یک محیط نرم افزاری که مربوط به یک میزبان خاص می‌باشد را مورد نظارت قرار می دهند.برخی از سیستم‌های تشخیص نفوذ بر پایه هاست علاوه بر عمل‌کرد نرم افزاری به ترافیک شبکه برای تشخیص حملات به میزبان خود نیز توجه دارند . البته تکنیک های در حال ظهور و تکامل دیگری نیز وجود دارند.برای مثال سیستم‌های تشخیص نفوذی که به Blocking IDS معروف هستند که سیستم‌های تشخیص نفوذ بر پایه هاست را با توانایی ویرایش قوانین دیوار آتش ترکیب می کنند. نمونه دیگر که HoneyPot نامیده می‌شود که به عنوان یک طعمه هدف برای شخص مزاحم در نظر گرفته می‌شود و مشخصاً برای تلگه گذاری برای مزاحم طراحی شده‌اند و با استفاده از آن‌ها می‌توان محل مزاحم را تشخیص و به حملات او پاسخ داد.
سیستم‌های تشخیص نفوذ هوشمند (IIDS) نیز از پروژه های در حال انجام در مرکز تحقیقات کامپیوتری (Center for Computer SecurityResearch (CCSR)) در دانشگاه ایالتی می سی سی پی است.که در آن شیوه‌های مختلف برای مسائله سیستم تشخیص نفوذ با یکدیگر ترکیب می‌شوند و شامل تکنیک های مختلف هوش مصنوعی برای کمک به تشخیص رفتار نفوذگرانه .در این روش از تکنیک های تشخیص ناهنجاری و تشخیص سوء‌استفاده و هم از سیستم‌های تشخیص نفوذ بر پایه شبکه و بر پایه هاست استفاده می شود.بعضی از نرم‌افزار های تشخیص نفوذ متن باز که شامل همه این امکانات نیز هستند برای استفاده به عنوان سنسور های امنیتی مجتمع شده اند.مثل Bro و Snort .تکنیک هایی که در ادامه خواهیم دید قسمتی از تحقیقات در خصوص سیستم‌های تشخیص نفوذ هوشمند می باشد.
الگوریتم های ژنتیک به روش‌های مختلفی در سیستم‌های تشخیص نفوذ مورد استفاده قرار می گیرند.بر پایه تحقیقی که در دانشگاته تگزاس انجام گرفته است(Sinclair, Pierce, and Matzner 1999) از تکنیک های مختلف یادگیری ماشین مثال  finite state machine ،درخت تصمیم گیری و الگوریتم ژنتیک برای تولید قوانین هوشمند برای سیستم‌های تشخیص نفوذ استفاده می کند.یک اتصال شبکه و رفتار های وابسته به آن می‌توانند به نحوی ترجمه شوند تا قوانینی را به نمایش بگذارند که  بتوان با استفاده از آن‌ها در خصوص اینکه آیا این اتصال در لحظه ( بهنگام) real-time به عنوان یک نفوذ در نظر گرفته شود قضاونت نمود.قوانین می‌توانند به عنوان کروموزم های داخل جمعیت مدل شوند.این جمعیت تاز زمانی که معیاری های ارزیابی بر آورده شوند تکامل(evolves) می یابند.مجموعه قوانین تولید شده به عنوان دانش درونی یک سیستم تشخیص نفوذ برای قضاونت در مورد اینکه آیا اتصال شبکه و رفتار های مربوط به آن بصورت بالقوه نفوذگرانه هستند یا خیر.
آزمایشگاه COAST در دانشگاه Purdue(Crosbie and Spafford, 1995) سیستم تشخیص نفوذی را ایجاد نمودند که از عامل های مستقل (autonomous agents) -سنسورهای امنیتی- و اعمال هوش مصنوعی برای تکامل الگوریتم های ژنتیک استفاده نموده است.عامل ها به عنوان کروموزوم ها مدل شده‌اند و یک ارزیابی داخلی نیز درون هر عامل مورداستفاده قرار گرفته است.(Crosbie and Spafford, 1995).
در روش‌های که در بالا شرح داده شد ، سیستم تشخص نفوذ را می‌توان به عنوان سیستم بر پایه قانون (RBS) تصور نمود و الگوریتم ژنتیک به عنوان یک ابزار برای کمک به تولید دانش برای این سیستم بر پایه قانون در نظر گرفته می شود.این شیوه دارای معایبی است .به منظور تشخیص رفتار های نفوذگرانه برای یک شبکه محلی ، اتصال شبکه باید برای تعریف و مشخص نمودن رفتار های نرمال و عادی و غیر طبیعی مورد استفاده قرار گیرد.گاهی اوقات یک مله می‌تواند  اسکن ساده  پورت های در دسترس یک سرور باشد یا یک طرح برای حدس زدن رمز عبور.اما به صورت معمول این حملات بسیار پیچیده‌تر هستند و بعضا نیز بوسیله ابزار های اتوماتیک که در اینترنت هم به صورت مجانی در دسترس هستند تولید می شوند.
یک مثال می‌تواند اسبهای تروا و یا backdoor ها باشند که می‌توانند برای مدت طولانی اجرا شوند ، یا از مکانهای مختلفی آغاز شوند.برای تشخیص چنین نفوذ هایی هم  اطلاعات زمانی و مکانی ترافیک شبکه باید در مجموعه قانون موجود باشد.کاربردهای فلعی الگوریتم ژنتیک این موضوع را پشتیبانی نمی کنند(temporal and spatial information. ). در ادامه نشان می‌دهیم چگونه اطلاعات اتصال شبکه می‌تواند به عنوان کروموزوم ها مدل شوند و چگونه می‌توان  پارامتر های درون الگوریتم ژنتیک در این رابطه تعریف نمود.مثال هایی برای نشان دادن این موضوع آورده خواهد شد.
برای مشاهده کامل این مقاله می توانید از لینک زیر استفاده کنید:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.3125&rep=rep1&type=pdf

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

انتخاب والد :
انتخاب والد پروسه‌ای انتخاب والدینی است که قرار است با یکدیگر ترکیب شده و اولاد هایی را برای نسل بعدی ایجاد کنند. انتخاب والد برای نرخ همگرایی یک الگوریتم ژنتیک بسیار حیاتی است و  انتخاب خوب والدین الگوریتم ژنتیک را به  راه حل های بهتر و مناسبتر سوق می دهد.
انتخاب یک راه حل در جمعیتی با تعداد کمی از نسل ها می‌تواند میزان تنوع در راه حل‌ها را بکاهد.بنابراین حفظ تنوع خوب در جمعیت در موفقیت الگوریتم ژنتیک بسیار حیاتی است .در نظر گرفته شدن کل یک جمعیت بوسیله یک راه حل بسیار خوب تحت نام همگرایی نابهنگام (premature convergence) نامیده می‌شود که یک وضعیت نامطلوب در الگوریتم ژنتیک است.
انتخاب مناسب برازش (Fitness Proportionate Selection)
انتخاب برازش مناسب یکی از شیوه‌های مرسوم در انتخاب والد می باشد.در این روش هر شخصی می‌تواند با توجه به احتمال متناسب با برازش خود یک والد باشد.بنابراین اشخاص مناسبتر دارای شانس بالاتر برای زاد و ولد و انتشار ویژگی‌های خود به نسل های بعدی دارند.بنابراین این استراتژی در انتخاب موجب می‌شود که افرادی که درای شایستگی بیشتری در جمعیت هستند انتخاب شوند و ویژگی های این افراد در طول زمان رشد و نمود پیدا کند
یک چرخ دایره‌ای شکل را در نظر بگیرید.چرخ به n تکه تقیسیم شده است.در واقع n نشان دهنده شماره شخص در جمعیت می باشد.هر شخص یک قسمت از دایره را در اختیار دارد که فضایی که در اختیار شخص است نشان دهنده تناسب مقدار برازش آن شخص می باشد.دو شیوه برای انتخاب برازش مناسب امکان‌پذیر می‌باشد

انتخاب چرخ رولت.Roulette Wheel Selection

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


واضح است که فرد مناسبتر دارای سهم بزرگتری در چرخ است و بنابراین شانس بیشتری هم برای ایستادن در مقابل نقطه ثابت هنگامی که چرخ ، چرخانیده می‌شود دارد.شانس انتخاب یک فرد به طور مستقیم وابسته به مقدار برازش آن است.
در قسمت ذیل یک شبکه کد برای انتخاب توسط چرخ رولت آورده شده است :


for all members of population

     sum += fitness of this individual

end for


for all members of population

probability = sum of probabilities + (fitness / sum)

sum of probabilities += probability

end for


loop until new population is full

do this twice

number = Random between 0 and 1

for all members of population

if number > probability but less than next probability then you have been selected

end for

end

create offspring

end loop


نمونه برداری فراگیر تصادفی :Stochastic Universal Sampling (SUS)
.
نمونه برداری فراگیر تصادفی کاملاً مشابه روش انتخاب والد به شیوه چرخ رولت است ، هرچند بجای اینکه تنها یک نقطه ثابت بر روی چرخ داشته باشیم در این شیوه همانگونه که در شکل نشان داده شده است چندین نقطه ثابت بر روی چرخ داریم.بنابراین همه والد ها تنها در یک چرخش از چرخ(دایره) انتخاب می شوند.این شیوه از انتخاب والد اجازه می‌دهد که افراد که لیاقت بالایی دارند حد اقل یک بار شانس انتخاب شدن داشته باشند.



این نکته را باید بازگوکنم  که متدهای انتخاب برازش مناسب در مورادی که برازش می‌تواند مقدار منفی دریافت کند عمل نمی کنند.



انتخاب مسابقه‌ای (تورنومنتی)
در انتخاب K-Way تورنومنتی ، تعداد k شخص را از بین جمعیت به شکل تصادفی انتخاب می‌کنیم و بهترین آن‌ها را به عنوان والد بر می گزینیم.پروسه ای مشابه برای انتخاب والد بعدی به همین صورت تکرار می شود.شیوه انتخاب به صورت تورنومنتی برای موقعیت هایی که برازش مقدار منفی دارد نیز مناسب است.



انتخاب رتبه ای (Rank Selection)
انتخاب رتبه ای(رتبه بندی) هم مثل انتخاب مسابقه‌ای با مقادیر برازش منفی کار می‌کند و اغلب هنگامی که در جمعیت مقادیر برازش ها به هم خیلی نزدیک هستند ( اغلب در پایان اجرای الگوریتم رخ می دهد) مورد استفاده است.در این شیوه هر شخص یک تکه مساوی از دایره را به اشتراک می گیرد.همانگونه که در شکل زیر نشان داده شده است .بنابراین مقدار برازش هر شخص در انتخاب او به عنوان والد مهم نیست و همه در انتخاب از احتمال یکسانی برخوردار هستنددر .این شیوه انتخاب فشاری برای انتخاب شخص واجد شرایط تر وجود ندارد و انتخاب والد در الگوریتم ژنتیک را در برخی موقعیت ها با ضعف مواجه می‌کند . در این روش مفهوم مقدار برازش در انتخاب والد حدف می شود.هر چند برای در شخص در جمعیت یک رتبه بر اساس مقدار برازش آن در نظر گرفته می شود.انتخاب والدین بسته به مقدار رتبه هر فرد می‌باشد نه مقدار برازش آن.فرد با مقدار رتبه بالاتر بر فرد با رتبه پایینتر ارجحیت داده می شود

<< 1 ... 3 4 5 6 7 ... 9 >>