Algoritmlarni loyihalash mustaqil ishi


Download 66.3 Kb.
Sana01.06.2020
Hajmi66.3 Kb.
#113010
Bog'liq
Algaritmdan Mustaqilis


Muhammad Al-Xorazmiy nomidagi Toshkent axborot texnologiyalari universiteti

Fan nomi:Algoritmlarni loyihalash

MUSTAQIL ISHI

Variant 29

Mavzu: ”Hasis” algoritmlar

Guruh:CAL008

Bajardi:Mengliyev Soatmurod

Toshkent -2020

Hasis algoritmlar.

Reja:


1.”Hasis” algoritm tushunchasi.

2.”Hasis” algoritmda algorimlar to’g’riligi.

3.”Hasis” algoritm qo’llanishi.

4. Xulosa.



Hasis” algoritm tushunchasi.Bunday algoritm har bir qadamda oxirgi echim ham maqbul bo'lishiga umid qilib, mahalliy eng maqbul tanlovga aylantiradi. Bu har doim ham shunday emas - lekin ko'pgina vazifalar uchun bunday algoritmlar haqiqatan ham eng maqbulligini ta'minlaydi. Bizning birinchi misolimiz - bu oddiy, ammo unchalik ahamiyatsiz bo'lmagan dasturlarni tanlash. Keyingi, hasis algoritmlar qaysi vazifalarga mos kelishini muhokama qilamiz.Hasis algoritm sizga bir qator tanlovlarni amalga oshirish orqali muammoning maqbul echimini topishga imkon beradi. Algoritmdagi har bir qaror nuqtasida hozirgi paytda eng yaxshi ko'rinishga ega bo'lgan tanlov amalga oshiriladi. Ushbu evristik strategiya har doim ham eng maqbul echimni ta'minlamaydi, ammo baribir yechim eng maqbul bo'lishi mumkin. Hasis algoritmlarning rivojlanishi quyida keltirilgan bosqichlarning ketma-ketligi sifatida namoyish etilishi mumkin. 1. Optimallashtirish masalasini, tanlov amalga oshirilgandan so'ng, faqat bitta pastki bandni hal qilish uchun olib keling. 2. Aslida hasis tanlov orqali olinishi mumkin bo'lgan asl muammoning eng maqbul echimi borligini isbotlang, shunda bunday tanlov har doim haqiqiy bo'ladi.3. Hasis tanlovdan so'ng subproblemning eng maqbul echimini qilingan hasis tanlov bilan birlashtirgan va substrulning asl maqbul echimiga olib keladigan subproblema qolganligini ko'rsating. Yuqorida tavsiflangan jarayon keyingi vazifalarda qo'llaniladi. Eslatma. Har qanday hasis algoritmning markazida deyarli har doim dinamik dasturlash uslubidagi yanada murakkab echim bo'ladi. Savol hasis algoritm bizdan oldin optimizatsiya masalasini hal qila olishini qanday aniqlash mumkin? Bu erda umumiy yo'l yo'q, ammo ikkita asosiy komponentni ajratib ko'rsatish mumkin - hasis tanlov xususiyati va maqbul pastki tuzilma. Agar vazifa bu ikkita xususiyatga ega ekanligini namoyish etish mumkin bo'lsa, unda hasis algoritmni ishlab chiqish mumkin. Yuqorida tavsiflangan jarayon keyingi vazifalarda qo'llaniladi. Eslatma. Har qanday hasis algoritmning markazida deyarli har doim dinamik dasturlash uslubidagi yanada murakkab echim bo'ladi. Savol hasis algoritm bizdan oldin optimizatsiya masalasini hal qila olishini qanday aniqlash mumkin? Bu erda umumiy yo'l yo'q, ammo ikkita asosiy komponentni ajratib ko'rsatish mumkin - hasis tanlov xususiyati va maqbul pastki tuzilma. Agar vazifa bu ikkita xususiyatga ega ekanligini namoyish etish mumkin bo'lsa, unda hasis algoritmni ishlab chiqish mumkin

Hasis” algoritmda algorimlar to’g’riligi.

1. Greedy-Activity-Selector algoritmi mumkin bo'lgan eng ko'p sonli qo'shma dasturlarning to'plamini beradi.

Isbot. Ilovalar tugash vaqtini ko'paytirish orqali tartiblangan. Birinchidan, biz 1-ilovani o'z ichiga olgan dasturlarni tanlashning eng maqbul yechimi borligini isbotlaymiz (eng tugash vaqti bilan). Aslida, agar biron-bir maqbul dasturlar to'plamida 1-ilova bo'lmasa, u holda dasturni 1-sonli ilova bo'lmagan eng erta tugash vaqti bilan almashtirish mumkin, bu dasturlarning muvofiqligini buzmaydi (chunki 1-ilova avvalgisidan oldinroq tugaydi). va hech narsa bilan kesib o'tolmaydi) va ularning umumiy sonini o'zgartirmaydi. Shuning uchun, siz hasis tanlovdan boshlab, eng yaxshi echimni izlashingiz mumkin.

Biz faqat 1-ilovani o'z ichiga olgan to'plamlarni ko'rib chiqishga kelishib olganimizdan so'ng, unga mos bo'lmagan barcha dasturlarni tashlab yuborish mumkin va vazifa qolgan ilovalar to'plamidan eng maqbul ilovalarni tanlash vazifasini qisqartirishga imkon beradi (1-sonli ilova bilan qo'shiladi). Boshqacha qilib aytganda, biz muammoni kamroq dasturlar bilan o'xshash muammoga kamaytirdik. Induktsiya asosida mulohaza qilib, biz har qadamda hasis tanlov qilsak, eng maqbul echimga erishamiz.

Hasislik bilan tanlangan mulk tamoyili mahalliy optimallashtirilgan (hasis) tanlovlar ketma-ketligi global miqyosda eng maqbul echimni beradigan bo'lsa, optimallashtirish muammosiga nisbatan qo'llaniladi. Hasis va dinamik dasturlash o'rtasidagi farqni quyidagicha izohlash mumkin: har bir qadamda hasis algoritm "eng semiz parcha" ni oladi va keyin qolganlari orasidan eng yaxshisini tanlashga harakat qiladi; dinamik dasturlash algoritmi barcha variantlarning oqibatlarini oldindan hisoblash orqali qaror qabul qiladi.



.”Hasis” algoritm qo’llanishi. Ochko'z algoritm ushbu muammoni echishga imkon beradigan bo'lsa, qanday qilib bilasiz? Bu erda umumiy retseptlar mavjud emas, ammo hasis algoritmlar tomonidan hal qilingan muammolarga xos bo'lgan ikkita xususiyat mavjud. Bu hasis tanlov printsipi va pastki qismlarga maqbullik xususiyati. Hasis algoritmlar yordamida hal qilingan muammolar maqbul pastki tuzilish xususiyatiga ega: butun muammoning eng maqbul echimi pastki qismlarga maqbul echimlarni o'z ichiga oladi. (Biz bu xususiyat bilan tanishgan edik, dinamik dasturlash haqida gaplashamiz). Masalan, 1-teorema isbotida, agar A 1-sonli da'voni o'z ichiga olgan maqbul da'volar yig'indisi bo'lsa, A '= A {1} - bu da'volarning kichikroq to'plami S' uchun talablarning optimal to'plamidir, deb da'volarni o'z ichiga oladi.

O'zgaruvchan uzunlikdagi kod yoki notekis koddan foydalanib, sobit uzunlikdagi kodni ishlatishdan ancha yaxshi natijalarga erishish mumkin. Bunga tez-tez uchraydigan belgilar qisqa kodli so'zlar bilan, kamdan-kam uchraydigan belgilar uzoq belgilar bilan solishtirilganligi sababli erishiladi.

Bunday kod 1-jadvalning oxirgi qatorida keltirilgan. Unda a harfi 1 bitli satr bilan ifodalanadi, f harfi esa 4 bitli satr bilan ifodalanadi 1100. Ushbu koddan foydalanib faylni ko'rsatish uchun sizga kerak bo'ladi (45 • 1 + 13 • 3 + 12 • 3 + 16 • 3 + 9 • 4 + 5 • 4) • 1000 = 224000 bit. Bu qo'shimcha ravishda tovushning 25 foizini tejaydi.

Daraxt tushunchasini kiritamiz.

Optimal daraxt

Bizning vazifamiz barglari ramzlar bilan belgilangan va daraxtning narxini minimallashtiradigan, deb belgilangan aniq, binar daraxtni topishdir.



.


Daraxtdagi i-chi belgi chuqurligi). Biz daraxtning ichki uchining chastotasini o'g'illarining chastotalari yig'indisi sifatida aniqlaymiz. Ushbu ta'rif bilan daraxtning har bir uchining chastotasi shunchaki kodlash yoki dekodlash paytida ushbu uchga kirishlar soni ekanligini ko'rish mumkin. Daraxtning narxi, ildizdan tashqari, daraxtning barcha uchlari chastotalarining yig'indisiga teng bo'ladi. Ikkala noyob belgilar eng maqbul daraxtning eng pastki qismida osib qo'yilishi aniq. NUO, f1, f2 - bu minimal chastotalar. F1 va ... fn, aka-uka va opa-singillar bo'lgan f1, ... fn chastotalar uchun maqbul daraxtning qiymati yig'indiga (f1 + f2) va chastotalar uchun eng maqbul daraxt narxiga (f1 + f2), ... fn.

Dastur kodi mavjud:



Xulosa.Biz bu mavzuda Hasis algoritm tushunchasisni tushunib oldik.



Bunda Hasis algoritm bizga bir qator tanlovlarni amalga oshirish orqali muammoning maqbul yechimini topishga imkon beradi. Algoritmdagi har bir qaror nuqtasida hozirgi paytda eng yaxshi ko’rinishga ega bo’lgan tanlov amalga oshiriladi.Hasis algoritmning ikkita o'ziga xos xususiyati:

hasis printsip  - pastki kategoriyalar uchun maqbullik xususiyati. Subtasklar uchun maqbullik xususiyati dinamik dasturlash uchun ham amal qiladi. Ba'zi hollarda, hasis strategiya maqbuldan ham yomon bo'lmagan echimni topadi .
Download 66.3 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling