Mengapa DFS dianggap memiliki kompleksitas ruang

11

Menurut catatan ini , DFS dianggap memiliki kompleksitas ruang , di mana b adalah faktor percabangan dari pohon dan m adalah panjang maksimum dari setiap jalur di ruang negara.O(bm)bm

Hal yang sama juga dikatakan di halaman Wikibook ini pada Pencarian Tidak Informasi .

Sekarang "infobox" dari artikel Wikipedia tentang DFS menyajikan berikut untuk kompleksitas ruang dari algoritma:

, jika seluruh grafik dilintasi tanpa pengulangan, O ( panjang jalur terpanjang dicari ) untuk grafik tersirat tanpa menghilangkan duplikat nodeO(|V|)O()

yang lebih mirip dengan apa yang saya pikir adalah kompleksitas ruang DFS, yaitu, , di mana m adalah panjang maksimum yang dicapai oleh algoritma.O(m)m

Mengapa saya berpikir demikian?

Yah, pada dasarnya kita tidak perlu menyimpan node lain selain node dari path yang saat ini kita lihat, jadi tidak ada gunanya mengalikan dengan dalam analisis yang disediakan baik oleh Wikibook dan catatan yang saya referensikan kepada Anda untuk.b

Selain itu, menurut makalah ini pada IDA * oleh Richard Korf , kompleksitas ruang DFS adalah , di mana d dianggap sebagai "cutoff kedalaman".O(d)d

Jadi, apa kompleksitas ruang DFS yang benar?

Saya pikir itu mungkin tergantung pada implementasinya, jadi saya akan menghargai penjelasan tentang kompleksitas ruang untuk implementasi yang dikenal berbeda.

nbro
sumber
DFS is considered to […] of the treetidak setiap grafik yang dilalui kedalaman terlebih dahulu adalah pohon .
greybeard
Ada perbedaan antara mengatakan "ini di sini implementasi DFS memiliki biaya X" dan "DFS dapat diimplementasikan sehingga memiliki biaya X". Jadi sepertinya memperdebatkan pernyataan berbeda dari jenis kedua, yang tidak perlu bertentangan sama sekali. (Perhatikan bahwa tidak ada kontradiksi sama sekali sejak , jika O ( b m ) memiliki arti sama sekali.)O(bm)O(m)O(bm)
Raphael
@greybeard Bisakah Anda memberi saya contoh di mana traversal kedalaman-pertama pada grafik tidak akan menghasilkan pohon?
Nbro
example where a depth-first traversal on a graph would not result in a treetanpa terlalu memikirkannya: parsing. (Tunggu: apa maksudmu result in a tree
:?
1
@ Greybeard Menurut semua definisi yang saya temukan sejauh ini. Temukan saya definisi tempat meninjau kembali node, lalu kita bisa membahasnya.
nbro

Jawaban:

7

bm[b]m

  1. 1,2,,b

  2. 111,12,,1b

  3. 11111,112,,11b

  4. 1m11m,1m12,,1m1b

Pada titik ini, tumpukan berisi

1m,1m12,,1m1b,,112,,11b,12,,1b,2,,b,

(b1)m+1

Yuval Filmus
sumber
2
Satu pint waktu membuat dokter menjauh.
greybeard
3

Ada dua hal yang perlu diperhatikan di sini:

  1. O(bd)bddbbO(d)

  2. O(d)db

O(bd)O(d)

Semoga ini membantu,

Carlos Linares López
sumber