بایگانی برچسب برای: اموزش پردازش تصویر

فرآیند فعال شدن سیستم ایمنی بدن انسان

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

 

الگوریتم انتخاب با تکثیر

الگوریتم انتخاب با تکثیر

 

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

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

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

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

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

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

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

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

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

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

سیستم ایمنی بدن و بالطبع سیستم ایمنی مصنوعی دارای ویژگی های ذیل است:

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

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

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

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

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

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

7. چند لایه ای بودن : هیج موجودیتی در سیستم ایمنی و بدن انسان ، یک مکانیزم کامل امنیتی و دفاعی را فراهم نمی کند. بلکه هر لایه سیستم ایمنی به صورت مستقل عمل کرده و و با بقیه لایه ها در ارتباط است.

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

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

10. پاسخ انتخابی : در سیستم ایمنی ، پس از شناسایی یک آنتی ژن ، پاسخ های متفاوتی داه می شود و همواره به یک شکل عمل نمی شود.

برای حل یک مسئله با استفاده از سیستم ایمنی مصنوعی باید سه مرحله ذیل انجام پذیرد.
(۱) نحوه نمایش داده های مسئله یا تعریف فضای شکل.
(۲) معیار اندازه گیری میل ترکیبی.
(۳) انتخاب یک الگوریتم ایمنی مصنوعی برای حل مسئله.

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

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

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

تاریخچه سیستم های ایمنی مصنوعی

پایه های مدل سازی ریاضی بخش هایی از دستگاه ایمنی بدن در سال ۱۹۷۴ میلادی توسط نیلز جِرن انجام پذیرفته است.اولین ایده استفاده از فرآیندهای دستگاه ایمنی بدن در کاربردهای محاسباتی در سال ۱۹۸۶ میلادی توسط جان فارمر، نورمن پاکارد و آلن پِرِلسون مطرح گردید. آنها رفتار پویای سیستم ایمنی را با معادلات دیفرانسیل مدل کرده و نشان دادند که می توان از این مدل برای یادگیری مسائل استفاده نمود.

تا اوایل دهه ۹۰ میلادی بیشتر کاربردهای دستگاه ایمنی بدن در سیستم های محاسباتی ، شامل یکسری شبیه سازی هایی مانند شبیه سازی بیماری ایدز و مدلسازی ارتباطات سلولی بود و در ادامه با کارهای استفانی فارِست، هوگوس بِرسینی، جاناتان تیمیس، مارک نیل، دیپانکار داسگوپتا، لیندرو دی کاسترو بطور گسترده تری پیگیری شد.

در سال ۱۹۹۰ میلادی هوگوس بِرسینی و فراسیسکو وارِلا ایده شبکه های ایمنی که پیشتر توسط نیلز جِرن و آلن پرلسون در زمینه دستگاه ایمنی مطرح شده بود را برای سیستم های محاسباتی مطرح کردند.

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

در سال ۲۰۰۳ میلادی یووی آیلکین به همراه تیمی از اساتید و دانشجویان رشته های علوم کامپیوتر و ایمنی شناسی دانشگاه ناتینگهام انگلستان نظریه خطر را ارائه نموند که تاکنون این تیم گزارشات و مقالات متعددی در زمینه کاربرد نظریه خطر در سیستم های محاسباتی منتشر نموده اند.
سیستم ایمنی مصنوعی (AIS) قسمت 1
سیستم ایمنی مصنوعی (AIS) قسمت 2
سیستم ایمنی مصنوعی (AIS) قسمت 3
سیستم ایمنی مصنوعی (AIS) قسمت 4
سیستم ایمنی مصنوعی (AIS) قسمت 5
سیستم ایمنی مصنوعی (AIS) قسمت 6

تشخیص لبه در تصاویر

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

ویژگی‌های لبه

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

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

آشکارسازی لبه

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

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

 5  7  6  4  152  148  149

محاسبه مشتق اول

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

اگر I(x) نماینده شدت روشنایی پیکسل x، و I′(x) نماینده مشتق اول(گرادیان شدت روشنایی) در پیکسل x باشد، بنابراین داریم:

{\displaystyle I'(x)=-1\cdot I(x-1)+0\cdot I(x)+1\cdot I(x+1).\,}

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

−1 0 1

محاسبهٔ مشتق دوم

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

اگر I(x) نمایشگر شدت نور در نقطه x و I′′(x) مشتق دوم در نقطه x باشد:

{\displaystyle I''(x)=1\cdot I(x-1)-2\cdot I(x)+1\cdot I(x+1).\,}

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

+1 −2 +1

آستانه‌گیری

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

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

عملگرهای آشکارسازی لبه

  • مرتبه نخست: رابرتز، پرویت، سوبل، کنی، اسپیسک
  • مرتبه دوم: لاپلاسی، مار-هیلدرث

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

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

(استجر، ۱۹۹۸)An Unbiased Detector of Curvilinear Structure

مقدمه :

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

تاریخچه الگوریتم کلونی مورچه ها :

به‌کارگیری سیستم مورچگان اولین بار (الگوریتم مورچگان) توسط Dorgio و همکاران . به عنوان یک نگرش با چندین عامل برای حل مسائل بهینه‌سازی ترکیبی یا راه‌حل چندعامله (multi Agent) مشکل، مانند مسئله فروشنده دوره گرد یا (TSP) (Traveling Sales Person)  و مسئله تخصیص منابع یا QAP پیشنهاد و ارائه شد.

الگوریتم بهینه سازی کلونی مورچه ها یا Ant Colony

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

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

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

1. اجتماعی بودن:

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

1. باعث می‌شود مسیر جذابیت کمتری برای مورچه‌های بعدی داشته باشد. از آنجا که یک مورچه در زمان دراز راه‌های کوتاه‌تر را بیش تر می‌پیماید و تقویت می‌کند هر راهی بین خانه و غذا که کوتاه‌تر(بهتر) باشد بیشتر تقویت می‌شود و آنکه دورتر است کمتر.

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

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

2.هوشمندی توده‌ای: هوش جمعی (swarmIntelligence)

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

مورچه ها چگونه کوتاهترین مسیر را انتخاب می‌کنند؟

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

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

  • ترشح اسید فرمیک در مسیر حرکت
  • دنبال کردن مسیرهای با اسید فرمیک بیشتر
  • تبخیر

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

  •   Stigmergy  :  ایده اصلی در تعاملات ارتباط با واسطه محیط  لانه سازی موریانه ها  ترشح اسید فرمیک توسط مورچه هامزایایی که هوش جمعی از آن بهره می برند
  • مقیاس پذیری(scalability): تعاملات توزیع شده موجودات
  • خطا پذیری(Fault tolerance)
  • عدم وجود کنترل متمرکز
  • قابلیت تطبیق پذیری عاملها
  • سرعت انتقال تغییر
  • تفکیک پذیری (modularity)
  • خودکار بودن سیستم : نیاز به نظارت انسان نیست
  • کارکرد موازی

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

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

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

الگوریتم مورچگان:

1. چندمنظوره میباشد: می‌تواند برای انواع مشابه یک مسأله به کار رود.

2قوی می باشد:یعنی با کمترین تغییرات برای دیگر مسائل بهینه‌سازی ترکیبی به کار برده می‌شود

3.یک روش مبتنی بر جمعیت می‌باشد.

 مزیت های ACO :

1. ایجاد انعطاف در حل هرگونه مسئله بهینه‌سازی

2. پسخورد مثبت (پسخورد مثبت، منجر به کشف سریع جوابهاب خوب می‌شود)

3. محاسبات توزیع شده (محاسبات توزیع شده از همگرایی زودرس وبی‌موقع جلوگیری می‌کند)

4. هیوریستیک آزمند سازنده (به کشف جوابهای قابل قبول در مراحل اولیه جستجو کمک می‌کند).

کاربردهای الگوریتم کلونی مورچه ها:

از کاربردهای الگوریتم (ACO) می‌توان به بهینه کردن هر مسئله‌ای که نیاز به یافتن کوتاهترین مسیر دارد استفاده می شود:

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

 

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

پروسه پیدا کردن کوتاه‌ترین مسیر توسط مورچه ها، ویژگی‌های بسیار جالبی دارد، اول از همه قابلیت تعمیم زیاد و خود- سازمانده بودن آن است. در ضمن هیچ مکانیزم کنترل مرکزی ای وجود ندارد. ویژگی دوم قدرت زیاد آن است. سیستم شامل تعداد زیادی از عواملی است که به تنهایی بی اهمیت هستند بنابراین حتی تلفات یک عامل مهم، تاثیر زیادی روی کارآیی سیستم ندارد. سومین ویژگی این است که، پروسه یک فرآیند تطبیقی است. از آنجا که رفتار هیچ کدام از مورچه ها معین نیست و تعدادی از مورچه ها همچنان مسیر طولانی تر را انتخاب میکنند، سیستم می تواند خود را با تغییرات محیط منطبق کند و ویژگی آخر اینکه این پروسه قابل توسعه است و می تواند به اندازهٔ دلخواه بزرگ شود.
همین ویژگی‌ها الهام بخش طراحی الگوریتم هایی شده اند که در مسائلی که نیازمند این ویژگی‌ها هستند کاربرد دارند. اولین الگوریتمی که بر این اساس معرفی شد،الگوریتم ABC بود. چند نمونه دیگر از این الگوریتم‌ها عبارتند از: Ant Net،ARA،PERA، Ant Hot Net

نرم‌افزارهای کاربردی در الگوریتم کلونی مورچه ها:

 در برنامه‌های کامپیوتری الگوریتم از زبان برنامه‌نویسی  (Borland C ++5.02,C) نیز استفاده می‌شود مدلهای ریاضی که دراین الگوریتم استفاده می‌شود جوابهای آن بااستفاده از نرم‌افزار LINGO بدست می‌آید.

جمع‌بندی و نتیجه‌گیری:

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

منبع


منابع

http://fa.wikipedia.org

http://www.asriran.com

http://www.radoo.ir/

http://rayanehmag.net

http://farhanian.blogsky.com

الگوریتم کلونی مورچه ها قسمت 1
الگوریتم کلونی مورچه ها قسمت 2
الگوریتم کلونی مورچه ها قسمت 3

۱– Behavioral- خصوصیات رفتاری

چندین تکنیک رفتاری برای تایید هویت وجود دارد که به اختصار به آن ها اشاره می کنیم.

۱-۱ تایید امضاخصوصیات رفتاری

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

۲-۱ الگو و دینامیک تایپ کلید

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

۱-۳ تشخیص صدا

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

۲– Physiometric – خصوصیات فیزیکی

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

۱-۲ اثر انگشت

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

۲-۲ هندسه دست

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

۳-۲ اسکن شبکیه

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

۴-۲ اسکن عنبیه

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

زیست سنجی و کارت ها

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

تشخیص هویت زیست سنجی و بیومتریک قسمت 1
تشخیص هویت زیست سنجی و بیومتریک قسمت 2
تشخیص هویت زیست سنجی و بیومتریک قسمت 3
تشخیص هویت زیست سنجی و بیومتریک قسمت 4
تشخیص هویت زیست سنجی و بیومتریک قسمت 5

سیستم‌های کنترل از راه دور

وسایلی که با کنترل از راه دور کار می‌کردند در اواخر قرن  نوزدهم و به شکل چند اژدر کنترل از راه دور ظاهر شدند. در اوایل دهه 1870 میلادی، اژدر های کنترل از راه دور توسط جان اریکسن( به‌صورت پنوماتیک)، جان لوییس لِی (هدایت به‌صورت الکتریکی و با کمک سیم) و ویکتور وُن شلیها( هدایت به‌صورت الکترونیکی و با کمک سیم)  ساخته شدند.

اژدر بِرِنان که توسط  Louis Brennan در سال 1877 اختراع شد، نیرو محرکه خود را از دو پروانه که در جهت عکس یکدیگر می چرخیدند به دست می آورد. این دو پروانه با بیرون آوردن سریع سیم های فولادی از طبلک هایی که در داخل اژدر قرار گرفته بودند، به چرخش در می آمدند. اختلاف سرعت در در آزاد کردن سیم ها، به ایستگاه ساحلی اجازه می داد تا اژدر را به سمت هدفش هدایت کند. این اژدر اولین موشک قابل هدایت کاربردی در دنیا بود. در سال 1897، مخترع بریتانیایی  Ernest Wilson، گواهی ثبت اختراع، برای ساخت یک اژدر که توسط امواج هرتیزان(رادیویی) کنترل می‌شد را  به نام خود ثبت کرد و در سال 1898،  Nikola Tesla یک اژدر کنترل از راه دور بی‌سیم را به‌صورت عمومی در معرض نمایش گذاشت زیرا قصد داشت آن را به نیروی دریایی ایالات‌متحده بفروشد.

Archibald Low، به دلیل تحقیقات نوآورانه اش بر روی موشک ها و هواپیما های هدایت پذیر در جریان جنگ جهانی اول به‌عنوان “پدر سیستم‌های هدایت رادیویی” شناخته می شود. در سال 1917، او یک هواپیمای کنترل از راه دور را برای یگان پروازی سلطنتی بریتانیا به نمایش گذاشت و در همان سال، اولین موشک هدایت شونده با سیم را ساخت.

ریشه واژه “ربات”

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

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

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

ربات‌های اولیه

در سال 1928، یکی از اولین ربات‌های انسان‌نما به نام اریک، در نمایشگاه سالانه انجمن  MES به نمایش گذاشته شد. او در این گردهمایی سخنرانی کرد. این ربات که توسط W. H. Richards ساخته‌شده بود دارای بدنه آلومینیومی، 11 آهنربای الکتریکی و یک موتور حرکتی بود که توان آن توسط منبع تغذیه 12 ولتی تامین می‌شد. این ربات می‌توانست دست ها و سرش را تکان دهد و از طریق کنترل از راه دور و یا کنترل صوتی هدایت می‌شد. اریک و ربات بردارش یعنی جرج، برای نمایش قابلیت‌هایشان، به دور دنیا سفر کردند.

ربات اریک – سال 1928 میلادی

ربات اریک – سال 1928 میلادی

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

در سال 1939، ربات انسان‌نمای Elektro، در نمایشگاه جهانی نیویورک رونمایی شد. این ربات قدی معادل 2 متر و 10 سانتی‌متر و وزنی معادل 120 کیلوگرم داشت و می‌توانست از طریق فرم آن‌های صوتی حرکت کند، حدود 700 کلمه صحبت کند(با استفاده از یک گرامافون با سرعت 78 دوران در دقیقه)، سیگار بکشد، بادکنک ها را بترکاند و سر و دستانش را تکان دهد. بدنه این ربات از چرخنده های فولادی و چارچوبی برای نصب موتور دستگاه ساخته‌شده بود و روی آن پوشش آلومینیومی کشیده شده بود. در سال 1928، اولین ربات ساخت کشور ژاپن به نام Gakutensoku توسط ماکوتو نیشیمورا (زیست شناس) طراحی و ساخته شد.

ربات‌های جدید خودگردان یا خودمختار (autonomous robots)

اولین ربات‌های الکترونیکی خودگردان با رفتار پیچیده توسط William Grey Walter در موسسه عصبی Burden در شهر بریستول انگلستان و در سال های 1948 و 1949 ساخته شدند. او می خواست ثابت کند ارتباطات زیاد بین تعداد محدودی از سلول های مغز می‌تواند باعث نمود رفتار های بسیار پیچیده ای شود. در واقع او معتقد بود راز نحوه کار کردن مغز در در نحوه اتصال اجزای آن نهفته است. اولین ربات‌های ساخت او، به نام Elmer و Elsie بین سال های 1948 و 1949 ساخته شدند و اغلب به دلیل شکل و سرعت پایین حرکتشان به آن‌ها لاک پشت گفته می‌شد. این ربات‌های لاک پشتی سه چرخه، از قابلیت فتوتاکسیس( ردیابی مسیر نور تابانده شده) بهره می بردند و با کمک این قابلیت می‌توانستند در صورت کم شدن باتری، مسیر خود را به ایستگاه شارژ مجدد پیدا کنند.

Walter بر استفاده از الکترونیک آنالوگ برای شبیه‌سازی فرآیند های مغزی تاکید داشت در حالی که افراد هم عصر او مانند Alan Turing و John von Neumann به فرآیند های ذهنی به‌صورت دیجیتال نگاه می‌کردند. کار های او الهام بخش بسیاری از محققین رباتیک نسل های آینده مانند Rodney Brooks ، Hans Moravec  و Mark Tilden بود. تجسم های جدیدی از ربات‌های Walter را می‌توان در شاخه‌ای از رباتیک به نام رباتیک BEAM( زیست‌شناسی، الکترونیک، زیبایی شناسی و مکانیک) مشاهده کرد.

اولین رباتی که به‌صورت دیجیتالی عمل می کرد و قابل برنامه ریزی بود توسط George Devol در سال 1954 ساخته شد و در نهایت Unimate نام گرفت. این ربات، زمینه را برای صنعت رباتیک مدرن فراهم کرد. Devol اولین Unimate را در سال 1960 به شرکت جنرال موتورز فروخت. این ربات در سال 1961 در یکی از کارخانه های این شرکت در نیوجرزی آمریکا نصب شد تا قطعات داغ فلز را از یک دستگاه ریخته‌گری بلندکرده و آن‌ها را در جایی انبار کند. گواهی ثبت اختراع Devol برای اولین بازوی رباتیک قابل برنامه ریزی و تمام دیجیتال، به‌عنوان پایه و اساس صنعت رباتیک مدرن شناخته می شود.

اولین ربات palletizer(ربات برداشت مواد و قرار دادن آن‌ها در جایی دیگر)  در سال 1963 و توسط شرکت Fuji Yusoki Kogyo ساخته شد. در سال 1973، رباتی با شش محور الکترومکانیکی توسط شرکت رباتیک  KUKA در آلمان ثبت شد. باز رباتیک مفصلی(PUMA) توسط  Victor Scheinman در سال 1976 ساخته شد و طرح آن به شرکت  Unimation فروخته شد.

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

آینده رباتیک

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

با پیشرفته تر شدن ربات‌ها، ممکن است در آینده به سیستم عامل استانداردی برای آن‌ها نیاز باشد. “سیستم عامل ربات”(ROS) مجموعه ای از برنامه های کد منبع باز است که در حال حاضر در دانشگاه استنفورد، دانشگاه MIT و دانشگاه فنی مونیخ و البته چند دانشگاه دیگر در حال توسعه است. ROS امکان برنامه‌نویسی سیستم جهت یابی و اعضای بدن ربات را، صرف نظر از نوع سخت افزار به کار رفته در آن، فراهم می کند. همچنین این سیستم عامل دستورات سطح بالایی را نیز برای مواردی چون تشخیص تصویر و یا باز کردن در ها ارائه می کند. وقتی سیستم عامل ROS بر روی کامپیوتر داخلی ربات بوت می شود، داده‌هایی مانند طول و میزان حرکت اعضای مختلف ربات را به دست می آورد. این داده‌ها از طریق سیستم عامل به الگوریتم های سطح بالاتری منتقل می‌شوند. علاوه بر این، مایکروسافت نیز با کمک نرم افزار Robotics Developer Studio که از سال 2007 در دسترس است، در حال توسعه یک سیستم عامل به نام”ویندوز برای ربات‌ها” می باشد.

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

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

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

کاربردهای جدید و نمونه های اولیه آن‌ها

در سال 2008، شرکت Caterpillar، ایده ساخت دامپ تراکی را که می‌توانست بدون نیاز به راننده، مواد معدنی را از معدن به بیرون منتقل کند، مطرح کرد. بسیاری از تحلیل گران معتقدند کامیون های بدون راننده، در نهایت لجستیک را متحول خواهد کرد و انقلابی عظیم را در صنعت به وجود خواهد آورد.تا پایان سال 2014، Caterpillar توانست این دامپ تراک تمام اتوماتیک را بسازد که انتظار می‌رود فرآیند معدن کاری را به طور چشمگیری متحول کند. در سال 2015، این کامیون های ساخت Caterpillar توسط شرکت معدنیRio Tinto Coal Australia ، به طور کامل در عملیات معدن کاری در استرالیا مورداستفاده قرار گرفتند. برخی تحلیل گران معتقدند در چند دهه آینده، بسیاری از کامیون ها کاملا خودکار خواهند بود.

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

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

Baxter یک ربات جدید است که در سال 2012 معرفی شد.

Baxter یک ربات جدید است که در سال 2012 معرفی شد.

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

شبکه عصبی مصنوعی به زبان ساده

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

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

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

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

ساختار شبکه عصبی

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

شبکه عصبی-05

 

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

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

مثالی برای  شبکه عصبی

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

 

شبکه عصبی-02

 

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

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

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

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

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

شبکه عصبی-ترجمه

 

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

چنین وضعیتی در تشخیص گفتار نیز به وجود آمد. پس از افزودن یادگیری با شبکه های عصبی در Google Voice نرخ خطای این برنامه تا ۴۹% کاهش یافت. البته این قابلیت هیچوقت بدون نقص نخواهد بود، اما به مرور زمان شاهد پیشرفت آن هستیم.

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

شبکه های عصبی در مقابل کامپیوتر های معمولی

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

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

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

امتیاز شبکه عصبی در آن است که چگونگی حل مسئله را خودش کشف می‌کند!

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

 

شبکه عصبی-03

مزیت‌های شبکه عصبی

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

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

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

  • یادگیری انطباق پذیر (Adaptive Learning)

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

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

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

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

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

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

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

شبکه عصبی-شبکه عصبی-پیش‌خور-01

 

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

شبکه عصبی-پس خور

 

 یادگیری در شبکه‌ های عصبی

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

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

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

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

ساختار شبکه های عصبی مصنوعی به زبان ساده (Artificial Neural Network)

 

ساختار شبکه‌های عصبی مصنوعی به زبان ساده (Artificial Neural Network)

 

شبکه عصبی مصنوعی روشی عملی برای یادگیری توابع گوناگون نظیر توابع با مقادیر حقیقی، توابع با مقادیر گسسته و توابع با مقادیر برداری می‌باشد.

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

گمان می‌رود که مغز انسان از تعداد ‌1011 نرون تشکیل شده باشد که هر نرون با تقریبا 104 نرون دیگر در ارتباط است. سرعت سوئیچنگ نرونها در حدود 310 ثانیه است که در مقایسه با کامپیوترها 1010 ثانیه  بسیار ناچیز می‌نماید. با این وجود آدمی قادر است در 0.1 ثانیه  تصویر یک انسان را بازشناسائی نماید. ولی برای کامپیتر دقایقی طول می کشد که این بازشناسی انجام شود.

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

ساختار شبکه عصبی

 

 

هر دو تصویر بالا را مشاهده کنید. چه شباهت‌هایی می‌بینید؟

همانطور که ملاحظه می کنید، تصویر اول یک نرون طبیعی بیولوژیکی است. اطلاعات از طریق ورودی یا همان دندریت وارد نرون می شوند، همان ورودی‌ها در تصویر دوم با مقادیر (x1,…….,xm) قابل مشاهده هستند. در مدل شبکه عصبی مصنوعی به هر ورودی یک وزن (w1,…….,wm) اختصاص می دهیم. این وزن‌ها در واقع اهمیت ورودی‌ها برای ما هستند، یعنی هر چه وزن بیشتر باشد، ورودی برای آموزش شبکه مهمتر است. سپس تمامی ورودی‌ها با هم جمع (Σ) شده و به صورت یک‌لایه به آکسون وارد می شوند. در مرحله بعد Activation Function را بر روی داده‌ها اعمال می‌کنیم.

Activation Function در واقع نسبت به نیاز مسئله و نوع شبکه عصبی ما (در آموزش های بعدی به آن می پردازیم) تعریف می شود. این function شامل یک فرمول ریاضی برای بروزرسانی وزن‌ها در شبکه است.

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

منبع

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

ماشین تورینگ کوانتومی

ماشین تورینگ کوانتومی (QTM) و همچنین ماشین جامع تورینگ کوانتومی، ماشیني انتزاعی است که با بهره‌گیری از قدرت رایانش کوانتومی برای مدل‌سازی ساده کامپیوترهای کوانتومی مورد استفاده قرار می‌گیرد.

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

همچنین، نمونه‌هایی از چنین ماشین‌هایی تحت عنوان Linear Quantum Turing Machine توسعه داده شده است که کلیت یافته ماشین‌های معمولی کوانتومی تورینگ بوده و علاوه بر مدل‌سازی مفهوم حالات ترکیبی، امکان استفاده از توابع غیر قابل بازگشت را نیز فراهم می‌سازند. نتیجه استفاده از چنین ماشین‌هایی، ارزیابی کوانتومی بدون وجود عواقب کلاسیک آن است که در نوع خود بسیار ارزشمند است. لازم به ذکر است با این‌که ماشین‌های تورینگ کوانتومی مدلی ساده و جالب برای تحلیل الگوریتم‌های کوانتومی هستند اما مدارهای کوانتومی که از لحاظ محاسباتی با آن‌ها معادل هستند، بیشتر مورد استفاده قرار می‌گیرند.

با مراجعه به آدرس www.mathematica-journal.com/issue/v8i3/features/hertel/index.html می‌توانید یک شبیه‌ساز ماشین کوانتومی تورینگ را که با استفاده از Mathematica توسعه داده شده است، دانلود کرده و برای آشنایی بیشتر با QTM از آن استفاده کنید.

نکته قابل توجه در تئوری مطرح شده از طرف تورینگ این است که وی‌ در مقاله اولیه خود میان «ماشین اتوماتیک» یا a-Machine و «ماشین انتخاب کننده» یا c-Machine تفاوت قائل بوده است چراکه در بخشی از نوشتار خود ذکر کرده است «حرکات ماشین خودکار، به‌طور کامل در پیکربندی تعیین شده است اما حرکات ماشین انتخاب کننده، به‌طور نسبی در پیکربندی آن تعیین شده است. زمانی که چنین ماشینی به یکی از این حالت‌های مبهم می‌رسد، باید تا زمان تعیین یک انتخاب از طرف عامل بیرونی منتظر باقی بماند. این می‌تواند در زمینه استفاده از ماشین‌ها در سیستم‌های axiomatic کاربرد داشته باشد.»

نمای شماتیک جدول‌گذار Busy Beaver
شكل1: نمای شماتیک جدول‌گذار Busy Beaver

در انتظار یادگیری ماشینی کوانتومی خواهیم بود

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

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

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

– هر کاری که یک کامپیوتر واقعی می‌تواند انجام دهد، یک ماشین تورینگ نیز می‌تواند. ماشین تورینگ می‌تواند هر نوع روالی که در زبان‌های برنامه‌نویسی پیدا می‌شود از جمله روال‌های بازگشتی و متدهای پردازش پارامترها را شبیه‌سازی کند.

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

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

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

نمونه دیاگرام پیشرفت محاسبات یک ماشین Busy Beaver  سه حالته 
شكل2 : نمونه دیاگرام پیشرفت محاسبات یک ماشین Busy Beaver  سه حالته


بخش سوم

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

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

محدودیت دیگری که می‌توان برای ماشین تورینگ بر‌شمرد، در حوزه پیچیدگی محاسباتی مطرح می‌شود و آن این است که ماشین تورینگ به خوبی امکان مدل‌سازی اهمیت در ترتیب‌هایی خاص (که در بعضی الگوریتم‌ها مورد نیاز است، مانند حلقه‌های تکرار) را ندارد. به عنوان مثال، کامپیوترهای مدرن با برنامه ذخیره‌شده، نمونه‌ای از یک فرم خاص از ماشین‌های مجرد هستند که RASP(سرنام Random Access Stored Program Machine) نامیده می‌شوند. این نوع ماشین‌ها برنامه را در حافظه‌ای جدا از فضای دستورالعمل‌های ماشین حالت متناهی ذخیره می‌کنند. این ماشین‌ها معمولاً به قابلیت آدرس‌دهی غیر‌مستقیم حافظه و رجیسترها مجهز هستند و به همین دلیل، هر برنامه RASP می‌تواند به راحتی به هر رجیستر مورد نیاز خود دسترسی پیدا کند. نتیجه این تفاوت آن است که در این ماشین‌ها بر‌خلاف ماشین تورینگ، بر‌اساس شاخص‌های حافظه می‌توان بهینه‌سازی‌های محاسباتی را پیاده‌سازی کرد؛ امری که در مدل ماشین تورینگ امکان‌پذیر نیست و به همین دلیل، زمانی که ماشین تورینگ برای تعداد محدودی اجرا در نظر گرفته می‌شود، می‌توان در تعداد مشخصی از اجراهای برخی الگوریتم ها بروز «خطای حد پایینی نادرست» را اثبات کرد (این امر به دلیل ساده‌‌سازی ناصحیح فرضیات در ماشین تورینگ است). مثالی از این مورد، الگوریتم جست‌وجوی باینری است که روی مدل‌های RASP بسیار سریع‌تر از ماشین تورینگ اجرا می‌شود.

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

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

نمونه‌ای امروزين از ماشين سنتی تورينگ

یکی از بهترین نمونه‌هایی که از ماشین تورینگ ساخته شده است، پروژه «یک ماشین تورینگ» است که می‌توانید با رفتن به آدرس اینترنتی http://aturingmachine.com/index.php مشخصات و اطلاعات مربوط به آن را مشاهده و دریافت کنید.
در این ماشین که با استفاده از میکروکنترلر Parallax Propeller ساخته شده، انتقال حالت از روی قوانینی که روی یک SD Card ذخیره می‌شود، برداشت شده و داده‌ها از روی نوار تأمین می‌شوند. در ساخت این ماشین سعی شده حداکثر شباهت فیزیکی به آن چه تورینگ مد نظر داشته است، حفظ شده و مدلی مناسب از عملکرد ماشین اصلی تورینگ ارائه شود. اما این ماشین چگونه و از چه اجزایی ساخته شده و چگونه کار می‌کند؟

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

اسکنر این ماشین با استفاده از یک دوربین اسکن خطی با نور روشن‌کننده پیاده‌سازی شده است. مدل دوربین به‌کار رفته، TS-1401 است و 128 بیت داده را در هر خط برداشت می‌‌کند. زمان تمرکز چیزی حدود 200/1 ثانیه است (شکل 3).

 

نمونه‌ای امروزين از ماشين سنتی تورينگ و مراحل کار آن

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

کنترل ماشین مذکور توسط چیپ میکروکنترلر Parallax Propeller که در سمت چپ قرار گرفته است، به انجام می‌رسد. در این مدار، تمام 32 پورت ورودی/خروجی میکروکنترلر مذکور استفاده شده است. مدار سمت راست نیز وظیفه تأمین توان مصرفی مدار و همچنین کنترل و تأمین توان موتورهای پله‌ای و کنترل  ‌هد را بر عهده دارد. (شکل 6)

 

نمونه‌ای امروزين از ماشين سنتی تورينگ و مراحل کار آن

نوار کاغذی از هر طرف روی قرقره‌ای که به یک موتور DC با سرعت 4 دور در دقیقه متصل است، سوار شده است. (شکل 7 و 8) در پایگاه اینترنتی پروژه می‌توانید شماتیک  مدارهای به کار رفته در این ماشین را به صورت مفصل مشاهده کنید.  نرم‌افزار این ماشین با استفاده از زبان Spin مخصوص Propeller نوشته شده است که دو بخش مهم و اساسی دارد: بخشی که با کاربر مرتبط است و بخش دیگری که عملیات ماشین تورینگ را به انجام می‌رساند. بخش اول وظیفه بارگذاری برنامه‌ها از SD Card، تولید داده‌های پیش فرض روی نوار و کارهای جنبی را انجام می‌دهد در حالی که بخش دوم وظیفه انجام عملیات خواندن و نوشتن و پاک‌کردن نوار و همچنین عملکرد ماشین در برابر داده‌های ورودی را بر عهده دارد. در شکل 9 دیاگرام نرم‌افزاری این ماشین را مشاهده می‌کنید.

 

دیاگرام نرم افزاری نمونه‌ای امروزين از ماشين سنتی تورينگ
دياگرام نرم‌افزاری اين نمونه از ماشين تورينگ

ماشین جامع تورینگ

ماشین تورینگی که بتواند هر ماشین تورینگ دیگری را شبیه‌سازی کند، ماشین جامع تورینگ یا Turing Universal Machine خوانده می‌شود. به طور همزمان، تبیین ریاضی‌وارتری از ماشین جامع تورینگ با طبیعتی مشابه نیز توسط فردی به‌نام آلونزو چرچ (Alonzo Church )که کار وی روی Lambda Calculus با تئوری محاسبات تورینگ همپوشانی داشت، مطرح شده که اکنون با عنوان تئوری چرچ -تورینگ (Church-Turing) شناخته می‌شود.

تورینگ در این زمینه می‌گوید: «می‌توان ماشینی اختراع کرد که ‌بتواند هر عبارت محاسباتی را محاسبه کند. اگر ماشین U با نواری تغذیه شود که روی آن رشته‌های توصیف‌کننده عملکرد ماشین M نوشته شده باشد، آنگاه ماشین U عباراتی مشابه با M را محاسبه خواهد کرد.»

دیاگرامی ازنحوه عملکرد یک ماشین تورینگ عمومی (U) که با دریافت کدهای عملکرد ماشین تورینگ M، عملکرد آن را شبیه‌سازی می‌کند.
شكل3: دیاگرامی ازنحوه عملکرد یک ماشین تورینگ عمومی (U) که با دریافت کدهای عملکرد ماشین تورینگ M، عملکرد آن را شبیه‌سازی می‌کند.

ماشین تورینگ زیستی

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

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

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

 

ماشین تورینگ زیستی

 

تورینگ کامپیوتر با برنامه ذخیره شده را اختراع کرد وفون نویمان نشان داد که توصیف، از خود ماشین سازنده جامع جدا است. این کشفیات به هیچ وجه ساده و ابتدایی نیستند چرا که صحت آن‌ها مدت ها بعد مشخص شد. در سال 1944، اروین شرودینگر(Erwin Schrödinger) در کتابی با عنوان «زندگی چیست؟»، کروموزوم‌‌ها را نقشه معمار و ابزار سازنده عناصر زنده به‌صورت یکجا می‌دانست که اکنون اشتباه بودن آن کاملاً مشخص شده است چراکه کد اسکریپتی موجود در ماشین‌های زنده، تنها حاوی توصیفی از توابع اجرایی مورد نیاز هستند نه خود این توابع. بر همین اساس است که می‌توان گفت معادلات Hogkin ، خصوصیات پالس‌های عصبی را به‌صورت یک مدار الکتریکی مدل می‌‌کند، اما کانال‌های ارتباطی آن‌ها از روی توصیفاتی که توسط ژن‌ها ذخیره می‌شود، ساخته می‌شوند.

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

 با این‌که این ایده اکنون پذیرفته شده است، اما در آن زمان بسیار عجیب و شگفت‌انگیز به شمار می‌آمد. بعدها اما این مدل ماشین Universal ارائه شده از طرف تورینگ که به طور اختصاری U نامیده می‌شود از طرف بسیاری مانند مارتین دیویس(Martin Davis)، در سال 2000 به‌عنوان تئوری پایه‌ای که منجر به شکل‌گیری و تولید «کامپیوتر با برنامه ذخیره‌شده» شد، انتخاب و معرفی شد. همچنین، ماشین جامع تورینگ از طرف جان فون نویمان (John von Neumann) برای ساخت ابزار الکترونیکی محاسبه مورد استفاده قرار گرفته و منجر به معرفی مفهوم مهمی با نام معماری فون نویمان شد.

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

مارتین دیویس معتقد است که ایده جایگذاری جدول عملکرد ماشین به همراه ورودی‌ها روی حافظه ماشین سرآغاز رایانه‌های با برنامه ذخیره‌شونده است و به شدت بر درک فون نویمان از ماشین‌ها و تلاش وی برای تولید کامپیوتر علامت گسسته دیجیتال که EDVAC نام گرفت، تأثیر‌گذار بوده است. همچنین، وی معتقد است که موتور محاسبات خودکار (ACE) تورینگ، رشد و توسعه مفاهیمی مانند programming micro یا code micro و همچنین پردازنده‌های RISC را تسریع کرده است و آن را نخستین کاربرد پشته سخت‌افزاری (Hardware Stack) در دنیای کامپیوترها می‌داند. به اعتقاد وی، همان‌طور که ماشین تورینگ یکی از عوامل اصلی تولید کامپیوتر به شمار می‌آید، ماشین جامع تورینگ نیز یکی از عوامل اصلی توسعه علوم نوپای کامپیوتر (Computer Science) است.

منبع


منابع

https://fa.wikipedia.org/wiki

http://www.shabakeh-mag.com

 

ماشین تورینگ چیست ؟ قسمت 1
ماشین تورینگ چیست ؟ قسمت 2
ماشین تورینگ چیست ؟ قسمت 3