TOPOLOGIK SARALASH. ALGORITMNING MURAKKABLIGINI BAHOLASH 2
“TOPOLOGIK SARALASH. ALGORITMNING MURAKKABLIGINI BAHOLASH” Mundarija Kirish I. NAZARIY QISM 1.1. Topologik tartiblash haqida umumiy nazariya…………...………………..... 1.2. Topologik saralashni topish algoritmlari………………...………………….. 1.3. Topologik saralash uchun chuqur birinchi qidiruv 1.4. Kodni amalga oshirish - Topologik tartiblash uchun Kan algoritmi.............. 1.5. Vaqt murakkabligi tahlili ………...…………………..................................... II. AMALIY QISM 2.1. Topologik tartiblash algoritmining qo'llanilishi.………............................... 2.2. Topologik tartib asosidagi amaliy masala…………………………......…...23 Xulosa Adabiyotlar ro’yhati:
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
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. 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. 3
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: 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. 4
Sizningcha, ushbu yo'naltirilgan grafik uchun topologik tartib qanday ko'rinadi? Xo'sh, ko'ramiz. Dastlab, bizning qaytariladigan massiv/vektor yoki tartiblangan massiv/vektor (tartiblangan tartibda grafik tugunlarini o'z ichiga olgan massiv) bo'sh [ ] . Saralangan natijaning boshiga 4 qo'shsak bo'ladimi? Yo'q! Algoritm shuni ko'rsatadiki, agar joriy tugunga ishora qiluvchi tugunlar mavjud bo'lsa, ular birinchi navbatda qo'shilishi kerak. Shunday qilib, tartiblangan natijaga 4 ni qo'shmoqchi bo'lsak, 4 ga ishora qiluvchi tugun(lar) ni tekshirishimiz kerak . Ko'rib turibmizki, tartiblangan natijaga 2 ta tugun qo'shilishi mumkin - 2, 3. Kutib turing, ularga ham ishora qiluvchi tugun bor! Shunday qilib, hammasi 1 qiymatiga ega bo'lgan tugundan boshlanadi! 2 yoki 3 ni qo'shishdan oldin biz 1 ni qo'shishimiz kerak, chunki ikkala tugunning (2, 3) boshqa tugunlari ularga qaratilgan, ya'ni 1 dan oldin tartiblangan natijaga 2 yoki 3 ni qo'shib bo'lmaydi . Shunday qilib, saralangan natijamizga qo'shiladigan birinchi element (massiv / vektor / ro'yxat) aniq 1 bo'ladi, chunki unga ishora qiluvchi boshqa tugunlar yo'q. Bizning tartiblangan natijamiz endi shunday ko'rinadi [1] Keyin qaysi tugunlarni qo'shamiz? '1' tugun ikkita tugunni ko'rsatadi - 2, 3. Qaysi birini qo'shish mumkin bo'lsa, birinchi bo'lib qo'shilishi kerak? Topologik turlanishning o'ziga xosligi Bu topologik tartib haqida . Ko'pgina tartiblash algoritmlarida siz elementlarni saralashning faqat bitta usuli borligini ko'rgan bo'lishingiz kerak. Ikkita yo'l yo'q yoki hech qanday variant mavjud emas. Biroq, topologik tartiblashda ma'lum bir grafikni bir necha usulda saralash mumkin. Yuqoridagi misolda biz ko'rganimizdek , tartiblangan massivga 1 qo'shgandan so'ng , bizda 2 yoki 3 ni qo'shish imkoniyati mavjud . Ammo shuni ta'kidlash kerakki, 2 yoki 3 ning har biri boshqa ustuvorlikka ega emasligi sababli, bu qiymatlarning ikkalasi ham boshqa tugunga o'tishdan oldin tartiblangan massivga kiritilishi kerak. Ikkala element ham 2 va 3 bir xil ustuvorlikka ega. 5