Eng qisqa yo'lni topish uchun BFSdan qanday foydalanaman?
Eng qisqa yo'lni topish uchun BFSdan qanday foydalanaman?

Video: Eng qisqa yo'lni topish uchun BFSdan qanday foydalanaman?

Video: Eng qisqa yo'lni topish uchun BFSdan qanday foydalanaman?
Video: Small Tranquil Leaves Blossom, Interlocking Crochet, Complete Step-by-Step Walk-Thru 2024, Noyabr
Anonim

Kimga toping the eng qisqa yo'l , qilishingiz kerak bo'lgan yagona narsa manbadan boshlash va a birinchi navbatda kenglik qidiring va qachon to'xtatsangiz toping maqsadingiz tugun. Siz qilishingiz kerak bo'lgan yagona qo'shimcha narsa - har bir tashrif buyurilgan tugun uchun oldingi tugunni saqlaydigan oldingi[n] qatoriga ega bo'lish. Manbaning oldingisi null bo'lishi mumkin.

Bundan tashqari, nima uchun BFS eng qisqa yo'lni topadi?

Biz shunday deymiz BFS - bu agar xohlasak, foydalanish uchun algoritm eng qisqa yo'lni toping yo'naltirilmagan, vaznsiz grafikda. uchun da'vo BFS birinchi marta tugunni kesib o'tishda, manbadan bu masofa bo'lardi bizga bering eng qisqa yo'l . Og'irlangan grafik uchun ham xuddi shunday deyish mumkin emas.

Shuningdek, bilingki, labirintdagi eng qisqa yo'l qayerda? Labirintda eng qisqa yo‘lni toping

  1. Yuqoriga ko‘tarilish: (x, y) –> (x – 1, y)
  2. Chapga buriling: (x, y) –> (x, y – 1)
  3. Pastga tushish: (x, y) –> (x + 1, y)
  4. O‘ngga buriling: (x, y) –> (x, y + 1)

Bundan tashqari, eng qisqa yo'lni topish uchun DFS dan foydalanishimiz mumkinmi?

Yo'q, siz mumkin emas eng qisqa yo'lni topish uchun DFS dan foydalaning vaznsiz grafikda. Unday emas, topish the eng qisqa yo'l Ikki tugun o'rtasidagi muammo faqat BFS tomonidan hal qilinadi. Og'irlanmagan grafikda eng qisqa yo'l manbadan maqsad tugunlarigacha o'tishi kerak bo'lgan eng kichik qirralarning soni.

BFSning ishlash vaqti qancha?

ning murakkabligi Kenglik Birinchi qidiruv Kenglik-birinchi qidiruv bor ish vaqti O (V + E) O(V + E) O(V+E) ning har bir cho'qqisi va har bir chekkasi bir marta tekshiriladi. Grafikga kiritilgan maʼlumotlarga qarab, O (E) O(E) O(E) O (1) O(1) O(1) va O (V 2) O(V^2) O(V2) oraligʻida boʻlishi mumkin.).

Tavsiya: