43
الگوریتم آموزش طراحیfaradars.org/fvsft109 ﻓﺮادرسFaraDars.org

آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

Embed Size (px)

Citation preview

Page 1: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 2: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

روش حریصانه

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 3: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

دریافتراهادادهترتیببهکهکنندمیکارصورتبدینهایشانالگوریتم،قدمبهقدمدستاوردروشیاآزمندحریصانه،روشهای

درکهییهاانتخابواشقبلیهایانتخاببهتوجهبدونرارسدمینظربهبهترینشانمعینمعیارطبقکهعنصریبارهروکرده

ارتعببهیاجوابازبخشیبایدالگوریتماجرایمراحلازمرحلههردرحریصانهروشدر.کنندمیانتخابشد،خواهدانجامآینده

ازایرشتهازبعدتوانمیونداردوجودشرطاینلزوماًدیگرروشهایدر.آوریمبدستراجوابهایمولفهازایمولفهتردرست

.آوردبدستراجوابانتهادروالگوریتمازمراحلیاجرایوعملیات

روش حریصانهآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 4: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

.دارندکاربردسازیبهینهمسائلبرایمعموالًوهستندسادهبسیارهاالگوریتماین

خابانتبارهربا.کردانتخابرااعضاءمرحلهبهمرحلهمجموعه،آنازبایدودارندوجودانتخابجهتایمجموعههاالگوریتمایندر

:کهشودمیبررسی

.(feasible)؟خیریاداردنهاییپاسخبهرسیدنامکانشده،انتخابعضوآیا-الف

(solution)؟خیریارسیدهنهاییپاسخبهآیاکهشودمیبررسیانتخابهربا-ب

روش حریصانهآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 5: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

:خصوصیات کلی الگوریتم آزمند عبارتند از

. ه باشدها است که ممکن است ترتیب آنها نیز اهمیت داشتای از دادهنتیجه نهایی یک الگوریتم آزمند مجموعه( الف

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

.آیدای و در هر مرحله یک مولفه از جواب بدست میمجموعه جواب به صورت مرحله( ب

.جواب نهایی باید تابع هدف یک عبارت را بهینه نماید( پ

ای از جواب قطعی و های ورودی به عنوان مولفهتصمیم اتخاذ شده در مورد انتخاب یا عدم انتخاب یکی از داده( ت

.غیرقابل بازگشت است

روش حریصانهآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 6: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

:باشدیک الگوریتم آزمند دارای اجزا زیر می

.های جوابای از انتخابهای ممکن برای مولفهمجموعه( الف

.های انتخاب شده تا به حال به عنوان بخشی از جواب یا جواب کاملمجموعه مولفه( ب

.تابعی برای انتخاب مولفه بعدی جواب از مجموعه انتخابهای ممکن( پ

.ا خیرتابعی برای تعیین این که با انتخاب جاری و مجموعه انتخابهای قبلی امکان رسیدن به جواب وجود دارد ی( ت

.هدف بهینه کردن این تابع است. دهی به جوابیک تابع هدف برای ارزش( ث

.یک تابع برای بررسی اینکه مشخص کند در نهایت جواب حاصل شده است یا خیر( ج

روش حریصانهآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 7: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

S

!&&)(! CSsolution

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

.شودکه شامل انتخاب های ممکن است ایجاد میCمجموعه ای برای نمونه بنام مجموعه -1

.شود که در ابتدا تهی استکه شامل پاسخ مسئله است ایجاد میSای بنام مجموعه-2

و در صورت نرسیدن بهه ( Solutionشرط )شرطی که نشان دهنده این که مسئله حل شد یا خیر تعریف می شود -3

شرط . )شودتکرار می6تا 4پاسخ نهایی مراحل

عضوی برای انتخهاب وجهود ( Cمجموعه )یعنی تا زمانی که مسئله حل نشده است و همچنین در مجموعه انتخاب ها

(دارد

روش حریصانهآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 8: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

ا خیهر؟ شود که آیا عضو انتخاب شده همراه با انتخاب های قبلی امکان رسیدن به پاسخ نههایی را دارد یهبررسی می-6

این پاسخ به مجموعه پاسخ ها اضافه می شود( feasible)پذیر بودن درصورت امکان

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

.شودبرگشت داده می شود و در غیر اینصورت تهی برگشت داده میSاگر پاسخ حاصل شد -7

حذف می شودCعضو انتخاب شده از مجموعه انتخاب ها یعنی مجموعه -5

xSS

.شودبه عنوان بخشی از پاسخ انتخاب میCیک عضو از مجموعه -4

}{XCC

روش حریصانهآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 9: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

}

;

;

))((

}

};{

})){((

};{

);(

{

)!&&)((!

;

{

)(

return

else

sreturn

ssolutionif

xSS

xSfeasibleif

xcc

cselectx

cSsolutionwhile

S

csetgreedySet

روش حریصانهآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 10: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

خرد کردن سکه

مسئله کوله پشتی

هابندی بهینه اجرای برنامهزمان

مسئله کد هافمن

درخت پوشای مینیمم

کوتاهترین مسیر تک منبع

الگوریتم های روش حریصانه یا آزمندآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 11: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

پولخرد کردن

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

کمتهر ارزشهای ها و اسکنا ای طراحی شود که با ورود یک سکه یا اسکنا به ماشین، آن را به سکهبه گونه

.تبدیل کند و از نظر تعداد بهینه باشد

تر از سکه کنیم و چنانچه ارزش آن بیشترین سکه یا اسکنا شروع میبرای طراحی الگوریتم مربوطه از با ارزش

ثر ممکهن از رویم وگرنه به تعداد حداکترین سکه بعدی مییا اسکناسی که قرار است خرد کنیم باشد به با ارزش

وجه کهرد باید ت. کنیمهای بعدی نیز تکرار میها یا اسکنا ترین سکهاین کار را در مورد با ارزش. داریمآن برمی

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

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 12: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

پولخرد کردن

در مسئله حل خرد کردن سکه با روش حریصانه

مجموع سکه ای برای انتخاب وجود داشته باشد و مسئله این است که تا زمانی که این SOLUTIONشرط -الف

.ادامه یابدبرابر مبلغ نهایی نشده انتخاب ها

غ کل از مبلمسئله این است که مجموع این انتخاب با انتخاب های قبلی برابر یا کمتر این FEASIBLEشرط -ب

.که در این صورت این انتخاب به مجموعه انتخاب های پاسخ اضافه می شودباشد

ه هایی که روش آزمند برای آنها راه حهل بهینهمجموعه سکه. کندها راه حل بهینه ارائه نمیآزمند برای همه سکهروش

.شوندنامیده می( Nice)های جور کند، مجموعه سکهارائه می

𝑜مرتبه زمانی این الگوریتم 𝑛های خودپرداز نیز بکار بردتوان آن را برای دستگاهاست و می.

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 13: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

هابندی بهینه اجرای برنامهزمان

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

FCFS(Firstزمانبندی-1 Com-First Served)

2-Round Robin RR

Shortest)(SJF)کارکوتاهتریناول-3 Job First)

Shortest)(SRT)ماندهباقیزمانترینکوتاهزمانبندی-4 Remaining Time=SRT)

( HRRN( )Highest Response Ratio Next)زمانبندی باالترین نسبت پاسخ -5

اولویتزمانبندی-6

چندگانهصفهایزمانبندی-7فیدبکباچندگانهصفهایزمانبندی-8

شانسیزمانبندی-9LPTزمانبندی-10

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 14: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

nwwww ,....,,, 321

npppp ,....,,, 321

هایتا شیء با جرمn. است در نظر بگیریدM( جرم آن)یک کوله پشتی که حداکثر ظرفیت آن

و ارزشهای

مسئله کوله پشتی

ا حهداکثر مفروض هستند، هدف پر کردن کوله پشتی با این اشیاء است بطوری که باالترین ارزش ی

.توان کسری از یک شیء را نیز انتخاب کردسود حاصل شود و در ضمن آنکه می

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 15: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

Mxwn

i

ii 1

: برابر است باfeasibleدر این مسئله شرط امکان پذیر بودن یا :نکته

Mxwn

i

ii 1

:برابر است با( solution)شرط حل شدن مسئله

)log(مرتبه زمانی این الگوریتم به مرتبه زمانی مرتب سازی بستگی دارد و برابر nnباشدمی.

مسئله کوله پشتی

هدف ماکزیمم کردن ( )کسر انتخاب شده است iبنابر این اگر فرض شود که از شی

.باشدبه شرطی که عبارت

10 ix ix

n

i

ii xp1

Mxwn

i

ii 1

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 16: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

هستند،مفروضشدهدادهآنهاارزشوجرمکهشیءسهوM=20ظرفیتباپشتیکوله:مثال

.باشدماکزیممآمدهبدستارزشکهبطوریپشتیکولهکردنپرهدف

(10 ،15 ،18( = )𝑤1 ,𝑤2 ,𝑤3)

(15 ،24 ،25( = )𝑝1 ,𝑝2 ,𝑝3)

مسئله کوله پشتیآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 17: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

هاترینارزشباانتخاب:اولروش:پاسخ

عنوانهبکهکنیمانتخابارزشبیشترینبترتیبرااشیاءاستبهترپساستمهماشیاءارزشچون

𝑀−𝑤1برابرکولهباقیماندهظرفیتصورتایندرکهکنیممیانتخابکاملرا1شیءمثال = 20

− 18 = بعدیشیءانتخابباکهزیراکردانتخابتواننمیرابعدیشیءکلبنابرینبود،خواهد2

کولهباقیماندهچرماندازهبه)کسریاندازهبهبعدیارزشباشیءازبنابرینگرددمی33برابرکولهجرم

علتهمینبهوشودپرکولهجرمتاشودمیانتخاب(شیاز2

15اینبنابرکنیم،میانتخابرا2شیءاز

(0،2

15،1)=(𝑥1 ,𝑥2 ,𝑥3)بااستبرابرکولهدرشدهانتخاباشیاءکلارزشو:

22815024152251

1/

n

i

iixp

مسئله کوله پشتیآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 18: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

1010203 wM

1510

),,(),,( 115100321 xxx

31151241510250

1

n

i

iixp

هاانتخاب کمترین وزن:روش دوم

ه به عنوان چون وزن اشیاء تاثیر منفی دارد، پس بهتر است اشیاء را بترتیب از کمترین وزن انتخاب کنیم ک

صورت ظرفیت باقیمانده کوله برابر کنیم که در اینرا کامل انتخاب می3مثال شیء

کسر ( 2شیء )خواهد بود بنابرین از شیء بعدی یعنی شیء با کمترین وزن بعدی

کنیم، بنابرین را انتخاب می

:و ارزش کل اشیاء انتخاب شده در کوله برابر است با

مسئله کوله پشتیآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 19: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

i

i

w

p

).,.,.(,,,, 5161311015

1524

1825

3

3

2

2

1

1

w

p

w

p

w

p

105

),,(),,(10510321 xxx

53115105241250

1/

n

i

iixp

انتخاب بر اسا باالترین ارزش و کمترین وزن:روش سوم

انتخاب کنیم بنابرینبهتر است اشیاء را به ترتیب نزولی

شود که ظرفیت بطور کامل انتخاب می2شیء بنابرین مقدار را دارد، باالترین 2با توجه به اینکه شیء

، کسر 3است بنابرین از شیء 3بعدی برای شیء باشد باالترین مقدارمی5باقیمانده برابر

شود تا ظرفیت کوله پر شود، پس انتخاب می

:بنابرین ارزش کل اشیاء انتخاب شده در کوله برابر است با

مسئله کوله پشتیآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 20: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

}

;][

][

)(

}

];[

;][

;

)][(

{

);;(

;

;][

);;(

);,,(

;int;

{

)int[],,[],[],(

iw

rcix

niif

iwrcrc

ix

break

rciwif

iniifor

Mrc

ix

iniifor

nwppwsort

ircfloat

nxfloatMfloatwfloatpfloatgknapsackvoid

1

1

0

00 الگوریتم مسئله کوله پشتی

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 21: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

مسئله کد هافمن

𝑙𝑜𝑔2کنیم،ایجادباینریکدهایکاراکتر،nشاملمتنیبرایبخواهیماگر𝑛نیازکاراکترهرازایبهبیت

هربرایبیت5بهنیازاستحرف26شاملکهانگلیسیالفبایحروفگذاریکدبرایمثالبرای)است

وa=00000مثالً.بودخواهدیکسانبیتطولدارایکاراکترهرحالتایندرکهاستکاراکتر

b=00001)

دادهنسبتتمتفاوطولبابیتیرشتهکاراکترهربهکهمعنیبدیناست،متغیرطولباکدیکهافمنکد

دیگرکاراکتروندپیشنبایدکاراکتریهیچیعنیباشد،آزادپیشوندخاصیتدارایبایدتخصیصاین.شودمی

(.استنادرستb=001وa=00مثالبرای)باشد

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 22: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

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

ار کاراکترها کند و همچنین بر اسا تعداد تکراستفاده از درخت دودوئی کد پیشوند آزاد بهینه تولید می

.به آنها بیت نسبت می دهد

.شودکوچکتری نسبت داده میکه فراوانی آنها زیاد است رشته بیتی در این روش به کاراکترهایی

:گام در تولید کد هافمن عبارتند ازدو

.گرددها که بر اسا صف اولویت تشکیل میتشکیل درخت دودوئی برای نویسهگام اول

هاکدگذاری نویسهدوم گام

مسئله کد هافمنآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 23: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

,aحروفشاملمتنیکنیدفرض:مثال b, c, d, e, fآمدهزیرجدولدرحروفاینفراوانیوباشدمی

.استحروفاینبرایبهینهکدایجادهدفاست،

Fedcbaکاراکتر

فراوانی1440871030

کد هافمنمثال

.گیرندابتدا تمام نویسه ها بر اسا فراوانی آنها بصورت صعودی در صف اولویت قرار می

d:8 a:30f:14b:10 e:40c:7

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 24: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

کد هافمنمثال

مجموع ها را از ابتدای صف اولویت انتخاب کرده و با آنها یک درخت دودوئی ساخته وابتدا کوچکترین

ده در های باقیمانو درخت دودوئی بدست آمده در صف اولویت نویسه. فراوانی آنها ریشه درخت می شود

.جای خود قرار می گیرد تا همواره صف اولویت بصورت صعودی مرتب باشد

a:30f:14b:10 e:40

d:8c:7

15

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 25: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

کد هافمنمثال

نتخاب عملیات دوباره تکرار می شود از ابتدای صف اولویت کوچکترین فراوانی های موجود در صف اهمین

خت و در. شودشده و با هم یک درخت دودوئی که ریشه درخت برابر مجموع فراوانی آنها است نوشته می

.گیرد که همچنان صعودی بودن صف اولویت رعایت شودحاصل در صف اولویت در جایگاهی قرار می

a:30 e:40

d:8c:7

15

f:14b:10

24

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 26: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

کد هافمنمثال

a:30 e:40

d:8c:7

15

f:14b:10

24

39

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 27: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

کد هافمنمثال

a:30

e:40

d:8c:7

15

f:14b:10

24

39

69

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 28: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

کد هافمنمثال

a:30

e:40

d:8c:7

15

f:14b:10

24

39

69

109

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 29: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

کد هافمنمثال

سمتیالهایرویگذاری،کددومگامدرکاراکترهادودوئیدرختشدنکاملواولگاماتمامازبعد

رکاراکتهرکدبعدشکلمطابقترتیببدینوشودمینوشته1راستسمتیالهایرویو0چپ

.آیدمیبدست

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 30: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

کد هافمنمثال

a:30

e:40

d:8c:7

15

f:14b:10

24

39

69

109

0

0

0

00

1

1 1

1

1e=0

a=10

c=1100

d=1101

b=1110

f=1111

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 31: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

درخت پوشای مینیمم

بههرشهرازبتوانندمردمبطوریکهکندوصلبهمجادهبارامعینشهرچندخواهدمیشهریطراحکنیدفرض

ارمقدحداقلباراکاراینبخواهدطراحاستممکنباشد،کاردرایبودجههایمحدودیتاگربروند،دیگرشهر

.کندمیحلرامشابهمسائلومسئلهاینکهشودمیارائهالگوریتمیبخشایندر.دهدانجامکشیجاده

یک،بودهGگرافدرموجودرئو همهحاویکهاستمتصلگرافزیریک:گرافیکبرایپوشادرختتعریف

.نامندمیپوشادرخترا(دوربدونومتصل،جهتبدون)باشددرخت

گرافیزیرتشکیلوGمتصلوموزونجهت،بدونگرافیکازهایییالحذفمسئله:کمینهپوشایدرختتعریف

.دنامنمیکمینهپوشایدرختراباشدکمینهآنیالهایوزنجمعحاصلوبماندباقیمتصلآندررئو که

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 32: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

:باشدیرزشرایطدارایبایدکه.شودمیاستفادههزینهکمترینمالکازکمینهپوشاهایدرختایجادبرای

.شوداستفادهگرافداخلهایلبهازفقطباید1.

.شوداستفادهلبهn-1ازدقیقاًباید2.

.شوداستفادهکنند،میحلقهیکایجادکههاییلبهازنباید3.

درخت پوشای مینیمم

بدترائینمحالتازحالتبدتریندرگراف،یکپوشایهایدرختکلبینازکمینهپوشایدرختیافتن

.شوندمیحلتریبهینهطوربهمشابهمسائلومسئلهاینحریصانه،هایروشبا.است

:داردوجودکمینهپوشایدرختیافتنبرایحریصانهالگوریتمدو

کراسکالالگوریتم-1

پریمالگوریتم-2

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 33: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

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

(را n).کنیممیایجادرارئو ازمستقلیمجموعهزیر-1

.شوندمیمرتبوزنشانصعودیترتیببهیالها-2

.نشودجادایسیکلانتخاباینباکهشرطیبهشودمیانجاموزنترتیببهیالهاتکتکانتخاب-3

یالآنانتخابازاینصورتغیردروشودمیانتخابیالآن(باشدsafe)نشودتشکیلسیکلاگر

.شودمی(reject)صرفنظر

.یابدمیخاتمهالگوریتمیال،n-1انتخاببا-4

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 34: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

کراسکالمثال الگوریتم

V0

V2

V1

V3

V5

V4

V6

25

22

18

12

2416

14

28

10

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 35: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

کراسکالمثال الگوریتم

یال(0,5)(2,3)(1,6)(1,2)(6,3)(3,4)(4,6)(4,5)(0,1)

ارزش یا وزن یال282524221816141210

rejectSaferejectsaferejectSafeSafesafesafeSafe/reject

V0

V2

V1

V3

V5

V4

V6

25

22

18

12

24

16

14

28

10

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 36: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

کراسکالمثال الگوریتم آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 37: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

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

.شودمیآغازYرئو ازایمجموعهزیرو،Fیالهایازتهیایمجموعهزیرباالگوریتماین(1

.کنیممیاضافهدلخواهبهرارأسهاازیکیYمجموعهبه(2

ورئو مجموعهبهراموجودرئو مجموعهبهرأ نزدیکترینموجود،یالهایبهتوجهبا(3

.کنیممیاضافهیالهامجموعهبهرامربوطهیال

.پذیردمیپایانرئو تمامانتخابازبعدالگوریتماین(4

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 38: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

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

V0

V2

V1

V3

V5

V4

V6

25

22

18

12

2416

14

28

10

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 39: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

الگوریتم پریمآموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 40: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

کوتاهترین مسیر تک منبع

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

مسئلهاینبرایمناسبیحلراهدایکستراالگوریتموشودمیبردهبکارجهتدارگرافهایدرمسئلهاین

مسیر،ینترکوتاهیافتنبرایوباشدمیپریمالگوریتممشابهبسیارالگوریتماین.دهدمیارائه

کهنیستالزامیوکرداستفادهجدیدگرهبهمنتهیمسیرهایوشدهانتخابهایگرهازتوانمی

.باشدیالیکشاملفقطمسیر

ازتوانمیاشدبمنفییالیوزناگر.باشدمثبتبایدیالهامقادیرتمامیدایکستراالگوریتمدرالبته

.کرداستفادهفوردبلمنالگوریتم

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 41: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

1v

:دایکستراالگوریتمدرکارانجاممراحل

تهیمقداربایالهامجموعهبعنوانFدهیمقدار-1

قرارمجموعهایندرشروعبرایرأ کهکارشروعبرایYمجموعهدردلخواهرأ مقداردهی-2

.گیردمی

زیرروندتکرارگرافدرموجودرئو تمامباYرئو مجموعهشدنبرابریعنیمسئلهحلزمانتا-3

:یابدمیادامه

دمیتوانمسیرایندرو.داردبهرامسیرکوتاهترینکهV-Yمجموعهدررأسییکانتخاب-3-1

.شوداستفادهمیانیرئو بعنوانYدرموجودرئو از

Fمجموعهبهشدهیافتکوتاهمسیرکردناضافه-3-2

Yمجموعهبهشدهیافتمسیرکوتاهترینانتهایرأ کردناضافه-3-3

الگوریتم دایکسترا

1v

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 42: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

مثال الگوریتم دایکسترا

1V

5V2V

4V 3V

1

1

64

7

5

32

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org

Page 43: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم

43

این اسالید ها بر مبنای نکات مطرح شده در فرادرس

« آموزش طراحی الگوریتم».تهیه شده است

.ماییدبرای کسب اطالعات بیشتر در مورد این آموزش به لینک زیر مراجعه ن

faradars.org/fvsft109

آموزش طراحی الگوریتم

faradars.org/fvsft109

فرادرس

FaraDars.org