نوشته‌ها

پردازش سیگنال چیست؟

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

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

تاریخچه

با توجه به الن وی. اوپنهایم و رنالد شافر ،اصول اولیه پردازش سیگنال در روش های آنالیز عددی کلاسیک در قرن ۱۷ یافت می شود. اوپنهایم و شافر اشاره کرده اند که “دیجیتالی ساختن” یا پالایش دیجیتالی این روش ها درسیستم های کنترلی در سال های ۱۹۴۰ و ۱۹۵۰ می توان یافت.

 

زمینه های کاربرد

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

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

  • مدل اتصال متقابل سامانه های باز، ۱ در هفت لایه مدل OSI ، لایه فیزیکی (مدولاسیون،برابر سازی ، هم تافتنو غیره.);
  • OSI لایه ۲ لایه پیوند داده ای ;
  • OSI 6، لایه لایه نمایش ( برنامه نویسی از جمله تبدیل آنالوگ به دیجیتالو فشرده سازی سیگنال).

 

دستگاه های معمولی

  • فیلتر – برای مثال آنالوگ (منفعل یا فعال) یا دیجیتال (FIRهای IIR, دامنه فرکانسی یا کنترل تصادفی و غیره.)
  • نمونه برداری و مبدل سیگنال های آنالوگ به دیجیتال برای فراگیری سیگنالها و بازسازی آن ها، که شامل اندازه گیری فیزیکی سیگنال ها،ذخیره سازی یا انتقال آن را به عنوان سیگنال دیجیتال و بازسازی سیگنال اصلی یا تقریبی آن در کاربرد های احتمالی بعدی.
  • فشرده سازی داده ها
  • پردازشگر سیگنال دیجیتال سیگنال دیجیتال (DSPs)

 

روش های ریاضی کاربردی

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

 

دسته بندی ها

پردازش سیگنال آنالوگ

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

 

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

پردازش سیگنال های پیوسته در زمان برای سیگنال های است که با تغییرات پیوسته دامنه تغییر می کنند(بدون در نظر گرفتن بعضی نقاط منقطع)

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

 

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

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

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

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

 

پردازش سیگنال دیجیتال

پردازش سیگنال های دیجیتال پردازش نمونه های سیگنال در زمان های گسسته می باشد. پردازش توسط , رایانه ها یا با مدارهای دیجیتال همچون ASIC ها ، field-FPGA ها ،یا پردازنده های سیگنال دیجیتال ها انجام می گیرد . عملیات های معمول ریاضی شامل نمایش نقطه ثابت ، ممیز شناور ، مقدار حقیقی یا مختلط اعداد ، ضرب و جمع از این جمله می باشند. بعضی دیگر از عملیات های معمول توسط دایره بافر و جدول های look-up توسط سخت افزار پشتیبانی می شوند. مثال های از این الگوریتم ها تبدیل فوریه سریع (FFT) ، فیلتر های FIR ، فیلتر های IIR ، و فیلتر تطبیقیمی باشند.

 

غیر خطی پردازش سیگنال های غیرخطی

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

منبع


پردازش سیگنال چیست؟ (Signal processing)

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

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

 

مثال ها

شکل زیر سیگنال صوتی را نشان می‌دهد که هنگام فشار دادن کلید ۱ بر روی تلفن تولید می‌شود:

 

شکل ۱-سیگنال پیوسته

 

شکل ۲-سیگنال گسسته

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

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

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

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

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

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

 

تبدیل آنالوگ به دیجیتال

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

• آماده کردن سیگنال ورودی
• فیلتر کردن سیگنال ورودی
• نمونه برداری
• چندی کردن
شماتیک زیر نیز فرآیند تبدیل سیگنال آنالوگ به دیجیتال را نشان می‌دهد:

 

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

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

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

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

 

فیلتر کردن سیگنال

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

 

 طراحی فیلترها

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

 

نمونه برداری کردن

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

 

چندی کردن سیگنال

در  مرحله نمونه برداری دیدیم که یک نمونه از سیگنال به شکل ولتاژ نمونه برداری  شد. در  این مرحله ولتاز نمونه برداری شده باید به شکل دیجیتالی ( عدد باینری )  تبدیل شود.  برای این منظور نیز از مبدل‌های آنالوگ به دیجیتال استفاده می‌کنیم. به  عنوان مثال  یک مبدل انالوگ به دیجیتال ۸ بیتی به ازای ورودی خود عددی بین ۰ تا ۲۵۵  تولید می‌ کند. فرض کنید ورودی مبدل در بازه ۰ تا ۵ ولت باشد. این بدان معناست که به  ازای ورودی ۰ ولت ، خروجی مبدل عدد باینری ۰ و به ازای ورودی ۵ ولت خروجی مبدل  عدد باینری ۲۵۵ خواهد بود. بدیهی است که افزایش تعداد بیت‌های مبدل موجب افزایش  دقت چندی  شدن خواهد شد.

 

چرا دوربین‌ها ۲۹٫۹۷ فریم بر ثانیه فیلم‌برداری می‌کنند و نه ۳۰ فریم؟

چرا در جزییات فنی فیلم‌برداری در بخش فریم ریت به جای عدد ۳۰ فریم، عدد۲۹٫۹۷ فریم بر ثانیه فیلم‌برداری ذکر می‌شود؟ احتمالاً اگر در بررسی مشخصات ویدیویی خیلی از دوربین‌ها از دوربین‌های موبایل گرفته تا دوربین‌های فیلم‌برداری، نکته‌سنج بوده باشید این سؤال در ذهن شما هم شکل گرفته باشد. هر چند که می‌توان این مطلب را به صورت فنی تشریح کرد ولی در ادامه سعی شده است تا با بیانی ساده آن را موردبررسی قرار دهیم.در ابتدا بهتر است ، کمی راجع به فریم ریت توضیح بدهیم. فریم ریت یا در اصل همان فریم در ثانیه به نرخ تصویری اشاره دارد که به صورت متوالی و پشت سر هم توسط یک دستگاه تولید می‌شود.

واحد اندازه‌گیری فریم،FPS یا همان فریم در ثانیه است. برای همین وقتی در مشخصات فیلم‌برداری دوربین عدد ۲۹٫۹۷ درج می‌شود این عدد معادل تعداد فریم هایی است که آن دوربین در عرض یک ثانیه ثبت می‌کند. حتی در دوربین‌های پیشرفته‌تر که به ادعای شرکت سازنده می‌توانند تصاویر را با فریم ریت ۶۰ fps رکورد کنند در ۹۹ درصد مواقع در هر دو حالت DF و NDF به صورت دقیق با فریم ریت ۵۹.۹۴ فریم بر ثانیه تصاویر را ضبط می‌کند. با این تفاسیر چرا این عدد دقیقاً ۳۰ یا ۶۰ فریم در ثانیه نیست؟

مروری بر گذشته

در زمان معرفی اولین تلویزیون‌های سیاه و سفید NTSC فریم ریت دقیقاً معادل ۳۰ فریم در ثانیه بود؛ اما رد پای عدد عجیب ۲۹٫۹۷ و (بعدها ۵۹.۹۴) فریم در ثانیه برای اولین بار با معرفی تلویزیون‌های رنگی پیدا شد. در زمان تولید این تلویزیون‌ها، مهندسان سازنده باید اطلاعات رنگ را نیز به سیگنال‌های تلویزیونی اضافه می‌کردند؛ اما به خاطر محدودیت پهنای باند تصمیم گرفتند که تا حد ناچیزی از فریم ریت تلویزیون بکاهند تا اطلاعات رنگ نیز بدون اینکه سیگنال‌های تلویزیونی دچار معایبی شوند در آن گنجانده شود.

 

 

این تصمیم از این جهت گرفته شد که عملاً چاره دیگری نبود، از نظر فنی امکان افزایش پهنای باند وجود نداشت؛ و افزایش تفکیک‌پذیری (بالا بردن تعداد خط‌های افقی) بدون افزایش پهنای باند درنهایت باعث افت تفکیک‌پذیری و کاهش کیفیت تصویر می‌شد. برای همین ۲۹٫۹۷ فریم در ثانیه به فریم ریت استاندارد تلویزیون‌های رنگی NTSC تبدیل شد. دوربین‌های فیلم‌برداری امروزی هم به همان ترتیب به جای ۳۰ فریم در واقع قابلیت ثبت ۲۹٫۹۷ فریم در ثانیه را دارند. البته این تفاوت آن‌قدر ناچیز هست که در اصطلاح رایج به ذکر عدد ۳۰ و ۶۰ فریم در ثانیه اکتفا می‌شود.

 

 

از طرفی دیگر استاندارد تلویزیونی PAL کاملاً برای سازگاری با تلویزیون‌های رنگی در نظر گرفته شده است. در نتیجه بدون لطمه خوردن به تفکیک‌پذیری، از فریم ریتی مناسبی برخوردار است؛ بنابراین بستگی دارد که دوربین با چه استانداردی (PAL و NTSC) تصاویر را رکورد می‌کند.

 

 

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

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

 

نویسنده: آقایان علی اوحدی و محسن امیدوار

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

کلیمه عبور فایل : behsanandish.com

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

روش بهینه‌سازی ازدحام ذرات

روش بهینه‌سازی ازدحام ذرات (به انگلیسی: Particle swarm optimization) یا به اختصار روش PSO، یک روش سراسری کمینه‌سازی است که با استفاده از آن می‌توان با مسائلی که جواب آن‌ها یک نقطه یا سطح در فضای n بعدی می‌باشد، برخورد نمود. در اینچنین فضایی، فرضیاتی مطرح می‌شود و یک سرعت ابتدایی به آن‌ها اختصاص داده می‌شود، همچنین کانال‌های ارتباطی بین ذرات درنظر گرفته می‌شود. سپس این ذرات در فضای پاسخ حرکت می‌کنند، و نتایج حاصله بر مبنای یک «ملاک شایستگی» پس از هر بازهٔ زمانی محاسبه می‌شود. با گذشت زمان، ذرات به سمت ذراتی که دارای ملاک شایستگی بالاتری هستند و در گروه ارتباطی یکسانی قرار دارند، شتاب می‌گیرند. علی‌رغم اینکه هر روش در محدوده‌ای از مسائل به خوبی کار می‌کند، این روش در حل مسائل بهینه‌سازی پیوسته موفقیت بسیاری از خود نشان داده است.

انواع الگوریتم ازدحام ذرات

الگوریتم ازدحام ذرات پیوسته

مقدمه

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

در ادامه کمی به توضیح مفهوم هوش جمعی میپردازیم.

هوش جمعی

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

اولین الگوریتم ازدحام ذرات

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

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

پس از یافتن بهترین مقادیر، سرعت و مکان هر ذره با استفاده از رابطه ۶ و ۷به روز می‌شود.

رابطه ۶{\displaystyle v(t+1)=v(t)+c1*rand(t)*(pbest(t)-position(t)+c2*rand(t)*(gbest(t)-position(t))}

رابطه ۷ {\displaystyle position(t+1)=position(t)+v(t+1)}

سمت راست معادله ۶ از سه قسمت تشکیل شده‌است که قسمت اول، سرعت فعلی ذره است ({\displaystyle v(t)}) و قسمتهای دوم ({\displaystyle c1*rand(t)*(pbest(t)-position(t))}) و سوم ({\displaystyle c2*rand(t)*(gbest(t)-position(t))}) میزان تغییر سرعت ذره و جهت آن به سمت بهترین تجربه شخصی (نوستالژی) و بهترین تجربه گروه (هوش جمعی) را به عهده دارند. اگر قسمت اول را در این معادله درنظر نگیریم ({\displaystyle v(t)})، آنگاه سرعت ذرات تنها با توجه به موقعیت فعلی و بهترین تجربه ذره و بهترین تجربه جمع تعیین می‌شود و عملاً تأثیر سرعت کنونی و لختی آن حذف می‌شود. به این ترتیب، بهترین ذره گروه، در جای خود ثابت می‌ماند و سایرین به سمت آن ذره حرکت می‌کنند. در واقع حرکت دسته جمعی ذرات بدون قسمت اول معادله ۶، پروسه ای خواهد بود که طی آن فضای جستجو به تدریج کوچک می‌شود و جستجویی محلی حول بهترین ذره شکل می‌گیرد. در مقابل اگر فقط قسمت اول معادله ۶ را در نظر بگیریم، ذرات راه عادی خود را می‌روند تا به دیواره محدوده برسند و به نوعی جستجویی سراسری را انجام میدهند. پارامترهای c1 و c2 (مقدار آن حدود ۲ است) میزان اهمیت و وزن هوش جمعی و نوستالژی را مشخص می‌کنند. پارامتر {\displaystyle rand(t)}

با صفر قرار دادن یا ندادن پارامترهای c1 و c2 سه حالت مختلف زیر به وجود می‌آید:

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

برای مقداردهی اولیه توسط رابطه ۸ عمل میکنیم. سرعت اولیه نیز طبق ۹ صفر است.

رابطه ۸ {\displaystyle x(0)=x_{min}+rand(x_{max}-x_{min})}

رابطه ۹ {\displaystyle v(0)=0}

شبه کد الگوریتم PSO:

For each particle
    Initialize particle
End For
Do
For each particle
    Calculate fitness value of the particle fp
    /*updating particle’s best fitness value so far)*/
    If fp is better than pBest
    set current value as the new pBest
End For
/*updating population’s best fitness value so far)*/
Set gBest to the best fitness value of all particles
For each particle
    Calculate particle velocity according equation
    Update particle position according equation
End For While maximum iterations OR minimum error criteria is not attained

اما در مورد شرط توقف باید گفت که راههای زیر موجود است:

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

روش آخر به این صورت است که طبق رابطه ۱۰ می‌توان را بدست آورد. همان‌طور که گفته شد{\displaystyle R_{norm}} یک مقدار بین ۰ و ۱ است و همین‌طور F بیشترین فاصله بین دو ذره در حالت کنونی است.

رابطه ۱۰ {\displaystyle R_{norm}=\left({\frac {R_{max}}{F}}\right)}

مشکل اساسی اولین الگوریتم ازدحام ذرات

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

برای این کار چند راه حل ارائه شده‌است.

استفاده از سرعت بیشینه برشی

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

{\displaystyle v\prime (t+1)={\begin{cases}v(t+1)&v(t+1)<v_{max}\\v_{max}&v(t+1)>=v_{max}\end{cases}}}

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

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

{\displaystyle v\prime _{ij}(t+1)=tanh({\frac {v_{ij}(t+1)}{v_{maxj}}})v_{maxj}(t)}

در حالت برشی در نقطه برش مشتق پذیری از بین میرود؛ ولی در تانژانت هیپربولیک این مشکل وجود ندارد.

استفاده از ضریب کاهنده سرعت

در این روش از یک که باید بین ۰ و ۱ باشد، استفاده می‌شود. در غیر این صورت اگر بیش از ۱ باشد، سرعت افزاینده خواهد بود.

۱۴

حال تعیین کردن خود این یک مسئله است که روش‌های متعددی برای آن وجود دارد.

روش اول:

۱۵

روش دوم:

۱۶

در این روش باید را طوری تعیین کنیم که کمتر از ۱ شود.

روش سوم:

۱۷

برای می‌توان ۰٫۹ را انتخاب کرد و برای مقدار ۰٫۲ مناسب است.

روش چهارم:

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

۱۸
۱۹

که شایستگی راه‌حل بهینه سراسری است.

روش پنجم:

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

۲۰
۲۱+ ,
۲۲; k ∈[۰٬۱]
استفاده از تابعی برحسب تکرار برای سرعت بیشینه

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

[null 13]

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

الگوریتم ازدحام ذرات آسنکرون

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

الگوریتم ازدحام ذرات تمام آگاه

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

۲۳

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

الگوریتم ازدحام ذرات استخوان خالی

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

نسخه اول:

۲۴
۲۵
۲۶

نسخه دوم:

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

۲۷
الگوریتم ازدحام ذرات پیش کشیدن و پس زدن

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

[null 32]
[null 33]
الگوریتم ازدحام ذرات شکار و شکارچی

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

۳۴
۳۵
الگوریتم ازدحام ذرات چندشروعه

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

جمع‌بندی

الگوریتم ازدحام ذرات دودویی

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

منبع

بهینه‌سازی ازدحام ذرات (PSO) قسمت ۱
بهینه‌سازی ازدحام ذرات (PSO) قسمت ۲

ترکیب و تشخیص صحبت

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

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

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

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

تقریباً تمام تکنیکهای ترکیب و تشخیص صحبت بر اساس مدل تولید صحبت انسان که در شکل شماره ۳ نشان داده شده‌است ایجاد شده‌اند. بیشتر صداهای مربوط به صحبت انسان به دو دستهٔ صدادار و سایشی تقسیم می‌شوند. اصوات صدادار وقتی که هوا از ریه‌ها و از مسیر تارهای صوتی به بیرون دهان یا بینی رانده می‌شوند ایجاد می‌گردند. تارهای صوتی دو رشتهٔ آویخته از بافت هستند که در مسیر جریان هوا کشیده شده‌اند. در پاسخ به کشش ماهیچه‌های متفاوت تارهای صوتی با فرکانسی بین ۵۰ تا ۱۰۰۰ هرتز ارتعاش می‌کنند که باعث انتقال حرکتهای متناوب هوا. در مقایسه، اصوات سایشی به صورت نویز تصادفی و نه حاصل از ارتعاش تارهای صوتی به وجود می‌آیند. این حادثه زمانی رخ می‌دهد که تقریباً جریان هوا به وسیلۀ زبان و لبها یا دندانها حبس می‌شود که این امر باعث ایجاد اغتشاش هوا در نزدیکی محل فشردگی می‌گردد شکل شماره ۳ – مدل صحبت انسان. در یک تکه زمان کوتاه، حدود ۲ تا ۴۰ میلی ثانیه صحبت می‌تواند با استفاده از سه پارامتر مدلسازی شود:

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

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

ویژگیهای عمومی اصوات d و c ویژگیهای عمومی اصوات صدادار و شکلهای b و a دارای موج صوتی متناوبی مانند آنچه در رین در a همچنانکه در شکل ۴ دیده می‌شود اصوات صدا دار مثل نشان داده شده و طیف فرکانسی آنها که عبارت است از یک دنباله از همسازهای با اندازهٔ منظم a شکل دارای یک سیگنال نویزی در دامنهٔ استوم در s می‌باشد در مقابل، اصوات سایشی مانند b مانند شکل هستند. این طیفها همچنین شکل فرکانسهای فرمانت برای d و یک طیف نویزی مانند شکل c زمان مانند شکل در هر رین هر دو نوع صوت نشان می‌دهند. همچنین به این نکته توجه کنید که نمایش زمان-فرکانس کلمهٔ دو باری که ادا شده شبیه به هم است. در یک دور هی کوتاه برای نمونه ۲۵ میلی ثانیه یک سیگنال صحبت می‌تواند با مشخص کردن سه پارامتر تقریب زده شود:

۱) انتخاب یک اغتشاش متناوب یا نویزوار

۲)فرکانس موج متناوب (اگر مورد استفاده قرار گرفته باشد)

۳)ضرایب فیلتر دیجیتالی که برای تقلید پاسخ تارهای صوتی استفاده شده‌است.

صحبت پیوسته با به‌روزآوری این سه پارامتر به صورت پیوسته به انداز هی ۴۰ بار در ثانیه ترکیب شود. این نامیده می‌شود و یک وسیلهٔ «صحبت و املا» راهکار برای یکی از کاربردهای تجاری دی. اس. پی که الکترونیکی پرفروش برای بچه هاست مناسب است. کیفیت صدای این نوع ترکیب کنندهٔ صحبت پایین است و بسیار مکانیکی و متفاوت با صدای انسان به نظر می‌رسد. ولی در هر صورت نرخ دادهٔ خیلی پایینی در حدود چند کیلوبیت بر ثانیه نیاز دارد.

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

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

آیندهٔ فناوریهای پردازش صحبت

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

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

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

منبع


مقدمه ای بر پردازش گفتار

سیگنال صوتی و شنیداری یا Audio احساس ارتعاشات و نوسانات هوا توسط گوش انسان است. اگر این صوت در محدوده فرکانسی ۲۰Hz – ۲۰KHz  باشد با رسیدن به گوش و سپس انتقال به مغز و پردازش روی آن باعث درک مفهوم در ذهن انسان می گردد. سیگنال گفتار Speech زیر مجموعه ای از سیگنال Audio می باشد که توسط انسان ایجاد می شود. در نمودار زیر بخش سیاه شنیده نمی شود, شنیدن بخش قرمز آزار دهنده است و بخش سبز شنیده می شود.

نمودار بازه شنوایی

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

  • مخابره صدا به همراه تصوير و سایراطلاعات
  • دادن فرمانها و دستورات كنترلي توسط صدا
  • كنترل دستگاه ها و تجهيزات صنعتي و آزمايشگاهها توسط صدا
  • دادن فرامين صوتي در جاهايي كه دست انسان مشغول است مثل هواپيما و اتوموبيل
  • ديكته اتوماتيك
  • انجام عملیات بانکی پس از تایید هویت توسط صدا
  • کلید و قفل صوتی و بازشناسی هویت افراد قبل از ورود آنها به اماکن با درجه امنیت بالا
  • شناسائی خودکار زبان گوینده در سیستم های ترجمه اتوماتیک و یا پذیرش هتل های بین المللی
  • فروش خودکار بلیط در ایستگا ه های قطار و مترو و اتوبوس و غیره
  • پردازش زبان برای نا بینایان

اکثر کاربردهای ذکر شده در یکی از سه شاخه زیر قرار میگیرند:

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

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

  • کد کردن و فشرده سازی گفتار
  • سنتز گفتار
  • تشخیص و درک گفتار
  • تأیید هویت گوینده
  • تشخیص هویت گوینده
  • غنی سازی گفتار
  • ترجمه شفاهی گفتار
  • تعیین سن، جنس، لهجه، حالت روحی و روانی و نا هنجاری گفتار

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

Vocal Tract: شامل حلق(اتصال از مری به دهان) و محفظه دهانی میباشد. میانگین طول vocal tract برای آقایان حدود ۱۷٫۵ سانتیمتر میباشد و سطح مقطع آن که توسط موقعیت زبان, لبها, فک و غشا(یک دریچه در پشت محفظه دهانی که vocal tract و nasal tract را برای تولید صداهای دماغی شبیه /m/,/n/ به هم وصل می کند) تعیین میگردد و از صفر(بسته شدن کامل) تا ۲۰ سانتیمتر مربع متفاوت است.

Nasal Tract: از غشا تا سوراخ بینی گفته میشود.

 

اندام های داخلی دخیل در گفتار انسان

 

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

شکل مجرای گفتار در هنگام ادای بعضی حروف

واکه ها (vowel) و همخوانهای(consonant) زبان فارسی با توجه به شیوه تولید و واک(voice) یا بی واک(unvoice) بودن در جدول زیر قابل مشاهده هستند:

جدول واکه ها و همخوان های زبان فارسی

انواع نویز صوتی در پردازش گفتار

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

 

بر اساس ماهيت و ويژگي‌هاي منبع نويز، نويز مي‌تواند به صورت زیر دسته‌بندي شود:

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

منبع


منابع

۱٫fa.wikipedia.org

۲٫http://yarcode.ir

پردازش گفتار (صوت) قسمت ۱
پردازش گفتار (صوت) قسمت ۲

طرز کار کردن دوربین دیجیتال

مگاپیکسل

فتوسلهای سنسور عکس را پیکسل هم می گویند. اکثر دوربینهای دیجیتال دارای سنسورهایی به اندازه ۲/۳ تا ۲/۱۰ مگاپیکسل هستند. هر چه تعداد پیکسلها بیشتر باشد، عکس دارای جزئیات بیشتری خواهد بود و از این رو می توان آنرا با کیفیت خوب در اندازه بزرگتری چاپ کرد.

سنسورهای عکس در دو مدل CCD و یا CMOS هستند.

از سنسور نوری به کارت حافظه

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

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

انواع مختلف دوربینهای دیجیتال

دستگاه های چند منظوره

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

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

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

دوربینهای پیشرفته دیجیتال

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

استفاده از دوربین

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

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

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

چشمی یا منظره یاب

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

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

صفحه LCD

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

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

شاتر

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

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

دیافراگم

دیافراگم اغلب در لنز جای دارد. اندازه باز بودن دیافراگم همراه با سرعت شاتر، مقدار نوری که به گیرنده نوری می رسد را تنظیم می کنند. رقم پایین تر در دیافراگم به معنی بازتر بودن دیافراگم است. برای هر پله یا گامی که دیافراگم کاهش پیدا می کند ( یعنی رقم ها افزایش پیدا می کنند) مقدار نوری که به داخل دوربین راه پیدا می کند، نصف می شود. دیافراگم ۸/۲ دو برابر دیافراگم ۴ نور به داخل دوربین وارد می کند.

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

لنز

در یک دوربین قطع کوچک که از فیلم mm 36×۲۴ استفاده می کند، یک لنز mm 50 لنزی نرمال به حساب می آید. این لنز نه تصویر را بزرگتر و نه کوچکتر می کند. لنزی که باعث می شود موضوع عکس بزرگتر شود به لنز تله مشهور است که فاصله کانونی آن بیشتر از mm 50 است و اگر موضوع عکس کوچکتر از اندازه طبیعی آن شود، آن لنز ، لنزی واید است. لنزهای با فاصله کانونی متغیر به لنز زوم مشهور هستند.

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

زوم دیجیتال

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

فلاش

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

کاهش خطر قرمزی چشم

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

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

فلاش حذف سایه ها

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

نور سنجی

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

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

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

نورسنجی نقطه ای

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

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

نورسنجی مرکزی

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

گول خوردن نورسنج دوربین

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

تصحیح یا جبران نوردهی

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

حالت اتوماتیک

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

دوربین دیجیتال چیست؟ قسمت ۱
دوربین دیجیتال چیست؟ قسمت ۲
دوربین دیجیتال چیست؟ قسمت ۳

مدل سیستم خبره

یک مدل سیستم خبره مشتمل بر چهار بخش اصلی است:

پایگاه دانش (Knowledge Base)

    1. موتور استنتاج (Inference Engine)
    2. امکانات توضیح (Explanation Facilities)
    3. رابط کاربر (User Interface)

پایگاه دانش (Knowledge Base)

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

— شیء (Object): منظور از شیء در اینجا نتیجه‌ای است که با توجه به قوانین مربوط به آن تعریف می‌گردد.
— شاخص (Attribute): منظور از شاخص یا «صفت» یک کیفیت ویژه است که با توجه به قوانینی که برای آن در نظر گرفته شده است به شما در تعریف شیء یاری می‌دهد.

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

شیء قانون شاخص
سیب دارد روی درخت رشد می‌کند.
دارد گرد است
دارد رنگ قرمز یا زرد است
ندارد در کویر رشد می‌کند

بانک ساده شده بالا، تنها با استفاده از قانون <<دارد>>:

شیءشاخص‌هایی که دارد
سیبرشد روی درخت
سیبگرد بودن
سیبرنگ قرمز یا زرد
سیبرشد نکردن در کویر

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

فریمها(Minsky(1975، و پس از آن هستان شناسی‌ها از روشهای مدرن جهت ارائه دانش در سیستم‌های خبره‌اند.

موتور استنتاج (Inference Engine)

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

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

امکانات توضیح (Explanation Facilities)

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

رابط کاربر

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

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

مزایای یک سیستم خبره چیست؟

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

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

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

مثال‌هایی از سیستم‌های خبره تجاری:

    • MYCIN : اولین سیستم متخصص موفق جهان بود که در سال ۱۹۷۰ در دانشگاه استنفورد طراحی شد. هدف از ساخت این سیستم کمک به پزشکان در تشخیص بیماری‌های ناشی از باکتری بود. مشکل عمده در تشخیص بیماری برای یک پزشک آن است که تشخیص سریع و قاطع یک بیماری با توجه به تعداد بسیار زیاد بیماری موجود، عملی دشوار است.MYCIN با تشخیص دادن قاطع بیماری‌ها توانست که این نیاز را برآورده سازد.
    • PROSPECTOR: یک متخصص در امر زمین‌شناسی است که احتمال وجود رسوبات معدنی در یک ناحیه بخصوص را پیش بینی می‌کند. این سیستم در سال ۱۹۸۷ توسط «ریچارد دودا» و «پیتر هارد» و «رنه ربو» ساخته شد.

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

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

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

منبع


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

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

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

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

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

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

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

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

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

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

با توسعه تحقیقات هوش مصنوعی که هدف آن مشابه‌سازی ویژگی‌های انسان از طریق سیستم‌های کامپیوتر است، سیستم‌های خبره به‌عنوان سیستم‌هایی که بتوانند به‌جای انسان در فرایند تصمیم‌گیری به انتخاب بپردازند، در اواخر دهه ۹۰ مطرح گردید. اما نخستین سیستم خبره اتوماتیک در سال ۱۹۶۵ میلادی در دانشگاه استنفورد به‌نام DENDRAL طراحی شد؛ که در شیمی کاربرد داشت و هدف آن کمک به جستجوی ساختار ترکیبات ارگانیکی بود که از راه محاسبه بر روی فرمول‌های شیمیایی به‌دست می‌آمد.

سیستم‌های پشتیبانی تصمیم (DSS Design Support System)

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

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

اجزای سیستم­های خبره

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

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

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

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

پایگاه دانش؛ مشتمل بر دانش متخصص و شیوه‌های داد و ستد با پایگاه داده برای دست‌یابی به نتایج مورد نظر است.

موتور استنتاج؛ امکان استنتاج و نتیجه‌گیری از ارتباط بین پایگاه داده و پایگاه دانش را فراهم می‌کند.

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

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

مزایا و محدودیت­های سیستم­های خبره

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

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

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

مشکلات استقرار سیستم­های خبره

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

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

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

منبع

سیستم خبره قسمت ۱
سیستم خبره قسمت ۲
سیستم خبره قسمت ۳
سیستم خبره قسمت ۴
سیستم خبره قسمت ۵
سیستم خبره قسمت ۶

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

             

 

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

منبع


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

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

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

اولین و مشهورترین شکل این مسئله معمای هشت وزیر است که برای حل آن باید ۸ وزیر را در یک صفحهً معمولی (۸×۸) شطرنج قرار داد. این مسئله ۹۲ جواب دارد که ۱۲ جواب آن منحصر به‌فرد است یعنی بقیه جواب‌ها از تقارن جواب‌های اصلی به‌دست می‌آید.

مسئله n وزیر در صورتی جواب دارد که n مساوی ۱ یا بیشتر از ۳ باشد. یعنی مسئله دو وزیر و سه وزیر راه حلی ندارند.

تاریخچه

این مسئله در سال ۱۸۴۸ توسط شطرنج بازی به نام Max Bezzel عنوان شد و ریاضی دانان بسیاری ازجمله Gauss و Georg Cantor بر روی این مسئله کار کرده و در نهایت آن را به n وزیر تعمیم دادند. اولین راه حل توسط Franz Nauck در سال ۱۸۵۰ ارائه شد که به همان مسئله n وزیر تعمیم داده شد. پس از آن Gunther راه حلی با استفاده از دترمینان ارائه داد که J.W.L. Glaisher آن را کامل نمود. در سال ۱۹۷۹، Edsger Dijkstra Nauck این مسئله را با استفاده از الگوریتم عقب‌گرد حل کرد.

حل مسئله

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

Variables: { Q1, Q2, Q3, Q4 }

Domain: { (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4) }

Constraints: Alldifferent( Q1, Q2, Q3, Q4 ) and 
for i = 0...n and j = (i+1)...n, k = j-i, Q[i] != Q[j] + k and Q[i] != Q[j] - k

و این الگوریتم که برای جواب هر خانه‌است به دست می‌آید که یک csp است

min-conflicts(csp, max):
initial := complete assignment ;jamiyate avaliye
for 1..max do: ;az 1 .. akharin khane
if initial is a solution: ;if jamiyate tolide javab bod 
return initial ;barmigardanad
var := nextVar() ;da ghire indorat yek motaghair be jelo
value := leastConflicts( var ) ;taeein meghdar
var := value in initial ;gharar dadan meghdar dar motaghair
return failure ;bargash be ebtedaye algoritm

صورت مسئله

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

شمردن تعداد جواب‌ها

جدول زیر تعداد راه حل‌ها برای قرار دادن n وزیر بر روی صفحه n × nنشان می‌دهد. هر دو منحصر به فرد و متمایز، برای تعداد ۱-۱۴،۲۴-۲۶ است.

مسئله ی چند وزیر

  • توجه:

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

روش‌های حل مسئله

الگوریتم عقبگرد

از تکنیک عقبگرد Backtracking برای حل مسائلی استفاده می‌شود که در آن‌ها دنباله‌ای از اشیاء از یک مجموعه مشخص انتخاب می‌شود، به‌طوری‌که این دنباله، ملاکی را در بر می‌گیرد. عقبگرد حالت اصلاح شدهٔ جستجوی عمقی یک درخت است. این الگوریتم همانند جستجوی عمقی است، با این تفاوت که فرزندان یک گره فقط هنگامی ملاقات می‌شوند که گره امید بخش باشد و در آن گره حلی وجود نداشته باشد. با توجه به اینکه هیچ ۲ وزیری نباید همدیگر را گارد کنند و در یک سطر نمی‌توانند باشند، تعداد کل حالت‌ها برای n=۴ برابر ۴*۴*۴*۴=۲۵۶ است. در شطرنج یک وزیر می‌تواند به مهره‌هایی که در خانه‌های عمود یا مورب به وی قرار دارند حمله کند. یا به عبارت ریاضی، اگر ردیفها و ستونهای شطرنج را از یک تا هشت شماره‌گذاری کنیم و وزیر در خانه (i، j) قرار داشته باشد، مهره‌هایی که در خانه‌های (i، m) یا (m، j) یا (i ± m، j ± m) قرار دارند توسط وزیر تهدید می‌شوند.

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

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

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

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

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

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

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

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

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

به یک جواب می‌رسیم. حال اگر فرض کنیم که این خانه جواب نیست و به مسیر خود ادامه دهیم، احتمالاً” می‌توانیم جوابهای دیگری نیز بیابیم.

شبه کد پیاده‌سازی الگوریتم عقبگرد برای مسئله n وزیر

void queens (index i)
{
	index j;
	if (promising(i))
		if (i == n)
			cout &amp;amp;amp;amp;lt;&amp;amp;amp;amp;lt; col[1] through col[n];
		else
			for (j = 1; j &amp;amp;amp;amp;lt;= n; j++) {
				col[i + 1] = j;
				queens(i + 1);
			}
}
bool promising (index i)
{
	index k;
	bool Switch;
	k = 1;
	Switch = true ;
	while (k &amp;amp;amp;amp;lt; i &amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp; switch) {
		if (col[i] == col[k] || abs(col[i] – col[k] == i - k))
			switch = false;
		k++;
	}
	return Switch;
}

برنامه زبان C به صورت غیر بازگشتی

# include &amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt;

int b[8];

inline static int unsafe(int y) {
        int i, t, x;
        x = b[y];
        for (i = 1; i &amp;amp;amp;amp;lt;= y; i++) {
                t = b[y - i];
                if ((t == x) ||
                     (t == x - i) ||
                     (t == x + i)) {
                        return 1;
               }
       }

        return 0;
}

static void putboard(void) {
        static int s = ۰;
        int x, y;
        printf("\n\nSolution #٪i\n", ++s);
        for (y = 0; y &amp;amp;amp;amp;lt; 8; y++) {
                for (x = 0; x &amp;amp;amp;amp;lt; 8; x++) {
                        printf((b[y] == x) ? "|Q": "|_");
               }
                printf("|\n");
       }
}

int main(void) {
        int y = ۰;
        b[۰] = -۱;
        while (y &amp;amp;amp;amp;gt;= ۰) {
                do {
                        b[y]++;
               } while ((b[y] &amp;amp;amp;amp;lt; 8) &amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp; unsafe(y));
                if (b[y] &amp;amp;amp;amp;lt; 8) {
                        if (y &amp;amp;amp;amp;lt; 7) {
                                b[++y] = -۱;
                       } else {
                                putboard();
                       }
               } else {
                        y--;
               }
       }

        return 0;
}

برنامه زبان ++C به صورت بازگشتی

  • برنامه زیر برای هشت وزیر نوشته شده‌است با انتخاب اعداد دیگر به جای هشت در define MAXSIZE 8 # می‌توان برای تعداد دیگری وزیر نیز استفاده کرد.
# include &amp;amp;amp;amp;lt;assert.h&amp;amp;amp;amp;gt;
# include &amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt;

# define MAXSIZE 8
class EightQueens
{
    int m_size;				
    int m_solution_count;		
    int m_attempt_count;		
    int m_queen[MAXSIZE];		
    bool m_row_inuse[MAXSIZE]; 		
    bool m_diag_rise[MAXSIZE*2];	
    bool m_diag_fall[MAXSIZE*2];	

public:

    EightQueens(int size, bool is_alt) {

	assert(size &amp;amp;amp;amp;lt;= MAXSIZE);

	m_size = size;
	m_solution_count = 0;
	m_attempt_count = 0;

	for (int i = 0; i &amp;amp;amp;amp;lt; m_size; i++) {
	    m_queen[i] = i;
	    m_row_inuse[i] = 0;
	}

	for (int j = 0; j &amp;amp;amp;amp;lt; m_size*2; j++) {
	    m_diag_rise[j] = 0;
	    m_diag_fall[j] = 0;
	}

	if (is_alt) SearchAlt(0);
	else        Search(0);

   }

    int GetSolutionCount() {
	return m_solution_count;
   }

    int GetAttemptCount() {
	return m_attempt_count;
   }

private:

    void SearchAlt(int col){

	if (col == m_size) {
	    m_solution_count++;
	    return;
	}

	for (int row = 0; row &amp;amp;amp;amp;lt; m_size; row++) {
	    m_attempt_count++;
	    if (m_row_inuse[row] == 0 &amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp; IsDiagValid(col, row)) {
		m_queen[col] = row;
		m_row_inuse[row] = 1;
		SetDiags(col, 1);
		SearchAlt(col+1);
		SetDiags(col, 0);
		m_row_inuse[row] = 0;
		m_queen[col] = -1;
	   }
	}

   }

    void Search(int col) {
	if (col == m_size) {
	    m_solution_count++;
	    return;
	}

	for (int i = col; i &amp;amp;amp;amp;lt; m_size; i++) {
	    if (SwapQueenIfDiagValid(col, i)) {
		Search(col+1);
		UnSwapQueen(col, i);
	   };
	}
   }

    void SwapQueenBasic(int i, int j) {
	    int hold = m_queen[i];
	    m_queen[i] = m_queen[j];
	    m_queen[j] = hold;
   }

    void SetDiags(int col, int val) {
	assert(m_diag_rise[m_queen[col] + col]!= val);
	       m_diag_rise[m_queen[col] + col] =  val;
	assert(m_diag_fall[m_queen[col] - col + m_size]!= val);
	       m_diag_fall[m_queen[col] - col + m_size] =  val;
   }

    bool IsDiagValid(int col, int row) {
	return (m_diag_rise[row + col] == 0 &amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;
		m_diag_fall[row - col + m_size] == 0);
   }

    bool SwapQueenIfDiagValid(int i, int j) {
	m_attempt_count++;
	if (IsDiagValid(i, m_queen[j])) {
	    SwapQueenBasic(i, j);
	    SetDiags(i, 1);
            return true;
	}
        return false;
   }

    void UnSwapQueen(int i, int j) {
	SetDiags(i, 0);
	SwapQueenBasic(i, j);
   }

};

void
do_work(bool is_alt)
{
    int size = 8;

    EightQueens puzzle(size, is_alt);
    int soln = puzzle.GetSolutionCount();
    int attempt = puzzle.GetAttemptCount();
    assert(size!= 8 || soln == 92);
    const char* style = is_alt ? "cartesian": "permutation";
    printf("EightQueens[%d] has %d solutions found in %5d attempts using %s search. \n", size, soln, attempt, style);
}

int main()
{
    printf("We should have 92 solutions for 8x8. \n");
    do_work(0);
    do_work(1);
}

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

 

مسئله چند وزیر

 

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

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

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

  int ostimate _ n_ queens (int n)
   {
          index i , j , col [1..n];
          int m , mprod , numnodes ;
          set _of_ index  prom _children;
          i = ۰;
          numnodes =۱ ;
          m = ۱;

        mprod  = ۱ ;
        while  (m!= 0 &amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp; i!= n) {
        mprod = mprod * m ;
        numnodes  = numnodes + mprod * n;
        i ++;
        m = ۰ ;
        prom_childern  = Ø;
        for (j = 1 ; j ≤ n ; j++;) {
                col [i]  = j ;
                if (promising(i)) {

         m++;
         prom_children = prom _ children U {i};
                }
            }
             if (m!= ۰)  {
                 j = random selection from prom _childeren;
                 col [i];
             }
        }
         return numnodes;
     }

روش مکاشفه‌ای

برای حل این مسئله که دارای ۹۲ جواب است، باید تکنیکهایی جهت کاهش حالات، روش Brute Force یا امتحان تک تک جواب‌ها انجام شود. تعداد همه حالاتی که می‌تواند در روش Brute Force چک شود برابر ۱۶٬۷۷۷٬۲۱۶ یا هشت به توان هشت است! یکی از روش‌های حل این مسئله برای n>=4 یا n=1 استفاده از روش مکاشفه‌ای ( heuristic)است:

۱- عدد n را بر عدد ۱۲ تقسیم کن و باقی‌مانده را یادداشت کن

۲- به ترتیب اعداد زوج ۲ تا n را در لیستی بنویس

۳- اگر باقی‌مانده ۳ یا ۹ بود، عدد ۲ را به انتهای لیست انتقال بده.

۴- به لیست اعداد فرد ۱ تا n را به ترتیب اضافه کن، اما اگر باقی‌مانده ۸ بود اعداد را دو به دو باهم عوض کند (مثلاً ۱و۳و۵و۷و۹ تبدیل به ۳و۱و۷و۵و۹ میشه)

۵- اگر باقی‌مانده ۲ بود جای ۱ و۳ را با هم عوض کن و ۵ را به انتهای لیست ببر.

۶- اگر باقی‌مانده ۳ یا ۹ بود، اعداد ۱ و ۳ را به انتهای لیست ببر.

۷- حال با استفاده از لیست بدست آمده وزیرها در صفحه شطرنج چیده می‌شوند، به‌طوری‌که جای وزیر ستون اول، اولین عدد لیست، جای وزیر ستون دوم، دومین عدد لیست و…

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

روش‌های جستجوی محلی

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

به عنوان مثال فرض کنید در صفحه شطرنج معمولی، ۸ وزیر را به دو روش زیر قرار دهیم:

مسئله ی چند وزیرمسئله ی چند وزیر

در روش چینش سمت چپ ۳ وزیر و در روش چینش سمت راست ۴ وزیر همدیگر را گارد می‌دهند. بنابراین روش چینش قبلی بهینه تر از روش چینش فعلی است. در واقع می‌توان مسئله بهینه‌سازی را به صورت زیر تعریف کرد. فرض کنید S مجموعه همه جواب‌های ممکن برای مسئله باشد. در صورتی S* می‌تواند جواب مسئله باشد که به ازای همه جواب‌های موجود در S، S* بهینه تر از دیگر جواب‌ها باشد. در مسئله ۸ وزیر دیدیم که جوابی بهینه‌است که تعداد گاردهای جفت وزیر آن کمتر باشد.

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

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

۱) دو وزیر به تصادف انتخاب شده و جای آن دو باهم عوض گردد.

۲) یکی از وزیرها به تصادف انتخاب شده و شماره سطر آن به تصادف تغییر کند.

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

مسئله چند وزیر قسمت ۱
مسئله چند وزیر قسمت ۲
مسئله چند وزیر قسمت ۳
مسئله چند وزیر قسمت ۴