advertise laitec sharif univercity استخراج بیت کوین با کامپیوتر استخراج بیت کوین با کامپیوتر
دانلود سورس پروژه فروشگاه کیف با asp.net و sql express

دانلود سورس پروژه فروشگاه کیف با asp.net و sql express

3000 تومان
دانلود برنامه رنگ آمیزی گراف با الگوریتم عقبگرد در سی شارپ

دانلود برنامه رنگ آمیزی گراف با الگوریتم عقبگرد در سی شارپ

3000 تومان
دانلود سورس پروژه TSP با الگوریتم مورچگان Ants

دانلود سورس پروژه TSP با الگوریتم مورچگان Ants

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

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

3000 تومان
دانلود برنامه آزمون تستی در مالتی مدیا بیلدر MMb

دانلود برنامه آزمون تستی در مالتی مدیا بیلدر MMb

3000 تومان

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

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

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

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

در این الگوریتمها، مجموعه ای وجود دارد و باید از آن مجموعه، مرحله به مرحله اعضا را انتخاب (select) کرد. با هر انتخاب بررسی میشود که آیا عضو انتخاب شده، امکان رسیدن به جواب نهایی را دارد یا خیر (feasible). با هر انتخاب بررسی میشود که آیا به جواب نهایی رسیده ایم یا خیر (solution).

شکل کلی این الگوریتم ها بصورت زیر میباشد.

 

شکل کلی شبه کد الگوریتم های حریصانه

Set  greedy  (set c)

{

         s = ф ;

         while  ( !solution (s)  &&  c!=ф )

         {

                 x = select(c) ;

                 c = c – {x} ;

                 if  (feasible ( s ᴜ {x} ))

                      s = s ᴜ {x} ;

         }

          if (solution (s) )

                      return (s) ;

          else

                      return (ф) ;

}

 

برای آشنایی بیشتر به مفهوم الگوریتم های حریصانه به مثال زیر توجه داشته باشید:

فرش کنید فروشنده ای میخواهد بقیه پول شما را که 36 واحد است پرداخت کند.

او میخواهد تعداد سکه های پرداختی حداقل باشد. فرض کنید سکه های موجود عبارتنداز: 25 و 10 و 5 و 1 واحدی. فروشنده ابتدا بزرگترین سکه موجود یعنی 25 واحدی را انتخاب میکند (بهینه محلی). با انتخاب یک سکه 25 واحدی دیگر جواب حاصل نخواهد شد بنابراین او یک سکه 10 واحدی انتخاب میکند. تاکنون 35 واحد انتخاب شده است. با انتخاب سکه 10 واحدی دیگر و 5 واحدی جواب حاصل نمیشود. بنابراین فروشنده سکه 1 واحدی را انتخاب میکند. بنابراین مجموعه جواب این مساله {25 , 10 , 1} میباشد که جواب بهینه نیز هست.

حال فرض کنید به جای سکه های 25 و 10 و 5 و 1 واحدی، سکه های 12 و 10 و 5 و 1 واحدی وجود میداشت و بقیه پول شما 16 واحد باشد. با روش حریصانه یک سکه 12 واحدی و 4 سکه 1 واحدی دریافت میکنید یعنی 5 سکه. حال آنکه جواب بهینه در این حالت شامل  یک سکه 10 واحدی، یک سکه 5 واحدی و یک سکه 1 واحدی یعنی در کل 3 عدد سکه.

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

در این مثال مجموعه انتخابهای ممکن یعنی C، سکه های موجود میباشد. تابع select هر بار یک سکه را انتخاب میکند، تابع feasible با هر انتخاب بررسی میکند که آیا انتخاب انجام شده امکان پذیر هست یا خیر. اگر امکانپذیر نباشد آن انتخاب برای همیشه طرد میشود. تابع solution با هر انتخاب بررسی میکند آیا جواب حاصل شده است یا خیر.

الگوریتم هایی که به روش حریصانه بررسی میشوند عبارتنداز:

► مسئله کوله پشتی غیر صفر و یک

► کد هافمن

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

► انتخاب (زمان بعدی) فعالیت ها

► زمانبندی فعالیت ها با مهلت معین

► الگوریتم های حریصانه کراسکال (راشال)

► الگوریتم پریم

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

 

 



0
نظرات

نظر خود را ارسال کنید



نام:
ایمیل:
دیدگاه:
captcha
کد امنیتی :


advertise
مراحل الگوریتم در روش حریصانهشبه کد الگوریتم حریصانهشکل کلی و مفهوم الگوریتم های حریصانهدانلود سورس کد الگوریتم حریصانه greedyالگوریتم آزمندروش حریصانه در طراحی الگوریتم هاgreedy Algorithmآموزش الگوریتم حریصانهالگوریتم انتزاعی روش حریصانهتبلیغات ارزان سایت آموزش برنامه نویسیتبلیغات مخصوص طراحان وب سایتتبلیغات در سایت برنامه نویسیتبلیغات اینترنتی برای برنامه نویساندر آغوش مینیمالیسممنوی همبرگر با سه خط افقی که روی یکدیگر قرار گرفته اند نشانه چیست؟ سوئیچ به یک ستون واحدتبدیل متن ساده به وبلاگ و سایت های پویا با React.jsکتابخانه sass برای استفاده آسان تر از آنکتابخانه سطح بالا برای اتوماتیک سازی اعمال مرورگر لیست برچسب ها
تمامی حقوق این سایت اعم از محتوی ، تصاویر ، قالب و ... متعلق به گروه مهندسی وب سایت سورس کد می باشد.
SourceCodes.ir ، افقی روشن برای برنامه نویسان ، از مبتدی تا حرفه ای

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

پیشنهادات ویژه سورس کد

پکیج ویژه پروژه پایانی رشته کامپیوتر دانلود مجموعه 70 پروژه کاربردی سی شارپ وب سایت فروشگاه با php