Mavzu: Tubiga qarab qidiruv (depth-first search, dfs) algoritmi Bjardi: Xurramov Bobur Tekshirdi: Tosheva Muhabbat Maxkamovna


Download 0.62 Mb.
Sana03.02.2023
Hajmi0.62 Mb.
#1154866

Mavzu:Tubiga qarab qidiruv (depth-first search, dfs) algoritmi Bjardi:Xurramov Bobur Tekshirdi:Tosheva Muhabbat Maxkamovna

Chuqurlik Birinchi qidiruv algoritmi | DFS misoli

  • Chuqurlik birinchi qidiruv -
  • Depth First Search yoki DFS - bu grafik o'tish algoritmidir.
  • U grafikni tizimli ravishda aylanib o'tish yoki qidirish uchun ishlatiladi.
  • DFS iloji boricha grafikda "chuqurroq" qidiradigan strategiyadan foydalanadi.
  • Chuqurlikdagi birinchi qidiruvni amalga oshirishda stack ma'lumotlar strukturasidan foydalaniladi.

DFS misoli

  • Quyidagi grafikni ko'rib chiqing –
  • Yuqoridagi grafikning chuqurlikdagi birinchi qidiruv o'tish tartibi -
  • A, B, E, F, C, D

Chuqurlikdagi birinchi qidiruv algoritmi

  • DFS (V, E)
  • V[G] dagi har bir u tepasi uchun
  • rang qilish[v] ← OQ
  • p[v] ← NIL
  • vaqt ← 0
  • V[G] dagi har bir v tepasi uchun
  • do if color[v] ← OQ
  • keyin Depth_First_Search(v)
  • Depth_First_Search (v)
  • rang[v] ← KUZI
  • vaqt ← vaqt + 1
  • d[v] ← vaqt
  • v ga ulashgan har bir cho'qqi uchun
  • do if color[u] ← OQ
  • p[u] ← v
  • Depth_First_Search(u)
  • rang[v] ← QORA
  • vaqt ← vaqt + 1
  • f[v] ← vaqt

Qadam-01

  • Grafikning har bir cho'qqisi uchun 4 ta o'zgaruvchini yarating va saqlang.
  • Grafikning har qanday 'v' cho'qqisi uchun bu 4 o'zgaruvchi:
  • 1. rang[v]-
  • Bu o'zgaruvchi berilgan vaqt nuqtasida "v" cho'qqisining rangini ifodalaydi.
  • Bu o'zgaruvchining mumkin bo'lgan qiymatlari - OQ, KULI va QORA.
  • Tepaning OQ rangi uning hali kashf etilmaganligini bildiradi.
  • Cho'qqining KUZ rangi uning aniqlanganligini va qayta ishlanayotganligini bildiradi.
  • Cho'qqining QORA rangi uning to'liq qayta ishlanganligini bildiradi.
  • 2. n[v]-
  •  Bu o'zgaruvchi "v" cho'qqisining oldingi qismini ifodalaydi.
  • 3. d[v]-
  • Bu oʻzgaruvchi “v” choʻqqisi topilganda vaqt tamgʻasini ifodalaydi.
  • 3. f[v]-
  • Bu o'zgaruvchi "v" cho'qqisini qayta ishlash tugallangan vaqt tamg'asini ifodalaydi.

Qadam-02

  • Grafikning har bir cho'qqisi uchun o'zgaruvchilarni ishga tushiring:
  • rang [v] = OQ
  • p [v] = NIL
  • vaqt = 0 (taymer vazifasini bajaradigan global o'zgaruvchi)

Qadam-03

  • Chuqurlik_birinchi_qidiruv (G,v)
  •  
  • 1. rang[v] = KUZI
  • 2. vaqt = vaqt + 1
  • 3. d[v] = vaqt
  • 4. "v" ning har bir qo'shni OQ cho'qqisi "u" uchun p[u] = v ni o'rnating va Depth_First_Search (G,u) ni chaqiring.
  • 5. rang[v] = QORA
  • 6. vaqt = vaqt + 1
  • 7. f[v] = vaqt
  • DFS vaqt murakkabligi -
  •  
  • Chuqurlikdagi birinchi qidiruvning umumiy ish vaqti th (V+E).
  •  
  • DFS-dagi qirralarning turlari -
  •  
  • Har qanday G grafigini DFS o'tkazgandan so'ng, uning barcha qirralari quyidagi 4 sinfdan biriga joylashtirilishi mumkin:
  • Daraxt chekkasi
  • Orqa chekka
  • Oldinga chekka
  • Cross Edge
  • 1. Daraxt cheti-
  • Daraxt qirrasi - bu DFS daraxtiga kiritilgan chekka.
  • 2. Orqa tomon -
  • "U" cho'qqisidan uning ajdodlaridan biri "v"gacha bo'lgan chekka orqa chekka deyiladi.
  • O'z-o'zidan pastadir orqa tomon sifatida qabul qilinadi.
  • 3. Oldinga tomon –
  • “u” cho‘qqisidan uning avlodlaridan biri “v”gacha bo‘lgan chekka oldinga tomon deyiladi.
  • Oldinga tomon qachon aniqlanadi -
  • DFS tashrifni "u" cho'qqisidan "v" cho'qqisiga kengaytirishga harakat qiladi
  • Va rang(v) = QORA va d(v) > d(u) ekanligini topadi.

Download 0.62 Mb.

Do'stlaringiz bilan baham:




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