بایگانی برچسب برای: بهسان اندیش

گذری بر سیستم‌های خبره‌ (Expert Systems)

گذری بر سیستم های خبره
اشاره :
<استدلال> در میان اهل فن و صاحبان اندیشه تعاریف و تفاسیر متنوعی دارد. در نگاهی كلی، استفاده از دلیل و برهان برای رسیدن به یك نتیجه از فرضیاتی منطقی با استفاده از روش‌های معین، تعریفی از استدلال تلقی می‌شود؛ تعریفی كه البته با دیدگاه‌های فلسفی و گاه ایده‌آل‌گرایانه از استدلال تفاوت دارد. با این حال موضوع مهم و اساسی در اینجا بحث در چیستی و چرایی این دیدگاه‌ها نیست، بلكه در مورد نحوه طراحی سیستم‌های با قدرت استدلال، با هر تعریفی، برای رسیدن به مجموعه‌ای از تصمیمات منطقی‌ ‌ با استفاده از مفروضات یا به طور دقیق‌تر دانشی است كه در اختیار آن‌ها قرار می‌گیرد. سیستم‌هایی خبره (expert systems) اساسا برای چنین هدفی طراحی می‌شوند. در حقیقت به واسطه الگوبرداری این سیستم‌ها از نظام منطق و استدلال انسان و نیز یكسان بودن منابع دانش مورد استفاده آن‌ها، حاصل كار یك سیستم خبره می‌تواند تصمیماتی باشد كه درحوزه‌ها و عرصه‌های مختلف قابل استفاده، مورد اطمینان و تاثیرگذار هستند. بسیاری بر این باورند كه سیستم‌های خبره بیشترین پیشرفت را در هوش مصنوعی به وجود آورده‌اند. آن‌چه درادامه می‌خوانید نگاهی كوتاه به تعاریف و سازوكار سیستم‌های خبره و گذری بر مزایا و محدودیت‌های به كارگیری این سیستم‌ها در علوم و فنون مختلف است. طبیعتاً مباحث كاربردی‌تر و عملی‌تر درباره سیستم‌های خبره و بحث درباره نحوه توسعه و پیاده‌سازی آن‌ها، نیازمند مقالات جداگانه‌ای است كه در آینده به آن‌ها خواهیم پرداخت.

سیستم خبره چیست؟

در یك تعریف كلی می‌توان گفت سیستم‌های خبره، برنامه‌های كامپیوتری‌ای هستند كه نحوه تفكر یك متخصص در یك زمینه خاص را شبیه‌سازی می‌كنند. در واقع این نرم‌افزارها، الگوهای منطقی‌ای را كه یك متخصص بر اساس آن‌ها تصمیم‌گیری می‌كند، شناسایی می‌نمایند و سپس بر اساس آن الگوها، مانند انسان‌ها تصمیم‌گیری می‌كنند.
یكی از اهداف هوش مصنوعی، فهم هوش انسانی با شبیه‌سازی آن توسط برنامه‌های كامپیوتری است. البته بدیهی است كه “هوش‌”‌ را می‌توان به بسیاری از مهارت‌های مبتنی بر فهم، از جمله توانایی تصمیم‌گیری، یادگیری و فهم زبان تعمیم داد و از این‌رو واژه‌ای كلی محسوب می‌شود.
بیشتر دستاوردهای هوش مصنوعی در زمینه تصمیم‌گیری و حل مسئله بوده است كه اصلی‌ترین موضوع سیستم‌های خبره را شامل می‌شوند. به آن نوع از برنامه‌های هوش مصنوعی كه به سطحی از خبرگی می‌رسند كه می‌توانند به جای یك متخصص در یك زمینه خاص تصمیم‌گیری كنند، expert systems یا سیستم‌های خبره گفته می‌شود. این سیستم‌ها برنامه‌هایی هستند كه پایگاه دانش آن‌ها انباشته از اطلاعاتی است كه انسان‌ها هنگام تصمیم‌گیری درباره یك موضوع خاص، براساس آن‌ها تصمیم می‌گیرند. روی این موضوع باید تأكید كرد كه هیچ‌یك از سیستم‌های خبره‌ای كه تا‌كنون طراحی و برنامه‌نویسی شده‌اند، همه‌منظوره نبوده‌اند و تنها در یك زمینه محدود قادر به شبیه‌سازی فرآیند تصمیم‌گیری انسان هستند.
به محدوده اطلاعاتی از الگوهای خبرگی انسان كه به یك سیستم خبره منتقل می‌شود، task domain گفته می‌شود. این محدوده، سطح خبرگی یك  سیستم خبره را مشخص می‌كند و نشان می‌دهد ‌كه آن سیستم خبره برای چه كارهایی طراحی شده است. سیستم خبره با این task ها یا وظایف می‌تواند كارهایی چون برنامه‌ریزی، زمانبندی، و طراحی را در یك حیطه تعریف شده انجام دهد.
به روند ساخت یك سیستم خبره، knowledge engineering یا مهندسی دانش گفته می‌شود. یك مهندس دانش باید اطمینان حاصل كند كه سیستم خبره طراحی شده، تمام دانش مورد نیاز برای حل یك مسئله را دارد. طبیعتاً در غیراین‌صورت، تصمیم‌های سیستم خبره قابل اطمینان نخواهند بود.

ساختار یك سیستم خبره‌

هر سیستم خبره از دو بخش مجزا ساخته شده است: پایگاه دانش و موتور تصمیم‌گیری.
پایگاه دانش یك سیستم خبره از هر دو نوع دانش مبتنی بر حقایق ‌(factual) و نیز دانش غیرقطعی (heuristic)  استفاده می‌كند. Factual knowledge، دانش حقیقی یا قطعی نوعی از دانش است كه می‌توان آن را در حیطه‌های مختلف به اشتراك گذاشت و تعمیم داد؛ چراكه درستی آن قطعی است.
در سوی دیگر، Heuristic knowledge قرار دارد كه غیرقطعی‌تر و بیشتر مبتنی بر برداشت‌های شخصی است. هرچه حدس‌ها یا دانش هیورستیك یك سیستم خبره بهتر باشد، سطح خبرگی آن بیشتر خواهد بود و در شرایط ویژه، تصمیمات بهتری اتخاذ خواهد كرد.
دانش مبتنی بر ساختار Heuristic در سیستم‌های خبره اهمیت زیادی دارد این نوع دانش می‌تواند به تسریع فرآیند حل یك مسئله كمك كند. البته یك مشكل عمده در ارتباط با به كارگیری دانشHeuristic آن است كه نمی‌توان در حل همه مسائل از این نوع دانش استفاده كرد. به عنوان نمونه جلوگیری از حمل سموم خطرناك از طریق خطوط هوایی با استفاده از روش Heuristic امكانپذیر نیست.
اطلاعات این بخش از سیستم خبره از طریق مصاحبه با افراد متخصص در این زمینه تامین می‌شود. مهندس دانش یا مصاحبه‌كننده، پس از سازمان‌دهی اطلاعات جمع‌آوری‌شده از متخصصان یا مصاحبه شوندگان، آ‌ن‌ها را به قوانین قابل فهم برای كامپیوتر به صورت (if-then) موسوم به قوانین ساخت (production rules) تبدیل می‌كند.
موتور تصمیم‌گیری سیستم خبره را قادر می‌كند با استفاده از قوانین پایگاه دانش، پروسه تصمیم‌گیری را انجام دهد. برای نمونه، اگر پایگاه دانش قوانینی به صورت  زیر داشته باشد:
●دفتر ماهنامه شبكه در تهران قرار دارد.
●تهران در ایران قرار دارد.
سیستم خبره می‌تواند به قانون زیر برسد:
●‌ دفتر ماهنامه شبكه در ایران قرار دارد.
 در یك تعریف كلی می‌توان گفت سیستم‌های خبره، برنامه‌های كامپیوتری‌ای هستند كه نحوه تفكر یك متخصص در یك زمینه خاص را شبیه‌سازی می‌كنند.

استفاده از  منطق فازی 

موضوع مهم دیگر در ارتباط با سیستم‌های خبره، پیوند و ارتباط آن با دیگر شاخه‌های هوش مصنوعی است. به بیان روشن‌تر، برخی از سیستم‌های خبره از Fuzzy Logic یا منطق فازی استفاده می‌كنند. در منطق غیرفازی تنها دو ارزش درست (true) یا نادرست (false) وجود دارد. چنین منطقی نمی‌تواند چندان كامل باشد؛ چراكه فهم و پروسه تصمیم‌گیری انسان‌ها در بسیاری از موارد، كاملا قطعی نیست و بسته به زمان و مكان آن، تا حدودی درست یا تا حدودی نادرست است. در خلال سال‌های 1920 و 1930، Jan Lukasiewicz فیلسوف لهستانی منطقی را مطرح كرد كه در آن ارزش یك قانون می‌تواند بیشتر از دو مقدار 0 و 1 یا درست و نادرست باشد. سپس پروفسور لطفی‌زاده نشان داد كه منطق Lukasiewicz را می‌توان به صورت “درجه درستی” مطرح كرد. یعنی به جای این‌كه بگوییم: “این منطق درست است یا نادرست؟” بگوییم: “این منطق چقدر درست یا چقدر نادرست است؟”
از منطق فازی در مواردی استفاده می‌شود كه با مفاهیم مبهمی چون “سنگینی”، “سرما”، “ارتفاع” و از این قبیل مواجه شویم. این پرسش را در نظر بگیرید : “وزن یك شیء 500 كیلوگرم است، آیا این شیء سنگین است؟” چنین سوالی یك سوال مبهم محسوب می‌شود؛ چراكه این سوال مطرح می‌شود كه “از چه نظر سنگین؟” اگر برای حمل توسط یك انسان بگوییم، بله سنگین است. اگر برای حمل توسط یك اتومبیل مطرح شود، كمی سنگین است، ولی اگر برای حمل توسط یك هواپیما مطرح شود سنگین نیست.
در اینجاست كه با استفاده از منطق فازی می‌توان یك درجه درستی برای چنین پرسشی در نظر گرفت و بسته به شرایط گفت كه این شیء كمی سنگین است. یعنی در چنین مواردی گفتن این‌كه این شیء سنگین نیست
(false) یا سنگین است (true) پاسخ دقیقی نیست.
مزایا و محدودیت‌های سیستم‌های خبره 
دستاورد سیستم‌های خبره را می‌توان صرفه‌جویی در هزینه‌ها و نیز تصمیم‌گیری‌های بهتر و دقیق‌تر و بسیاری موارد تخصصی‌تر دیگر عنوان كرد. استفاده از سیستم‌های خبره برای شركت‌ها می‌تواند صرفه‌جویی به همراه داشته باشد.
در زمینه تصمیم‌گیری نیز گاهی می‌توان در شرایط پیچیده، با بهره‌گیری از چنین سیستم‌هایی تصمیم‌های بهتری اتخاذ كرد و جنبه‌های پیچیده‌ای را در مدت زمان بسیار كمی مورد بررسی قرار داد كه تحلیل آنها به روزها زمان نیاز دارد.
از سوی دیگر، به‌كارگیری سیستم‌های خبره محدودیت‌های خاصی دارد. به عنوان نمونه، این سیستم‌ها نسبت به آنچه انجام می‌دهند، هیچ <حسی> ندارند.  چنین سیستم‌هایی نمی‌توانند خبرگی خود را به گستره‌های وسیع‌تری تعمیم دهند؛ چراكه تنها برای یك منظور خاص طراحی شده‌اند و پایگاه دانش آن‌ها از دانش متخصصان آن حوزه نشات گرفته و از این‌رو محدود است.
چنین سیستم‌هایی از آنجا كه توسط دانش متخصصان تغذیه اطلاعاتی شده‌اند، در صورت بروز برخی موارد پیش‌بینی نشده، نمی‌توانند شرایط جدید را به درستی تجزیه و تحلیل نمایند.
كاربرد سیستم‌های خبره‌
از سیستم‌های خبره در بسیاری از حیطه‌ها از جمله برنامه‌ریزی‌های تجاری، سیستم‌های امنیتی، اكتشافات نفت و معادن، مهندسی ژنتیك، طراحی و ساخت اتومبیل، طراحی لنز دوربین و زمانبندی برنامه پروازهای خطوط هوایی استفاده می‌شود. دو نمونه از كاربردهای این سیستم‌ها در ادامه توضیح داده‌شده‌اند.
●‌ طراحی و زمانبندی‌
سیستم‌هایی كه در این زمینه مورد استفاده قرار می‌گیرند، چندین هدف پیچیده و تعاملی را مورد بررسی قرار می‌دهند تا جوانب كار را روشن كنند و به اهداف مورد نظر دست یابند یا بهترین گزینه را پیشنهاد دهند. بهترین مثال از این مورد، زمانبندی پروازهای خطوط هوایی، كارمندان و گیت‌های یك شركت حمل و نقل هوایی است.
‌● تصمیم‌گیری‌های مالی‌
صنعت خدمات مالی یكی از بزرگ‌ترین كاربران سیستم‌های خبره است. نرم‌افزارهای پیشنهاددهنده نوعی از سیستم‌های خبره هستند كه به عنوان مشاور بانكداران عمل می‌كنند. برای نمونه، با بررسی شرایط یك شركت متقاضی وام از یك بانك تعیین می‌كند كه آیا پرداخت این وام به شركت برای بانك مورد نظر صرفه اقتصادی دارد یا نه. همچنین شركت‌های بیمه برای بررسی میزان خطرپذیری و هزینه‌های موارد مختلف، از این سیستم‌ها استفاده می‌كنند.
چند سیستم خبره مشهور
از نخستین سیستم‌های خبره می‌توان به Dendral اشاره كرد كه در سال 1965 توسط Edward Feigenbaum وJoshun Lederberg پژوهشگران هوش مصنوعی در دانشگاه استنفورد ساخته شد.
وظیفه این برنامه كامپیوتری، تحلیل‌های شیمیایی بود. ماده مورد آزمایش می‌توانست تركیبی پیچیده از كربن، هیدروژن و نیتروژن باشد. Dendarl می‌توانست با بررسی آرایش و اطلاعات مربوط به یك ماده، ساختار مولكولی آن را شبیه‌سازی كند. كاركرد این نرم‌افزار چنان خوب بود كه می‌توانست با یك متخصص رقابت كند.
از دیگر سیستم‌های خبره مشهور می‌توان به MYCIN اشاره كرد كه در سال 1972 در استنفورد طراحی شد. MYCIN برنامه‌ای بود كه كار آن تشخیص عفونت‌های خونی با بررسی اطلاعات به دست آمده از شرایط جسمی بیمار و نیز نتیجه آزمایش‌های او بود.
برنامه به گونه‌ای طراحی شده بود كه در صورت نیاز به اطلاعات بیشتر، با پرسش‌هایی آن‌ها را درخواست می‌كرد تا تصمیم‌گیری بهتری انجام دهد؛ پرسش‌هایی چون “آیا بیمار اخیرا دچار سوختگی شده است؟” (برای تشخیص این‌كه آیا عفونت خونی از سوختگی نشات گرفته یا نه. MYCIN ( گاه می‌توانست نتایج آزمایش را نیز از پیش حدس بزند.
سیستم خبره دیگر در این زمینه Centaur بود كه كار آن بررسی آزمایش‌های تنفسی و تشخیص بیماری‌های ریوی بود. یكی از پیشروان توسعه و كاربرد سیستم‌های خبره، سازمان‌های فضایی هستند كه برای مشاوره و نیز بررسی شرایط پیچیده و صرفه‌جویی در زمان و هزینه چنین تحلیل‌هایی به این سیستم‌ها روی آورده‌اند.
Marshall Space Flight Center) MSFC) یكی از مراكز وابسته به سازمان فضایی ناسا از سال 1994 در زمینه توسعه نرم‌افزارهای هوشمند كار می‌كند كه هدف آن تخمین كمّ و كیف تجهیزات و لوازم مورد نیاز برای حمل به فضا است.
این برنامه‌های كامپیوتری با پیشنهاد راهكارهایی در این زمینه از بار كاری كارمندان بخش‌هایی چون ISS (ایستگاه فضایی بین المللی)  می‌كاهند و به گونه‌ای طراحی شده‌اند كه مدیریت‌پذیرند و بسته به شرایط مختلف، قابل تعریف هستند.
مركز فضایی MSFC، توسط فناوری ویژه خود موسوم به 2G به ایجاد برنامه‌های ویژه كنترل هوشمندانه و سیستم‌های مانیتورینگ خطایاب می‌پردازد. این فناوری را می‌توان هم در سیستم‌های لینوكسی و هم در سیستم‌های سرور مبتنی بر ویندوز مورد استفاده قرار داد.
آنچه در نهایت می‌توان گفت آن است كه یكی از مزیت‌های سیستم‌های خبره این است كه می‌توانند در كنار متخصصان انسانی مورد استفاده قرار بگیرند كه ماحصل آن تصمیمی مبتنی بر تخصص انسانی و دقت ماشینی است. این فناوری از دید تجاری نیز برای توسعه‌دهندگان آن سودآور است.
هم‌اكنون شركت‌های بسیاری به فروش سیستم‌های خبره و پشتیبانی از مشتریان محصولات خود می‌پردازند. درآمد یك شركت كوچك فعال در زمینه فروش چنین محصولاتی می‌تواند سالانه بالغ بر پنج تا بیست میلیون دلار باشد. بازار فروش و پشتیبانی سیستم‌های خبره در سراسر جهان نیز سالانه به صدها میلیون دلار می‌رسد.

خبرگی

خبرگی(Expertise) دانشی است تخصصی که برای رسیدن به آن نیاز به مطالعه مفاهیم تخصصی یا دوره‌های ویژه وجود دارد.

سیستم‌های خبره

سیستم‌های خبره یکی از زیرشاخه‌های هوش مصنوعی می‌باشد و یک سیستم خبره به برنامه کامپیوتری گفته می‌شود که دارای خبرگی در حوزه خاصی می‌باشد و می‌تواند در آن حوزه تصمیم‌گیری با کمک به خبره جهت تصمیم‌گیری بکار رود.

نکته

سیستم‌های خبره برا حل مسائلی بکار می‌روند که:1. الگوریتم خاصی برا حل آن مسائل وجود ندارند.

2. دانش صریح برای حل آن مسائل وجود دارد.

بنابراین اگر سیستمی با استفاده از روش‌های علم آماراقدام به پیش‌بینی دمای‌هوای فردا کند، در حوزه سیستم‌های خبره قرار نمی‌‌گیرد.اما اگر سیستمی بااستفاده از این قاعده که«در این فصل سال دمای‌هوا معمولا ثابت می‌باشد» و این واقعیت که «دمای امروز 25 درجه سانتی گراد می‌باشد» به این نتیجه دست یابد که «دمای فردا 25 درجه خواهد بود» در حوزه سیستم‌های خبره قرا خواهد گرفت.

از سیستم خبره نباید انتظار داشت که نتیجه بهتر از نتیجه یک خبره را بیابد. سیستم خبره تنها می‌تواند همسطح یک خبره اقدام به نتیجه‌گیری نماید. سیستم‌های خبره همیشه به جواب نمی‌رسند.

باتوجه به این که علوم مختلفی وجود دارد در نتیجه خبرگی در شاخه‌های علمی متفاوت مطرح است. یک فرد خبره(Expert) فردی است که در زمینه‌ای خاص مهارت دارد به طور مثال یک پزشک یک مکانیک و یک مهندس افرادی خبره هستند. این مسئله بیانگر این است که دامنه کاربرد سیستم‌های خبره گسترده است و می‌توان برای هر زمینه کاری یک سیستم خبره طراحی نمود.

بیان خبرگی در قالب دانش یا بازنمایی دانش

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

اجزای اصلی سیستم خبره

یک سیستم خبره دارای اجزای زیر می‌باشد:

پایگاه دانش

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

به کسی که دانش خبره را کد کرده و وارد پایگاه دانش می‌کند مهندس دانش (Knowledge engineer) گفته می‌شود.

بطور کلی دانش به صورت عبارات شرطی و قواعد در پایگاه دانش ذخیره می‌گردد.«اگر چراغ قرمز است آنگاه متوقف شو»

هرگاه این واقعیت وجود داشته باشد که «چراغ قرمز است» آنگاه این واقعیت با الگوی« چراغ قرمز است» منطبق می‌شود. دراین صورت این قاعده برآورده می‌شود و دستور متوقف شو اجرا می‌شود.

موتور استنتاج

یعنی از دانش موجود استفاده و دانش را برای حل مسئله به هم ربط دهیم.

موتور استنتاج با استفاده از قواعد منطق و دانش موجود در پایگاه دانش و حقایق حافظه کاری اقدام به انجام کار خاصی می‌نماید. این عمل یا بصورت افزودن حقایق جدیدی به پایگاه دانش می‌باشد یا بصورت نتیجه‌ای برای اعلام به کاربر یا انجام کار خاصی می‌باشد.

حافظه کاری

حافظه‌ای برای ذخیره پاسخ سوال‌های مربوط به سیستم می‌باشد.

امکانات کسب دانش

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

امکانات توضیح

برای نشان دادن مراحل نتیجه‌گیری سیستم خبره برای یک مسئله خاص با واقعیت خاص به کاربر به زبان قابل فهم برای کاربر بکارمی‌رود. این امکانات این فایده را دارد که کاربر با دیدن مراحل استنتاج اطمینان بیشتری به تصمیم گرفته‌شده توسط سیستم خواهد داشت و خبره‌ای که دانش او وارد پایگاه دانش شده‌است اطمینان حاصل خواهد کرد که دانش و به صورت صحیح وارد شده‌است.

اگر د ارتباط با سیستم سوال و جوابهایی مطرح شود و سیستم به ما یک سری راهکار پیشنهاد کند و توضیحی در زمینه اینکه چرا چنین سوالی پرسیده می‌شود؟(Why) و چگونه به این نتیجه رسیده‌ایم؟(How) را در ناحیه‌ای ذخیره نماییم، امکانات توضیح را تشکیل می‌دهد.

بخش ارتباط با کاربر

مربوط به بخشی است که بطور مستقیم با کاربر در ارتباط است.

کاربردهای سیستم های خبره

1- جایگزینی برای فرد خبره(سیستم اینترنتی در زمینه مشاور محصولات یک شرکت)

  • تداوم کار در صورت عدم دسترسی به فرد خبره
  • کاهش هزینه
  • احساساتی نبودن سیستم و خستگی ناپذیری آن

2- کمک و دستیار( برنامه‌های MS Project یا Autocad یا Pspicee برنامه‌هایی هستند که دانشی برای انجام عملیاتی برای کمک به افرادی خاص را دارند)

سیستم خبره قسمت 1
سیستم خبره قسمت 2
سیستم خبره قسمت 3
سیستم خبره قسمت 4
سیستم خبره قسمت 5
سیستم خبره قسمت 6

روش PCA چند لایه

این روش در مقاله ی ارائه شده است. این روش به این صورت است که پس از این که سیستم با چند عکس تمرین داده شد, عکسها بر اساس میزان نزدیکی به تصویر ورودی مرتب می شوند. تعدادی از شبیه ترین عکس ها به عکس ورودی انتخاب می شوند و سیستم دوباره و با این تعداد عکس انتخاب شده تمرین داده می شود. این روند می تواند چند مرحله ی دیگر تکرار شود. با توجه به اینکه در هر مرحله دامنه ی جستجو محدود تر می شود, انتظار می رود که نتایج دقیق تری بدست آید. هر مرحله از این الگوریتم را یک لایه می نامند, به همین دلیل این روش, pca چند لایه نامیده شده است.
کد پیاده سازی شده مربوط به این الگوریتم را می توانید از اینجا دریافت کنید. برای آزمایش نرخ تشخیص چهره با این روش,آزمایشی مشابه آزمایش اول, انجام شد و حدود 55 درصد از تصاویر ورودی به درستی شناسایی شدند که نشانگر بهبود 5 درصدی نسبت به الگوریتم pca معمولی می باشد.

روش Modular PCA

این روش در مقاله ی [9] ارائه شده است. روش PCA معمولی در مقابل تغییرات حالت قرار گرفتن چهره در تصویر و تغییرات میزان نور در تصویر, بازده خوبی ندارد. چون در این روش مشخصات عمومی چهره, در قالب مجموعه ای از وزن ها (بردار وزن ها) توصیف می شود. تک تک این وزن ها وابسته به تمام نواحی چهره می باشند. بنابراین با تغییر حالت چهره و نورپردازی, حتی در قسمتی از تصویر, تمام وزن های این بردار دچار تغییر می شوند.
روش MudularPca سعی در رفع این مشکل دارد. در این روش یک عکس به چند قسمت کوچکتر تقسیم می شود و الگوریتم PCA روی این عکس ها اعمال می شود و بردار وزن ها برای هر قطعه به صورت جداگانه محاسبه می شود. با این عمل(تقسیم تصویر به چند تکه), تغییر در قسمتی از تصویر تنها بردار ویژگی آن قسمت از تصویر را تغییر می دهد و بردارهای مربوط به سایر قطعات بدون تغییر باقی می مانند. هنگام تشخیص چهره, هر قطعه از عکس ورودی با قطعه ی متناظر در تصاویری که سیستم با آنها تمرین داده شده است مقایسه می شود و به تعداد قطعات, فاصله محاسبه می شود. تصویری که مجموع فواصل قطعات آن با قطعات عکس ورودی کمتر از سایر تصاویر باشد, به عنوان تصویر مشابه با تصویر ورودی در نظر گرفته می شود.

 

کد پیاده سازی شده ی این الگوریتم را می توانید از اینجا دریافت کنید. برای آزمایش این روش, آزمایشی مشابه آزمایش اول انجام شد, اما تغییر محسوسی در نتایج بدست نیامد.

نحوه ی استفاده از کدها در گیت هاب قرار داده شده است.

کارهای آینده

برای بهبود نتایج حاصل از PCA معمولی که در بخش کارهای مرتبط شرح داده شد, کارهای زیادی انجام شده است و مقالات زیاد به چاپ رسیده است. تعدادی از این روش ها در بخش آزمایش ها شرح داده شد و کد مربوط به آنها پیاده سازی شد. در این بخش چند نمونه از کارهای انجام شده ی دیگر را بدون پیاده سازی به طور مختصر شرح می دهیم :

برای مثال در مقاله ی [10] فرمولهای مختلف فاصله, برای بدست آوردن فاصله ی تصویر ورودی و تصاویر موجود در سیستم استفاده شده است و نرخ تشخیص چهره ی آن ها با هم مقایسه شده است. در این مقاله از فاصله های euclidian distance, city block distance, angle distance, mahalanobis distance و یک بار هم از مجموع این چهار فاصله استفاده شده است و این نتیجه بدست آمده است که استفاده از مجموع این چهار فاصله نتیجه ی بهتری می دهد.

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

منبع


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

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

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

VeriLook به عنوان SDK های زیر در دسترس است :

SDK استاندارد برای توسعه کاربردهای بیومتریکی مبتنی بر PC در نظر گرفته شده است و شامل کامپوننت های استخراج کننده و تطبیق دهنده ، خودآموزها و نمونه های برنامه نویسی ، کتابخانه مدیریت دوربین و مستندات نرم افزار می باشد. SDK امکان توسعه کاربردهای بیومتریک را برای سیستم عامل های Linux ، Microsof Windows و Mac OS X فراهم می کند.

SDK توسعه یافته برای توسعه کاربردهای بیومتریکی تحت وب و شبکه در نظر گرفته شده است. این SDK علاوه بر تمام ویژگی های SDK استاندارد ، شامل نمونه برنامه های client ، خودآموزها و سرور تطبیق آماده برای استفاده نیز می باشد.

منبع


تشخیص چهره انسان

مقدمه

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

از موارد زیر می‌توان به عنوان چالش‌های پیش‌رو در زمینه‌ی تشخیص چهره‌ نام برد:

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

 

شکل شماره ۱

در ادبیات تشخیص چهره، مفهومی مرتبط وجود دارد که از آن به عنوان مکان‌یابی چهره یاد می‌کنیم. خواننده محترم باید این نکته را در نظر داشته باشد که هدف از مکان‌یابی چهره درست همانند تشخیص چهره هست اما تفاوت اندکی موجود خواهد بود و آن این که در مکان‌یابی چهره تصویر موجود فقط شامل یک چهره در نظر گرفته می‌شود.
یکی از روش‌های مرسوم در زمینه تشخیص اشیاء در نظر گرفتن قابی کوچک روی تصویر اصلی و تشخیص این خواهد بود که آیا شیء مورد نظر در آن پنجره وجود دارد یا نه؟ پس اگر از این روش استفاده شود باید در جستجوی الگوریتمی بود تا توانایی تشخیص وجود یا عدم وجود چهره در یک قاب کوچک، متشکل از چند صد پیکسل داشته باشد.
در این دیدگاه تشخیص چهره را می‌توان به صورت مساله‌ی دسته بندی نیز در نظر گرفت. به این صورت که عامل هوش مصنوعی باید قاب‌های مختلف موجود در تصویر را در دو گروه چهره و غیرچهره در نظر گرفت.

المان‌های مختلفی را می‌توان در ارزیابی یک سیستم تشخیص چهره مؤثر دانست مانند زمان یادگیری، زمان اجرا، تعداد مثال‌های مورد نیاز برای یادگیری و نسبت بین میزان تشخیص و خطای منفی.
میزان تشخیص را می‌توان به نسبت تعداد چهره‌های درست تشخیص داده شده توسط عامل هوش مصنوعی به تعداد چهره‌های تشخیص داده شده توسط انسان تعریف کرد.
در صورتی قابی توسط عامل تشخیص داده شده است به عنوان چهره در نظر گرفته می‌شود که قاب مورد نظر بیشتر از میزان خاصی از چهره‌ی فرد را پوشش دهد.
از طرف دیگر خطای منفی زمانی رخ می‌دهد که عامل در تشخیص چهره ناموفق باشد که این خود ریشه در پایین بودن میزان تشخیص خواهد بود. در مقابل خطای منفی مفهوم دیگری به نام خطای مثبت7 وجود دارد که وقتی قابی به عنوان چهره از طرف عامل هوش‌ مصنوعی معرفی می‌شود اما عامل انسانی تایید نمی‌کند، رخ می‌دهد.

نرخ تشخیص

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

روش‌های موجود

روش‌های موجود در تشخیص چهره را می‌توان به چهار گروه مختلف تقسیم کرد:

  • روش‌های دانش‌ محور
  • روش‌های جزئیات محور
  • روش‌های الگو محور
  • روش‌های ظاهر محور

روش‌های دانش محور

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

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

روش‌های جزئیات محور

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

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

روش‌های الگو محور

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

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

روش‌های ظاهر محور

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

کارهای مرتبط

وایولا و جونز در روشی برای حل مسأله تشخیص اشیاء مبتنی بر یادگیری ماشینی را معرفی کرده‌اند که قادر به پردازش سریع تصاویر با میزان تشخیص بالا خواهد بود.

روش معرفی شده که به نوعی نماینده‌ی روش‌های ظاهرمحور محسوب می‌شود از سه عنصر کلیدی استفاده می‌کند:

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

انتگرال تصویر

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

در ادبیات پردازش تصویر از این الگوریتم به عنوان انتگرال تصویر نیز یاد می‌شود.
همان‌طور که از نام تکنیک پیداست مقدار درایه‌ی (x, y)ماتریس مجموع محیطی برابرست با مجموع همه‌ی مقادیر بالا و چپ درایه‌ی (x, y) ماتریس اصلی.

منبع


نحوه کارکرد سیستم های تشخیص چهره

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

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

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

بطورکلی یک سیستم بیومتریک تشخیص چهره، از چهار ماژول تشکیل یافته است:

1-ماژول سنسور:

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

2-ماژول مخصوص تشخیص و استخراج اطلاعات:

تصاویر بدست آمده توسط این ماژول در ابتدا ارزیابی محتوایی شده و داده های نامربوط ازقبیل پس زمینه – موها و گردن و شانه و غیره حذف و تنها محتوای ناحیه چهره را شناسایی میکند . سپس تصویر بدست آمده تحت فرایندهای محاسباتی و عملیاتی پیچیده برای استخراج اطلاعات مربوط به ویژگیهای سطحی چهره و تجزیه اطلاعات کلی تصویر قرار میگیرد. در حقیقت در این مرحله تصویر خروجی که بایستی توسط ماژول طبقه بندی کننده برای تعیین هویت و تشخیص چهره مورد استفاده قرار گیرد در این مرحله با استفاده از روشهای پیچیده PCA, LDA و غیره آماده میگردد.

3- ماژول طبقه بندی :

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

4- ماژول پایگاه داده ها:

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

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

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

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

منبع


منابع

  1. http://nn4e.com
  2. http://aisoft.ir
  3. http://www.boute.ir
  4. http://www.acordgroup.co

تشخیص چهره انسان به کمک پردازش تصویر قسمت 1
تشخیص چهره انسان به کمک پردازش تصویر قسمت 2

تاریخچه

(آنالیز موجک) ایده ی نمایش یک تابع برحسب مجموعه ی کاملی از توابع اولین بار توسط ژوزف فوریه، ریاضیدان و فیزیکدان بین سال های ۱۸۰۶-۱۸۰۲ طی رساله ای در آکادمی علوم راجع به انتشار حرارت، برای نمایش توابع بکار گرفته شد. در واقع برای آنکه یک تابع(f(x به شیوه ای ساده و فشرده نمایش داده شود فوریه اساسا ثابت کرد که می توان از محور هایی استفاده کرد که بکمک مجموعه ایی نامتناهی از توابع سینوس وار ساخته می شوند. بعبارت دیگر فوریه نشان داد که یک تابع (f(x را می توان بوسیله ی حاصل جمع بی نهایت تابع سینوسی و کسینوسی به شکل (sin(ax و (cos(ax نمایش داد. پایه های فوریه بصورت ابزار هایی اساسی، با کاربردهای فوق العاده متواتر در علوم، در آمده اند، زیرا برای نمایش انواع متعددی از توابع و در نتیجه کمین های فیزیکی فراوان بکار می روند.
با گذشت زمان ضعف پایه های فوریه نمایان شد مثلا دانشمندان پی بردند پایه های فوریه و نمایش توابع سینوس وار در مورد سیگنال های پیچیده نظری تصاویر، نه تنها ایده آل نیستند بلکه از شرایط مطلوب دورند، بعنوان مثال به شکل کارآمدی قادر به نمایش ساختارهای گذرا نظیر مرزهای موجود در تصاویر نیستند. همچین آنها متوجه شدند تبدیل فوریه فقط برای توابع پایه مورد استفاده قرار می گیرد و برای توابع غیر پایه کار آمد نیست.(البته در سال ۱۹۴۶ با استفاده از توابع پنجره ای، که منجر به تبدیل فوریه ی پنجره ای شداین مشکل حل شد.)
در سال ۱۹۰۹ هار اولین کسی بود که به موجک ها اشاره کرد. در سال های ۱۹۳۰ ریاضیدانان به قصد تحلیل ساختارهای تکین موضوعی به فکر اصلاح پایه های فوریه افتادند. و بعد از آن در سال ۱۹۷۰ یک ژئوفیزیکدان فرانسوی به نام ژان مورله متوجه شد که پایه های فوریه بهترین ابزار ممکن در اکتشافات زیر زمین نیستند، این موضوع در آزمایشگاهی متعلق به الف آکیلن منجر به یکی از اکتشافات تبدیل به موجک ها گردید.
در سال ۱۹۸۰ ایومیر ریاضیدان فرانسوی، نخستین پایه های موجکی متعامد را کشف کرد(تعامد نوعی از ویژگی ها را بیان می کند که موجب تسهیلات فراوانی در استدلال و محاسبه می شود، پایه های فوریه نیز متعامدند.) در همین سال ها مورله مفهوم موجک و تبدیل موجک را بعنوان یک ابزار برای آنالیز سیگنال زمین لزره وارد کرد و گراسمن فیزیکدان نظری فرانسه نیز فرمول وارونی را برای تبدیل موجک بدست آورد.
در سال ۱۹۷۶ میرو و مالت از پایه های موجک متعامد توانسنتد آنالیز چند تفکیکی را بسازند و مالت تجزیه موجک ها و الگوریتم های بازسازی را با بکار بردن آنالیز چند تفکیکی بوجود آورد. در سال ۱۹۹۰ مورنزی همراه با آنتوان موجک ها را به دو بعد و سپس به فضاهایی با ابعد دیگر گسترش دادند و بدین ترتیب بود که آنالیز موجکی پایه گذاری گردید.

 آشنایی

آنالیز موجک (Wavelet Analysis) یکی از دستاوردهای نسبتا جدید و هیجان انگیز ریاضیات محض که مبتنی بر چندین دهه پژوهش در آنالیز همساز است، امروزه کاربردهای مهمی در بسیاری از رشته های علوم و مهندسی یافته و امکانات جدیدی برای درک جنبه های ریاضی آن و نیز افزایش کاربردهایش فراهم شده است.
در آنالیز موجک هم مانند آنالیز فوریه با بسط تابع ها سروکار داریم ولی این بسط برحسب «موجک ها» انجام می شود.
موجک تابع مشخص مفروضی با میانگین صفر است و بسط برحسب انتقالها و اتساعهای این تابع انجام می گیرد، بر خلاف چند جمله ای های مثلثاتی، موجک ها در فضا بصورت موضعی بررسی می شوند و به این ترتیب ارتباط نزدیکتری بین بعضی توابع و ضرایب آن ها امکان پذیر می شود و پایداری عددی بیشتری در باز سازی و محاسبات فراهم می گردد. هر کاربردی را که مبتنی بر تبدیل سریع فوریه است می توان با استفاده از موجک ها فومول بندی کرد و اطلاعات فضایی (یا زمانی) موضعی بیشتری بدست آورد. بطور کلی، این موضوع بر پردازش سیگنال و تصویر و الگوریتم های عددی سریع برای محاسبه ی عملگرهای انتگرالی اثر می گذارد.
آنالیز موجک حاصل ۵۰ سال کار ریاضی (نظریه ی لیتلوود – پیلی و کالدرون – زیگموند) است که طی آن، با توجه به مشکلاتی که در پاسخ دادن به ساده ترین پرسش های مربوط به تبدیل فوریه وجود داشت، جانشینهای انعطاف پذیر ساده تری از طریق آنالیز همساز ارائه شدند. مستقل از این نظریه که درون ریاضیات محض جای دارد، صورتهای مختلفی از این رهیافت چند مقیاسی (multi Scale) را در طی دهه ی گذشته در پردازش تصویر، آکوستیک، کدگذاری(به شکل فیلترهای آیینه ای متعامد و الگوریتمهای هرمی)، و استخراج نفت دیده ایم.

 کاربردها

آنالیز موجک همراه با تبدیل سریع فوریه در تحلیل سیگنالهای گذرایی که سریعا تغییر می کنند، صدا و سیگنالهای صوتی، جریان های الکتریکی در مغز، صداهای زیر آبی ضربه ای و داده های طیف نمایی NMR، و در کنترل نیروگاههای برق از طریق صفحه ی نمایش کامپیوتر بکار رفته است. و نیز بعنوان ابزاری علمی، برای روشن ساختن ساختارهای پیچیده ای که در تلاطم ظاهر می شوند، جریان های جوی، و در بررسی ساختارهای ستاره ای از آن استفاده شده است. این آنالیز به عنوان یک ابزار عددی می تواند مانند تبدیل سریع فوریه تا حد زیادی از پیچیدگی محاسبات بزرگ مقیاس بکاهد، بدین ترتیب که با تغییر هموار ضریب، ماتریس های متراکم را به شکل تنکی که به سرعت قابل محاسبه باشد در آورد. راحتی و سادگی این آنالیز باعث ساختن تراشه هایی شده است که قادر به کدگذاری به نحوی بسیار کارا، و فشرده سازی سیگنالها و تصاویرند.
آنالیز موجک امروزه کاربردهای فراوانی پیدا کرده است که از آن جمله می توان به کاربرد آن در تصویر برداری پزشکی (MRI) و سی تی اسکن (CAT)، جداسازی بافت های مغزی از تصاویر تشدید مغناطیس، تشخیص خودکار خوشه های میکروکلسیفیکاسیون، تحلیل تصاویر طیفی تشدید مغناطیسی (MR Spectrorscopy) و عملکردهای تشدید مغناطیسی (F MRI) اشاره کرد.

منبع


موجک

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

مِیِر

مورله

کلاه مکزیکی

تبدیل‌های موجک

تعداد زیادی تبدیل موجک وجود دارد که لیست آن را می‌شود در فهرست تبدیل‌های مرتبط با موجک مشاهده نمود. معمول‌ترین این تبدیل‌ها عبارتند از:

  • تبدیل موجک پیوسته (Continuous wavelet transform (CWT
  • تبدیل موجک گسسته (Discrete wavelet transform (DWT
  • تبدیل سریع موجک (Fast wavelet transform (FWT
  • Lifting scheme
  • تجزیه بسته‌های موجک(Wavelet packet decomposition (WPD
  • تبدیل موجک ساکن (Stationary wavelet transform (SWT

موجک‌ها و معادلات اتساع
موجک‌ها بر مبنای دو عمل اصلی قرار دارند:

  • انتقال (Translation)

[عکس: 34b5ae95f23a0378679d434d7cea3360.png]

  • اتساع (Dilation)

[عکس: a9be4f8956d1bb85c9e932c584196743.png]

مقایسه با تبدیل فوریه

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

تاریخچه

در تاریخ ریاضیات مبادی و ریشه‌های متعددی را می‌توان برای موجک‌ها سراغ گرفت.

کارهای قبل از ۱۹۳۰
مربوط به قبل از ۱۹۳۰ (م) می‌توان به آنالیز فرکانس‌ها اشاره کرد، که به وسیلهٔ فوریه شروع شد.
استفاده از واژهٔ موجک‌ها، برای اولین بار، در یکی از ضمیمه‌های تز آلفرد هار (۱۹۰۹ م) ظاهر شد. امروزه هم، این موجک‌ها به همان نام یعنی به موجک‌های هار معروف اند. موجک‌های هار دارای دامنهٔ تعریف فشرده (compact) بوده، و غیر مشتق‌پذیر به صورت پیوسته هستند.

کارهای مربوط به دهه ۱۹۳۰
در این دهه چند گروه پیرامون موضوع نمایش توابع با به کارگیری پایه‌های با مقیاس متغیر برای تنیدن فضاهای توابع تحقیق می‌نمودند.

موجک‌های متعامد

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

موجک هار

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

منبع

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

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

مقدمه

هنگامی که لغت تنازع بقا به کار می‌رود اغلب بار ارزشی منفی آن به ذهن می‌آید. شاید همزمان قانون جنگل به ذهن برسد و حکم بقای قوی‌ترها!

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

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

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

الف) معرفی جواب‌های مسئله به عنوان کروموزوم

ب) معرفی تابع برازندگی (فیت نس)

ج) جمع‌آوری اولین جمعیت

د) معرفی عملگرهای انتخاب

ه) معرفی عملگرهای تولید مثل

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

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

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

البته آنچه در بالا ذکر شد به تنهایی توصیف کننده آنچه واقعاً در قالب تکامل در طبیعت اتفاق می‌افتد نیست. بهینه‌سازی و تکامل تدریجی به خودی خود نمی‌تواند طبیعت را در دسترسی به بهترین نمونه‌ها یاری دهد. اجازه دهید تا این مسئله را با یک مثال شرح دهیم:

پس از اختراع اتومبیل به تدریج و در طی سال‌ها اتومبیل‌های بهتری با سرعت‌های بالاتر و قابلیت‌های بیشتر نسبت به نمونه‌های اولیه تولید شدند. طبیعیست که این نمونه‌های متأخر حاصل تلاش مهندسان طراح جهت بهینه‌سازی طراحی‌های قبلی بوده‌اند. اما دقت کنید که بهینه‌سازی یک اتومبیل، تنها یک «اتومبیل بهتر» را نتیجه می‌دهد.

اما آیا می‌توان گفت اختراع هواپیما نتیجه همین تلاش بوده‌است؟ یا فرضاً می‌توان گفت فضاپیماها حاصل بهینه‌سازی طرح اولیه هواپیماها بوده‌اند؟

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

در این میان آنچه شاید بتواند تا حدودی ما را در فهم این مسئله یاری کند مفهومیست به نام تصادف یا جهش.

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

در واقع می‌توان تکامل طبیعی را به این‌صورت خلاصه کرد: جستجوی کورکورانه (تصادف یا Blind Search) + بقای قوی‌تر.

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

روش‌های کلاسیک ریاضیات دارای دو اشکال اساسی هستند. اغلب این روش‌ها نقطه بهینه محلی (Local Optima) را بعنوان نقطه بهینه کلی در نظر می‌گیرند و نیز هر یک از این روش‌ها تنها برای مسئله خاصی کاربرد دارند. این دو نکته را با مثال‌های ساده‌ای روشن می‌کنیم.

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

بهینه محلی و بهینه کلی

 

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

نحوه عملکرد الگوریتم ژنتیک روش کار الگوریتم ژنتیک به طور فریبنده‌ای ساده، قابل درک و به طور قابل ملاحظه‌ای روشی است که ما معتقدیم حیوانات آنگونه تکامل یافته‌اند. هر فرمولی که از طرح داده شده بالا تبعیت کند فردی از جمعیت فرمول‌های ممکن تلقی می‌شود. الگوریتم ژنتیک در انسان متغیرهایی که هر فرمول داده‌شده را مشخص می‌کنند به عنوان یکسری از اعداد نشان داده‌شده‌اند که معادل DNA آن فرد را تشکیل می‌دهند. موتور الگوریتم ژنتیک یک جمعیت اولیه اینگونه است که هر فرد در برابر مجموعه‌ای از داده‌ها مورد آزمایش قرار می‌گیرد و مناسبترین آنها باقی می‌مانند؛ بقیه کنار گذاشته می‌شوند.

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

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

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

برای هر فرد، یک جفت والد انتخاب می‌شود. انتخاب‌ها به گونه‌ای‌اند که مناسبترین عناصر انتخاب شوند تا حتی ضعیفترین عناصر هم شانس انتخاب داشته باشند تا از نزدیک شدن به جواب محلی جلوگیری شود. چندین الگوی انتخاب وجود دارد: چرخ منگنه‌دار (رولت)، انتخاب مسابقه‌ای (Tournament) ،… .

معمولاً الگوریتم‌های ژنتیک یک عدد احتمال اتصال دارد که بین ۰٫۶ و ۱ است که احتمال به وجود آمدن فرزند را نشان می‌دهد. ارگانیسم‌ها با این احتمال دوباره با هم ترکیب می‌شوند. اتصال ۲ کروموزوم فرزند ایجاد می‌کند، که به نسل بعدی اضافه می‌شوند. این کارها انجام می‌شوند تا این که کاندیدهای مناسبی برای جواب، در نسل بعدی پیدا شوند. مرحله بعدی تغییر دادن فرزندان جدید است. الگوریتم‌های ژنتیک یک احتمال تغییر کوچک و ثابت دارند که معمولاً درجه‌ای در حدود ۰٫۰۱ یا کمتر دارد. بر اساس این احتمال، کروموزوم‌های فرزند به طور تصادفی تغییر می‌کنند یا جهش می‌یابند، مخصوصاً با جهش بیت‌ها در کروموزوم ساختمان داده‌مان.

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

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

  • به تعداد ثابتی از نسل‌ها برسیم.
  • بودجه اختصاص داده‌شده تمام شود (زمان محاسبه/پول).
  • یک فرد (فرزند تولید شده) پیدا شود که مینیمم (کمترین) ملاک را برآورده کند.
  • بیشترین درجه برازش فرزندان حاصل شود یا دیگر نتایج بهتری حاصل نشود.
  • بازرسی دستی.
  • ترکیبهای بالا.

روش‌های نمایش

قبل از این که یک الگوریتم ژنتیک برای یک مسئله اجرا شود، یک روش برای کد کردن ژنوم‌ها به زبان کامپیوتر باید به کار رود. یکی از روش‌های معمول کد کردن به صورت رشته‌های باینری است: رشته‌های ۰ و ۱. یک راه حل مشابه دیگر کدکردن راه حل‌ها در آرایه‌ای از اعداد صحیح یا اعداد اعشاری است .سومین روش برای نمایش صفات در یک GA یک رشته از حروف است، که هر حرف دوباره نمایش دهنده یک خصوصیت از راه حل است.

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

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

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

شبه کد

 1 Genetic Algorithm
 2 begin
 3 Choose initial population
 4 repeat
 5 Evaluate the individual fitness of a certain proportion of the population
 6 Select pairs of best-ranking individuals to reproduce
 7 Apply crossover operator
 8 Apply mutation operator
 9 until terminating condition
10 end

شمای کلی شبه کد شمای کلی شبه کد

 

ایده اصلی

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

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

روش‌های انتخاب

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

انتخاب Elitist

مناسب‌ترین عضو هر اجتماع انتخاب می‌شود.

انتخاب Roulette

یک روش انتخاب است که در آن عنصری که عدد برازش (تناسب) بیشتری داشته باشد، انتخاب می‌شود. در واقع به نسبت عدد برازش برای هر عنصر یک احتمال تجمعی نسبت می‌دهیم و با این احتمال است که شانس انتخاب هر عنصر تعیین می‌شود.

انتخاب Scaling

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

انتخاب Tournament

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

بعضی از روش‌های دیگر عبارتند از:

  • Hierarchical Selection
  • Steady-State Selection
  • Rank Selection

مثال عملی

در این مثال می‌خواهیم مسئلهٔ ۸ وزیر را بوسیلهٔ این الگوریتم حل کنیم. هدف مشخص کردن چیدمانی از ۸ وزیر در صفحهٔ شطرنج است به نحوی که هیچ‌یک همدیگر را تهدید نکند. ابتدا باید نسل اولیه را تولید کنیم. صفحه شطرنج ۸ در ۸ را در نظر بگیرید. ستونها را با اعداد ۰ تا ۷ و سطرها را هم از ۰ تا ۷ مشخص می‌کنیم. برای تولید حالات (کروموزومها) اولیه بصورت تصادفی وزیرها را در ستونهای مختلف قرار می‌دهیم. باید در نظر داشت که وجود نسل اولیه با شرایط بهتر سرعت رسیدن به جواب را افزایش می‌دهد (اصالت نژاد) به همین خاطر وزیر i ام را در خانهٔ تصادفی در ستون i ام قرار می‌دهیم (به جای اینکه هر مهره‌ای بتواند در هر خانه خالی قرار بگیرد). با اینکار حداقل از برخورد ستونی وزیرها جلوگیری می‌شود.

توضیح بیشتر اینکه مثلاً وزیر اول را بطور تصادفی درخانه‌های ستون اول که با ۰ مشخص شده قرار می‌دهیم تا به آخر. i=۰٬۱، … ۷ حال باید این حالت را به نحوی کمی مدل کرد. چون در هر ستون یک وزیر قرار دادیم هر حالت را بوسیلهٔ رشته اعدادی که عدد k ام در این رشته شمارهٔ سطر وزیر موجود در ستون i ام را نشان می‌دهد. یعنی یک حالت که انتخاب کردیم می‌تواند بصورت زیر باشد: ۶۷۲۰۳۴۲۲ که ۶ شمارهٔ سطر ۶ است که وزیر اول که شمارهٔ ستونش ۰ است می‌باشد تا آخر. فرض کنید ۴ حالت زیر به تصادف تولید شده‌اند. این چهار حالت را بعنوان کروموزومهای اولیه بکار می‌گیریم.

  1. ) ۶۷۲۰۳۴۲۰
  2. ) ۷۰۰۶۳۳۵۴
  3. ) ۱۷۵۲۲۰۶۳
  4. )۴۳۶۰۲۴۷۱

حال نوبت به تابع برازش fitness function می‌رسد. تابعی را که در نظر می‌گیریم تابعی است که برای هر حالت تعداد برخوردها (تهدیدها) را در نظر می‌گیرد. هدف صفر کردن یا حداقل کردن این تابع است. پس احتمال انتخاب کروموزومی برای تولید نسل بیشتر است که مقدار محاسبه شده توسط تابع برازش برای آن کمتر باشد. (روشهای دیگری نیز برای انتخاب وجود دارد) مقدار برازش برای حالات اولیه بصورت زیر می‌باشد: (مقدار عدد برازش در جلوی هر کروموزوم (با رنگ قرمز)همان تعداد برخوردهای وزیران می‌باشد)

  1. )۶۷۲۰۳۴۲۰ ← ۶
  2. )۷۰۰۶۳۳۵۴ ← ۸
  3. )۱۷۵۲۲۰۶۳ ← ۲
  4. )۴۳۶۰۲۴۷۱ ← ۴

پس احتمالها بصورت زیر است:

{\displaystyle p(3)>p(4)>p(1)>p(2)}

در اینجا کروموزومهایی را انتخاب می‌کنیم که برازندگی کمتری دارند. پس کروموزوم ۳ برای crossover با کروموزومهای ۴ و ۱ انتخاب می‌شود. نقطهٔ ترکیب را بین ارقام ۶ و ۷ در نظر می‌گیریم.

۴ و ۳:

  1. )۱۷۵۲۲۰۷۱
  2. )۴۳۶۰۲۴۶۳

۱ و ۳:

  1. )۱۷۵۲۲۰۲۰
  2. )۶۷۲۰۳۴۶۳

حال نوبت به جهش می‌رسد. در جهش باید یکی از ژن‌ها تغییر کند.

فرض کنید از بین کروموزومهای ۵ تا ۸ کروموزوم شمارهٔ ۷ و از بین ژن چهارم از ۲ به ۳ جهش یابد. پس نسل ما شامل کروموزومهای زیر با امتیازات نشان داده شده می‌باشد: (امتیازات تعداد برخوردها می‌باشد)

  1. )۶۷۲۰۳۴۲۰ ← ۶
  2. )۷۰۰۶۳۳۵۴ ← ۸
  3. )۱۷۵۲۲۰۶۳ ← ۲
  4. )۴۳۶۰۲۴۷۱ ← ۴
  5. )۱۷۵۲۲۰۷۱ ← ۶
  6. )۴۳۶۰۲۴۶۳ ← ۴
  7. )۱۷۵۳۲۰۲۰ ← ۴
  8. )۶۷۲۰۳۴۶۳ ← ۵

کروموزوم ۳ کاندیدای خوبی برای ترکیب با ۶ و ۷ می‌باشد. (فرض در این مرحله جهشی صورت نگیرد و نقطهٔ اتصال بین ژنهای ۱ و ۲ باشد)

  1. )۶۷۲۰۳۴۲۰ ← ۶
  2. )۷۰۰۶۳۳۵۴ ← ۸
  3. )۱۷۵۲۲۰۶۳ ← ۲
  4. )۴۳۶۰۲۴۷۱ ← ۴
  5. )۱۷۵۲۲۰۷۱ ← ۶
  6. )۴۳۶۰۲۴۶۳ ← ۴
  7. )۱۷۵۳۲۰۳۰ ← ۴
  8. )۶۷۲۰۳۴۶۳ ← ۵
  9. )۱۳۶۰۲۴۶۳ ← ۲
  10. )۴۷۵۲۲۰۶۳ ← ۲
  11. )۱۷۵۲۲۰۲۰ ← ۴
  12. )۱۷۵۲۲۰۶۳ ← ۲

کروموزومهای از ۹ تا ۱۲ را نسل جدید می‌گوییم. بطور مشخص کروموزوم‌های تولید شده در نسل جدید به جواب مسئله نزدیکتر شده‌اند. با ادامهٔ همین روند پس از چند مرحله به جواب مورد نظر خواهیم رسید.

نحوهٔ اجرای الگوریتم ژنتیکی

الگوریتم ژنتیک قسمت 1
الگوریتم ژنتیک قسمت 2

تشخیص خودکار پلاک خودرو سامانه‌ای برای خواندن پلاک وسیله نقلیه با استفاده از نویسه‌خوان نوری است. شماره پلاک خودرو یکی از مناسب‌ترین اقلام اطلاعاتی جهت احراز هویت خودروها می‌باشد. تشخیص خودکار شماره پلاک خودرو سامانه‌ای کاملاً مکانیزه است که با استفاده ازپردازش تصویر خودروهای عبوری از یک مکان، شماره پلاک آنها را استخراج می‌کند. برای استفاده از این سامانه، نیازی به نصب و تجهیز خودروها به وسیلهٔ دیگری (مانند GPS یا برچسب‌های رادیویی- RFID Tag) وجود ندارد. این سامانه با استفاده از دوربین‌های مخصوص، تصویری از خودرو در حال عبور اخذ می‌کند و آن تصویر را جهت پردازش توسط نرم‌افزار تشخیص پلاک خودرو به رایانه ارسال می‌کند. از این سامانه می‌توان در زمینه‌های امنیتی و ترافیکی بسیار بهره گرفت.

             

 

امکانات سیستم های تشخیص پلاک خودرو به روش پردازش تصویر

امکان تشخیص تمامی اعداد و حروف پلاک و شناسایی منطقه پلاک صادرشده امکان تشخیص تمامی پلاکهای موجود در کشور امکان دریافت عکس از دوربین های رنگی و سیاه و سفید و IR تحت شبکه تشخیص محل پلاک در عکس امکان تشخیص چندین پلاک در یک عکس امکان ارتباط با بانک اطلاعاتی سیستم پارکینگ جهت کنترل تردد خودروهای تعریف شده امکان ارسال اطلاعات خودروهای ممنوعه در بانک اطلاعاتی سیستم از طریق شبکه، GPRS ، SMS و MMS

اطلاعات فنی سیستم تشخیص پلاک خودرو

امکان تشخیص پلاک از فیلم زنده در دوربین های تحت شبکه و DVR سرعت بسیار بالا در تشخیص پلاک (کمتر از 200 میلی ثانیه) دقت بالا و امکان تشخیص چندین پلاک در یک عکس

 

کاربردهای سامانهٔ تشخیص پلاک

کنترل و اخذ عوارض ورود به محدوده طرح ترافیک

امروزه شهرهای بسیاری ورود خودروها به منطقه مرکزی شهر را به منظور کنترل ترافیکِ آن محدود ساخته‌اند. از آنجا که استفاده از روش‌های سنتی (قرار دادن نیروهای پلیس در تمامی مبادی محدوده) هم پر هزینه و هم کم دقت است، راه حل‌های جدیدی برای کنترل و اخذ عوارض ورود به محدوده پرتردد شهرها پیشنهاد شده است. یکی از این راه حل‌ها (که برای مثال در استکهلم[۳] و لندن[۴] استفاده می‌شود) استفاده از فناوری تشخیص پلاک خودرو است. در این راه حل، دوربین‌های تشخیص پلاک خودرو در تمامی مبادی طرح نصب می‌شوند و ورود هر خودرو به محدوده طرح ثبت می‌شود. سپس مانند روش اخذ عوارض، فرصتی به راننده داده می‌شود تا عوارض ورود به طرح را تا زمان مقرر پرداخت کند. در غیر اینصورت، راننده طبق قانون جریمه خواهد شد.

اخذ عوارض جاده‌ها و بزرگراه‌ها به صورت خودکار

از آنجا که وجود مانع بر سر راه خودروها در عوارضی‌ها باعث کند شدن حرکت، ایجاد ترافیک، و به تبع آن آلودگی محیط زیست می‌شود، راه‌های مختلفی برای حذف موانعِ موجود در عوارضی‌ها پیشنهاد شده است. یکی از این راه‌ها استفاده از سامانهٔ تشخیص پلاک خودرو می‌باشد. در این راه حل، خودروها بدون نیاز به توقف از عوارضی‌ها عبور می‌کنند و سامانهٔ تشخیص پلاک خودرو شماره پلاک آنها را ثبت می‌کند. بر اساس شماره پلاک، عوارض مربوطه محاسبه می‌شود و راننده ملزم به پرداخت عوارض در زمان مشخصی خواهد بود. در صورت عدم پرداخت عوارض در زمان مقرر، خودرو طبق قانون جریمه خواهد شد. به این روش عوارض ویدئویی (به انگلیسی: Video Tolling) گفته می‌شود.

محاسبه مدت سفر

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

اندازه‌گیری سرعت متوسط خودروها

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

  • دیده بانی معابر، گلوگاه‌ها و مرزها و گزارش سریع خودروهای سرقتی عبور کرده از آنها
  • ثبت اطلاعات ترافیکی دقیق و جامع از تردد خودروها در معابر

امکانات جانبی سامانه تشخیص خودکار شماره پلاک خودرو

در سامانه پلاک خوان امکانات جانبی بیشتر بنابر خواست خریدار نصب و به سیستم افزوده خواهد شد. امکاناتی نظیر: سنسور نوری تشخیص مانع، کارت های حافظه دار یا بارکد دو بعدی، دوربین نظارتی، دوربین ثبت چهره راننده، تابلوی نمایشگر، UPS یا باتری پشتیبان

منبع


هم چنین نوشته هایی با عناوین پروژه + آموزش تشخیص پلاک خودرو با پردازش تصویر (پلاک خوان رایگان) و مقاله بررسی سامانه های تشخیص خودکار پلاک خودرو  و مقالات داخلی و خارجی در زمینه تشخیص پلاک خودرو جهت دسترسی علاقمندان در سایت قرارداده شده است.

می توانید به منظور آشنایی با یکی از دقیقترین و سریعترین سامانه های جامع کنترل تردد خودرو (پلاک خوان) به لینک :سامانه جامع کنترل تردد خودرو بهسان(پلاک خوان) مراجعه فرمایید.

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

چکیده : با توجه به پیشرفت های اخیر فناوری ارتباطات بی سیم در چند دهه اخیر ، مطالعات کارشناسان در زمینه شبکه های گیرنده بی سیم هم سیر صعودی را طی کرده است.بسیاری از این بررسی ها در قالب کتب علمی ، الحاقیه ، الگوریتم و موارد کاربردی اجرا و اعمال شده اند. کارایی این شبکه ها به طور مستقیم به پروتکل های مسیریابی که روی زمان زندگی شبکه تآثیر می گذارند بستگی خواهد داشت. خوشه بندی یکی از رایج ترین روش های اجرایی در این مبحث تلقی می شود. ما در این مقاله به بررسی کارایی انرژی در پروتکل های بر پایه الگوریتم های کندوی زنبور عسل می پردازیم که نشان دهنده امتداد طول عمر شبکه می باشد. الگوریتم های کندوی زنبور عسل طوری طراحی شده اند که رفتارهای جستجوگرانه زنبورهای عسل را شبیه سازی کرد و به طور موفقیت آمیزی در تکنیک های خوشه بندی مورد استفاده قرار می گیرند. عملکرد این روش پیشنهادی با پروتکل های متکی بر LEACH و بهینه سازی گروهی اجزا که پیش از این مورد بررسی قرار گرفته اند ،مقایسه می شود. نتایج این بررسی ها نشان می دهد که الگوریتم های کندوی زنبور عسل میتواند در پروتکل های مسیریابی WSN روند موفقیت آمیزی داشته باشد.
کلمات کلیدی : شبکه های گیرنده بی سیم ، برپایه خوشه بندی ( خوشه ای ) ، الگوریتم زنبور عسل فایل PDF – در 22 صفحه
– نویسنده : ناشناس
دانلود
پسورد فایل : behsanandish.com


الگوریتم کلونی زنبور عسل مصنوعی

 

شامل سرفصل های :

1- الگوریتم کلونی زنبورعسل مصنوعی

2- معرفی چند الگوریتم بهینه شده کلونی زنبورعسل در محیط پیوسته

3- الگوریتم کلونی زنبورعسل مصنوعی موازی

4- الگوریتم کلونی زنبورعسل مصنوعی برای مسائل بهینه سازی دودویی

فایل Power Point – در 40 اسلاید – نویسنده : ناشناس

الگوریتم کلونی زنبور عسل مصنوعی

پسورد فایل : behsanandish.com


رویکرد الگوریتم فرا ابتکاری کلونی زنبور عسل مصنوعی برای تعیین مکان بهینه سوئیچها در شبکه ارتباطی تلفن همراه

چكيده : در این تحقیق برای حل مسئله ی تخصیص سلول به سوئیچ (CTSAP) ، از الگوریتم فراابتکاری کلونی زنبور عسل مصنوعی (ABC) استفاده شده است. هدف مسئله، تخصیص بهینه سلولها به سوئیچها با حداقل هزینه است. در این تحقیق هزینه از دو جزء تشکیل یافته است. یکی هزینه ی تعویضها که مربوط به دو سوئیچ است و دیگری هزینه ی اتصال میباشد. ظرفیت پاسخگویی تماس هر سوئیچ نیز محدود است و فرض میشود همه ی سوئیچها ظرفیت برابری داشته باشند. در مدل این پژوهش هر سلول باید فقط و فقط تنها به یک سوئیچ متصل گردد(single homed).مدل ریاضی این تحقیق، غیرخطی صفر و یک است.  کد رایانه ای الگوریتم با نرم افزار MATLAB 7.8.0 نوشته شده است. پس از تعیین مقادیر پارامترهای مدل و تأیید صحت عملکرد کد و تنظیم پارامترهای کنترل، کارایی الگوریتم با ایجاد مسائل آزمایشی، با یکی از بهترین الگوریتمهای CTSAP یعنی الگوریتم بهینه سازی کلونی مورچگان (ACO) مقایسه شده است و نتایج نشان می دهد که الگوریتم ABC در قیاس با ACO عملکرد رضایت بخشی دارد.
واژگان کليدی: مسئله تخصیص سلول به سوئیچ، الگوریتم فراابتکاری، شبکههای تلفن همراه، الگوریتم کلونی زنبور عسل مصنوعی
فایل PDF – در 24 صفحه- نویسندگان : سيد محمد علی خاتمی فيروزآبادی , امين وفادار نيكجو
دانلود
پسورد فایل : behsanandish.com


ﮐﻠﻮﻧﯽ زﻧﺒﻮرﻫﺎي ﻣﺼﻨﻮﻋﯽ ﺳﻠﻮﻟﯽ

ﭼﮑﯿﺪه: در اﯾﻦ ﻣﻘﺎﻟﻪ دو ﻣﺪل ﺗﺮﮐﯿﺒﯽ ﮐﻪ از ﺗﺮﮐﯿﺐ ﮐﻠﻮﻧﯽ زﻧﺒﻮرﻫـﺎ و اﺗﻮﻣﺎﺗﺎي ﺳﻠﻮﻟﯽ ﺣﺎﺻﻞ ﺷﺪه اﺳﺖ ﺑﻪ ﻣﻨﻈﻮر ﺑﻬﯿﻨﻪ ﺳﺎزي ﭘﯿﺸﻨﻬﺎد ﻣﯽﮔﺮدد . اﺗﻮﻣﺎﺗـﺎي ﺳـﻠﻮﻟﯽ وﻇﯿﻔـﻪ ﮐـﺎﻫﺶ آﻧﺘﺮوﭘـﯽ و اﻓـﺰاﯾﺶ ﺳـﺮﻋﺖ ﻫﻤﮕﺮاﯾﯽ را ﺑﻪ ﻋﻬﺪه دارد . در ﻣـﺪل ﭘﯿﺸـﻨﻬﺎدي در اول ﻫـﺮ ﺳـﻠﻮل از اﺗﻮﻣﺎﺗﺎي ﯾﺎدﮔﯿﺮ ﺳﻠﻮﻟﯽ ﯾﮏ ﮐﻠﻮﻧﯽ از زﻧﺒﻮرﻫـﺎ ﻗـﺮار داده ﻣـﯽ ﺷـﻮد . ﺑـﻪ ﺑﺪﺗﺮﯾﻦ ﻫﺮﺳﻠﻮل ، ﻣﻨﻈﻮر ﺑﻬﺒﻮد ﺟﺴﺘﺠﻮي ﺳﺮاﺳﺮي و ﻫﻤﮕﺮاﯾﯽ ﺳﺮﯾﻌﺘﺮ ﺑﺎ ﺑﻬﺘﺮﯾﻦ ﻫﻤﺴﺎﯾﮕﺎن ﺑﻪ روش ﺣﺮﯾﺼﺎﻧﻪ ﺟﺎﯾﮕﺰﯾﻦ ﻣﯽ گردد. در ﻣﺮﺣﻠـﻪ دوم در ﻫﺮ ﺳﻠﻮل ﯾﮏ زﻧﺒﻮر ﻗﺮار ﻣـﯽ ﮔﯿـﺮد .ﻧﺘـﺎﯾﺞ آزﻣﺎﯾﺸـﻬﺎ ﺑـﺮ روي ﻣﺴﺎیل ﻧﻤﻮنه ﻧﺸﺎن ﻣﯿﺪﻫﺪ ﮐﻪ روش ﻫﺎی اراﺋﻪ ﺷﺪه از ﻋﻤﻠﮑﺮد ﺑﻬﺘـﺮي در ﻣﻘﺎﯾﺴﻪ ﺑﺎ ﻣﺪل ﮐﻠﻮﻧﯽ زﻧﺒﻮرﻫﺎي ﻣﺼﻨﻮعی اﺳﺘﺎﻧﺪارد ﺑﺮﺧﻮردار می باشد.
واژه ﻫﺎي ﮐﻠﯿﺪی : کلونی زنبور، اﺗﻮﻣﺎﺗﺎي ﺳﻠﻮﻟﯽ، بهینه سازی
فایل PDF – در 4 صفحه- نویسندگان : زهرا گل میرزایی ، محمدرضا میبدی
دانلود
پسورد فایل : behsanandish.com


یک بررسی جامع: الگوریتم و برنامه های کاربردی کلونی زنبور عسل (ABC)

A comprehensive survey: artificial bee colony (ABC) algorithm and applications

Abstract : Swarm intelligence (SI) is briefly defined as the collective behaviour of decentralized
and self-organized swarms. The well known examples for these swarms are bird
flocks, fish schools and the colony of social insects such as termites, ants and bees. In 1990s,
especially two approaches based on ant colony and on fish schooling/bird flocking introduced
have highly attracted the interest of researchers. Although the self-organization features are
required by SI are strongly and clearly seen in honey bee colonies, unfortunately the researchers
have recently started to be interested in the behaviour of these swarm systems to describe
new intelligent approaches, especially from the beginning of 2000s. During a decade, several
algorithms have been developed depending on different intelligent behaviours of honey bee
swarms. Among those, artificial bee colony (ABC) is the one which has been most widely
studied on and applied to solve the real world problems, so far. Day by day the number of
researchers being interested in ABC algorithm increases rapidly. This work presents a comprehensive
survey of the advances with ABC and its applications. It is hoped that this survey
would be very beneficial for the researchers studying on SI, particularly ABC algorithm.
,Keywords : Swarm intelligence
,Bee swarm intelligence
Artificial bee colony algorithm

فایل Power Point - در 37 صفحه - نویسندگان: Dervis Karaboga , Beyza Gorkemli , Celal Ozturk , Nurhan Karaboga
A comprehensive survey- artificial bee colony (ABC)
پسورد فایل : behsanandish.com


الگوریتم جستجوی کلونی زنبور عسل مصنوعی جهانی برای بهینه سازی تابع عددی

Global Artificial Bee Colony Search Algorithm for Numerical Function Optimization

Abstract—The standard artificial bee colony (ABC) algorithm as a relatively new swarm optimization method is often trapped in local optima in global optimization. In this paper, a novel search strategy of main three procedures of the ABC algorithm is presented. The solutions of the whole swarm are exploited based on the neighbor information by employed bees and onlookers in the ABC algorithm. According to incorporating all employed bees’ historical best position information of food source into the solution search equation, the improved algorithm that is called global artificial bee colony search algorithm has great advantages of convergence property and solution quality. Some experiments are made on a set of benchmark problems, and the results demonstrate that the proposed algorithm is more effective than other population based optimization algorithms. Keywords—Artificial bee colony, Search strategy, Particle swarm optimization, Function optimization فایل PDF – در 4 صفحه – نویسندگان : Guo Peng, Cheng Wenming, Liang Jian Global Artificial Bee Colony Search Algorithm for Numerical Function Optimization پسورد فایل : behsanandish.com


یک الگوریتم کلونی زنبور عسل مصنوعی اصلاح شده برای بهینه سازی مسائل محدود شده

A modified Artificial Bee Colony (ABC) algorithm for constrained optimization problems

Abstract : Artificial Bee Colony (ABC) algorithm was firstly proposed for unconstrained optimization problems on where that ABC algorithm showed superior performance. This paper describes a modified ABC algorithm for constrained optimization problems and compares the performance of the modified ABC algorithm against those of state-of-the-art algorithms for a set of constrained test problems. For constraint handling, ABC algorithm uses Deb’s rules consisting of three simple heuristic rules and a probabilistic selection scheme for feasible solutions based on their fitness values and infeasible solutions based on their viola- tion values. ABC algorithm is tested on thirteen well-known test problems and the results obtained are compared to those of the state-of-the-art algorithms and discussed. Moreover, a statistical parameter analysis of the modified ABC algorithm is conducted and appropriate values for each control parameter are obtained using analysis of the variance (ANOVA) and analysis of mean (ANOM) statistics. Keywords: Swarm intelligence Modified Artificial Bee Colony algorithm Constrained optimization فایل PDF – در 37 صفحه – نویسندگان : Dervis Karaboga , Bahriye Akay A modified Artificial Bee Colony (ABC) algorithm for constrained optimization1 پسورد فایل : behsanandish.com


 یک الگوریتم کلونی زنبور عسل مصنوعی جدید-بر اساس فاصله داده های سریال با استفاده گرام های سیگما
ABC-SG: A New Artificial Bee Colony Algorithm-Based Distance of Sequential Data Using Sigma Grams

Abstract 
The problem of similarity search is one of the main
problems in computer science. This problem has many
applications in text-retrieval, web search, computational
biology, bioinformatics and others. Similarity between
two data objects can be depicted using a similarity
measure or a distance metric. There are numerous
distance metrics in the literature, some are used for a
particular data type, and others are more general. In this
paper we present a new distance metric for sequential data
which is based on the sum of n-grams. The novelty of our
distance is that these n-grams are weighted using artificial
bee colony; a recent optimization algorithm based on the
collective intelligence of a swarm of bees on their search
for nectar. This algorithm has been used in optimizing a
large number of numerical problems. We validate the new
distance experimentally.
Keywords:  Artificial Bee Colony, Extended Edit
Distance, Sequential Data, Distance Metric, n-grams. 
فایل PDF – در 7 صفحه – نویسنده :Muhammad Marwan Muhammad Fuad
پسورد فایل : behsanandish.com

کاربرد الگوریتم کلونی زنبور عسل مصنوعی در جستجوی آزادسازی بهینه سد بزرگ آسوان

Application of artificial bee colony (ABC) algorithm in search of optimal release of Aswan High Dam

Abstract. The paper presents a study on developing an optimum reservoir release policy by using ABC algorithm. The decision maker of a reservoir system always needs a guideline to operate the reservoir in an optimal way. Release curves have developed for high, medium and low inflow category that can answer how much water need to be release for a month by observing the reservoir level (storage condition). The Aswan high dam of Egypt has considered as the case study. 18 years of historical inflow data has used for simulation purpose and the general system performance measuring indices has measured. The application procedure and problem formulation of ABC is very simple and can be used in optimizing reservoir system. After using the actual historical inflow, the release policy succeeded in meeting demand for about 98% of total time period. فایل PDF – در 8 صفحه – نویسندگان : Md S Hossain and A El-shafie  Application of artificial bee colony (ABC) algorithm پسورد فایل : behsanandish.com


الگوریتم بهینه سازی کلونی زنبور عسل مصنوعی برای حل مشکلات بهینه سازی محدود

Artificial Bee Colony (ABC) Optimization Algorithm for Solving Constrained Optimization Problems

Abstract. This paper presents the comparison results on the performance of the Artificial Bee Colony (ABC) algorithm for constrained optimization problems. The ABC algorithm has been firstly proposed for unconstrained optimization problems and showed that it has superior performance on these kind of problems. In this paper, the ABC algorithm has been extended for solving constrained optimization problems and applied to a set of constrained problems . فایل PDF – در 10 صفحه – نویسندگان : Dervis Karaboga and Bahriye Basturk Artificial Bee Colony (ABC) Optimization پسورد فایل : behsanandish.com


الگوریتم کلونی زنبور عسل مصنوعی و کاربردش در مشکل تخصیص انتزاعی

Artificial Bee Colony Algorithm and Its Application to Generalized Assignment Problem

فایل PDF – در 32 صفحه – نویسندگان : Adil Baykasoùlu, Lale Özbakır and Pınar Tapkan Artificial Bee Colony Algorithm and Its پسورد فایل : behsanandish.com


  الگوریتم کلونی زنبور عسل مصنوعی
Artificial Bee Colony Algorithm

Contents 
• Swarm Intelligence – an Introduction 
• Behavior of Honey Bee Swarm 
 • ABC algorithm
 • Simulation Results 
• Conclusion 
فایل PDF از یک فایل Power Point – در 22 اسلاید- نویسنده : ناشناس
پسورد فایل : behsanandish.com

بهینه سازی کلونی زنبور عسل پارت 1: مرور الگوریتم

BEE COLONY OPTIMIZATION PART I: THE ALGORITHM OVERVIEW

,Abstract: This paper is an extensive survey of the Bee Colony Optimization (BCO) algorithm proposed for the first time in 2001. BCO and its numerous variants belong to a class of nature-inspired meta–heuristic methods, based on the foraging habits of honeybees. Our main goal is to promote it among the wide operations research community. BCO is a simple, but ecient meta–heuristic technique that has been successfully applied to many optimization problems, mostly in transport, location and scheduling fields. Firstly, we shall give a brief overview of the meta–heuristics inspired by bees’ foraging principles, pointing out the dierences between them. Then, we shall provide the detailed description of the BCO algorithm and its modifications, including the strategies for BCO parallelization, and give the preliminary results regarding its convergence. The application survey is elaborated in Part II of our paper. Keywords: Meta–heuristics, Swarm Intelligence, Foraging of Honey Bees فایل PDF- در24 صفحه – نویسندگان : Tatjana DAVIDOVI´ C , Duˇsan TEODOROVI´ C , Milica ˇSELMI´ C BEE COLONY OPTIMIZATION PART I پسورد فایل : behsanandish.com


چکیده

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

ﮐﻠﯿﺪواژه ﻫﺎ

اﻧﻄﺒﺎق ﺗﺼﻮﯾﺮ، ﺷﻨﺎﺳﺎﯾﯽ وﯾﮋﮔﯽ ﻫﺎ، ﺗﻄﺒﯿﻖ، ﺑﺮآورد ﻣﺪل ﺗﺒﺪﯾﻞ، اﻟﮕﻮرﯾﺘﻢ SIFT

مقدمه

اﻧﻄﺒﺎق ﺗﺼﻮﯾﺮ، ﻓﺮآﯾﻨﺪ روی ﻫﻢ ﮔﺬاﺷﺘﻦ دو ﯾﺎ ﭼﻨﺪ ﺗﺼﻮﯾﺮ از ﯾﮏ صحنه است ﮐﻪ در ﺷﺮاﯾﻂ ﻣﺨﺘﻠﻒ ﺗﺼﻮﯾﺮﺑﺮداری (زﻣﺎن ﻫﺎی ﻣﺘﻔﺎوت، زواﯾﺎی ﻣﺘﻔﺎوت، ﺣﺴﮕﺮ ﻫﺎی ﻣﺘﻔﺎوت و ﻧﻮع و ﻣﺎﻫﯿِﺖ ﻣﻨﻄﻘﻪ ی ﺗﺼﻮﯾﺮﺑﺮداری ﺷﺪه) ﮔﺮﻓﺘﻪ ﺷﺪه اﻧﺪ و اﯾﻦ ﻓﺮآﯾﻨﺪ از ﻧﻈﺮ ﻫﻨﺪﺳﯽ، دو ﺗﺼﻮﯾﺮ ﻣﺮﺟﻊ و ﺣﺲ ﺷﺪه را ﻫﻢ ﺗﺮاز می ﮐﻨﺪ. اﯾﻦ ﻓﺮآﯾﻨﺪ، ﯾﮏ ﻣﺮﺣﻠﻪ ی ﭘﯿﺶ ﭘﺮدازش در ﺗﺤﻠﯿﻞ ﺗﺼﺎوﯾﺮاﺳﺖ.

در واﻗﻊ ﺷﺮاﯾﻂ ﻣﺨﺘﻠﻒ ﺗﺼﻮﯾﺮﺑﺮداری ﺳﺒﺐ اﯾﺠﺎد اﺧﺘﻼﻓﺎت ﻗﺎﺑﻞ ﺗﻮﺟﻪ ﺑﯿﻦ ﺗﺼﺎوﯾﺮمی ﺷﻮد و ﺑﻪ ﺻﻮرت ﮐﻠﯽ اﯾﻦ اﺧﺘﻼف را می ﺗﻮان ﺑﻪ ﭼﻬﺎردﺳﺘﻪ ی ﻫﻨﺪﺳﯽ، ﻣﺸﮑﻼت رادﯾﻮﻣﺘﺮی، ﻣﺸﮑﻼت ﺑﺎﻓﺖ و ﺗﻐﯿﯿﺮ ﻣﻨﺎﻇﺮ ﺗﻘﺴﯿﻢ ﮐﺮد. مشکلاتی ﻣﺎﻧﻨﺪ اﺧﺘﻼﻓﺎت ﻣﻘﯿﺎس ﺗﺼﺎوﯾﺮ، اﺧﺘﻼﻓﺎت ﭼﺮﺧﺸﯽ ﺗﺼﺎوﯾﺮ و ﺗﻐﯿﯿﺮ ﺷﮑﻞ ﻫﺎی ﻧﺎﺷﯽ از ﺗﻐﯿﯿﺮ ﻣﻮﻗﻌﯿﺖ اﺧﺬ ﺗﺼﻮﯾﺮ را مشکلات ﻫﻨﺪﺳﯽ ﻣﯽﮔﻮﯾﻨﺪ.
اﯾﻦ اﺧﺘﻼﻓﺎت در ﺗﺼﺎوﯾﺮ پزشکی، ﺑﺮ اﺳﺎس ﺣﺮﮐﺎت ﻏﯿﺮارادی (ﻣﺎﻧﻨﺪ ﺗﻨﻔﺲ، ﺿﺮﺑﺎن ﻗﻠﺐ و…) ﺣﺮﮐﺎت ارادی (ﻣﺎﻧﻨﺪ ﺟﺎﺑﺠﺎﯾﯽ ﺑﯿﻤﺎر) و در ﺗﺼﺎوﯾﺮ دﯾﮕﺮ ﺑﺮ اﺳﺎس ﺣﺮﮐﺖ دورﺑﯿﻦ ﺑﻪ وﺟﻮد ﻣﯽ آﯾﻨﺪ. ﻧﻮﯾﺰ، ﺗﻔﺎوت ﺷﺪت روﺷﻨﺎﯾﯽ، ﻣﻮﻗﻌﯿﺖ ﻣﻨﺎﺑﻊ روﺷﻨﺎﯾﯽ در ﺻﺤﻨﻪ و اﺧﺬ ﺗﺼﻮﯾﺮ درﺣﺴﮕﺮ ﻫﺎ و ﺑﺎﻧﺪﻫﺎی ﻃﯿﻔﯽ ﻣﺘﻔﺎوت، ﺳﺒﺐ اﯾﺠﺎد ﺗﻐﯿﯿﺮاﺗﯽ در ﺷﺪت روﺷﻨﺎﯾﯽ ﺗﺼﻮﯾﺮ می ﺷﻮد ﮐﻪ ﺑﻪ ﻣﺸﮑﻼت رادﯾﻮﻣﺘﺮی ﻣﻌﺮوف می ﺑﺎﺷﻨﺪ. ﺗﺼﺎوﯾﺮ، ﻣﻤﮑﻦ اﺳﺖ دارای ﺳﻄﻮﺣﯽ ﺑﺎ ﺑﺎﻓﺖ ﺿﻌﯿﻒ (ﻣﺎﻧﻨﺪ
درﯾﺎ ) ﺑﺪون ﺑﺎﻓﺖ و ﺑﺎﻓﺖ ﻫﺎی ﺗﮑﺮاری (ﻣﺎﻧﻨﺪ ﺳﺎﺧﺘﻤﺎن ﻫﺎی ﻣﺸﺎﺑﻪ) ﺑﺎﺷﺪ که مشکلات بافت نامیده می شوند. ویژگی های متحرک ( مانند حرکت وسایل نقلیه) و تغییراتی که در اثر گذر زمان در تصاویر (مانند تغییرات فصلی) وجود دارد، سبب تغییرات مناظر می شود. بر اساس مشکلات ذکر شده، جهت افزایش دقت در پردازش تصاویر، ضروری است فرآیند انطباق انجام شود. باید توجه کرد که هریک از الگوریتم های انطباق، تنها برای انطباق نوع مشخصی از تصاویر طراحی شده اند چرا که هر الگوریتم انطباق تصویر تنها برای حل نوع مشخصی از مشکلات هندسی، رادیو متری و مشکلات بافت و غیره کاربرد دارد.

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

نمودار تعداد مقالات بر حسب سال

 

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

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

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

2- کاربردهای انطباق تصویر

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

1-2- زوایای متفاوت

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

2-2- زمان های متفاوت

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

یک نمونه از انطباق در زوایای مختلف

 

حسگرهای متفاوت

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

حالت های متفاوت تصویر شبکیه

 

4-2- انطباق تصویر به مدل

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

انطباق تصویر با حسگرهای متفاوت

 

3- انطباق تصاویر و مراحل آن

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

دیاگرام مراحل انطباق تصویر

1-3- شناسایی ویژگی ها

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

شناسایی ویژگی ها در تصویر مرجع و حس شده

 

1-1-3- روش های مبتنی بر ناحیه

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

2-1-3- روش های مبتنی بر ویژگی

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

– ویژگی های نقطه ای

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

شناساگر گوشه مُراوِک

ایده مُراوِک برای تشخیص گوشه، استفاده از یک پنجره ی باینری کوچک (برای مثال 3*3) با مرکزیت پیکسل مورد بررسی است. با حرکت دادن این پنجره در چهار جهت اصلی (u,v) = (1,0) , (1,1) , (-1,-1) , (0, 1) میزان تغییرات شدت روشنایی بررسی می شود. اگر این میزان، در چهار جهت بررسی شده نسبت به سایر همسایه ها بیشتر باشد، آن پیکسل به عنوان گوشه در نظر گرفته می شود. این شناساگر دارای نقاط ضعفی است عبارت اند از:

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

شناساگر هریس

شناساگر هریس توسط کریس هریس در سال 1988 پیشنهاد شد. این شناساگر، برای شناسایی گوشه از یک پنجره دایره ای هموار برای مثال پنجره گوسی استفاده می کند و سپس با استفاده از بسط تیلور، پنجره را در تمام جهت ها حرکت می دهد و مقدار شدت روشنایی را در تمام جهان بررسی می کند. این شناساگر، نسبت به مقیاس تغییر پذیر است یعنی ممکن است یک پیکسل در یک مقیاس تصویر به عنوان گوشه در نظر گرفته شود، اما همان پیکسل در مقیاس دیگر همان تصویر به عنوان گوشه در نظر گرفته نشود. یانگ و همکاران در سال 2013 برای انطباق تصاویر از الگوریتم هریس برای شناسایی ویژگی ها استفاده کردند. ژانگ و همکاران در سال 2013 از الگوریتم هریس برای شناسایی ویژگی ها در انطباق غیر سخت تصاویر ریه که با CT گرفته شده اند، استفاده کردند.

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

الگوریتم تبدیل ویژگی مقیاس ثابت

این الگوریتم در سال 2004 توسط لاو جهت انجام فرآیند تشخیص الگو در تصاویر اپتیکی ارائه شده است. الگوریتم SIFT هم شناساگر و هم توصیفگر است که مرحله استخراج ویژگی در آن خود شامل سه مرحله است؛ که مرحله استخراج اکسترمم های فضای مقیاس، بهبود دقت موقعیت و حذف اکسترمم های ناپایدار و در آخر تخصیص جهت به هر ویژگی که ایجاد شده است. الگوریتم SIFT دارای محدودیت هایی است که برای بهبود دادن این الگوریتم جهت ارتقاء دقت انطباق باید به نوع تصویر هم توجه کرد، زیرا انحراف هایی که بین تصاویر وجود دارد، با توجه به ماهیت تصاویر ممکن است، متفاوت باشد. در تصاویر سنجش از دور SAR به دلیل وجود نویز اسپکل و همچنین استفاده از فضای مقیاس گوسی در SIFT باعث می شود اغلب لبه ها و جزئیات ظریف در تصویر از بین برود که تأثیر قابل توجهی در تشخیص ویژگی ها دارد. برای غلبه بر مشکلات ذکر شده در  تصاویر سنجش از دور SAR، بهبود هایی در الگوریتم SIFT انجام شده است که در ادامه به بعضی از آن ها اشاره می شود. 

فلورا دلینگر و همکاران در سال 2015 جهت بهبود الگوریتم SIFT در تصاویر سنجش از دور SAR روش SAR-SIFT را معرفی کردند. این روش از دو مرحله کلی تشکیل شده است که ابتدا از روش نسبت به جای روش تفاضل برای محاسبه گرادیان استفاده می کند که این سبب می شود مقدار گرادیان در مناطق همگن تحت شرایط بازتاب مختلف فرقی نداشته باشد. سپس برای تطبیق تصاویر سنجش از دور SAR از یک الگوریتم SIFT مانند استفاده می شود که در این الگوریتم، برای شناسایی نقاط کلیدی از فضای مقیاس لاپلاس گوسی و برای تعیین جهت و ایجاد توصیفگرها از یک پنجره ی مدور استفاده می کند. این روش جهت انطباق تصاویر با زاویه متفاوت مناسب نیست. وانگ و همکاران در سال 2012 روش BFSIFT برای انطباق تصاویر سنجش از دور SAR را پیشنهاد کردند. در این روش، برای حفظ جزئیات در تصاویر سنجش از دور SAR فضای مقیاس گوسی ناهمسانگرد جایگزین فضای مقیاس گوسی در الگوریتم SIFT شده است که این فضای مقیاس با استفاده از فیلتر دوطرفه ایجاد شده است. از مزایای این روش، کاهش اثر نویز اسپکل در انطباق تصویر است اما زمان اجرا آن زیاد می باشد. جیان وی فن و همکاران در سال 2015 روش تبدیل ویژگی مقیاس ثابت مبتنی بر انتشار غیرخطی و تجانس فاز را برای انطباق تصویر سنجش از دور SAR پیشنهاد کردند. در این روش از انتشار غیرخطی جهت حفظ جزئیات مهم و ظریف در تصویر و از عملگر نسبت میانگین وزن شده نمایی برای محاسبه اطلاعات گرادیان و سپس از تجانس فاز برای حذف نقاط پرت استفاده می کند. از مزایای این روش، اندازه گرادیان در مناطق همگن تحت شرایط بازتاب مختلف اندکی تفاوت دارد اما برای تعیین جهت گرادیان معیار مناسبی ندارد. فنگ وانگ و همکاران در سال 2015، روش تبدیل ویژگی مقیاس ثابت گوسی ناهمسانگرد وفقی را برای انطباق تصاویر سنجش از دور SAR پیشنهاد کردند. در این روش، از فیلتر گوسی ناهمسانگرد در فضای مقیاس SIFT و تطبیق پایداری جهت گیری متعادل به ترتیب برای حفظ لبه ها و جزئیات مهم تصویر و حذف تطبیق های نادرست استفاده می کند. در این روش لبه ها در تصویر سنجش از دور SAR حفظ می شوند و در نهایت باعث ارتقا دقت انطباق تصویر سنجش از دور SAR می شود اما در این روش اندازه گرادیان در مناطق همگن تحت شرایط بازتاب مختلف، متفاوت است.

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

در روشی برای استخراج ویژگی های SIFT با توزیع مکانی پیشنهاد شده است که در این روش به جای استخراج اکسترمم های تصویر DOG در همسایگی 26 تایی خود، همسایگی های بزرگتری (66 تایی) پیشنهاد کردند. با وجود مزایای این همسایگی بزرگ عتر، این روش دارای معایبی نیز می باشد. یکی از معایب این است که احتمال دارد باعث حذف بعضی از ویژگی های با کیفیت ولی با ساختار کوچک تصویر شوند. همچنین افزایش پیچیدگی محاسباتی آن نیز، بیشتر از الگوریتم SIFT پایه است. در روش SIFT تکرارشونده 

 

مثال (۲) : بهبود کارایی الگوریتم سیستم ایمنی مصنوعی در مسائل بهینه‌سازی

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

در مثال ارائه شده جواد‌زاده و میبدی تلاش در تقویت الگوریتم‌های سیستم ایمنی مصنوعی با استفاده از استراتژی ترکیب دارند. بدین صورت که از یک هیوریستیک جستجوی محلی در آنتی‌بادی های حافظه استفاده می‌شود.

ترکیب الگوریتم سیستم ایمنی مصنوعی و جستجوی محلی

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

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

Code New Algorithm

 

در ادامه روند الگوریتم ، پس از بهبود آنتی بادی های سلول های حافظه ، علاوه بر اضافه نمودن تعداد آنتی بادی ها به صورت تصادفی به جمعیت آنتی بادی ها ، بخشی از آنتی بادی های حافظه برای افزایش سرعت همگرایی به جمعیت آنتی بادی ها افزوده می شود. برای اعمال عملگر ابرجهش از رابطه های (۷) و (۸) و برای تعیین اندازه جمعیت برای n آنتی بادی از رابطه (۹) استفاده شده است.

روابط 7 و8

 

 

 

 

در رابطه (۷) متغیر c’ تعداد آنتی بادی هایی است که تحت تاثیر عملگر ابرجهش قرار گرفته اند. و (N(0,1 عدد تصادفی تابع گوسین با میانگین صفر و انحراف معیار δ=1 می باشد.
در رابطه (۸) پارامتر β، پارامتری برای کنترل ضریب کاهش تابع نمایی و *f مقدار شایستگی است که در بازه [۰,۱] نرمال شده است.

روابط 9

 

 

 

در رابطه (۹) متغیر Nc مجموع اعضاء جمعیت تولید شده برای آنتی بادی ها، ضریب تکثیر، N تعداد آنتی بادی ها و ()round عملگری است که آرگومان ورودی خود را به نزدیکترین عدد گرد می نماید.

نتایج آزمایش ها

در این قسمت شبیه سازی راهکار پیشنهادی برای چهار تابع محک استاندارد یعنی روابط (۱۰) تا (۱۳) به ازاء کیفیت جواب بدست آمده بر اساس روش های مختلف جستجوی محلی توسط جوادزاده و میبدی مورد مطالعه قرار گرفته است.

روابط 10و11و12

 

 

 

 

 

 

روابط 13

 

جهت ارزیابی راهکارهای پیشنهادی (بجز در مورد جستجوی محلی تپه نوردی) توابع مورد آزمایش به صورت سی بُعدی و آنتی بادی ها به صورت اعداد حقیقی استفاده شده و راهکار پیشنهادی با ۱۰۰ بار تکرار برای بدست اوردن پاسخ بهینه مورد آزمون قرار گرفتند.

راهکار پیشنهادی با جستجوی محلی تپه نوردی

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

جواد زاده و میبدی در ادامه برای مطالعه روند همگرایی راهکار پیشنهادی با جستجوی محلی تپه نوردی ، بهترین ، بدترین ، میانگین و انحراف معیار ارزش تمام آنتی بادی های حافظه برای تمام توابع (روابط ۱۰ تا ۱۳) را آزمایش نموده اند. در جدول ۴ نتایج شیه سازی شده را برای راهکار پیشنهادی مشاهده می نمائید.

 

جدول 4

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

بنابراین برای ارزیابی این راهکار پیشنهادی ، توابع مود آزمایش به صورا دو بعدی و آنتی بادی ها به صورت اعداد حقیقی کد گذاری می شوند.

راهکار پیشنهادی با جستجوی محلی ژنتیک

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

جدول ۵ نتایج شبیه سازی راهکار پیشنهادی را نشان می دهد. نتایج نشان می دهند که راهکار پیشنهادی با جستجوی محلی ژنتیک به جواب های بهینه همگرا می شوند و برای مقایسه ، نتایج الگوریتم سیستم ایمنی مصنوعی استاندارد در جدول ۶ مشاهده می شود.

 

جدول 5 و 6

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

 

جدول 7

با توجه به نتایج حاصله در جدول های ۵ و ۶ جوادزاده و میبدی نتیجه گیری کرده اند که کارایی راهکار پیشنهادی نسبت به الگوریتم سیستم ایمنی مصنوعی تائید شده است.

نتیجه گیری

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

 

برای دریافت مقاله به صورت pdf بر روی لینک کلیک کنید: Artificial-Immune-System-AIS

منبع


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

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

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

وظیفه تشخیص آنتی ژن ها بر عهده گلبول سفید با نام لنفوسیت است. دو نوع لنفوسیت وجود دارد: T-Cell و B-Cell، که هر دو در مغز استخوان تولید می شوند. B-Cell ها در تماس با آنتی ژن ها، آنتی بادی هایی تولید می کند که در مقابل آنتی ژن ها موثر است. آنتی بادی ها پروتئین های شیمیایی هستند و دارای شکل Y مانند هستند.

آنتی بادی ها دارای گیرنده های خاص برای تشخیص آنتی ژن ها هستند. زمانی که تماس بین آنتی بادی با یک B-Cell و آنتی ژن برقرار می شود، تکثیر کلونی در سطح B-Cell اتفاق می افتد و به کمک T-Cell تقویت می شود. در صورت آنکه یک آنتی بادی به جای تشخیص آنتی ژن، بافت خودی را به عنوان عامل خارجی تشخیص داد خودش را نابود می کند.

در حین تکثیر کلونی، دو نوع از سلول شکل می گیرد: سلول های پلاسما و سلول های حافظه. وظیفه سلول های حافظه تکثیر سلول های پلاسما برای واکنش سریعتر در مواجه تکراری با آنتی ژن ها و تولید آنتی بادی برای آن هاست. سلول پلاسما یک سلول B-Cell است که آنتی بادی تولید می کند.

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

از عملکرد سیستم ایمنی بدن در تشخیص و انهدام عوامل خارجی برای طراحی الگوریتم های متنوعی در بهینه سازی، یادگیری ماشین و شناسایی الگو بهره برداری شده است. سیستم ایمنی مصنوعی یا AIS مخفف Artificial Immune System است که اولین بار به عنوان یک الگوریتم توسط دی کاسترو و زوبن تحت نام الگوریتم کلونی ارائه شد.

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

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

خصوصیات مهم سیستم ایمنی مصنوعی به شرح زیر است:

1- استفاده از نمایش رشته بیتی

2- طول ثابت و یکسان برای هر سلول

3- به کارگیری یک جمعیت یا تعداد اعضا ثابت، البته در سیستم ایمنی مصنوعی می توان با تعریف طول عمر برای سلول های جمعیت، از یک جمعیت با تعداد اعضای متغیر نیز بهره برد.

4- در شبه کد، Selectionsize نشان گر تعداد سلول هایی است که برای انجام عملیات تکثیر، از جمعیت دور جاری در حلقه while انتخاب می شوند. به خاطر وجود همین مرحله در سیستم ایمنی مصنوعی، ماهیتی مشابه انتخاب داروینی وجود دارد.

5- برای تعیین عدد تکثیر سلولی برای یک سلول ایمنی انتخاب شده در تابع Clone از رابطه (Nc=Round(β,N,R استفاده می شود. در این رابطه Nc بیانگر تعداد کپی سلول β مبین نرخ تکثیرClonerate، همچنین N نشان گر تعداد سلول های جمعیت (Populationsize) و R بیانگر برازش مبتنی بر رتبه سلول مورد تکثیر است.

6- استفاده از جهش معکوش سازی بیت در عملگر فراجهش (عملگر جهش در AIS عملگر اصلی است).

7- برخلاف الگوریتم های تکاملی که معمولا احتمال جهش مقداری ثابت است، احتمال فراجهش Phm در سیستم ایمنی مصنوعی مقداری متغیر داشته و اندازه آن بستگی به برازش سلول ایمنی (عضو جمعیت) دارد. برای محاسبه احتمال فراجهش داریم: (Phm=exp(-Pm.f، در این رابطه Pm نرخ جهش بوده و f برازش سلول ایمنی مورد جهش است.

 

Code

 

منبع

 

 

سیستم ایمنی مصنوعی (AIS) قسمت 1
سیستم ایمنی مصنوعی (AIS) قسمت 2
سیستم ایمنی مصنوعی (AIS) قسمت 3
سیستم ایمنی مصنوعی (AIS) قسمت 4
سیستم ایمنی مصنوعی (AIS) قسمت 5
سیستم ایمنی مصنوعی (AIS) قسمت 6

نحوه عملکرد الگوریتم های ایمنی مصنوعی

الگوریتم های مطرح شده در سیستم های ایمنی مصنوعی را می توان به سه دسته تقسیم بندی نمود. دسته اول الگوریتم هایی که بر مبنای انتخاب جامعه سلول های B ایجاد شده اند. دسته دوم الگوریتم هایی که بر مبنای انتخاب معکوس سلول های T ایجاد شده اند. دسته سوم الگوریتم هایی که بر مبنای تئوری شبکه ایمنی بوجود آمده اند.

الگوریتم انتخاب جامعه (Clonal Selection)

این الگوریتم بر مبنای انتخاب جامعه سلول های B ایجاد شده است.بخش های اصلی این الگوریتم شامل شناسایی آنتی ژن، تکثیر و جهش سلول های B (آنتی بادی ها) و ایجاد سلول های حافظه است. در این الگوریتم اکثر سلول ها برای تکثیر انتخاب می شوند اما از همه سلول ها به یک اندازه تکثیر نمی شوند؛ بلکه سلول هایی که میل ترکیبی بیشتری دارند ، بیشتر تکثیر می شوند.

از طرف دیگر سلول هایی که میل ترکیبی کمتری داشته اند بیشتر تغییر می یابند. به بیان دیگر تکثیر نسبت مستقیمی با میل ترکیبی و جهش نسبت عکس با میل ترکیبی دارد. بدین ترتیب میل ترکیبی سلول ها به مرور زمان افزایش یافته و تنوع نیز حفظ می شود.

مراحل الگوریتم انتخاب جامعه

مراحل الگوریتم انتخاب جامعه عبارتند از :

 

 

Code Clonal Selection

 

مراحل الگوریتم انتخاب جامعه

 

الگوریتم انتخاب معکوس (Negative Selection)

این الگوریتم بر مبنای سلول های T ایجاد شده است.سلول های T می توانند سلول های خودی و غیر خودی را از یکدیگر تشخیص دهند.الگوریتم انتخاب معکوس دو مرحله دارد. مرحله اول که مرحله یادگیری است مشابه کار تیموس را انجام می دهد. یعنی سلول هایی که سلول های خودی را شناسایی می کنند را حذف می کند. مرحله دوم، مرحله نظارت یا اجراء است. در این مرحله الگوها (آنتی ژن ها) با سلول های T باقیمانده از مرحله اول مقایسه شده و در صورت شناسایی حذف می شوند. این الگوریتم در شناسایی الگو و امنیت نظارتی کاربرد دارد.

مراحل الگوریتم انتخاب معکوس

فرض می کنیم S مجموعه الگوهای خودی باشد که باید محافظت شده و مجموعه A نیز محافظ ها می باشند.

 

با توجه به مراحل فوق این الگوریتم دارای قابلیت یادگیری است. پس از یادگیری از مجموعه A در مرحله نظارت یا اجراء استفاده می شود.در این مرحله هر الگوی ورودی با الگوهای جدیددر مجموعه A مقایسه می شود و در صورتی که میل ترکیبی آنها از یک حد آستانه ای بیشتر شود ، الگوی ورودی به عنوان یک الگوی غیرخودی حذف می شود.

الگوریتم شبکه ایمنی (Immune Network)

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

در یک شبکه ایمنی مصنوعی ، برای آنتی بادی بجز میل ترکیبی با آنتی ژن ، معیارهای ارزیابی دیگری نیز وجود دارد.معیار ارزیابی اصلی در شبکه ایمنی مصنوعی میزان تحریک شدن آنتی بادی است.میزان تحریک آنتی بادی بر مبنای میل ترکیبی آنتی بادی با آنتی بادی های دیگر و میل ترکیبی سایر آنتی بادی ها با آنتی بادی مورد نظر محاسبه می شود.در صورتیکه یک آنتی بادی ، آنتی بادی دیگر یا آنتی ژن را شناسایی کند ، تحریک می شود اما از طرف دیگر شناسایی شدن یک آنتی بادی توسط آنتی بادی دیگر تاثیر بازدارندگی بر روی آن دارد. میزان تحریک یک آنتی بادی بطور کلی از رابطه زیر بدست می آید:

S = Nt – ct + Ag

Nt : میزان تحریک شدن آنتی بادی توسط شبکه است.
ct : میزان بازدارندگی شبکه ای آنتی بادی می باشد.
A : میزان تحریک آنتی بادی توسط آنتی ژن است.

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

مراحل الگوریتم شبکه ایمنی مصنوعی

الگوریتم شبکه ایمنی مصنوعی را می توان بطور کلی به صورت زیر تعریف کرد:

Code Immune Network

مراحل الگوریتم شبکه ایمنی مصنوعی

الگوریتم aiNET

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

مراحل الگوریتم aiNETمراحل الگوریتم aiNET

مراحل ۱،۲ تا ۸،۲ در الگوریتم فوق انتخاب جامعه می باشد. در مرحله ۴،۲ جهش از رابطه   فرمول جهش   بدست می آید که در آن c’ ماتریس آنتی ژن، c جامعه آنتی بادی ها و ضریب یادگیری یا نرخ جهش است. نرخ جهش در این الگوریتم از حاصل ضرب یک عدد ثابت و یک عدد تصادفی با توزیع یکنواخت در بازه صفرو یک در فاصله آنتی بادی و آنتی ژن بدست می آید.

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

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

مراحل ۹،۲ و ۴ به ترتیب اعمال بازدارندگی جامعه و شبکه را انجام خواهند داد. در مرحله ۹،۲ الگوریتم عمل بازدارندگی روی مجموعه اعضاء جامعه ایجاد شده برای هر آنتی زن جاری انجام می گیرد و در مرحله ۴ این عمل بر روی تمامی آنتی بادی های شبکه انجام می شود. این دو مرحله باعث می شوند آنتی بادی هایی که آنتی ژن های مشابهی را شناسایی می کنند، حذف شوند.

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

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

در سال ۲۰۰۰ میلادی کاسترو در همایش شبکه های عصبی مصنوعی در ریودژانیروی برزیل، روش دیگری ارائه نمود. در روش کاسترو ابتدا درخت پوشای مینیمم گراف محاسبه شده و سپس یال هایی که مقدار آنها از یال های هم جوارشان به صورت مشخصی بیشتر است حذف می شوند. گره های باقیمانده به یک کلاس تعلق دارند.

 

Code aiNET Algorithm

 

معرفی انواع کاربرد سیستم های ایمنی مصنوعی

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

“سيستم هاي وفقي كه با الهام از ايمونولوژي نظري و توابع، اصول و مدل هاي ايمني مشاهده شده به وجود آمده‌اند و برای حل مسائل مورد استفاده قرار می‌گیرند.”

كاسترو و تيميس سه ویژگی زیر را برای الگوريتم ايمني مصنوعي معرفی نموده اند:

۱٫ در هر الگوريتم ايمني مصنوعي، حداقل بايد يك جزء ايمني مانند لنفوسيت ها وجود داشته باشد.
۲٫ در هر الگوريتم ايمني مصنوعي بايد ايده اي برگرفته از بيولوژي نظري يا تجربي استفاده شود.
۳٫ الگوريتم ايمني مصنوعي طراحي شده بايد به حل مسئله اي كمك كند.

بر اساس سه ویژگی فوق، كاسترو و تيميس، اولين الگوريتم هاي ايمني مصنوعي را در سال ۱۹۸۶ طراحي كردند. در همان سال فارمر مدلی برای تئوری شبکه ایمنی ارائه کرد و بر اساس این مدل اعلام کرد که “سیستم ایمنی قادر به یادگیری، به خاطر سپردن و تشخیص الگوست.” بعد از نظر فارمر، توجه به سیستم ایمنی مصنوعی به عنوان یک مکانیزم یادگیری ماشین شروع شد. پس از آن به تدریج سیستم ایمنی مصنوعی ، در زمینه‌های مختلف وفق پذیر و جذاب بودن خود را نشان داد.

سیستم ایمنی علاوه بر توانایی تشخیص الگو، صفات دیگری از قبیل یادگیری، حافظه، خود سازماندهی و از منظر مهندسی، خصوصیات دیگری مانند تشخیص بی‌قاعدگی، تحمل خطا، توزیع‌پذیری و مقاومت بالا دارا می باشد. از زمان آغاز بحث سیستم ایمنی مصنوعی ، این سیستم برای اهداف متنوعی به کار گرفته شده است. این کاربردها را می توان تحت ۹ عنوان کاربردی دسته‌بندی نمود. این عناوین کاربردی عبارتند از :

۱٫ تشخیص عیب (Fault Detection)
۲٫ تشخیص ناهنجاری (Anomaly Detection)
۳٫ تشخیص نفوذ (Intrusion Detection)
۴٫ امنیت اطلاعات (Information Security)
۵٫ مسائل بهینه سازی (Optimization Problems)
۶٫ دسته بندی الگوها (Patterns Classification)
۷٫ زمانبندی (Scheduling)
۸٫ خوشه بندی (Clustering)
۹٫ سیستم های یادگیرنده (Learning Systems)

در ادامه به تشریح دو مثال از کاربردهای سیستم ایمنی مصنوعی می پردازیم.

سیستم ایمنی مصنوعی (AIS) قسمت 1
سیستم ایمنی مصنوعی (AIS) قسمت 2
سیستم ایمنی مصنوعی (AIS) قسمت 3
سیستم ایمنی مصنوعی (AIS) قسمت 4
سیستم ایمنی مصنوعی (AIS) قسمت 5
سیستم ایمنی مصنوعی (AIS) قسمت 6

بافت‌نگار

در علم آمار هیستوگرام یا بافت‌نگار یک نمودار ستونی و پله‌ای برای نشان دادن داده‌ها است.

برای نمونه بافت‌نگار فراوانی، نمودار مستطیلی با پایه‌ای به پهنای یک واحد بر روی هر مقدار مشاهده شده‌است که ارتفاع هر ستون آن برابر با فراوانی داده مورد نظر همخوانی دارد

نمودار بافت‌نگار همانند نمودار ستونی است و یگانه اختلافی که بین این دو وجود دارد، نمایش ستون‌هاست.

در پردازش تصویرها بافت‌نگار تصویر نموداری است که توسط آن تعداد پیکسل‌های هر سطح روشنایی در تصویر ورودی مشخص می‌شود.

بافت‌نگار

Iris Petal Length Histogram.svg

One of the Seven Basic Tools of Quality

معرفی‌کننده نخست : کارل پیرسون

کاربرد : توزیع احتمال. To roughly assess the  of a given variable by depicting the frequencies of observations occurring in certain ranges of values

 

نمونه‌ای از یک بافت‌نگار

نمونه‌ای از یک بافت‌نگار

 در عکاسی

بافت‌نگار (هیستوگرام) در عکاسی، به عنوان یک عملگر کاربردی مصطلح است و یکی از ابزارهای مفید و کارآمد در دوربین‌های عکاسی دیجیتالبه‌شمار می‌رود. که با این نام (برای این عملگر) چنین در بین کاربران مصطلح شده‌است و ارتباطی با کارکرد علمی آن ندارد.

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

 منبع


هیستوگرام تصویر

یک هیستوگرام تصویر از یک تصویر T1 فیلتر شده از یک مغز، پردازش شده توسط نرم‌افزار مانگو. ۳ قلهٔ مشهود در این نمودار ستونی متعلق به ماده سفید، ماده خاکستری، و CSF (آب نخاع) می‌باشند. دم سمت چپ متعلق به بقایای جمجمه و چربی پس از حذف به روش پردازش (فیلترینگ) بدست آمده است.

در یک تصویر دیجیتال، مقادیر پیکسل‌ها بیانگر ویژگی‌های آن تصویر (مانند میزان روشنایی تصویر و وضوح تصویر) است. هیستوگرام یک تصویر در حقیقت بیان گرافیکی میزان روشنایی تصویر می‌باشد. مقادیر روشنایی (برای مثال ۰-۲۵۵) در طول محور X بیان شده و میزان فراوانی هر مقدار در محور Y بیان می‌گردد.

تصویر ۸ بیتی (۰-۲۵۵) در بالا و هیستوگرام همان تصویر در پایین. محور افقی بین ۰ تا ۲۵۵ و محور قائم نشانگر تعداد پیکسل‌ها است.

 

تصویر T1 فیلتر شده از یک مغز، پردازش شده توسط نرم‌افزار مانگو

تصویری که هیستوگرام زیر از آن گرفته شده‌است

 هیستوگرام تصویر T1 فیلتر شده از یک مغز، پردازش شده توسط نرم‌افزار مانگو.

منبع


 

نمودار هیستوگرام تصویر نموداری است که در آن تعداد پیکسل های هر سطح روشنایی در تصویر ورودی مشخص می شود. فرض کنید تصویر ورودی یک تصویر Grayscale با 256 سطح روشنایی باشد ، بنابراین هریک از پیکسل های تصویر در شدت روشنایی در بازه [0..255] می توانند داشته باشند. برای به دست آوردن هیستوگرام تصویر ، با پیمایش پیکسل های تصویر ، تعداد پیکسل های هر سطح روشنایی را محاسبه می کنیم .

 

یک تصویر Grayscale و محاسبه هیستوگرام آن

هیستوگرام نرمال نیز از تقسیم کردن مقادیر هیستوگرام به تعداد کل پیکسل های تصویر به دست می آید. نرمال سازی هیستوگرام موجب می شود که مقادیر هیستوگرام در بازه [0,1] قرار گیرند. شکل زیر تصویری را به همراه هیستوگرام نرمال آن نشان می دهد :

 

 

دانه های برنج     هیستوگرام نرمال تصویر دانه های برنج

 

تعدیل هیستوگرام ( Histogram Equalization )

به تصویر زیر توجه کنید :

 

تصویر دانه های برنج با کنتراست پایین   هیستوگرام تصویر دانه های برنج با کنتراست پایین

 

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

 

تعدیل سازی هیستوگرام تصویر با کنتراست پایین و تولید تصویر با کنتراست بالا    تصویر دانه های برنج با کنتراست پایین

هیستوگرام تعدیل سازی هیستوگرام تصویر با کنتراست پایین و تولید تصویر با کنتراست بالا  هیستوگرام تصویر دانه های برنج با کنتراست پایین

 

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

1 ) هیستوگرام تصویر را محاسبه می کنیم. فرض کنید مقادیر هیستوگرام در آرایه hist قرار گیرد.

  2 ) با استفاده از فرمول زیر فراوانی هیستوگرام را محاسبه می کنیم :

histCum[ i ] = histCum[ i-1 ] + hist[ i ]

  3 ) از فرمول زیر استفاده کرده و هیستوگرام تعدیل شده را محاسبه می کنیم :

eqHist[i] = Truncate( [(L * histCum[i]) – N]/N  )

که در این فرمول L تعداد سطوح خاسکتری و N تعداد کل پیکسل ها را نشان می دهد

  4 ) در مرحله نهایی مقادیر جدید پیکسل ها را به صورت زیر مقدار دهی می کنیم :

Result[ i , j ]  = eqHist[  input[ i , j ] ]

که Result تصویر خروجی و input تصویر ورودی را نشان می دهد

منبع


 

هیستوگرام به معنی نشان دادن میزان فراوانی مقادیر بر روی نمودار است. در تصویر شما با شدت نور سر و کار دارید که بازه آن برای تصویر خاکستری از 0 تا 255 است یعنی تعداد level ها یا bin ها 256 تا است.

 

یک تصویر grayscale و هیستوگرام آن

 

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

 

تصویر رنگی و سه کانال هیستوگرام آن

 

برای محاسبه هیستوگرام می بایست تعداد تکرار یا همون فرکانس شدت ها رو در تصویر محاسبه کرد یعنی تعداد هر شدت نور را در تصویر شمارش کرده و در level یا bin مربوط قرار داد.

نکته ای که وجود دارد این است که همیشه قرار نیست 256 تا bin وجود داشته باشد. می توان 10 تا bin تعریف کرد و در هر بازه هر bin فراوانی ها را با هم جمع کرد.

بین ها

در OpenCV برای محاسبه هیستوگرام می توان از تابع calcHist استفاده کرد. تابع calcHist می تواند در چند کانال یا چند بعد هم هیستوگرام را محاسبه می کند و بایستی در هر کانال تعداد bin ها را مشخص کرد.

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

 

تعقیب چهره شخص بدون detection در هر فریم

منبع

 


منابع

  1. https://fa.wikipedia.org
  2. https://fa.wikipedia.org
  3. http://smpro.blogfa.com
  4. http://www.7khatcode.com