الگوریتم حریصانه

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

روش حریصانه یا الگوریتم حریصانه ( به انگلیسی: Greedy algorithm ) یکی از روش های مشهور و پرکاربرد طراحی الگوریتم ها است که با ساختاری ساده در حل بسیاری از مسائل استفاده می شود. این روش اغلب در حل مسائل بهینه سازی به کار می رود و در پاره ای مواقع جایگزین مناسبی برای روش هایی مانند برنامه ریزی پویا است. در حالت کلی این روش سرعت و مرتبهٔ اجرایی بهتری نسبت به روش های مشابه خود دارد؛ اما متناسب با مسئله ممکن است به یک جواب بهینهٔ سراسری ختم نشود. این دسته از الگوریتم ها در علوم رایانه کاربرد وسیعی دارند.
در روش حریصانه رسیدن به هدف در هر گام مستقل از گام قبلی و بعدی است؛ یعنی در هر مرحله برای رسیدن به هدف نهایی، مستقل از این که در مراحل قبلی چه انتخاب هایی صورت گرفته و انتخاب فعلی ممکن است چه انتخاب هایی در پی داشته باشد، انتخابی صورت می پذیرد که در ظاهر بهترین انتخاب ممکن است. به همین دلیل است که به این روش، روش حریصانه گفته می شود. به طور مثال، زمانی که یک دزد عجول و حریص وارد خانه ای می شود، در مسیر حرکت خود هر وسیله و کالای با ارزشی را داخل کیسه می اندازد. وی در این حالت چندان توجهی نمی کند که چه اشیایی را قبلاً برداشته و ممکن است در آینده چه اشیاء گران بهاتری به دست آورد. او در هر گام تنها از بین اشیای دم دست خود باارزش ترین آن را انتخاب کرده و به وسایل قبلی اضافه می کند.
این روش کاربردهای عمومی نیز دارد. به طور مثال زمانی که در مقابل خرید از یک فروشگاه یک اسکناس تحویل فروشنده داده می شود، وی با یک حساب سرانگشتی سعی می کند با حداقل اسکناس ها و سکه های ممکن باقیماندهٔ پول را تولید کرده و به خریدار تحویل دهد. این حساب سرانگشتی ممکن است روش حریصانه باشد.
در بسیاری از موارد مسئله به طور مستقیم یا غیرمستقیم از ما می خواهند که یک متغیر را کمینه یا بیشینه کنیم. در اکثر مسائل این چنینی ما باید تعدادی انتخاب انجام دهیم و مسئله در تعدادی مرحله حل شود. بازهٔ وسیعی از این مسائل توسط الگوریتم های حریصانه قابل حل هستند. [ ۱]
نام این روش از شخصیت معروف اسکروج در داستان سرود کریسمس گرفته شده است. یکی از تفریحات و انگیزه های اسکروج، به دست آوردن پول بیشتر بود؛[ ۲] الگوریتم حریصانه ( Greedy ) نیز مانند شیوه اسکروج می باشد؛ مثلاً فرض کنید اسکروج در یک مسابقه شرکت کرده است و باید در مرحلهٔ اول مسابقه یک در را انتخاب کند، به ازای انتخاب هر در فقط می تواند درهای بعد آن را باز کند و پول دریافت کند:
عکس الگوریتم حریصانهعکس الگوریتم حریصانهعکس الگوریتم حریصانهعکس الگوریتم حریصانهعکس الگوریتم حریصانهعکس الگوریتم حریصانه
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس