الگوریتم ویتربی
| در متن این مقاله از هیچ منبع و مأخذی نام برده نشدهاست. شما میتوانید با افزودن منابع برطبق اصول اثباتپذیری و شیوهنامهٔ ارجاع به منابع، به ویکیپدیا کمک کنید. مطالب بیمنبع احتمالاً در آینده حذف خواهند شد.(ژوئیه ۲۰۱۲) |
الگوریتم ویتربی برای پیدا کردن محتملترین مسیر از حالتهای پنهان کاربرد دارد.
این الگوریتم اغلب در مواردی بکار میرود که ما یک مدل پنهان مارکوف داریم و یک توالی از مشاهدات. میخواهیم بدانیم چه ترتیبی از حالتها(مسیر) این مشاهدات را تولید کرده. به عبارت دیگر ما دنبال محتملترین مسیر تولید کننده مشاهدات هستیم.
در مسائل طبیعی مانند مسئله جزایر سیپیجی (CpG islands) در بیوانفورماتیک، همیشه واقعیت منطبق بر محتملترین مسیر نیست. اما بسیاری اوقات محتملترین مسیر نیز اطلاعات خوبی در اختیار میگذارد.
جستجوی کامل فضای مساله [ویرایش]
میتوانیم تمامی مسیرهای ممکن را که مشاهده ما را تولید میکنند را پیدا کنیم، سپس با محاسبه احتمال آنها، محتملترینشان را بدست آوریم. به عنوان نمونه در مساله آب و هوا (میتوانید در مثالهایی برای مدل پنهان مارکوف ببینید) مشاهدی ما به صورت dry,damp,soggy است. برای بدست آوردن محتملترین مسیر باید احتمال زیر بیشینه شود:
برای جستجوی تمامی فضای جواب باید این احتمال را برای تمامی مسیرها بدست بیاوریم:
پیچیدگی زمانی این راهحل بالا است (
). برای سرعت بخشیدن به الگوریتم میتوان از تکنیک شاخه و حد استفاده کرد اما یک راه حل در زمان چندجملهای برای این مساله وجود دارد که الگوریتم ویتربی است.
الگوریتم ویتربی [ویرایش]
ورودی: مدل
که:
: الفبای مشاهدات- Q: مجموعه حالات
- P: ماتریس احتمال انتقال بین حالات
- e: ماتریس احتمال تولید الفبا در هر حالت
و توالی 
خروجی: محتملترین مسیر 
محاسبات آغازین: ( i=0 ) قرار بده
وبرای تمام kهای بزرگتر از صفر قرار بده 
- برای i از ۱ تا L و تمامی lها عضو Q
- قرار بده

- قرار بده

- قرار بده
خاتمه: 
و محتملترین مسیر 
Traceback:
- برای i از L تا 1 :
- قرار بده

- قرار بده
: الفبای مشاهدات

