Semua Yang Anda Perlu Tahu Mengenai Algoritma Carian Pertama



Dalam blog ini di Breadth-First Search Algorithm, kita akan membincangkan logik di sebalik kaedah melintasi graf dan memahami cara yang sama.

Kaedah Traversal Grafik selalu memikat saya. Dari melakukan komunikasi rakan sebaya yang berkesan hingga mencari restoran dan kafe terdekat menggunakan GPS, kaedah melintasi memiliki rangkaian aplikasi yang bervariasi dalam senario dunia nyata. Dalam blog ini di Breadth-First Search Algorithm, kita akan membincangkan logik di sebalik kaedah melintasi grafik dan menggunakan contoh untuk memahami cara kerja algoritma Breadth-First Search.

Untuk mendapatkan pengetahuan mendalam mengenai Kecerdasan Buatan dan Pembelajaran Mesin, anda boleh mendaftar secara langsung oleh Edureka dengan sokongan 24/7 dan akses seumur hidup.





Berikut adalah senarai topik yang akan menjadi diliputi dalam blog ini:

  1. Pengenalan Melintang Grafik
  2. Apakah Carian Breadth-First?
  3. Memahami algoritma Breadth-First Search dengan contoh
  4. Algoritma Carian Breadth-First Pseudocode
  5. Aplikasi Carian Breadth-First

Pengenalan Melintang Grafik

Proses lawatan dan penerokaan grafik untuk diproses disebut graf melintang. Untuk lebih spesifik, ini adalah mengenai melawat dan meneroka setiap bucu dan pinggir dalam grafik sehingga semua bucu dijelajahi tepat sekali.



Kedengarannya mudah! Tetapi ada tangkapan.

Terdapat beberapa teknik melintasi grafik seperti Breadth-First Search, Depth First Search dan sebagainya. Cabarannya adalah menggunakan grafik teknik melintang yang paling sesuai untuk menyelesaikan masalah tertentu. Ini membawa kita ke teknik Breadth-First Search.

Apakah Algoritma Carian Breadth-First?

Algoritma Breadth-First Search adalah teknik melintasi grafik, di mana anda memilih simpul awal rawak (node ​​sumber atau akar) dan mula melintasi lapisan grafik dengan cara sedemikian rupa sehingga semua nod dan node anak masing-masing dikunjungi dan diterokai.



Sebelum kita melangkah lebih jauh dan memahami Breadth-First Search dengan contoh, mari kita berkenalan dengan dua istilah penting yang berkaitan dengan melintasi grafik:

Grafik Melintas - Algoritma Carian Pertama Lebar - Edureka

  1. Melawat nod: Sama seperti namanya, melawat nod bermaksud melawat atau memilih nod.
  2. Meneroka nod: Meneroka nod bersebelahan (nod kanak-kanak) dari nod yang dipilih.

Rujuk gambar di atas untuk lebih memahami perkara ini.

Memahami Algoritma Carian Breadth-First dengan contoh

Algoritma Breadth-First Search mengikuti pendekatan berasaskan tahap yang mudah untuk menyelesaikan masalah. Pertimbangkan pokok binari di bawah (yang merupakan graf). Tujuan kami adalah untuk melintasi grafik dengan menggunakan Algoritma Carian Breadth-First.

Sebelum kita memulakan, anda mesti mengetahui struktur data utama yang terlibat dalam algoritma Breadth-First Search.

Antrian adalah struktur data abstrak yang mengikuti metodologi First-In-First-Out (data yang dimasukkan terlebih dahulu akan diakses terlebih dahulu). Ia terbuka di kedua ujungnya, di mana satu hujungnya selalu digunakan untuk memasukkan data (enqueue) dan yang lain digunakan untuk membuang data (dequeue).

Sekarang mari kita lihat langkah-langkah yang terlibat dalam melintasi grafik dengan menggunakan Breadth-First Search:

rentetan hingga kini di java

Langkah 1: Ikuti Antrian Kosong.

Langkah 2: Pilih simpul permulaan (mengunjungi nod) dan masukkan ke dalam Antrian.

Langkah 3: Dengan syarat bahawa Queue tidak kosong, ekstrak simpul dari Queue dan masukkan node turunannya (meneroka node) ke dalam Queue.

Langkah 4: Cetak nod yang diekstrak.

Jangan bimbang jika anda keliru, kami akan memahaminya dengan contoh.

Lihat grafik di bawah ini, kita akan menggunakan algoritma Breadth-First Search untuk melintasi grafik.

Dalam kes kami, kami akan menetapkan simpul ‘a’ sebagai simpul akar dan mula melintasi ke bawah dan mengikuti langkah-langkah yang disebutkan di atas.

Gambar di atas menggambarkan proses akhir ke hujung Algoritma Pencarian Pertama-Breadth. Izinkan saya menjelaskan perkara ini dengan lebih mendalam.

  1. Tetapkan 'a' sebagai simpul akar dan masukkan ke dalam Antrian.
  2. Ekstrak nod ‘a’ dari barisan dan masukkan nod kanak-kanak ‘a’, iaitu ‘b’ dan ‘c’.
  3. Cetak nod ‘a’.
  4. Baris tidak kosong dan mempunyai simpul ‘b’ dan ‘c’. Oleh kerana ‘b’ adalah nod pertama dalam barisan, mari kita ekstrak dan masukkan node turunan ‘b’, iaitu simpul ‘d’ dan ‘e’.
  5. Ulangi langkah-langkah ini sehingga barisan kosong. Perhatikan bahawa nod yang sudah dikunjungi tidak boleh ditambahkan ke dalam barisan lagi.

Sekarang mari kita lihat pseudocode algoritma Breadth-First Search.

Algoritma Carian Breadth-First Pseudocode

Berikut adalah pseudocode untuk melaksanakan Algoritma Pencarian Pertama-Breadth:

Input: s sebagai simpul sumber BFS (G, s) membiarkan Q berada dalam barisan. Q.enqueue (s) ditandai sebagai dikunjungi semasa (Q tidak kosong) v = Q.dequeue () untuk semua jiran w dari v dalam Graf G jika w tidak dikunjungi Q.enqueue (w) tandakan w seperti yang dikunjungi

Dalam kod di atas, langkah-langkah berikut dilaksanakan:

  1. (G, s) adalah input, di sini G adalah grafik dan s adalah simpul akar
  2. Antrian ‘Q’ dibuat dan diinisialisasi dengan simpul sumber ‘s’
  3. Semua nod kanak-kanak ‘s’ ditandakan
  4. Ekstrak 's' dari barisan dan lawati nod kanak-kanak
  5. Proses semua nod anak v
  6. Kedai w (nod kanak-kanak) di Q untuk mengunjungi nod anak-anaknya
  7. Teruskan sehingga ‘Q’ kosong

Sebelum kita mengemas blog, mari kita lihat beberapa aplikasi algoritma Breadth-First Search.

Aplikasi Algoritma Carian Breadth-First

Breadth-First Search adalah kaedah melintasi grafik sederhana yang mempunyai pelbagai aplikasi yang mengejutkan. Berikut adalah beberapa cara menarik untuk Pencarian Roti-Pertama:

Perangkak di Mesin Carian: Breadth-First Search adalah salah satu algoritma utama yang digunakan untuk mengindeks laman web. Algoritma mula melintasi dari halaman sumber dan mengikuti semua pautan yang berkaitan dengan halaman. Di sini setiap laman web akan dianggap sebagai simpul dalam grafik.

Sistem Navigasi GPS: Breadth-First Search adalah salah satu algoritma terbaik yang digunakan untuk mencari lokasi berdekatan dengan menggunakan sistem GPS.

Cari Laluan Terpendek & Pokok Rentang Minimum untuk graf tidak berwajaran: Untuk grafik yang tidak berbobot, mengira jalan terpendek cukup mudah kerana idea di sebalik jalan terpendek adalah memilih jalan dengan bilangan tepi paling sedikit. Breadth-First Search boleh membenarkan ini dengan melintasi bilangan nod minimum bermula dari simpul sumber. Begitu juga, untuk pokok rentang, kita dapat menggunakan salah satu dari kedua-duanya, kaedah melintasi Breadth-First Search atau Depth-first untuk mencari pokok rentang.

Penyiaran: Rangkaian menggunakan apa yang kita panggil sebagai paket untuk komunikasi. Paket ini mengikuti kaedah melintasi untuk mencapai pelbagai nod rangkaian. Salah satu kaedah melintasi yang paling biasa digunakan ialah Pencarian Breadth-First. Ini digunakan sebagai algoritma yang digunakan untuk menyampaikan paket yang disiarkan di semua nod dalam rangkaian.

Rangkaian Peer to Peer: Breadth-First Search boleh digunakan sebagai kaedah melintasi untuk mencari semua nod yang berdekatan dalam Rangkaian Peer to Peer. Sebagai contoh, BitTorrent menggunakan Breadth-First Search untuk komunikasi peer to peer.

Jadi itu semua berkaitan dengan kerja algoritma Breadth-First Search. Sekarang setelah anda mengetahui cara melintasi grafik, saya pasti anda ingin mengetahui lebih lanjut. Berikut adalah beberapa blog yang relevan untuk membuat anda berminat:

apa yang * di sql
  1. Pengenalan Kepada Rantai Markov Dengan Contoh - Rantai Markov Dengan Python

Dengan ini, kita sampai di penghujung blog ini. Sekiranya anda mempunyai pertanyaan mengenai topik ini, sila tinggalkan komen di bawah dan kami akan menghubungi anda.

Sekiranya anda ingin mendaftar untuk mengikuti kursus lengkap mengenai Artificial Intelligence dan Machine Learning, Edureka mempunyai pilihan khusus yang akan menjadikan anda mahir dalam teknik seperti Pembelajaran yang Diawasi, Pembelajaran Tanpa Pengawasan, dan Pemprosesan Bahasa Semula jadi. Ia merangkumi latihan mengenai kemajuan terkini dan pendekatan teknikal dalam Artificial Intelligence & Machine Learning seperti Pembelajaran Dalam, Model Grafik dan Pembelajaran Pengukuhan.