نوشته‌ها

جزوه پردازش تصویر با متلب (Matlab)_ دانشگاه پیام نور

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

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

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

لینک دانلود: جزوه پردازش تصویر با متلب_ دانشگاه پیام نور

پسورد فایل: behsan-andish.ir

تعداد صفحات : ۵۱

با سلام. قصد دارم در این پست تعدادی از منابع اصلی آموش پردازش تصویر و بینایی ماشین رو معرفی کنم.

امیدوارم که مفید باشد

 

لگچرهای کتاب آقای گنزالس

تعداد فایل : ۱۷ عدد

فرمت: pdf

زبان : انگلیسی

نویسنده: گنزالس

پسورد فایل: behsan-andish.ir

دانلود

 

______________________________________

 

مفاهیم پایه پردازش تصویر دانشگاه شهید بهشتی

تعداد صفحه: ۱۰۹ صفحه

فرمت: pdf

زبان : فارسی

نویسنده: ‫احمد محمودی ازناوه‬

پسورد فایل: behsan-andish.ir

دانلود

فهرست مطالب:
‫• مقدمه اي بر پردازش تصوير‬
‫– كاربردهاي پردازش تصوير‬
‫• ساختار تصوير ديجيتال‬
‫• تصاوير رنگي‬
‫• حساسيت چشم‬
‫– تباين‬
‫• حسگرهاي تصوير‬
‫• آشنايي با ‪Matlab‬‬
‫• آشنايي با فضارنگها‬

 

______________________________________

 

 

واژه نامه پردازش سیگنال و پردازش تصویر

واژه نامه پردازش سیگنال و پردازش تصویر حاوی لغات و اصطلاحات تخصصی استفاده شده در زمینه پردازش تصویر و پردازش سیگنال است.

نویسنده: خانم شهره کسائی

دانشگاه صنعتی شریف

تعداد صفحات: ۲۰

 

پسورد فایل: behsan-andish.ir

دانلود

مقدمه

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

دانلود کامل کاتالوگ (شامل تصاویر بیشتر جهت آشنایی با موضوع)

 

بینایی ماشین چیست؟

بینایی ماشین (به انگلیسی: Machine vision) شاخه‌ای از علم مهندسی است که به رشته‌های علوم کامپیوتری (Computer science) و علم نورشناسی و مهندسی مکانیک و اتوماسیون صنعتی ارتباط دارد. یکی از مهمترین و پر استفاده‌ترین کاربردهای آن در بازبینی و بررسی کالاهای صنعتی از جمله نیمه هادیها، اتومبیل‌ها، مواد خوراکی و دارو می‌باشد. همانند نیروی انسانی که با چشم غیر مسلح در خط تولید کالاها را برای تعیین کیفیت و نوع ساخت آنها بازبینی می‌کنند، Machine vision از دوربین‌های دیجیتال و دوربین‌های هوشمند و نرم‌افزارهای image processing (پردازش تصویر) برای این کار استفاده می‌کند. دستگاههای مربوطه (Machine vision) برای انجام دادن وظایفی خاص از جمله شمردن اشیاء در بالابرها، خواندن شماره سریالها(Serial numbers)، جستجوی سطح‌های معیوب به کار می‌روند.

بینایی ماشین و کنترل کیفیت

 

مزایای بهره گیری از بینایی ماشین در صنعت

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

 

کنترل کیفیت در صنعت

 

کاربردهای بینایی ماشین در صنعت

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

بینایی ماشین و کنترل کیفیت

 

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

اگرچه “بینایی ماشینی” بیشتر به عنوان یک فرآیند در کاربردهای صنعتی شناخته شده است، برای فهرست کردن اجزای سخت‌افزاری و نرم‌افزاری به کار برده شده نیز مفید می‌باشد. معمولاً یک بینایی ماشینی از اجزای زیر ساخته شده است:
۱٫ یک یا چند دوربین دیجیتال یا آنالوگ (سیاه-سفید یا رنگی) با اپتیک مناسب برای گرفتن عکس.
۲٫ واسطه‌ای که عکس‌ها را برای پردازش آماده می‌سازد. برای دوربین‌های آنالوگ این واسطه شامل یک دیجیتال کننده عکس است.

۳٫ یک پردازشگر (گاهی یک PC یا پردازنده تعبیه شده (Embedded Processor) مانند DSP
۴٫ نرم‌افزار Machine vision: این نرم‌افزار امکاناتی برای توسعه یک برنامه نرم‌افزاری که برای کاربردی مشخص شده است را فراهم می‌کند.
۵٫ سخت‌افزار ورودی / خروجی (مثلاً I/O دیجیتال) یا حلقه‌های ارتباطی (مثلاً ارتباط شبکه ای یا RS-232) برای گزارش نتایج.
۶٫ یک دوربین هوشمند: یک وسیله ساده که همه موارد فوق را داراست.
۷٫ لنزهایی که بتواند به مقدار مطلوبی روی سنسور تصویر زوم کند.
۸٫ منابع نوری مناسب و گاهی خیلی مخصوص (مثلاً چراغهای LED، فلورسنت، لامپهای هالوژن و . . .)
۹٫ یک برنامهٔ مشخص که بتواند تصاویر را پردازش کرده و مشخصه‌های مربوط و مناسب را شناسایی کند.
۱۰٫ یک سنسور همزمان ساز برای شناسایی اجزا (گاهی یک سنسور نوری یا یک سنسور مغناطیسی): این سنسور برای راه‌اندازی سیستمٍ استخراج و پردازش تصویر می‌باشد.

تاریخچه

(آنالیز موجک) ایده ی نمایش یک تابع برحسب مجموعه ی کاملی از توابع اولین بار توسط ژوزف فوریه، ریاضیدان و فیزیکدان بین سال های ۱۸۰۶-۱۸۰۲ طی رساله ای در آکادمی علوم راجع به انتشار حرارت، برای نمایش توابع بکار گرفته شد. در واقع برای آنکه یک تابع(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) بوده، و غیر مشتق‌پذیر به صورت پیوسته هستند.

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

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

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

موجک هار

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

منبع

مقالات پردازش تصویر عبارت اند از:

Basics of digital image processing

مفاهیم اولیه پردازش تصویر

فایل PDF – در ۵۷ صفحه – نویسنده : ناشناس

Basics of digital image processing

پسوردفایل : behsan-andish.ir


Digital Image Processing Laboratory Manual

کتابچه راهنمای آزمایشگاه پردازش تصویر دیجیتال

فایل PDF – در ۱۹ صفحه – نویسنده :  Bhaskar Mondal

Digital Image Processing laboratory manual

پسوردفایل : behsan-andish.ir


Fundamentals of Digital Image Processing

اصول پردازش تصویر دیجیتال

فایل PDF – در ۸ صفحه – نویسنده : ناشناس

Fundamentals of Digital Image Processing

پسوردفایل : behsan-andish.ir


Fundamentals of Image Processing

اصول پردازش تصویر

فایل PDF – در ۱۱۲ صفحه – نویسنده : Ian T. Young , Jan J. Gerbrands  , Lucas J. van Vliet

Image Processing Fundamentals–An Overview

پسوردفایل : behsan-andish.ir


Image Processing Manual

دستورالعمل پردازش تصویر

فایل PDF – در ۱۶۴ صفحه – تهیه کننده : انستیتو ملی اسناد آمریکا

Image processing manual

پسوردفایل : behsan-andish.ir


Image Processing Tutorial-Basic Concepts 

آموزش پردازش تصویر-مفاهیم پایه

فایل PDF – در ۵۵ صفحه – تهیه کننده : شرکت CCDWare Publishing

Image Processing Tutorial

پسوردفایل : behsan-andish.ir


Intel® Image Processing Library-Reference Manual

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

فایل PDF – در ۳۱۹ صفحه – نویسنده :  شرکت Intel

Intel Image Processing Library-reference manual

پسوردفایل : behsan-andish.ir


آنالیز و پردازش تصویر

فایل Word – در ۱۵ صفحه – نویسنده :  ناشناس

pardazesh tasvir

پسوردفایل : behsan-andish.ir


مفاهیم پایه پردازش تصویر-محیط های چند رسانه ای

فایل PDF – در ۱۰۹ صفحه – نویسنده :  احمد محمودی ازناوه (دانشگاه شهید بهشتی)

مفاهیم_پایه_پردازش_تصویر_دانشگاه

پسوردفایل : behsan-andish.ir

بینایی کامپیوتری (Computer vision) چیست؟

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

تصویر هنری از مریخ نورد NASA بر روی سطح سیاره مریخ. مثالی از خودروهای زمینی بدون سرنشین

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

کاوش در داده‌ها

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

وظایف اصلی در بینایی رایانه‌ای(بینایی کامپیوتری)

تشخیص شیء

تشخیص حضور و/یا حالت شیء در یک تصویر. به عنوان مثال:

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

پیگیری

پیگیری اشیاء شناخته شده در میان تعدادی تصویر پشت سر هم. به عنوان مثال:

  • پیگیری یک شخص هنگامی که در یک مرکز خرید راه می‌رود.

تفسیر منظره

ساختن یک مدل از یک تصویر/تصویر متحرک. به‌عنوان مثال:

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

خودمکان‌یابی

مشحص کردن مکان و حرکت خود دوربین به عنوان عضو بینایی رایانه. به‌عنوان مثال:

  • مسیریابی یک ربات درون یک موزه.

سامانه‌های بینایی رایانه‌ای یا بینایی کامپیوتری

یک سامانهٔ نوعی بینایی رایانه‌ای را می‌توان به زیرسامانه‌های زیر تقسیم کرد:

تصویربرداری

تصویر یا دنباله تصاویر با یک سامانه تصویربرداری(دوربین، رادار، لیدار، سامانه توموگرافی) برداشته می‌شود. معمولاً سامانه تصویربرداری باید پیش از استفاده تنظیم شود.

پیش‌پردازش

در گام پیش‌پردازش، تصویر در معرض اَعمال «سطح پایین» قرار می‌گیرد. هدف این گام کاهش نوفه (کاهش نویز – جدا کردن سیگنال از نویز) و کم‌کردن مقدار کلی داده‌ها است. این کار نوعاً با به‌کارگیری روش‌های گوناگون پردازش تصویر(دیجیتال) انجام می‌شود. مانند:

  • زیرنمونه‌گیری تصویر.
  • اعمال فیلترهای دیجیتال.
    • پیچشها.
    • همبستگیها یا فیلترهای خطی لغزش‌نابسته.
      • عملگر سوبل.
      • محاسبهٔ گرادیان x و y(و احتمالاً گرادیان زمانی).
  • تقطیع تصویر.
    • آستانه‌گیری پیکسلی.
  • انجام یک ویژه‌تبدیل بر تصویر.
    • تبدیل فوریه.
  • انجام تخمین حرکت برای ناحیه‌های محلی تصویرکه به نام تخمین شارش نوری هم شناخته می‌شود.
  • تخمین ناهمسانی در تصاویر برجسته‌بینی.
  • تحلیل چنددقتی.

استخراج ویژگی

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

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

ثبت

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

  • تخمین کمترین مربعات.
  • تبدیل هاگ در انواع گوناگون.
  • درهم‌سازی هندسی.
  • پالودن ذره‌ای.

بینایی و تفسیر تصاویر در انسان‌ها

lز آنجایی که هدف نهایی computer vision ساخت مفسر قدرتمند اجسام ۳D , رنگ‌ها و عمق تصاویر هست. دانستن این موضوع که چگونه مغز موجودات، بینایی و دیدن را تفسیر می‌کند و اینکه چند درصد نورون‌های کل مغز در گیر این پروسه هستند نسبتاً اهمیت پیدا می‌کند. مقاله زیر می‌تواند یک نگاه کلی از این روند پیچیده بدهد.

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

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

جریان dorsal بصری (سبز رنگ در تصویر) و جریان ventral(بنفش) در تصویر مشخص شده. قسمت‌های بسیار زیادی ازcerebral cortex در پروسه بینایی نقش دارند.

سلولهای مخروطی (Cone cells) در یک منطقه مرکزی شبکیه متمرکز به نام گودال متمرکز شده‌اند که فرورفتگی (یا fovea) هم نام دارد. آنها مسئول وظایف سنگین و دقیقی مثل خواندن هستند. سلول‌های Cone بسته به اینکه به نور آبی، قرمز، سبز چگونه واکنش می‌دهند به سه دسته تقسیم می‌شوند، و در مجموع این سه نوع از Cone ما را قادر به درک رنگ‌ها می‌کنند. سیگنال‌ها از سلول‌های گیرنده نوری (photoreceptor cells) از طریق شبکه ای از interneuronsها در لایه دوم شبکیه چشم به سلول‌های ganglion در لایه سوم منتقل می‌شوند. نورون‌های موجود در این دو لایه از شبکیه زمینه پذیرای پیچیده ای که آنها را قادر به تشخیص تضادهای تغییراتی در یک تصویر می‌کند را ارائه می‌دهند: این تغییرات ممکن است لبه‌ها یا سایه‌ها را نشان دهند. سلول‌های Ganglion این اطلاعات را به همراه دیگر اطلاعات در مورد رنگ جمع‌آوری می‌کنند و خروجی خود را به مغز از طریق عصب بینایی ارسال می‌کنند. عصب یا Nerve بینایی در درجه اول اطلاعات را از طریق thalamus به قشاء مغزی (cerebral cortex) ارسال می‌کند. پس از ارسال اطلاعات در قسمت cerebral cortex ادراک بصری انسان به وقوع می‌پیوندد. اما در عین حال این عصب (Nerve) حامل اطلاعات مورد نیاز برای مکانیک دید نیز هست که به دو قسمت از ساقه مغز (brainstem) این اطلاعات را منتقل می‌کند. اولین قسمت از brainstem گروهی از سلول‌های هسته هستند که pretectum نام دارند که کنترل غیرارادی اندازه مردمک در پاسخ به شدت نور را بر عهده دارند. اطلاعات مربوط به اهداف متحرک و اطلاعات ساکن اسکن شده توسط چشم نیز به قسمت دوم در brainstem منتقل می‌شود، یک هسته که با نام superior colliculus شناخته می‌شود مسئول حرکات چشم در پرش‌های کوتاه هست. بخش دیگر از این دو قسمت saccades هست که به مغز اجازه درک یک اسکن هموار را با کمک چسباندن یک سری از تصاویر نسبتاً ثابت می‌دهد. Saccadic eye movement مشکل تاری شدید- که می‌تواند برای تصویر پیش بیاید – را حل می‌کند. چشم می‌تواند به صورت یکنواخت در سراسر چشم‌انداز بصری حرکت کند؛ saccadesها در بعضی از وضعیت‌ها تجربه بصری را ممکن و آسان می‌کنند مانند مشاهده چشم فرد دیگری برای شما، در حالی که آن فرد در تلاش برای نگاه کردن سرتاسر اتاق هست.

محل دقیق قسمت thalamus(تالاموس) در عمق مغز در تصویر سه بعدی

بسیاری از تصاویر از شبکیه چشم (retina) از طریق عصب بینایی به بخشی از thalamus که به نام (lateral geniculate nucleus) شناخته شده است و در اختصار (LGN) هم کفته می‌شود منتقل می‌شوند، thalamus در عمق مرکز مغز قرار گرفته. LGN ورودی شبکیه (retinal) را به جریان‌های موازی ای مورد جداسازی قرار می‌دهد که یکی حاوی رنگ و ساختار ثابت و دیگری حاوی تضادها (contrast) و حرکات هست. سلول‌هایی که پردازش رنگ و ساختار را انجام می‌دهند چهار لایه بالایی از شش لایه LGN را تشکیل می‌دهند. این چهار لایه به علت کوچکی سلول‌ها، parvocellular نامیده می‌شوند. سلول‌هایی که پردازش حرکات و تضادهای تصویر را انجام می‌دهند دو لایه پایینی LGN رو تشکیل می‌دهند و به علت بزرگی سلول‌های این قسمت، لایه magnocellular نامیده می‌شوند.

سلول‌های لایه‌های magnocellular و parvocellular همه راه‌ها را به بخش‌های پشت مغز و به سمت قشر بینایی اولیه (Visual cortex _ V1) طرح‌ریزی می‌کنند. سلول‌ها در V1 در چندین مسیر مرتب شده‌اند که این مسئله اجازه می‌دهد سیستم بینایی محل اشیاء را در فضا محاسبه کند. در ابتدا سلول‌های V1 به صورت retinotopically یا موضعی سازمان یافته‌اند، که به معنای این است که نقطه به نقطه روی نقشه بین شبکیه و قشر بینایی اولیه وجود دارد و مناطق همجوار در شبکیه چشم با مناطق همجوار در V1 مطابقت دارد؛ که این به V1 اجازه می‌دهد که موقعیت اشیا را در دو بعد از جهان بصری که افقی و عمودی (مختصات (x , y)) تعیین کند. بعد سوم و عمق نیز با مقایسه سیگنال‌های دو چشم توسط V1 نقشه‌برداری و تعیین می‌شود. این سیگنال‌ها در پشته سلولها که ستون ocular dominance نامیده می‌شوند پردازش می‌شوند، که یک الگوی شطرنجی اتصالات متناوب بین سمت چپ و چشم راست است. اختلافی جزئی در موقعیت یک شی نسبت به هر چشم وجود دارد که اجازه می‌دهد تا عمق توسط مثلث محاسبه شود.

در نهایت، V1 به ستون‌های جهت گیری سازمان یافته است، پشته از سلول‌ها که به شدت توسط خطوط یک جهت گیری داده شده، فعال می‌شوند. ستون‌های جهت امکان تشخیص لبه‌های اشیاء در جهان بصری را برایV1 را فراهم می‌سازند، و به طوری که آنها کار پیچیده ای از تشخیص بصری را شروع می‌کنند. سازمان ستونی از قشر بینایی اولیه برای اولین بار توسط David Hubel و Torsten Wiesel توصیف شده است، که در نتیجه بخاطر این موضوع جایزه نوبل ۱۹۸۱ را دریافت کرده‌اند.

جالب توجه است که این الگوی شطرنجی، سازمان ستونی V1 در هنگام تولد بسیار مبهم است. قشر بینایی یک نوزاد تازه متولد شده رشد بیش از حد (hypertrophy) , یا اتصالات اتفاقی دارد که باید به دقت و بر اساس تجربه بصری در بلند مدت هرس شوند، و در نهایت به ستون‌های جداگانه تعریف شده تبدیل شوند- این در واقع یک کاهش در تعداد اتصالات و نه افزایش اتصالات خواهد بود -که در نهایت توانایی نوزاد برای دیدن جزئیات ریز و به رسمیت شناختن اشکال و الگوها را بهبود می‌بخشد.

primary visual cortex (V1)

این نوع از پالایش وابسته، به فعالیت به V1 محدود نمی‌شود و در بسیاری از مناطق سراسر قشر مغز (cerebral cortex) رخ می‌دهد. در همان زمان که توانایی تبعیض خطوط و لبه در قشر بینایی اولیه بهبود می‌یابد، سلول‌ها را در قشر بینایی ثانویه (secondary visual cortex V2) , توانایی خود را برای تفسیر رنگ پالایش می‌کنند. V2 تا حد زیادی مسئول پدیده ثبات رنگ است؛ و این حقیقت را توضیح می‌دهد که واقعیت یک گل سرخ تحت تأثیر بسیاری از رنگ‌های مختلف نور توسط ما هنوز هم به رنگ سرخ به نظر می‌رسد. این طور گمان می‌شود که ثبات رنگ وقتی رخ می‌دهد که V2 می‌تواند یک شیء و نور محیط را مقایسه کند و می‌تواند برآورد رنگ روشنایی را کاهش دهد. با اینحال این پروسه با توجه به اینکه بیننده انتظار دارد که شیء بخصوص به چه رنگی داشته باشد، به شدت تحت تأثیر قرار می‌گیرد.

در حقیقت، تقریباً تمام ویژگی‌های مرتبه بالاتر از بینایی و منظره توسط انتظارات بر اساس تجربه گذشته تحت تأثیر قرار می‌گیرد. این ویژگی به گسترش رنگ و درک فرم موجود در V3 و V4، به چهره و تشخیص شیء در لوب temporal (جایی که تصویر ذهنی سه بعدی از آنچه که می‌بینیم در نهایت تشکیل می‌شود) و به حرکت و آگاهی از فضای موجود در لوب parietal می‌انجامد. هرچند چنین روش و تأثیراتی گاهی اجازه می‌دهد مغز تحت تأثیر تصورات نادرست فریب بخورد، برای مثال در مواقع خطای دید در برخی از تصاویر، ولی این روش پردازش به ما توانایی دیدن و پاسخ سریع به جهان بصری را داده است. از تشخیص روشنایی و تاریکی در شبکیه چشم (retina) تا خطوط انتزاعی در V1 تا تفسیر اشیا و روابط فضاییشان در ناحیه‌های بصری بالاتر، هر وظیفه ای در ادراک بصری کارایی و قدرت سیستم بینایی انسان را نشان می‌دهد.

موارد حال حاضر استفاده از تکنولوژی computer vision

  • کاربردهای غیرنظامی
    1. سرچ پیدا کردن تصاویر مشابه در سرویس‌های Google یا Bing
    2. سرویس‌های شناختی Microsoft
      1. پیدا کردن افراد یکسان در تصاویر حتی در صورتی که آنها تغییر فیافه داده باشند
      2. سرویس تشخیص احساسات لحظه ای افراد مبتنی بر تصاویر
      3. سرویس تشخیص سن افراد و جنسیت و . . . در تصاویر
      4. سرویس PhotoDNA
      5. سرویس قدرتمند تبدیل نوشته‌های موجود در تصاویر به متن
      6. تشخیص چهره در ویدئو به صورت real time
      7. تبدیل گفتار به متن
      8. تشخیص لحن گفتار بر پایه متن
      9. سرویس پیدا کردن مفاهیم بر پایه محتویات متنی
      10. سرویس‌های تشخیص زبان‌های طبیعی
      11. سرویس توصیف تصاویر
      12. ربات‌های چت پیشرفته (از جمله این ربات‌ها می شه به Tay در twitter اشاره کرد)
      13. و سرویس‌های دیگر . . . .
    3. سرویس‌های شناختی IBM
      1. تشخیص احساسات بر پایه تصاویر
      2. سرویس اپن سورس توصیف تصاویر با node.js (سورس code)
      3. توصیف محتواهای متنی
      4. سرویس شناختی آنالیز شبکه‌های اجتماعی
      5. ربات‌های خودکار پاسخ دهنده هوشمند به کاربران
      6. تشخیص احساسات بر پایهٔ محتوای متنی
      7. سرویس گراف‌های شناختی از داده‌های تاریک
      8. کسب و کارهای شناختی
      9. تشخیص real time ایتم‌های مختلف با تراشه SyNAPSE
      10. و سرویس‌های دیگر . . . .
    4. خودروهای خودران Google و بقیه شرکت‌ها
    5. استفاده برای تشخیص چهره درگرفتن عکس در تلفن‌های همراه همچنین استفاده در سرویس شبکه اجتماعی فیسبوک جهت نوشتن نام‌ها بر روی تصاویر
    6. استفاده در فروشگاه‌ها برای دنبال کردن سلایق بازدید کننده گان
    7. استفاده در تشخیص پلاک خودرو
    8. درمان بیماری‌ها و تومورها و سرطان با Nanobots های که انرژی خود را از برخورد اتفاقی با سلول‌ها به دست می آورند

 

ناو ACTUV

تصویری از رونمایی کشتی جنگی بدون سرنشین ضد زیر دریایی با قابلیت ردیابی ممتد یا به اختصار (ACTUV)

  • کاربردهای نظامی
    • تشخیص و شناسایی چهره افراد در فرودگاها و مراکز حساس دیگر
    • وسایل حرکتی بدون سرنشین _ مستقل (Uncrewed vehicle)
      1. خودروهای زمینی بدون سرنشین نظامی چند منظوره با قابلیت‌های استفاده موتوریزه و انتقال نیروها و تجهیزات . . . (Unmanned ground vehicle)
      2. زیردریایی بدون سرنشین: زیردریایی شرکت بوئینگ (Boeing submarine) که قابلیت ماه‌ها ماندن در زیر دریا و بررسی و ارسال اطلاعات به طور کاملاً مستقل را قادر می‌باشند
      3. ناوهای بدون سرنشین: ناوهای ضد زیردریایی ACTUV ساخت DARPA (سازمان پروژه‌های تحقیقاتی پیشرفتهٔ دفاعی)
      4. هواپیماهای بدون سرنشین و پهپادها با کنترل مستقل (Unmanned aerial vehicle)
      5. سیستم دفاع موشکی هوش مصنوعی (Artificially Intelligent Missile Defense System)
      6. فضاپیمای بدون سرنشین (Unmanned spacecraft)
      7. ربات‌های Humanoid (پروژه Atlas robot)
      8. Nanobots

منبع

مطالب مرتبط :

تفاوت بینایی ماشین و بینایی کامپیوتر

آشنایی با ماشین بینایی

آشنایی با بینایی ماشین و بینایی رایانه ای

بسياري از محصولات شركت هاي توليدي، در سراسر دنيا قابل فروش هستند. با توجه به اين مسئله وجود باركدهاي منحصر به فردي كه آنها را از يكديگر متمايز سازد ضروري به نظر مي رسد.تبديل اعداد به باركد خواندن باركد نياز به استاندارد مشخصي دارد. در حال حاضر در دنيا چند استاندارد براي توليد و استفاده از باركد وجود دارد كه معتبرترين آنها استاندارد EAN/UCC است كه۱۰۳ كشور در دنيا از آن تبعيت مي كنند و حدود۹۰ درصد تجارت دنيا را پوشش مي دهد.

در ايران به علت ضرورتي كه بنا به توسعه صدور كالاهاي غيرنفتي ايران به بازارهاي جهاني به وجود آمد در سال۱۳۷۴ سازماني با عنوان »مركز ملي شماره گذاري كالا و خدمات« زير نظر موسسه مطالعات و پژوهش هاي بازرگاني تاسيس شد و پس از انجام مطالعات لازم با انتخاب استاندارد EAN/UCC كشور ما به عضويت موسسه بين المللي EAN International درآمد. تاكنون بيش از۵ هزار شركت- كه بيشتر آنها شركت هاي توليدكننده محصولات غذايي و شيميايي هستند- به عضويت اين موسسه درآمده و براي كالاها و محصولات خود باركد دريافت كرده اند.
باركد محصولات،۱۲ رقمي است. البته در برخي از كشورها به دلايل مختلف باركد۱۳ رقمي نيز وجود دارد.۱۲ رقم باركد به شرح زير معني دار مي شود:

سه رقم اول نمايانگر كد كشور(۶۲۶= كد ايران)،۵ رقم بعدي كد شركت سازنده،۴ رقم بعدي كد كالاي مربوطه و در نهايت۱ رقم آخر كد كنترل توسط رايانه به منظور كنترل صحت كد مورد نظر است.
براي مثال باركد زير مربوط به دستمال كاغذي۲۰۰ برگي يكي از شركت هاي توليدي است به طور حتم تا به حال در هنگام خريد يا پس از خريد كالا به علامت باركد چاپ شده در روي بسته بندي آن توجه كرده ايد و اين سئوال برايتان پيش آمده كه اين خطوط چه هستند و چه كارآيي دارند.

عامه مردم درباره باركد، نظرات متفاوتي دارند. خيلي ها فكر مي كنند باركد نمايانگر قيمت كالاست. برخي ديگر نيز باركد را علامت استاندارد و عده اي باركد را شماره مجوز كالا مي دانند.
باركد شامل يك سري عدد و تعدادي خطوط موازي سياه رنگ با ضخامت هاي مختلف در زمينه سفيد بوده كه از طريق دستگاه پويشگر (Scanner) توسط امواج مادون قرمز قابل خواندن و انتقال به رايانه است. هر يك از اين ميله ها مانند يك بيت ارزشي، معادل صفر و يك دارند.
هر يك از اين كدها در بانك اطلاعاتي مربوط، داراي اطلاعات كاملي شامل شرح، مشخصات دقيق و فني، موجودي، اطلاعات ورود و خروج براي استفاده كنندگان ذي ربط هستند.

استفاده از باركد فقط به محصولات توليدي شركت ها محدود نمي شود. در كارخانه ها و موسسات توليدي به منظور رديابي مداوم اطلاعات كالاهاي توليدي در خطوط مختلف توليد قطعات مصرفي موجود در انبارها، باركدهاي منحصر به فردي ايجاد و با اين سيستم رديابي مي شود. سيستم باركد كمك مي كند تا تغيير اطلاعات را توسط سيستم باركد به بانك هاي اطلاعاتي منتقل كرده و همواره اطلاعات موجودي هاي خود را به روز نگه داريد. در واقع باركد به عنوان يك ترمينال ورودي كمك مي كند تا تغيير يا ثبت اطلاعات با حداقل خطاي اطلاعاتي به رايانه منتقل شود.

در فروشگاه هاي بزرگي كه روزانه مقدار زيادي كالاي ريز و درشت به آنها وارد و يا خارج مي شود و مسئولين براي كنترل موجودي هاي خود همواره به اطلاعات سطوح موجودي نياز دارند استفاده از باركد بسيار ضروري است. در غير اين صورت بايد هرازگاهي با تعطيلي فروشگاه اقدام به شمارش و كنترل موجودي كرد. اين كار نه تنها بسيار دشوار و طاقت فرساست بلكه امكان بروز اشتباه در آن نيز زياد است.

در حال حاضر در كشور ما از باركد براي جمع آوري و ثبت اطلاعات مختلف استفاده هاي متنوعي مي شود. از كارت هاي حضور و غياب پرسنلي گرفته تا قبوض آب و برق و تلفن، اطلاعات خطوط توليد و ردياب محصولات، موجودي هاي انبار، كتب جهت ثبت شماره استاندارد بين المللي كتاب (شابك) و از همه بيشتر براي كالاهاي توليدي شركت ها كه در فروشگاهها ارائه مي گردد و …
براي راه اندازي سيستم هاي مبتني بر باركد، نياز به تجهيزاتي مانند نرم افزار توليد باركد، چاپگر چاپ باركد، پويشگر (Scanner) و برچسب هاي ويژه داريم.
البته توسعه و پيشرفت در زمينه باركد نيز مانند ساير علوم و فن آوريها به سرعت در حال وقوع است.

منبع


بارکد تقریبا در تمام بخشهای زندگی ما وجود دارد , در سوپر مارکتها , بیمارستانها زندانها و حتی در خانه خودمان !

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

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

انواع مختلف روشهای کدگذاری

بارکد در شکلهای مختلف ارائه میشود که ساده ترین نوع آن را حتما در فروشگاهها و یا سوپر مارکتها دیده اید . اما استانداردهای دیگر بارکد هم وجود دارد که در صنایع مختلف استفاده می شود مثل : مراکز درمانی , کارخانه های صنعتی و … که تمام اینها نحوه کدگذاری (Symbology) منحصر به فرد برای خود را دارند که غیر قابل تغییر هستند. حال این سوال پیش می آید که چرا اینهمه کدهای متفاوت وجود دارد ؟ این سوال به سادگی قابل جوابگوئی است چرا که Symbology های مختلف برای حل مشکلات صنایع گوناگون به وجود آمده اند .

حالا با هم نگاهی کوتاه به برخی از Symbology های معمول می اندازیم و ببینیم چگونه و کجا و چرا از آنها استفاده میکنیم :

UPC/EAN
این نوع کدگذاری برای کنترل خروجی ( کنترل نهائی ) به کار برده میشود . کد UPC با طول ثابت میباشد و به طور خاص در فروشگاهها و کارخانجات تولید کننده مواد غذائی کاربرد دارد . این کد برای سوپرها و این چنین مواردی در نظر گرفته شده است که با استفاده از ۱۲ رقم فضای مناسبی برای تعریف محصولات در اختیار ما قرار میدهد .

Code 39
این روش کد گذاری به این دلیل ایجاد شد تا در صنایعی که احتیاج به استفاده از حروف نیز در کنار ارقام دارند به کار برده شود . این روش کدگذاری عمومی ترین روش کدگذاری است که از قدیم به کار برده میشود . این نوع کدگذاری معمول درا تمام صنایع – به استثناء تولید کنندگان موادغذائی – به کار گرفته میشود اما با توجه به اینکه بارکد دارای طول زیادی خواهد بود برای مواردی که اندازه برچسب روی اقلام تولیدی گزینه ای قابل توجه باشد پیشنهاد نمی شود.

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

Interleaved 2 of 5
از دیگر روشهای کدگذاری معمول در صنایع حمل و نقل است که در کنار آن کاربرد بسیاری در انبارها و شرکتهای عمده فروش می باشد . این کدها هم به صورت فشرده و کم جا هستند .

PDF417
این روش کدگذاری به عنوان روش دو-بعدی ( ۲D ) شناخته شده است که به صورت خطی نبوده و بیشتر شما را به یاد جدول روزنامه ها می اندازد اما تفاوت این کد با سایر کدهائی که در بالا توضیح داده شد این است که PDF417 واقعا یک فایل داده های سیار ( Portable Data File ) است که مثلا میتواند شامل : اسم , آدرس , شماره تلفن منزل , شماره گواهینامه رانندگی و عکس و حتی خلاصه سوابق رانندگی شما باشد !

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

بارکدها چگونه خوانده میشوند :

بارکدها با کشیده شدن تابش کوچکی از نور روی کد چاپ شده قابل خواندن هستند . چشمان شما تنها خط قرمزی از نور را میبیند که از بارکد خوان تابیده میشود اما چه اتفاقی در تابش و بازتاب آن نور قرمز در میان این خطوط تیره و روشن می افتد ؟ قطعه ای در بارکدخوان بازتاب نور را دریافت کرده و آنرا به سیگنالهای الکتریکی تبدیل میکند . منبع تابش لیزر شروع به خواندن فضای خالی قبل از اولین خط مشکی میکند و این کار را تا انتهای کد انجام میدهد – اگر بارکد دارای این فضای خالی معین در ابتدا و انتهای خود نباشد قابل خواندن نیست که به این فضا ها Quiet Zone می گوئیم – هر چه کد ما طولانی تر باشد تعداد نوارهای ما نیز بیشتر خواهد بود و هر چه تعداد نوارهای ما بیشتر باشد باید ارتفاع نوارها نیز بیشتر شود تا کد به راحتی قابل خواندن باشد .

بارکد خوانها:

به طور کلی سه مدل بارکد خوان وجود دارد : ثابت , بارکدخوانهای سیار دسته ای و بارکدخوانهای سیار بی سیم

۱ – بارکدخوانهای ثابت :

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

۲ – بارکدخوانهای سیار دسته ای :

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

قرار گرفتن روی دست (Handheld)    قرار گرفتن در کیف (Wearable)        قرار گرفتن در ماشین (Truck)

۳ – بارکدخوانهای سیار بی سیم :

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

قرار گرفتن روی دست (Handheld)      قرار گرفتن در کیف (Wearable)       قرار گرفتن در ماشین (Truck)

اسکنر چکونه کار میکند :

پایه هر دستگاه بارکد خوان یک اسکن کننده , یک رمزگشاینده و یک کابل ارتباطی میان کامپیوتر و دستگاه بارکد خوان میباشد . وظیفه اسکن کننده این است که کد را اسکن کرده و داده های خروجی الکتریکی ایجاد نماید که داده ها با نوارهای مشکی و فاصله بین آنها مرتبط است . این داده های الکتریکی سپس توسط رمز گشا آنالیز شده و بر اساس نوع کدگذاری و محتوی کد به صورت متعارف کامپیوتری ( شامل حروف – اعداد و یا علامتهای دیگر استاندارد مثل ” – ” و ” . ” و … ) نمایش داده می شود .

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

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

کدام بارکدخوان برای کار و نرم افزار شما مناسب است ؟

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

* – دستگاهها در چه محیطی به کار میروند ؟ در یک محیط کاملا سخت صنعتی یا در یک فروشگاه معمولی !

* – استفاده از دستگاه برای مدت مشخصی می باشد یا به طور دائم از آن استفاده خواهد شد ؟

* – آیا به قابلیت سیار بودن دستگاه احتیاج دارید ؟

* – آیا خواندن کدها در نزدیکی کالاها می باشد یا در فاصله دورتر قرار دارند ؟

*- دستگاه چگونه به کامپیوتر متصل میشود ؟

*- آیا اطلاعات خوانده شده باید سریعا منتقل شوند یا خیر ؟

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

آیا دستگاه بارکد خوان با کامپیوتر من سازگار است ؟

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

چاپ بارکد :

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

استفاده از بارکد در هر کجا !

تمام صنایع میتوانند از مزیتهای تکنولوژی بارکد سود ببرند . در زیر برخی از موارد کاربردی بارکدها را ذکر میکنیم :

کارخانجات :
کارخانجات بزرگ و کوچک , انبارها میتوانند از مزایای سهولت استفاده از بارکد استفاده کنند که این سیستم با تمام روشهای مدیریتی مثل MRP , WMS و MES سازگار است .

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

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

مراکز درمانی :
استفاده از سیستم بارکد در مراکز درمانی باعث میشود تا مدیریت اطلاعات مهمی نظیر : پیشینه پزشکی بیمار , نوع بیمه و سایر اطلاعات به دست آورد.


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

استانداردهای رایج برای بارکد

پسورد فایل : behsan-andish.ir

بارکد چیست؟ قسمت ۱
بارکد چیست؟ قسمت ۲

بارکد چیست؟

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

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

ضرورت استفاده از بارکد

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

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

سیستم بارکدگذارى چگونه آغاز شد؟

در سالذ۱۹۳۲ گروهى از دانشجویان رشته مدیریت بازرگانى دانشگاه هاروارد، تصمیم گرفتند روشى را انتخاب کنند تا بر اساس آن مشتریان کالاى مورد نظرشان را از درون کاتالوگى پیدا کنند و سپس با برداشتن کارت هاى خاص چسبانده شده در کنار نام هر کالا و تحویل به مسؤول کنترل و قرار دادن آن در دستگاه کارت خوان و پانچ، مستقیماً کالا را از طریق انبار به باجه کنترل انتقال دهند و صورتحساب کامل را دریافت کنند و مهم تر از همه صاحبان فروشگاه از موجودى انبار خود اطلاعات به روزى داشته باشند. البته ایده سیستم «بارکدینگ» مدرن و پیشرفته از سال ۱۹۴۸ وارد سیستم تجارى شد.

سیستم بارکد امروزى چگونه شروع به کار کرد؟

سال ۱۹۴۸ بود که رئیس یک فروشگاه مواد غذایى در آمریکا از کار کند و بى دقت کارکنان فروشگاه به ستوه آمد و براى پیدا کردن راه حل به مسؤولان دانشگاه (Drexel) مراجعه کرد تا تقاضاى ساخت سیستم کنترل خودکارى را داشته باشد، اما مسؤولان دانشگاه از این نظریه استقبال نکردند.

یکى از دانشجویان فارغ التحصیل این دانشگاه به نام باب سیلور «Bob Silver» این گفت و گو را شنید و آن را با یکى از دوستانش Norman Joseph Woodland در میان گذاشت و تصمیم گرفتند براى ساخت چنین سیستمى شروع به کار کنند. آنها در شروع از رمز و الفباى سیستم مورس الهام گرفتند و سعى کردند با چاپ و طراحى میله هاى پهن و باریک این شیوه را راه اندازى کنند و مدتى بعد هم به فکر سیستم بارکد نقطه اى و دایره اى افتادند.

سال ۱۹۴۹ بود که توانستند اختراع خود را ثبت کنند و در سال ۱۹۵۲ نخستین سیستم بارکدخوان را ساختند. «وودلند» که از سال۱۹۵۱در شرکت IBM مشغول به کار شده بود، توانست با استفاده از موقعیتهایى که در آنجا برایش ایجاد مى شد، به کمک دوستش در سال ۱۹۵۲ دستگاهى به بزرگى یک میز تحریر بسازد و ۲ جزء اصلى در آن تعبیه کرد:

۱- یک حباب (لامپ) ۵۰۰ واتى به عنوان منبع نور.

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

بعداً متوجه شدند لامپ ۵۰۰ واتى میزان الکتریسیته اى زیادتر از آنچه آنها نیاز داشتند، تولید مى کند و میزان اضافى، علاوه بر بالا بردن هزینه ها، گرماى اضافى هم تولید مى کرد و از طرفى نگاه کردن به آن باعث آسیب چشم مى شد، بنابراین به فکر استفاده از منبعى افتادند که تمام نور مورد نیاز آنها را در فضاى کوچکى متمرکز کند. همان کارى که امروزه «لیزر» انجام مى دهد، اما در سال ۱۹۵۲ لیزر موجود نبود!

بعدها با گسترش و تولید لیزر «Laser» توانستند دستگاههاى بارکدخوان ارزان ترى تولید کنند. گرچه «باب سیلور» فرصت استفاده درست از دانش خود را در شرایط آسان تر نیافت و در ۳۸سالگى فوت کرد، اما همکارش کار را ادامه داد.

در سال ۱۹۷۲ سیستم بارکد نقطه اى نیز در عمل مورد استفاده قرار گرفت، اما این روش چندان موفق نبود (زیرا حین چاپ براحتى مغشوش مى شد.)

در سال ۱۹۷۴ وودلند در IMB سیستم بارکد خطى را گسترش داد و نخستین محصول خرده فروشى (محصولاتى چون آب میوه و آدامس) به این طریق فروخته شد. (و جالب اینکه در حال حاضر یک بسته از آن آدامس در موزه اى در آمریکا نگهدارى مى شود).
و سرانجام آقاى وود در سال ۱۹۹۲ توانست مدال ملى تکنولوژى را بابت به کارگیرى سیستم بارکد دریافت کند. (تنها به خاطر استراق سمع دوستش آقاى سیلور!) خلاصه آنکه، بارکدها و سایر برچسب هاى خوانا در جایى که نیاز به خوانده شدن اطلاعات با پردازش توسط کامپیوتر وجود دارد، استفاده مى شوند و کاربرها به عوض تایپ کردن رشته اى طویل از داده ها، تنها بارکد مورد نظر را جلوى دستگاه بارکدخوان قرار مى دهند و پردازش بدون نیاز به نیروى انسانى به طور کاملاً خودکار انجام مى شود. بنابراین بارکد شیوه شناسایى و تعیین هویت خودکار داده ها است.

رقمى که توسط بارکد تولید مى شود، عموماً محصول خاصى را نشان مى دهد. سیستم بارکدینگ به طور معکوس هم کار مى کند، یعنى قادر است با دریافت رقم مربوط به یک محصول، بارکد مورد نظر را ایجاد بکند و در واقع نوعى خود شناسایى انجام مى شود.
فواید بارکد کردن
۱- مصون بودن از خطاپذیرى به علت کاهش دخالت نیروى انسانى و وارد نشدن دستى اطلاعات.
۲- دسته بندى دقیق اطلاعات.
۳- سرعت بالا به همراه صحت ۱۰۰درصد.
۴- دسترسى آسان به اطلاعات واقعى و حقیقى (در جریان روند مدیریت) البته اگر: با دقت تمام کالاها در فروشگاهها بارکدگذارى شوند تا مراجعه کنندگان دچار دردسرهایى که ما با آن خوب آشنایى داریم، نشوند

منبع


كد ۱۲۸ امكان كد گذاري همه ی ۱۲۸ حرف مربوط به مجموعه كاراكترهاي كد اسكي را ارائه مي كند. اين كد با استفاده از خطوط و فضاهاي خالي با ۴ پهناي مختلف ، به بيشترين فشردگي ممكن سمبل ها نسبت به روش هاي قديمي تر خود كه از خطوط و فضاهاي خالي با ۲ ضخامت مختلف استفاده مي كردند ، رسيده است.

كد ۱۲۸ ممكن است به صورت دو طرفه (از هر دو جهت ) اسكن شود و محدوديتي هم براي تعداد كاراكترها در هر باركد وجود ندارد. هر چند ممكن است طول باركد با توجه به نوع اسكنر مورد استفاده و يا مكان مورد نظر براي چاپ باركد محدود شود . اما اين روش محدوديتي براي طول باركد ايجاد شده ندارد.

كد ۱۲۸ سه مجموعه كاراكتري متفاوت دارد كه در جدول مشخصات باركد به نام هاي Code Set a و Code Set B و Code Set C مشخص شده است .هر كدام از اين سه مجموعه كد مي تواند با كاراكتر شروع مربوط به خودش مورد انتخاب واقع شود. كاراكتر خاص `shift` در هر مجموعه به شما امكان مي دهد تا بتوانيد در بين يك كد ست از كد ست هاي ديگر هم استفاده كنيد با اين توصيف امكان استفاده ازچند كد ست در يك بار كد وجود دارد. با استفاده از اين روش طول باركد چاپ شده مي تواند به كمترين حد ممكن خود برسد.

در صورتي كه داده ها فقط شامل اعداد باشد استفاده از مجموعه كد C باعث مي شود تا طول باركد چاپ شده به كمترين حد ممكن تقليل پيدا كند . البته بايد اين نكته را در نظر داشته باشيد كه براي استفاده از Code Set C بايستي تعداد ارقام رشته اي كه مي خواهيد باركد آن را چاپ كنيد زوج بوده و حداقل ۴ رقم و يا بيشتر طول داشته باشد.
هر كدام از مجموعه كدهاي a,B,C يك يا چند كاراكتر براي توابع خاص رزرو كرده اند
از ويژگي هاي كد ۱۲۸ استفاده از رقم كنترل براي بررسي صحت باركد خوانده شده توسط دستگاه اسكنر باركد مي باشد.

ساختار باركد ۱۲۸ به صورت زير است
• يك فضاي يكنواخت و يا خالي در سمت چپ خطوط باركد
• كاراكتر شروع
• تعداد نامحدودي از داده ها
• رقم كنترل صحت
• كاراكتر خاتمه
• يك فضاي يكنواخت و يا خالي در سمت راست خطوط باركد
پهناي فضاي يكنواخت و يا خالي حداقل بايد ۱۰ برابر پهناي نازكترين خط / نازكترين فاصله خالي در باركد باشد.

هر كاراكتر در باركد ۱۲۸ تركيبي از ۳ خط و ۳ فاصله است . (كاراكتر خاتمه داراي ۴ خط و ۳ فاصله مي باشد ) .هر خط / فاصله خالي مي تواند يكي از ۴ واحد پهناي مختلف را داشته باشد . نازكترين خط / فاصله خالي بايد يك چهارم پهن ترين خط/ فاصله خالي باشد. جدول مشخصات باركد پهناي خط/ فاصله خالي براي همه مجموعه كاراكترهاي مربوط به كد ۱۲۸ را نشان مي دهد. دقت كنيد كه مجموع پهناي خطوط در هر يك از كاراكتر ها عددي زوج و مجموع فواصل خالي براي هر كدام از كاراكترها عددي فرد است. اولين ستون در جدول با عنوان « value » حاوي عددي است كه براي محاسبه رقم كنترل بكار مي رود.

بارکد چیست؟ قسمت ۱
بارکد چیست؟ قسمت ۲

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

الگوریتم جستجوی جدیدی مبتنی بر جمعیت به نام الگوریتم زنبور عسل (BA) ارایه شده است . الگوریتم  کلونی زنبور عسل رفتار جست و جوی غذای گروه زنبورهای عسل را تقلید می کند . در مدل پایه ای آن الگوریتم نوعی از جستجوی همسایگی ترکیب شده با جستجوی تصادفی را انجام می دهد و می تواند برای هر دوی بهینه سازی ترکیبی یا بهینه سازی تابعی مورد استفاده قرار گیرد.

مقدمه

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

۱٫ الگوریتم کلونی زنبورهای مصنوعی

الگوریتم کلونی زنبورهای مصنوعی (ABC) توسط کارابوگا در سال ۲۰۰۵ برای بهینه سازی واقعی پارامترها ارایه شد، این الگوریتم یک الگوریتم بهینه سازی جدیدا معرفی شده است و رفتار کاوشی کلونی زنبورها را برای مسایل بهینه سازی بدون محدودیت شبیه سازی می کند. برای حل مسائل بهینه سازی با محدودیت یک روش اداره محدودیت با این الگوریتم ترکیب می شود.

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

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

۱- مقدار دهی اولیه به موقعیت های منابع غذایی
۲- هر زنبور کارگر یک منبع غذایی جدید در مکان منبع غذایی خود تولید می کند و منبع بهتر را استخراج می کند .
۳- هر زنبور دیده ور یک منبع را وابسته به کیفیت راه حلش انتخاب می کند و یک منبع غذایی جدید رادر مکان منبع غذایی انتخاب شده تولید می کند و منبع بهتر را استخراج می کند.
۴- تعیین منبعی که باید متروک شود و تخصیص زنبورهای کارگر آن به عنوان دیده ور برای جستجوی منابع غذایی جدید.
۵- بخاطر سپردن بهترین منبع غذایی پیدا شده تا کنون.
۶- تکرار مرحله های ۲ – ۵ تا زمانی که معیار توقف مقتضی شود.

در مرحله اول الگوریتم ، xi (i = 1, . . . , SN) راه حل ها به صورت تصادفی تولید می شوند که در آن SN تعداد منابع غذایی است . در مرحله دوم الگوریتم ، برای هر زنبور کارگر ، که تعداد کل آنها برابر با نصف تعداد منابع غذایی است ، یک منبع جدید بوسیله رابطه زیر تولید می شود:

vij = xij + φij (xij – xkj) (1

φij یک عدد تصادفی بطور یکنواخت توزیع شده در بازه [-۱,۱] است که تولید موقعیت منابع غذایی همسایه را در اطراف xij کنترل می کند، K شاخص راه حل است که به صورت تصادفی از کلونی انتخاب شده است (K=int(rand ∗ SN) + 1), j = 1, . . .,D و D ابعاد مسئله است . بعد از تولید vi این راه حل جدید با xi مقایسه می شود و زنبور کارگر منبع بهتر را استخراج می کند . در مرحله سوم الگوریتم ، یک زنبور ناظر یک منبع غذایی را با احتمال (۲) انتخاب می کند و منبع جدیدی را در مکان منبع غذایی انتخاب شده توسط (۱) تولید می کند و به همان شکل روش زنبور کارگر، منبع بهتر برای استخراج شدن مورد تصمیم گیری قرار می گیرد.

Fiti میزان شایستگی راه حل xi است.

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

بوسیله رابطه (۳) xij = xj min + (xj max – xjmin )*rand

منبع : http://www.ecg-pnum.ir


۲٫ الگوریتم زنبور عسل

۲٫۱٫ زنبورها در طبیعت

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

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

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

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

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

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

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

۲٫۲٫ الگوریتم زنبور عسل معرفی شده

همان طور که اشاره شد، الگوریتم زنبور عسل یک الگوریتم بهینه سازی است که از رفتار کاوشی طبیعی زنبورهای عسل برای پیدا کردن راه حل بهینه الهام شده است. شکل ۱ شبهه کد الگوریتم را در ساده ترین حالت آن نشان می دهد. این الگوریتم نیازمند تنظیم تعدادی پارامتر است: تعداد زنبورهای دیده ور (n)، تعداد مکانهای انتخاب شده از مکانهای بازدید شده (m)، تعداد بهترین مکان ها از مکانهای انتخاب شده (e)، تعداد زنبورهای تازه نفس استخدام شده برای بهترین مکانهای e (nep)، تعداد زنبورهای استخدام شده برای سایر (m-e) مکان های انتخاب شده (nsp)، اندازه اولیه قطعه زمینها (ngh) که شامل مکان و همسایه های آن می شود و معیار توقف الگوریتم.

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

۱- مقدار دهی اولیه جمعیت با راه حلهای تصادفی
۲- ارزیابی تابع شایستگی جمعیت
۳- تا زمانی که (شرط توقف ملاقات نشده است)
// تشکیل جمعیت جدید.
۴- انتخاب مکان هایی برای جستجوی همسایه ها
۵- استخدام زنبورها برای مکانهای جدید (زنبورهای بیشتر برای بهترین مکان های e)
۶- انتخاب مناسب ترین زنبور از هر قطعه زمین گل
۷- تخصیص زنبورهای باقی مانده برای جستجوی تصادفی و ارزیابی شایستگی های آنها
۸- پایان حلقه

در مرحله ۴ زنبورهایی که بالاترین شایستگی را دارند به عنوان “زنبورهای انتخاب شده” انتخاب می شوند و مکان های ملاقات شده توسط آنها برای جستجوی همسایگی انتخاب می شود. سپس، در مرحله های ۵ و ۶، الگوریتم جستجوها را در همسایگی های مکانهای انتخاب شده هدایت می کند، و زنبورهای بیشتری را نزدیک بهترین مکانهای e تخصیص می دهد. زنبورها می توانند مستقیماً بر اساس شایستگی مکان هایی که آنها ملاقاتش کرده اند انتخاب شوند. متناوباً ، مقادیر شایستگی برای تعیین احتمال اینکه کدام زنبورها انتخاب خواهند شد استفاده می شوند.

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

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

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

منبع


شرح الگوریتم زنبور عسل

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

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

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

کاربردها 

برخی کاربردهای الگوریتم زنبور در مهندسی:

* آموزش شبکه عصبی برای الگو شناسی

* زمان بندی کارها برای ماشین‌های تولیدی

* دسته‌بندی اطلاعات

* بهینه‌سازی طراحی اجزای مکانیکی

* بهینه‌سازی چند گانه

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

هم چنبن نوشته ای با عنوان مقاله های الگوریتم کلونی زنبور عسل (Artificial Bee Colony (ABC) Algorithm) و کاربردهای آن شامل مقالات داخلی و خارجی در همین سایت قرار داده شده است.

الگوریتم زنبور شامل گروهی مبتنی بر الگوریتم جستجو است که اولین بار در سال ۲۰۰۵ توسعه یافت ؛ این الگوریتم شبیه سازی رفتار جستجوی غذای گروههای زنبور عسل است. در نسخه ابتدایی این الگوریتم، الگوریتم نوعی از جستجوی محلی انجام می دهد که با جستجوی کتره ای (Random) ترکیب شده و می تواند برای بهینه سازی ترکیبی {زمانی که بخواهیم چند متغیر را همزمان بهینه کنیم.}یا بهینه سازی تابعی به کار رود.

جستجوی غذا در طبیعت

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

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

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

الگوریتم

الگوریتم زنبور هر نقطه را در فضای پارامتری_ متشکل از پاسخ های ممکن_به عنوان منبع غذا تحت بررسی قرار می دهد.”زنبور های دیده بان”_ کارگزاران شبیه سازی شده _به صورت کتره ای (Random) فضای پاسخ ها را ساده می کنند و به وسیله ی تابع شایستگی کیفیت موقعیت های بازدید شده را گزار ش می دهند. جواب های ساده شده رتبه بندی می شوند، و دیگر “زنبورها” نیروهای تازه ای هستند که فضای پاسخ ها را در پیرامون خود برای یافتن بالا ترین رتبه محل ها جستجو می کنند(که “گلزار” نامیده می شود) الگوریتم به صورت گزینشی دیگر گلزار ها را برای یافتن نقطه ی بیشینه ی تابع شایستگی جستجو می کند.

الگوريتم زنبور عسل

الگوریتم زنبور شامل گروهی مبتنی بر الگوریتم جستجو است که اولین بار در سال ۲۰۰۵ توسعه یافت ؛ این الگوریتم شبیه سازی رفتار جستجوی غذای گروه های زنبور عسل است. در نسخه ابتدایی این الگوریتم نوعی از جستجوی محلی انجام می دهد که با جستجوی کتره ای{Random } ترکیب شده و می تواند برای بهینه سازی ترکیبی {زمانی که بخواهیم چند متغیر را همزمان بهینه کنیم.}یا بهینه سازی تابعی به کار رود.

جستجوی غذا در طبیعت

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

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

پروسه ی جستجوی غذای یک کلونی به وسیله ی زنبورهای دیده بان آغاز می شود که برای جستجوی گلزار های امید بخش {دارای امید بالا برای وجود نکتار یا گرده}فرستاده می شوند. زنبورهای دیده بان به صورت کتره ای{Random } از گلزاری به گلزار دیگر حرکت می کنند.
در طول فصل برداشت محصول{گل دهی}، کلونی با آماده نگه داشتن تعدادی از جمعیت کلونی به عنوان زنبور دیده بان به جستجوی خود ادامه می دهند. هنگامی که جستجوی تمام گلزار ها پایان یافت، هر زنبور دیده -بان ، بالای گلزاری که اندوخته ی کیفی مطمئنی از نکتار و گرده دارد، رقص خاصی را اجرا می کند.
این رقص که به نام “رقص چرخشی”{حرکتی مانند حرکت قرقره} شناخته می شود، اطلاعات مربوط به جهت تکه گلزار{نسبت به کندو}، فاصله تا گلزار و کیفیت گلزار را به زنبور های دیگر انتقال می دهد. این اطلاعات زنبور های اضافی و پیرو را به سوی گلزار می فرستد.
بیشتر زنبور های پیرو به سوی گلزار هایی میروند که امید بخش تر هستند و امید بیشتری برای یافتن نکتار و گرده در آنها، وجود دارد.
وقتی همه ی زنبور ها به سمت ناحیه ای مشابه بروند، دوباره به صورت کتره ای {Random } و به علت محدوده ی رقصشان در پیرامون گلزار پراکنده می شوند تا به موجب این کار سرانجام نه یک گلزار ، بلکه بهترین گل های موجود درون آن تعیین موقعیت شوند.

الگوریتم زنبور هر نقطه را در فضای پارامتری- متشکل از پاسخ های ممکن- به عنوان منبع غذا تحت بررسی قرار می دهد.”زنبور های دیده بان”- کارگزاران شبیه سازی شده – به صورت کتره ای{Random } فضای پاسخ ها را ساده می کنند و به وسیله ی تابع شایستگی کیفیت موقعیت های بازدید شده را گزار ش می دهند. جوابهای ساده شده رتبه بندی می شوند، و دیگر “زنبورها” نیروهای تازه ای هستند که فضای پاسخ ها را در پیرامون خود برای یافتن بالا ترین رتبه محل ها جستجو می کنند{که “گلزار” نامیده می شود} الگوریتم به صورت گزینشی دیگر گلزار ها را برای یافتن نقطه ی بیشینه ی تابع شایستگی جستجو می کند.

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

منبع: http://faraebtekari.ir


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

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

به علاوه آنها يک مدل کمينه از از رفتار کاوشگرانه زنبورها ارائه داند. اين مدل شامل سه مولفه مهم میباشد: ۱)منبع غذايي ۲(زنبورهای کارگر ۳(زنبورهای غيرکارگر. اين مدل دو نوع رفتار را دربرمیگيرد: سربازگيری برای يک منبع شهد و ترک منبع. Teodorovic پيشنهاد داد تا از هوش جمعی زنبورها در توسعه و بهبود سيستمهای مصنوعی با هدف حل مسائل پيچيده در حمل و نقل و ترافيک استفاده شود، همچنين او الگوريتم BCO (Bee Colony Optimization)را ارائه کرد که قادر است مسائل ترکيبی قطعی را همانند مسائل ترکيبی به خوبی حل نمايد. Drias يک روش هوشمندانه جديد را معرفی نمود با نام BSO که الهام گرفته از زنبورهای واقعی است. Wedde يک الگوريتم مسيريابی جديد با نام BeeHive ارائه کرد که الهام گرفته از متدهای ارتباطی و ارزيابی و همچنين رفتار زنبورهای عسل میباشد. در اين الگوريتم عاملها در منطقه شبکه که محدودهی کاوش ناميده میشود، در طول مسيرشان اطلاعات وضعيتی شبکه را به منظور بهنگام سازی جدول مسيريابی محلی جمع آوری می کنند.

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

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

الگوریتم کلونی زنبور عسل مانند سایر الگوریتم های هوش ازدحامی مرتبط بر رفتار تصادفی المان های آن است و برای حل مسائل بهینه سازی کاربرد دارد. بسیاری از الگوریتم های هوش ازدحامی با الهام گرفتن از طبیعت ایجاد شده اند مانند الگوریتم کلونی مورچگان، الگوریتم پرندگان، الگوریتم فاخته و الگوریتم کلونی زنبور عسل یا Artificial bee colony algorithm که به صورت مخفف BCO نامیده میشود (Bee Colony Optimization) .

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

یکی دیگر از روش های حل مسائل بهینه سازی الگوریتم های هوش ازدحامی است که الگوریتم زنبور عسل از جمله این الگوریتم ها است. الگوریتم زنبور (Bee Algorithm) یک الگوریتم گروهی مبتنی بر جستجو است که در سال ۲۰۰۵ میلادی ابداع شده است.این الگوریتم شبیه‌ سازی رفتار جستجوی غذای گروه‌های زنبور عسل است. در نسخه ابتدایی این الگوریتم، الگوریتم نوعی از جستجوی محلی انجام می‌دهد که با جستجوی تصادفی کتره­­ا ترکیب شده و می‌تواند برای بهینه سازی ترکیبی یا بهینه‌ سازی تابعی استفاده شود.

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

منبع: http://faraebtekari.ir


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

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

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

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

الگوریتم بهینه سازی ازدحام ذرات (PSO) شبیه سازی می کند رفتار اجتماعی پرندگان یا ماهی ها توسط ابرهارت و کندی در سال ۱۹۹۵ معرفی شده است. روش های گوناگونی به مدل رفتار هوشمند خاص ازدحام زنبور عسل پیشنهاد شده است و برای حل مسایل از نوع ترکیبی استفاده شده است.آنها یک ایده روبات بر رفتار جستجوی غذا از زنبورها را ایجاد کرده اند . معمولا ، همه این ربات از لحاظ فیزیکی و عملکرد یکسان هستند ، به طوری که هر ربات را می توان به طور تصادفی جایگزین دیگری کرد. ازدحام دارای تحمل قابل توجهی است ؛ شکست در یک عامل عملکرد کل سیستم را متوقف نمی کند. روبات های فردی ، مانند حشرات ، دارای قابلیت های محدود و دانش محدود از محیط زیست است. از سوی دیگر ، توسعه ازدحام هوش جمعی است. آزمایشات نشان داد که رباتها مانند حشرات مانند در انجام وظایف واقعی رباتیک موفق هستند.
آنها همچنین یک مدل انتخاب علوفه را توسعه داده اند که منجر به ظهور هوش جمعی می شود که متشکل از سه اجزای ضروری است: منابع غذایی ، کارگرهایی که پی علوفه می گردند و ، کارگرهایی که پی علوفه نمی گردند. این مدل دو رفتار برجسته را تعریف می کند: استفاده به یک منبع شهد و رها کردن یک منبع.
تئودور واس به استفاده از هوش جمعی زنبوردر توسعه سیستم های مصنوعی با هدف در حل مسایل پیچیده در ترافیک و حمل ونقل پیشنهاد داده است. تئودور واس همچنین پیشنهاد کرد بهینه سازی متا اکتشافی کلونی زنبور عسل (BCO) که قادر به حل قطعی مسائل ترکیبی ، و همچنین مسائل ترکیبی با مشخصه عدم قطعیت است[۱۱]. درایز و همکاران. معرفی یک رویکرد جدید هوشمند یا متا اکتشافی به نام ازدحام بهینه سازی زنبورها (BSO) است ، که از رفتار زنبور عسل واقعی الهام گرفته است . متا – اکتشافی برای حل مشکل ۳ – بعدی پایه ریزی شده روی روند تولید مثل زنبور عسل معرفی شده است. یک الگوریتم مسیر یابی جدید به نام کندوی عسل که از روش های ارزیابی ارتباطی و مشخص الهام گرفته شده زنبورهای عسل است.

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

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

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

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

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

درالگوریتم ABC ، موقعیت یک منبع غذایی یک راه حل مسئله بهینه سازی را نشان می دهند و مقدار شهد از منبع غذا مربوط به شایستگی راه حل همراه میشود. تعداد زنبورهای کارگر یا زنبورهای تماشاچی برابر با تعداد راه حل ها در جامعه است. دراولین قدم ، ABC جمعیت اولیه را به صورت تصادفی توزیع میکند P (G = 0) راه حل های SN (مواضع منبع غذایی) ، که در آن SN نشان دهنده اندازه جمعیت است.

هر راه حل (منبع غذایی) ( i = 1, 2, . . . , SN ) xi بردار D – بعدی است. در اینجا ،D تعداد پارامترهای بهینه سازی است. پس از مقداردهی اولیه ، جمعیت موقعیت ها (راه حل ها) در معرض تکرار چرخه است ، C = 1, 2, . . . ,Cmax؛ که C فرایندهای جستجوی زنبورهای کارگر و جستجوگر و طلایه دار است.

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

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

که در آن fit iمیزان شایستگی از راه حل i توسط زنبور کارگر آن ارزیابی شده است که ارزیابی متناسب با مقدار شهد منبع غذایی در موقعیت i است و SN تعدادی از منابع غذایی که برابر با تعداد زنبورهای کارگر (BN) است. در این روش، زنبورهای کارگر اطلاعات خود را با زنبورهای تماشاچی تبادل میکنند . به منظور تولید یک موقعیت غذایی انتخاب شده از قبلی ، ABC عبارت زیررا استفاده میکند:

که در آن {k ∈ {۱, ۲, . . . , BN و {j ∈ {۱, ۲, . . . ,D شاخص شان به صورت تصادفی انتخاب شده است . هر چندK به صورت تصادفی تعیین شده است ، آن متفاوت از i می باشد . φi,j یک عدد تصادفی بین -۱,۱]] است. آن تولید موقعیت منبع غذایی همسایه در اطراف xi,j را کنترل میکند ، وتغییرات مقایسه ای موقعیت های غذایی همسایه توسط زنبور عسل به صورت بصری را ارائه می شود . معادله ۲٫۲ پارامترهای مختلفی بین xi,j و xk,j نشان می دهد ، همچنین تغییرات در موقعیت xi,j ، کاهش می یابد. بنابراین ، به نوعی جستجو به راه حل بهینه در فضای جستجو نزدیک می شود ، گام مرحله طور تتاوقی کاهش می یابد . اگر پارامتر های تولید شده توسط این عملیات بیشتر ازحداز پیش تعیین شده خودش باشد ،پارامتر را می توان به عنوان مقدار قابل قبول انتخاب کرد. منبع غذایی که شهد آن توسط زنبورها رها شده با یک منبع ماده غذایی جدید توسط زنبورهای طلایه دار جایگزین میشود.

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

(۱) فرآیند انتخاب جهانی توسط زنبورهای تماشاچی مصنوعی برای کشف مناطق امیدبخش که در(۲٫۱) شرح داده شده است ،
(۲) یک فرآیند انتخاب محلی در منطقه توسط زنبورهای کارگرمصنوعی انجام شده و تماشاچیان با توجه به اطلاعات محلی (در مورد زنبور عسل واقعی ،این اطلاعات شامل رنگ ، شکل و عطر گل) (زنبورها قادربه شناسایی نوع منبع شهد نمیشوند تا زمانی که به محل مناسب می رسند و بین منابع در حال رشد بر اساس عطر و بوی آنها تبعیض وجود دارد) برای تعیینیک همسایه منبع غذا در اطراف منبع موجود در حافظه که در (۲٫۲) تعریف شده است ،
(۳) روند انتخاب محلی به نام فرآیند انتخاب حریص توسط تمام زنبورها انجام میشود در آن اگر مقدار شهد منبع کاندید بهتر از فعلی باشد ، زنبورفعلی را فراموش میکند و منبع کاندید را حفظ میکند. در غیر این صورت ، زنبور فعلی را در حافظه نگه می دارد.
(۴) یک فرایند انتخاب تصادفی توسط زنبور طلایه دار انجام میشود.
ازتوضیحات فوق روشن است که سه پارامتر کنترل وجود دارد که در ABC اصلی استفاده می شود :
– تعداد منابع غذایی که با تعداد زنبورهای کارگر یا زنبورهای تماشاچی برابر است (SN) ،
– مقدار حد (the value of limit)،
-حداکثر تعداد چرخه (MCN).

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

توابع عددی

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

تابع دوم تابع Rastrigin که مقدار ۰ است در مینیمم جهانی خود است . محدوده دهی اولیه برای تابع (۲و۲-) . این تابع مبتنی بر تابع Sphere به علاوه مدولاسیون کسینوس ،مینیمم محلی بسیاری را تولید میکند . بنابراین ،تابع مرکب است . نقاط مینیمم به طور منظم توزیع شده است. قسمت دشوار در پیدا کردن راه حل های بهینه در این تابع این است که یک الگوریتم بهینه سازی به راحتی می تواند به سمت بهینه جهانی شدن در بهینه محلی به دام بیفتد.

تابع سوم، تابع Rosenbrock که مقدار در مینیمم جهانی خود ۰ است. محدوده دهی اولیه برای تابع (۲و۲-)است. بهینه جهانی در داخل دره ژرف ، باریک ، به شکل سهمی وار مسطح می باشد. از آنجا که همگراشدن بهینه جهانی مشکل است ، متغیرها به شدت وابسته هستند وسطح شیب دار به طور کلی به سمت نقطه مطلوب نیست ، این مسئله ای است که بارها و بارها برای آزمایش کردن عملکرد الگوریتم های بهینه سازی مورد استفاده قرار گیرد.

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

تابع پنجم تابع Schwefel است که در بهینه جهانی خود مقدار ۰ است (۳٫۵). محدوده دهی اولیه برای تابع (۲و۲-) است. سطح تابع Schwefel از تعداد زیادی قله و دره متشکل است. تابع بهترین مینیمم ثانویه به دور از مینیمم جهانی دارد که در آن بسیاری از الگوریتم های جستجو دام افتاده است. علاوه بر این ، مینیمم جهانی نزدیک مرزهای دامنه است.

پیکر بندی برای الگوریتم ABC

پارامترهای کنترل الگوریتم ABC شامل :حداکثر تعداد چرخه (MCN) که با حداکثر تعداد نسل برابر است و سایز کلونی با اندازه جمعیت برابر است . درصد اززنبورهای ناظر ۵۰ ٪ از زنبورهای کارگرهستند وتعدادی از زنبور های طلایه دار به عنوان یک انتخاب بود. افزایش تعداد طلایه داران اکتشاف را ترغیب میکند همچنانکه که افزایش تماشاچیان بر روی منبع غذایی ،اکتشاف را افزایش می دهد . به طور متوسط مقادیر توابع از بهترین راه حلها پیدا شده توسط الگوریتم برای ابعاد مختلف ثبت شده است.

نتیجه گیری

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

منبع: http://faraebtekari.ir


بهینه سازی کلونی زنبورها

حرکتی مساعی گونه برای حل مسائل حمل و نقل و جابجایی پیشرفته

چکیده

سیستمهای طبیعی مختلفی به ما یاد میدهند که ارگانیسمهای خارجی بسیار ساده ایی توان تولید سیستمهایی با قابلیت انجام کارهایی بسیار پیچیده به کمک برهم کنشهای پویا با هم را دارند.
متاهیوریستیک (ابرکشف) کلونی زنبورها (BCO) در این مقاله آورده شده است.کلونی مصنوعی زنبورها در پاره ایی نزدیک به هم و در مقایسه با کلونی زنبورهای طبیعی , متفاوت عمل میکنند.
BCO به همان میزان که قابلیت حل مسائل ترکیبی قطعی را دارد , قادر به حل مسائل ترکیبی ایی است که دارای عدم قطعیت نیز میباشند.
توسعه ی الگوریتم کشف کننده ی جدید برای حل مسئله ی Ride-Matching به کمک راه پیشنهاد شده (استفاده از کلونی زنبورها) راهی روشنگر برای نشان دادن قابلیتهای این روش محسوب میشود.

معرفی

شمار زیادی از مدلهای مهندسی و الگوریتمهایی که برای حل مسائل پیچیده به کار میرود بر اساس کنترل و مرکزگرایی بنا شده اند.برخی از سیستمهای طبیعی (کلونی های حشرات اجتماعی) به ما یاد میدهند که یک سری ارگانیسمهای ساده ی خارجی قابلیت تولید سیستمهایی را دارند که به کمک بر هم کنشهای پویا قابلیت انجام اعمال بسیار پیچیده را دارند.
گروه زنبورها به خاطر استقلال داخلی کلونی و عملکردهای توزیع شده و سیستم درون سازمانی یکی از بهترین کلونی ها برای توضیح این مسئله شناحته شده است.
در سالهای اخیر محققان برای تولید سیستمهای جدید مصنوعی (در حیطه ی هوش مصنوعی) شروع به تحقیق درباره ی طرز رفتار حشرات اجتماعی کرده اند.
(BCO ( Bee Colony Optimization که مسیر جدیدی را در هوش جمعی بررسی میکند در این مقاله بررسی شده است.هدف اصلی این مقاله بررسی این امکان است که به کمک سیستم مصنوعی زنبورها بتوان قدمی را در پیدا کردن راه حلهایی جامع برای حل مسائلی که با عدم قطعیت مواجه هستند برداشت.
ادامه ی مقاله در قسمتهای دوم و سوم آمده است.قسمت دوم به توضیح BCO میپردازد در حالیکه قسمت سوم به مطالعه ی موضوعی مربوط به مسئله Ride-Matching میپردازد.

The Bee Colony Optimization : The New Computational Paradigm

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

۱٫ Bees In Nature

سیستم سازمانی زنبورها بر اساس یک سری قوائد ساده ی خارجی حشرات بنا شده است.با اینکه نژادهای بسیاری از حشرات مختلف بر روی کره ی زمین موجود هستند و همین باعث تفاوتهایی در الگوی رفتاری آنها میشود , ولی با اینحال این سری حشرات اجتماعی را میتوان دارای قابلیت حل مسائل پیچیده دانست.بهترین مثال برای این حالت روند تولید نکتار (شهد) محسوب میشود که در نوع خود یک فرایند ساماندهی شده ی پیشرفته محسوب میشود.هر زنبور ترجیح میدهد که راه قبلی زنبور هم کندوی خود را دنبال کند تا اینکه خود به دنبال گل جدید بگردد.
هر کندوی زنبور عسل دارای مکانی معروف به سالن رقص است که در آنجا زنبورها با انجام حرکتی خاص , هم کندوییهای خود را راضی میکنند تا راه آنها را برای رسیدن به گلها برگزینند.اگر یک زنبور تصمیم بگیرد که به دنبال نکتار برود , با انتخاب زنبور هم کندوی رقاص خود , راه قبلی را دنبال میکند تا به گل برسد.با رسیدن زنبور به گلها و جمع آوری شهد قادر به انجام کارهای زیر است :
الف : منبع غذا را رها کند و دوباره به دنبال زنبور رقصانی بگردد تا بتواند منبعی جدید پیدا کند.
ب : خود به دنبال منابع غذایی جدید بگردد.
ج : در کندو اقدام به رقصیدن کرده و زنبورهای جدیدی را به دنبال خود بکشاند.
بر اساس احتمالات اندازه گیری شده , زنبور اقدام به انجام یکی از حالات بالا میکند .در مکان رقص , زنبورها اقدام به پیشنهاد مکانهای مربوط به جمع آوری نکتار به دیگران میکنند.مکانیزم انتخاب یک زنبور توسط زنبوری دیگر هنوز شناخته شده نیست ولی تا به امروز روشن شده است که این امر بیشتر مربوط به کیفیت نکتار پیدا شده توسط زنبور رقاص است.
لوسیچ و تدوروویچ اولین کسانی بودند که از رویه های پایه و ساده ی زنبوری برای حل کردن مسائل ترکیبی بهینه سازی استفاده کردند.آنها سیستم زنبوری (BS) را معرفی کردند و از آن برای حل مساله ی معروف Travelling Salesman استفاده کردند.در ادامه به استفاده های BCO در حل مسائل پیشرفته اشاره خواهیم کرد.
در کلونی مصنوعی طراحی شده توسط ما شباهتها و تفاوتهایی با کلونهای واقعی زنبورها در طبیعت وجود دارد.در ادامه به معرفی FBS (Fuzzy Bee System) میپردازیم که قادر به حل مسائل ترکیبی *طرح شده توسط انسانها* است.به کمک FBS , Agent ها در ارتباطات با همدیگر از قوانین تقریبی دلیلگرایی و منطق Fuzzy استفاده میکنند.

۲٫ The Bee Colony Optimization Metaheuristic

در BCO , مامورهایی که ما به آنها “زنبور مصنوعی” میگوییم با همدیگر اجتماع میکنند تا بتوانند قادر به حل مسائل مشکلتر باشند.تمامی زنبورهای مصنوعی در ابتدای فرایند جستجو , در کندوی اصلی قرار دارند.در فرایند جستجو نیز , زنبورهای مصنوعی به طور کاملا مستقیم با یکدیگر ارتباط برقرار میکنند.هر زنبور مصنعوی یک سری حرکات محلی خاص انجام داده و به کمک آنها قادر خواهد بود تا راه حلی را بری مشکل فعلی خود پیدا کند.
این زنبورها تک تک راه حلهای کمکی و زیرپایه ایی را ارائه میدهند تا در آخر با ادغام این راه حلها , راه حل اصلی برای حل مسئله ی ترکیبی به دست بیاید.
روند جستجو از تکرارهای پشت سر هم تشکیل شده است.اولین تکرار زمانی پایان میابد که اولین زنبور راه حل زیر پایه ی خود را برای حل مسئله ی اصلی ارائه دهد.
بهترین راه حل زیرپایه در خلال اولین تکرار انتخاب شده و پس از آن , تکرار دوم شروع خواهد شد.در تکرار دوم , زنبورهای مصنوعی شروع به پیدا کردن راه حلی جدید برای مسئله ی زیر پایه میکنند و…
در پایان هر تکرار حداقل یک و یا چند راه حل ارائه شده وحود دارد , که آنالیست مقدار همگی آنها را مشخصی میکند.
به هنگام حرکت در فضا , زنبورهای مصنوعی ما یکی از دو حرکت “حرکت به سمت جلو” و یا “حرکت به سمت عقب” را انجام میدهند.
به هنگام “حرکت به سمت جلو” زنبورها راه و روشهای جدیدی را برای حل مسئله پیدا میکنند.آنها اینکار را به کمک یک سری جستجوهای شخصی و اطلاعات بدست آمده ی گذشته انجام میدهند.
بعد از آن , زنبورها عمل “حرکت به سمت عقب” را انجام میدهند که همان برگشتن به کندوی اصلی است.در کندو همگی زنبورها در یک فرایند “تصمیم گیری” شرکت میکنند.ما در نظر میگیریم که هر زنبوری قابلیت درک و دریافت اطلاعات زنبورهای دیگر را بر اساس کیفیت دارد.به کمک این روش , زنبورها این قابلیت را دارند که با استفاده از اطلاعات دیگران , راههای بهتر حل مسئله را پیدا کنند.
براساس اطلاعات جدیدی که در مورد کیفیت راه حل به دست می آید , زنبور میتواند تصمیم بگیرد که :
الف) منبع راه حل خود را رها کرده و در سالن رقص به دنبال کسی بگردد که منبعی با کیفیت بیشتر در اختیار دارد.
ب) بدون اینکه کسی را جذب کند , دوباره به سراغ منبع راه حل خود برود.
ج)در سالن رقص با انجام حرکاتی خاص (رقصیدن) سعی در جمع کردن زنبورهای دیگر به دور خود داشته باشد.
بر اساس میزان کیفیتی که زنبور از منبع خود به دست می آورد , فاکتوری به نام “وفاداری” در وی بوجود می آید که در واقع همان وفاداری به راهی است که خود زنبور انتخاب کرده است.بار دومی که زنبورهای مصنوعی برای پیدا کدن راه حل مسئله به حرکت در می آیند , اینبار سعی در پیدا کردن راههای جدیدی برای حل مسوله دارند و بعد از اینکار دوباره عمل “حرکت به سمت عقب” را انجام داده و به کندو برمیگردند و دوباره در کندو در بحثی که در مورد پیدا کردن بهترین راه شکل گرفته , شرکت میکنند.
این روند زمانی پایان میابد که یک راه حل تقریبا کامل برای مسئله پیدا شود.
مثل برنامه نویسی پویا , BCO نیز میتواند مسائل ترکیبی بهینه سازی را در هر مرحله (تکرار) به میزانی حل کند.هر کدام از مراحل مشخص شده دارای یک مقدار بهینه سازی خاص است.بگذارین اشاره کنیم که :
{ST={st1 + st2 + … + stm
همانطور که میبینید هر Stage (مرحله) شامل یک سری مراحل از قبل انتخاب شده است.در ادامه میبینید که به کمک کمیت B ما تعدا زنبورهایی را که در این فرایند شرکت میکنند را مشخص میکنیم و به کمک I , تعداد کل مراحل (تکرار) هایی را که انجام میپذیرند را نشان میدهیم.مجموعه ی تمامی راه حلهای زیرپایه را نیز به کمک Sj نشان میدهیم که در آن j دارای مقادیر ۱ تا m میباشد.

در زیر کد پیش ساخت BCO را مشاهده میکنید :

الف) شروع : مشخص کردن تعداد زنبورها (B) و تعداد تکرارها (I). مشخص نمودن تعداد مراحل (ST).پیدا کردن هر گونه راه حل قابل حل x از مسئله.
این راه حل در واقع بهترین و اولین راه حل انتخاب توسط ما خواهد بود.

ب) Set i:=1 , Until i=I و تکرار کن مراحل بعدی را

ج) Set j:=m , Until j=m و تکرار کن مراحل بعدی را

حرکت به سمت جلو : رفت : به زنبورها این امکان را میدهد که از کندو بیرون آمده و قابلیت انتخاب B راه حل را از مجموعه ی راه حلهای زیرپایه Sj در STj داشته باشند.

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

Set j:=j+1

د)اگر بهترین راه حلی (Xi) که در I امین تکرار بدست آمد , بهتر از بهترین راه اخیر بدست آمده بود , آنگاه فاکتور بهترین راه حل را به روز میکنیم : X:=xi

ه) ۱+Set i:=i
بطور کل حرکتهای جلویی و عقبی در BCO میتوانند نقش فرعی را بگیرند به این معنی که تا زمانیکه یکی از فاکتورهای مهم کامل نشده است , این دو به کار خود ادامه دهند.این فاکتور مهم به عنوان مثال میتواند “بیشترین مقدار رفت و برگشت ها” و یا برخی دیگر از موارد مورد نظر توسط خود اپراتور باشد.
در BCO , زیر مدلهای مختلفی که به توصیق چگونگی حالات زنبورها میپردازد و یا منطق گرایی آنها را مشخص میکند به راحتی قابلیت توسعه و تست شدن را دارند.به این معنی که الگوریتمهای متفاوتی از BCO را میتوان طراحی کرد.
این مدلها میتوانند به توصیف چگونگی ترک کردن منبع اولیه توسط زنبورها , ادامه دادن رفت و برگشت بین کندو و منبع توسط زنبور و یا چگونگی رقصیدن زنبور برای جمع کردن دیگر زنبورها به دود خود را توضیح دهند.

۳٫ The Fuzzy Bee System

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

الف) راه حل زیرپایه ی بعدی که باید به راه حل اصلی اضافه شود چیست ؟
ب) آیا باید راه حل زیرپایه ی فعلی را رها کرد و به دنبال راه حل زیرپایه ی جدیدی رفت ؟
ج)آیا باید به گسترش راه حل زیرپایه ی فعلی ادامه داد ولی فعلا بدنبال دیگر زنبورها نرفت ؟

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

مفهوم ساده ی منطق فازی (Fuzzy) که توسط “زاده” معرفی شد قابلیت بهتری در توضیح مسائلی که با عدم قطعیت ادغام شده اند را دارد.با توجه به اطلاعات فوق , ما در انتخاب اینکه منطق زنبورها بر چه اساسی صورت میگیرد , از منطق فازی استفاده میکنیم.زنبورهای مصنوعی ما از منطق گرایی تقریبی و منطق فازی برای انجام اعمال خود استفاده میکنند.
به هنگام دادن راه حلهای زیرپایه ی جدید به زنبور مصنوعی , زنبور حالتهای زیر را برای برقراری ارتباط با راه حل زیرپایه ی فوق در نظر میگیرد : کم جاذبه , جذاب , خیلی جذاب
همچنین ما در نظر میگیریم که یک زنبور مصنوعی میتواند مقادیر خاصی را مانند “کوتاه” , “متوسط” و “بلند” و یا “ارزان” , “متوسط” و “گران” در نظر بگیرد.

منبع: http://faraebtekari.ir


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

الگوریتم کلونی زنبور عسل مانند سایر الگوریتم های هوش ازدحامی مرتبط بر رفتار تصادفی المان های آن است و برای حل مسائل بهینه سازی کاربرد دارد. بسیاری از الگوریتم های هوش ازدحامی با الهام گرفتن از طبیعت ایجاد شده اند مانند الگوریتم کلونی مورچگان، الگوریتم پرندگان، الگوریتم فاخته و الگوریتم کلونی زنبور عسل یا Artificial bee colony algorithm که به صورت مخفف BCO نامیده میشود (Bee Colony Optimization) .
برخی کاربردهای الگوریتم بهینه سازی زنبور عسل در علوم مهندسی به صورت زیر است:

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

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

یکی دیگر از روش های حل مسائل بهینه سازی الگوریتم های هوش ازدحامی است که الگوریتم زنبور عسل از جمله این الگوریتم ها است. الگوریتم زنبور (Bee Algorithm) یک الگوریتم گروهی مبتنی بر جستجو است که  در سال ۲۰۰۵ میلادی ابداع شده است.این الگوریتم شبیه‌ سازی رفتار جستجوی غذای گروه‌های زنبور عسل است. در نسخه ابتدایی این الگوریتم، الگوریتم نوعی از جستجوی محلی انجام می‌دهد که با جستجوی تصادفی کتره­­ا ترکیب شده و می‌تواند برای بهینه سازی ترکیبی یا بهینه‌ سازی تابعی استفاده شود.

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

منبع

تذکر : هم چنبن نوشته ای با عنوان مقاله های الگوریتم کلونی زنبور عسل (Artificial Bee Colony (ABC) Algorithm) و کاربردهای آن شامل مقالات داخلی و خارجی در همین سایت قرار داده شده است.