advertise laitec sharif univercity
دانلود پروژه وب سایت هتل با HTML و ASP.NET

دانلود پروژه وب سایت هتل با HTML و ASP.NET

6900 تومان
دانلود آپلود سنتر پیشرفته با PHP و Ajax

دانلود آپلود سنتر پیشرفته با PHP و Ajax

5000 تومان
سورس پروژه پایانی آزمون گیری با زبان سی شارپ و SQL

سورس پروژه پایانی آزمون گیری با زبان سی شارپ و SQL

9000 تومان
دانلود برنامه هشت وزیر با جستجوی عمقی در سی شارپ

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

5000 تومان
سورس پروژه دفترچه تلفن ساده در سی شارپ #c و بانک Access

سورس پروژه دفترچه تلفن ساده در سی شارپ #c و بانک Access

5000 تومان

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

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

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