TOPOLOGIK SARALASH ALGORITMNING MURAKKABLIGINI BAHOLASH
“TOPOLOGIK SARALASH ALGORITMNING MURAKKABLIGINI BAHOLASH” Mundarija Umumiy koʻrinish ........................................................................................................................................ 3 Qo'llash doirasi ............................................................................................................................................ 3 Olib ketishlar ................................................................................................................ 3 Topologik tartiblarga kirish .......................................................................................................................... 3 Topologik tartiblash nima ? ......................................................................................................................... 5 Topologik turlanishning o'ziga xosligi ..................................................................................................... 7 Kan algoritmi ............................................................................................................................................. 10 Topologik saralash uchun chuqur birinchi qidiruv ..................................................................................... 14 Kodni amalga oshirish - Topologik tartiblash uchun Kan algoritmi ............................................................ 15 C++ ........................................................................................................................................................ 16 Java ....................................................................................................................................................... 21 Vaqt va algoritm murakkabligi tahlili ......................................................................................................... 22 Topologik tartiblash algoritmining qo'llanilishi .......................................................................................... 26 1. Grafikdagi siklni topish ...................................................................................................................... 26 Topologik tartib asosidagi amaliy masala .................................................................................................. 28 Xulosa: ........................................................................................................................ 36 Ushbu mustaqil ishni bajarish davomida algoritmlarni samaradorligini va murakkabligini baholash to’g’risida ko’plab ma’lumotlarga ega bo’lindi. Turli masalalar orqali alagoritmlarni samaradorligi va murakkabligi ko’rildi va solishtirildi. .......................................................................................................... 36 Adabiyotlar ro’yhati: ................................................................................................ 37
KIRISH M а vzuning d о lz а rbligi. T а ‘lim tizimid а gi isl о h а tl а rni а m а ld а j о riy qilishd а bugungi kund а t а ‘lim j а r а y о nining а s о siy t а shkiliy qismi b о ‘lg а n, а m а liy m а shg‘ul о tl а rni s а m а r а d о rligini о shirish, о ‘qitishni ilg‘ о r p е d о g о gik t ех n о l о giy а l а rini q о ‘ll а sh а s о sid а о ‘quv с hil а r v а t а l а b а l а rg а j а h о n а nd о z а l а rd а gi bilim, k о ‘nikm а , m а l а k а l а rni sh а kll а ntirish о ‘quv j а r а y о nini m о ddiy – t ех nik а v а ах b о r о t b а z а si bil а n t а ‘minl а sh yuq о ri d а r а j а li m а l а k а li k а drl а rni t а yy о rl а sh sif а tli о ‘quv – uslubiy, ilmiy h а md а did а ktik m а t е ri а ll а r y а r а tish, t а ‘lim tizimi f а n v а ishl а b с hiq а rish о ‘rt а sid а о ‘z а r о s а m а r а li а l о q а d о rlik о ‘rn а tish d о lz а rb m а s а l а l а rd а n his о bl а n а di. F а n v а t ех nik а j а d а l sur а td а riv о jl а n а y о tg а n h о zirgi p а ytd а y а ngi t ех n о l о giy а d а n f о yd а l а nib d а rs о ‘tishni h а y о t t а q а z о qilm о qd а . Shu nuqt а i n а z а rd а n h о zirgi kund а t а yy о rl а n а y о tg а n е l е ktr о n k о ‘rg а zm а l а r v а d а rslikl а r о ‘quv с hil а rg а m а vzuni tushun а rli b о ‘lishig а y о rd а m b е rm о qd а . H о zirgi kund а t а ‘lim j а r а y о nid а k о mpyut е rning gr а fik imk о niy а tl а rid а n f о yd а l а nishg а b о ‘lg а n qiziqish v а bung а b о ‘lg а n t а l а bning о rt а b о rishi kuz а tilm о qd а . Ushbu kurs ishid а ― Topologik saralash. Algoritmning murakkabligini baholash b о ‘yi с h а multim е di а li е l е ktr о n r е sursl а r y а r а tish, ul а rni t а shkil е tuv с hil а ri, ul а rg а q о ‘yil а dig а n t а l а bl а r, е l е ktr о n r е sursl а r y а r а tish t ех n о l о giy а l а ri uslubl а ri h а qid а fikrl а r yuritil а di. Kurs ishi kirish, 4 b о b, х ul о s а , f о yd а l а nilg а n а d а biy о tl а r r о ‘y ха ti v а il о v а d а n ib о r а t. 2
I. Topologik tartiblash haqida umumiy nazariya Umumiy ko rinishʻ Topologik saralash yoki Kan algoritmi yo‘naltirilgan asil grafikni shunday tartibga soladigan algoritm bo‘lib, har bir tugun o‘zi ko‘rsatgan barcha tugunlardan oldin qaytarilgan tartibda paydo bo‘ladi, ya’ni agar bizda a --> b bo‘lsa, a b dan oldin paydo bo‘lishi kerak. Topologik tartib Uning asosiy qo'llanilishi yo'naltirilgan grafiklardagi sikllarni aniqlashdir, chunki tsiklni o'z ichiga olgan grafik uchun topologik tartib mumkin emas. Uning qo'llanilishidan ba'zilari: OTda blokirovkani aniqlash, Kurs jadvali muammosi va boshqalar. Qo'llash doirasi Ushbu maqola Topologik saralashning ishlashi haqida gapiradi . Topologik saralash zarurati . Topologik saralashning turli operatsiyalari . Topologik saralashni amalga oshirish . Topologik saralashning murakkabligi . Olib ketishlar Topologik saralashning murakkabligi Vaqt murakkabligi - O(N + M) O ( N + M ) Bu erda N - tugunlar soni va M - qirralarning soni Topologik tartiblarga kirish Bugun, topologik tartib haqida gapirishdan oldin , keling, tort haqida gapiraylik. Ha, tort. Bugun biz shokoladli tort pishiramiz. 3
Xo'sh, pirojnoe pishirish uchun qanday qadamlarni bajarasiz? 1. Sizda un, pishirish kukuni, pishirish soda, yogurt, yog 'va boshqalar kabi ma'lum ingredientlar mavjud. Bularning barchasini pishirishga qo'yishdan oldin, bu ingredientlarning barchasini yaxshilab aralashtirish kerakligini bilishingizga aminman. 2. Biroq, xamirni (aralashtirilgan ingredientlarni) panga qo'yishdan oldin, avval panani moylash va un bilan to'ldirish kerak. 3. Xamirni quyganingizdan so'ng, uni pishirishingiz kerakligini bilasiz. Ammo keyin yana, tortni pishirishdan oldin, siz pechni oldindan qizdirishingiz kerak. 4. Kekni muzlash uchun u salqin bo'lishi kerak. Lekin uni sovutish uchun avval pishirish kerak. 5. Kekni muzlashdan oldin uni sovutish kerak. Nega bu pirojnoe pishirish haqida? Biz topologik tartibni o'rganmadikmi ? Kutib turing, biz bunga erishmoqdamiz. Yuqorida aytib o'tilgan ushbu to'liq protsedurani grafik sifatida ko'rsatish mumkin. Aniqrog'i, yo'naltirilgan grafik. Nega? Keyingi harakatga o'tishdan oldin ma'lum bir harakatni bajarishimiz kerakligini aytib o'tdik. Asosan, bizda amal qilish kerak bo'lgan tartib bor, shuning uchun agar grafik yo'naltirilgan bo'lsa, albatta mantiqiy bo'ladi, har bir tugunning mazmuni ma'lum bir harakatdir. Grafik qanday ko'rinishi mumkin: 4
Yuqoridagi grafikda ko'rib turganingizdek, avval siz ingredientlarni aralashtirishingiz kerak va, albatta, shundan keyingina xamirni panga qo'shishingiz mumkin. Kekni pishirishdan oldin, panani moylash kerak va hokazo. Bu erda qanday kuzatish mumkin? Grafikni tugunlarning ustuvorligi bo'yicha tartiblash mumkin va topologik tartib aynan shunday! Biz topologik tartibni o'rganish uchun asos yaratdik va endi uni rasmiy ravishda aniqlashimiz mumkin. Topologik tartiblash nima ? Aslida, topologik tartiblash - massiv yoki vektorni yoki ro'yxatni qaytarish orqali yo'naltirilgan grafikni saralaydigan algoritm bo'lib, u har bir tugun o'zi ko'rsatgan barcha tugunlardan oldin paydo bo'ladigan tugunlardan iborat . Bu erda biz uni oddiygina massiv deb ataymiz, siz vektor yoki ro'yxatni ham ishlatishingiz mumkin. Aytaylik, bizda grafik bor edi, a --> b --> c keyin topologik tartiblash algoritmi qaytadi - [a, b, c] . Nega? Chunki, a b ga ishora qiladi , ya'ni a turda b dan oldin kelishi kerak. b c ga ishora qiladi , ya'ni b turda c dan oldin kelishi kerak . Keling, nisbatan murakkabroq misolni ko'rib chiqaylik. 5