الگوریتم چیست ؛ انواع الگوریتم و کاربرد آنها + جدید
الگوریتمهای تقسیم و تسخیر
الگوریتمهای تقسیم و تسخیر، پیادهسازی سادهای دارند. این به شما امکان میدهد الگوریتم را بهطور گامبهگام بسازید. راهکار مذکور الگوریتم را به منظور مقابله با مشکل، به روشهای مختلف تجزیه میکند و درنتیجه میتوانید مشکل را به چندین تکنیک تقسیم کنید و خروجی معتبری را از ورودی معتبر بهدست آورید. این خروجی دقیق سپس به عملکردی متفاوت انتقال مییابد.
الگوریتمهای Brute Force
این الگوریتمها با استفاده از چارچوب منطق عمومی طراحی میشوند. علاوهبراین Brute Force بهعنوان الگوریتمهای جستوجوی جامع نیز شناخته میشوند زیرا قبلاز تصمیمگیری درمورد راهکار، همهی راهحلهای ممکن را بررسی میکند. الگوریتمهای Brute Force در دو نوع طراحی میشوند:
۱. Optimizing: اگر بهترین پاسخ کشف شود، فرآیند یافتن همهی راهحلهای قابل اجرا برای مشکل و سپس انتخاب بهترین راهکار پایان مییابد.
2. Sacrificing: بهمحض کشف بهترین پاسخ پایان مییابد.
الگوریتمهای تصادفی
شما مثل الگوریتم معمولی، ورودی و خروجی از پیش تعیینشده دارید. الگوریتمهای قطعی دارای مجموعهی مشخصی از ورودیها و خروجیها و همچنین مجموعهای از مراحل هستند که باید دنبال شوند. الگوریتمهای غیر قطعی کارایی کومتری نسبت به الگوریتمهای قطعی دارند.
الگوریتمهای شاخه و کران
رویکرد شاخه و کران فقط برای مقابله با مسائل برنامهنویسی عدد صحیح استفاده میشود. همهی راهکارهای قابلتصور با استفاده از این استراتژی به زیرمجموعههای کوچکتر تقسیم میشوند و سپس راهحل بهینه با ارزیابی بیشتر این زیر گروهها پیدا میشود.
الگوریتمهای حریص
در الگوریتمهای حریص، هر تکرار بهترین تصمیم ممکن را برای یافتن نتیجهی بهینه میگیرد. راهاندازی و استفاده این الگوریتم آسان بوده و تکمیل آن به زمان کمتری نیاز دارد. بههرحال، فقط چند مورد وجود دارد که در آنها استفاده از الگوریتم حریص بهترین گزینه است.
الگوریتمهای عقبگرد
نوعی فرایند الگوریتمی که راهکاریی که نیازهای مشکل را برآورده نمیسازند، بهطور مکرر کنار میگذارد.
الگوریتمهای برنامهنویسی پویا
با ذخیرهی نتایج میانی، عملکرد الگوریتم را بهبود میدهد و برای شناسایی بهترین پاسخ برای حل مسئله، پنج مرحله را طی میکند:
۱. برای کشف راهحل بهینه، مسئله را به مشکلات کوچکتر تقسیم میکند.
۲. پس از تفکیک مسئله به مشکلات کوچکتر، راهحل بهینه را برای آنها پیدا میکند.
۳. فرایند به خاطر سپردن که به حفظ نتایج مسائل کوچکتر اشاره دارد.
۴. برای جلوگیری از محاسبهی مجدد راهحل برای مشکلات فرعی مشابه، مجدداً از آن استفاده میکند.
۵. درنهایت خروجی برنامهی پیچیده محاسبه میشود.
فاکتورهای الگوریتم
هنگام ایجاد الگوریتم، باید فاکتورهای زیر را مدنظر قرار دهید: