Anda di halaman 1dari 11

MODUL STRUKTUR DATA (CCC120)

SESI 13 : DFS dan BFS


I. Depth-first search ( DFS )
Algoritma untuk melintasi atau mencari struktur data pohon atau grafik . Algoritma ini dimulai pada
simpul akar (memilih beberapa simpul arbitrer sebagai simpul akar dalam kasus grafik) dan
mengeksplorasi sejauh mungkin di sepanjang setiap cabang sebelum mundur.

Depth-first search (Pencarian mendalam-pertama)

Untuk aplikasi DFS dalam kaitannya dengan domain tertentu, seperti mencari solusi dalam
kecerdasan buatan atau penelusuri web (Struktur web), grafik yang akan dilalui seringkali terlalu
besar untuk dikunjungi secara keseluruhan atau tidak terbatas (DFS mungkin mengalami non-
terminasi). Dalam kasus seperti itu, pencarian hanya dilakukan pada kedalaman terbatas; karena
sumber daya yang terbatas, seperti memori atau ruang disk, seseorang biasanya tidak menggunakan
struktur data untuk melacak himpunan semua simpul yang dikunjungi sebelumnya. Ketika pencarian
dilakukan pada kedalaman yang terbatas, waktu masih linier dalam hal jumlah simpul dan tepi yang
diperluas (walaupun jumlah ini tidak sama dengan ukuran keseluruhan graf karena beberapa simpul
dapat dicari lebih dari satu kali dan lainnya tidak sama sekali) tetapi kompleksitas ruang dari varian
DFS ini hanya sebanding dengan batas kedalaman, dan akibatnya, jauh lebih kecil daripada ruang
yang dibutuhkan untuk pencarian dengan kedalaman yang sama menggunakan pencarian luas-
pertama. Untuk aplikasi seperti itu, DFS juga lebih cocok untuk metode DSS Heuristik untuk memilih
cabang yang tampak mungkin. Ketika batas kedalaman yang sesuai tidak diketahui secara apriori,
(pencarian kedalaman-pertama pendalaman/ Depth-first search berulang) menerapkan DFS
berulang kali dengan urutan batas yang meningkat. Dalam mode analisis kecerdasan buatan, dengan
faktor percabangan lebih besar dari satu, pendalaman berulang meningkatkan waktu berjalan hanya
dengan faktor konstan selama kasus di mana batas kedalaman yang benar diketahui karena
pertumbuhan geometris jumlah node per level .
DFS juga dapat digunakan untuk mengumpulkan sampel node grafik. Namun, DFS tidak lengkap,
mirip dengan BFS tidak lengkap , bisa terhadap node derajat tinggi

Contoh Pencarian depth-first untuk grafik berikut:

Contoh : (Depth-first search)

Akan membahas ide di balik pencarian mendalam-pertama dalam kaitannya dengan Gambar 4.5. Angka-angka
pada gambar ini menunjukkan urutan simpul yang dikunjungi.

Untuk melakukan pencarian mendalam-pertama, memilih titik awal—dalam hal ini, simpul A. Kemudian
melakukan tiga hal :
1. kunjungi simpul ini, dorong ke tumpukan, jadi dapat mengingatnya, dan menandainya sehingga tidak
akan mengunjunginya lagi.
2. Selanjutnya pergi ke setiap simpul yang berdekatan dengan A yang belum dikunjungi. Baik asumsikan
simpul dipilih dalam urutan abjad, sehingga memunculkan B. Mengunjungi B, menandainya, dan
mendorongnya ke tumpukan. Sekarang berada di B, dan lakukan hal yang sama seperti sebelumnya :
3. Kunjungi simpul tetangga yang belum dikunjungi. yaitu ke F.
Ikuti Aturan/role berikut :
Aturan 1:
Jika memungkinkan, kunjungi simpul berdekatan yang belum dikunjungi, tandai, dan dorong pada
tumpukan. Menerapkan Aturan 1 lagi bawa ke H. Namun, pada titik ini, perlu melakukan sesuatu yang
lain, karena tidak ada simpul yang belum dikunjungi yang berdekatan dengan H.
Aturan 2:
 Jika tidak dapat mengikuti Aturan 1, maka, jika memungkinkan, keluarkan sebuah simpul
dari tumpukan. pada aturan 2 ini, mengeluarkan H dari tumpukan, yang membawa
kembali ke F. F tidak memiliki simpul berdekatan yang belum dikunjungi, jadi
memunculkan F. Terus to B.
 Sekarang hanya A yang tersisa pada tumpukan. A, bagaimanapun, memiliki simpul
berdekatan yang belum dikunjungi, jadi mengunjungi yang berikutnya, C. Tapi C adalah
akhir dari baris, jadi kembali ke A.
 Kemudian kunjungi D, G, dan I, lalu keluarkan semuanya saat mencapai jalan buntu di I.
Sekarang kembali ke A. kunjungi E, dan sekali lagi kembali ke A. Namun kali ini, A tidak
memiliki tetangga yang belum dikunjungi, jadi keluarkan A dari tumpukan.
 Sekarang tidak ada yang tersisa untuk muncul, yang dimunculkan
Aturan 4 :
Ingat Aturan 3: Jika Anda tidak dapat mengikuti Aturan 1 atau Aturan 2, Anda selesai.

Tabel 4.3 menunjukkan bagaimana tumpukan terlihat dalam berbagai tahap proses ini, seperti:
diterapkan diatas pada Gambar 4.5

Isi tumpukan adalah rute yang diambil dari titik awal ke mendapatkan di mana partama berada. Saat
menjauh dari titik awal, Push simpul saat pergi. Saat Anda bergerak kembali ke titik awal, Anda pop
mereka. Urutan kunjungan ke simpul adalah ABFHCDGIE.

Algoritma pencarian kedalaman-pertama, pergi sejauh-jauhnya dari titik awal secepat mungkin, dan
kembali hanya jika mencapai jalan buntu. Jika menggunakan istilah kedalaman berarti jarak dari titik awal,
dapat melihat dari mana nama depth-first search berasal.

II. Breadth-first search (BFS)


Dalam ilmu komputer , lexicographic breadth-first search atau Lex-BFS adalah algoritma waktu linier
untuk mengurutkan simpul dari suatu graf . Algoritma berbeda dari pencarian dalam-pertama
(Depth-first search) , tetapi menghasilkan urutan yang konsisten dengan pencarian pertama-luas
(Breadth-first search).

Algoritma pencarian leksikografis pertama didasarkan pada gagasan perbaikan partisi dan pertama
kali dikembangkan oleh Donald J. Rose, Robert E. Tarjan , dan George S. Lueker ( 1976 ). Sebuah
survei yang lebih rinci tentang topik ini disajikan oleh Corneil (2004) . Telah digunakan sebagai
subroutine dalam algoritma grafik lainnya termasuk pengakuan grafik korda , dan optimal pewarna
dari grafik jarak-turun-temurun .
The pencarian luas-pertama algoritma umumnya didefinisikan oleh proses berikut:
 Inisialisasi antrian simpul graf, dengan simpul awal graf sebagai satu-satunya elemen antrian.
 Saat antrian tidak kosong, hapus (dequeue) sebuah simpul v dari antrian, dan tambahkan ke antrian
(enqueue) semua simpul lain yang dapat dicapai oleh sisi dari v yang belum ditambahkan pada langkah
sebelumnya.
Namun, daripada mendefinisikan simpul yang akan dipilih pada setiap langkah dengan cara imperatif
seperti yang dihasilkan oleh operasi dequeue dari antrian, seseorang dapat mendefinisikan urutan
simpul yang sama secara deklaratif dengan sifat-sifat simpul ini. Artinya, pencarian standar luas-
pertama hanyalah hasil dari berulang kali menerapkan aturan ini:
 Keluarkan berulang kali simpul v , pilih pada setiap langkah simpul v yang belum dipilih dan yang
memiliki pendahulu (simpul yang memiliki tepi ke v ) sedini mungkin dalam keluaran.
Dalam beberapa kasus, pengurutan simpul ini berdasarkan posisi keluaran pendahulunya mungkin
memiliki ikatan dua simpul berbeda memiliki pendahulu paling awal yang sama. Dalam hal ini, urutan
pemilihan kedua simpul tersebut dapat bersifat arbitrer. Keluaran dari pencarian luas-pertama
leksikografis berbeda dari pencarian pertama-keluasan standar dalam memiliki aturan yang konsisten
untuk memutuskan ikatan tersebut. Dalam pencarian luas-pertama leksikografis, urutan keluaran
adalah urutan yang akan dihasilkan oleh aturan:
 Keluarkan berulang kali simpul v , pilih pada setiap langkah simpul v yang belum dipilih dan yang
seluruh himpunan pendahulunya yang sudah keluaran sekecil mungkin dalam urutan leksikografis .
Jadi, ketika dua simpul v dan w memiliki pendahulu paling awal yang sama, lebih awal dari simpul
lain yang tidak dipilih, algoritma pencarian standar luas-pertama akan mengurutkannya secara
sewenang-wenang. Sebagai gantinya, dalam kasus ini, algoritma LexBFS akan memilih antara v dan w
dengan urutan keluaran dari pendahulunya yang kedua paling awal. Jika hanya salah satu dari mereka
yang memiliki pendahulu kedua paling awal yang telah keluar, yang dipilih. Jika v dan w memiliki
pendahulu kedua paling awal yang sama, maka ikatan putus dengan mempertimbangkan pendahulu
ketiga paling awal, dan seterusnya.
Menerapkan aturan ini secara langsung dengan membandingkan simpul menurut aturan ini akan
menghasilkan algoritma yang tidak efisien. Sebaliknya, pencarian luas-pertama leksikografis
menggunakan struktur data partisi yang ditetapkan untuk menghasilkan pemesanan yang sama secara
lebih efisien, sama seperti pencarian standar-pertama menggunakan struktur data antrian untuk
menghasilkan pemesanannya secara efisien.

Contoh BFS gambar yang sama dengan DFS :


Gambar 4.9 menunjukkan grafik yang sama dengan Gambar 4.5, tetapi di sini lebarnya lebih dulu
pencarian digunakan. Sekali lagi, angka menunjukkan urutan simpul indicate dikunjungi
GAMBAR 4.9 Breadth-first search (Pencarian luas-pertama)
A adalah simpul awal, mengunjunginya dan menjadikannya simpul root. Ikuti role/aturan berikut :
Aturan 1:
Kunjungi simpul berikutnya yang belum dikunjungi (jika ada) yang berdekatan dengan arus vertex,
tandai, dan masukkan ke dalam antrian.
Aturan 2:
Jika Anda tidak dapat menjalankan Aturan 1 karena tidak ada lagi simpul yang belum dikunjungi,
hapus simpul dari antrian (jika mungkin) dan jadikan simpul saat ini.
Aturan 3:
Jika Anda tidak dapat menjalankan Aturan 2 karena antriannya kosong, Anda selesai.
Hasilnya :
 Jadi pertama-tama mengunjungi semua simpul yang berdekatan dengan A, memasukkan
masing-masing ke dalam antrian saat mengunjunginya.
 Setelah mengunjungi A, B, C, D, dan E. Pada titik ini antrian (dari depan ke belakang) berisi
BCDE. Tidak ada lagi simpul yang belum dikunjungi yang berdekatan dengan A, jadi hapus B
dari antrian dan mencari simpul yang berdekatan dengannya, yaitu menemukan F,
memasukkannya ke dalam antrian.
 Tidak ada lagi simpul yang belum dikunjungi yang berdekatan dengan B, hapus C dari antrian.
 Tidak ada simpul berdekatan yang belum dikunjungi, hapus D dan kunjungi G. D tidak
memiliki simpul yang belum dikunjungi yang berdekatan, hapus E.
 Sekarang antriannya adalah FG. hapus F dan mengunjungi H, dan kemudian hapus G dan
kunjungi I.
 Sekarang antriannya HI, tetapi ketika telah menghapus masing-masing dan tidak menemukan
found simpul yang belum dikunjungi berdekatan, antrian kosong, selesai. Untuk lebih jelasnya
perhatikan table berikut:
Pada setiap saat, antrian berisi simpul yang telah dikunjungi tetapi yang tetangganya belum
sepenuhnya dieksplorasi. (Bandingkan ini dengan pencarian depth-first, di mana isi tumpukan adalah
rute yang diambil titik awal ke titik saat ini) Node dikunjungi dalam urutan ABCDEFGHI.

Empat jenis tepi yang didefinisikan oleh pohon merentang


Deskripsi yang tepat dari pencarian kedalaman-pertama dari suatu graf adalah dalam istilah spanning
tree (pohon merentang) dari simpul-simpul yang dicapai selama pencarian. Berdasarkan pohon
merentang ini, tepi-tepi graf asli dapat dibagi menjadi tiga kelas: tepi depan , yang menunjuk dari
simpul pohon ke salah satu turunannya, tepi belakang , yang menunjuk dari simpul ke salah satu
nenek moyangnya, dan tepi silang , yang tidak melakukan keduanya. Terkadang tepi pohon , tepi
yang termasuk dalam pohon merentang itu sendiri, diklasifikasikan secara terpisah dari tepi depan.
Jika graf asli tidak berarah maka semua sisinya adalah sisi pohon atau sisi belakang.

Empat jenia tepi dari tree Depth-first search

Gambar tree : Empat jenis tepi yang didefinisikan oleh pohon merentang
Tepi Lef- right dari Depth-first search

Untuk tree disamping :


Mengunjungi node dalam urutan berikut: A, B, D, F, E, C, G
Hasil kunjungan DFS dalam urutan A, B, D, F, E, A, B, D, F, E

Pencarian depth-first dimulai pada node A, dengan asumsi bahwa tepi/paling kiri pada grafik yang
ditampilkan dipilih sebelum tepi/paling kanan, dan dengan asumsi pencarian mengingat node yang
dikunjungi sebelumnya dan tidak akan mengulanginya (karena ini adalah grafik kecil), akan
mengunjungi node dalam urutan berikut: A, B, D, F, E, C, G. Tepi yang dilalui dalam pencarian ini
membentuk pohon Trémaux, struktur dengan aplikasi penting dalam teori graf. Melakukan pencarian
yang sama tanpa mengingat node yang dikunjungi sebelumnya, menghasilkan, mengunjungi node
dalam urutan A, B, D, F, E, A, B, D, F, E, dll. Selamanya terperangkap di A, B, D, F, E siklus dan tidak
pernah mencapai C atau G.

Dimungkinkan juga untuk menggunakan pencarian mendalam-pertama untuk mengurutkan secara


linier simpul dari grafik atau pohon. Ada empat cara yang mungkin untuk melakukan ini:
 Sebuah preordering adalah daftar simpul dalam urutan bahwa mereka pertama kali dikunjungi
oleh algoritma pencarian depth-first. Ini adalah cara yang ringkas dan alami untuk
menggambarkan kemajuan pencarian, seperti yang telah dilakukan sebelumnya dalam artikel
ini. Preordering pohon ekspresi adalah ekspresi dalam notasi Polandia .
 Sebuah postordering adalah daftar simpul dalam urutan bahwa mereka terakhir dikunjungi
oleh algoritma. Sebuah postordering dari pohon ekspresi adalah ekspresi dalam notasi Polandia
terbalik .
 Sebuah preordering sebaliknya adalah kebalikan dari preordering, yaitu daftar simpul dalam
urutan kebalikan dari kunjungan pertama mereka. Reverse preordering tidak sama dengan
postordering.
 Sebuah postordering sebaliknya adalah kebalikan dari postordering, yaitu daftar simpul dalam
urutan kebalikan dari kunjungan terakhir mereka. Reverse postordering tidak sama dengan
preordering.
Untuk pohon biner ada tambahan in-ordering dan reverse in-ordering .
Misalnya, ketika mencari graf berarah di bawah yang dimulai dari simpul A, urutan lintasannya adalah
ABDBACA atau ACDCABA (memilih untuk mengunjungi B atau C pertama dari A terserah pada
algoritme). Perhatikan bahwa kunjungan berulang dalam bentuk lacak balik ke sebuah node, untuk
memeriksa apakah masih ada tetangga yang belum dikunjungi, disertakan di sini (meskipun ternyata
tidak ada). Dengan demikian kemungkinan preordering adalah ABDC dan ACDB, sedangkan
postordering yang mungkin adalah DBCA dan DCBA, dan kemungkinan postordering terbalik adalah
ACBD dan ABCD.

Reverse postordering menghasilkan penyortiran topologi dari setiap grafik asiklik terarah . Urutan ini
juga berguna dalam analisis aliran kontrol karena sering mewakili linearisasi alami dari aliran kontrol.
Grafik di atas mungkin mewakili aliran kontrol dalam fragmen kode di bawah ini, dan wajar untuk
mempertimbangkan kode ini dalam urutan ABCD atau ACBD tetapi tidak wajar untuk menggunakan
urutan ABDC atau ACD B.
jika ( A ) maka {
B
} lain {
C
}
D
Input : Graf G dan simpul v dari G
Output : Semua simpul dapat dijangkau dari v berlabel ditemukan
Implementasi DFS secara rekursif :

Urutan di mana simpul ditemukan oleh algoritma ini disebut urutan leksikografis .
Kedua variasi DFS ini mengunjungi tetangga dari setiap simpul dalam urutan yang berlawanan satu
sama lain: tetangga pertama dari v yang dikunjungi oleh variasi rekursif adalah yang pertama dalam
daftar tepi yang berdekatan, sedangkan dalam variasi iteratif tetangga yang pertama dikunjungi
adalah yang terakhir dalam daftar tepi yang berdekatan. Implementasi rekursif akan mengunjungi
node dari contoh grafik dengan urutan sebagai berikut : A, B, D, F, E, C, G. Implementasi non-rekursif
akan mengunjungi node sebagai: A, E, F, B, D , C, G

Implementasi non-rekursif mirip dengan Breadth-first search tetapi berbeda darinya dalam dua cara:
1. Menggunakan tumpukan alih-alih antrian, dan
2. Menunda pemeriksaan apakah sebuah simpul telah ditemukan sampai simpul tersebut
dikeluarkan dari tumpukan daripada melakukan pemeriksaan ini sebelum menambahkan
simpul.
Jika G adalah sebuah pohon , mengganti antrian dari algoritma pencarian luas-pertama dengan
tumpukan akan menghasilkan algoritma pencarian kedalaman-pertama. Untuk grafik umum,
mengganti tumpukan implementasi pencarian kedalaman-pertama iteratif dengan antrian juga akan
menghasilkan algoritma pencarian luas-pertama, meskipun agak tidak standar.
Implementasi lain yang mungkin dari pencarian kedalaman-pertama berulang menggunakan
tumpukan iterator dari daftar tetangga sebuah node, bukan tumpukan node. Ini menghasilkan
traversal yang sama dengan DFS rekursif.

prosedur DFS_iterative( G , v ) adalah


membiarkan S menjadi tumpukan
S .push(iterator dari G .adjacentEdges( v ))
sedangkan S tidak kosong lakukan
jika S .peek().hasNext() maka
w = S .peek() .next()
jika w tidak diberi label sebagai ditemukan maka beri
label w sebagai ditemukan
S .push(iterator dari G .adjacentEdges( w ))
lain
S .pop()

Algoritma yang menggunakan pencarian depth-first sebagai blok pembangun meliputi:


 Menemukan komponen yang terhubung .
 Pengurutan topologi .
 Menemukan komponen yang terhubung 2-(tepi atau simpul).
 Menemukan komponen yang terhubung 3-(tepi atau simpul).
 Menemukan jembatan dari suatu graf.
 Menghasilkan kata-kata dalam rangka untuk merencanakan batas set dari kelompok .
 Menemukan komponen yang terhubung kuat .
 Menentukan apakah suatu spesies lebih dekat dengan satu spesies atau lainnya dalam pohon
filogenetik.
[9] [10]
 Pengujian planaritas .
 Memecahkan teka-teki hanya dengan satu solusi, seperti labirin . (DFS dapat disesuaikan
untuk menemukan semua solusi labirin dengan hanya menyertakan node pada jalur saat ini di
set yang dikunjungi.)
 Pembuatan labirin dapat menggunakan pencarian mendalam-pertama secara acak.
 Menemukan bikonektivitas dalam grafik .

Kompleksitas
Urutan pencarian mendalam-pertama (tidak harus yang leksikografis), dapat dihitung dengan
algoritma paralel acak di kelas kompleksitas. Pada tahun 1997, masih belum diketahui apakah
traversal kedalaman-pertama dapat dibangun oleh algoritma paralel deterministik, di kelas
kompleksitas

Algoritma
Algoritma pencarian luas-pertama leksikografis menggantikan antrian simpul dari pencarian pertama-
lebar standar dengan urutan kumpulan simpul yang berurutan. Himpunan dalam urutan membentuk
partisi dari simpul yang tersisa. Pada setiap langkah, sebuah simpul v dari himpunan pertama dalam
barisan dihilangkan dari himpunan itu, dan jika penghilangan itu menyebabkan himpunan menjadi
kosong maka himpunan tersebut dihapus dari barisan. Kemudian, setiap himpunan dalam barisan
tersebut digantikan oleh dua himpunan bagian: tetangga dari v dan bukan tetangga dari v . Subset
tetangga ditempatkan lebih awal dalam urutan daripada subset non-tetangga. Dalam pseudocode ,
algoritma dapat dinyatakan sebagai berikut:
 Inisialisasi barisan dari himpunan, untuk memuat satu himpunan yang berisi semua simpul.
 Inisialisasi urutan keluaran simpul menjadi kosong.
 Sementara tidak kosong:
o Temukan dan hapus simpul v dari himpunan pertama di
o Jika set pertama di sekarang kosong, hapus dari
o Tambahkan v ke akhir urutan output.
o Untuk setiap sisi vw sedemikian rupa sehingga w masih termasuk dalam himpunan S dalam :
 Jika himpunan S yang berisi w belum diganti saat memproses v , buat himpunan
pengganti kosong baru T dan tempatkan sebelum S dalam barisan; jika tidak, misalkan
T adalah himpunan sebelum S .
 Pindahkan w dari S ke T , dan jika ini menyebabkan S menjadi kosong, hapus S dari Σ.
Setiap simpul diproses sekali, setiap tepi diperiksa hanya ketika dua titik ujungnya diproses, dan
(dengan representasi yang sesuai untuk himpunan dalam yang memungkinkan item dipindahkan dari
satu himpunan ke himpunan lain dalam waktu yang konstan) setiap iterasi loop dalam hanya
membutuhkan waktu yang konstan. Oleh karena itu, seperti algoritma pencarian grafik yang lebih
sederhana seperti pencarian luas-pertama dan pencarian mendalam pertama , algoritma ini
membutuhkan waktu linier.
Algoritme ini disebut pencarian luas-pertama leksikografis karena urutan yang dihasilkannya
merupakan urutan yang juga dapat dihasilkan oleh pencarian pertama-lebar, dan karena jika urutan
digunakan untuk mengindeks baris dan kolom dari matriks ketetanggaan suatu graf kemudian
algoritma mengurutkan baris dan kolom ke dalam urutan leksikografis

Breadth-first search (BFS)


Breadth-first search (BFS) adalah algoritma untuk mencari struktur data pohon untuk simpul yang
memenuhi properti tertentu. Ini dimulai pada akar pohon dan mengeksplorasi semua node pada
kedalaman saat ini sebelum pindah ke node pada tingkat kedalaman berikutnya. Memori ekstra,
biasanya antrian, diperlukan untuk melacak node anak yang ditemui tetapi belum dieksplorasi
Misalnya, dalam permainan akhir catur, mesin catur dapat membangun pohon permainan dari posisi saat ini
dengan menerapkan semua kemungkinan gerakan, dan menggunakan pencarian luas-pertama untuk
menemukan posisi menang untuk putih. Pohon implisit (seperti pohon permainan atau pohon pemecahan
masalah lainnya) mungkin berukuran tak terbatas; pencarian luas-pertama dijamin untuk menemukan simpul
solusi[1] jika ada.
Sebaliknya, pencarian depth-first (polos), yang mengeksplorasi cabang node sejauh mungkin sebelum melacak
kembali dan memperluas node lain, [2] mungkin tersesat di cabang tak terbatas dan tidak pernah sampai ke
node solusi. Pencarian kedalaman-pertama pendalaman berulang menghindari kelemahan terakhir dengan
harga menjelajahi bagian atas pohon berulang-ulang. Di sisi lain, kedua algoritma depth-first cocok tanpa
memori ekstra.
Pencarian luas-pertama dapat digeneralisasikan ke grafik, ketika simpul awal (kadang-kadang disebut sebagai
'kunci pencarian')[3] secara eksplisit diberikan, dan tindakan pencegahan diambil terhadap simpul yang
mengikuti dua kali.
BFS dan aplikasinya dalam menemukan komponen graf terhubung ditemukan pada tahun 1945 oleh Konrad
Zuse, dalam (ditolak) Ph.D. tesis tentang bahasa pemrograman Plankalkül, tetapi ini tidak diterbitkan sampai
tahun 1972.[4] Itu diciptakan kembali pada tahun 1959 oleh Edward F. Moore, yang menggunakannya untuk
menemukan jalur terpendek dari labirin, [5] [6] dan kemudian dikembangkan oleh C. Y. Lee menjadi algoritma
perutean kabel (diterbitkan 1961).[7]

https://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2015-2016/Makalah-Matdis-2015/Makalah-IF2120-
2015-017.pdf

Aplikasi Pencarian Solusi Graf Labirin Menggunakan Algoritma Tremaux

Anda mungkin juga menyukai