بایگانی برچسب برای: نرم افزار کنترل تردد

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

آسیمو، یک روبات انسان‌نما، ساختهٔ شرکت هوندا.

 آسیمو، یک روبات انسان‌نما، ساختهٔ شرکت هوندا.

 تاریخچه

در سال ۱۹۲۳ میلادی کارل چاپک نویسنده اهل کشور چک برای اولین بار از کلمه ربات در نمایش‌نامه خود به‌عنوان آدم مصنوعی استفاده کرد. کلمه روبات گرفته شده از واژه Robota در زبان چک و به‌معنی برده و کارگر است. (مستنداتی از این کلمه پیدا نشد) در سال۱۹۴۰ شرکت وستینگهاوس سگی به نام اسپارکو ساخت که برای نخستین بار در ساخت آن، هم از قطعات مکانیکی و هم از قطعات الکتریکی استفاده شده بود.
دردهه ۱۹۵۰ میلادی با پیشرفت فناوری رایانه، صنعت کنترل متحول شد. یکی از اولین روبات‌ها، روبات‌های Hidden Mafia ساختهٔ جورج دوول و جو انگلبرگر در دهه‌های ۱۹۵۰ و ۱۹۶۰ بودند. انگلبرگر اولین شرکت روباتیک را با نام «RoboBand» بنیان نهاد و خود وی نیز امروزه پدر علم روباتیک لقب گرفته‌است.
در ژانویه ۲۰۱۳ چین اعلام کرد که در خصوص تولید و توسعه فناوری ساخت روبات‌های صنعتی پیشرفت چشمگیری داشته‌است. مقام‌های این کشور نرخ پیشرفت این صنعت را ۱۰٪ در یک سال گزارش کرده‌اند.

از انواع ربات می‌توان به

  • روبات‌های پرنده
  • روبات‌های خزنده
  • روبات‌های ماهی
  • روبات‌های جنگجو
  • روبات‌های فوتبالیست
  • روبات انسان‌نما
  • روبات مین یاب
  • روبات مسیریاب
  • روبات خانه‌دار

اشاره کرد.

ساختار ربات

یک ربات معمولاً یک سیستم الکترومکانیکی می‌باشد که با حرکت یا ظاهرش مفهومی از خود یا از ارباب خود را انتقال می‌دهد. از جایی‌که واژهٔ «ربات» هم به ربات‌های فیزیکی و هم به ربات‌های مجازی اطلاق می‌شود، برای ربات‌های مجازی لفظ «بات» بکار برده می‌شود که معمولاً به صورت نمایندگان نرم‌افزاری می‌باشند.

نمونه

روبات های صنعتی

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

روبات راه رونده با چاپگر سه بعدی

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

روبات جنگجو یا آدمکش

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

نخستین گفتگوی مستقل روبات با انسان

روز آدینه، ۲۹ آذر ۱۳۹۲ (۲۰ دسامبر ۲۰۱۳)، سازندگان یک روبات فضانورد ژاپنی (به نام کایروبو) متن گفتگوی از پیش برنامه‌ریزی نشده این دستگاه با یک فضانورد ژاپنی (کوئیچی واکاتا) را منتشر کردند که نخستین مورد ثبت شده از گفتگوی ارادی، ابتکاری و مستقل یک ماشین ساخت انسان است. این روبات در ماه اوت با یک سفینه حامل تدارکات برای ایستگاه بین‌المللی فضایی به فضاپرتاب شد و روز ۱۰ اوت به این ایستگاه رسید. کایروبو و واکاتا در مورد هدیه کریسمس و بی‌وزنی گفتگو کردند.

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

پرسش و پاسخ
  • فرمانده ژاپنی از روبات می‌پرسد: “کایروبو، تو از بابا نوئل چه هدیه‌ای خواهی خواست” و روبات پاسخ می‌دهد “بیایید از بابا نوئل یک سفینه اسباب بازی بخواهیم.”
  • روبات در پاسخ به این پرسش که سفر در سفینه به سوی ایستگاه فضایی چه طور بود، می‌گوید: “مهیج بود!”
  • کایروبو در پاسخ به این پرسش که در مورد وضعیت بی‌وزنی چه فکر می‌کند هم گفت: “بهش عادت کرده‌ام، اصلاً مشکلی ندارم.”

گفتگوی کایروبو با فضانورد ژاپنی در درون ایستگاه فضایی بین‌المللی چند دقیقه به طول می‌انجامد و در طول آن، این روبات به ابراز «نظر کلی» در مورد موضوعات گوناگون می‌پردازد.

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

ایران توانسته روبات‌های انسان‌نمایی با نام‌های سورنا۱ و سورنا۲ و سورنا۳ بسازد. سورنا۳ از دو روبات قبلی پیشرفته‌تر است و ارتقایافتهٔ همان دو روبات قبلی است. از قابلیت‌ها و توانایی‌های این روبات می‌توان به بالا رفتن از پله، حفظ تعادل روی یک پا، بیشتر شدن سرعت نسبت به نمونه‌های قبلی، شناسایی چهره و… را نام برد. سورنا۱ در سال ۱۳۸۷ رونمایی شد.

Puma Robotic Arm - GPN-2000-001817.jpg Asimo look new design.jpg PlaceC5.jpg Roomba original.jpg 2005-11-14 ShadowLeg Finished medium.jpg
2005-11-14 ShadowLeg Finished medium.jpg Shadow Hand Bulb large.jpg Robosnakes.jpg Kismet robot 20051016.jpg SwarmRobot org.jpg

ربات و رباتیک چیست؟

ربات چیست

ربات چیست

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

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

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

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

ایده ساخت ربات از کجا می آید؟

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

ربات‌ها چه کارهایی انجام می‌دهند؟

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

ربات‌ها از چه ساخته می‌شوند؟

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

رباتیک

تأثیر رباتیک در جامعه

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

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

مشکلات رباتیک

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

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

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

رباتیک

 مزایای رباتیک

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

تاثیرات شغلی

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

آینده رباتیک

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

منبع


کلمه ربات توسط Karel Capek  نویسنده نمایشنامه R.U.R  (روبات‌های جهانی روسیه) در سال 1921 ابداع شد. ریشه این کلمه، کلمه چک اسلواکی(robotnic) به معنی کارگر می‌باشد.
در نمایشنامه وی نمونه ماشین، بعد از انسان بدون دارا بودن نقاط ضعف معمولی او، بیشترین قدرت را داشت و در پایان نمایش این ماشین برای مبارزه علیه سازندگان خود استفاده شد.
البته پیش از آن یونانیان مجسمه متحرکی ساخته بودند که نمونه اولیه چیزی بوده که ما امروزه ربات می‌نامیم.
امروزه معمولاً کلمه ربات به معنی هر ماشین ساخت بشر که بتواند کار یا عملی که به‌طور طبیعی توسط انسان انجام می‌شود را انجام دهد، استفاده می‌شود.

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

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

  می توان آن را مکرراً برنامه ریزی کرد.
*  چند کاره است.
*  کارآمد و مناسب برای محیط است.

  قانون رباتیک مطرح شده توسط آسیموف:

1- ربات ها نباید هیچگاه به انسانها صدمه بزنند.
2- رباتهاباید دستورات انسانها را بدون سرپیجی از قانون اوّل اجرا کنند.
3- رباتها باید بدون نقض قانون اوّل و دوم از خود محافظت کنند.

ربات‌ها دارای سه قسمت اصلی هستند:

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

 اجزاي يك ربات با ديدي ريزتر :

 *  وسایل مکانیکی و الکتریکی شامل :
 شاسی، موتورها، منبع تغذیه،
  حسگرها (برای شناسایی محیط):
  دوربین ها، سنسورهای sonar، سنسورهای ultrasound، …
  عملکردها (برای انجام اعمال لازم)
  بازوی ربات، چرخها، پاها، …
  قسمت تصمیم گیری (برنامه ای برای تعیین اعمال لازم):
  حرکت در یک جهت خاص، دوری از موانع، برداشتن اجسام، …
  قسمت کنترل (برای راه اندازی و بررسی حرکات روبات):
*  نیروها و گشتاورهای موتورها برای سرعت مورد نظر، جهت مورد نظر، کنترل مسیر، …

مزایای ربات ها:

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

 معایب ربات ها:

1-  رباتها در موقعیتهای اضطراری توانایی پاسخگویی مناسب ندارند که این مطلب می تواند بسیار خطرناک باشد.
2-  رباتها هزینه بر هستند.
3-  قابلیت های محدود دارند یعنی فقط کاری که برای آن ساخته شده اند را انجام می دهند.

برای مثال امروزه برای بررسی وضعیت داخلی رآکتورها از ربات استفاده می شود تا تشعشعات رادیواکتیو به انسانها صدمه نزند.

تأثیر رباتیک در جامعه:

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

 مشکلات رباتیک:

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

مزایای رباتیک:

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

 تاثیرات شغلی:

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

آینده رباتیک:

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

ربات چیست؟ قسمت 1
ربات چیست؟ قسمت 2
ربات چیست؟ قسمت 3
ربات چیست؟ قسمت 4
ربات چیست؟ قسمت 5
ربات چیست؟ قسمت 6
ربات چیست؟ قسمت 7
ربات چیست؟ قسمت 8

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

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

مقدمه

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

1. الگوریتم کلونی زنبورهای مصنوعی

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

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

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

1- مقدار دهی اولیه به موقعیت های منابع غذایی
2- هر زنبور کارگر یک منبع غذایی جدید در مکان منبع غذایی خود تولید می کند و منبع بهتر را استخراج می کند .
3- هر زنبور دیده ور یک منبع را وابسته به کیفیت راه حلش انتخاب می کند و یک منبع غذایی جدید رادر مکان منبع غذایی انتخاب شده تولید می کند و منبع بهتر را استخراج می کند.
4- تعیین منبعی که باید متروک شود و تخصیص زنبورهای کارگر آن به عنوان دیده ور برای جستجوی منابع غذایی جدید.
5- بخاطر سپردن بهترین منبع غذایی پیدا شده تا کنون.
6- تکرار مرحله های 2 – 5 تا زمانی که معیار توقف مقتضی شود.

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

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

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

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

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

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

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


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

2.1. زنبورها در طبیعت

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

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

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

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

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

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

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

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

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

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

1- مقدار دهی اولیه جمعیت با راه حلهای تصادفی
2- ارزیابی تابع شایستگی جمعیت
3- تا زمانی که (شرط توقف ملاقات نشده است)
// تشکیل جمعیت جدید.
4- انتخاب مکان هایی برای جستجوی همسایه ها
5- استخدام زنبورها برای مکانهای جدید (زنبورهای بیشتر برای بهترین مکان های e)
6- انتخاب مناسب ترین زنبور از هر قطعه زمین گل
7- تخصیص زنبورهای باقی مانده برای جستجوی تصادفی و ارزیابی شایستگی های آنها
8- پایان حلقه

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

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

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

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

منبع


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

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

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

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

کاربردها 

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

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

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

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

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

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

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

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

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

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

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

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

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

الگوریتم

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

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

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

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

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

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

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

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

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

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


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

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

به علاوه آنها يک مدل کمينه از از رفتار کاوشگرانه زنبورها ارائه داند. اين مدل شامل سه مولفه مهم میباشد: 1)منبع غذايي ۲(زنبورهای کارگر ۳(زنبورهای غيرکارگر. اين مدل دو نوع رفتار را دربرمیگيرد: سربازگيری برای يک منبع شهد و ترک منبع. 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 تلاش شده است تکامل طبیعی یک پدیده شبیه سازی شود. در تکامل طبیعی ، هر گونه جستجو برای سازگاری سودمند در یک محیط در حال تغییر است. به عنوان یک گونه تکامل یافته ، ویژگی های جدیدی در کروموزوم های فردی کد گذاری می شوند.

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

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

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

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

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

Computer Vision
Field of robotics in which programs attempt to identify objects represented in digitized images provided by video cameras, thus enabling robots to “see.” Much work has been done on stereo vision as an aid to object identification and location within a three-dimensional field of view. Recognition of objects in real time, as would be needed for active robots in complex environments, usually requires computing power beyond the capabilities of present-day technology. See also pattern recognition.

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

پردازش تصویر

image processing
به مجموعه عملیاتی که یک ماشین الکترونیکی(مثلا کامپیوتر) به منظور ویرایش تصاویر انجام میدهد پردازش تصویر گفته می شود.
مثال: به تمامی عملیاتی که در برنامه فوتوشاپ بر روی تصاویر انجام میشود پردازش تصویر گفته می شود.
بین سه عبارت “پردازش تصویر” و “بینایی کامپیوتر” و “بینایی ماشین” تفاوت وجود دارد. که متاسفانه در ایران خیلی ها فرق این ها را نمی دانند و به همه ی آن ها می گویند پردازش تصویر !
منبع

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

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

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

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

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

سیستم‌های Machine vision و computer vision قادر هستند به صورت ثابت تصاویر را تجزیه و تحلیل کنند، ولی image processing بر پایهٔ کامپیوتر به صورت کلی برای انجام کارهای تکراری طراحی می شوند و علی رغم پیشرفت‌های صورت گرفته در این زمینه، هیچ سیستم machine vision و computer vision قادر نیست با برخی از ویژگی‌های سیستم بینایی انسان در قالب درک تصویر، تلرانس به تغییرات نور، تضعیف قدرت تصویر و تغییرات اجزا و… تطبیق پیدا کند.
منبع

اجزای یک سیستم ماشین بینایی :

اگرچه “Machine vision” بیشتر به عنوان یک پروسهٔ به کار بستنٍ “Machine vision” در کاربردهای صنعتی شناخته شده است، برای لیست کردن اجزای سخت‌افزاری و نرم‌افزاری به کار برده شده نیز مفید می باشد. معمولاً یک Machine vision از اجزای زیر ساخته می شود :

1. یک و یا چند دوربین دیجیتال یا آنالوگ ( سیاه-سفید یا رنگی ) با اپتیک مناسب برای گرفتن عکس.
2. واسطه ای که عکس‌ها را برای پردازش آماده می سازد. برای دوربین‌های آنالوگ این واسطه شامل یک دیجیتال کننده عکس است. هنگامی که این واسطه یک سخت‌افزارٍ جدا باشد، به آن Frame grabber ( کارتی که برای دریافت سیگنال تصویری و فرستادن آن به کامپیوتر استفاده می شود)می گویند.
3. یک پردازشگر ( گاهی یک PC یا پردازنده تعبیه شده ( Embedded Processor ) مانند DSP
4. نرم‌افزار Machine vision : این نرم‌افزار امکاناتی برای توسعه یک برنامه نرم‌افزاری که برای کاربردی مشخص است را فراهم می کند.
5. سخت‌افزار ورودی / خروجی ( مثلا I/O دیجیتال ) یا حلقه‌های ارتباطی ( مثلا ارتباط شبکه ای یا RS-232 ) برای گزارش نتایج.
6. یک دوربین هوشمند : یک وسیله ساده که همه موارد فوق را داراست.
7. لنزهایی که بتواند به مقدار مطلوبی روی سنسور تصویر زوم کند.
8. منابع نوری مناسب و گاهی خیلی مخصوص ( مثلا چراغهای LED، فلورسنت، لامپهای هالوژن و . . . )
9. یک برنامهٔ مشخص که بتواند تصاویر را پردازش کرده و مشخصه‌های مربوط و مناسب را شناسایی کند.
10. یک سنسور همزمان ساز برای شناسایی اجزا ( گاهی یک سنسور نوری و یا یک سنسور مغناطیسی ) : این سنسور برای راه اندازی سیستمٍ استخراج و پردازش تصویر می باشد.

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

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

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

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

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

همچنین امروزه شاهد شیوع فراوان استفاده از تجهیزات دوربین‌های دیجیتال به جای یک دوربین و یک frame grabber جداگانه در Machine vision هستیم. استفاده از یک دوربین دیجیتال به منظور برقراری ارتباط مستقیم، باعث صرفه جویی در هزینه و نیز سادگی سیستم خواهد شد. دوربین‌های هوشمند که در داخل آنها embedded processor‌ها تعبیه شده اند، در حال تسخیر سهم بالایی از بازار Machine vision‌ها هستند.

استفاده از یک embedded processor ( و یا یک پردازنده بهینه ) نیاز ما به frame grabber و یک کامپیوتر خارجی را از بین می برد. به همین خاطر این پردازنده‌ها باعث کاهش هزینه، کاهش پیچیدگی سیستم و همچنین اختصاص توان پردازشی مشخص به هر دوربین می شود. دوربین‌های هوشمند معمولاً ارزان تر از سیستمهای شامل یک دوربین و یک برد و یک کامپیوتر خارجی هستند. همچنین توان بالای embedded processor و DSP‌ها منجر به بالا رفتن عملکرد و توانایی آنها نسبت به سیستمهای مرسوم ( که بر مبنای PC هستند ) شده است.
منبع

روش‌های پردازش :

شمارش پیکسل :

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

تعیین آستانه :

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

بخش بندی کردن (Segmentation) :

تبدیل تصویر ورودی به بخش‌های مختلف برای موقعیت یابی و شمارش پیکسل ها.

تشخیص و شناسایی لکه‌ها و دستکاری :

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

تشخیص و شناسایی توسط اجزاء موجود :

استخراج اجزاءی خاص از یک تصویر ورودی مثلا عکس.

تشخیص وشناسایی الگو به طور مقاوم در برابر تغییرات :

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

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

شناسایی و تعیین کدهای یک بعدی (1D) و دو بعدی (2D) اسکن شده توسط ماشین‌ها طراحی شده است.

تشخیص و شناسایی کاراکتر نوری :

خواندن خودکار یک متن (مثال : یک رشته اعداد پشت سر هم).

اندازه گیری :

اندازه گیری ابعاد یک جسم (بر حسب میلی متر یا اینچ).

تشخیص و شناسایی لبه ها :

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

تشخیص و شناسایی از طریق تطبیق الگو :

پیدا کردن، مطابقت دادن و شمارش اشکال خاص در یک تصویر.

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

کاربردهای ماشین بینایی :

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

1. تولید صنعتی در مقیاس بزرگ.
2. ساخت اجزایی که نیاز به زمان تولید مشخصی دارند.
3. سیستمهای ایمنی موجود در محیط‌های صنعتی.
4. بررسی مواد اولیه تولید ( مثلا کنترل کیفیت و بررسی وقوع خطا )
5. کنترل موجودی انبار و سیستمهای مدیریتی ( شمارش، بارکد خواندن و ذخیره اطلاعات در سیستمهای دیجیتال )
6. کنترل رباتهای تعقیب خطی که برای حمل بار در کارخانه‌های صنعتی استفاده می شوند.
7. کنترل کیفیت و بهبود محصولات غذایی.
8. ماشینی کردن اجزای کوچک صنعتی.
سیستم‌های ماشین بینایی به طور گسترده در صنعت تولید نیمه هادی ها کاربرد دارند. به راستی بدون وجود این سیستم‌ها تولید قطعات کامپیوتری کاهش می یابد. این دستگاهها برای بازبینی دقیق ویفرهای سیلیکونی و بردازش گرها به کار می روند. در صنعت خودروسازی، Machine vision برای هدایت روبات‌های صنعتی، سنجیدن مناسب بودن کالاهای مشخص شده برای اهدافی خاص و بازبینی سطح‌های رنگ شده ماشین جهت یافتن عیب. اگرچه تکنیک‌های مربوط به سیستمهای ماشین بینایی برای طیف‌های مرئی از اشیاء گسترش یافته اند ولی ممکن است مشابه با روش‌ها برای طیف‌های نامرئی نور مانند اشعه مادون قرمز یا اشعه به کار برده شوند.

زمینه‌های مربوط به ماشین بینایی :

ماشین بینایی به مهندسی سیستمهای تصویر در صنعت و تولید و همچنین به گستره وسیعی از علوم کامپیوتر شامل computer vision، کنترل تجهیزات، شبکه‌های کامپیوتری، مدارهای واسط و فراگیری ماشین مربوط می شود. لازم به ذکر است که دو مفهوم Machine vision و Computer vision نباید با یکدیگر اشتباه گرفته شوند. Computer vision مفهوم گسترده تری در حل مسائل تصویری دارد درحالیکه Machine vision یک روش مهندسی است که عموما در مسائل مهندسی کاربرد دارد.
منبع

كاربردهاي ماشين‌ بينايي در صنايع مختلف

ورق‌هاي فولاد، آلومينيوم، مس و …
ورق پليمري، كامپوزيت، كارتن پلاست و …
ورق‌هاي سلولوزي(كاغذ، مقوا، كارتن)
لوله و پروفيل فلزي
لوله پليمري و كابل
منسوجات (پارچه، موكت، فرش و بافته‌هاي صنعتي)
كاشي، سراميك و كفپوش‌هاي ديگر
مديريت و كنترل هوشمند ترافيك
صنايع هوافضا
بسته‌بندي و چاپ
صنايع خودرو
داروسازي و پزشكي
صنايع الكترونيك
صنايع غذايي

……………………..

صنايع فولاد، آلومينيوم، مس و …
• بازرسي و كنترل كيفيت سطح
• اندازه‌گيري عرض
• مانيتورينگ، آرشيو و بازبيني تصاوير محصول
• تهيه نقشه عيوب
• درجه‌بندي محصول

………………………………….

ورق پليمري، كامپوزيت، كارتن پلاست و …
• بازرسي و كنترل كيفيت سطح
• مانيتورينگ، آْرشيو و بازبيني تصاوير محصول
• تهيه نقشه عيوب
• درجه‌بندي محصول

……………………………….

ورق‌هاي سلولوزي(كاغذ، مقوا، كارتن)
• بازرسي و كنترل كيفيت سطح
• مانيتورينگ، آْرشيو و بازبيني تصاوير محصول
• تهيه نقشه عيوب
• درجه‌بندي محصول

……………………………….

لوله و پروفيل فلزي
• بازرسي و كنترل كيفيت سطح
• اندازه‌گيري ابعاد
• تهيه نقشه عيوب
• درجه‌بندي محصول

…………………………

لوله پليمري و كابل
• بازرسي و كنترل كيفيت سطح
• اندزه‌گيري قطر
• تهيه نقشه عيوب
• درجه‌بندي محصول

……………………………

منسوجات (پارچه، موكت، فرش و بافته‌هاي صنعتي)
• بازرسي الياف
• بازرسي نخ
• بازرسي بافت پارچه
• بازرسي چاپ
• تهيه نقشه عيوب

……………………………..

كاشي، سراميك و كفپوش‌هاي ديگر
• بازرسي سطح
• كنترل طرح چاپ
• کنترل سطح رنگ (Shade)
• درجه‌بندي
منبع

مديريت و كنترل هوشمند ترافيك
• آمار و اطلاعات ترافيكي
• كنترل هوشمند تقاطع
• كنترل ترافيك تونل‌ها و پل‌ها
• تشخيص سانحه
• ثبت تخلف سرعت

……………………………

صنايع هوافضا
• آشكارسازي اپتيكي
• هدايت و كنترل هوشمند
• رديابي اهداف متحرك
• نقشه‌برداري و پردازش تصاوير هوايي

…………………………..

بسته‌بندي و چاپ
• بازرسي چاپ
• بازرسي برچسب، باركد و تاريخ مصرف
• بازرسي بطري و ظرف محصول
• كنترل پربودن جعبه

………………………….

صنايع خودرو
• كنترل رباتهاي خط توليد
• كنترل ابعادي قطعات
• بازرسي سطح قطعات
• بازرسي رنگ خودرو
• بازرسي مونتاژ خودرو

………………………….

داروسازي و پزشكي
• كنترل بسته‌بندي انواع دارو
• بازرسي برچسب، باركد و تاريخ
• آشكارسازي و تشخيص تومورها
• پردازش تصاوير پزشكي(آنژيوگرافي، ماموگرافي و …)

…………………………….

صنايع الكترونيك
• بازرسي PCB
• بازرسي قطعات مونتاژشده
• بازرسي چاپ بورد
• بازرسي برچسب و باركد

……………………………..

صنايع غذايي
• بازرسي بطري و ظرف محصول
• درجه‌بندي ميوه‌ها، غلات، حبوبات و …
• بازرسي برچسب و باركد و تاريخ مصرف
• كنترل پربودن جعبه
منبع

سیستم های چندعاملی (Multi Agent Systems)

سیستم های چندعاملی (Multi Agent Systems) یا به اختصار MAS روش نوینی برای حل مسائل و پیاده‌سازی پروژه‌های نرم‌افزاری رایانه‌ای می باشد.

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

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

همچنین این نوع سیستم‌ها برای محیط‌هایی با مقیاس وسیع(Large Scale) و محیط‌های ناشناخته نیز گزینه مناسبی نسبت به سیستم‌های تک‌عاملی به شمار می‌آیند.

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

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

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

تعریف سیستم چندعاملی

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

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

در دسته‌بندی ساده‌ای از عامل‌ها می‌توان به دو نوع عامل اشاره کرد، یکی عامل‌های ساده و کم‌اهمیت‌تر (Trivial Agents) که مثال ساده آن، ترموستات‌ها هستند و دوم عامل‌های هوشمند (Intelligent Agents ) که در واقع همان برنامه کامپیوتری‌ است که در بعضی محیط‌ها قادر به انجام اعمال خودمختار و انعطاف‌پذیر است.
در اینجا منظور از انعطاف‌پذیر، انجام اعمال واکنش‌دار (دارای عکس‌العمل) و پیش‌بینی یک واکنش و انجام زودتر عمل مناسب است.

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

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

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

دو مسئله کلیدی در طراحی سیستم های چندعاملی

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

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

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

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

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

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

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

ارتباط بین عامل ها در سیستم های چند عاملی

دو مثال از کاربرد سیستم‌ های چندعاملی

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

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

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

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

1- عامل‌ها در محیطی قرار می‌گیرند که می‌توانند روی آن تاثیرگذار باشند و از آن تاثیر بپذیرند؛ در حالی که عملکرد سیستم‌های خبره مانند MYCIN کاملاً مستقل از محیط بوده و از دنیای اطراف آگاه نیست و اطلاعات به دست آمده از سیستم خبره مبتنی بر پایگاه دانش‌اش و سئوالاتی است که از کاربر می‌پرسد.

2- عامل به عنوان نماینده‌ای از طرف کاربر، عملی را انجام می‌دهد ولی سیستم خبره مانند MYCIN هیچ عملی در محیط یا روی بیمار انجام نمی‌دهد.

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

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

عامل‌های هوشمند و هوش مصنوعی (AI)

سئوالی که در مورد سیستم‌ های چندعاملی و هوش مصنوعی به ذهن می‌آید این است که آیا طراحی سیستم‌ های چندعاملی همان پروژه‌های مطرح در هوش مصنوعی است؟ آیا ساختن یک عامل تماماً همان موضوعات مورد بحث در هوش مصنوعی نیست؟

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

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

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


شبکه‌های عصبی مصنوعی

شبکه های عصبی مصنوعی یا شبکه های عصبی صناعی (Artificial Neural Network – ANN) یا به زبان ساده‌تر شبکه های عصبی سیستم‌ها و روش‌های محاسباتی نوین برای یادگیری ماشینی، نمایش دانش و در انتها اعمال دانش به دست آمده در جهت بیش‌بینی پاسخ‌های خروجی از سامانه‌های پیچیده هستند. ایدهٔ اصلی این گونه شبکه‌ها تا حدودی الهام‌گرفته از شیوهٔ کارکردسیستم عصبی زیستی برای پردازش داده‌ها و اطلاعات به منظور یادگیری و ایجاد دانش قرار دارد. عنصر کلیدی این ایده، ایجاد ساختارهایی جدید برای سامانهٔ پردازش اطلاعات است.

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

تعریف‌ها

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

کارکرد

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

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

اگر یک شبکه را هم‌ارز با یک گراف بدانیم، فرایند آموزش شبکه تعیین نمودن وزن هر یال و base اولیهٔ خواهد بود.

تاریخچه شبکه های عصبی مصنوعی

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

نه تنها نروفیزیولوژیست‌ها بلکه روان‌شناسان و مهندسان نیز در پیشرفت شبیه‌سازی شبکه های عصبی تأثیر داشتند. در سال ۱۹۵۸ شبکه پرسپترون توسط روزنبلات معرفی گردید. این شبکه نظیر واحدهای مدل شده قبلی بود. پرسپترون دارای سه لایه می‌باشد، به همراه یک لایه وسط که به عنوان لایه پیوند شناخته شده‌است. این سیستم می‌تواند یاد بگیرد که به ورودی داده شده خروجی تصادفی متناظر را اعمال کند. سیستم دیگر مدل خطی تطبیقی نورون می‌باشد که در سال ۱۹۶۰ توسط ویدرو و هاف (دانشگاه استنفورد) به وجود آمد که اولین شبکه های عصبی به کار گرفته شده در مسائل واقعی بودند. Adalaline یک دستگاه الکترونیکی بود که از اجزای ساده‌ای تشکیل شده بود، روشی که برای آموزش استفاده می‌شد با پرسپترون فرق داشت.

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

با وجود اینکه اشتیاق عمومی و سرمایه‌گذاری‌های موجود به حداقل خود رسیده بود، برخی محققان تحقیقات خود را برای ساخت ماشین‌هایی که توانایی حل مسائلی از قبیل تشخیص الگو را داشته باشند، ادامه دادند. از جمله گراسبگ که شبکه‌ای تحت عنوان Avalanch را برای تشخیص صحبت پیوسته و کنترل دست ربات مطرح کرد. همچنین او با همکاری کارپنتر شبکه‌های ART را بنانهادند که با مدل‌های طبیعی تفاوت داشت. اندرسون و کوهونن نیز از اشخاصی بودند که تکنیک‌هایی برای یادگیری ایجاد کردند. ورباس در سال ۱۹۷۴ شیوه آموزش پس انتشار خطا را ایجاد کرد که یک شبکه پرسپترون چندلایه البته با قوانین نیرومندتر آموزشی بود.

پیشرفت‌هایی که در سال ۱۹۷۰ تا ۱۹۸۰ بدست آمد برای جلب توجه به شبکه های عصبی بسیار مهم بود. برخی فاکتورها نیز در تشدید این مسئله دخالت داشتند، از جمله کتاب‌ها و کنفرانس‌های وسیعی که برای مردم در رشته‌های متنوع ارائه شد. امروز نیز تحولات زیادی در تکنولوژی ANN ایجاد شده‌است.

در ایران

از جمله کارهای انجام شده در ایران که بعد از سال ۲۰۰۰ به طور جدی انجام گرفته می‌توان به تحلیل‌های دقیق انجام شده روی مواد پلیمری، سیکل‌های ترمودینامیکی، مجراهای عبور سیال و… اشاره کرد.

دیگر نقاط دنیا

فیس‌بوک از یک شبکه عصبی مصنوعی ۹ لایه با بیش از ۱۲۰میلیون ارتباط وزنی، برای شناسایی و تشخیص چهره در طرح عمق‌صورت (به انگلیسی:DeepFace) استفاده میکند. ادعا میشود دقت شناسایی چهره در این سامانه ۹۷٪ است که در مقایسه با سامانه نسل‌بعدی‌شناسایی (به انگلیسی: Next Generation Identification) مورد استفاده اداره تحقیقات فدرال آمریکا که مدعی است تا ۸۵٪ دقت دارد جهش بلندی در جمع‌اوری و تحلیل اطلاعات شخصی محسوب میشود. قابل ذکر است فیس‌بوک بدلیل قوانین محافظت از اطلاعات شخصی در اتحادیه اروپا از این سامانه در این کشورها استفاده نمیکند.

 


معرفی شبکه عصبی مصنوعی

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

 

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

 

تحقیقات اخیر

در تاریخ Dec 17, 2009 ابرکامپیوتر شرکت IBM در آمریکا توانست در حدود billion 1 (میلیارد) نورون را با حدود 10 trillion سیناپس مصنوعی شبیه‌سازی کند که نشان دهنده این واقعیت هست که نورون‌های مصنوعی به سیستم‌های قدرتمندی برای اجرا نیاز دارند و برای شبیه‌سازی مغز انسان احتمالاً به کامپیوتر کوانتومی نیاز خواهد بود. همچنین با دانستن این موضوع که مورچه ۲۵۰٬۰۰۰ نورون و زنبور در حدود ۹۶۰٬۰۰۰ و گربه ۷۶۰٬۰۰۰٬۰۰۰ نورون و در حدود 1013 سیناپس دارد می‌شود نتیجه گرفت که با ابرکاپیوترهای کنونی تا حدودی بتوان این موجودات را شبیه‌سازی کرد. (لیست موجودات مختلف بر اساس تعداد نورون‌ها و سیناپس‌ها)

 

در تاریخ Dec 9, 2014 شرکت IBM از تراشه SyNAPSE خود رونمایی کرد. این چیپ که با سرمایه‌گذاری DARPA (سازمان پروژه‌های تحقیقاتی پیشرفتهٔ دفاعی ایالت متحده) به بهره‌برداری رسیده، به گونه‌ای طراحی شده که فعالیت‌های مغز انسان را شبیه‌سازی کند و به طور کلی از چارچوب منطق بولین و باینری خارج شود. این تراشه متشکل از ۱ میلیون نورون مجازی است که با استفاده از ۲۵۶ میلیون سیناپس مجازی به یکدیگر متصل شده‌اند. سیناپس بزرگ‌ترین تراشه‌ای است که شرکت IBM تاکنون تولید کرده است، چراکه در آن ۵٫۴ میلیارد ترانزیستور استفاده شده است.

 

همچنین مجموعهٔ ترانزیستورهای مورد استفاده متشکل از ۴٫۰۹۶ هستهٔ neuroSynaptic است که روی تراشه قرار گرفته‌اند. مصرف این تراشه تنها ۷۰ میلی‌وات mW است که در مقایسه با تراشه‌های کنونی بسیار کمتر است. List of CPU power dissipation figures از نظر مقیاس، تراشهٔ سیناپس برابر با مغز یک زنبور عسل است و تعداد نئورون‌ها و سیناپس‌های مورد استفاده با آن برابری می‌کند، با این وجود این تراشه بسیار ضعیف‌تر از مغز انسان‌ها است. مغز هر انسان از حدود ۸۶ میلیارد نورون و ۱۰۰ تریلیوین سیناپس تشکیل شده است. البته تیم توسعهٔ SyNAPSE نشان داده که می‌توان با اتصال تراشه‌های سیناپس به یکدیگر، تراشهٔ بزرگ‌تر و قوی‌تری ساخت.

 

در حال حاضر IBM موفق شده یک بورد قابل برنامه‌ریزی و کارآمد با استفاده از ۱۶ عدد چیپ SyNAPSE ایجاد نماید که همگی در هماهنگی کامل با یکدیگر فعالیت می‌کنند. این بورد نمایانگر قدرت ۱۶ میلیون نورون است که بنا بر گفتهٔ محققان این پروژه، در پردازش سنتی با استفاده از تعداد زیادی رک (مکان قرارگیری چندین کامپیوتر پر قدرت بزرگ) و مجموعه‌های عظیم کامپیوتری قابل دستیابی بود؛ و با وجود مجتمع نمودن ۱۶ چیپ در یک سیستم، باز هم با مصرف نیروی به شدت پایینی روبرو هستیم که در نتیجهٔ آن حرارت بسیار پایین‌تری نیز تولید می‌شود. در حقیقت چیپ SyNAPSE جدید آنچنان انقلابی بوده و دنیای پردازش را از نگرش دیگری نمایان می‌سازد که IBM مجبور شده برای همراهی با توسعهٔ آن به ایجاد یک زبان برنامه‌نویسی جدید بپردازد و یک برنامهٔ آموزشی گستردهٔ اطلاع‌رسانی تحت نام دانشگاه SyNAPSE راه‌اندازی کند.

 

در تاریخ March 16, 2016 شرکت Google بخش DeepMind توانست توسط هوش مصنوعی خود قهرمان جهان را در بازی GO (شطرنج چینی با قدمتی بیش از ۲۵۰۰ سال) با نتیجه ۴ به ۱ شکست دهند که این دستاورد بزرگی برای هوش مصنوعی بود. گوگل در این هوش مصنوعی از تکنولوژی Deep Learning و short-term memory بهره برده است و این سیستم به نوعی مشابهTuring Machine هست اما به صورت end-to-end دارای تفاوت‌های قابل تشخیص می‌باشد و این تکنولوژی‌ها به اون اجازه داده است که با gradient descent به صورت مؤثری قابل تعلیم باشد.

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

بزرگ‌ترین نتیجهٔ توسعهٔ آلفاگو، عدم توسعهٔ این سیستم با قوانین از پیش تعیین شده است. در عوض این سیستم از روش‌های مبتنی بر یادگیری ماشین و شبکه عصبی توسعه یافته و تکنیک‌های برد در بازی گو را به خوبی یادگرفته و حتی می‌تواند تکنیک‌های جدیدی را ایجاد و در بازی اعمال کند. کریس نیکولسون، مؤسس استارت آپ Skymind که در زمینهٔ تکنولوژی‌های یادگیری عمیق فعالیت می‌کند، در این خصوص این چنین اظهار نظر کرده است: ” از سیستم‌های مبتنی بر شبکهٔ عصبی نظیر آلفاگو می‌توان در هر مشکل و مسئله‌ای که تعیین استراتژی برای رسیدن به موفقیت اهمیت دارد، استفاده کرد. کاربردهای این فناوری می‌تواند از اقتصاد، علم یا جنگ گسترده باشد. “

اهمیت برد آلفاگو :در ابتدای سال ۲۰۱۴ میلادی، برنامهٔ هوش مصنوعی Coulom که Crazystone نام داشت موفق شد در برابر نوریموتو یودا، بازیکن قهار این رشتهٔ ورزشی پیروز شود؛ اما موضوعی که باید در این پیروزی اشاره کرد، انجام ۴ حرکت پی در پی ابتدایی در این رقابت توسط برنامهٔ هوش مصنوعی توسعه یافته بود که برتری بزرگی در بازی گو به شمار می‌رود. در آن زمان Coulom پیش‌بینی کرده بود که برای غلبه بر انسان، نیاز به یک بازهٔ زمانی یک دهه‌ای است تا ماشین‌ها بتوانند پیروز رقابت با انسان‌ها در بازی GO باشند.

چالش اصلی در رقابت با بهترین بازیکن‌های گو، در طبیعت این بازی نهفته است. حتی بهترین ابررایانه‌های توسعه یافته نیز برای آنالیز و پیش‌بینی نتیجهٔ حرکت‌های قابل انجام از نظر قدرت پردازشی دچار تزلرل شده و نمی‌توانند قدرت پردازشی مورد نیاز را تأمین کنند. در واقع نیروی پردازشی این رایانه‌ها مناسب نبوده و در نتیجه زمان درازی را برای ارائهٔ نتیجهٔ قابل قبول مورد نیاز است. زمانی که ابررایانهٔ موسوم به Deep Blue که توسط IBM توسعه یافته بود، موفق شد تا در سال ۱۹۹۷، گری کاسپاروف، قهرمان شطرنج جهان را شکست دهد، بسیاری به قدرت این ابررایانه پی بردند؛ چراکه این ابررایانه با قدرت زیادی کاسپاروف را شکست داد. علت پیروزی قاطع این Deep Blue، قدرت بالای این ابررایانه در کنار قدرت تحلیل و نتیجه‌گیری از هر حرکت احتمالی ممکن در بازی بود که تقریباً هیچ انسانی توانایی انجام آن را ندارد.

اما چنین پیش‌بینی‌هایی در بازی GO ممکن نیست. براساس اطلاعات ارائه شده در بازی شطرنج که در صفحه‌ای ۸ در ۸ انجام می‌شود، در هر دور، بصورت میانگین می‌توان ۳۵ حرکت را انجام داد، اما در بازی گو که بین دو نفر در تخته‌ای به بزرگی ۱۹ در ۱۹ خانه انجام می‌شود، در هر دور بصورت میانگین می‌توان بیش از ۲۵۰ حرکت انجام داد. هر یک از این ۲۵۰ حرکت احتمالی نیز در ادامه ۲۵۰ احتمال دیگر را در پی دارند؛ که می شه نتیجه گرفت که در بازی گو، به اندازه‌ای احتمال حرکات گسترده است که تعداد آن از اتم‌های موجود در جهان هستی نیز بیشتر است.

تلاش‌های پیشین: در سال ۲۰۱۴ محققان در DeepMind، دانشگاه ادینبورگ و facebook امیدوار بودند تا با استفاده از شبکه های عصبی، سیستم‌هایی مبتنی بر شبکه های عصبی توسعه دهند که قادر باشد تا با نگاه کردن به تختهٔ بازی، همچون انسان‌ها به بازی بپردازند. محققان در فیس‌بوک موفق شده‌اند تا با کنار هم قراردادن تکنیک درخت مونت کارلو و یادگیری عمیق، شماری از بازیکنان را در بازی گو شکست دهد. البته سیستم فیس‌بوک قادر به برد در برابر CrazyStone و سایر بازیکنان شناخته شدهٔ این رشتهٔ ورزشی نشد.

سخت‌افزار مورد نیاز سیستم یادگیری عمیق دیپ مایند: براساس اطلاعات ارائه شده، سیستم DeepMind قادر است روی رایانه‌ای با چند پردازندهٔ گرافیکی نیز به خوبی کار کند؛ اما در مسابقه‌ای که آلفاگو در برابر فان هوی برگزار کرد، این سیستم مبتنی بر شبکهٔ عصبی از وجود شبکه‌های از رایانه‌ها بهره می‌برد که شامل بیش از ۱۷۰ پردازندهٔ گرافیکی Nvidia و ۱٬۲۰۰ پردازنده بود.

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

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

 

شبکه های عصبی مصنوعی چیست؟ قسمت 1
شبکه های عصبی مصنوعی چیست؟ قسمت 2
شبکه های عصبی مصنوعی چیست؟ قسمت 3
شبکه های عصبی مصنوعی چیست؟ قسمت 4

استاندارد Onvif چیست؟

استاندارد Onvif یا (فروم واسط تصویری بر اساس شبکه باز) یک استاندارد باز است، که به دوربین مدار بسته و دیگر دستگاه های شبکه IP امکان می دهد تا از طریق یک استاندارد پلت فرم باز یکپارچه، کنترل و مدیریت شوند.

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

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

معایب Onvif

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

  • کیفیت و بهره وری اجرای پروتکل Onvif
  • رعایت کردن قوانینی در طراحی نرم افزار برای ارتباط دهی هرچه بهتر میان دستگاه ها با پروتکل Onvif

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

ارتقا سازی انتقالی

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