کلمه جو
صفحه اصلی

الگوریتم جستجو

دانشنامه عمومی

در علوم کامپیوتر و ریاضیات، یک الگوریتم جستجو، الگوریتمی است که یک مسئله را به عنوان ورودی می گیرد و بعد از ارزیابی کردن راه حل های ممکن، یک راه حل برای آن مسئله برمی گرداند. مجموعهٔ راه حل های ممکن برای یک مسئله را فضای جستجو می نامند. بعضی از الگوریتم ها که با عنوان الگوریتم های ناآگاهانه شناخته می شوند الگوریتم هایی هستند که از متدهای ساده ای برای جستجوی فضای نمونه استفاده می کنند. در حالی که الگوریتم های آگاهانه با استفاده روش هایی مبتنی بر دانش در بارهٔ ساختار فضای جستجو، می کوشند تا زمان جستجو را کاهش دهند.
الگوریتم های ناآگاهانه
الگوریتم نخست-پهنا
الگوریتم نخست-ژرفا
در کتاب راسل این الگوریتم ها به شکل زیر رده بندی شده اند.
یک الگوریتم جستجوی ناآگاهانه الگوریتمی است که به ماهیت مسئله کاری ندارد. از این رو می توانند به طور عمومی طراحی شوند و از همان طراحی برای محدودهٔ عظیمی از مسائل استفاده کنند، این امر نیاز به طراحی انتزاعی دارد. از جمله مشکلاتی که این چنین الگوریتم هایی دارند این است که اغلب فضای جستجو بسیار بزرگ است و نیازمند زمان زیادی (حتی برای نمونه های کوچک) می باشد. از این رو برای بالا بردن سرعت پردازش غالباً از الگوریتم های آگاهانه استفاده می کنند.
الگوریتم های جستجوی لیست شاید از ابتدایی ترین انواع الگوریتم های جستجو باشند. هدف آن پیدا کردن یک عنصر از مجموعه ای از کلید هاست (ممکن است شامل اطلاعات دیگری مرتبط با آن کلید نیز باشد). ساده ترین این الگوریتم ها، الگوریتم جستجوی ترتیبی است که هر عنصر از لیست را با عنصر مورد نظر مقایسه می کند. زمان اجرای این الگوریتم از (O(n است وقتی که n تعداد عناصر در لیست باشد. اما می توان از روش دیگری استفاده کرد که نیازی به جستجوی تمام لیست نباشد. جستجوی دودویی اندکی از جستجوی خطی است. زمان اجرای آن از(O(lgn است. این روش برای لیستی با تعداد دادهٔ زیاد بسیار کار آمد تر از روش الگوریتم جستجوی ترتیبی است. اما در این روش لیست باید قبل از جستجو مرتب شده باشد.جستجو با میان یابی برای داده های مرتب شده با تعداد زیاد و توزیع یکنواخت، مناسب تر از جستجوی دودویی است. زمان اجرای آن به طور متوسط ((O(lg(lgn است ولی بدترین زمان اجرای آن (O(n می باشد.الگوریتم graver الگوریتم پله ای است که برای لیست های مرتب نشده استفاده می شود.جدول درهم سازی نیز برای جستجوی لیست به کار می رود. به طور متوسط زمان اجرای ثابتی دارد. اما نیاز به فضای اضافه داشته و بدترین زمان اجرای آن از(O(n است.


کلمات دیگر: