آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش...
Transcript of آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش...
![Page 1: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/1.jpg)
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 2: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/2.jpg)
روش حریصانه
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 3: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/3.jpg)
دریافتراهادادهترتیببهکهکنندمیکارصورتبدینهایشانالگوریتم،قدمبهقدمدستاوردروشیاآزمندحریصانه،روشهای
درکهییهاانتخابواشقبلیهایانتخاببهتوجهبدونرارسدمینظربهبهترینشانمعینمعیارطبقکهعنصریبارهروکرده
ارتعببهیاجوابازبخشیبایدالگوریتماجرایمراحلازمرحلههردرحریصانهروشدر.کنندمیانتخابشد،خواهدانجامآینده
ازایرشتهازبعدتوانمیونداردوجودشرطاینلزوماًدیگرروشهایدر.آوریمبدستراجوابهایمولفهازایمولفهتردرست
.آوردبدستراجوابانتهادروالگوریتمازمراحلیاجرایوعملیات
روش حریصانهآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 4: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/4.jpg)
.دارندکاربردسازیبهینهمسائلبرایمعموالًوهستندسادهبسیارهاالگوریتماین
خابانتبارهربا.کردانتخابرااعضاءمرحلهبهمرحلهمجموعه،آنازبایدودارندوجودانتخابجهتایمجموعههاالگوریتمایندر
:کهشودمیبررسی
.(feasible)؟خیریاداردنهاییپاسخبهرسیدنامکانشده،انتخابعضوآیا-الف
(solution)؟خیریارسیدهنهاییپاسخبهآیاکهشودمیبررسیانتخابهربا-ب
روش حریصانهآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 5: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/5.jpg)
:خصوصیات کلی الگوریتم آزمند عبارتند از
. ه باشدها است که ممکن است ترتیب آنها نیز اهمیت داشتای از دادهنتیجه نهایی یک الگوریتم آزمند مجموعه( الف
.های ورودی استدادهها در بیشتر مواقع زیر مجموعهاین مجموعه داده
.آیدای و در هر مرحله یک مولفه از جواب بدست میمجموعه جواب به صورت مرحله( ب
.جواب نهایی باید تابع هدف یک عبارت را بهینه نماید( پ
ای از جواب قطعی و های ورودی به عنوان مولفهتصمیم اتخاذ شده در مورد انتخاب یا عدم انتخاب یکی از داده( ت
.غیرقابل بازگشت است
روش حریصانهآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 6: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/6.jpg)
:باشدیک الگوریتم آزمند دارای اجزا زیر می
.های جوابای از انتخابهای ممکن برای مولفهمجموعه( الف
.های انتخاب شده تا به حال به عنوان بخشی از جواب یا جواب کاملمجموعه مولفه( ب
.تابعی برای انتخاب مولفه بعدی جواب از مجموعه انتخابهای ممکن( پ
.ا خیرتابعی برای تعیین این که با انتخاب جاری و مجموعه انتخابهای قبلی امکان رسیدن به جواب وجود دارد ی( ت
.هدف بهینه کردن این تابع است. دهی به جوابیک تابع هدف برای ارزش( ث
.یک تابع برای بررسی اینکه مشخص کند در نهایت جواب حاصل شده است یا خیر( ج
روش حریصانهآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 7: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/7.jpg)
S
!&&)(! CSsolution
:شمای کلی الگوریتم های حریصانه بصورت زیر می باشد
.شودکه شامل انتخاب های ممکن است ایجاد میCمجموعه ای برای نمونه بنام مجموعه -1
.شود که در ابتدا تهی استکه شامل پاسخ مسئله است ایجاد میSای بنام مجموعه-2
و در صورت نرسیدن بهه ( Solutionشرط )شرطی که نشان دهنده این که مسئله حل شد یا خیر تعریف می شود -3
شرط . )شودتکرار می6تا 4پاسخ نهایی مراحل
عضوی برای انتخهاب وجهود ( Cمجموعه )یعنی تا زمانی که مسئله حل نشده است و همچنین در مجموعه انتخاب ها
(دارد
روش حریصانهآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 8: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/8.jpg)
ا خیهر؟ شود که آیا عضو انتخاب شده همراه با انتخاب های قبلی امکان رسیدن به پاسخ نههایی را دارد یهبررسی می-6
این پاسخ به مجموعه پاسخ ها اضافه می شود( feasible)پذیر بودن درصورت امکان
.شودتکرار می3و در غیر اینصورت دوباره از مرحله
.شودبرگشت داده می شود و در غیر اینصورت تهی برگشت داده میSاگر پاسخ حاصل شد -7
حذف می شودCعضو انتخاب شده از مجموعه انتخاب ها یعنی مجموعه -5
xSS
.شودبه عنوان بخشی از پاسخ انتخاب میCیک عضو از مجموعه -4
}{XCC
روش حریصانهآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 9: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/9.jpg)
}
;
;
))((
}
};{
})){((
};{
);(
{
)!&&)((!
;
{
)(
return
else
sreturn
ssolutionif
xSS
xSfeasibleif
xcc
cselectx
cSsolutionwhile
S
csetgreedySet
روش حریصانهآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 10: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/10.jpg)
خرد کردن سکه
مسئله کوله پشتی
هابندی بهینه اجرای برنامهزمان
مسئله کد هافمن
درخت پوشای مینیمم
کوتاهترین مسیر تک منبع
الگوریتم های روش حریصانه یا آزمندآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 11: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/11.jpg)
پولخرد کردن
ا اسهکنا کردن سکه یخرد ماشینهای برای پرداخت بقیه پول یا در این الگوریتم هدف این است که الگوریتمی
کمتهر ارزشهای ها و اسکنا ای طراحی شود که با ورود یک سکه یا اسکنا به ماشین، آن را به سکهبه گونه
.تبدیل کند و از نظر تعداد بهینه باشد
تر از سکه کنیم و چنانچه ارزش آن بیشترین سکه یا اسکنا شروع میبرای طراحی الگوریتم مربوطه از با ارزش
ثر ممکهن از رویم وگرنه به تعداد حداکترین سکه بعدی مییا اسکناسی که قرار است خرد کنیم باشد به با ارزش
وجه کهرد باید ت. کنیمهای بعدی نیز تکرار میها یا اسکنا ترین سکهاین کار را در مورد با ارزش. داریمآن برمی
.ها صفر باشدها یا سکهکه ممکن است موجودی برخی اسکانس
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 12: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/12.jpg)
پولخرد کردن
در مسئله حل خرد کردن سکه با روش حریصانه
مجموع سکه ای برای انتخاب وجود داشته باشد و مسئله این است که تا زمانی که این SOLUTIONشرط -الف
.ادامه یابدبرابر مبلغ نهایی نشده انتخاب ها
غ کل از مبلمسئله این است که مجموع این انتخاب با انتخاب های قبلی برابر یا کمتر این FEASIBLEشرط -ب
.که در این صورت این انتخاب به مجموعه انتخاب های پاسخ اضافه می شودباشد
ه هایی که روش آزمند برای آنها راه حهل بهینهمجموعه سکه. کندها راه حل بهینه ارائه نمیآزمند برای همه سکهروش
.شوندنامیده می( Nice)های جور کند، مجموعه سکهارائه می
𝑜مرتبه زمانی این الگوریتم 𝑛های خودپرداز نیز بکار بردتوان آن را برای دستگاهاست و می.
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 13: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/13.jpg)
هابندی بهینه اجرای برنامهزمان
عاملسیستمدرپردازشهابندیزمانهایالگوریتم
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: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/14.jpg)
nwwww ,....,,, 321
npppp ,....,,, 321
هایتا شیء با جرمn. است در نظر بگیریدM( جرم آن)یک کوله پشتی که حداکثر ظرفیت آن
و ارزشهای
مسئله کوله پشتی
ا حهداکثر مفروض هستند، هدف پر کردن کوله پشتی با این اشیاء است بطوری که باالترین ارزش ی
.توان کسری از یک شیء را نیز انتخاب کردسود حاصل شود و در ضمن آنکه می
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 15: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/15.jpg)
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: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/16.jpg)
هستند،مفروضشدهدادهآنهاارزشوجرمکهشیءسهوM=20ظرفیتباپشتیکوله:مثال
.باشدماکزیممآمدهبدستارزشکهبطوریپشتیکولهکردنپرهدف
(10 ،15 ،18( = )𝑤1 ,𝑤2 ,𝑤3)
(15 ،24 ،25( = )𝑝1 ,𝑝2 ,𝑝3)
مسئله کوله پشتیآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 17: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/17.jpg)
هاترینارزشباانتخاب:اولروش:پاسخ
عنوانهبکهکنیمانتخابارزشبیشترینبترتیبرااشیاءاستبهترپساستمهماشیاءارزشچون
𝑀−𝑤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: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/18.jpg)
1010203 wM
1510
),,(),,( 115100321 xxx
31151241510250
1
n
i
iixp
هاانتخاب کمترین وزن:روش دوم
ه به عنوان چون وزن اشیاء تاثیر منفی دارد، پس بهتر است اشیاء را بترتیب از کمترین وزن انتخاب کنیم ک
صورت ظرفیت باقیمانده کوله برابر کنیم که در اینرا کامل انتخاب می3مثال شیء
کسر ( 2شیء )خواهد بود بنابرین از شیء بعدی یعنی شیء با کمترین وزن بعدی
کنیم، بنابرین را انتخاب می
:و ارزش کل اشیاء انتخاب شده در کوله برابر است با
مسئله کوله پشتیآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 19: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/19.jpg)
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: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/20.jpg)
}
;][
][
)(
}
];[
;][
;
)][(
{
);;(
;
;][
);;(
);,,(
;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: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/21.jpg)
مسئله کد هافمن
𝑙𝑜𝑔2کنیم،ایجادباینریکدهایکاراکتر،nشاملمتنیبرایبخواهیماگر𝑛نیازکاراکترهرازایبهبیت
هربرایبیت5بهنیازاستحرف26شاملکهانگلیسیالفبایحروفگذاریکدبرایمثالبرای)است
وa=00000مثالً.بودخواهدیکسانبیتطولدارایکاراکترهرحالتایندرکهاستکاراکتر
b=00001)
دادهنسبتتمتفاوطولبابیتیرشتهکاراکترهربهکهمعنیبدیناست،متغیرطولباکدیکهافمنکد
دیگرکاراکتروندپیشنبایدکاراکتریهیچیعنیباشد،آزادپیشوندخاصیتدارایبایدتخصیصاین.شودمی
(.استنادرستb=001وa=00مثالبرای)باشد
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 22: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/22.jpg)
هافمن با . ستانگیزه اصلی کد هافمن استفاده از تعداد بیت کمتر برای نمایش رشته بیت از حروف الفبا ا
ار کاراکترها کند و همچنین بر اسا تعداد تکراستفاده از درخت دودوئی کد پیشوند آزاد بهینه تولید می
.به آنها بیت نسبت می دهد
.شودکوچکتری نسبت داده میکه فراوانی آنها زیاد است رشته بیتی در این روش به کاراکترهایی
:گام در تولید کد هافمن عبارتند ازدو
.گرددها که بر اسا صف اولویت تشکیل میتشکیل درخت دودوئی برای نویسهگام اول
هاکدگذاری نویسهدوم گام
مسئله کد هافمنآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 23: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/23.jpg)
,aحروفشاملمتنیکنیدفرض:مثال b, c, d, e, fآمدهزیرجدولدرحروفاینفراوانیوباشدمی
.استحروفاینبرایبهینهکدایجادهدفاست،
Fedcbaکاراکتر
فراوانی1440871030
کد هافمنمثال
.گیرندابتدا تمام نویسه ها بر اسا فراوانی آنها بصورت صعودی در صف اولویت قرار می
d:8 a:30f:14b:10 e:40c:7
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 24: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/24.jpg)
کد هافمنمثال
مجموع ها را از ابتدای صف اولویت انتخاب کرده و با آنها یک درخت دودوئی ساخته وابتدا کوچکترین
ده در های باقیمانو درخت دودوئی بدست آمده در صف اولویت نویسه. فراوانی آنها ریشه درخت می شود
.جای خود قرار می گیرد تا همواره صف اولویت بصورت صعودی مرتب باشد
a:30f:14b:10 e:40
d:8c:7
15
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 25: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/25.jpg)
کد هافمنمثال
نتخاب عملیات دوباره تکرار می شود از ابتدای صف اولویت کوچکترین فراوانی های موجود در صف اهمین
خت و در. شودشده و با هم یک درخت دودوئی که ریشه درخت برابر مجموع فراوانی آنها است نوشته می
.گیرد که همچنان صعودی بودن صف اولویت رعایت شودحاصل در صف اولویت در جایگاهی قرار می
a:30 e:40
d:8c:7
15
f:14b:10
24
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 26: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/26.jpg)
کد هافمنمثال
a:30 e:40
d:8c:7
15
f:14b:10
24
39
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 27: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/27.jpg)
کد هافمنمثال
a:30
e:40
d:8c:7
15
f:14b:10
24
39
69
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 28: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/28.jpg)
کد هافمنمثال
a:30
e:40
d:8c:7
15
f:14b:10
24
39
69
109
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 29: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/29.jpg)
کد هافمنمثال
سمتیالهایرویگذاری،کددومگامدرکاراکترهادودوئیدرختشدنکاملواولگاماتمامازبعد
رکاراکتهرکدبعدشکلمطابقترتیببدینوشودمینوشته1راستسمتیالهایرویو0چپ
.آیدمیبدست
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 30: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/30.jpg)
کد هافمنمثال
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: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/31.jpg)
درخت پوشای مینیمم
بههرشهرازبتوانندمردمبطوریکهکندوصلبهمجادهبارامعینشهرچندخواهدمیشهریطراحکنیدفرض
ارمقدحداقلباراکاراینبخواهدطراحاستممکنباشد،کاردرایبودجههایمحدودیتاگربروند،دیگرشهر
.کندمیحلرامشابهمسائلومسئلهاینکهشودمیارائهالگوریتمیبخشایندر.دهدانجامکشیجاده
یک،بودهGگرافدرموجودرئو همهحاویکهاستمتصلگرافزیریک:گرافیکبرایپوشادرختتعریف
.نامندمیپوشادرخترا(دوربدونومتصل،جهتبدون)باشددرخت
گرافیزیرتشکیلوGمتصلوموزونجهت،بدونگرافیکازهایییالحذفمسئله:کمینهپوشایدرختتعریف
.دنامنمیکمینهپوشایدرختراباشدکمینهآنیالهایوزنجمعحاصلوبماندباقیمتصلآندررئو که
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 32: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/32.jpg)
:باشدیرزشرایطدارایبایدکه.شودمیاستفادههزینهکمترینمالکازکمینهپوشاهایدرختایجادبرای
.شوداستفادهگرافداخلهایلبهازفقطباید1.
.شوداستفادهلبهn-1ازدقیقاًباید2.
.شوداستفادهکنند،میحلقهیکایجادکههاییلبهازنباید3.
درخت پوشای مینیمم
بدترائینمحالتازحالتبدتریندرگراف،یکپوشایهایدرختکلبینازکمینهپوشایدرختیافتن
.شوندمیحلتریبهینهطوربهمشابهمسائلومسئلهاینحریصانه،هایروشبا.است
:داردوجودکمینهپوشایدرختیافتنبرایحریصانهالگوریتمدو
کراسکالالگوریتم-1
پریمالگوریتم-2
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 33: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/33.jpg)
الگوریتم کراسکال
(را n).کنیممیایجادرارئو ازمستقلیمجموعهزیر-1
.شوندمیمرتبوزنشانصعودیترتیببهیالها-2
.نشودجادایسیکلانتخاباینباکهشرطیبهشودمیانجاموزنترتیببهیالهاتکتکانتخاب-3
یالآنانتخابازاینصورتغیردروشودمیانتخابیالآن(باشدsafe)نشودتشکیلسیکلاگر
.شودمی(reject)صرفنظر
.یابدمیخاتمهالگوریتمیال،n-1انتخاببا-4
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 34: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/34.jpg)
کراسکالمثال الگوریتم
V0
V2
V1
V3
V5
V4
V6
25
22
18
12
2416
14
28
10
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 35: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/35.jpg)
کراسکالمثال الگوریتم
یال(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: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/36.jpg)
کراسکالمثال الگوریتم آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 37: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/37.jpg)
الگوریتم پریم
.شودمیآغازYرئو ازایمجموعهزیرو،Fیالهایازتهیایمجموعهزیرباالگوریتماین(1
.کنیممیاضافهدلخواهبهرارأسهاازیکیYمجموعهبه(2
ورئو مجموعهبهراموجودرئو مجموعهبهرأ نزدیکترینموجود،یالهایبهتوجهبا(3
.کنیممیاضافهیالهامجموعهبهرامربوطهیال
.پذیردمیپایانرئو تمامانتخابازبعدالگوریتماین(4
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 38: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/38.jpg)
الگوریتم پریم
V0
V2
V1
V3
V5
V4
V6
25
22
18
12
2416
14
28
10
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 39: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/39.jpg)
الگوریتم پریمآموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 40: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/40.jpg)
کوتاهترین مسیر تک منبع
.در این الگوریتم هدف یافتن کوتاه ترین مسیر از یک گره مشخص با تمامی گره ها می باشد
مسئلهاینبرایمناسبیحلراهدایکستراالگوریتموشودمیبردهبکارجهتدارگرافهایدرمسئلهاین
مسیر،ینترکوتاهیافتنبرایوباشدمیپریمالگوریتممشابهبسیارالگوریتماین.دهدمیارائه
کهنیستالزامیوکرداستفادهجدیدگرهبهمنتهیمسیرهایوشدهانتخابهایگرهازتوانمی
.باشدیالیکشاملفقطمسیر
ازتوانمیاشدبمنفییالیوزناگر.باشدمثبتبایدیالهامقادیرتمامیدایکستراالگوریتمدرالبته
.کرداستفادهفوردبلمنالگوریتم
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 41: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/41.jpg)
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: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/42.jpg)
مثال الگوریتم دایکسترا
1V
5V2V
4V 3V
1
1
64
7
5
32
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org
![Page 43: آموزش طراحی الگوریتم به همراه حل مثال های عملی - بخش چهارم](https://reader037.fdocuments.net/reader037/viewer/2022102821/5880e2601a28ab0d358b50fb/html5/thumbnails/43.jpg)
43
این اسالید ها بر مبنای نکات مطرح شده در فرادرس
« آموزش طراحی الگوریتم».تهیه شده است
.ماییدبرای کسب اطالعات بیشتر در مورد این آموزش به لینک زیر مراجعه ن
faradars.org/fvsft109
آموزش طراحی الگوریتم
faradars.org/fvsft109
فرادرس
FaraDars.org